)]}'
{"doc/source/bank_plugins_guide.rst":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Karbor Bank Plugins Development Guide"},{"line_number":4,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":".. contents:: :depth: 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_d4507ed7","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":37},"updated":"2017-07-23 08:01:10.000000000","message":"Can you remove the \"Karbor\" from the headline?\nThe whole document is in the Karbor docs, so it is a bit weird to start the headline with karbor.","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Karbor Bank Plugins Development Guide"},{"line_number":4,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":".. contents:: :depth: 2"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_87a118fb","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":37},"in_reply_to":"ff346bd7_d4507ed7","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":".. contents:: :depth: 2"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Introduction to the Karbor Bank Plugins Development Guide"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The Karbor Bank Plugins Development Guide provides instructions on how to develop"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_b45f3ae4","line":8,"range":{"start_line":8,"start_character":12,"end_line":8,"end_character":57},"updated":"2017-07-23 08:01:10.000000000","message":"already included in the first headline, we can remove that","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":".. contents:: :depth: 2"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Introduction to the Karbor Bank Plugins Development Guide"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The Karbor Bank Plugins Development Guide provides instructions on how to develop"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_67a2b4fe","line":8,"range":{"start_line":8,"start_character":12,"end_line":8,"end_character":57},"in_reply_to":"ff346bd7_b45f3ae4","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Introduction to the Karbor Bank Plugins Development Guide"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The Karbor Bank Plugins Development Guide provides instructions on how to develop"},{"line_number":12,"context_line":"and use your bank plugins; the guide also gives an overview of the existing"},{"line_number":13,"context_line":"bank plugins."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_946436bb","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":41},"updated":"2017-07-23 08:01:10.000000000","message":"This guide","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Introduction to the Karbor Bank Plugins Development Guide"},{"line_number":9,"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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The Karbor Bank Plugins Development Guide provides instructions on how to develop"},{"line_number":12,"context_line":"and use your bank plugins; the guide also gives an overview of the existing"},{"line_number":13,"context_line":"bank plugins."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_07dbe87b","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":41},"in_reply_to":"ff346bd7_946436bb","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"and use your bank plugins; the guide also gives an overview of the existing"},{"line_number":13,"context_line":"bank plugins."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Before you read this document, you must do the following:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#. Deploy an OpenStack environment with the latest Karbor version."},{"line_number":18,"context_line":"See the `Karbor Installation Guide \u003chttps://docs.openstack.org/developer/karbor/installation.html\u003e`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_7459d2fc","line":15,"range":{"start_line":15,"start_character":31,"end_line":15,"end_character":56},"updated":"2017-07-23 08:01:10.000000000","message":"-\u003e it is recommended to","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"and use your bank plugins; the guide also gives an overview of the existing"},{"line_number":13,"context_line":"bank plugins."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Before you read this document, you must do the following:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#. Deploy an OpenStack environment with the latest Karbor version."},{"line_number":18,"context_line":"See the `Karbor Installation Guide \u003chttps://docs.openstack.org/developer/karbor/installation.html\u003e`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_12d9e8f1","line":15,"range":{"start_line":15,"start_character":31,"end_line":15,"end_character":56},"in_reply_to":"ff346bd7_7459d2fc","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"#. Deploy an OpenStack environment with the latest Karbor version."},{"line_number":18,"context_line":"See the `Karbor Installation Guide \u003chttps://docs.openstack.org/developer/karbor/installation.html\u003e`_."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This guide is a work in progress and will eventually have most of"},{"line_number":21,"context_line":"the information you need on Karbor Bank Plugins."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"About the Karbor Bank Plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_34734a83","line":21,"range":{"start_line":20,"start_character":0,"end_line":21,"end_character":48},"updated":"2017-07-23 08:01:10.000000000","message":"no need for that sentence","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"#. Deploy an OpenStack environment with the latest Karbor version."},{"line_number":18,"context_line":"See the `Karbor Installation Guide \u003chttps://docs.openstack.org/developer/karbor/installation.html\u003e`_."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This guide is a work in progress and will eventually have most of"},{"line_number":21,"context_line":"the information you need on Karbor Bank Plugins."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"About the Karbor Bank Plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_a7389c9f","line":21,"range":{"start_line":20,"start_character":0,"end_line":21,"end_character":48},"in_reply_to":"ff346bd7_34734a83","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"the information you need on Karbor Bank Plugins."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"About the Karbor Bank Plugins"},{"line_number":25,"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\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_54880e1e","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":29},"updated":"2017-07-23 08:01:10.000000000","message":"Overview","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"the information you need on Karbor Bank Plugins."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"About the Karbor Bank Plugins"},{"line_number":25,"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\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_675754cc","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":29},"in_reply_to":"ff346bd7_54880e1e","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":25,"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\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"},{"line_number":28,"context_line":"operations, and between different sites. Karbor wants to be able to store metadata"},{"line_number":29,"context_line":"in many locations (swift, mongodb, etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_14704672","line":28,"range":{"start_line":28,"start_character":41,"end_line":28,"end_character":64},"updated":"2017-07-23 08:01:10.000000000","message":"-\u003e This gives Karbor the flexibility","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":25,"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\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"},{"line_number":28,"context_line":"operations, and between different sites. Karbor wants to be able to store metadata"},{"line_number":29,"context_line":"in many locations (swift, mongodb, etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_07208847","line":28,"range":{"start_line":28,"start_character":41,"end_line":28,"end_character":64},"in_reply_to":"ff346bd7_14704672","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"},{"line_number":28,"context_line":"operations, and between different sites. Karbor wants to be able to store metadata"},{"line_number":29,"context_line":"in many locations (swift, mongodb, etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"},{"line_number":32,"context_line":"saving the metadata and backup data of the checkpoints."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_740e72e6","line":29,"range":{"start_line":29,"start_character":19,"end_line":29,"end_character":33},"updated":"2017-07-23 08:01:10.000000000","message":"object stores such as Swift, document stores such as MongoDB, relational databases such as MariaDB, etc.\n\n(also, can put that outside the parentheses)","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The bank plugin is responsible for persisting data between protect and restore"},{"line_number":28,"context_line":"operations, and between different sites. Karbor wants to be able to store metadata"},{"line_number":29,"context_line":"in many locations (swift, mongodb, etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"},{"line_number":32,"context_line":"saving the metadata and backup data of the checkpoints."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_c715e0e6","line":29,"range":{"start_line":29,"start_character":19,"end_line":29,"end_character":33},"in_reply_to":"ff346bd7_740e72e6","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"},{"line_number":32,"context_line":"saving the metadata and backup data of the checkpoints."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"You can extend the functionality of the karbor\u0027s bank through implementing a new bank plugins."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Overview of existing bank plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_b4d29a33","line":34,"range":{"start_line":34,"start_character":40,"end_line":34,"end_character":41},"updated":"2017-07-23 08:01:10.000000000","message":"K","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"So a simplified object store interface of bank is defined for most backends to support"},{"line_number":32,"context_line":"saving the metadata and backup data of the checkpoints."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"You can extend the functionality of the karbor\u0027s bank through implementing a new bank plugins."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Overview of existing bank plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_74dc3246","line":34,"range":{"start_line":34,"start_character":75,"end_line":34,"end_character":76},"updated":"2017-07-23 08:01:10.000000000","message":"remove the \u0027a\u0027","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"You can extend the functionality of the karbor\u0027s bank through implementing a new bank plugins."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Overview of existing bank plugins"},{"line_number":38,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* `Karbor swift bank plugin on GitHub\u003chttps://github.com/openstack/karbor/blob/master/karbor/services/protection/bank_plugins/swift_bank_plugin.py\u003e`_ -"},{"line_number":41,"context_line":"   contains the source code of the swift bank Plugin."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    .. autoclass:: karbor.services.protection.bank_plugins.swift_bank_plugin.SwiftBankPlugin"},{"line_number":44,"context_line":"      :members:"},{"line_number":45,"context_line":"      :show-inheritance:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* `Karbor local filesystem bank plugin on GitHub\u003chttps://github.com/openstack/karbor/blob/master/karbor/services/protection/bank_plugins/file_system_bank_plugin.py\u003e`_ -"},{"line_number":49,"context_line":"   contains the source code of the filesystem bank Plugin."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    .. autoclass:: karbor.services.protection.bank_plugins.file_system_bank_plugin.FileSystemBankPlugin"},{"line_number":52,"context_line":"      :members:"},{"line_number":53,"context_line":"      :show-inheritance:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Create a bank plugin"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_f4ef02e7","line":53,"range":{"start_line":37,"start_character":0,"end_line":53,"end_character":24},"updated":"2017-07-23 08:01:10.000000000","message":"1. This already exists in bank_plugins.rst. You can turn it into a link to that page.\n2. Links are not formatted correctly (see the docs gate for this patch)\n3. Title can be \"Existing Plugins\"","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"You can extend the functionality of the karbor\u0027s bank through implementing a new bank plugins."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Overview of existing bank plugins"},{"line_number":38,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* `Karbor swift bank plugin on GitHub\u003chttps://github.com/openstack/karbor/blob/master/karbor/services/protection/bank_plugins/swift_bank_plugin.py\u003e`_ -"},{"line_number":41,"context_line":"   contains the source code of the swift bank Plugin."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    .. autoclass:: karbor.services.protection.bank_plugins.swift_bank_plugin.SwiftBankPlugin"},{"line_number":44,"context_line":"      :members:"},{"line_number":45,"context_line":"      :show-inheritance:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* `Karbor local filesystem bank plugin on GitHub\u003chttps://github.com/openstack/karbor/blob/master/karbor/services/protection/bank_plugins/file_system_bank_plugin.py\u003e`_ -"},{"line_number":49,"context_line":"   contains the source code of the filesystem bank Plugin."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    .. autoclass:: karbor.services.protection.bank_plugins.file_system_bank_plugin.FileSystemBankPlugin"},{"line_number":52,"context_line":"      :members:"},{"line_number":53,"context_line":"      :show-inheritance:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Create a bank plugin"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_67963441","line":53,"range":{"start_line":37,"start_character":0,"end_line":53,"end_character":24},"in_reply_to":"ff346bd7_f4ef02e7","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":58,"context_line":"The Karbor code-base has a python API that corresponds to the set of API calls"},{"line_number":59,"context_line":"you must implement to be a Karbor Bank plugin. Within the source code directory,"},{"line_number":60,"context_line":"look at karbor/service/protection/bank_plugin.py ."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_54ba4ede","line":60,"range":{"start_line":60,"start_character":49,"end_line":60,"end_character":50},"updated":"2017-07-23 08:01:10.000000000","message":"remove","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":58,"context_line":"The Karbor code-base has a python API that corresponds to the set of API calls"},{"line_number":59,"context_line":"you must implement to be a Karbor Bank plugin. Within the source code directory,"},{"line_number":60,"context_line":"look at karbor/service/protection/bank_plugin.py ."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_e7c22434","line":60,"range":{"start_line":60,"start_character":49,"end_line":60,"end_character":50},"in_reply_to":"ff346bd7_54ba4ede","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. list_objects"},{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_34cfca80","line":65,"range":{"start_line":65,"start_character":3,"end_line":65,"end_character":26},"updated":"2017-07-23 08:01:10.000000000","message":"Lists","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. list_objects"},{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_32574c5b","line":65,"range":{"start_line":65,"start_character":3,"end_line":65,"end_character":26},"in_reply_to":"ff346bd7_34cfca80","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_14ccc687","line":68,"range":{"start_line":68,"start_character":3,"end_line":68,"end_character":28},"updated":"2017-07-23 08:01:10.000000000","message":"Creates","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_f24c24c9","line":68,"range":{"start_line":68,"start_character":3,"end_line":68,"end_character":28},"in_reply_to":"ff346bd7_14ccc687","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_b4a05aa7","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":25},"updated":"2017-07-23 08:01:10.000000000","message":"Gets","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_92cdd832","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":25},"in_reply_to":"ff346bd7_b4a05aa7","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_94a556b8","line":74,"range":{"start_line":74,"start_character":3,"end_line":74,"end_character":28},"updated":"2017-07-23 08:01:10.000000000","message":"Deletes","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. list_objects"},{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_54afee93","line":74,"range":{"start_line":64,"start_character":0,"end_line":74,"end_character":87},"updated":"2017-07-23 08:01:10.000000000","message":"Formatting is incorrect, see the gate docs job. The method description is concatenated to the method name","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"A bank plugin usually consists of code to:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"1. list_objects"},{"line_number":65,"context_line":"   This function will list all the object from the default container of the bank backend."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"2. update_object"},{"line_number":68,"context_line":"   This function will create or update one object to the default container of the bank backend."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"3. get_object"},{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_72cef42d","line":74,"range":{"start_line":64,"start_character":0,"end_line":74,"end_character":87},"in_reply_to":"ff346bd7_54afee93","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   This function will get one object from the default container of the bank backend."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"4. delete_object"},{"line_number":74,"context_line":"   This function will delete one object from the default container of the bank backend."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_32dcece2","line":74,"range":{"start_line":74,"start_character":3,"end_line":74,"end_character":28},"in_reply_to":"ff346bd7_94a556b8","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"In order to tell whether the checkpoint(saved in the bank) is a zombie or not, a lease mechanism is"},{"line_number":79,"context_line":"introduced to the bank plugin."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_74b552ee","line":78,"range":{"start_line":78,"start_character":38,"end_line":78,"end_character":40},"updated":"2017-07-23 08:01:10.000000000","message":"missing space","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"In order to tell whether the checkpoint(saved in the bank) is a zombie or not, a lease mechanism is"},{"line_number":79,"context_line":"introduced to the bank plugin."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_8720f8ad","line":78,"range":{"start_line":78,"start_character":38,"end_line":78,"end_character":40},"in_reply_to":"ff346bd7_74b552ee","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_14916653","line":84,"range":{"start_line":84,"start_character":1,"end_line":84,"end_character":6},"updated":"2017-07-23 08:01:10.000000000","message":"i.e swift cluster","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_d49abe6c","line":84,"range":{"start_line":84,"start_character":80,"end_line":84,"end_character":92},"updated":"2017-07-23 08:01:10.000000000","message":"remove","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_8752383a","line":84,"range":{"start_line":84,"start_character":1,"end_line":84,"end_character":6},"in_reply_to":"ff346bd7_14916653","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"* `The detail about the bank plugin lease\u003chttps://github.com/openstack/karbor/blob/master/doc/source/specs/bank-plugin-lease.rst\u003e`_"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_4748d085","line":84,"range":{"start_line":84,"start_character":80,"end_line":84,"end_character":92},"in_reply_to":"ff346bd7_d49abe6c","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"},{"line_number":88,"context_line":"   The bank plugin (lease client) will use this function to acquire a lease from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_b4897a27","line":85,"range":{"start_line":85,"start_character":7,"end_line":85,"end_character":15},"updated":"2017-07-23 08:01:10.000000000","message":"consist","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The bank plugin will play a role as lease client while the bank bankends server"},{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"},{"line_number":88,"context_line":"   The bank plugin (lease client) will use this function to acquire a lease from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_473d70db","line":85,"range":{"start_line":85,"start_character":7,"end_line":85,"end_character":15},"in_reply_to":"ff346bd7_b4897a27","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"},{"line_number":88,"context_line":"   The bank plugin (lease client) will use this function to acquire a lease from"},{"line_number":89,"context_line":"   bank server (lease server). For swift specifically, it will create a lease object"},{"line_number":90,"context_line":"   in swift container and set an expire_window for this lease."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"2. renew_lease"},{"line_number":93,"context_line":"   This function will be called by each lease client in the background periodically."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"3. check_lease_validity"},{"line_number":96,"context_line":"   This function is used by GC to check whether the lease object exists or not in"},{"line_number":97,"context_line":"   lease server side."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_948e762c","line":97,"range":{"start_line":87,"start_character":0,"end_line":97,"end_character":21},"updated":"2017-07-23 08:01:10.000000000","message":"same formatting issue","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":84,"context_line":"(swift cluster) plays as the lease server. So the bank plugin for a lease server(like swift)"},{"line_number":85,"context_line":"should consists of code to:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"1. acquire_lease"},{"line_number":88,"context_line":"   The bank plugin (lease client) will use this function to acquire a lease from"},{"line_number":89,"context_line":"   bank server (lease server). For swift specifically, it will create a lease object"},{"line_number":90,"context_line":"   in swift container and set an expire_window for this lease."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"2. renew_lease"},{"line_number":93,"context_line":"   This function will be called by each lease client in the background periodically."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"3. check_lease_validity"},{"line_number":96,"context_line":"   This function is used by GC to check whether the lease object exists or not in"},{"line_number":97,"context_line":"   lease server side."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_27782cc2","line":97,"range":{"start_line":87,"start_character":0,"end_line":97,"end_character":21},"in_reply_to":"ff346bd7_948e762c","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Add the configuration of the bank plugin"},{"line_number":102,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"#. Adding the Plugin class module to the entry_points"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_347d8a1c","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":40},"updated":"2017-07-23 08:01:10.000000000","message":"merge with the section above","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"12b12c792f2c32929b649490faf57510faaa88b9","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Add the configuration of the bank plugin"},{"line_number":102,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"#. Adding the Plugin class module to the entry_points"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_676ab4ed","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":40},"in_reply_to":"ff346bd7_347d8a1c","updated":"2017-07-27 09:01:55.000000000","message":"Done","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"}],"doc/source/index.rst":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c9291c6e52a8f5392ad1d85dfe5f063cceafada9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Plugins Development Guide"},{"line_number":39,"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":40,"context_line":".. toctree::"},{"line_number":41,"context_line":"   :maxdepth: 2"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"   bank_plugins_guide"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_14472620","line":41,"range":{"start_line":41,"start_character":14,"end_line":41,"end_character":15},"updated":"2017-07-23 08:01:10.000000000","message":"Looks weird, as it includes all the minor titles. Can you change it to 1?","commit_id":"10568be184f0f0598575fb3765b6c521ba10ed7a"}]}
