)]}'
{"doc/source/specs/remove_heat.rst":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"cb734e0d01f6c4d41db5a04baef573abf386541f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"As it stands, Karbor uses Heat to restore the resources which had been protected"},{"line_number":17,"context_line":"before. Although it works well, some disadvantages are still very obvious. Firstly,"},{"line_number":18,"context_line":"Karbor just uses a fraction of functions which Heat supplies so that it seems too"},{"line_number":19,"context_line":"heavy to Karbor. Second, for developers of protection plugins, they prefer implementing"},{"line_number":20,"context_line":"the restoration of resources by protection plugin itself to Heat. Last, both Karbor"},{"line_number":21,"context_line":"and Heat should be deployed at the time, which will add more workload."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_610e5f3c","line":21,"range":{"start_line":16,"start_character":0,"end_line":21,"end_character":70},"updated":"2017-03-22 10:54:19.000000000","message":"Very good. Could be important to note that the Heat stack is run after all the protection plugins\u0027 hooks, and that breaks the hooks definition of on_complete(). This is another reason to remove Heat.","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1970210e169076173211a64a2c07f8020807dd47","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"As it stands, Karbor uses Heat to restore the resources which had been protected"},{"line_number":17,"context_line":"before. Although it works well, some disadvantages are still very obvious. Firstly,"},{"line_number":18,"context_line":"Karbor just uses a fraction of functions which Heat supplies so that it seems too"},{"line_number":19,"context_line":"heavy to Karbor. Second, for developers of protection plugins, they prefer implementing"},{"line_number":20,"context_line":"the restoration of resources by protection plugin itself to Heat. Last, both Karbor"},{"line_number":21,"context_line":"and Heat should be deployed at the time, which will add more workload."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_884277ac","line":21,"range":{"start_line":16,"start_character":0,"end_line":21,"end_character":70},"in_reply_to":"1a1ced50_610e5f3c","updated":"2017-03-23 02:52:09.000000000","message":"Got it. I will try to add it. Thanks.","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"cb734e0d01f6c4d41db5a04baef573abf386541f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"There are two main changes. First one, the interface of restore should be refactored"},{"line_number":35,"context_line":"for all protection plugins. At present, there are 3 kinds of plugins in Karbor and the"},{"line_number":36,"context_line":"new restore methods are described as bellow respectively."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_1c07ce18","line":34,"range":{"start_line":34,"start_character":43,"end_line":34,"end_character":52},"updated":"2017-03-22 10:54:19.000000000","message":"the interface or the implementation?","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1970210e169076173211a64a2c07f8020807dd47","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"There are two main changes. First one, the interface of restore should be refactored"},{"line_number":35,"context_line":"for all protection plugins. At present, there are 3 kinds of plugins in Karbor and the"},{"line_number":36,"context_line":"new restore methods are described as bellow respectively."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_88fb5778","line":34,"range":{"start_line":34,"start_character":43,"end_line":34,"end_character":52},"in_reply_to":"1a1ced50_1c07ce18","updated":"2017-03-23 02:52:09.000000000","message":"yes, \u0027implementation\u0027 is more correct.","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"cb734e0d01f6c4d41db5a04baef573abf386541f","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"There are two main changes. First one, the interface of restore should be refactored"},{"line_number":35,"context_line":"for all protection plugins. At present, there are 3 kinds of plugins in Karbor and the"},{"line_number":36,"context_line":"new restore methods are described as bellow respectively."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* volume plugin"},{"line_number":39,"context_line":"  it can create a new volume with original backup volume."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_5c15c63d","line":36,"range":{"start_line":36,"start_character":37,"end_line":36,"end_character":43},"updated":"2017-03-22 10:54:19.000000000","message":"below","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1970210e169076173211a64a2c07f8020807dd47","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"There are two main changes. First one, the interface of restore should be refactored"},{"line_number":35,"context_line":"for all protection plugins. At present, there are 3 kinds of plugins in Karbor and the"},{"line_number":36,"context_line":"new restore methods are described as bellow respectively."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* volume plugin"},{"line_number":39,"context_line":"  it can create a new volume with original backup volume."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_a8f6538c","line":36,"range":{"start_line":36,"start_character":37,"end_line":36,"end_character":43},"in_reply_to":"1a1ced50_5c15c63d","updated":"2017-03-23 02:52:09.000000000","message":"Done","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"cb734e0d01f6c4d41db5a04baef573abf386541f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  It is a bit more complex, because it has several child resources, such as volume, ip."},{"line_number":46,"context_line":"  First, it should create a new vm. Second, add the child resources to it, such as"},{"line_number":47,"context_line":"  attach the volumes, set the ip."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Another change is updating the deployment scripts which will no longer install Heat."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_3c7f2a67","line":49,"range":{"start_line":48,"start_character":0,"end_line":49,"end_character":84},"updated":"2017-03-22 10:54:19.000000000","message":"I think we should add some kind of utils library for each resource type, or a mixin class for operations which provides helper methods to create and link resources (i.e nova plugins -\n attach a volume, create an server, cinder plugins - create a volume from backup, etc.)","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1970210e169076173211a64a2c07f8020807dd47","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  It is a bit more complex, because it has several child resources, such as volume, ip."},{"line_number":46,"context_line":"  First, it should create a new vm. Second, add the child resources to it, such as"},{"line_number":47,"context_line":"  attach the volumes, set the ip."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Another change is updating the deployment scripts which will no longer install Heat."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_880fd735","line":49,"range":{"start_line":48,"start_character":0,"end_line":49,"end_character":84},"in_reply_to":"1a1ced50_3c7f2a67","updated":"2017-03-23 02:52:09.000000000","message":"At present, each protection plugin defines its own utils functions. Take \u0027cinder_protection_plugin.py\u0027 for example, it define several functions, such as \u0027get_backup_status\u0027. There are two ways to implement your idea. 1. Follow the current way that each plugin define its own utils. 2. Define a file named as \u0027utils.py \u0027 which define all kinds of utils, such as create an server, create a volume from backup.  Which one is your choice?","commit_id":"8d81998742489c7c81deb3d1e3ea1d83f1b9821d"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"29ef6bae91cabdf215e2f1d8a8776be128fa6b5a","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/karbor/+spec/remove-heat"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"As it stands, Karbor uses Heat to restore the resources which had been protected"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_9e27ccb7","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":19},"updated":"2017-04-13 07:04:14.000000000","message":"It seems good.","commit_id":"f3c7004cae977d9311aa62e0cc8162a84200ea8e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"29ef6bae91cabdf215e2f1d8a8776be128fa6b5a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"There are two main changes. First one, the implementation of restore should be"},{"line_number":37,"context_line":"refactored for all protection plugins. At present, there are 3 kinds of plugins"},{"line_number":38,"context_line":"in Karbor and the new restore methods are described as below respectively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* volume plugin"},{"line_number":41,"context_line":"  it can create a new volume with original backup volume."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_ab61343c","line":38,"range":{"start_line":37,"start_character":39,"end_line":38,"end_character":74},"updated":"2017-04-13 07:04:14.000000000","message":"We may also consider the network plugins which chenhuayi have implemented. What\u0027s your opinion about it?","commit_id":"f3c7004cae977d9311aa62e0cc8162a84200ea8e"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"08018bf7309e0119ba90405011c106c54eece530","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"There are two main changes. First one, the implementation of restore should be"},{"line_number":37,"context_line":"refactored for all protection plugins. At present, there are 3 kinds of plugins"},{"line_number":38,"context_line":"in Karbor and the new restore methods are described as below respectively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* volume plugin"},{"line_number":41,"context_line":"  it can create a new volume with original backup volume."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_e1b75d3a","line":38,"range":{"start_line":37,"start_character":39,"end_line":38,"end_character":74},"in_reply_to":"9ff52f3f_ab61343c","updated":"2017-04-13 08:15:41.000000000","message":"yes, you are right.","commit_id":"f3c7004cae977d9311aa62e0cc8162a84200ea8e"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"29ef6bae91cabdf215e2f1d8a8776be128fa6b5a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"in Karbor and the new restore methods are described as below respectively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* volume plugin"},{"line_number":41,"context_line":"  it can create a new volume with original backup volume."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* image plugin"},{"line_number":44,"context_line":"  It can create a new image and upload the original backup data to it."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_4b606833","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":4},"updated":"2017-04-13 07:04:14.000000000","message":"S/it/It","commit_id":"f3c7004cae977d9311aa62e0cc8162a84200ea8e"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"08018bf7309e0119ba90405011c106c54eece530","unresolved":false,"context_lines":[{"line_number":38,"context_line":"in Karbor and the new restore methods are described as below respectively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* volume plugin"},{"line_number":41,"context_line":"  it can create a new volume with original backup volume."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* image plugin"},{"line_number":44,"context_line":"  It can create a new image and upload the original backup data to it."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_c1b45938","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":4},"in_reply_to":"9ff52f3f_4b606833","updated":"2017-04-13 08:15:41.000000000","message":"Done","commit_id":"f3c7004cae977d9311aa62e0cc8162a84200ea8e"}]}
