)]}'
{"specs/kilo/approved/quiesce-admin-action.rst":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"ee6c6ed2fa31aa3c256745d0afa98f2ea9fee645","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Expose \u0027quiesce\u0027 and \u0027unquiesce\u0027 admin actions for Cinder."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Add a \u0027quiesce\u0027 and \u0027unquiesce\u0027 method for each driver. In libvirt driver,"},{"line_number":48,"context_line":"if QEMU Guest Agent is enabled in an instance, the guest agent is called"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_c0d98e58","line":45,"updated":"2014-10-14 19:21:42.000000000","message":"Can you please expand on how Cinder would determine whether or not it should call these APIs?","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"31eaf283af6edbba1f00107cfaab8810ab30c2f7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Expose \u0027quiesce\u0027 and \u0027unquiesce\u0027 admin actions for Cinder."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Add a \u0027quiesce\u0027 and \u0027unquiesce\u0027 method for each driver. In libvirt driver,"},{"line_number":48,"context_line":"if QEMU Guest Agent is enabled in an instance, the guest agent is called"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_831a30c4","line":45,"in_reply_to":"baa201ad_c0d98e58","updated":"2014-10-14 20:04:11.000000000","message":"Added a note that Cinder should check image metadata to determine if it calls the APIs.","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4f4f4e4fa1ca3d99a20277feffc8aa0699817d22","unresolved":false,"context_lines":[{"line_number":56,"context_line":"2. libvirt \u003e\u003d 1.2.5 (which has fsFreeze/fsThaw API) is installed in the"},{"line_number":57,"context_line":"   hypervisor"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"3. \u0027hw_qemu_guest_agent\u003dyes\u0027 property property is set on the image metadata,"},{"line_number":60,"context_line":"   and QEMU Guest Agent is installed and enabled in the instance"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"When these conditions are not satisfied, the methods will fail by"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_11684db9","line":59,"updated":"2014-10-14 17:19:10.000000000","message":"s/property property/property/","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"ab7c503e06c23137a1e38c0e12c8e90f0173de5b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"2. libvirt \u003e\u003d 1.2.5 (which has fsFreeze/fsThaw API) is installed in the"},{"line_number":57,"context_line":"   hypervisor"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"3. \u0027hw_qemu_guest_agent\u003dyes\u0027 property property is set on the image metadata,"},{"line_number":60,"context_line":"   and QEMU Guest Agent is installed and enabled in the instance"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"When these conditions are not satisfied, the methods will fail by"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_62a8e977","line":59,"in_reply_to":"baa201ad_11684db9","updated":"2014-10-14 18:58:30.000000000","message":"Thanks, will fix it.","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4f4f4e4fa1ca3d99a20277feffc8aa0699817d22","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Work Items"},{"line_number":123,"context_line":"----------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"1. Add an \u0027quiesce\u0027 and \u0027unquiesce\u0027 admin action for Nova"},{"line_number":126,"context_line":"2. Call them from Cinder snapshot code"},{"line_number":127,"context_line":"3. Enable the test to run in CI with libvirt \u003e\u003d 1.2.5"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_316391de","line":125,"updated":"2014-10-14 17:19:10.000000000","message":"Here, do you mean add a quiesce/unquiese method to the public REST APIs? Or do you mean you will be adding a quiesce/unquiesce method to the VolumeBackend base class in nova.virt.block_device.DriverBlockDevice?","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"ab7c503e06c23137a1e38c0e12c8e90f0173de5b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Work Items"},{"line_number":123,"context_line":"----------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"1. Add an \u0027quiesce\u0027 and \u0027unquiesce\u0027 admin action for Nova"},{"line_number":126,"context_line":"2. Call them from Cinder snapshot code"},{"line_number":127,"context_line":"3. Enable the test to run in CI with libvirt \u003e\u003d 1.2.5"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_c2fef56a","line":125,"in_reply_to":"baa201ad_316391de","updated":"2014-10-14 18:58:30.000000000","message":"I mean to add the REST APIs (server admin actions).\nI will add some explanation for them to REST API Impact section.","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4f4f4e4fa1ca3d99a20277feffc8aa0699817d22","unresolved":false,"context_lines":[{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Need to document how to use this feature in the operation guide (which"},{"line_number":146,"context_line":"currently recommends you use the fsfreze tool manually)."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_5162d5d8","line":146,"updated":"2014-10-14 17:19:10.000000000","message":"s/fsfreze/fsfreeze/","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"ab7c503e06c23137a1e38c0e12c8e90f0173de5b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Need to document how to use this feature in the operation guide (which"},{"line_number":146,"context_line":"currently recommends you use the fsfreze tool manually)."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_e2b3f9e6","line":146,"in_reply_to":"baa201ad_5162d5d8","updated":"2014-10-14 18:58:30.000000000","message":"Will fix it too.","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"3a3f546189ebb4263e6d25be2c19c295bffb0543","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_a07acaee","line":150,"updated":"2014-10-14 19:28:25.000000000","message":"Can you add a link to this related blueprint?\n\nhttps://review.openstack.org/#/c/126966/","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"31eaf283af6edbba1f00107cfaab8810ab30c2f7","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_e3805cc1","line":150,"in_reply_to":"baa201ad_a07acaee","updated":"2014-10-14 20:04:11.000000000","message":"Added the reference. Thanks.","commit_id":"3a9b04d97362fea60338e0764cb953f5f6a2c5fb"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7825e1c5b0a6ab215e275057ec12318d4293bee6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  JSON request body for \u0027unquiesce\u0027::"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        {"},{"line_number":100,"context_line":"            \"quiesce\": null"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baa201ad_a01abfc3","line":100,"updated":"2014-10-15 05:36:16.000000000","message":"presumably should be unquiesce?","commit_id":"4a5cf72727795388d62cb92a392b8745451bf4fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"f8e693b1f22f101f379ce74be1527d3411edf5a6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  JSON request body for \u0027unquiesce\u0027::"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        {"},{"line_number":100,"context_line":"            \"quiesce\": null"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baa201ad_ab59a936","line":100,"in_reply_to":"baa201ad_a01abfc3","updated":"2014-10-15 20:18:53.000000000","message":"Right, I\u0027ll fix it in next revision.","commit_id":"4a5cf72727795388d62cb92a392b8745451bf4fb"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7825e1c5b0a6ab215e275057ec12318d4293bee6","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        {"},{"line_number":100,"context_line":"            \"quiesce\": null"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baa201ad_0081cbc2","line":101,"updated":"2014-10-15 05:36:16.000000000","message":"Should also specify success return code - eg is this a sync or async call?\n\nAlso what are the failure modes. What error codes could possibly be returned?","commit_id":"4a5cf72727795388d62cb92a392b8745451bf4fb"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"f8e693b1f22f101f379ce74be1527d3411edf5a6","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        {"},{"line_number":100,"context_line":"            \"quiesce\": null"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baa201ad_eb3e51b7","line":101,"in_reply_to":"baa201ad_0081cbc2","updated":"2014-10-15 20:18:53.000000000","message":"These are sync calls. I\u0027ll add an explanation about return codes. Thanks for pointing this out.","commit_id":"4a5cf72727795388d62cb92a392b8745451bf4fb"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"eaedfa71bd150430a7536c1744aa9cc964db4053","unresolved":false,"context_lines":[{"line_number":63,"context_line":"   and QEMU Guest Agent is installed and enabled in the instance"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Cinder should call the APIs only if \u0027hw_require_fsfreeze\u003dyes\u0027 is set on the"},{"line_number":66,"context_line":"image metadata."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"When these conditions are not satisfied, the methods will fail by"},{"line_number":69,"context_line":"\u0027QuiesceUnsupportedException\u0027."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aa7fdbe_db8809c9","line":66,"updated":"2014-10-20 11:23:12.000000000","message":"I don\u0027t really like the idea of Cinder directly knowing anything about image metadata properties in this way. \n\nEven if we use this metadata property as a config mechanism for the end user to set, I don\u0027t think cinder should directly access that property. Nova should expose an API to Cinder to allow it to query whether quiesce is required or not. \nie an \u0027needs_quiesce\u0027 action so Cinder would do (psuedo code)\n\n  if instance.needs_quiesce\n     instance.queisce\n     ...do work...\n     instance.unquiesce\n  else\n     ..do work...","commit_id":"8cd4f25a3d356d3352a83499bf282b3196305204"},{"author":{"_account_id":9176,"name":"Tomoki Sekiyama","email":"tomoki.sekiyama@gmail.com","username":"tsekiyama"},"change_message_id":"e63874405ac6df32f372a0ab6aa53b4bb8bf4db6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"   and QEMU Guest Agent is installed and enabled in the instance"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Cinder should call the APIs only if \u0027hw_require_fsfreeze\u003dyes\u0027 is set on the"},{"line_number":66,"context_line":"image metadata."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"When these conditions are not satisfied, the methods will fail by"},{"line_number":69,"context_line":"\u0027QuiesceUnsupportedException\u0027."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aa7fdbe_adc373eb","line":66,"in_reply_to":"9aa7fdbe_db8809c9","updated":"2014-10-24 18:56:40.000000000","message":"I reconsidered about the condition to call quiesce API form cinder; Nova can call Cinder\u0027s create-snapshot API while the instances are quiesced for boot-from-volume instances. Then, Cinder shouldn\u0027t call quiesce API, even if \u0027hw_require_fsfreeze\u0027 is set.\n\nI\u0027m going to propose to add \u0027quiesce\u003dTrue/False\u0027 parameter to cinder\u0027s create-snapshot API; if True, Cinder calls \u0027quiesce\u0027, otherwise doesn\u0027t.\nIn this case, Cinder doesn\u0027t need to check \u0027hw_require_fsfreeze\u0027 property of the image, so I will remove this line from this spec.","commit_id":"8cd4f25a3d356d3352a83499bf282b3196305204"}]}
