)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4ff2e5cff8319dd28aeb7f62fa31eee15cee0a4e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Paul Murray \u003cpmurray@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-25 11:48:07 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Detach and attach boot volumes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It is sometimes useful for a cloud user to be able to"},{"line_number":10,"context_line":"detach and attach the boot volume of an instance that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a8ffd7b_b60f57e0","line":7,"updated":"2015-11-25 17:21:41.000000000","message":"it is clearer if we specify here that those actions will be enabled for shelved instances.","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4ff2e5cff8319dd28aeb7f62fa31eee15cee0a4e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"in the shelved_offloaded state and adding safeguards to"},{"line_number":15,"context_line":"ensure it is safe."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"blueprint detach-boot-volume"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I8a0de69700e97e955a2358e4c97bd1d9b6e71117"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a8ffd7b_966ed394","line":17,"updated":"2015-11-25 17:21:41.000000000","message":"Please see my comment in the spec, I think we need an APIImpact flag here as we require a new api microversion","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"0effe2e8254f7d03c73a86f699e37b7f02cb7e3c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"in the shelved_offloaded state and adding safeguards to"},{"line_number":15,"context_line":"ensure it is safe."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"blueprint detach-boot-volume"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I8a0de69700e97e955a2358e4c97bd1d9b6e71117"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9a8ffd7b_48109e59","line":17,"in_reply_to":"9a8ffd7b_966ed394","updated":"2015-11-26 12:03:52.000000000","message":"Done","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"}],"specs/mitaka/approved/detach-boot-volume.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91d094f8dd28f23a6a95fb9d0d0cca667700eda9","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This limitation means it is not possible to change the boot volume"},{"line_number":29,"context_line":"attached to an instance except by deleting the instance and creating a new"},{"line_number":30,"context_line":"one. However, it is safe to change boot volume attachements when an instance"},{"line_number":31,"context_line":"is shutdown, so preventing this altogether is unnecessarily limiting."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"There are use cases that require a boot volume to be detached when an"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_66134c0e","line":30,"range":{"start_line":30,"start_character":47,"end_line":30,"end_character":59},"updated":"2015-10-20 17:10:17.000000000","message":"should be \"attachments\"","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"754cebc84cb0b4c2b89753bec02769151541a6fe","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  Secondly, by removing the virtual infrastructure build from the critial"},{"line_number":80,"context_line":"  path of the failover (steps 3-7), the down time caused by the failover"},{"line_number":81,"context_line":"  is minimised."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A bug registered against nova describes further use cases (see [1]). An"},{"line_number":84,"context_line":"example is the following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_d5bcb9dd","line":81,"updated":"2015-10-01 11:06:38.000000000","message":"This use case is quite contrived but I can see your point.\n\nI am still not convinced that this is good justification for detaching the root volume - such complicated failover scenarios are simply not something we can reasonably hope to solve within Nova IMHO. It seems to me that there still a lot of things that need to be done by the application / orchestration in the above scenario.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"74ceba316b4280acf47892f47d3687b52e2bc9c2","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  Secondly, by removing the virtual infrastructure build from the critial"},{"line_number":80,"context_line":"  path of the failover (steps 3-7), the down time caused by the failover"},{"line_number":81,"context_line":"  is minimised."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A bug registered against nova describes further use cases (see [1]). An"},{"line_number":84,"context_line":"example is the following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_85f26005","line":81,"in_reply_to":"9a1a9d01_d5bcb9dd","updated":"2015-10-02 11:07:00.000000000","message":"The use case has been implemented but requires hacks to do the volume detach and attach. The objective here is to support changing the boot volume. The process outlined above can be managed entirely externally to Nova - certainly agree on that point.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"b112f976a900edffa6a6ec42f4c7f8086fdaa6e0","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  As a user I want to run a VM with a windows instance. I will take snapshots"},{"line_number":87,"context_line":"  of the boot volume from time to time. I may want to revert to a snapshot."},{"line_number":88,"context_line":"  If I delete my instance and recreate it from the snapshot I will incure"},{"line_number":89,"context_line":"  additional costs from licensing and may invalidate my license."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Project Priority"},{"line_number":92,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_0a29d49d","line":89,"updated":"2015-09-30 15:32:14.000000000","message":"There seems to have been some incomplete work to do rollback in cinder. I guess playing devils advocate here, but wouldn\u0027t an alternative for this use case be to create a \u0027rollback\u0027 api.\n\nIt would be a lot more work, but a quick google search seems to indicate that this is something a fair number of users have gone looking for.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"754cebc84cb0b4c2b89753bec02769151541a6fe","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  As a user I want to run a VM with a windows instance. I will take snapshots"},{"line_number":87,"context_line":"  of the boot volume from time to time. I may want to revert to a snapshot."},{"line_number":88,"context_line":"  If I delete my instance and recreate it from the snapshot I will incure"},{"line_number":89,"context_line":"  additional costs from licensing and may invalidate my license."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Project Priority"},{"line_number":92,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_d51a797c","line":89,"in_reply_to":"9a1a9d01_0a29d49d","updated":"2015-10-01 11:06:38.000000000","message":"So the general problem you have here is that we can\u0027t really dispose of windows instances that are volume-backed as easily, because Nova likely exposes stuff to the guest OS (probably the UUID) that will make Windows think that it\u0027s license is being invalidated.\n\nThe bug in [1] also points out that the MAC change can be a problem for Linux guests as well.\n\nA lot of the stuff here can be mitigated by using the shelve API I believe. It would be good to see some discussion on why it does not do what we want in the alternatives section at least.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"754cebc84cb0b4c2b89753bec02769151541a6fe","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  mapping not expected - if it is present the start is not allowed."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"- It is not possible to detach an ephemeral disk using the detach volume"},{"line_number":130,"context_line":"  operation."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The volume attach operation allows a user to specify the name of the device."},{"line_number":133,"context_line":"The boot device name of an instance is known so that is used to determine"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_f0eeab20","line":130,"updated":"2015-10-01 11:06:38.000000000","message":"My biggest concern with this whole proposal is the number of edge cases we need to worry about.\n\nWhat I would like to see here is a list of all the operations this can conflict with. So for example what happens when I try to migrate or rebuild an instance with an attached root volume and how we plan to handle this.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"74ceba316b4280acf47892f47d3687b52e2bc9c2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  mapping not expected - if it is present the start is not allowed."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"- It is not possible to detach an ephemeral disk using the detach volume"},{"line_number":130,"context_line":"  operation."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The volume attach operation allows a user to specify the name of the device."},{"line_number":133,"context_line":"The boot device name of an instance is known so that is used to determine"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_45dbe8ed","line":130,"in_reply_to":"9a1a9d01_f0eeab20","updated":"2015-10-02 11:07:00.000000000","message":"The simplest approach would be to say you can\u0027t do anything if detaching a boot volume makes a difference. But that possition supports using swap instead of detach/attach because we\u0027re basically saying that the user can\u0027t do anything until another volume is attached.\n\nI will have a go at listing out the operations as you ask. See where it gets us.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"b112f976a900edffa6a6ec42f4c7f8086fdaa6e0","unresolved":false,"context_lines":[{"line_number":161,"context_line":"the instance must have a volume at all times, the volume detach (as part of"},{"line_number":162,"context_line":"the swap) would occur during the critical path. This gives a slower failover"},{"line_number":163,"context_line":"and uses up the volume that is not wanted. So a swap operation is useful,"},{"line_number":164,"context_line":"but not to the exclusion of seperate detach and attach operations."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Data model impact"},{"line_number":167,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_cac3dc36","line":164,"updated":"2015-09-30 15:32:14.000000000","message":"I\u0027m not sure what the problem is with the disaster recovery scenario. If the instance is currently shut down do we care that the old boot volume is still \u0027attached\u0027. Especially if the old boot volume is in a \u0027disaster\u0027 zone.\n\nThe only reason I could see for needed \u0027detach\u0027 and \u0027attach\u0027 over \u0027swap\u0027 is if you want to use the old boot volume for another instance before one is ready for the current instance. I don\u0027t know if there is an actual use case for this.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"468926b0a04c84c857de0703009e46e349d50203","unresolved":false,"context_lines":[{"line_number":161,"context_line":"the instance must have a volume at all times, the volume detach (as part of"},{"line_number":162,"context_line":"the swap) would occur during the critical path. This gives a slower failover"},{"line_number":163,"context_line":"and uses up the volume that is not wanted. So a swap operation is useful,"},{"line_number":164,"context_line":"but not to the exclusion of seperate detach and attach operations."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Data model impact"},{"line_number":167,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_5b270964","line":164,"in_reply_to":"7a2fa921_f42a8a8f","updated":"2015-10-20 16:50:02.000000000","message":"After discussing this with people actually using the DR use case it seems that swap would be very expensive for them. They generally start the recovery system with boot volumes, then shut the VMs down, detach the volumes and make each the target for replication. Then on failover they reattach the same volumes. So using swap would require additional volumes that have to be accounted for. There are a lot of VMs so there would be a lot of extra unnecessary volumes.\n\nHaving said that, shelve may work for them. We still have to solve the same problems as for shutdown so it only limits cases. I understand shelve is buggy at the moment.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e7f9fc161442a44cc686c6cbf0c544be6832e3cc","unresolved":false,"context_lines":[{"line_number":161,"context_line":"the instance must have a volume at all times, the volume detach (as part of"},{"line_number":162,"context_line":"the swap) would occur during the critical path. This gives a slower failover"},{"line_number":163,"context_line":"and uses up the volume that is not wanted. So a swap operation is useful,"},{"line_number":164,"context_line":"but not to the exclusion of seperate detach and attach operations."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Data model impact"},{"line_number":167,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_f42a8a8f","line":164,"in_reply_to":"9a1a9d01_85b5807f","updated":"2015-10-08 09:37:35.000000000","message":"OK I see what you mean.\n\nSo how about we take a closer look at the impact on other code paths, although I would still prefer the swap volume. it just seems like it gets us 99% of the way with much less work/impact","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"754cebc84cb0b4c2b89753bec02769151541a6fe","unresolved":false,"context_lines":[{"line_number":161,"context_line":"the instance must have a volume at all times, the volume detach (as part of"},{"line_number":162,"context_line":"the swap) would occur during the critical path. This gives a slower failover"},{"line_number":163,"context_line":"and uses up the volume that is not wanted. So a swap operation is useful,"},{"line_number":164,"context_line":"but not to the exclusion of seperate detach and attach operations."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Data model impact"},{"line_number":167,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_d03927a5","line":164,"in_reply_to":"9a1a9d01_cac3dc36","updated":"2015-10-01 11:06:38.000000000","message":"See my comment above about using the shelve instance to do this.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"74ceba316b4280acf47892f47d3687b52e2bc9c2","unresolved":false,"context_lines":[{"line_number":161,"context_line":"the instance must have a volume at all times, the volume detach (as part of"},{"line_number":162,"context_line":"the swap) would occur during the critical path. This gives a slower failover"},{"line_number":163,"context_line":"and uses up the volume that is not wanted. So a swap operation is useful,"},{"line_number":164,"context_line":"but not to the exclusion of seperate detach and attach operations."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Data model impact"},{"line_number":167,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_85b5807f","line":164,"in_reply_to":"9a1a9d01_d03927a5","updated":"2015-10-02 11:07:00.000000000","message":"Shelve instance defeats the disaster recovery use case because it can dismantle the virtual infrastructure. We explicitly want to have the user\u0027s virtual infrastructure in a known state when we attach the volumes.","commit_id":"1fc1387c84aa04ee589c8588d0fa3c34e8cf47b3"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"01875dca9f68826c9ecf5555ef167c5faf83332b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"instance is not running, so we propose relaxing the inherent assumption to"},{"line_number":34,"context_line":"say that a boot volume attachment can be changed when an instance is shelved."},{"line_number":35,"context_line":"To ensure safty we can prevent it being unshelved without a boot volume."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a29b11f_406038a5","line":36,"updated":"2015-10-21 19:38:56.000000000","message":"\u0027safety\u0027  misspelled","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"instance is not running, so we propose relaxing the inherent assumption to"},{"line_number":34,"context_line":"say that a boot volume attachment can be changed when an instance is shelved."},{"line_number":35,"context_line":"To ensure safty we can prevent it being unshelved without a boot volume."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_415f7041","line":36,"in_reply_to":"3a29b11f_406038a5","updated":"2015-11-09 13:38:47.000000000","message":"Done","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"3edf9183e1033b09ee1b8febd4a3d1b86781ad07","unresolved":false,"context_lines":[{"line_number":53,"context_line":"The ability to detach and attach boot volumes is required for this use case"},{"line_number":54,"context_line":"as implemented by the following failover from site A to site B:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"1. Build the virtual instrastructure in advance at site B and check that"},{"line_number":57,"context_line":"   the new infrastructure is complete, correctly configured and operable."},{"line_number":58,"context_line":"   Then shelve the instances and detach the disks. This infrastructure is"},{"line_number":59,"context_line":"   now ready to take over when supplied with replica disks."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a26ad4f_c18151fd","line":56,"updated":"2015-10-27 16:19:19.000000000","message":"instrastructure?","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"The ability to detach and attach boot volumes is required for this use case"},{"line_number":54,"context_line":"as implemented by the following failover from site A to site B:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"1. Build the virtual instrastructure in advance at site B and check that"},{"line_number":57,"context_line":"   the new infrastructure is complete, correctly configured and operable."},{"line_number":58,"context_line":"   Then shelve the instances and detach the disks. This infrastructure is"},{"line_number":59,"context_line":"   now ready to take over when supplied with replica disks."}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_2156ec29","line":56,"in_reply_to":"1a26ad4f_c18151fd","updated":"2015-11-09 13:38:47.000000000","message":"Done","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"3edf9183e1033b09ee1b8febd4a3d1b86781ad07","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  As a user I want to run a VM with a windows instance. I will take snapshots"},{"line_number":84,"context_line":"  of the boot volume from time to time. I may want to revert to a snapshot."},{"line_number":85,"context_line":"  If I delete my instance and recreate it from the snapshot I will incure"},{"line_number":86,"context_line":"  additional costs from licensing and may invalidate my license."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a26ad4f_813fd924","line":85,"updated":"2015-10-27 16:19:19.000000000","message":"incure?","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  As a user I want to run a VM with a windows instance. I will take snapshots"},{"line_number":84,"context_line":"  of the boot volume from time to time. I may want to revert to a snapshot."},{"line_number":85,"context_line":"  If I delete my instance and recreate it from the snapshot I will incure"},{"line_number":86,"context_line":"  additional costs from licensing and may invalidate my license."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_e136a402","line":85,"in_reply_to":"1a26ad4f_813fd924","updated":"2015-11-09 13:38:47.000000000","message":"Done","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"9a0611958aaf3ee1e97e1489e61e65ecaa42f048","unresolved":false,"context_lines":[{"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":"Proposed change"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa80f949_1fa641ae","line":92,"updated":"2015-11-06 11:10:40.000000000","message":"nit: if you need to upload a new patch, please remove this section as it is no more part of the template","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"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":"Proposed change"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_a1409c57","line":92,"in_reply_to":"fa80f949_1fa641ae","updated":"2015-11-09 13:38:47.000000000","message":"Done","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"bc9ab65233c1f19b40a2fecdcd083eaa92cb96d6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"The volume attach operation allows a user to specify the name of the device."},{"line_number":115,"context_line":"The boot device name of an instance is known so that is used to determine"},{"line_number":116,"context_line":"that the user is attempting to attach the volume as the root device. The"},{"line_number":117,"context_line":"attachment will only be allowed if the instance is shelved_offloaded and"},{"line_number":118,"context_line":"it has a \"no volume\" block device mapping."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a29b11f_313f0927","line":117,"updated":"2015-10-26 19:39:04.000000000","message":"There is a problem with synchronization here. When the instance is shelved_offloaded there is no compute node to use as a single point for synchronizng operations. Currently reserve_block_device_name() and _attach_volume() are synchronized in the compute manager.","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"The volume attach operation allows a user to specify the name of the device."},{"line_number":115,"context_line":"The boot device name of an instance is known so that is used to determine"},{"line_number":116,"context_line":"that the user is attempting to attach the volume as the root device. The"},{"line_number":117,"context_line":"attachment will only be allowed if the instance is shelved_offloaded and"},{"line_number":118,"context_line":"it has a \"no volume\" block device mapping."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_643882d4","line":117,"in_reply_to":"3a29b11f_313f0927","updated":"2015-11-09 13:38:47.000000000","message":"This spec lays ground work for htis one: https://review.openstack.org/#/c/243096/ The synchronization problem will be dealt with as part of that spec.","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"3edf9183e1033b09ee1b8febd4a3d1b86781ad07","unresolved":false,"context_lines":[{"line_number":122,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":123,"context_line":"place."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The change will add notifications when a boot device is successfully"},{"line_number":126,"context_line":"detached and when it is successfully attached."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a26ad4f_a5db00ed","line":125,"updated":"2015-10-27 16:19:19.000000000","message":"Detach notification (volume.detach) is now sent in ComputeManager._detach_volume. Do you want to send a new additional notification? Or to send a new notification instead of existing one?","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"28f7eba670e7a516024584c3c4066651f73b6e7f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":123,"context_line":"place."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The change will add notifications when a boot device is successfully"},{"line_number":126,"context_line":"detached and when it is successfully attached."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da85f559_44421e40","line":125,"in_reply_to":"1a26ad4f_a5db00ed","updated":"2015-11-09 13:38:47.000000000","message":"I will leave with original notifications. Removing this part.","commit_id":"2d6fa9581bc8ee2c677535b6f82ff769e45c232d"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4ff2e5cff8319dd28aeb7f62fa31eee15cee0a4e","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"},{"line_number":8,"context_line":"Detach and attach boot volumes"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/detach-boot-volume"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a8ffd7b_1b868c65","line":8,"updated":"2015-11-25 17:21:41.000000000","message":"I\u0027d say in the title that this is specific for shelved instances","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"4ff2e5cff8319dd28aeb7f62fa31eee15cee0a4e","unresolved":false,"context_lines":[{"line_number":169,"context_line":"because it has been detached will return an error:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"  \"Can\u0027t unshelve instance without a root device volume (HTTP: 403)\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Security impact"},{"line_number":174,"context_line":"---------------"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a8ffd7b_d6445b1c","line":172,"updated":"2015-11-25 17:21:41.000000000","message":"I think we need a new API microversion here as from the version x.y the attach/detach of a bootable volume is allowed for shelved instances, if the API is on a lower version then those actions are not supported yet.","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"0effe2e8254f7d03c73a86f699e37b7f02cb7e3c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"because it has been detached will return an error:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"  \"Can\u0027t unshelve instance without a root device volume (HTTP: 403)\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Security impact"},{"line_number":174,"context_line":"---------------"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a8ffd7b_c84c8eca","line":172,"in_reply_to":"9a8ffd7b_d6445b1c","updated":"2015-11-26 12:03:52.000000000","message":"Also new reason to disallow unshelve.\n\nDone","commit_id":"b2f9e9f456aa5e9cf40ee6c9f1cf7a335745b4ed"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"defb3516d32dcde2906d0964889ec91112c02de6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"The guard on this call will be changed to allow the detach if the instance"},{"line_number":101,"context_line":"is shelved_offloaded."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"When a boot volume is detached its block device mapping will be replaced"},{"line_number":104,"context_line":"with a block device mapping that indicates there is no volume. This is used"},{"line_number":105,"context_line":"to indicate that a volume should be attached as the boot device. There is"},{"line_number":106,"context_line":"a \"no device\" field in the existing block device mappings."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The usual attach volume API call will be used to attach the boot volume."},{"line_number":109,"context_line":"The volume attach operation allows a user to specify the name of the device."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_ef3d948f","line":106,"range":{"start_line":103,"start_character":0,"end_line":106,"end_character":58},"updated":"2015-11-27 17:17:01.000000000","message":"I am not so sure about this. no_device has a different (albeit a bit limited in it\u0027s usefulness) meaning (see devref block device mapping docs for more details).\n\nI don\u0027t think it\u0027s a good idea to use the same field to mean two completely different things in different situations.\n\nI think we should just add a new field and be explicit about it. It\u0027s really not a big deal","commit_id":"26a5869375e2f6f7f67662dc7f1e4d6146f90aa5"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"5746ae194f48e311d38876c2d16aac7749d2ca48","unresolved":false,"context_lines":[{"line_number":103,"context_line":"When a boot volume is detached its block device mapping will be replaced"},{"line_number":104,"context_line":"with a block device mapping that indicates there is no volume. This is used"},{"line_number":105,"context_line":"to indicate that a volume should be attached as the boot device. There is"},{"line_number":106,"context_line":"a \"no device\" field in the existing block device mappings."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The usual attach volume API call will be used to attach the boot volume."},{"line_number":109,"context_line":"The volume attach operation allows a user to specify the name of the device."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_64751d62","line":106,"in_reply_to":"9a8ffd7b_ef3d948f","updated":"2015-11-30 11:21:23.000000000","message":"The \"no device\" field is not mentioned in the devref: http://docs.openstack.org/developer/nova/block_device_mapping.html\n\nI thought we agreed it could be used this way, but maybe I misunderstood. No problem though - I will change to specify a new filed.","commit_id":"26a5869375e2f6f7f67662dc7f1e4d6146f90aa5"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"defb3516d32dcde2906d0964889ec91112c02de6","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Data model impact"},{"line_number":151,"context_line":"-----------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"None - we expect to use the existing block device mappings to represent"},{"line_number":154,"context_line":"a \"no device\" mapping for the root device."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"REST API impact"},{"line_number":157,"context_line":"---------------"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_af430c12","line":155,"range":{"start_line":153,"start_character":0,"end_line":155,"end_character":0},"updated":"2015-11-27 17:17:01.000000000","message":"See above","commit_id":"26a5869375e2f6f7f67662dc7f1e4d6146f90aa5"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"4741b9c1e40bd8a741eee1707338d86764d1b577","unresolved":false,"context_lines":[{"line_number":112,"context_line":"attachment will only be allowed if the instance is shelved_offloaded and"},{"line_number":113,"context_line":"it has a \"no volume\" block device mapping for the root device."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""},{"line_number":116,"context_line":"block device mapping. An instance will not be allowed to unshelve when"},{"line_number":117,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":118,"context_line":"place."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_15419939","line":118,"range":{"start_line":115,"start_character":0,"end_line":118,"end_character":6},"updated":"2015-12-01 11:53:41.000000000","message":"I worry about races here... we cant synchronise in the API well currently as we flip the VM state on the compute host. I would love to see some discussion on how to avoid these types of races in this spec.","commit_id":"88b78e2cb598ea9305576c2aa8299a2f5aca90f4"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"9c6e4be7911942aaedc582e2a36b9cd0993730ac","unresolved":false,"context_lines":[{"line_number":115,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""},{"line_number":116,"context_line":"block device mapping. An instance will not be allowed to unshelve when"},{"line_number":117,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":118,"context_line":"place."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Alternatives"},{"line_number":121,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_a5f403cf","line":118,"in_reply_to":"9a8ffd7b_15419939","updated":"2015-12-01 18:41:55.000000000","message":"As discussed with ndipanov and dansmith on IRC: the race condition is the same problem found in all volume operations as seeing in  https://bugs.launchpad.net/nova/+bug/1275144\n\nThis is being addressed in parallel under another spec. I will add a description to describing that here, but this spec is not viewed as dependant on that fix landing first.","commit_id":"88b78e2cb598ea9305576c2aa8299a2f5aca90f4"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a3f5d16818244d762f80e7aa02d157b3e3c5d562","unresolved":false,"context_lines":[{"line_number":110,"context_line":"The boot device name of an instance is known so that is used to determine"},{"line_number":111,"context_line":"that the user is attempting to attach the volume as the root device. The"},{"line_number":112,"context_line":"attachment will only be allowed if the instance is shelved_offloaded and"},{"line_number":113,"context_line":"it has a \"no volume\" block device mapping for the root device."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""},{"line_number":116,"context_line":"block device mapping. An instance will not be allowed to unshelve when"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_05794ffc","line":113,"updated":"2015-12-01 18:50:33.000000000","message":"It would be clearer to say \"and its block device mapping has device_present \u003d False\"","commit_id":"23bc566802e3e182482e90104df3a7db8f8f62e6"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a3f5d16818244d762f80e7aa02d157b3e3c5d562","unresolved":false,"context_lines":[{"line_number":113,"context_line":"it has a \"no volume\" block device mapping for the root device."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The unshelve operation will be guarded with a check for the \"no volume\""},{"line_number":116,"context_line":"block device mapping. An instance will not be allowed to unshelve when"},{"line_number":117,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":118,"context_line":"place."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_25633343","line":116,"updated":"2015-12-01 18:50:33.000000000","message":"Same as above.","commit_id":"23bc566802e3e182482e90104df3a7db8f8f62e6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8dd49719aea3d161324ec4e3551737bff70b29a1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"block device mapping. An instance will not be allowed to unshelve when"},{"line_number":117,"context_line":"its boot volume has been detached unless another has been attached in its"},{"line_number":118,"context_line":"place."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"There is a race condition identified in this bug [2] between volume"},{"line_number":121,"context_line":"operations and instance state changes. The same race condition will"},{"line_number":122,"context_line":"exist between the boot volume detach and the unshelve operations until"},{"line_number":123,"context_line":"that bug is fixed. That bug will be addressed by spec [3]."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Alternatives"},{"line_number":126,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_92e55fa9","line":123,"range":{"start_line":119,"start_character":0,"end_line":123,"end_character":58},"updated":"2015-12-02 10:24:33.000000000","message":"Thanks - I think this is important for future reference.","commit_id":"23bc566802e3e182482e90104df3a7db8f8f62e6"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a3f5d16818244d762f80e7aa02d157b3e3c5d562","unresolved":false,"context_lines":[{"line_number":142,"context_line":"ephemeral disks, snapshots and volumes. Because this goes beyond the"},{"line_number":143,"context_line":"existing volume API this generalization would suggest"},{"line_number":144,"context_line":"the need for a new API. This is not needed to satisfy the use cases"},{"line_number":145,"context_line":"provided so we propose restricting this behavior to the existing APIs."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Another alternative is to only allow boot volumes to be swapped in a single"},{"line_number":148,"context_line":"operation. This retains the assumption that an instance always has a volume"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_65a5bb45","line":145,"updated":"2015-12-01 18:50:33.000000000","message":"This and the preceding are not really alternatives; rather, they are enlarging the scope. I would delete them from this section.","commit_id":"23bc566802e3e182482e90104df3a7db8f8f62e6"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"7e3b35232b1a4cb25aa59f000abd3e6d00e326c7","unresolved":false,"context_lines":[{"line_number":142,"context_line":"ephemeral disks, snapshots and volumes. Because this goes beyond the"},{"line_number":143,"context_line":"existing volume API this generalization would suggest"},{"line_number":144,"context_line":"the need for a new API. This is not needed to satisfy the use cases"},{"line_number":145,"context_line":"provided so we propose restricting this behavior to the existing APIs."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Another alternative is to only allow boot volumes to be swapped in a single"},{"line_number":148,"context_line":"operation. This retains the assumption that an instance always has a volume"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_61ffcf01","line":145,"in_reply_to":"9a8ffd7b_65a5bb45","updated":"2015-12-02 09:18:35.000000000","message":"I agree with your point. I really put these in as a way to describe why we are not going further in this spec. It doesn\u0027t detract from the point of the spec so I can clean it up later if needed. Thanks.","commit_id":"23bc566802e3e182482e90104df3a7db8f8f62e6"}]}
