)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f37a50acc09a02c468a616dec44d96bfd81199dd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-05-08 10:00:50 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova-specs for \"add force detach volume to nova\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: blueprint add-force-detach-to-nova"},{"line_number":10,"context_line":"Change-Id: Ic4f9a0b3e2443db7852e8c5c18ce37584dff6943"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"7adec928_70eff887","line":7,"updated":"2014-05-09 21:44:24.000000000","message":"Nit: it is clear from the name of the repo that this for nova-specs so no need to include that in the first line of the commit message.","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"1c8015de5e385cb6797bd639c2c8452ba2be6d74","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support force detach volume to nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":10,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":11,"context_line":"the attachment."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"ba3cc151_baf24105","line":9,"updated":"2015-06-29 04:38:23.000000000","message":"This is no longer what the spec describes; it\u0027s talking about how Nova now responds to requests for detaching so that it will work in additional states and regardless of Cinder being grumpy.  (Which, fwiw, I approve of.)","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8bf6a413681b7d368908d09c51827e84ad899e67","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support force detach volume to nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":10,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":11,"context_line":"the attachment."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"ba3cc151_e7b4b1d2","line":9,"in_reply_to":"ba3cc151_baf24105","updated":"2015-06-29 07:01:31.000000000","message":"Thanks remind, I forgot here.","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"1c8015de5e385cb6797bd639c2c8452ba2be6d74","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support force detach volume to nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":10,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":11,"context_line":"the attachment."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint add-force-detach-to-nova"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"ba3cc151_daf705f4","line":10,"updated":"2015-06-29 04:38:23.000000000","message":"\u0027will gracefully make\u0027","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8bf6a413681b7d368908d09c51827e84ad899e67","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support force detach volume to nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":10,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":11,"context_line":"the attachment."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint add-force-detach-to-nova"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"ba3cc151_87ca854e","line":10,"in_reply_to":"ba3cc151_daf705f4","updated":"2015-06-29 07:01:31.000000000","message":"Done","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f095bc03edf508be7a7cb34b9d9b73c8f12c955","unresolved":false,"context_lines":[{"line_number":10,"context_line":"attachment records when volumes stuck in \u0027attaching\u0027 or \u0027detaching\u0027."},{"line_number":11,"context_line":"In addition, call cinder\u0027s force_detach to cleanup the cinder side."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint add-force-detach-to-nova"},{"line_number":14,"context_line":"Co-Authored-By: Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":15,"context_line":"Co-Authored-By: Scott DAngelo \u003cscott.dangelo@hp.com\u003e"},{"line_number":16,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":53,"id":"1a4dcd0f_667ea86b","line":13,"updated":"2015-08-06 15:19:58.000000000","message":"The blueprint is actually implement-force-detach-for-safe-cleanup - -1000!!!!","commit_id":"43732d210ec9830a9aba45c98332051a85383cee"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c640c317e5cc2cbb397a9231105becd3a01990b2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"attachment records when volumes stuck in \u0027attaching\u0027 or \u0027detaching\u0027."},{"line_number":11,"context_line":"In addition, call cinder\u0027s force_detach to cleanup the cinder side."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint add-force-detach-to-nova"},{"line_number":14,"context_line":"Co-Authored-By: Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":15,"context_line":"Co-Authored-By: Scott DAngelo \u003cscott.dangelo@hp.com\u003e"},{"line_number":16,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":53,"id":"1a4dcd0f_e9b3694b","line":13,"in_reply_to":"1a4dcd0f_667ea86b","updated":"2015-08-06 15:52:55.000000000","message":"That is cinder side. There is nova side.  I talked this with Scott. We are fine with it.","commit_id":"43732d210ec9830a9aba45c98332051a85383cee"}],"specs/juno/add-force-detach-to-nova.rst":[{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"57b9298ae26de85a2f89a3c1280f4b66285efdce","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-force-detach-to-nova"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"add force detach to nova for cleaning the attach information in nova,"},{"line_number":14,"context_line":"and make it better than only calling \"force detach\" in cinder like "},{"line_number":15,"context_line":"attach and detach."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAWH%2F%2BEF8%3D","line":13,"updated":"2014-03-31 08:35:09.000000000","message":"s/add /Add","commit_id":"85ecbdd47826e24c427f8e038ed90efb4099ff2f"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"57b9298ae26de85a2f89a3c1280f4b66285efdce","unresolved":false,"context_lines":[{"line_number":21,"context_line":"and one cinder component. Attach a volume to an instance in nova A and then "},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used "},{"line_number":23,"context_line":"in nova B, so using cinder api \"force detach volume\" to free this volume. "},{"line_number":24,"context_line":"But when nova A is normal, nova can\u0027t detach this volume from instance by "},{"line_number":25,"context_line":"using nova api \"detach volume\", as nova check the volume state must be "},{"line_number":26,"context_line":"\"attached\"."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAWH%2F%2BEE8%3D","line":24,"updated":"2014-03-31 08:35:09.000000000","message":"The following after can\u0027t is abnormal. May be you need a escape character like backslash.","commit_id":"85ecbdd47826e24c427f8e038ed90efb4099ff2f"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"57b9298ae26de85a2f89a3c1280f4b66285efdce","unresolved":false,"context_lines":[{"line_number":28,"context_line":"proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"1. add optional \"force_detach\" parameter which is boolean variable in "},{"line_number":32,"context_line":"nova detach api."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2. when using it, nova will detach the volume for clean the attach information "}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAWH%2F%2BEEU%3D","line":31,"updated":"2014-03-31 08:35:09.000000000","message":"s/add /Add \nGive the default value of the parameter, and description the two situations of true/false value.","commit_id":"85ecbdd47826e24c427f8e038ed90efb4099ff2f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add force detach to nova"},{"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-force-detach-to-nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99O8%3D","line":8,"updated":"2014-03-31 23:44:31.000000000","message":"Force detach of what? Volumes? interfaces? It would be good if you could amend this title so that it\u0027s clear.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add force detach to nova"},{"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-force-detach-to-nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98uI%3D","line":8,"in_reply_to":"AAAAWH%2F99O8%3D","updated":"2014-04-01 02:20:18.000000000","message":"OK,I will amend this title.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add force detach to nova for cleaning the attach information in nova,"},{"line_number":14,"context_line":"and make it better than only calling \"force detach\" in cinder like "},{"line_number":15,"context_line":"attach and detach."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99Ok%3D","line":15,"updated":"2014-03-31 23:44:31.000000000","message":"This is confusing to me. I think I know what you\u0027re trying to say, but I had to read it a few times. Perhaps something like the following would be clearer?\n\n\"Add a mechanism to forcibly detach a volume from an instance in Nova. This is more graceful than performing the same operation only in cinder because Nova can clean up its own records about the attachment.\"","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add force detach to nova for cleaning the attach information in nova,"},{"line_number":14,"context_line":"and make it better than only calling \"force detach\" in cinder like "},{"line_number":15,"context_line":"attach and detach."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98tY%3D","line":15,"in_reply_to":"AAAAWH%2F99Ok%3D","updated":"2014-04-01 02:20:18.000000000","message":"Thank your help and I\u0027m sorry for my confusing description. It is better as you said.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Alternatives"},{"line_number":42,"context_line":"-------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"None"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Data model impact"},{"line_number":47,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99N0%3D","line":44,"updated":"2014-03-31 23:44:31.000000000","message":"I can think of one alternative, which is to offer a \"reset attach state\" to mirror our \"reset state\" admin action for instances. In your example above, when Nova A returns to operation, the admin could just reset the attachment state of the volume that is still attached to Nova B.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Alternatives"},{"line_number":42,"context_line":"-------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"None"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Data model impact"},{"line_number":47,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98qk%3D","line":44,"in_reply_to":"AAAAWH%2F99N0%3D","updated":"2014-04-01 02:20:18.000000000","message":"Sure, I propose that if the volume is still attached to Nova b, it should also can force detach volume (Not affect to nova b) and reset the attachment state in Nova A","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":52,"context_line":"----------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\" "},{"line_number":55,"context_line":"in rest body of nova detach api. "},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Security Impact"},{"line_number":58,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99Nw%3D","line":55,"updated":"2014-03-31 23:44:31.000000000","message":"This will require a new extension for v2, if you plan to implement it for that API. Can you provide samples of the API additions for v2 and v3?","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"----------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\" "},{"line_number":55,"context_line":"in rest body of nova detach api. "},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Security Impact"},{"line_number":58,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98o0%3D","line":55,"in_reply_to":"AAAAWH%2F99Nw%3D","updated":"2014-04-01 02:20:18.000000000","message":"There is two ways to implement this :\n\n1. add optional \"force_detach\" parameter in nova detach api, when using it, nova will detach the volume for clean the attach information whether volume status is attached or detached and call force detach api in cinder.\n\n2. create a new extension api for nova which named \"force detach\",it\u0027s action will be same as above way.\n\nConsider not more complicated api, I prefer the first one to implement this bp.\n\nDo you think we need a new extension like second way above?","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Testing"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Unit tests and tempest tests will check \"force detach\" function."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99NU%3D","line":112,"updated":"2014-03-31 23:44:31.000000000","message":"It sounds like this should be testable in tempest as well, both by forcibly detaching from the cinder side and making sure that nova can still force detach, as well as making sure that a force detach in nova calls the cinder force detach API.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Testing"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Unit tests and tempest tests will check \"force detach\" function."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98u0%3D","line":112,"in_reply_to":"AAAAWH%2F99NU%3D","updated":"2014-04-01 02:20:18.000000000","message":"Thank you for this comment, this function tested in tempest is more appropriate, and I will describe it more detail as you said.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fd843c5265a681b748aaafb8eeff43bee0b10753","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Documentation Impact"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"A description of this function will be added into Compute API V2 Reference."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F99NQ%3D","line":118,"updated":"2014-03-31 23:44:31.000000000","message":"What about v3? Right now, everything we add to v2 needs to be added to v3 as well.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9373a48927125150086a304969996cac2774331c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Documentation Impact"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"A description of this function will be added into Compute API V2 Reference."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAWH%2F98vc%3D","line":118,"in_reply_to":"AAAAWH%2F99NQ%3D","updated":"2014-04-01 02:20:18.000000000","message":"Sure,you\u0027re right,It will be added to v3 too.","commit_id":"55397acd139f947688b9df78cd915272a7a874e9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":14,"context_line":"This is more graceful than performing the same operation only in cinder"},{"line_number":15,"context_line":"because Nova can clean up its own records about the attachment."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95EM%3D","line":15,"updated":"2014-04-01 11:41:24.000000000","message":"keeps the state consistent between nova and cinder I guess, not sure its graceful as such.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7504523f87a35c0c5ea3a3b9fccb2a2c56ad473f","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":14,"context_line":"This is more graceful than performing the same operation only in cinder"},{"line_number":15,"context_line":"because Nova can clean up its own records about the attachment."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F94HI%3D","line":15,"in_reply_to":"AAAAWH%2F95EM%3D","updated":"2014-04-01 13:51:44.000000000","message":"This was my suggested wording, and \"more graceful\" seems reasonable here :)","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"There is use case: we have two nova components(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder component. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, so using cinder api \"force detach volume\" to free this volume."},{"line_number":24,"context_line":"But when nova A is normal, nova can\u0027t detach this volume from instance by"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Ek%3D","line":21,"updated":"2014-04-01 11:41:24.000000000","message":"Probably worth describing how you get into this inconsistent state in the first place?","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"There is use case: we have two nova components(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder component. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, so using cinder api \"force detach volume\" to free this volume."},{"line_number":24,"context_line":"But when nova A is normal, nova can\u0027t detach this volume from instance by"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zcY%3D","line":21,"in_reply_to":"AAAAWH%2F95Ek%3D","updated":"2014-04-02 03:21:14.000000000","message":"Yes,I want to describe it via the use case which is what I did to get into this inconsistent state. Maybe the description is not clear. I will make it better.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, so using cinder api \"force detach volume\" to free this volume."},{"line_number":24,"context_line":"But when nova A is normal, nova can\u0027t detach this volume from instance by"},{"line_number":25,"context_line":"using nova api \"detach volume\", as nova check the volume state must be"},{"line_number":26,"context_line":"\"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Eo%3D","line":26,"updated":"2014-04-01 11:41:24.000000000","message":"Without this you have to directly edit the DB I guess, which is clearly bad.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, so using cinder api \"force detach volume\" to free this volume."},{"line_number":24,"context_line":"But when nova A is normal, nova can\u0027t detach this volume from instance by"},{"line_number":25,"context_line":"using nova api \"detach volume\", as nova check the volume state must be"},{"line_number":26,"context_line":"\"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zW0%3D","line":26,"in_reply_to":"AAAAWH%2F95Eo%3D","updated":"2014-04-02 03:21:14.000000000","message":"Yes. At present, if want to clean the attach information in this case mentioned above, it is needed to directly edit the DB of nova.So we want to provide this method to do it.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"(default value is false) in nova detach api."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2. When force_detach is true, nova will detach the volume for clean the attach information"},{"line_number":35,"context_line":"whether volume status is attached or detached."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95HQ%3D","line":35,"updated":"2014-04-01 11:41:24.000000000","message":"If a clean detach fails, should nova attempt a forced detach, or should that be a different call. it seems we are mixing the concept of \"force\" here.\n\nDo we want protection against detaching the root disk? prehaps not, but might be worth covering in the alternatives.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":32,"context_line":"(default value is false) in nova detach api."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2. When force_detach is true, nova will detach the volume for clean the attach information"},{"line_number":35,"context_line":"whether volume status is attached or detached."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zZw%3D","line":35,"in_reply_to":"AAAAWH%2F95HQ%3D","updated":"2014-04-02 03:21:14.000000000","message":"In my mind, it should be a different call. When detach volume fails, admin user cloud using \"force detach\u0027 call to clean the attach information in nova.\n\nYes,We don\u0027t want detach the root disk, it just work on the \"general volume\" and will explain this in the alternatives.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"2. When force_detach is true, nova will detach the volume for clean the attach information"},{"line_number":35,"context_line":"whether volume status is attached or detached."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Jc%3D","line":37,"updated":"2014-04-01 11:41:24.000000000","message":"This has not rendered well, you need to indent the text in the above two lines correctly.\n\nhttp://docutils.sourceforge.net/docs/user/rst/quickref.html#enumerated-lists","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":34,"context_line":"2. When force_detach is true, nova will detach the volume for clean the attach information"},{"line_number":35,"context_line":"whether volume status is attached or detached."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zS4%3D","line":37,"in_reply_to":"AAAAWH%2F95Jc%3D","updated":"2014-04-02 03:21:14.000000000","message":"Thanks, I will check it.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Hg%3D","line":39,"updated":"2014-04-01 11:41:24.000000000","message":"What is the default policy here? I assume it defaults to admin only?","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. Then call force detach api in cinder."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zSs%3D","line":39,"in_reply_to":"AAAAWH%2F95Hg%3D","updated":"2014-04-02 03:21:14.000000000","message":"Yes,it defaults to admin only.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"REST API impact"},{"line_number":53,"context_line":"---------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\""},{"line_number":56,"context_line":"in rest body of nova detach api."},{"line_number":57,"context_line":"in V2 it look like:"},{"line_number":58,"context_line":"/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95JA%3D","line":55,"updated":"2014-04-01 11:41:24.000000000","message":"I assume the default is false, but please give more data.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":52,"context_line":"REST API impact"},{"line_number":53,"context_line":"---------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\""},{"line_number":56,"context_line":"in rest body of nova detach api."},{"line_number":57,"context_line":"in V2 it look like:"},{"line_number":58,"context_line":"/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zRU%3D","line":55,"in_reply_to":"AAAAWH%2F95JA%3D","updated":"2014-04-02 03:21:14.000000000","message":"Sure.default value will be added here.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\""},{"line_number":56,"context_line":"in rest body of nova detach api."},{"line_number":57,"context_line":"in V2 it look like:"},{"line_number":58,"context_line":"/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":59,"context_line":"{"},{"line_number":60,"context_line":"\"volumeDetachment\":{"},{"line_number":61,"context_line":"\"force_detach\":\"true\""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Io%3D","line":58,"updated":"2014-04-01 11:41:24.000000000","message":"please try using http://docutils.sourceforge.net/docs/user/rst/quickref.html#literal-blocks","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Add an optional parameter \"force_detach\u003dtrue/false\""},{"line_number":56,"context_line":"in rest body of nova detach api."},{"line_number":57,"context_line":"in V2 it look like:"},{"line_number":58,"context_line":"/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":59,"context_line":"{"},{"line_number":60,"context_line":"\"volumeDetachment\":{"},{"line_number":61,"context_line":"\"force_detach\":\"true\""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zRQ%3D","line":58,"in_reply_to":"AAAAWH%2F95Io%3D","updated":"2014-04-02 03:21:14.000000000","message":"OK~","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"}"},{"line_number":71,"context_line":"}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"or create a new extension api like these:"},{"line_number":74,"context_line":"/v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":75,"context_line":"/v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95HA%3D","line":73,"updated":"2014-04-01 11:41:24.000000000","message":"no need to have alternatives here.\n\nHowever v2 might need an extra extension to advertise this functionality, but not 100% we will need that any more, now XML is going away.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":70,"context_line":"}"},{"line_number":71,"context_line":"}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"or create a new extension api like these:"},{"line_number":74,"context_line":"/v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":75,"context_line":"/v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zOc%3D","line":73,"in_reply_to":"AAAAWH%2F95HA%3D","updated":"2014-04-02 03:21:14.000000000","message":"It looks like I should change my mind, it is better to add an extra extension for this bp. The rest request don\u0027t need body just like nova detach request.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"or create a new extension api like these:"},{"line_number":74,"context_line":"/v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":75,"context_line":"/v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Security impact"},{"line_number":79,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95Lw%3D","line":76,"updated":"2014-04-01 11:41:24.000000000","message":"Please include the json spec.\n\nWhat about return responses, status codes, etc? What happens if the force fails?","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":73,"context_line":"or create a new extension api like these:"},{"line_number":74,"context_line":"/v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":75,"context_line":"/v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Security impact"},{"line_number":79,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zFQ%3D","line":76,"in_reply_to":"AAAAWH%2F95Lw%3D","updated":"2014-04-02 03:21:14.000000000","message":"Sure.I will improve it.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"Other end user impact"},{"line_number":89,"context_line":"---------------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"None"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Performance Impact"},{"line_number":94,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95E4%3D","line":91,"updated":"2014-04-01 11:41:24.000000000","message":"How about python-novaclient changes?","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":88,"context_line":"Other end user impact"},{"line_number":89,"context_line":"---------------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"None"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Performance Impact"},{"line_number":94,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zFE%3D","line":91,"in_reply_to":"AAAAWH%2F95E4%3D","updated":"2014-04-02 03:21:14.000000000","message":"Thanks,I will think about it.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Performance Impact"},{"line_number":94,"context_line":"------------------"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There is no impact about the performance of nova."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Other deployer impact"},{"line_number":99,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95FA%3D","line":96,"updated":"2014-04-01 11:41:24.000000000","message":"Nit, None is fine.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Other deployer impact"},{"line_number":99,"context_line":"---------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95FE%3D","line":101,"updated":"2014-04-01 11:41:24.000000000","message":"Policy changes? I assume we need a separate policy for this override.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"becffe19cee94ce6f0d97d77f63393847926fb9c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F95F8%3D","line":122,"updated":"2014-04-01 11:41:24.000000000","message":"If you are adding tempest tests, there are a work item?\n\nProbably want the nova changes separate to the v3 and then v2 changes.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80c9bf4e675d44b0508446b0108248624eb79a36","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAAWH%2F9zEQ%3D","line":122,"in_reply_to":"AAAAWH%2F95F8%3D","updated":"2014-04-02 03:21:14.000000000","message":"Work item will be added.","commit_id":"09ec2fef8699b64872d0051268b6a9350f5b78ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5ccb05ac21c510e7ce468d201a60d1bb5c016901","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"we have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume.But when nova A"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9cR0%3D","line":20,"updated":"2014-04-04 14:13:34.000000000","message":"Can you capitalize \"we\"?","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"we have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume.But when nova A"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2Bng%3D","line":20,"in_reply_to":"AAAAWH%2F9cR0%3D","updated":"2014-04-08 06:35:51.000000000","message":"Done","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5ccb05ac21c510e7ce468d201a60d1bb5c016901","unresolved":false,"context_lines":[{"line_number":20,"context_line":"we have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume.But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9cRc%3D","line":23,"updated":"2014-04-04 14:13:34.000000000","message":"Need a space before \"but\"","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"we have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume.But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2Bnc%3D","line":23,"in_reply_to":"AAAAWH%2F9cRc%3D","updated":"2014-04-08 06:35:51.000000000","message":"Done","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5ccb05ac21c510e7ce468d201a60d1bb5c016901","unresolved":false,"context_lines":[{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9cLU%3D","line":37,"updated":"2014-04-04 14:13:34.000000000","message":"It looks like this changed from being a \"force\u003dBOOL\" approach to the  \"reset state to clean things up\" approach. For what it\u0027s worth, I think I like the force\u003dBOOL approach better. I suggested listing the \"reset state\" alternative here just for completeness.\n\nDo other folks prefer the reset_state option over the force\u003dBOOL one?","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2BPA%3D","line":37,"in_reply_to":"AAAAWH%2F9cLU%3D","updated":"2014-04-08 06:35:51.000000000","message":"Well,I think if adding \"force\u003dBOOL\" parameter in nova detach api, it needs request body which didn\u0027t have before this changes, that make a little complex. Otherwise, Cinder has independent \"force detach\" api, so maybe Nova has a independent one is better.","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"4b6ef8f79660f43bc114a3f26bda497f087ac117","unresolved":false,"context_lines":[{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":"Add optional \"force_detach\" parameter which is boolean variable"},{"line_number":43,"context_line":"(default value is false) in nova detach api. When force_detach is true,"},{"line_number":44,"context_line":"nova will detach the volume for clean the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached.It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9fIY%3D","line":44,"updated":"2014-04-04 07:54:51.000000000","message":"S/for clean /for cleaning","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":"Add optional \"force_detach\" parameter which is boolean variable"},{"line_number":43,"context_line":"(default value is false) in nova detach api. When force_detach is true,"},{"line_number":44,"context_line":"nova will detach the volume for clean the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached.It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2BXA%3D","line":44,"in_reply_to":"AAAAWH%2F9fIY%3D","updated":"2014-04-08 06:35:51.000000000","message":"Done","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"4b6ef8f79660f43bc114a3f26bda497f087ac117","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Add optional \"force_detach\" parameter which is boolean variable"},{"line_number":43,"context_line":"(default value is false) in nova detach api. When force_detach is true,"},{"line_number":44,"context_line":"nova will detach the volume for clean the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached.It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9fIA%3D","line":45,"updated":"2014-04-04 07:54:51.000000000","message":"Need a space.","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Add optional \"force_detach\" parameter which is boolean variable"},{"line_number":43,"context_line":"(default value is false) in nova detach api. When force_detach is true,"},{"line_number":44,"context_line":"nova will detach the volume for clean the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached.It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2BW8%3D","line":45,"in_reply_to":"AAAAWH%2F9fIA%3D","updated":"2014-04-08 06:35:51.000000000","message":"Done","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"4b6ef8f79660f43bc114a3f26bda497f087ac117","unresolved":false,"context_lines":[{"line_number":126,"context_line":"In tempest, it will test force detach volume from the cinder side"},{"line_number":127,"context_line":"and make sure that nova can still force detach, as well as making"},{"line_number":128,"context_line":"sure that a force detach in nova calls the cinder force detach API."},{"line_number":129,"context_line":"Further,test force detach in nova will not affect the volume which"},{"line_number":130,"context_line":"has been attached to other instance."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWH%2F9fHk%3D","line":129,"updated":"2014-04-04 07:54:51.000000000","message":"Need  a space.","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"441bf421b9be5c8152852a6d67bd48debdbcdde7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"In tempest, it will test force detach volume from the cinder side"},{"line_number":127,"context_line":"and make sure that nova can still force detach, as well as making"},{"line_number":128,"context_line":"sure that a force detach in nova calls the cinder force detach API."},{"line_number":129,"context_line":"Further,test force detach in nova will not affect the volume which"},{"line_number":130,"context_line":"has been attached to other instance."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAWn%2F%2F%2BW0%3D","line":129,"in_reply_to":"AAAAWH%2F9fHk%3D","updated":"2014-04-08 06:35:51.000000000","message":"Done","commit_id":"3c39ae61fc1e434c6012d6231eb0147e3c610b1e"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9dc347bda37f54eb9994f8058a467e7c9cb15b5a","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume. But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F6rU%3D","line":22,"updated":"2014-04-08 14:25:23.000000000","message":"I\u0027m confused by what you mean by \"Nova component\" here - are you talking about Instances (i.e VMs)  or separate copies of the Nova service (i.e. two installs of Nova that happen to be sharing a Cinder service)","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two nova components(call them nova A and nova B) and one cinder"},{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume. But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9q8%3D","line":22,"in_reply_to":"AAAAWn%2F%2F6rU%3D","updated":"2014-04-09 08:46:05.000000000","message":"It means \"separate copies of the Nova service\". In my case, there are two installs of Nova that happen to be sharing a Cinder service.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9dc347bda37f54eb9994f8058a467e7c9cb15b5a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume. But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F6q4%3D","line":24,"updated":"2014-04-08 14:25:23.000000000","message":"As in when \"nova A has recovered\" ?","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"component. Attach a volume to an instance in nova A and then services of"},{"line_number":22,"context_line":"nova A become abnormal. Because the volume also want to be used in nova B,"},{"line_number":23,"context_line":"so using cinder api \"force detach volume\" to free this volume. But when nova A"},{"line_number":24,"context_line":"is normal, nova can\u0027t detach this volume from instance by using nova api"},{"line_number":25,"context_line":"\"detach volume\", as nova check the volume state must be \"attached\"."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9oE%3D","line":24,"in_reply_to":"AAAAWn%2F%2F6q4%3D","updated":"2014-04-09 08:46:05.000000000","message":"Yes,After Nova service has recovered, we try to detach the volume using nova api.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9dc347bda37f54eb9994f8058a467e7c9cb15b5a","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":28,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F6ps%3D","line":29,"updated":"2014-04-08 14:25:23.000000000","message":"If nova A and nova B are instances (VMs), then can the force detach be processed in the API layer (as deletes are) if the compute host were the instance appears to be running is off-line ?   That would seem to avoid the need for \"nova A\" to recover before doing the force detach, and keep the DB state of volume attachment more consistent (i.e you could force a detach from A before doing the attach to B","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":28,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9fg%3D","line":29,"in_reply_to":"AAAAWn%2F%2F6ps%3D","updated":"2014-04-09 08:46:05.000000000","message":"Sorry, My description bring some confusion. Nova A and Nova B refer to two separate Nova service. This issue is if force detach a volume from a instance(by using cinder api), then you can\u0027t detach this volume by using nova detach api. So you can\u0027t clean up the attachment information in Nova DB and libvirt xml.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"922f458db6e2e4c9b219a1dc0db5545ea7bc886b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F8N4%3D","line":34,"updated":"2014-04-08 11:29:15.000000000","message":"# -\u003e 2 ?","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9eM%3D","line":34,"in_reply_to":"AAAAWn%2F%2F8N4%3D","updated":"2014-04-09 08:46:05.000000000","message":"sorry, I see the http://docutils.sourceforge.net/docs/user/rst/quickref.html#enumerated-lists using \"#\" to make the number. It looks like doesn\u0027t work. I will fix it.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"922f458db6e2e4c9b219a1dc0db5545ea7bc886b","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F8Kk%3D","line":35,"updated":"2014-04-08 11:29:15.000000000","message":"When calling this api against a real attached volume, does this api detach the volume? or just clean up the record?","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"710d247981a56fcf66e2cb15270f39f3d57adfc7","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F2A8%3D","line":35,"in_reply_to":"AAAAW3%2F%2F9do%3D","updated":"2014-04-10 00:59:29.000000000","message":"Thanks for your explanation, I got it. and I prefer the detaching behavior.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9do%3D","line":35,"in_reply_to":"AAAAWn%2F%2F8Kk%3D","updated":"2014-04-09 08:46:05.000000000","message":"It will detach the volume too.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"922f458db6e2e4c9b219a1dc0db5545ea7bc886b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F8Nw%3D","line":36,"updated":"2014-04-08 11:29:15.000000000","message":"# -\u003e 3 ?","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"1. Add a new extension api \"reset attach state\" which defaults to admin only."},{"line_number":34,"context_line":"#. When call this api, it will clean up the records about the attachment"},{"line_number":35,"context_line":"   and reset the attachment state of the volume in Nova A"},{"line_number":36,"context_line":"#. Then call force detach api in cinder to make consistent state between"},{"line_number":37,"context_line":"   nova and cinder"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9dY%3D","line":36,"in_reply_to":"AAAAWn%2F%2F8Nw%3D","updated":"2014-04-09 08:46:05.000000000","message":"Done","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9dc347bda37f54eb9994f8058a467e7c9cb15b5a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"nova will detach the volume for cleaning the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached. It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Data model impact"},{"line_number":50,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F6nA%3D","line":47,"updated":"2014-04-08 14:25:23.000000000","message":"I actually prefer the alternative - it seems like it would be a more understandable option from the user perspective, and this should be something that the user can control","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"nova will detach the volume for cleaning the attach information whether"},{"line_number":45,"context_line":"volume status is attached or detached. It will not affect the volume"},{"line_number":46,"context_line":"if it is attached to Nova B. Meanwhile \"force_detach\" will just affect"},{"line_number":47,"context_line":"the \"general volume\", not detach the root disk."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Data model impact"},{"line_number":50,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9bk%3D","line":47,"in_reply_to":"AAAAWn%2F%2F6nA%3D","updated":"2014-04-09 08:46:05.000000000","message":"Well, thanks, I will change this alternatives considering those suggestion.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"922f458db6e2e4c9b219a1dc0db5545ea7bc886b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"The rest api look like this in v2::"},{"line_number":58,"context_line":" /v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":59,"context_line":"and in v3 it is::"},{"line_number":60,"context_line":" /v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":63,"context_line":"If the request fails, volume status and attachment information will roll back."}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F8MU%3D","line":60,"updated":"2014-04-08 11:29:15.000000000","message":"The URL of v3 API does not contain project_id.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"The rest api look like this in v2::"},{"line_number":58,"context_line":" /v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":59,"context_line":"and in v3 it is::"},{"line_number":60,"context_line":" /v3/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":63,"context_line":"If the request fails, volume status and attachment information will roll back."}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9b8%3D","line":60,"in_reply_to":"AAAAWn%2F%2F8MU%3D","updated":"2014-04-09 08:46:05.000000000","message":"Thanks, I will fix it.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9dc347bda37f54eb9994f8058a467e7c9cb15b5a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Notifications impact"},{"line_number":72,"context_line":"--------------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"None"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other end user impact"},{"line_number":77,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F6nI%3D","line":74,"updated":"2014-04-08 14:25:23.000000000","message":"I think the fact that this operation was forced is something that you\u0027d want to have captured in the notification.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Notifications impact"},{"line_number":72,"context_line":"--------------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"None"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other end user impact"},{"line_number":77,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9cE%3D","line":74,"in_reply_to":"AAAAWn%2F%2F6nI%3D","updated":"2014-04-09 08:46:05.000000000","message":"Thanks, It does need notification. I will add it.","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"922f458db6e2e4c9b219a1dc0db5545ea7bc886b","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"1. Code this function in v2"},{"line_number":111,"context_line":"#. Code this function in v3"},{"line_number":112,"context_line":"#. Finish tempest tests"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAWn%2F%2F8MA%3D","line":112,"updated":"2014-04-08 11:29:15.000000000","message":"ditto: # -\u003e 2, 3?","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"aead8f97d5ce5f48a46c0b4bf2658330cfbee0d5","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"1. Code this function in v2"},{"line_number":111,"context_line":"#. Code this function in v3"},{"line_number":112,"context_line":"#. Finish tempest tests"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"AAAAW3%2F%2F9dc%3D","line":112,"in_reply_to":"AAAAWn%2F%2F8MA%3D","updated":"2014-04-09 08:46:05.000000000","message":"Done","commit_id":"e1f31279a50004a0ec39ac06fba298e8d4db69ae"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"5c2a689eb6df52d7176501caf73d05a84fa5cfc1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."},{"line_number":30,"context_line":""},{"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"}],"source_content_type":"text/x-rst","patch_set":12,"id":"AAAAW3%2F%2F8yo%3D","line":29,"updated":"2014-04-09 09:49:10.000000000","message":"This problem description is pretty unclear IMHO. It doesn\u0027t really explain why we get into a situation where we can\u0027t detach the volume in normal manner, without a \"force\".","commit_id":"4b4a98c895a9dbf2fe76ca7be0ca47fb2205c01a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"1c0bf5d6a06a16e782c9ffb29892f97bed0b5f93","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."},{"line_number":30,"context_line":""},{"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"}],"source_content_type":"text/x-rst","patch_set":12,"id":"AAAAW3%2F%2F8wA%3D","line":29,"in_reply_to":"AAAAW3%2F%2F8yo%3D","updated":"2014-04-09 09:53:41.000000000","message":"Well, I will improve it.","commit_id":"4b4a98c895a9dbf2fe76ca7be0ca47fb2205c01a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ab32e9da57bb3f113da383a33b55748c93bef6f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   is false) in nova detach api"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. When force_detach is true, nova will detach the volume for cleaning"},{"line_number":38,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2Fpfk%3D","line":38,"updated":"2014-04-11 12:44:52.000000000","message":"you are detaching the volume, as normal, I assume? Not sure I understand this text.","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9714a04d32245633d365ffe7b605182f633a4743","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   is false) in nova detach api"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. When force_detach is true, nova will detach the volume for cleaning"},{"line_number":38,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2FhGE%3D","line":38,"in_reply_to":"AAAAW3%2F%2Fpfk%3D","updated":"2014-04-14 03:03:56.000000000","message":"Yes, nova will detach the volume even if this state of volume is available in cinder.","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ab32e9da57bb3f113da383a33b55748c93bef6f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it is attached to Nova B."},{"line_number":44,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","},{"line_number":45,"context_line":"   not detach the root disk."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2Fpd0%3D","line":45,"updated":"2014-04-11 12:44:52.000000000","message":"apologies, not sure I understand this bit.\n\nDo you mean something like:\n\nIf cinder doesn\u0027t think the specified volume is not attached to this Server, the above force detach call will not change the state of that volume in cinder.","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9714a04d32245633d365ffe7b605182f633a4743","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it is attached to Nova B."},{"line_number":44,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","},{"line_number":45,"context_line":"   not detach the root disk."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2FhGs%3D","line":45,"in_reply_to":"AAAAW3%2F%2Fpd0%3D","updated":"2014-04-14 03:03:56.000000000","message":"Yes, I mean if this volume has been attached to other VM, force detach call will just clean up the attachment information of the VM which the volume was attached to, and not change the state of this volume in cinder.","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1ab32e9da57bb3f113da383a33b55748c93bef6f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":85,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Security impact"},{"line_number":89,"context_line":"---------------"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2FpdE%3D","line":87,"updated":"2014-04-11 12:44:52.000000000","message":"What is the name of the new v2 extension?\n\nAlso, what is the json validation for the new attribute?","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9714a04d32245633d365ffe7b605182f633a4743","unresolved":false,"context_lines":[{"line_number":84,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":85,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Security impact"},{"line_number":89,"context_line":"---------------"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"AAAAW3%2F%2FhEQ%3D","line":87,"in_reply_to":"AAAAW3%2F%2FpdE%3D","updated":"2014-04-14 03:03:56.000000000","message":"Sorry, \"name of the new v2 extension\" you mean is a new extension api \"reset volume attach state\" in Alternatives part, I guess? It would look like this :\t/v2/{project_id}/servers/{server_id}/os-reset_volume_attach_state/{volume_id}.\n\nThe json validation will be checking the value of \"force_detach\" must be \"true\" or \"false\" and case insensitive.","commit_id":"64800e62de5e0f9b2dddc3a77bd1bb4a35fa4940"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPhw%3D","line":20,"updated":"2014-04-23 04:27:21.000000000","message":"I guess this \"the Nova service\" means \"the Nova compute service\" not \"Nova API service\". right?\n\nIf so, s/\"the Nova service\"/\"the Nova compute service\"/ for representing it clearly.","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"6feb443982c7cef29ccc3f40708af60367773312","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FNwA%3D","line":20,"in_reply_to":"AAAAXH%2F%2FOoY%3D","updated":"2014-04-23 09:18:14.000000000","message":"In my test environment, there are two nova environment(include two nova api services). As I mentioned below, \"detach-volume\" request was sent to nova A api after it has recovered.  But this problem also exist in scenario that have one nova api and two nova compute as you said.","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9b340e1e7a00a9f7ca4f71571d8205ea5ed4347f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FOoY%3D","line":20,"in_reply_to":"AAAAXH%2F%2FOs8%3D","updated":"2014-04-23 07:14:32.000000000","message":"In this spec description, \"nova A\" and \"nova B\" seem \"nova compute\" only, because the scenario seems that a client sends a \"detach-volume\" request to one nova API and vm instances run on \"nova A\" or \"nova B\".","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00ac7bd4b46194485d169a0b3cb77925451ec294","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FOs8%3D","line":20,"in_reply_to":"AAAAXH%2F%2FPhw%3D","updated":"2014-04-23 07:03:03.000000000","message":"In my mind,\"Nova Service\" means a set of nova services,including nova api service and nova compute service both.\nMaybe using \"two separate copies of Nova environment\" is more clearly. Do you think so?","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova check the volume state must be \"attached\"."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPh0%3D","line":23,"updated":"2014-04-23 04:27:21.000000000","message":"s/Nova A api/nova A/","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00ac7bd4b46194485d169a0b3cb77925451ec294","unresolved":false,"context_lines":[{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova check the volume state must be \"attached\"."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FOss%3D","line":23,"in_reply_to":"AAAAXH%2F%2FPh0%3D","updated":"2014-04-23 07:03:03.000000000","message":"Done","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova check the volume state must be \"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPhk%3D","line":26,"updated":"2014-04-23 04:27:21.000000000","message":"s/check/checks/","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"00ac7bd4b46194485d169a0b3cb77925451ec294","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using Nova A api. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova check the volume state must be \"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FOsw%3D","line":26,"in_reply_to":"AAAAXH%2F%2FPhk%3D","updated":"2014-04-23 07:03:03.000000000","message":"Done","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":54,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":55,"context_line":"attachment state of the volume in Nova A. Then call force detach api in cinder"},{"line_number":56,"context_line":"to make consistent state between nova and cinder."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPhY%3D","line":55,"updated":"2014-04-23 04:27:21.000000000","message":"s/Nova A/nova A/ for the doc consistency.","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"3518fd6dd101113f36ba41fdaa5ab8293cc26327","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":54,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":55,"context_line":"attachment state of the volume in Nova A. Then call force detach api in cinder"},{"line_number":56,"context_line":"to make consistent state between nova and cinder."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FGgY%3D","line":55,"in_reply_to":"AAAAXH%2F%2FPhY%3D","updated":"2014-04-24 01:22:00.000000000","message":"Done","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"and in v3 it is::"},{"line_number":77,"context_line":" /v3/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    {"},{"line_number":80,"context_line":"        \"volumeDetachment\":{"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPf4%3D","line":77,"updated":"2014-04-23 04:27:21.000000000","message":"Now the detach-volume API of v3 is like:\n\n $ curl -i \u0027http://{nova-api}/v3/servers/{server_id}/action\u0027 -X POST ..\n -d \u0027{\n        \"detach\": {\n            \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\"\n        }\n     }\u0027\n\nWe can get a sample with\n\n $ nova --os-compute-api-version 3 --debug volume-detach vm01 54445bc5-7332-4215-a289-6036c1be79e7","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"3518fd6dd101113f36ba41fdaa5ab8293cc26327","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"and in v3 it is::"},{"line_number":77,"context_line":" /v3/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    {"},{"line_number":80,"context_line":"        \"volumeDetachment\":{"}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FGfU%3D","line":77,"in_reply_to":"AAAAXH%2F%2FPf4%3D","updated":"2014-04-24 01:22:00.000000000","message":"Thanks,I will changed it.","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dfdf2a5d243d0b3347d234cff32196c64c514728","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        \"volumeDetachment\":{"},{"line_number":81,"context_line":"        \"force_detach\":\"true\""},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The status code will be 200 When the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FPfA%3D","line":83,"updated":"2014-04-23 04:27:21.000000000","message":"So I guess here also is necessary to be changed.","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"3518fd6dd101113f36ba41fdaa5ab8293cc26327","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        \"volumeDetachment\":{"},{"line_number":81,"context_line":"        \"force_detach\":\"true\""},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The status code will be 200 When the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":23,"id":"AAAAXH%2F%2FGfY%3D","line":83,"in_reply_to":"AAAAXH%2F%2FPfA%3D","updated":"2014-04-24 01:22:00.000000000","message":"Done","commit_id":"b7179b36ce083b6d6d733901233b212d052839e0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"REST API impact"},{"line_number":64,"context_line":"---------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The rest api look like this in v2::"},{"line_number":67,"context_line":" {nova-api}/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGQA%3D","line":66,"updated":"2014-04-24 02:40:50.000000000","message":"A blank line is necessary for representing here as source code.\n\nhttp://sphinx-doc.org/rest.html#source-code","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":63,"context_line":"REST API impact"},{"line_number":64,"context_line":"---------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The rest api look like this in v2::"},{"line_number":67,"context_line":" {nova-api}/v2/{project_id}/servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGDM%3D","line":66,"in_reply_to":"AAAAXH%2F%2FGQA%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        {"},{"line_number":72,"context_line":"        \"force_detach\":\"true\""},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"and in v3 it is::"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGPo%3D","line":74,"updated":"2014-04-24 02:40:50.000000000","message":"This blank line seems unnecessary.\nand indent seems wrong.\n\nHow about this?\n\n {\n     \"volumeDetachment\": {\n         \"force_detach\":\"true\"\n     }\n }","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        {"},{"line_number":72,"context_line":"        \"force_detach\":\"true\""},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"and in v3 it is::"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGDI%3D","line":74,"in_reply_to":"AAAAXH%2F%2FGPo%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"and in v3 it is::"},{"line_number":78,"context_line":" {nova-api}/v3/servers/{server_id}/action"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGP0%3D","line":77,"updated":"2014-04-24 02:40:50.000000000","message":"ditto: a blank line","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"and in v3 it is::"},{"line_number":78,"context_line":" {nova-api}/v3/servers/{server_id}/action"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGDE%3D","line":77,"in_reply_to":"AAAAXH%2F%2FGP0%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":78,"context_line":" {nova-api}/v3/servers/{server_id}/action"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    {"},{"line_number":81,"context_line":"        \"detach\": "},{"line_number":82,"context_line":"        {"},{"line_number":83,"context_line":"        \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\""},{"line_number":84,"context_line":"        \"force_detach\": \"true\""}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGPU%3D","line":81,"updated":"2014-04-24 02:40:50.000000000","message":"unnecessary space at the end.","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":78,"context_line":" {nova-api}/v3/servers/{server_id}/action"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    {"},{"line_number":81,"context_line":"        \"detach\": "},{"line_number":82,"context_line":"        {"},{"line_number":83,"context_line":"        \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\""},{"line_number":84,"context_line":"        \"force_detach\": \"true\""}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGDA%3D","line":81,"in_reply_to":"AAAAXH%2F%2FGPU%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\""},{"line_number":84,"context_line":"        \"force_detach\": \"true\""},{"line_number":85,"context_line":"        }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    }"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The status code will be 200 When the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGPM%3D","line":86,"updated":"2014-04-24 02:40:50.000000000","message":"ditto: This blank line seems unnecessary.\n\nHow about this?\n\n {\n     \"detach\": {\n         \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\",\n         \"force_detach\": \"true\"\n     }\n }","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        \"volume_id\": \"54445bc5-7332-4215-a289-6036c1be79e7\""},{"line_number":84,"context_line":"        \"force_detach\": \"true\""},{"line_number":85,"context_line":"        }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    }"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The status code will be 200 When the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGC8%3D","line":86,"in_reply_to":"AAAAXH%2F%2FGPM%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"70ef58c4cbc4592da577198a8e9b5dba570ef8a1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":90,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":91,"context_line":"The json validation will be checking the value of \"force_detach\" must be \"true\""},{"line_number":92,"context_line":"or \"false\" and case insensitive."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGN4%3D","line":92,"updated":"2014-04-24 02:40:50.000000000","message":"not only \"true\"/\"false\" but also 0/1 seem necessary as the value, because the other APIs(create a server, etc) consider them also as boolean values with strutils.bool_from_string().","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"fa080c272b04b44a869434f25306f08c56539f70","unresolved":false,"context_lines":[{"line_number":89,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":90,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":91,"context_line":"The json validation will be checking the value of \"force_detach\" must be \"true\""},{"line_number":92,"context_line":"or \"false\" and case insensitive."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":28,"id":"AAAAXH%2F%2FGCk%3D","line":92,"in_reply_to":"AAAAXH%2F%2FGN4%3D","updated":"2014-04-24 03:39:03.000000000","message":"Done","commit_id":"584604aeb2d25947d62324faf0b5cafc77ec416a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48687936f8aea764e15acb9e48219b17bcaabc9d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it has been attached to other VM and just"},{"line_number":44,"context_line":"   clean up the attachment information of the VM which the volume was attached"},{"line_number":45,"context_line":"   to from nova side."},{"line_number":46,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","}],"source_content_type":"text/x-rst","patch_set":29,"id":"3a1371a2_0487d662","line":43,"updated":"2014-04-28 18:42:54.000000000","message":"\"It will not affect\" reads better, but its a minor issue.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"549d26592721c6bf6e2516275a4f72e43f292682","unresolved":false,"context_lines":[{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it has been attached to other VM and just"},{"line_number":44,"context_line":"   clean up the attachment information of the VM which the volume was attached"},{"line_number":45,"context_line":"   to from nova side."},{"line_number":46,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","}],"source_content_type":"text/x-rst","patch_set":29,"id":"bad4c104_03bb100f","line":43,"in_reply_to":"3a1371a2_0487d662","updated":"2014-04-29 01:23:52.000000000","message":"Thanks for pointing out this issue,  I\u0027ll certainly be more careful.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48687936f8aea764e15acb9e48219b17bcaabc9d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        }"},{"line_number":85,"context_line":"    }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":88,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":89,"context_line":"The json validation will be checking the value of \"force_detach\" should be"},{"line_number":90,"context_line":"\"true\" or \"false\"(also supporting 1 or 0) and case insensitive."}],"source_content_type":"text/x-rst","patch_set":29,"id":"3a1371a2_c48c9e82","line":87,"updated":"2014-04-28 18:42:54.000000000","message":"Not sure if 200 is correct, but the key thing is that it doesn\u0027t get changed by this change.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"549d26592721c6bf6e2516275a4f72e43f292682","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        }"},{"line_number":85,"context_line":"    }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":88,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":89,"context_line":"The json validation will be checking the value of \"force_detach\" should be"},{"line_number":90,"context_line":"\"true\" or \"false\"(also supporting 1 or 0) and case insensitive."}],"source_content_type":"text/x-rst","patch_set":29,"id":"bad4c104_235e54ea","line":87,"in_reply_to":"3a1371a2_c48c9e82","updated":"2014-04-29 01:23:52.000000000","message":"Yes,the status code doesn\u0027t get changed.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48687936f8aea764e15acb9e48219b17bcaabc9d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Other deployer impact"},{"line_number":116,"context_line":"---------------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The admin only policy for this api will be added into policy.json."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3a1371a2_64f32a0b","line":118,"updated":"2014-04-28 18:42:54.000000000","message":"Might be good to state what the policy is here, but mentioning it here is good enough I feel.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"549d26592721c6bf6e2516275a4f72e43f292682","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Other deployer impact"},{"line_number":116,"context_line":"---------------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The admin only policy for this api will be added into policy.json."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":29,"id":"bad4c104_835d60ec","line":118,"in_reply_to":"3a1371a2_64f32a0b","updated":"2014-04-29 01:23:52.000000000","message":"Thanks :-)","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48687936f8aea764e15acb9e48219b17bcaabc9d","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Assignee(s)"},{"line_number":131,"context_line":"-----------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Assignee: wanghao749 \u003cwanghao749@huawei.com\u003e"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3a1371a2_a4aec2e5","line":133,"updated":"2014-04-28 18:42:54.000000000","message":"probably better to have launchpad id rather than email, due to spam, but its up to you really.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"549d26592721c6bf6e2516275a4f72e43f292682","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Assignee(s)"},{"line_number":131,"context_line":"-----------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Assignee: wanghao749 \u003cwanghao749@huawei.com\u003e"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":29,"id":"bad4c104_230574c2","line":133,"in_reply_to":"3a1371a2_a4aec2e5","updated":"2014-04-29 01:23:52.000000000","message":"Sure I got it.","commit_id":"8f498b481bccaa3029ac0604511d2dc87b047b8f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d78e99cb805737380bb44328dc52cc968ac50a62","unresolved":false,"context_lines":[{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it has been attached to other VM and"},{"line_number":44,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":45,"context_line":"   attached to from nova side."},{"line_number":46,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","}],"source_content_type":"text/x-rst","patch_set":31,"id":"7adec928_8472cae3","line":43,"updated":"2014-05-07 14:13:00.000000000","message":"\"It will not affect\" is easier to read.","commit_id":"7df45be07dce2d6931a53a82e84081afec041aca"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"70d768fbc37c0e1c1e6abe8d8cb37656b396e0d2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":41,"context_line":"   nova and cinder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"4. It will do not affect the volume if it has been attached to other VM and"},{"line_number":44,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":45,"context_line":"   attached to from nova side."},{"line_number":46,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\","}],"source_content_type":"text/x-rst","patch_set":31,"id":"7adec928_5287a461","line":43,"in_reply_to":"7adec928_8472cae3","updated":"2014-05-07 14:44:12.000000000","message":"Sure, I will fix it.","commit_id":"7df45be07dce2d6931a53a82e84081afec041aca"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d78e99cb805737380bb44328dc52cc968ac50a62","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    {"},{"line_number":72,"context_line":"        \"volumeDetachment\": {"},{"line_number":73,"context_line":"            \"force_detach\":\"true\""},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"7adec928_a40b462a","line":73,"updated":"2014-05-07 14:13:00.000000000","message":"Sorry, I forgot about this before, but the template asks for the json validition scheme, just need to talk about what gets added to things like this:\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/v3/extended_volumes.py","commit_id":"7df45be07dce2d6931a53a82e84081afec041aca"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d78e99cb805737380bb44328dc52cc968ac50a62","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        }"},{"line_number":86,"context_line":"    }"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The status code will be 200 When the request has succeeded."},{"line_number":89,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":90,"context_line":"The json validation will be checking the value of \"force_detach\" should be"},{"line_number":91,"context_line":"\"true\" or \"false\"(also supporting 1 or 0) and case insensitive."}],"source_content_type":"text/x-rst","patch_set":31,"id":"7adec928_c45a1250","line":88,"updated":"2014-05-07 14:13:00.000000000","message":"Probably better to not mention the status code, it should not be altered here.","commit_id":"7df45be07dce2d6931a53a82e84081afec041aca"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f37a50acc09a02c468a616dec44d96bfd81199dd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_30fd703b","line":21,"updated":"2014-05-09 21:44:24.000000000","message":"what do you mean by two nova services? Two entire nova clouds?","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"410e4de973636c0f01bcfd0a4348b0448b11f4a0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_b39a6761","line":21,"in_reply_to":"7adec928_30fd703b","updated":"2014-05-10 06:13:34.000000000","message":"Yes,I mean those are two entire nova clouds(api+scheduler+compute),and they share one cinder service.","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f37a50acc09a02c468a616dec44d96bfd81199dd","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_9099e421","line":22,"updated":"2014-05-09 21:44:24.000000000","message":"abnormal how?","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"410e4de973636c0f01bcfd0a4348b0448b11f4a0","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We have two separate copies of the Nova service(call them nova A and nova B)"},{"line_number":21,"context_line":"and one cinder service. Attach a volume to an instance in nova A and then"},{"line_number":22,"context_line":"services of nova A become abnormal. Because the volume also want to be used"},{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_33c5773c","line":22,"in_reply_to":"7adec928_9099e421","updated":"2014-05-10 06:13:34.000000000","message":"In my environment, it means the service of nova api is down. But there are other cases like nova compute service or physical hosts become down.","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"9b6d2fac4b277958f83b2fc3a3b36cd3bbb64009","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova checks the volume state must be \"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_bb87d5d6","line":26,"updated":"2014-05-21 07:56:45.000000000","message":"I think this is just a bug fix in nova really - not a BP with a new API flag.\n\ndetach_volume should go and check nova\u0027s block device mapping records and see if it has the volume \u0027attached\u0027 and if so realize that it is probably safe to proceed with the detach as the Cinder has forced detach on it.","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f37a50acc09a02c468a616dec44d96bfd81199dd","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova checks the volume state must be \"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_309490e1","line":26,"updated":"2014-05-09 21:44:24.000000000","message":"Is there a bigger implication to this such as you cannot delete the instance etc?","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"410e4de973636c0f01bcfd0a4348b0448b11f4a0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"in nova B, and can\u0027t detach this volume by using nova A. So using cinder api"},{"line_number":24,"context_line":"\"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":25,"context_line":"nova can\u0027t detach this volume from instance by using nova api \"detach volume\","},{"line_number":26,"context_line":"as nova checks the volume state must be \"attached\"."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"So after using \"force detach volume\" in cinder, we can\u0027t detach this volume"},{"line_number":29,"context_line":"from nova, can\u0027t clean up attachment records in nova and libvirt xml."}],"source_content_type":"text/x-rst","patch_set":32,"id":"7adec928_53d763ed","line":26,"in_reply_to":"7adec928_309490e1","updated":"2014-05-10 06:13:34.000000000","message":"In my case, I don\u0027t want to delete the instance, but just detach this volume.But using \u0027detach volume\u0027 is failed because the status of this volume is already \"detached\" in cinder side.","commit_id":"03cd63a2810c4207a8d406cf5d01e1587d2e14db"}],"specs/liberty/approved/add-force-detach-to-nova.rst":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"371fee0f6b7b00db253a4d0347658c81b9215efa","unresolved":false,"context_lines":[{"line_number":34,"context_line":"in nova B, and can\u0027t detach this volume through api of nova A. So using cinder"},{"line_number":35,"context_line":"api \"force detach volume\" to free this volume. But when nova A has recovered,"},{"line_number":36,"context_line":"it can\u0027t clean up the attachment info by using nova api \"detach volume\","},{"line_number":37,"context_line":"because nova checks the volume\u0027s state must be \"attached\"."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"},{"line_number":40,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"7a016987_a418fed3","line":37,"updated":"2015-05-21 16:45:43.000000000","message":"Hi Wanghao, I understand this use case but I think there is a more general and compelling one that makes sense that does not assume something has been done in cinder.\n\nPut simply: if anything goes wrong in the coordination between nova and cinder there is no provision for cleaning up volume connections on the nova side to get back to a good state. Adding the force detatch in nova fixes that.\n\nScott presented it this way in the design summit unconference session and put this way there was definite support. So I think adding it here would be a good idea.\n\nAs another example: a regular nova detach will fail if cider\u0027s volume-manager is not running. The result will be nova is unable to recover. The force detach will fix that case and many others.","commit_id":"18a8792285552d8b6ef88e1c493646ab57cd5549"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"371fee0f6b7b00db253a4d0347658c81b9215efa","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":58,"context_line":"   attached to from nova side."},{"line_number":59,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":60,"context_line":"   the root disk."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":39,"id":"7a016987_670b2825","line":60,"updated":"2015-05-21 16:45:43.000000000","message":"This last point is good for now,  but will change with another spec to attach/detach root volumes that is coming. \n\nRestricting to general vs root disk weakens your case because there will still be times that volumes become unrecoverable - this may affect the ability to delete an instance. There may be a case to force detatch during delete if there is a problem.\n\nOverall I think you are right to dismiss the boot volume case here.","commit_id":"18a8792285552d8b6ef88e1c493646ab57cd5549"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"d89d52cabe895849dd701955359793df9eb02243","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"the json validition scheme in v2.1:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"::"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    *delete_volume_attachment"}],"source_content_type":"text/x-rst","patch_set":43,"id":"7a016987_f380858d","line":100,"updated":"2015-05-27 08:44:49.000000000","message":"there won\u0027t be a json validation as the DELETE doesn\u0027t have a body. The implementation will use the querystring to pass the force parameter","commit_id":"fede8baa5c1fa8cd93b601c8276f8566deb3f309"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"1b59a2097e7133371ec1cbe3e23109d678db4d02","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"the json validition scheme in v2.1:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"::"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    *delete_volume_attachment"}],"source_content_type":"text/x-rst","patch_set":43,"id":"7a016987_eea9ba25","line":100,"in_reply_to":"7a016987_f380858d","updated":"2015-05-27 09:01:11.000000000","message":"Yes, it is a error. I will update it.","commit_id":"fede8baa5c1fa8cd93b601c8276f8566deb3f309"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"d89d52cabe895849dd701955359793df9eb02243","unresolved":false,"context_lines":[{"line_number":178,"context_line":"Dependencies"},{"line_number":179,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"This bp will work tegher with cinder side[1]"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":43,"id":"7a016987_6e1f0a5c","line":181,"updated":"2015-05-27 08:44:49.000000000","message":"nit: tegher is a typo","commit_id":"fede8baa5c1fa8cd93b601c8276f8566deb3f309"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"1b59a2097e7133371ec1cbe3e23109d678db4d02","unresolved":false,"context_lines":[{"line_number":178,"context_line":"Dependencies"},{"line_number":179,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"This bp will work tegher with cinder side[1]"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":43,"id":"7a016987_0eff7635","line":181,"in_reply_to":"7a016987_6e1f0a5c","updated":"2015-05-27 09:01:11.000000000","message":"Oh yes, fix it soon.","commit_id":"fede8baa5c1fa8cd93b601c8276f8566deb3f309"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3fb83f5e6675271e1e649e2f877bbc4c2146eb32","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":40,"context_line":"show block device for this volume. An attempt was made to attach a volume using"},{"line_number":41,"context_line":"\u0027nova volume-attach \u003cinstance\u003e \u003cvolume_id\u003e\u0027. The Cinder DB is set to"},{"line_number":42,"context_line":"\u0027attaching\u0027, but the volume was never attached.\tNow we usepython-cinderclient"},{"line_number":43,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":44,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":45,"context_line":"to clean up remaining info and make status normal at both side."}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_b64638be","line":42,"updated":"2015-05-28 16:13:59.000000000","message":"a Tab :)\nuse python-cinderclient","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":40,"context_line":"show block device for this volume. An attempt was made to attach a volume using"},{"line_number":41,"context_line":"\u0027nova volume-attach \u003cinstance\u003e \u003cvolume_id\u003e\u0027. The Cinder DB is set to"},{"line_number":42,"context_line":"\u0027attaching\u0027, but the volume was never attached.\tNow we usepython-cinderclient"},{"line_number":43,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":44,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":45,"context_line":"to clean up remaining info and make status normal at both side."}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_4ce89eb4","line":42,"in_reply_to":"7a016987_b64638be","updated":"2015-06-09 06:28:30.000000000","message":"Done","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"797c4d8e0ec36c8bf4f856a75dc585209bf4c656","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   (default value is false) in nova detach api(v2.1 API)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. When force_detach is true, nova will detach the volume for cleaning"},{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_ea05ff79","line":60,"updated":"2015-06-08 17:12:55.000000000","message":"do you mean the hypervisor volume status, the nova attachment status, or both?\n\nprobably best to review these detail in code though, maybe this is getting a bit too deep... for here.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"564fa739e8e9d1f09602386ccfa1bf899c61fa3c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   (default value is false) in nova detach api(v2.1 API)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. When force_detach is true, nova will detach the volume for cleaning"},{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":44,"id":"1af86dd1_94c83b76","line":60,"in_reply_to":"3afb71cf_8289bd28","updated":"2015-06-12 13:05:20.000000000","message":"ah, the cinder state...","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   (default value is false) in nova detach api(v2.1 API)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. When force_detach is true, nova will detach the volume for cleaning"},{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_8289bd28","line":60,"in_reply_to":"3afb71cf_ea05ff79","updated":"2015-06-09 06:28:30.000000000","message":"That I mean the volume status in cinder side. I suppose to clean up the nova attachment status and disconnect volume from host,then call cinder API \u0027force_detach\u0027 even if the volume status in cinder side is \u0027available\u0027 or \u0027attaching\u0027","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3fb83f5e6675271e1e649e2f877bbc4c2146eb32","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_79eaf310","line":63,"updated":"2015-05-28 16:13:59.000000000","message":"what if the force detach also failed?","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"f900cdaab99eb57a91a004ecdece4162983273f7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":44,"id":"1af86dd1_0de8be7b","line":63,"in_reply_to":"1af86dd1_d420f34b","updated":"2015-06-12 14:28:38.000000000","message":"That is true, cinder could be down. But the goal of this is to make it idempotent and take away the need for knowledge of the internals.\nThe admin should be able to run this command whether nova or cinder state needs cleanup, and re-run it if cinder happened to be down during the first attempt.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"564fa739e8e9d1f09602386ccfa1bf899c61fa3c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":44,"id":"1af86dd1_d420f34b","line":63,"in_reply_to":"5afe65bd_b31656ef","updated":"2015-06-12 13:05:20.000000000","message":"it could mean cinder is broken right now, down for maintenance?","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"4a0072806f4d01784349b4c15a358695a6a0a8ba","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   the attach information whether volume status is attached or detached"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":44,"id":"5afe65bd_b31656ef","line":63,"in_reply_to":"7a016987_79eaf310","updated":"2015-06-03 22:22:48.000000000","message":"If Cinder force_detach fails, then that means that Cinder has already done terminate_connection and detach to cleanup. Nova should perform anything left to do (if Nova calls follow after cinder calls) or just return.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"797c4d8e0ec36c8bf4f856a75dc585209bf4c656","unresolved":false,"context_lines":[{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_4ae4130c","line":68,"updated":"2015-06-08 17:12:55.000000000","message":"to avoid confusion, I would just remove these two lines, and just add something below like...\n\nNote: Nova doesn\u0027t currently allow you to detach root volumes, so none of this applies to root disk volumes.\n\nOr something like that?","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_2cf7a2f6","line":68,"in_reply_to":"3afb71cf_4ae4130c","updated":"2015-06-09 06:28:30.000000000","message":"Emm, it\u0027s better as you said. I will change it.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3fb83f5e6675271e1e649e2f877bbc4c2146eb32","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_b9e4eb3b","line":69,"updated":"2015-05-28 16:13:59.000000000","message":"line 68-69 suggest boot from volume won\u0027t be affected?","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"797c4d8e0ec36c8bf4f856a75dc585209bf4c656","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_2a1c3711","line":69,"in_reply_to":"5afe65bd_0416f04b","updated":"2015-06-08 17:12:55.000000000","message":"yeah, lets make that separate.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"a285c9b572194653fd41d955e2c5ca59266423d9","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":44,"id":"5afe65bd_0416f04b","line":69,"in_reply_to":"5afe65bd_d3f2f2d1","updated":"2015-06-04 09:41:49.000000000","message":"At the moment nova prevents the detach of a bootable volume. We need nova to allow the detach before allowing a force detach. We eventually start the discussion about this option with a new spec.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"4a0072806f4d01784349b4c15a358695a6a0a8ba","unresolved":false,"context_lines":[{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":"   Meanwhile \"force_detach\" will just affect the \"general volume\", not detach"},{"line_number":69,"context_line":"   the root disk."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":44,"id":"5afe65bd_d3f2f2d1","line":69,"in_reply_to":"7a016987_b9e4eb3b","updated":"2015-06-03 22:22:48.000000000","message":"Should one be able to force-detach a bootable volume? If the instance is a \u0027pet\u0027, then someone might want their persistent bootable volume and persistent data volumes to be force detached in case something is terribly wrong. This would allow them to spin up a new instance and preserve the \u0027pet\u0027.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3fb83f5e6675271e1e649e2f877bbc4c2146eb32","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":76,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":77,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":78,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"},{"line_number":81,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_b64bd8b0","line":78,"updated":"2015-05-28 16:13:59.000000000","message":"is it possible to use nova-manage to update the status?","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"564fa739e8e9d1f09602386ccfa1bf899c61fa3c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":76,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":77,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":78,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"},{"line_number":81,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":44,"id":"1af86dd1_14268b68","line":78,"in_reply_to":"5afe65bd_13a52aa1","updated":"2015-06-12 13:05:20.000000000","message":"-1 to nova-manage","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"4a0072806f4d01784349b4c15a358695a6a0a8ba","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":76,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":77,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":78,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"},{"line_number":81,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":44,"id":"5afe65bd_13a52aa1","line":78,"in_reply_to":"7a016987_b64bd8b0","updated":"2015-06-03 22:22:48.000000000","message":"There is nothing that I know of that will be a complete solution using nova-manage.\nWe need to call:\nlibvirt.volume_detach\nlibvirt.driver.disconnect_volume\n\u003csome BDM cleanup\u003e\ncinder force_detach","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"797c4d8e0ec36c8bf4f856a75dc585209bf4c656","unresolved":false,"context_lines":[{"line_number":84,"context_line":"REST API impact"},{"line_number":85,"context_line":"---------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The rest api look like this in v2.1:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"::"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_8a456b18","line":87,"updated":"2015-06-08 17:12:55.000000000","message":"nit: probably worth adding it will get at added to a micro version in the v2.1 API.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":84,"context_line":"REST API impact"},{"line_number":85,"context_line":"---------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The rest api look like this in v2.1:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"::"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_ac683288","line":87,"in_reply_to":"3afb71cf_8a456b18","updated":"2015-06-09 06:28:30.000000000","message":"Sure.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3fb83f5e6675271e1e649e2f877bbc4c2146eb32","unresolved":false,"context_lines":[{"line_number":89,"context_line":"::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":92,"context_line":"\t        {v_id}?force_detach\u003dtrue"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"The status code will be HTTP 202 when the request has succeeded."},{"line_number":95,"context_line":"If the request fails, volume status and attachment information will roll back."}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_f626f0cc","line":92,"updated":"2015-05-28 16:13:59.000000000","message":"tab","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":89,"context_line":"::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":92,"context_line":"\t        {v_id}?force_detach\u003dtrue"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"The status code will be HTTP 202 when the request has succeeded."},{"line_number":95,"context_line":"If the request fails, volume status and attachment information will roll back."}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_ecf50acb","line":92,"in_reply_to":"7a016987_f626f0cc","updated":"2015-06-09 06:28:30.000000000","message":"Done","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"eb2a22c0f73b5d8724f819180dadb23f996f5d98","unresolved":false,"context_lines":[{"line_number":107,"context_line":"1. add force_detach.begin to notification"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"2. add force_detach.end to notification"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Other end user impact"},{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"7a016987_badefd3b","line":110,"updated":"2015-05-29 10:25:33.000000000","message":"Are you talking about the notification for the instance usage?\nDo we need a specific notification for the detach? I think we should use the volume.detach notification even if it is a force detach:\nhttps://github.com/openstack/nova/blob/master/nova/compute/manager.py#L4529","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"393fd4af6bf964c4736bdbb84b375fe98ae52534","unresolved":false,"context_lines":[{"line_number":107,"context_line":"1. add force_detach.begin to notification"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"2. add force_detach.end to notification"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Other end user impact"},{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_4c9ade64","line":110,"in_reply_to":"3afb71cf_2ae9d714","updated":"2015-06-09 06:28:30.000000000","message":"Sure, we could add additional message as John said. No need to add new notification for force_detach.Will update it.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"797c4d8e0ec36c8bf4f856a75dc585209bf4c656","unresolved":false,"context_lines":[{"line_number":107,"context_line":"1. add force_detach.begin to notification"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"2. add force_detach.end to notification"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Other end user impact"},{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":44,"id":"3afb71cf_2ae9d714","line":110,"in_reply_to":"7a016987_badefd3b","updated":"2015-06-08 17:12:55.000000000","message":"+1\n\nI don\u0027t think you should change the notification either, although adding a force_detach\u003dTrue/False might be worthwhile.","commit_id":"4abf90d6d0e769a480895158748158f5df1eb044"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"6feb53b792a9108d31b7d31087c9237c135663a8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-force-detach-to-nova"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":14,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":15,"context_line":"the attachment."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":46,"id":"3afb71cf_aa6664ea","line":14,"updated":"2015-06-11 01:38:54.000000000","message":"nit: grammar: \"This will make Nova gracefully clean up its own attachment records.\"","commit_id":"29b21d381b9fbbc076e470ef3ee5d16324c8e755"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"38037288ef453199c7aec87e1741d459dc8235a4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-force-detach-to-nova"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a mechanism to forcibly detach a volume from an instance in Nova."},{"line_number":14,"context_line":"This will graceful to make Nova can clean up its own records about"},{"line_number":15,"context_line":"the attachment."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":46,"id":"3afb71cf_cc7d316e","line":14,"in_reply_to":"3afb71cf_aa6664ea","updated":"2015-06-11 09:42:46.000000000","message":"Done","commit_id":"29b21d381b9fbbc076e470ef3ee5d16324c8e755"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d9576192a03be5eddca1aae8174e69ef8b7b8d47","unresolved":false,"context_lines":[{"line_number":85,"context_line":"REST API impact"},{"line_number":86,"context_line":"---------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The rest api will get at added to a micro version in the v2.1 API, and look"},{"line_number":89,"context_line":"like this:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_ac42f5ab","line":88,"updated":"2015-06-11 09:59:09.000000000","message":"nits:\n  \"get at added\" ... ?\n  s/micro version/microversion/ for consistency.","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4f22cd916d9ae3cdf1c48e1be69a4b20a2b4a0cc","unresolved":false,"context_lines":[{"line_number":85,"context_line":"REST API impact"},{"line_number":86,"context_line":"---------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The rest api will get at added to a micro version in the v2.1 API, and look"},{"line_number":89,"context_line":"like this:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_3929a29b","line":88,"in_reply_to":"3afb71cf_ac42f5ab","updated":"2015-06-11 10:49:38.000000000","message":"Done","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d9576192a03be5eddca1aae8174e69ef8b7b8d47","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":95,"context_line":"            {v_id}?force\u003dtrue"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The status code will be HTTP 202 when the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_6cf19d94","line":94,"updated":"2015-06-11 09:59:09.000000000","message":"Formatting nit: We don\u0027t need the \u0027*\u0027","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4f22cd916d9ae3cdf1c48e1be69a4b20a2b4a0cc","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":95,"context_line":"            {v_id}?force\u003dtrue"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The status code will be HTTP 202 when the request has succeeded."}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_f91d4a73","line":94,"in_reply_to":"3afb71cf_6cf19d94","updated":"2015-06-11 10:49:38.000000000","message":"Done","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d9576192a03be5eddca1aae8174e69ef8b7b8d47","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":95,"context_line":"            {v_id}?force\u003dtrue"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The status code will be HTTP 202 when the request has succeeded."},{"line_number":98,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":99,"context_line":"The API will be checking the value of \"force\" should be"},{"line_number":100,"context_line":"\"true\" or \"false\" and case insensitive."}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_cce9b180","line":97,"updated":"2015-06-11 09:59:09.000000000","message":"So, I assume this is asynchronous.  How can the user know when the volume has been detached (or that the action has failed)?","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4f22cd916d9ae3cdf1c48e1be69a4b20a2b4a0cc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    *DELETE /v2.1/{project_id}/servers/{server_id}/os-volume_attachments/"},{"line_number":95,"context_line":"            {v_id}?force\u003dtrue"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The status code will be HTTP 202 when the request has succeeded."},{"line_number":98,"context_line":"If the request fails, volume status and attachment information will roll back."},{"line_number":99,"context_line":"The API will be checking the value of \"force\" should be"},{"line_number":100,"context_line":"\"true\" or \"false\" and case insensitive."}],"source_content_type":"text/x-rst","patch_set":47,"id":"3afb71cf_bc0a201e","line":97,"in_reply_to":"3afb71cf_cce9b180","updated":"2015-06-11 10:49:38.000000000","message":"The communication between nova and cinder is async. The user has to perform a nova or cinder command to see when the action has been completed.","commit_id":"26fa25b1fb33556f00c810387eb18b815b615684"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"5ebb522683f702c90009f4efe37a610f8b864f74","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"1af86dd1_0ddc39e3","line":36,"updated":"2015-06-12 16:29:30.000000000","message":"This really sounds like a bug in cinder - why are we working around this in Nova.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"5219572ceb675e74338bbe104e85fd7d137a4c05","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c7add089","line":36,"in_reply_to":"1af86dd1_0ddc39e3","updated":"2015-06-15 07:42:11.000000000","message":"I agree with Nikola.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"9515662dbacf6a660877626250876a2e0508c42c","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_61f61e91","line":36,"in_reply_to":"fa32b979_0552cd67","updated":"2015-06-15 15:17:15.000000000","message":"I agree that this particular use-case should be fixed in the existing code path, it is just one case where state gets out of sync. Nova code would need some logic as well in order to recover from cinder volume-manager being unavailable.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"aa8932f12cc0c28f8e0b63dcd642d9930019c129","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_536bb11e","line":36,"in_reply_to":"fa32b979_0552cd67","updated":"2015-06-15 15:35:03.000000000","message":"Not so much a bug in cinder as a bug in the cinder/nova integration. If nova thinks its doing the detach and then network connectivity stops half way through, we end up in an error condition that nova will refuse to get out of. The only way out is for nova to decide to do a detach no matter what it thinks the state of the connection is and tell cinder to do a detach no matter what it thinks nova is doing.\n\nThe longer term solution is to fix the nova/cinder interaction which requires cinder to design a new interface and nova to adapt to it. We are doing that work so ultimately this may become redundant.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"aa8b5676e5fa2e37469ad54b12ecc408262228d4","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_58791ec7","line":36,"in_reply_to":"fa32b979_2e041b16","updated":"2015-06-17 15:50:50.000000000","message":"Thanks for the clarification though completely irrelevant to what I was trying to say (cinder should probably not bother users of it\u0027s API with it\u0027s message delivery failures and if this kind of thing leaks out it\u0027s probably a design issue).\n\nI was going to respond to this in more detail but the fact that you felt the need to explain to me at this point in discussion that Nova is _actually_ talking to cinder over REST, tells me you may not be here looking for a constructive discussion.\n\nit\u0027s  also irrelevant to the overall point of why this particular way of fixing this is bad so I won\u0027t dwell on this any further.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8ff4ca84cdeadee16892eaee6315dfc7acd749a5","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_a1d735ec","line":36,"in_reply_to":"fa32b979_536bb11e","updated":"2015-06-15 21:43:56.000000000","message":"FWIW - Nova knows only about the Cinder API - once cinder has accepted the detach request - it\u0027s really up to cinder to deal with it\u0027s services failing (we use oslo.messaging and a message bus that has very clear guarantees on message delivery so it\u0027s not like network is randomly unreliable from our layer POV) so Nova detach failing because there is a service Nova does not even know about down seems like very much a bug in Cinder.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a6e3d2552d4c082ac081b56ed46e9ecb5f196191","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c57acff0","line":36,"in_reply_to":"fa32b979_58791ec7","updated":"2015-06-25 17:50:53.000000000","message":"I\u0027m pretty sure Duncan isn\u0027t meaning any offense here, he\u0027s just keeping us honest.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"ca7e4633f87dab763b2d6c298db8308a2337bc0d","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_2e041b16","line":36,"in_reply_to":"fa32b979_a1d735ec","updated":"2015-06-17 13:37:34.000000000","message":"oslo.messaging has no guarantees of delivery - if the receiving process restarts before finishing handling a request, or rabbit restarts while the message is in-flight (including any messages queued on the rabbit server, which can easily be tens of them), then the message is gone. This is actually a real cause of issues during upgrade etc... draining a live system of activity is a tricky thing to do, since message flows can go round multiple loops in some cases - basically you currently have to shutdown the API servers then wait for all of the other logs to go quiet.\n\nAlso, nova is not talking to cinder over oslo.message, it is making REST calls.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"efc5d8b9f51a8801d18c21fa960ce7d8fe8e4892","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_0552cd67","line":36,"in_reply_to":"fa32b979_c7add089","updated":"2015-06-15 10:40:24.000000000","message":"The volume-manager could be down for different reasons, for example a network problem, I think we can\u0027t rely on the fact that the volume-manager API is always up and if something goes wrong during the process of detaching a volume we end up with a bad situation and at the moment we do not have a way for recovering.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"960595eeab7b122a75326340feb230f1f7046fad","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Case2:A regular nova detach will fail if cider\u0027s volume-manager is not running."},{"line_number":35,"context_line":"The result will be nova is unable to recover. The force detach will fix that"},{"line_number":36,"context_line":"case and many others."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Case3:Cinder DB \u0027attaching\u0027, storage back end \u0027available\u0027, Nova DB does not"},{"line_number":39,"context_line":"show block device for this volume. An attempt was made to attach a volume using"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_45bbf572","line":36,"in_reply_to":"fa32b979_c7add089","updated":"2015-06-15 10:36:23.000000000","message":"This feature is not independent, of course it need to cooperate with cinder side.There is cinder\u0027s spec and more cases in there:(https://review.openstack.org/#/c/172213/1/specs/liberty/implement-force-detach-for-safe-cleanup.rst). IMHO, this feature focus in keeping data clean and consistency at both side, we can\u0027t ensure that cinder is always work well, it needs a mechanism to make nova gracefully clean up its own attachments records in some cases listed in here also in cinder\u0027s spec.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"5ebb522683f702c90009f4efe37a610f8b864f74","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"1af86dd1_f03772e1","line":44,"updated":"2015-06-12 16:29:30.000000000","message":"This also sounds like something we should fix in Cinder. Attaching is basically used to \"lock\" the volume for a particular attach request so as to prevent racy requests.\n\nWhat we should be doing is (for example) recording some kind of a task id for the particular attach request, and then subsequent attach or detach attempts would look at the state of that task and if it has failed but cinder has not been notified - just proceed to do their thing.\n\nWe instead have this notion of admin going and manually detaching volumes - which is pretty bad from usability standpoing, and now we want to do the same thing in Nova. I\u0027m -1","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"5219572ceb675e74338bbe104e85fd7d137a4c05","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_e7efb4ae","line":44,"in_reply_to":"1af86dd1_f03772e1","updated":"2015-06-15 07:42:11.000000000","message":"I agree with Nikola, this is a step in the wrong direction. This spec should focus on removing the need for \u0027force detach\u0027 all together.\n\n-1 on adding more workarounds that humans have to trigger for failure conditions, instead of fixing the underlying failure conditions.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a6e3d2552d4c082ac081b56ed46e9ecb5f196191","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_65ff4334","line":44,"in_reply_to":"fa32b979_21a32551","updated":"2015-06-25 17:50:53.000000000","message":"Couldn\u0027t there be a periodic task in nova\u0027s compute manager that checks for out of whack attached volumes and then cleans them up, like the _cleanup_running_deleted_instances task?","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8ff4ca84cdeadee16892eaee6315dfc7acd749a5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_21a32551","line":44,"in_reply_to":"fa32b979_93b059f6","updated":"2015-06-15 21:43:56.000000000","message":"While I understand that this is meant to be a interim solution to help operators with a pain point they have, and you guys are working towards a more sustainable solution, I still don\u0027t like it.\n\nSee below for some more discussion on how to maybe have this workaround but make it less of a \"let\u0027s bolt on some more horrible things\".","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"aa8932f12cc0c28f8e0b63dcd642d9930019c129","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_93b059f6","line":44,"in_reply_to":"fa32b979_c8171cec","updated":"2015-06-15 15:35:03.000000000","message":"Hi Joe, Nikola, absolutely agree, we are working on changes between nova and cinder that would make this redundant. But that will take time because it needs a redesign of the cinder interface. We are working with cinder to do that. This spec is addressing a more immediate action that will get to a known state without performing surgery on database tables.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"9515662dbacf6a660877626250876a2e0508c42c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_01fdd239","line":44,"in_reply_to":"fa32b979_c8171cec","updated":"2015-06-15 15:17:15.000000000","message":"Yes, we are beginning to document the nova \u003c-\u003e cinder API and look for ways to improve it (https://etherpad.openstack.org/p/CinderNovaAPI). I predict that some bug fixes will come out of this in Liberty, and Nova and Cinder specs for M release. Some work will likely carry over to N release. The hope is to provide operators with tools to fix this common issue (Nova \u0026 Cinder out of sync) much sooner. We can work toward reducing these incidents, but they will probably not get to the point where they never occur.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"efc5d8b9f51a8801d18c21fa960ce7d8fe8e4892","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c8171cec","line":44,"in_reply_to":"fa32b979_e7efb4ae","updated":"2015-06-15 10:40:24.000000000","message":"AFAIK there is some work on the cinder side to redesign a better API which will solve a lot of issues we have at the moment between nova and cinder integration. That will be a long-term solution and a big change in the cider world but at the moment in not here and this spec is about giving a new tool for operators to address a real need that the operators have.\nWhen we have a stuck volume, the only way to fix the situation from the nova side is to manually update the DB entry for the BDM table, which is, in my opinion,  worse than the solution we are proposing here.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"960595eeab7b122a75326340feb230f1f7046fad","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u0027attaching\u0027, but the volume was never attached. Now we use python-cinderclient"},{"line_number":42,"context_line":"\u0027reset-state\u0027 to set the Cinder DB to \u0027available\u0027 will fix this. But with the"},{"line_number":43,"context_line":"implementation of the Nova code, admin will call \u0027nova volume-detach --force\u0027"},{"line_number":44,"context_line":"to clean up remaining info and make status normal at both side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_9be72040","line":44,"in_reply_to":"fa32b979_e7efb4ae","updated":"2015-06-15 10:36:23.000000000","message":"I\u0027m not sure there is no need to add \u0027-- force\u0027 at all. Since Scott DAngelo has discussed this design with Nova fellas in Vancouver summit. Maybe we need some advices from him.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"507b0abc5736bebb61efebe7d793bd0d59067bcf","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. When force is true, nova will detach the volume for cleaning"},{"line_number":59,"context_line":"   the attach information and disconnect volume from host whether volume status"},{"line_number":60,"context_line":"   is attached or detached in cinder side."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_59fca771","line":60,"updated":"2015-06-24 16:38:28.000000000","message":"how specifically?   If Nova only calls libvirt volume\u0027s disconnect_volume, without Cinder\u0027s terminate_connection being called, then volumes may show back up on the nova host.   Specifically for iSCSI volumes.\n\nIf an iSCSI session from the compute host to the storage backend still exists (because other volumes are connected), then the volume you just removed will show back up on the next scsi bus rescan.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"847a8e258df8a5a2d209df6ae96aae668c43ccb8","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. When force is true, nova will detach the volume for cleaning"},{"line_number":59,"context_line":"   the attach information and disconnect volume from host whether volume status"},{"line_number":60,"context_line":"   is attached or detached in cinder side."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"}],"source_content_type":"text/x-rst","patch_set":48,"id":"ba3cc151_cf2429b1","line":60,"in_reply_to":"fa32b979_59fca771","updated":"2015-06-29 03:43:31.000000000","message":"Sorry for the description is not clear enough. Of course we need the terminate_connection being called, actually force_detach API in cinder side will do this thing, it will call the terminate_connection and detach_volume.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"507b0abc5736bebb61efebe7d793bd0d59067bcf","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   is attached or detached in cinder side."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_b917f3a1","line":63,"updated":"2015-06-24 16:38:28.000000000","message":"which detach api\u0027s specifically.   You must call terminate_connection and then detach_volume in order for cinder to correctly unexport the volume from the backend, and then update cinder\u0027s DB.    But there are checks in place that won\u0027t allow those calls to happen if the volume is in \u0027ing\u0027 state (attaching, detaching, etc)","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"847a8e258df8a5a2d209df6ae96aae668c43ccb8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   is attached or detached in cinder side."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"3. Then call force detach api in cinder to make consistent state between"},{"line_number":63,"context_line":"   nova and cinder"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"}],"source_content_type":"text/x-rst","patch_set":48,"id":"ba3cc151_2f4b555b","line":63,"in_reply_to":"fa32b979_b917f3a1","updated":"2015-06-29 03:43:31.000000000","message":"There is a change for nova, nova need allow to detach volume even if the volume\u0027s status is attaching or detaching.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"5ebb522683f702c90009f4efe37a610f8b864f74","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"1af86dd1_ed231d04","line":67,"updated":"2015-06-12 16:29:30.000000000","message":"TBH - I really don\u0027t see any reason why all of this should not be how detach behaves normally. I see no reason for there to be a detach, which fails, and then a users goes and says - no, I really mean it, you need to detach now, which then magically works.\n\nIt may still require a BP because of the API change, but IMHO the --force flag is just bad UI.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"efc5d8b9f51a8801d18c21fa960ce7d8fe8e4892","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_bb48e45c","line":67,"in_reply_to":"1af86dd1_ed231d04","updated":"2015-06-15 10:40:24.000000000","message":"The idea is that the detach always follow the \"regular\" process and makes some checks which will be not performed in the case of a \"force\" detach.\nFor example if a user try to detach a volume which is in \"available\" state, the detach fails and the user get back an error with the reason of the failure.\nIn case of force detach we don\u0027t check the volume status and we go ahead with the detaching.\nThe force detach is a kind of last resort we have to use to clean up some bad situation and to resync information between nova and cinder.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8ff4ca84cdeadee16892eaee6315dfc7acd749a5","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c442873e","line":67,"in_reply_to":"fa32b979_2156d629","updated":"2015-06-15 21:43:56.000000000","message":"Basically you are saying that we are adding all of this so that we can error out when someone tries to detach a detached volume.\n\nI think that having a detach that just does nothing for a request to detach a detached volume instead of erroring out, and otherwise does a \"force\" detach is a much nicer way to design that interaction (basically making it idempotent). After all this is what the user really wants.\n\nAlternatively Nova could detect if there are any irregularities with the state and act as \"force\" detach only then, but that is also an unnecessary complexity.\n\nI just can\u0027t make my peace with adding a \u0027force detach\u0027 - it makes no sense from a user\u0027s perspective. The user already told us they want it detached.\n\n\"Volume, detach pls\" - \"No\" - \"volume detach, I\u0027m serious\" - \"Oh ok\"\n\nIf anything should go it\u0027s that silly check.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"9515662dbacf6a660877626250876a2e0508c42c","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_2156d629","line":67,"in_reply_to":"fa32b979_bb48e45c","updated":"2015-06-15 15:17:15.000000000","message":"Yes, the main difference is that a \u0027--force\u0027 is required if we want to skip state checking for volume in \u0027attached\u0027 state. State checking will become more important as volume multi-attach lands.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a6e3d2552d4c082ac081b56ed46e9ecb5f196191","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c532cf0f","line":67,"in_reply_to":"fa32b979_c42607ce","updated":"2015-06-25 17:50:53.000000000","message":"To be fair, force volume detach sounds essentially the same as force delete of an instance, the only difference with normal delete is the state checking.  So if we\u0027re OK with forced instance delete, why is forced volume detach so terrible, knowing it\u0027s a last resort and yes the recovery/rollback/cleanup of failed attach/detach operations should be fixed as bug fixes?\n\nFor example, in the case of a network outage or something which shouldn\u0027t happen but shit happens, and things get out of whack, I really only see (1) force detach API, (2) periodic cleanup task, or (3) manual intervention in the database from the operator, which kind of sucks.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"7fecc0b22bb1a1d216387a0a2b0d374f918ae315","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_c42607ce","line":67,"in_reply_to":"fa32b979_c442873e","updated":"2015-06-15 22:06:18.000000000","message":"I completely agree that the state checks should go, and that the detach call should be idempotent.\nThe use case described here, for a user trying to detach a detached volume, is just one and, IMO, trivial. It\u0027s not the only case that drives this change, just one.\nI have fielded close to 100 support calls for volumes stuck in detaching/attaching that require manual intervention. Other cloud operators have the same pain. \nIn the long run, we\u0027d like to cure the underlying problem. We really hope in Liberty we can at least cure the symptom.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"570e5795ddca7a9c650479465b419d88c320c4c6","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"4. It will not affect the volume if it has been attached to other VM and"},{"line_number":66,"context_line":"   just clean up the attachment information of the VM which the volume was"},{"line_number":67,"context_line":"   attached to from nova side."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":70,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_80e4b5df","line":67,"in_reply_to":"fa32b979_c532cf0f","updated":"2015-06-25 17:53:23.000000000","message":"Because forced instance delete is an abomination of an API as well?","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"5ebb522683f702c90009f4efe37a610f8b864f74","unresolved":false,"context_lines":[{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":77,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":78,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":79,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"1af86dd1_edcb1d71","line":77,"updated":"2015-06-12 16:29:30.000000000","message":"I am not sure it makes a lot of sense to make this admin only. it is more likely that a tenant user will want to do this for their volumes when there was an issue with the cloud, than an admin caring about this.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"efc5d8b9f51a8801d18c21fa960ce7d8fe8e4892","unresolved":false,"context_lines":[{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":77,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":78,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":79,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_1bf3100c","line":77,"in_reply_to":"1af86dd1_edcb1d71","updated":"2015-06-15 10:40:24.000000000","message":"that is fine by me, I think in some (old) reviews of this spec there was a specific request to make the call available just for admins.\nI am happy to change the spec if we all agree on this point","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a6e3d2552d4c082ac081b56ed46e9ecb5f196191","unresolved":false,"context_lines":[{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Add a new extension api \"reset volume attach state\" which defaults to admin"},{"line_number":77,"context_line":"only. It will clean up the records about the attachment and reset the"},{"line_number":78,"context_line":"attachment state of the volume in nova side. Then call force detach api in"},{"line_number":79,"context_line":"cinder to make consistent state between nova and cinder."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_a058d9f9","line":77,"in_reply_to":"fa32b979_1bf3100c","updated":"2015-06-25 17:50:53.000000000","message":"Forced instance delete is by default not an admin-only operation in policy.json, so this shouldn\u0027t be admin-only either.  The confusion might have been in that force-delete for an instance I think sometimes requires a reset-state on the instance, which is by default admin-only.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a6e3d2552d4c082ac081b56ed46e9ecb5f196191","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Other deployer impact"},{"line_number":122,"context_line":"---------------------"},{"line_number":123,"context_line":"* The admin only policy for this api will be added into policy.json."},{"line_number":124,"context_line":"* We need to bump the python-cinderclient version in the requirements.txt in"},{"line_number":125,"context_line":"  order to use the version with the change [2] for exposing the Cinder\u0027s"},{"line_number":126,"context_line":"  force_detach call."}],"source_content_type":"text/x-rst","patch_set":48,"id":"fa32b979_e03021a0","line":123,"updated":"2015-06-25 17:50:53.000000000","message":"Shouldn\u0027t be admin-only.","commit_id":"7f84828bcb7689f6a25a50636b3a28f9a8c64413"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"1c8015de5e385cb6797bd639c2c8452ba2be6d74","unresolved":false,"context_lines":[{"line_number":49,"context_line":"2. When volume is in attaching or detaching, Nova will do the libvirt.detach,"},{"line_number":50,"context_line":"   removal of volume entry in BDM and just call Cinder API force_detach"},{"line_number":51,"context_line":"   ignoring any error. This api in Cinder side will do terminate connection"},{"line_number":52,"context_line":"   and detach volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":55,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":49,"id":"ba3cc151_3abe3100","line":52,"updated":"2015-06-29 04:38:23.000000000","message":"In the case that Cinder doesn\u0027t actually act on this (e.g. Cinder is not responding to API requests) you might care to document how the code or the admin is expected to respond.  Any RPC can fail for any number of reasons, but there\u0027s probably only one here that matters (it doesn\u0027t work, for whatever reason).","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8bf6a413681b7d368908d09c51827e84ad899e67","unresolved":false,"context_lines":[{"line_number":49,"context_line":"2. When volume is in attaching or detaching, Nova will do the libvirt.detach,"},{"line_number":50,"context_line":"   removal of volume entry in BDM and just call Cinder API force_detach"},{"line_number":51,"context_line":"   ignoring any error. This api in Cinder side will do terminate connection"},{"line_number":52,"context_line":"   and detach volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":55,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":49,"id":"ba3cc151_875e0544","line":52,"in_reply_to":"ba3cc151_3abe3100","updated":"2015-06-29 07:01:31.000000000","message":"Maybe there is not clear description, I propose Nova just call the force_detach API and ignore any error from cinder. So under the situation as you said, Nova also doesn\u0027t need to care about the response. Just Like as Nova is doing for common detach volume at the moment.","commit_id":"1bd892d373d924c73c3b3185be4f5a8e7831a976"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0e4cb031575d8920f907762aff3061e09ac7657f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Proposed change"},{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Add a nova-manage command: force-detach-volume"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":49,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a50d1a3_cc864916","line":46,"updated":"2015-07-30 23:31:23.000000000","message":"Better to name this nova-manage db volume-force-detach, in order to match the structure of some other nova-manage subcommands that effect the Nova DB directly. Place the new command in the nova/cmd/manage.py:DbCommands class.","commit_id":"4e4497a82671baea6300d4e475052f850d3d2896"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"aac017636b726de31b5b7908341a3730d00484bf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Proposed change"},{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Add a nova-manage command: force-detach-volume"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Note: Nova doesn\u0027t currently allow you to detach root volumes, so none of this"},{"line_number":49,"context_line":"applies to root disk volumes."}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a50d1a3_b9b8dae9","line":46,"in_reply_to":"3a50d1a3_cc864916","updated":"2015-07-30 23:40:05.000000000","message":"Done","commit_id":"4e4497a82671baea6300d4e475052f850d3d2896"}]}
