)]}'
{"doc/source/devref/share_hooks.rst":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"956f3ba59986b7c0f21dabe1059dcc3908bba31e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"--------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Errors in hook execution can be suppressed."},{"line_number":34,"context_line":"- Any of hooks can be disabled."},{"line_number":35,"context_line":"- Any amount of hook instances can be run at once for each manila-share"},{"line_number":36,"context_line":"    service."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_540ae2d3","line":34,"updated":"2015-07-20 05:16:04.000000000","message":"Any hook","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d9ed993787e50c84f4bda2fbac2781dc3d56fdb3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"--------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- Errors in hook execution can be suppressed."},{"line_number":34,"context_line":"- Any of hooks can be disabled."},{"line_number":35,"context_line":"- Any amount of hook instances can be run at once for each manila-share"},{"line_number":36,"context_line":"    service."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_a4552d1e","line":34,"in_reply_to":"3a50d1a3_540ae2d3","updated":"2015-07-20 10:56:24.000000000","message":"Done","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"956f3ba59986b7c0f21dabe1059dcc3908bba31e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Limitations"},{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronious. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_d4f6f2d6","line":41,"updated":"2015-07-20 05:16:04.000000000","message":"s/asynchronious/asynchronous","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d9ed993787e50c84f4bda2fbac2781dc3d56fdb3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Limitations"},{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronious. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_64364505","line":41,"in_reply_to":"3a50d1a3_d4f6f2d6","updated":"2015-07-20 10:56:24.000000000","message":"Done","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"956f3ba59986b7c0f21dabe1059dcc3908bba31e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    hook_drivers\u003dpath.to:FooClass,path.to:BarClass"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Then all classes defined above will be initialized. In the same config group"},{"line_number":70,"context_line":"can be redefined any config option of hook modules too."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":".. note::"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_94170aed","line":70,"updated":"2015-07-20 05:16:04.000000000","message":"In the same config group, any config option of hook modules can be redefined too.","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d9ed993787e50c84f4bda2fbac2781dc3d56fdb3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    hook_drivers\u003dpath.to:FooClass,path.to:BarClass"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Then all classes defined above will be initialized. In the same config group"},{"line_number":70,"context_line":"can be redefined any config option of hook modules too."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":".. note::"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_4418e984","line":70,"in_reply_to":"3a50d1a3_94170aed","updated":"2015-07-20 10:56:24.000000000","message":"Done","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"956f3ba59986b7c0f21dabe1059dcc3908bba31e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"- delete_share_server"},{"line_number":92,"context_line":"- publish_service_capabilities"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Above list with wrapped methods can be extended in future."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The :mod:`manila.share.hook.py` Module"},{"line_number":97,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_b4e7a611","line":94,"updated":"2015-07-20 05:16:04.000000000","message":"What do you mean by \"wrapped methods\"?","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d9ed993787e50c84f4bda2fbac2781dc3d56fdb3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"- delete_share_server"},{"line_number":92,"context_line":"- publish_service_capabilities"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Above list with wrapped methods can be extended in future."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The :mod:`manila.share.hook.py` Module"},{"line_number":97,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a50d1a3_2417dd52","line":94,"in_reply_to":"3a50d1a3_b4e7a611","updated":"2015-07-20 10:56:24.000000000","message":"See line 77.","commit_id":"0b66a6631c4d7735efbc7b530186881aa50167c9"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"f1d0ecf28315eca756ed7f760136ebd09a173149","unresolved":false,"context_lines":[{"line_number":61,"context_line":"How to use \u0027hook\u0027 implementations?"},{"line_number":62,"context_line":"----------------------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Just set config option \u0027hook_drivers\u0027 in driver\u0027s config group. For example::"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    [MY_DRIVER]"},{"line_number":67,"context_line":"    hook_drivers\u003dpath.to:FooClass,path.to:BarClass"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa1b9901_41d6fdf1","line":64,"updated":"2015-08-20 09:55:27.000000000","message":"I guess you mean the \"backend\" config group, right?","commit_id":"6f5f0e2bad1fccdd1597b0e22a654b2e542e1d28"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e3c171420befdb2af81839975d1af4a8804a1c77","unresolved":false,"context_lines":[{"line_number":61,"context_line":"How to use \u0027hook\u0027 implementations?"},{"line_number":62,"context_line":"----------------------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Just set config option \u0027hook_drivers\u0027 in driver\u0027s config group. For example::"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    [MY_DRIVER]"},{"line_number":67,"context_line":"    hook_drivers\u003dpath.to:FooClass,path.to:BarClass"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da20952f_ac2bc432","line":64,"in_reply_to":"fa1b9901_41d6fdf1","updated":"2015-09-02 12:34:23.000000000","message":"right","commit_id":"6f5f0e2bad1fccdd1597b0e22a654b2e542e1d28"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","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\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Manila share driver hooks are designed to provide additional possibilities"},{"line_number":18,"context_line":"for each :term:`manila-share` service. Such as any kind of notification and"},{"line_number":19,"context_line":"additional actions before and after share driver calls."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Possibilities"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_cf603f38","line":18,"range":{"start_line":18,"start_character":37,"end_line":18,"end_character":46},"updated":"2016-01-03 21:55:54.000000000","message":"guess you meant for a continuation:\n\n\n\nfor each :term:`manila-share` service; such as, any kind of notification or additional actions before and after share driver calls.","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","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\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Manila share driver hooks are designed to provide additional possibilities"},{"line_number":18,"context_line":"for each :term:`manila-share` service. Such as any kind of notification and"},{"line_number":19,"context_line":"additional actions before and after share driver calls."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Possibilities"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_36db6f1d","line":18,"range":{"start_line":18,"start_character":37,"end_line":18,"end_character":46},"in_reply_to":"fa69d971_cf603f38","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"51ed6214f78cf26aa1932a17dcde02eb6cc0c803","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Possibilities"},{"line_number":22,"context_line":"-------------"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- Perform actions before some share driver methods calls."},{"line_number":25,"context_line":"- Perform actions after some share driver methods calls with results of"},{"line_number":26,"context_line":"    driver call and preceding hook call."},{"line_number":27,"context_line":"- Call additional \u0027periodic\u0027 hook each \u0027N\u0027 ticks."}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_b29ea852","line":24,"range":{"start_line":24,"start_character":56,"end_line":24,"end_character":57},"updated":"2016-01-08 05:58:54.000000000","message":"I\u0027d prefer \"method calls\" over \"methods calls\"","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Possibilities"},{"line_number":22,"context_line":"-------------"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- Perform actions before some share driver methods calls."},{"line_number":25,"context_line":"- Perform actions after some share driver methods calls with results of"},{"line_number":26,"context_line":"    driver call and preceding hook call."},{"line_number":27,"context_line":"- Call additional \u0027periodic\u0027 hook each \u0027N\u0027 ticks."}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_56edc3b5","line":24,"range":{"start_line":24,"start_character":56,"end_line":24,"end_character":57},"in_reply_to":"fa69d971_b29ea852","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"- Perform actions after some share driver methods calls with results of"},{"line_number":26,"context_line":"    driver call and preceding hook call."},{"line_number":27,"context_line":"- Call additional \u0027periodic\u0027 hook each \u0027N\u0027 ticks."},{"line_number":28,"context_line":"- Possibility to update results of driver\u0027s action by post-running hook."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Features"},{"line_number":31,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_8f5a4782","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":72},"updated":"2016-01-03 21:55:54.000000000","message":"point 4 and point 2 are the same..","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"51ed6214f78cf26aa1932a17dcde02eb6cc0c803","unresolved":false,"context_lines":[{"line_number":25,"context_line":"- Perform actions after some share driver methods calls with results of"},{"line_number":26,"context_line":"    driver call and preceding hook call."},{"line_number":27,"context_line":"- Call additional \u0027periodic\u0027 hook each \u0027N\u0027 ticks."},{"line_number":28,"context_line":"- Possibility to update results of driver\u0027s action by post-running hook."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Features"},{"line_number":31,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_95f82e7e","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":72},"in_reply_to":"fa69d971_8f5a4782","updated":"2016-01-08 05:58:54.000000000","message":"I\u0027d keep this. It might be technically somewhat redundant with #2, but it\u0027s good to emphasize this use case w/o perform action.","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":25,"context_line":"- Perform actions after some share driver methods calls with results of"},{"line_number":26,"context_line":"    driver call and preceding hook call."},{"line_number":27,"context_line":"- Call additional \u0027periodic\u0027 hook each \u0027N\u0027 ticks."},{"line_number":28,"context_line":"- Possibility to update results of driver\u0027s action by post-running hook."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Features"},{"line_number":31,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_16caeb1a","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":72},"in_reply_to":"fa69d971_95f82e7e","updated":"2016-01-08 12:47:52.000000000","message":"They are not the same at all. Second says that we can use results of actions \u0027a\u0027 and \u0027b\u0027 in \u0027c\u0027, but forth says that we can return to original caller modified (in \u0027c\u0027) data of \u0027b\u0027.","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Limitations"},{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronous. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_af5dcb7a","line":41,"range":{"start_line":41,"start_character":38,"end_line":41,"end_character":40},"updated":"2016-01-03 21:55:54.000000000","message":"s/It means,/That is,","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Limitations"},{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronous. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_7689e7c9","line":41,"range":{"start_line":41,"start_character":38,"end_line":41,"end_character":40},"in_reply_to":"fa69d971_af5dcb7a","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronous. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implementation in share drivers"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_4f552f4e","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":38},"updated":"2016-01-03 21:55:54.000000000","message":"better to substitute instance with \u0027hook instance\u0027","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":39,"context_line":"-----------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- Hooks approach is not asynchronous. It means, if we run hooks, and"},{"line_number":42,"context_line":"    especially, more than one instance, then all of them will be executed in"},{"line_number":43,"context_line":"    one thread."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implementation in share drivers"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_d66f73fa","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":38},"in_reply_to":"fa69d971_4f552f4e","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Share drivers can [re]define method `get_periodic_hook_data` that runs with"},{"line_number":49,"context_line":"each execution of \u0027periodic\u0027 hook and receives list of shares (as parameter)"},{"line_number":50,"context_line":"with existing access rules. So, each share driver, for each its share can"},{"line_number":51,"context_line":"add/update some information that will be used then in periodic hook."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"What is required for writing new \u0027hook\u0027 implementation?"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_6f50335f","line":50,"range":{"start_line":50,"start_character":55,"end_line":50,"end_character":64},"updated":"2016-01-03 21:55:54.000000000","message":"s/each its/each of its\n\n\ns/share/shares","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Share drivers can [re]define method `get_periodic_hook_data` that runs with"},{"line_number":49,"context_line":"each execution of \u0027periodic\u0027 hook and receives list of shares (as parameter)"},{"line_number":50,"context_line":"with existing access rules. So, each share driver, for each its share can"},{"line_number":51,"context_line":"add/update some information that will be used then in periodic hook."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"What is required for writing new \u0027hook\u0027 implementation?"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_56538339","line":50,"range":{"start_line":50,"start_character":55,"end_line":50,"end_character":64},"in_reply_to":"fa69d971_6f50335f","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1bbe13d6a391da206c1ef697e209ce02055777e1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Share drivers can [re]define method `get_periodic_hook_data` that runs with"},{"line_number":49,"context_line":"each execution of \u0027periodic\u0027 hook and receives list of shares (as parameter)"},{"line_number":50,"context_line":"with existing access rules. So, each share driver, for each its share can"},{"line_number":51,"context_line":"add/update some information that will be used then in periodic hook."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"What is required for writing new \u0027hook\u0027 implementation?"},{"line_number":54,"context_line":"-------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_0f4f37be","line":51,"range":{"start_line":51,"start_character":53,"end_line":51,"end_character":54},"updated":"2016-01-03 21:55:54.000000000","message":"the periodic hook\n\n(missing article, the)","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Share drivers can [re]define method `get_periodic_hook_data` that runs with"},{"line_number":49,"context_line":"each execution of \u0027periodic\u0027 hook and receives list of shares (as parameter)"},{"line_number":50,"context_line":"with existing access rules. So, each share driver, for each its share can"},{"line_number":51,"context_line":"add/update some information that will be used then in periodic hook."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"What is required for writing new \u0027hook\u0027 implementation?"},{"line_number":54,"context_line":"-------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_161bcb81","line":51,"range":{"start_line":51,"start_character":53,"end_line":51,"end_character":54},"in_reply_to":"fa69d971_0f4f37be","updated":"2016-01-08 12:47:52.000000000","message":"Done","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef70ccd675405c55c0f2ad095f4832dcfee5840","unresolved":false,"context_lines":[{"line_number":89,"context_line":"- manage_share"},{"line_number":90,"context_line":"- publish_service_capabilities"},{"line_number":91,"context_line":"- shrink_share"},{"line_number":92,"context_line":"- unmanage_share"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Above list with wrapped methods can be extended in future."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a7b0d38_6527d7b6","line":92,"range":{"start_line":92,"start_character":2,"end_line":92,"end_character":16},"updated":"2015-12-26 04:25:05.000000000","message":"Will we need to keep this list updated as more methods are added?","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"749f1be3505fcfcc63a1b257d37f815707652502","unresolved":false,"context_lines":[{"line_number":89,"context_line":"- manage_share"},{"line_number":90,"context_line":"- publish_service_capabilities"},{"line_number":91,"context_line":"- shrink_share"},{"line_number":92,"context_line":"- unmanage_share"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Above list with wrapped methods can be extended in future."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa69d971_1102f509","line":92,"range":{"start_line":92,"start_character":2,"end_line":92,"end_character":16},"in_reply_to":"1a7b0d38_6527d7b6","updated":"2016-01-08 12:47:52.000000000","message":"Could be. Below sentence says that this list can be changed.","commit_id":"b9a95b5261b4ed185c9921d32fedc832e7faa83e"}]}
