)]}'
{"doc/source/contributor/callbacks.rst":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9547954dc23fa920284414933bbb095835493ef9","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"  # A is using event in case for some callback or internal operations"},{"line_number":277,"context_line":"  registry.subscribe(callbackinternal, resources.ROUTER,"},{"line_number":278,"context_line":"                     events.BEFORE_CREATE, priority\u003d0)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"  # B and C express interest with I"},{"line_number":281,"context_line":"  registry.subscribe(callback1, resources.ROUTER, events.BEFORE_CREATE)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_46738581","line":278,"range":{"start_line":278,"start_character":51,"end_line":278,"end_character":53},"updated":"2018-03-07 20:05:32.000000000","message":"once actual constants are agreed upon. this needs to be updated.","commit_id":"27a19416ca6c0cf30f1b81aea120b429de24671d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9547954dc23fa920284414933bbb095835493ef9","unresolved":false,"context_lines":[{"line_number":515,"context_line":"   way of separating implementation from abstraction, because you can keep the callback in place"},{"line_number":516,"context_line":"   and change Taskflow with something else."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"  No, the ordering in which callbacks are notified is completely arbitrary by design: callbacks"},{"line_number":521,"context_line":"  should know nothing about each other, and ordering should not matter; a callback will always be"},{"line_number":522,"context_line":"  notified and its outcome should always be the same regardless as to in which order is it"},{"line_number":523,"context_line":"  notified. Priorities can be a future extension, if a use case arises that require enforced"},{"line_number":524,"context_line":"  ordering."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_46f865c3","line":524,"range":{"start_line":518,"start_character":0,"end_line":524,"end_character":11},"updated":"2018-03-07 20:05:32.000000000","message":"this should be updated.","commit_id":"27a19416ca6c0cf30f1b81aea120b429de24671d"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8861be4a9143720b3e3a3d67a2292a3e565cf363","unresolved":false,"context_lines":[{"line_number":515,"context_line":"   way of separating implementation from abstraction, because you can keep the callback in place"},{"line_number":516,"context_line":"   and change Taskflow with something else."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"  No, the ordering in which callbacks are notified is completely arbitrary by design: callbacks"},{"line_number":521,"context_line":"  should know nothing about each other, and ordering should not matter; a callback will always be"},{"line_number":522,"context_line":"  notified and its outcome should always be the same regardless as to in which order is it"},{"line_number":523,"context_line":"  notified. Priorities can be a future extension, if a use case arises that require enforced"},{"line_number":524,"context_line":"  ordering."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_571f9a6b","line":524,"range":{"start_line":518,"start_character":0,"end_line":524,"end_character":11},"in_reply_to":"df7087c5_46f865c3","updated":"2018-03-08 18:03:01.000000000","message":"Done","commit_id":"27a19416ca6c0cf30f1b81aea120b429de24671d"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"1dabe6da01b0833804417dd3e751d300b6900bcd","unresolved":false,"context_lines":[{"line_number":221,"context_line":"A wants to tell B and C that the router has been created and that they need to get on and"},{"line_number":222,"context_line":"do whatever they are supposed to do. Core neutron can also use or subsribe these events and"},{"line_number":223,"context_line":"trigger some tasks like db transactions or preparing data for entities like B and C, In that"},{"line_number":224,"context_line":"case the order of execution of events needs to be maitained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_efeec520","line":224,"range":{"start_line":224,"start_character":50,"end_line":224,"end_character":59},"updated":"2018-03-22 13:05:57.000000000","message":"spelling","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"284cf670c1cd9a184074c8a1716545f0ae16c48e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"A wants to tell B and C that the router has been created and that they need to get on and"},{"line_number":222,"context_line":"do whatever they are supposed to do. Core neutron can also use or subsribe these events and"},{"line_number":223,"context_line":"trigger some tasks like db transactions or preparing data for entities like B and C, In that"},{"line_number":224,"context_line":"case the order of execution of events needs to be maitained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_414c5dc7","line":224,"range":{"start_line":224,"start_character":50,"end_line":224,"end_character":59},"in_reply_to":"df7087c5_efeec520","updated":"2018-03-22 19:59:02.000000000","message":"Done","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"1dabe6da01b0833804417dd3e751d300b6900bcd","unresolved":false,"context_lines":[{"line_number":224,"context_line":"case the order of execution of events needs to be maitained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"},{"line_number":228,"context_line":"and using it with the events and by default all callbacks with given default priority. In a"},{"line_number":229,"context_line":"callback-less world this would work like so:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_efd7a54a","line":227,"range":{"start_line":227,"start_character":43,"end_line":227,"end_character":65},"updated":"2018-03-22 13:05:57.000000000","message":"Please use formatting for code words.. e.g.\n\n  ``neutron-lib/callbacks/``","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"284cf670c1cd9a184074c8a1716545f0ae16c48e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"case the order of execution of events needs to be maitained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"},{"line_number":228,"context_line":"and using it with the events and by default all callbacks with given default priority. In a"},{"line_number":229,"context_line":"callback-less world this would work like so:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_614961b5","line":227,"range":{"start_line":227,"start_character":43,"end_line":227,"end_character":65},"in_reply_to":"df7087c5_efd7a54a","updated":"2018-03-22 19:59:02.000000000","message":"Done","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"5cf6c0f9ea00561f91547cb71b29f298315093aa","unresolved":false,"context_lines":[{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"},{"line_number":228,"context_line":"and using it with the events and by default all callbacks with given default priority. In a"},{"line_number":229,"context_line":"callback-less world this would work like so:"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"::"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_4c635b43","line":229,"range":{"start_line":229,"start_character":44,"end_line":229,"end_character":44},"updated":"2018-03-12 01:48:35.000000000","message":"# NOTE(yamahata):smallest one is called first.\n# DEFAULT and LAST are chosen as big enough, not too big, eye catchy\n# and unique/easy for grep. Lasting zero digits are for the usage, like\n# PRIORITY_DEFAULT, PRIORITY_DEFAULT + 1, so that human can easily distinguish\n# them and it\u0027s friendly for grep.\n# i.e. 5555, 5556, 5557... vs 55550000, 55550001, 55550002...\n# each resources would want to define their own symbolic values for their use.\n\nthose should be mentioned.","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"1dabe6da01b0833804417dd3e751d300b6900bcd","unresolved":false,"context_lines":[{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"},{"line_number":228,"context_line":"and using it with the events and by default all callbacks with given default priority. In a"},{"line_number":229,"context_line":"callback-less world this would work like so:"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"::"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_ef3c8594","line":229,"range":{"start_line":229,"start_character":44,"end_line":229,"end_character":44},"in_reply_to":"df7087c5_4c635b43","updated":"2018-03-22 13:05:57.000000000","message":"+1 I think we need to talk about the priority values here and how to select a proper one.","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"284cf670c1cd9a184074c8a1716545f0ae16c48e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in neutron-lib/callbacks/ is for defining priorities"},{"line_number":228,"context_line":"and using it with the events and by default all callbacks with given default priority. In a"},{"line_number":229,"context_line":"callback-less world this would work like so:"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"::"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_8156f55b","line":229,"range":{"start_line":229,"start_character":44,"end_line":229,"end_character":44},"in_reply_to":"df7087c5_ef3c8594","updated":"2018-03-22 19:59:02.000000000","message":"Done ! add a short note, because we only have priority default now.","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"1dabe6da01b0833804417dd3e751d300b6900bcd","unresolved":false,"context_lines":[{"line_number":520,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":521,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":522,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":523,"context_line":"  will use same default  priority and will be executed arbitarily without any order."},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":526,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_0fbc5904","line":523,"range":{"start_line":523,"start_character":23,"end_line":523,"end_character":25},"updated":"2018-03-22 13:05:57.000000000","message":"extra space","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"284cf670c1cd9a184074c8a1716545f0ae16c48e","unresolved":false,"context_lines":[{"line_number":520,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":521,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":522,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":523,"context_line":"  will use same default  priority and will be executed arbitarily without any order."},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":526,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_01c8a51f","line":523,"range":{"start_line":523,"start_character":23,"end_line":523,"end_character":25},"in_reply_to":"df7087c5_0fbc5904","updated":"2018-03-22 19:59:02.000000000","message":"Done","commit_id":"1cd0e5c3791d57683fd96ef30bf62cd9437b936f"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"bc48bc4cc669422828b059df287fcb9a7344c0c3","unresolved":false,"context_lines":[{"line_number":231,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"},{"line_number":232,"context_line":"and there will be no guarantee for execution order of those. The callbacks having lower priority"},{"line_number":233,"context_line":"values will be executed first. There is PRIORITY_DEFAULT with some value which can be manipulated"},{"line_number":234,"context_line":"to increase or decrease priority."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"  # A is done creating the resource"},{"line_number":239,"context_line":"  # A gets hold of the references of B and C"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_00a89589","line":236,"range":{"start_line":234,"start_character":33,"end_line":236,"end_character":2},"updated":"2018-03-23 04:49:02.000000000","message":"the reason why the default priority value is chosen should be mentioned.\nand also how to define other priority should be mentioned.\nas caution it should be noted that \"/\" shouldn\u0027t be used.","commit_id":"6093137c242bfbf4f3a9e22d30a7ed75f23b728b"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"21f16f3cb6247143b6fcbd7e1f60a77d96e62857","unresolved":false,"context_lines":[{"line_number":231,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"},{"line_number":232,"context_line":"and there will be no guarantee for execution order of those. The callbacks having lower priority"},{"line_number":233,"context_line":"values will be executed first. There is PRIORITY_DEFAULT with some value which can be manipulated"},{"line_number":234,"context_line":"to increase or decrease priority."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"  # A is done creating the resource"},{"line_number":239,"context_line":"  # A gets hold of the references of B and C"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_514df36f","line":236,"range":{"start_line":234,"start_character":33,"end_line":236,"end_character":2},"in_reply_to":"df7087c5_00a89589","updated":"2018-03-23 15:43:33.000000000","message":"done","commit_id":"6093137c242bfbf4f3a9e22d30a7ed75f23b728b"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"bc48bc4cc669422828b059df287fcb9a7344c0c3","unresolved":false,"context_lines":[{"line_number":522,"context_line":""},{"line_number":523,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":526,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":527,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":528,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":531,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_a0ea09d5","line":528,"range":{"start_line":525,"start_character":0,"end_line":528,"end_character":83},"updated":"2018-03-23 04:49:02.000000000","message":"the case that multiple callbacks with same explicit priority should be mentioned.\nthere is no guarantee of order in those callbacks.","commit_id":"6093137c242bfbf4f3a9e22d30a7ed75f23b728b"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"21f16f3cb6247143b6fcbd7e1f60a77d96e62857","unresolved":false,"context_lines":[{"line_number":522,"context_line":""},{"line_number":523,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":526,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":527,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":528,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":531,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"df7087c5_111e9b5e","line":528,"range":{"start_line":525,"start_character":0,"end_line":528,"end_character":83},"in_reply_to":"df7087c5_a0ea09d5","updated":"2018-03-23 15:43:33.000000000","message":"is it not clear from \"will use same default priority and will be executed arbitarily without any order\" that any same priority values doesn\u0027t guarantee order ?. I don\u0027t think same lines need to be repeated saying explicit because idea is if priority is same then no guarantee for order of execution.","commit_id":"6093137c242bfbf4f3a9e22d30a7ed75f23b728b"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. All the callbacks will get default priority value in case priority"},{"line_number":229,"context_line":"is not defined explicitly and the default value, chosen is big enough to manipulate easily for"},{"line_number":230,"context_line":"setting other priorities. Each resource can define their own symbolic values and can manipulate"},{"line_number":231,"context_line":"default value to increase or decrease the priority."},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_d5fe6bad","line":229,"range":{"start_line":228,"start_character":30,"end_line":229,"end_character":26},"updated":"2018-03-23 23:18:20.000000000","message":"I find this unnecessary, as it is also indicated in L233-234","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"96105c2323a21768ae5db9ed1c5c2f855eaca24e","unresolved":false,"context_lines":[{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. All the callbacks will get default priority value in case priority"},{"line_number":229,"context_line":"is not defined explicitly and the default value, chosen is big enough to manipulate easily for"},{"line_number":230,"context_line":"setting other priorities. Each resource can define their own symbolic values and can manipulate"},{"line_number":231,"context_line":"default value to increase or decrease the priority."},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_c7d23335","line":229,"range":{"start_line":228,"start_character":30,"end_line":229,"end_character":26},"in_reply_to":"bf659307_d5fe6bad","updated":"2018-03-25 16:42:25.000000000","message":"Done","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. All the callbacks will get default priority value in case priority"},{"line_number":229,"context_line":"is not defined explicitly and the default value, chosen is big enough to manipulate easily for"},{"line_number":230,"context_line":"setting other priorities. Each resource can define their own symbolic values and can manipulate"},{"line_number":231,"context_line":"default value to increase or decrease the priority."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_151e230c","line":230,"range":{"start_line":229,"start_character":30,"end_line":230,"end_character":23},"updated":"2018-03-23 23:18:20.000000000","message":"I would move this as a sentence by itself after the first period (\u0027.\u0027) in L234","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"96105c2323a21768ae5db9ed1c5c2f855eaca24e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. All the callbacks will get default priority value in case priority"},{"line_number":229,"context_line":"is not defined explicitly and the default value, chosen is big enough to manipulate easily for"},{"line_number":230,"context_line":"setting other priorities. Each resource can define their own symbolic values and can manipulate"},{"line_number":231,"context_line":"default value to increase or decrease the priority."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_2718cf1b","line":230,"range":{"start_line":229,"start_character":30,"end_line":230,"end_character":23},"in_reply_to":"bf659307_151e230c","updated":"2018-03-25 16:42:25.000000000","message":"Done","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":527,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_75dc3f18","line":530,"range":{"start_line":530,"start_character":14,"end_line":530,"end_character":25},"updated":"2018-03-23 23:18:20.000000000","message":"order, meaning","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":527,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_95e1d3d3","line":530,"range":{"start_line":530,"start_character":46,"end_line":530,"end_character":51},"updated":"2018-03-23 23:18:20.000000000","message":"the lowest","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"96105c2323a21768ae5db9ed1c5c2f855eaca24e","unresolved":false,"context_lines":[{"line_number":527,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_071b4b1b","line":530,"range":{"start_line":530,"start_character":46,"end_line":530,"end_character":51},"in_reply_to":"bf659307_95e1d3d3","updated":"2018-03-25 16:42:25.000000000","message":"Done","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"How is the notifying object expected to interact with the subscribing objects?"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_55049b7b","line":531,"range":{"start_line":531,"start_character":19,"end_line":531,"end_character":82},"updated":"2018-03-23 23:18:20.000000000","message":"In the other alternative, where priorities are not explicitly defined,","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"How is the notifying object expected to interact with the subscribing objects?"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_f5f84f7d","line":531,"range":{"start_line":531,"start_character":91,"end_line":531,"end_character":99},"updated":"2018-03-23 23:18:20.000000000","message":"callbacks","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"96105c2323a21768ae5db9ed1c5c2f855eaca24e","unresolved":false,"context_lines":[{"line_number":528,"context_line":""},{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"How is the notifying object expected to interact with the subscribing objects?"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_671ec70d","line":531,"range":{"start_line":531,"start_character":91,"end_line":531,"end_character":99},"in_reply_to":"bf659307_f5f84f7d","updated":"2018-03-25 16:42:25.000000000","message":"Done","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9458e0664f9242db8858635e8b0e5b56aea601a3","unresolved":false,"context_lines":[{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":535,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_15f62391","line":532,"range":{"start_line":532,"start_character":54,"end_line":532,"end_character":82},"updated":"2018-03-23 23:18:20.000000000","message":"in an arbitrary order","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"96105c2323a21768ae5db9ed1c5c2f855eaca24e","unresolved":false,"context_lines":[{"line_number":529,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":530,"context_line":"  executed in order means the callback having lower integer value for priority will be executed"},{"line_number":531,"context_line":"  first and so on. The second case is when priority is not explicitly defined then all the callback"},{"line_number":532,"context_line":"  will use same default priority and will be executed arbitarily without any order."},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":535,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf659307_4721434d","line":532,"range":{"start_line":532,"start_character":54,"end_line":532,"end_character":82},"in_reply_to":"bf659307_15f62391","updated":"2018-03-25 16:42:25.000000000","message":"Done","commit_id":"4b876fa93bb666515943d2546dfb615651a96906"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Imagine that you have entity A, B, and C that have some common business over router creation."},{"line_number":221,"context_line":"A wants to tell B and C that the router has been created and that they need to get on and"},{"line_number":222,"context_line":"do whatever they are supposed to do. Core neutron can also use or subsribe these events and"},{"line_number":223,"context_line":"trigger some tasks like db transactions or preparing data for entities like B and C, In that"},{"line_number":224,"context_line":"case the order of execution of events needs to be maintained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. Each resource can define their own symbolic values and can"},{"line_number":229,"context_line":"manipulate default value to increase or decrease the priority."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"},{"line_number":232,"context_line":"and there will be no guarantee for execution order of those. The default value, chosen is big"},{"line_number":233,"context_line":"enough to manipulate easily for setting other priorities. The callbacks having the lowest"},{"line_number":234,"context_line":"priority values will be executed first. There is PRIORITY_DEFAULT with some value which can be manipulated to increase or decrease priority. Use of division (/) to PRIORITY_DEFAULT for setting"},{"line_number":235,"context_line":"priorities is not recommended as it can change the type of priority value to float."},{"line_number":236,"context_line":"In a callback-less world this would work like so:"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_3a1bfd73","line":235,"range":{"start_line":222,"start_character":37,"end_line":235,"end_character":83},"updated":"2018-04-05 23:02:11.000000000","message":"I don\u0027t think this paragraph is in the best possible place for this explanation. It completely breaks the flow of the rest of the explanation in L236-312. In fact, I would get rid of it and instead use the example in L236-312 to introduce the concept of priorities","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"466154a278cf7444374f916003debd62c59ca1c0","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Imagine that you have entity A, B, and C that have some common business over router creation."},{"line_number":221,"context_line":"A wants to tell B and C that the router has been created and that they need to get on and"},{"line_number":222,"context_line":"do whatever they are supposed to do. Core neutron can also use or subsribe these events and"},{"line_number":223,"context_line":"trigger some tasks like db transactions or preparing data for entities like B and C, In that"},{"line_number":224,"context_line":"case the order of execution of events needs to be maintained to avoid any breakages or sending"},{"line_number":225,"context_line":"incomplete data out to subscribed entities. This is achieved via priorities of callbacks,"},{"line_number":226,"context_line":"for each subscription it should have an integer priority attached, lower the number, means"},{"line_number":227,"context_line":"higher the priority. The priority_group in ``neutron-lib/callbacks/`` is for defining priorities"},{"line_number":228,"context_line":"and using it with the events. Each resource can define their own symbolic values and can"},{"line_number":229,"context_line":"manipulate default value to increase or decrease the priority."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"Note that all the callbacks will get default priority if priorities are not explicitly defined"},{"line_number":232,"context_line":"and there will be no guarantee for execution order of those. The default value, chosen is big"},{"line_number":233,"context_line":"enough to manipulate easily for setting other priorities. The callbacks having the lowest"},{"line_number":234,"context_line":"priority values will be executed first. There is PRIORITY_DEFAULT with some value which can be manipulated to increase or decrease priority. Use of division (/) to PRIORITY_DEFAULT for setting"},{"line_number":235,"context_line":"priorities is not recommended as it can change the type of priority value to float."},{"line_number":236,"context_line":"In a callback-less world this would work like so:"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_fa333361","line":235,"range":{"start_line":222,"start_character":37,"end_line":235,"end_character":83},"in_reply_to":"bf659307_3a1bfd73","updated":"2018-04-06 17:55:05.000000000","message":"Done","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":277,"context_line":"      print(\u0027Callback2 called by trigger: \u0027, trigger)"},{"line_number":278,"context_line":"      print(\u0027payload: \u0027, payload)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"  def callbackinternal(resource, event, trigger, payload):"},{"line_number":281,"context_line":"      print(\"Prepared data for entities\")"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"  # A is using event in case for some callback or internal operations"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_1a2cf997","line":280,"range":{"start_line":280,"start_character":6,"end_line":280,"end_character":22},"updated":"2018-04-05 23:02:11.000000000","message":"I would call this callbackhighpriority","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":280,"context_line":"  def callbackinternal(resource, event, trigger, payload):"},{"line_number":281,"context_line":"      print(\"Prepared data for entities\")"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"  # A is using event in case for some callback or internal operations"},{"line_number":284,"context_line":"  registry.subscribe(callbackinternal, resources.ROUTER,"},{"line_number":285,"context_line":"                     events.BEFORE_CREATE, priority\u003d0)"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_da5a0129","line":283,"range":{"start_line":283,"start_character":4,"end_line":283,"end_character":5},"updated":"2018-04-05 23:02:11.000000000","message":"I think there should be a D party that is going to register the higher priority callback. Please introduce D in L240-245 and L252-258","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"::"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"  \u003e Subscribed"},{"line_number":308,"context_line":"  \u003e Notifying..."},{"line_number":309,"context_line":"  \u003e Callback2 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":310,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":311,"context_line":"  \u003e Callback1 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":312,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":315,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_3a621dda","line":312,"range":{"start_line":307,"start_character":0,"end_line":312,"end_character":82},"updated":"2018-04-05 23:02:11.000000000","message":"Update the output here accordingly","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"466154a278cf7444374f916003debd62c59ca1c0","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"::"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"  \u003e Subscribed"},{"line_number":308,"context_line":"  \u003e Notifying..."},{"line_number":309,"context_line":"  \u003e Callback2 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":310,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":311,"context_line":"  \u003e Callback1 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":312,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":315,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_0ca4b907","line":312,"range":{"start_line":307,"start_character":0,"end_line":312,"end_character":82},"in_reply_to":"bf659307_3a621dda","updated":"2018-04-06 17:55:05.000000000","message":"Done","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":315,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Subscribing and aborting events"},{"line_number":319,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_5a8d9179","line":316,"updated":"2018-04-05 23:02:11.000000000","message":"Then I recommend a paragraph here with bullet points explaining the rules, which are:\n\n1) All callbacks are registered with a priority\n2) If when registering a callback, a priority is not provided, a default one is assigned to it\n3) Lower priority callbacks are executed earlier\n4) Within the same priority, callbacks are called in unpredictable order\n5) If you want your callbacks to have priorities you have to select and code them in priority_group in ``neutron-lib/callbacks/","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"466154a278cf7444374f916003debd62c59ca1c0","unresolved":false,"context_lines":[{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":315,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Subscribing and aborting events"},{"line_number":319,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_5ae1ffcf","line":316,"in_reply_to":"bf659307_5a8d9179","updated":"2018-04-06 17:55:05.000000000","message":"done !","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":525,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":528,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be executed"},{"line_number":529,"context_line":"  first and so on. In the other alternative, where priorities are not explicitly defined then all the callbacks"},{"line_number":530,"context_line":"  will use same default priority and will be executed in an arbitary order."},{"line_number":531,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_fa5ee5e7","line":528,"range":{"start_line":528,"start_character":100,"end_line":528,"end_character":103},"updated":"2018-04-05 23:02:11.000000000","message":"Nit: be careful with these looong lines. Look at the on in L234 above","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"466154a278cf7444374f916003debd62c59ca1c0","unresolved":false,"context_lines":[{"line_number":525,"context_line":"Is there any ordering guarantee during notifications?"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":528,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be executed"},{"line_number":529,"context_line":"  first and so on. In the other alternative, where priorities are not explicitly defined then all the callbacks"},{"line_number":530,"context_line":"  will use same default priority and will be executed in an arbitary order."},{"line_number":531,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_ace26d2e","line":528,"range":{"start_line":528,"start_character":100,"end_line":528,"end_character":103},"in_reply_to":"bf659307_fa5ee5e7","updated":"2018-04-06 17:55:05.000000000","message":"Done","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5b1bd529663db95ec47a29ee5de461c60922805f","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":528,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be executed"},{"line_number":529,"context_line":"  first and so on. In the other alternative, where priorities are not explicitly defined then all the callbacks"},{"line_number":530,"context_line":"  will use same default priority and will be executed in an arbitary order."},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_ba3f0d86","line":530,"range":{"start_line":529,"start_character":20,"end_line":530,"end_character":75},"updated":"2018-04-05 23:02:11.000000000","message":"This makes it sound as either you have priorities or you don\u0027t. You always have priorities. The callbacks with within each priority are executed in unpredictable order","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"466154a278cf7444374f916003debd62c59ca1c0","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":528,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be executed"},{"line_number":529,"context_line":"  first and so on. In the other alternative, where priorities are not explicitly defined then all the callbacks"},{"line_number":530,"context_line":"  will use same default priority and will be executed in an arbitary order."},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf659307_8ce5293b","line":530,"range":{"start_line":529,"start_character":20,"end_line":530,"end_character":75},"in_reply_to":"bf659307_ba3f0d86","updated":"2018-04-06 17:55:05.000000000","message":"two cases either you explicitly define priority or it will be using default priority value.","commit_id":"bfe53ab59e04910e97ecc49734af6dd39df9b79e"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"488222b0a16ea3f7be12dd4076b007f222855683","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, there is no"},{"line_number":309,"context_line":"guarantee for execution order of callbacks. There is callback priority mechanism"},{"line_number":310,"context_line":"in place to gurantee the order of execution for callbacks, entities have to subscribe"},{"line_number":311,"context_line":"events with a priority number of Integer type, lower the number the higher would be"},{"line_number":312,"context_line":"the priority of callback. The following adds more details:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bf659307_688cfd7e","line":309,"range":{"start_line":308,"start_character":69,"end_line":309,"end_character":42},"updated":"2018-04-10 15:20:56.000000000","message":"This needs update.\nthere is no guarantee of ... within same priority.","commit_id":"336736c12aa4112eb5fd3c60cfd827dff39f0027"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b051c7566b91333699bf8330f7589ec4c34bcaa","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, there is no"},{"line_number":309,"context_line":"guarantee for execution order of callbacks. There is callback priority mechanism"},{"line_number":310,"context_line":"in place to gurantee the order of execution for callbacks, entities have to subscribe"},{"line_number":311,"context_line":"events with a priority number of Integer type, lower the number the higher would be"},{"line_number":312,"context_line":"the priority of callback. The following adds more details:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bf659307_a8e1b5fe","line":309,"range":{"start_line":308,"start_character":69,"end_line":309,"end_character":42},"in_reply_to":"bf659307_688cfd7e","updated":"2018-04-10 15:24:44.000000000","message":"i\u0027ll make it past tense, I meant there was no guarantee before callback priority mechanism.","commit_id":"336736c12aa4112eb5fd3c60cfd827dff39f0027"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"488222b0a16ea3f7be12dd4076b007f222855683","unresolved":false,"context_lines":[{"line_number":528,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":529,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be"},{"line_number":530,"context_line":"  executed first and so on. When priorities are not explicitly defined during subscription, all"},{"line_number":531,"context_line":"  the callbacks will have default priority and will be executed in an arbitary order."},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":534,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"bf659307_48e6d946","line":531,"range":{"start_line":531,"start_character":85,"end_line":531,"end_character":85},"updated":"2018-04-10 15:20:56.000000000","message":"you should mention the case of multiple callbacks with same priorities.\n\nalso as usage, it should be explicitly mentioned that multiple callbacks of same priority can be registered.\ni.e. it\u0027s priority group.","commit_id":"336736c12aa4112eb5fd3c60cfd827dff39f0027"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b051c7566b91333699bf8330f7589ec4c34bcaa","unresolved":false,"context_lines":[{"line_number":528,"context_line":"  Depends, if the prorities are defined or passed during subscription, then yes callbacks will be"},{"line_number":529,"context_line":"  executed in order, meaning the callback having the lowest integer value for priority will be"},{"line_number":530,"context_line":"  executed first and so on. When priorities are not explicitly defined during subscription, all"},{"line_number":531,"context_line":"  the callbacks will have default priority and will be executed in an arbitary order."},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"How is the notifying object expected to interact with the subscribing objects?"},{"line_number":534,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"bf659307_08a1c1a9","line":531,"range":{"start_line":531,"start_character":85,"end_line":531,"end_character":85},"in_reply_to":"bf659307_48e6d946","updated":"2018-04-10 15:24:44.000000000","message":"default priority is clearly mentioning the case of same priority and it also says order is not guaranteed","commit_id":"336736c12aa4112eb5fd3c60cfd827dff39f0027"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":245,"context_line":"  I-\u003enotify()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Since B and C will have expressed interest in knowing about A\u0027s business, and D also"},{"line_number":248,"context_line":"subscribed for router creation with high priority, \u0027I\u0027 will deliver the messages to D"},{"line_number":249,"context_line":"first and then to B and C in any order."},{"line_number":250,"context_line":"If B, C and D changes, A and \u0027I\u0027 do not need to change."},{"line_number":251,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_6336e453","line":248,"range":{"start_line":248,"start_character":36,"end_line":248,"end_character":40},"updated":"2018-04-25 19:21:31.000000000","message":"higher","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":245,"context_line":"  I-\u003enotify()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Since B and C will have expressed interest in knowing about A\u0027s business, and D also"},{"line_number":248,"context_line":"subscribed for router creation with high priority, \u0027I\u0027 will deliver the messages to D"},{"line_number":249,"context_line":"first and then to B and C in any order."},{"line_number":250,"context_line":"If B, C and D changes, A and \u0027I\u0027 do not need to change."},{"line_number":251,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_ac4dc9c4","line":248,"range":{"start_line":248,"start_character":36,"end_line":248,"end_character":40},"in_reply_to":"9f6a8fd7_6336e453","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":247,"context_line":"Since B and C will have expressed interest in knowing about A\u0027s business, and D also"},{"line_number":248,"context_line":"subscribed for router creation with high priority, \u0027I\u0027 will deliver the messages to D"},{"line_number":249,"context_line":"first and then to B and C in any order."},{"line_number":250,"context_line":"If B, C and D changes, A and \u0027I\u0027 do not need to change."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"In practical terms this scenario would be translated in the code below:"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_e34194a7","line":250,"range":{"start_line":250,"start_character":14,"end_line":250,"end_character":21},"updated":"2018-04-25 19:21:31.000000000","message":"change","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":247,"context_line":"Since B and C will have expressed interest in knowing about A\u0027s business, and D also"},{"line_number":248,"context_line":"subscribed for router creation with high priority, \u0027I\u0027 will deliver the messages to D"},{"line_number":249,"context_line":"first and then to B and C in any order."},{"line_number":250,"context_line":"If B, C and D changes, A and \u0027I\u0027 do not need to change."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"In practical terms this scenario would be translated in the code below:"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_cc483db4","line":250,"range":{"start_line":250,"start_character":14,"end_line":250,"end_character":21},"in_reply_to":"9f6a8fd7_e34194a7","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":269,"context_line":"  def callbackhighproirity(resource, event, trigger, payload):"},{"line_number":270,"context_line":"      print(\"Prepared data for entities\")"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"  # A is using event in case for some callback or internal operations"},{"line_number":273,"context_line":"  registry.subscribe(callbackhighpriority, resources.ROUTER,"},{"line_number":274,"context_line":"                     events.BEFORE_CREATE, priority\u003d0)"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_036fe82a","line":272,"range":{"start_line":272,"start_character":4,"end_line":272,"end_character":5},"updated":"2018-04-25 19:21:31.000000000","message":"should this be D?","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":269,"context_line":"  def callbackhighproirity(resource, event, trigger, payload):"},{"line_number":270,"context_line":"      print(\"Prepared data for entities\")"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"  # A is using event in case for some callback or internal operations"},{"line_number":273,"context_line":"  registry.subscribe(callbackhighpriority, resources.ROUTER,"},{"line_number":274,"context_line":"                     events.BEFORE_CREATE, priority\u003d0)"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_4c5d0d77","line":272,"range":{"start_line":272,"start_character":4,"end_line":272,"end_character":5},"in_reply_to":"9f6a8fd7_036fe82a","updated":"2018-04-25 21:35:51.000000000","message":"no A is using same event which D wants high priority on","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":302,"context_line":"  \u003e Callback1 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":303,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_03584885","line":305,"range":{"start_line":305,"start_character":72,"end_line":305,"end_character":83},"updated":"2018-04-25 19:21:31.000000000","message":"A, B, C and D","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":302,"context_line":"  \u003e Callback1 called by trigger:  \u003cfunction do_notify at 0x7f2a5d663410\u003e"},{"line_number":303,"context_line":"  \u003e payload: \u003cneutron_lib._callbacks.events.EventPayload object at 0x7ff9ed253510\u003e"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_2ccf7929","line":305,"range":{"start_line":305,"start_character":72,"end_line":305,"end_character":83},"in_reply_to":"9f6a8fd7_03584885","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_23530c6d","line":308,"range":{"start_line":308,"start_character":69,"end_line":308,"end_character":72},"updated":"2018-04-25 19:21:31.000000000","message":"the","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Thanks to the intermediary existence throughout the life of the system, A, B, and C"},{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_4cd2edd2","line":308,"range":{"start_line":308,"start_character":69,"end_line":308,"end_character":72},"in_reply_to":"9f6a8fd7_23530c6d","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_43cf2028","line":309,"range":{"start_line":309,"start_character":79,"end_line":309,"end_character":88},"updated":"2018-04-25 19:21:31.000000000","message":", entities","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_83c9b826","line":309,"range":{"start_line":309,"start_character":34,"end_line":309,"end_character":42},"updated":"2018-04-25 19:21:31.000000000","message":"guarantee","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":306,"context_line":"are flexible to evolve their internals, dynamics, and lifecycles."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_ecdc21e5","line":309,"range":{"start_line":309,"start_character":34,"end_line":309,"end_character":42},"in_reply_to":"9f6a8fd7_83c9b826","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ecc89c3a7bceb1de1322abd4a97ace9d75430866","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Priorities for callbacks should be coded in `neutron_lib/callbacks/priority_group.py`"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_23d8ecec","line":310,"range":{"start_line":310,"start_character":65,"end_line":310,"end_character":71},"updated":"2018-04-25 19:21:31.000000000","message":"the lower","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"fe315a8745211e2f64fa27c79b0fb4f9c03e349c","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Since different entities can subscribe to same events of a resource, The callback"},{"line_number":309,"context_line":"priority mechanism is in place to gurantee the order of execution for callbacks,entities"},{"line_number":310,"context_line":"have to subscribe events with a priority number of Integer type, lower the number the"},{"line_number":311,"context_line":"higher would be the priority of callback. The following adds more details:"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Priorities for callbacks should be coded in `neutron_lib/callbacks/priority_group.py`"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9f6a8fd7_6cf25172","line":310,"range":{"start_line":310,"start_character":65,"end_line":310,"end_character":71},"in_reply_to":"9f6a8fd7_23d8ecec","updated":"2018-04-25 21:35:51.000000000","message":"Done","commit_id":"d9fda9566db1511d797a8b19818f86b25d2a37a3"}]}
