)]}'
{"doc/source/notifications.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":"Similarly to other OpenStack services Nova emits notifications to the message"},{"line_number":17,"context_line":"bus with the Notifier class provided by oslo.messaging [1]_. From the"},{"line_number":18,"context_line":"notification consumer point of view a notification consists of two parts an"},{"line_number":19,"context_line":"envelope with a fix structure defined by oslo.messaging and a payload defined"},{"line_number":20,"context_line":"by the service emitting the notification. The envelope format is the"},{"line_number":21,"context_line":"following::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_f63269a6","line":18,"updated":"2016-01-05 18:54:17.000000000","message":"\"two parts:\"","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":"Similarly to other OpenStack services Nova emits notifications to the message"},{"line_number":17,"context_line":"bus with the Notifier class provided by oslo.messaging [1]_. From the"},{"line_number":18,"context_line":"notification consumer point of view a notification consists of two parts an"},{"line_number":19,"context_line":"envelope with a fix structure defined by oslo.messaging and a payload defined"},{"line_number":20,"context_line":"by the service emitting the notification. The envelope format is the"},{"line_number":21,"context_line":"following::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_6eaf5c2a","line":18,"in_reply_to":"fa69d971_f63269a6","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Similarly to other OpenStack services Nova emits notifications to the message"},{"line_number":17,"context_line":"bus with the Notifier class provided by oslo.messaging [1]_. From the"},{"line_number":18,"context_line":"notification consumer point of view a notification consists of two parts an"},{"line_number":19,"context_line":"envelope with a fix structure defined by oslo.messaging and a payload defined"},{"line_number":20,"context_line":"by the service emitting the notification. The envelope format is the"},{"line_number":21,"context_line":"following::"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_761f5908","line":19,"updated":"2016-01-05 18:54:17.000000000","message":"\"fixed\"","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Similarly to other OpenStack services Nova emits notifications to the message"},{"line_number":17,"context_line":"bus with the Notifier class provided by oslo.messaging [1]_. From the"},{"line_number":18,"context_line":"notification consumer point of view a notification consists of two parts an"},{"line_number":19,"context_line":"envelope with a fix structure defined by oslo.messaging and a payload defined"},{"line_number":20,"context_line":"by the service emitting the notification. The envelope format is the"},{"line_number":21,"context_line":"following::"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_0eaa6019","line":19,"in_reply_to":"fa69d971_761f5908","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"There are two types of notifications in Nova based on the payload format."},{"line_number":33,"context_line":"Legacy notifications with unversioned payload and notifications with versioned"},{"line_number":34,"context_line":"payload."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Unversioned notifications"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_91cd3787","line":34,"updated":"2016-01-05 18:54:17.000000000","message":"I think you need \"an unversioned\" and \"a versioned\" or rewrite to something like:\n\nThere are two types of notifications in Nova: legacy notifications which have an unversioned payload and newer notifications which have a versioned payload.","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"There are two types of notifications in Nova based on the payload format."},{"line_number":33,"context_line":"Legacy notifications with unversioned payload and notifications with versioned"},{"line_number":34,"context_line":"payload."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Unversioned notifications"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_8e6c1009","line":34,"in_reply_to":"fa69d971_91cd3787","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Versioned notifications"},{"line_number":55,"context_line":"-----------------------"},{"line_number":56,"context_line":"Versioned notification concept is created to fix the shortcomings of the"},{"line_number":57,"context_line":"unversioned notifications. The envelope structure of the emitted notification"},{"line_number":58,"context_line":"is the same as in the unversioned notification case as it is provided by"},{"line_number":59,"context_line":"oslo.messaging. However the payload is not a free form dictionary but a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_111f076d","line":56,"updated":"2016-01-05 18:54:17.000000000","message":"\"The versioned...\"","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Versioned notifications"},{"line_number":55,"context_line":"-----------------------"},{"line_number":56,"context_line":"Versioned notification concept is created to fix the shortcomings of the"},{"line_number":57,"context_line":"unversioned notifications. The envelope structure of the emitted notification"},{"line_number":58,"context_line":"is the same as in the unversioned notification case as it is provided by"},{"line_number":59,"context_line":"oslo.messaging. However the payload is not a free form dictionary but a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_2e7c04b4","line":56,"in_reply_to":"fa69d971_111f076d","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"notification payload:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* the payload version defined by the `the nova_object.version` field of the"},{"line_number":95,"context_line":"  payload will be increased if and only if the syntax or the semantic of the"},{"line_number":96,"context_line":"  `nova_object.data` field of the payload is changed."},{"line_number":97,"context_line":"* a minor version bump indicates a backward compatible change which means that"},{"line_number":98,"context_line":"  only new fields are added to the payload so a well written consumer can still"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_6c6a28b5","line":95,"updated":"2016-01-05 18:54:17.000000000","message":"\"semantics\"","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"notification payload:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* the payload version defined by the `the nova_object.version` field of the"},{"line_number":95,"context_line":"  payload will be increased if and only if the syntax or the semantic of the"},{"line_number":96,"context_line":"  `nova_object.data` field of the payload is changed."},{"line_number":97,"context_line":"* a minor version bump indicates a backward compatible change which means that"},{"line_number":98,"context_line":"  only new fields are added to the payload so a well written consumer can still"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_ce4d289b","line":95,"in_reply_to":"fa69d971_6c6a28b5","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8c60292cf635134a0d339fb49e9da401ce71760a","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"There is a possibility to reuse an existing versionedobjects as notification"},{"line_number":171,"context_line":"payload by adding a `SCHEMA` field for the payload class that defines a mapping"},{"line_number":172,"context_line":"between the fields of an existing object and the fields of the new payload"},{"line_number":173,"context_line":"object. For example the service.status notification reuses the existing"},{"line_number":174,"context_line":"`nova.objects.service.Service` object when defines the notification\u0027s payload::"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_e72cf103","line":172,"updated":"2016-01-05 18:54:17.000000000","message":"Maybe make it clear here that it is possible to use fields from more than one object? It\u0027s made explicit down below but maybe just:\n\n\"between the fields of existing objects and the fields of the new payload\"","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45b43b49f53ce2e5a9a0b6f5a30ab1b50410ca8","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"There is a possibility to reuse an existing versionedobjects as notification"},{"line_number":171,"context_line":"payload by adding a `SCHEMA` field for the payload class that defines a mapping"},{"line_number":172,"context_line":"between the fields of an existing object and the fields of the new payload"},{"line_number":173,"context_line":"object. For example the service.status notification reuses the existing"},{"line_number":174,"context_line":"`nova.objects.service.Service` object when defines the notification\u0027s payload::"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa69d971_ee37ccfc","line":172,"in_reply_to":"fa69d971_e72cf103","updated":"2016-01-06 12:31:06.000000000","message":"Done","commit_id":"1b93a262ef32c5f3766d66141a15152333eb1c29"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"9c75864a0e289546a0597d102bf40cbe9f82428d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  only new fields are added to the payload so a well written consumer can still"},{"line_number":97,"context_line":"  consume the new payload without any change."},{"line_number":98,"context_line":"* a major version bump indicates a backward incompatible change of the payload"},{"line_number":99,"context_line":"  which can mean removed fields, type change, etc in the payload."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"How to add a new versioned notification"},{"line_number":102,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_ea8c91db","line":99,"updated":"2016-01-06 15:07:28.000000000","message":"Very well said on these points","commit_id":"c36ace35c014bef929a2451408349c931c1b1f90"},{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"9c75864a0e289546a0597d102bf40cbe9f82428d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    }"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"There is a possibility to reuse an existing versionedobjects as notification"},{"line_number":169,"context_line":"payload by adding a `SCHEMA` field for the payload class that defines a mapping"},{"line_number":170,"context_line":"between the fields of existing objects and the fields of the new payload"},{"line_number":171,"context_line":"object. For example the service.status notification reuses the existing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_2a11495d","line":168,"range":{"start_line":168,"start_character":44,"end_line":168,"end_character":60},"updated":"2016-01-06 15:07:28.000000000","message":"nit: should be \"existing versionedobject\", not versionedobjects (drop the \u0027s\u0027)","commit_id":"c36ace35c014bef929a2451408349c931c1b1f90"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"81cbdf614993dc5ec89ee947d730f75246c999d4","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    }"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"There is a possibility to reuse an existing versionedobjects as notification"},{"line_number":169,"context_line":"payload by adding a `SCHEMA` field for the payload class that defines a mapping"},{"line_number":170,"context_line":"between the fields of existing objects and the fields of the new payload"},{"line_number":171,"context_line":"object. For example the service.status notification reuses the existing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_54f594ea","line":168,"range":{"start_line":168,"start_character":44,"end_line":168,"end_character":60},"in_reply_to":"fa69d971_2a11495d","updated":"2016-01-09 12:44:03.000000000","message":"Done","commit_id":"c36ace35c014bef929a2451408349c931c1b1f90"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cc8bae6193d7443e4b8f303b9cbd000621909f8e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"on the wire."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Every item in the `SCHEMA` has the syntax of"},{"line_number":230,"context_line":"\u003cpayload field name which needs to be filled\u003e: (\u003cname of the parameter of the populate_schema call\u003e, \u003cthe name of a field of the parameter object\u003e)"},{"line_number":231,"context_line":"The mapping defined in the `SCHEMA` field has the following semantics. When"},{"line_number":232,"context_line":"the `populate_schema` function is called the content of the `SCHEMA` field is"},{"line_number":233,"context_line":"enumerated and the value of the field of the pointed parameter object is copied"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_004dc171","line":230,"updated":"2016-01-08 12:05:06.000000000","message":"Nit: this line is very log. maybe turn it into a code block?","commit_id":"c36ace35c014bef929a2451408349c931c1b1f90"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"81cbdf614993dc5ec89ee947d730f75246c999d4","unresolved":false,"context_lines":[{"line_number":227,"context_line":"on the wire."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Every item in the `SCHEMA` has the syntax of"},{"line_number":230,"context_line":"\u003cpayload field name which needs to be filled\u003e: (\u003cname of the parameter of the populate_schema call\u003e, \u003cthe name of a field of the parameter object\u003e)"},{"line_number":231,"context_line":"The mapping defined in the `SCHEMA` field has the following semantics. When"},{"line_number":232,"context_line":"the `populate_schema` function is called the content of the `SCHEMA` field is"},{"line_number":233,"context_line":"enumerated and the value of the field of the pointed parameter object is copied"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_f4de086c","line":230,"in_reply_to":"fa69d971_004dc171","updated":"2016-01-09 12:44:03.000000000","message":"Done","commit_id":"c36ace35c014bef929a2451408349c931c1b1f90"}]}
