)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3e5bd4c77bd3065499c4c678b13abb6ef617c2b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp: destroy-instance-with-datavolume"},{"line_number":16,"context_line":"Change-Id: If06bd29a8fcad322aed337bb7fdb54aae304c8dc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_ee96c0a0","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":9},"updated":"2018-10-23 21:35:41.000000000","message":"You can remove this.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp: destroy-instance-with-datavolume"},{"line_number":16,"context_line":"Change-Id: If06bd29a8fcad322aed337bb7fdb54aae304c8dc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_55441b9f","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":9},"in_reply_to":"3f79a3b5_ee96c0a0","updated":"2018-10-24 08:45:17.000000000","message":"Done","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3e5bd4c77bd3065499c4c678b13abb6ef617c2b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp: destroy-instance-with-datavolume"},{"line_number":16,"context_line":"Change-Id: If06bd29a8fcad322aed337bb7fdb54aae304c8dc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_4e581424","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":36},"updated":"2018-10-23 21:35:41.000000000","message":"The spec filename needs to match the blueprint name, so rename the spec file.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":"DocImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp: destroy-instance-with-datavolume"},{"line_number":16,"context_line":"Change-Id: If06bd29a8fcad322aed337bb7fdb54aae304c8dc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_84fccb3f","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":36},"in_reply_to":"3f79a3b5_4e581424","updated":"2018-10-24 08:45:17.000000000","message":"Done","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"}],"specs/rocky/approved/support-deleting-data-volume-when-destroying-instance.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"15ab3db4f3be803520ee4da78ee282db1f18789d","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"   * - Release Name"},{"line_number":157,"context_line":"     - Description"},{"line_number":158,"context_line":"   * - Rocky"},{"line_number":159,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_a3ee24eb","line":158,"range":{"start_line":158,"start_character":7,"end_line":158,"end_character":12},"updated":"2018-08-16 18:17:14.000000000","message":"Stein","commit_id":"ed42198b577d784d496abae95d608bc4aba804d0"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"88130acdb46edc1b1ce6b442b73705c27e69af4d","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"   * - Release Name"},{"line_number":157,"context_line":"     - Description"},{"line_number":158,"context_line":"   * - Rocky"},{"line_number":159,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_a5794194","line":158,"range":{"start_line":158,"start_character":7,"end_line":158,"end_character":12},"in_reply_to":"3f79a3b5_a3ee24eb","updated":"2018-08-17 01:40:43.000000000","message":"Done","commit_id":"ed42198b577d784d496abae95d608bc4aba804d0"}],"specs/stein/approved/destroy-instance-with-datavolume.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1ad4afc582751804063a97a93a934f5a9735a4d4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":"Add a new microversion to update server API to support deleting data volumes"},{"line_number":36,"context_line":"while destroying instances. Add ``block_device_mapping_v2`` to the request"},{"line_number":37,"context_line":"body, which is a list of dicts. The root volume is denoted with boot_index\u003d0,"},{"line_number":38,"context_line":"but \u0027data volumes\u0027 can be specified in that list as well with the boot_index"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_24a98c8e","line":35,"range":{"start_line":35,"start_character":26,"end_line":35,"end_character":43},"updated":"2018-11-01 15:30:50.000000000","message":"I still think this is the wrong place to do this. What you want to update is a specific volume attachment resource on the server, and I think the cleanest way to do that is via the existing PUT API:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dupdate-a-volume-attachment-detail#update-a-volume-attachment\n\nThe question is how to make that work when all you want to do is change the delete_on_termination value of an existing attachment, rather than swap for a new volume (which is all that API does today).\n\nI think what we would probably do is:\n\n1. make the volumeId parameter optional\n2. add the delete_on_termination parameter\n\nSo if volumeId is specified, we\u0027re swapping volumes. If not, and delete_on_termination is specified, we\u0027re updating the delete_on_termination field for an existing BDM. Seems simple enough.","commit_id":"8a5f2fe7e76578994656101a4897094c5fa1b572"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"273ac4816d492ac394236a0a62d4babc63ef222c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":"Add a new microversion to update server API to support deleting data volumes"},{"line_number":36,"context_line":"while destroying instances. Add ``block_device_mapping_v2`` to the request"},{"line_number":37,"context_line":"body, which is a list of dicts. The root volume is denoted with boot_index\u003d0,"},{"line_number":38,"context_line":"but \u0027data volumes\u0027 can be specified in that list as well with the boot_index"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_ebff92ae","line":35,"range":{"start_line":35,"start_character":26,"end_line":35,"end_character":43},"in_reply_to":"3f79a3b5_24a98c8e","updated":"2018-11-06 08:21:29.000000000","message":"yes, this seems better, and really should combine the other spec together with this one, I saw that microversion is already 2.67 LOL","commit_id":"8a5f2fe7e76578994656101a4897094c5fa1b572"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7306d13979705c81f3b4e30fe46104f9fe9db506","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":"Add a new microversion to update server API to support deleting data volumes"},{"line_number":36,"context_line":"while destroying instances. Add ``block_device_mapping_v2`` to the request"},{"line_number":37,"context_line":"body, which is a list of dicts. The root volume is denoted with boot_index\u003d0,"},{"line_number":38,"context_line":"but \u0027data volumes\u0027 can be specified in that list as well with the boot_index"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_df6b6cb5","line":35,"range":{"start_line":35,"start_character":26,"end_line":35,"end_character":43},"in_reply_to":"3f79a3b5_ebff92ae","updated":"2018-11-06 11:28:02.000000000","message":"As Matt said, use the update a volume attachment API to update the ``delete_on_termination`` parameter, and combine the attach a volume to an instance API to this spec.","commit_id":"8a5f2fe7e76578994656101a4897094c5fa1b572"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c976aefbf623c6cb46f8565c2b0d7892ffdb75be","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"},{"line_number":8,"context_line":"Support for deleting data volumes while destroying instances"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/destroy-instance-with-datavolume"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_0b414a8e","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":60},"updated":"2018-11-28 08:07:16.000000000","message":"This title is a little confusing. Maybe it should be \"Support for changing deleted_on_termination after boot?\"","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"acff8b0efa8ac590325b18174d0d59e940da6516","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"},{"line_number":8,"context_line":"Support for deleting data volumes while destroying instances"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/destroy-instance-with-datavolume"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_263b1bc9","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":60},"in_reply_to":"3f79a3b5_0b414a8e","updated":"2018-11-28 08:40:38.000000000","message":"Yeah. This description is more accurate than before.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c976aefbf623c6cb46f8565c2b0d7892ffdb75be","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Currently, only the root disk can be set ``delete_on_termination`` when"},{"line_number":19,"context_line":"the instance is created, and the setting is not allowed to be edited after"},{"line_number":20,"context_line":"the instance is created."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"In addition, it is not allowed to configure ``delete_on_termination`` when"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_2bd526b8","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":23},"updated":"2018-11-28 08:07:16.000000000","message":"no, I can set that parameter when instance creation?","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"acff8b0efa8ac590325b18174d0d59e940da6516","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Currently, only the root disk can be set ``delete_on_termination`` when"},{"line_number":19,"context_line":"the instance is created, and the setting is not allowed to be edited after"},{"line_number":20,"context_line":"the instance is created."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"In addition, it is not allowed to configure ``delete_on_termination`` when"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_465f370f","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":23},"in_reply_to":"3f79a3b5_2bd526b8","updated":"2018-11-28 08:40:38.000000000","message":"Yes, you can set \"delete_on_termination\" when creating a virtual machine with the specified volume, but you cannot update its value.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"27aa815f6c7620ab1488f25b1721b1d2d28d862d","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* Update a volume attachment API:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - Add ``delete_on_termination`` and ``volume_id`` parameters to"},{"line_number":43,"context_line":"    ``block_device_mapping_v2`` of the request body, and set the"},{"line_number":44,"context_line":"    ``delete_on_termination`` default value to **False**."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  - Make the ``volumeId`` parameter optional."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_2bcbe64a","line":44,"range":{"start_line":42,"start_character":2,"end_line":44,"end_character":57},"updated":"2018-11-28 07:54:15.000000000","message":"I can do this thing by:\ncurl -g -i -X POST http://10.0.0.31/compute/v2.1/servers -H \"Accept: application/json\" -H \"Content-Type: application/json\" -H \"OpenStack-API-Version: compute 2.67\" -H \"User-Agent: python-novaclient\" -H \"X-Auth-Token: gAAAAABb_kgeuCdduCsqUMd1B0j54ueQZM6QeDyTk6je9oZtJ9thQJKuyIJBQba1T43QB1tIsmcxX9NRI7rEXFphEqtaVvC6bdlhTC183OMTFRr-Qo1YkAVRN6y97jhAUSvCcZRJDCxenNIFDMf9WzCpdgtBiqpnv2C3c0zCeQYR_VH1EHCDez4\" -H \"X-OpenStack-Nova-API-Version: 2.67\" -d \u0027{\"server\": {\"name\": \"vm1\", \"imageRef\": \"96ff186f-aa80-48a0-ab69-007cf8613571\", \"block_device_mapping_v2\": [{\"source_type\": \"image\", \"delete_on_termination\": true, \"boot_index\": 0, \"uuid\": \"96ff186f-aa80-48a0-ab69-007cf8613571\", \"destination_type\": \"local\"}, {\"source_type\": \"volume\", \"uuid\": \"fd846567-6341-4ed2-8d46-f1bbd451bbd9\", \"destination_type\": \"volume\", \"delete_on_termination\": true}], \"flavorRef\": \"1\", \"max_count\": 1, \"min_count\": 1, \"networks\": [{\"uuid\": \"ed993edf-28d5-4e0a-92b5-3f7e49eecdd7\"}]}}\u0027\n\nAnd in the end, I got this\n\nnova show vm1\n+--------------------------------------+---------------------------------------------------------------------------------+\n| Property                             | Value                                                                           |\n+--------------------------------------+---------------------------------------------------------------------------------+\n| OS-DCF:diskConfig                    | MANUAL                                                                          |\n| OS-EXT-AZ:availability_zone          | nova                                                                            |\n| OS-EXT-SRV-ATTR:host                 | alex-resize-2                                                                   |\n| OS-EXT-SRV-ATTR:hostname             | vm1                                                                             |\n| OS-EXT-SRV-ATTR:hypervisor_hostname  | alex-resize-2                                                                   |\n| OS-EXT-SRV-ATTR:instance_name        | instance-00000009                                                               |\n| OS-EXT-SRV-ATTR:kernel_id            |                                                                                 |\n| OS-EXT-SRV-ATTR:launch_index         | 0                                                                               |\n| OS-EXT-SRV-ATTR:ramdisk_id           |                                                                                 |\n| OS-EXT-SRV-ATTR:reservation_id       | r-tz6yl00a                                                                      |\n| OS-EXT-SRV-ATTR:root_device_name     | /dev/vda                                                                        |\n| OS-EXT-SRV-ATTR:user_data            | -                                                                               |\n| OS-EXT-STS:power_state               | 1                                                                               |\n| OS-EXT-STS:task_state                | -                                                                               |\n| OS-EXT-STS:vm_state                  | active                                                                          |\n| OS-SRV-USG:launched_at               | 2018-11-28T07:39:20.000000                                                      |\n| OS-SRV-USG:terminated_at             | -                                                                               |\n| accessIPv4                           |                                                                                 |\n| accessIPv6                           |                                                                                 |\n| config_drive                         |                                                                                 |\n| created                              | 2018-11-28T07:49:27Z                                                            |\n| description                          | -                                                                               |\n| flavor:disk                          | 1                                                                               |\n| flavor:ephemeral                     | 0                                                                               |\n| flavor:extra_specs                   | {}                                                                              |\n| flavor:original_name                 | m1.tiny                                                                         |\n| flavor:ram                           | 512                                                                             |\n| flavor:swap                          | 0                                                                               |\n| flavor:vcpus                         | 1                                                                               |\n| hostId                               | 3d842761f091062b27619ffcc3e178daab2bc042f2156b3427f1d057                        |\n| host_status                          | UP                                                                              |\n| id                                   | 43730181-f42e-491b-a374-e04702362c39                                            |\n| image                                | cirros-0.3.5-x86_64-disk (96ff186f-aa80-48a0-ab69-007cf8613571)                 |\n| key_name                             | -                                                                               |\n| locked                               | False                                                                           |\n| metadata                             | {}                                                                              |\n| name                                 | vm1                                                                             |\n| os-extended-volumes:volumes_attached | [{\"id\": \"fd846567-6341-4ed2-8d46-f1bbd451bbd9\", \"delete_on_termination\": true}] |\n| private network                      | fdd9:4c2c:1f0:0:f816:3eff:feee:e86e, 192.168.128.44                             |\n| progress                             | 0                                                                               |\n| security_groups                      | default                                                                         |\n| status                               | ACTIVE                                                                          |\n| tags                                 | []                                                                              |\n| tenant_id                            | 238b6a00498443b59d77c31a051a5512                                                |\n| trusted_image_certificates           | -                                                                               |\n| updated                              | 2018-11-28T07:49:39Z                                                            |\n| user_id                              | 5e9e2efa418c4ddaabf9fd0c8809461c                                                |\n+--------------------------------------+---------------------------------------------------------------------------------+\n\n\nBut sounds like our CLI doesn\u0027t support it.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c976aefbf623c6cb46f8565c2b0d7892ffdb75be","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* Update a volume attachment API:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - Add ``delete_on_termination`` and ``volume_id`` parameters to"},{"line_number":43,"context_line":"    ``block_device_mapping_v2`` of the request body, and set the"},{"line_number":44,"context_line":"    ``delete_on_termination`` default value to **False**."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  - Make the ``volumeId`` parameter optional."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_cb5fd271","line":44,"range":{"start_line":42,"start_character":2,"end_line":44,"end_character":57},"in_reply_to":"3f79a3b5_2bcbe64a","updated":"2018-11-28 08:07:16.000000000","message":"I see now, you want to support \u0027deleted_on_termination\u0027 param in volume attach API.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"acff8b0efa8ac590325b18174d0d59e940da6516","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* Update a volume attachment API:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - Add ``delete_on_termination`` and ``volume_id`` parameters to"},{"line_number":43,"context_line":"    ``block_device_mapping_v2`` of the request body, and set the"},{"line_number":44,"context_line":"    ``delete_on_termination`` default value to **False**."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  - Make the ``volumeId`` parameter optional."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_065fffdd","line":44,"range":{"start_line":42,"start_character":2,"end_line":44,"end_character":57},"in_reply_to":"3f79a3b5_cb5fd271","updated":"2018-11-28 08:40:38.000000000","message":"Yes, It\u0027s is a new feature of this spec, it was merged from [1].\n[1]https://review.openstack.org/#/c/612949","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8954a834bdf6d976ed9558f47946e1ed0f696687","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \"volumeId\": null,"},{"line_number":83,"context_line":"            \"block_device_mapping_v2\": [{"},{"line_number":84,"context_line":"                \"volume_id\": \"763b894f-af35-4e44-bdb8-2ca45db9ecd8\","},{"line_number":85,"context_line":"                \"delete_on_termination\": False"},{"line_number":86,"context_line":"            }]"},{"line_number":87,"context_line":"        }"},{"line_number":88,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_eba16e3c","line":85,"range":{"start_line":85,"start_character":16,"end_line":85,"end_character":46},"updated":"2018-11-28 08:09:00.000000000","message":"currently, we have this parameter.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"acff8b0efa8ac590325b18174d0d59e940da6516","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \"volumeId\": null,"},{"line_number":83,"context_line":"            \"block_device_mapping_v2\": [{"},{"line_number":84,"context_line":"                \"volume_id\": \"763b894f-af35-4e44-bdb8-2ca45db9ecd8\","},{"line_number":85,"context_line":"                \"delete_on_termination\": False"},{"line_number":86,"context_line":"            }]"},{"line_number":87,"context_line":"        }"},{"line_number":88,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_c60267b9","line":85,"range":{"start_line":85,"start_character":16,"end_line":85,"end_character":46},"in_reply_to":"3f79a3b5_eba16e3c","updated":"2018-11-28 08:40:38.000000000","message":"Yeah.","commit_id":"4ae8e68e14d5e934fd603dbd3d223276a0059c7b"}],"specs/stein/approved/support-deleting-data-volume-when-destroying-instance.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3e5bd4c77bd3065499c4c678b13abb6ef617c2b","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Destroy instance with data volumes for servers are supported in microversion"},{"line_number":19,"context_line":"2.64, but currently, only the delete root disk is set when the instance is"},{"line_number":20,"context_line":"created, and the setting is not allowed to be edited after the instance is"},{"line_number":21,"context_line":"created. Additionally, If you attach data volumes to this instance, the data"},{"line_number":22,"context_line":"volume cannot be deleted when you destroy the instance. User will have to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_4ead74e5","line":19,"range":{"start_line":18,"start_character":64,"end_line":19,"end_character":4},"updated":"2018-10-23 21:35:41.000000000","message":"Huh?\n\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id58","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ae9f4e1f3bd54e22459e85a407cc4b606c2c0ddd","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Destroy instance with data volumes for servers are supported in microversion"},{"line_number":19,"context_line":"2.64, but currently, only the delete root disk is set when the instance is"},{"line_number":20,"context_line":"created, and the setting is not allowed to be edited after the instance is"},{"line_number":21,"context_line":"created. Additionally, If you attach data volumes to this instance, the data"},{"line_number":22,"context_line":"volume cannot be deleted when you destroy the instance. User will have to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_a1de990c","line":19,"range":{"start_line":18,"start_character":64,"end_line":19,"end_character":4},"in_reply_to":"3f79a3b5_4ead74e5","updated":"2018-10-23 23:09:04.000000000","message":"Yeah, this doesn\u0027t seem relevant. The delete_on_termination flag during server create has been around since v2.0.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"Destroy instance with data volumes for servers are supported in microversion"},{"line_number":19,"context_line":"2.64, but currently, only the delete root disk is set when the instance is"},{"line_number":20,"context_line":"created, and the setting is not allowed to be edited after the instance is"},{"line_number":21,"context_line":"created. Additionally, If you attach data volumes to this instance, the data"},{"line_number":22,"context_line":"volume cannot be deleted when you destroy the instance. User will have to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_44fc730c","line":19,"range":{"start_line":18,"start_character":64,"end_line":19,"end_character":4},"in_reply_to":"3f79a3b5_a1de990c","updated":"2018-10-24 08:45:17.000000000","message":"Yeah, this sentence can be removed, it doesn\u0027t make sense.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3e5bd4c77bd3065499c4c678b13abb6ef617c2b","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to Servers create API to support deleting data volumes"},{"line_number":37,"context_line":"while destroying instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_8ed5cc49","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":44},"updated":"2018-10-23 21:35:41.000000000","message":"I\u0027m not sure I\u0027m following you here. You can specify the delete_on_termination flag in the block_device_mapping_v2 parameter, which is a list of dicts. The root volume is denoted with boot_index\u003d0, but \"data volumes\" can be specified in that list as well with the boot_index field omitted meaning it\u0027s not a boot device. So it\u0027s possible to attach additional non-root volumes to the server at creation and mark them with delete_on_termination\u003dTrue.\n\nIsn\u0027t the point of this spec to allow passing delete_on_termination when attaching volumes *after* the server is created? So in this API?\n\nhttps://developer.openstack.org/api-ref/compute/#attach-a-volume-to-an-instance","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ae9f4e1f3bd54e22459e85a407cc4b606c2c0ddd","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to Servers create API to support deleting data volumes"},{"line_number":37,"context_line":"while destroying instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_a12c5900","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":44},"in_reply_to":"3f79a3b5_8ed5cc49","updated":"2018-10-23 23:09:04.000000000","message":"Agreed, this is already part of the server create API.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to Servers create API to support deleting data volumes"},{"line_number":37,"context_line":"while destroying instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_152f833e","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":44},"in_reply_to":"3f79a3b5_8ed5cc49","updated":"2018-10-24 08:45:17.000000000","message":"Yeah, this action put the servers create API is not suitable. I think it\u0027s okay to put it in the PUT /servers/{server_id} API.\n\n \u003e Isn\u0027t the point of this spec to allow passing\n \u003e delete_on_termination when attaching volumes *after* the \n \u003e server is created? So in this API? \n\nThe attach-a-volume-to-an-instance API also need to add a microversion, so I think this need a new specs for this API to support delete_on_termination.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to Servers create API to support deleting data volumes"},{"line_number":37,"context_line":"while destroying instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_36de4610","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":44},"in_reply_to":"3f79a3b5_a12c5900","updated":"2018-10-24 08:45:17.000000000","message":"Done","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3e5bd4c77bd3065499c4c678b13abb6ef617c2b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    * /v2.1/servers:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Request method:"},{"line_number":53,"context_line":"    * PUT"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The config of delete data volumes will be able to add to request payload ::"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_ae51a8d7","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":9},"updated":"2018-10-23 21:35:41.000000000","message":"This has nothing to do with the server create API, as mentioned above. So you\u0027re suggesting to change the server *update* API to allow passing a list of volumes which should be deleted on termination?\n\nAgain, this can be done at server create time, and if anything it would seem more logical to add it to the volume attach API:\n\nhttps://developer.openstack.org/api-ref/compute/#attach-a-volume-to-an-instance\n\nOr even this API:\n\nhttps://developer.openstack.org/api-ref/compute/#update-a-volume-attachment\n\nBut that\u0027s something completely different (that\u0027s the swap volume API and is admin-only by default).","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3fb1d206cc362d04ac77992429417e322245a2a8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    * /v2.1/servers:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Request method:"},{"line_number":53,"context_line":"    * PUT"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The config of delete data volumes will be able to add to request payload ::"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_15bd43d6","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":9},"in_reply_to":"3f79a3b5_ae51a8d7","updated":"2018-10-24 08:45:17.000000000","message":"None of the above, I will add this change to PUT /servers/{server_id} API.","commit_id":"aea0e7bdf1c6605cf97d38cba6186406994bdeea"}],"specs/train/approved/destroy-instance-with-datavolume.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd70970781bfe259c4ff4015e60175cd6d6139c7","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to the volume attachment API:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Update a volume attachment API:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  - Add ``delete_on_termination`` and ``volume_id`` parameters to"},{"line_number":41,"context_line":"    ``block_device_mapping_v2`` of the request body, and set the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_140f55e0","line":38,"updated":"2019-04-09 23:40:23.000000000","message":"So this is the PUT API?\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003d#update-a-volume-attachment","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fdfa1f6e7c736eb74c0d6da0d7c0469b4ac6d945","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":"Add a new microversion to the volume attachment API:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Update a volume attachment API:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  - Add ``delete_on_termination`` and ``volume_id`` parameters to"},{"line_number":41,"context_line":"    ``block_device_mapping_v2`` of the request body, and set the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_9db27d05","line":38,"in_reply_to":"5fc1f717_140f55e0","updated":"2019-04-10 10:54:55.000000000","message":"Yeah.","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd70970781bfe259c4ff4015e60175cd6d6139c7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    If ``volumeId`` is **NULL**, extract the ``volume_id`` information from"},{"line_number":47,"context_line":"    ``block_device_mapping_v2`` and configure ``delete_on_termination`` for"},{"line_number":48,"context_line":"    the target volume. Otherwise (``volume_id`` is **NULL**), do not configure"},{"line_number":49,"context_line":"    ``delete_on_termination`` for the target volume."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_342ff13f","line":49,"updated":"2019-04-09 23:40:23.000000000","message":"OK, so if volumeId is not specified, instead of swap volume, the API will update all of the block_device_mapping_v2 attributes provided? Or only the delete_on_termination attribute?","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fdfa1f6e7c736eb74c0d6da0d7c0469b4ac6d945","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    If ``volumeId`` is **NULL**, extract the ``volume_id`` information from"},{"line_number":47,"context_line":"    ``block_device_mapping_v2`` and configure ``delete_on_termination`` for"},{"line_number":48,"context_line":"    the target volume. Otherwise (``volume_id`` is **NULL**), do not configure"},{"line_number":49,"context_line":"    ``delete_on_termination`` for the target volume."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_3de829dd","line":49,"in_reply_to":"5fc1f717_342ff13f","updated":"2019-04-10 10:54:55.000000000","message":"Yeah, this will make the \"volumeId\" optional, if \"volumeId\" is None, it will be only update the delete_on_termination attribute, not all the block_device_mapping_v2 attributes.","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd70970781bfe259c4ff4015e60175cd6d6139c7","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    * /servers/{server_id}/os-volume_attachments/{volume_id}:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"* Request method:"},{"line_number":68,"context_line":"    * PUT"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The config of delete root/data volumes will be able to add to"},{"line_number":71,"context_line":"request payload ::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_94e825df","line":68,"updated":"2019-04-09 23:40:23.000000000","message":"This answers my question from L38.","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fdfa1f6e7c736eb74c0d6da0d7c0469b4ac6d945","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    * /servers/{server_id}/os-volume_attachments/{volume_id}:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"* Request method:"},{"line_number":68,"context_line":"    * PUT"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The config of delete root/data volumes will be able to add to"},{"line_number":71,"context_line":"request payload ::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_7d79d12c","line":68,"in_reply_to":"5fc1f717_94e825df","updated":"2019-04-10 10:54:55.000000000","message":"Done","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fd70970781bfe259c4ff4015e60175cd6d6139c7","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    {"},{"line_number":74,"context_line":"        \"server\": {"},{"line_number":75,"context_line":"            \"volumeId\": null,"},{"line_number":76,"context_line":"            \"block_device_mapping_v2\": [{"},{"line_number":77,"context_line":"                \"volume_id\": \"763b894f-af35-4e44-bdb8-2ca45db9ecd8\","},{"line_number":78,"context_line":"                \"delete_on_termination\": False"},{"line_number":79,"context_line":"            }]"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_74c6d96a","line":76,"range":{"start_line":76,"start_character":13,"end_line":76,"end_character":36},"updated":"2019-04-09 23:40:23.000000000","message":"This is where I\u0027m confused. There\u0027s no block_device_mapping_v2 request parameter on the API today, so where will this come from? Are you saying you will add this request parameter as part of the new microversion?\n\nAnd what about the already existing volumeAttachment request parameter? It\u0027s not optional in the API today.","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"fdfa1f6e7c736eb74c0d6da0d7c0469b4ac6d945","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    {"},{"line_number":74,"context_line":"        \"server\": {"},{"line_number":75,"context_line":"            \"volumeId\": null,"},{"line_number":76,"context_line":"            \"block_device_mapping_v2\": [{"},{"line_number":77,"context_line":"                \"volume_id\": \"763b894f-af35-4e44-bdb8-2ca45db9ecd8\","},{"line_number":78,"context_line":"                \"delete_on_termination\": False"},{"line_number":79,"context_line":"            }]"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5fc1f717_bd83b902","line":76,"range":{"start_line":76,"start_character":13,"end_line":76,"end_character":36},"in_reply_to":"5fc1f717_74c6d96a","updated":"2019-04-10 10:54:55.000000000","message":"This will be add the block_device_mapping_v2 to the request parameter on the volume attachment API as part of the new microversion.","commit_id":"351cf15f630fd53a92df7614a64533c95f2bbf0c"}],"specs/ussuri/approved/destroy-instance-with-datavolume.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c9177ab9479f4647a6ab7c9d1880e044071fd8e2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":36,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":37,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":38,"context_line":"data loss."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"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":23,"id":"3fa7e38b_cd839355","line":38,"updated":"2019-10-29 20:34:53.000000000","message":"Ah... so in this case snapshot fails because the compute node the instance use to live on doesn\u0027t exist? Although in my head I hoped a snapshot direct via Cinder would work, but maybe that requires detach?","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a4833afbee99f224627e5bf89252156563ef697c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":36,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":37,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":38,"context_line":"data loss."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"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":23,"id":"3fa7e38b_d167a524","line":38,"in_reply_to":"3fa7e38b_cd839355","updated":"2019-10-30 12:48:54.000000000","message":"I don\u0027t understand too much what you mean :(\nBut if the data volume has a snapshot in rbd and does not flatten when create the snapshot. Firstly, detach from the server by Cinder attachemts delete API while delete the server, then delete *that* data volume, because of the snapshot, the volume will be kept in Cinder.\n\nRoot volume issue will be recorded in the ``alternatives`` by Matt point.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b02f1a3388fad4fe98a4d46df5bbdf6666f23831","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (after [1]_"},{"line_number":49,"context_line":"compeleted), if you want to change that value, you could just detach and"},{"line_number":50,"context_line":"re-attach with the new value."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_44577f02","line":48,"updated":"2019-10-29 18:54:41.000000000","message":"It\u0027s probably worth noting here that you can\u0027t detach a root volume:\n\nhttps://github.com/openstack/nova/blob/9742a64403c0a0ae5e0b37df5b0bf3ba14ac4626/nova/api/openstack/compute/volumes.py#L465\n\nSo if you boot from volume where nova creates the root volume and delete_on_termination\u003dTrue when you created the server, but now you want to preserve the root volume after the server is deleted, you can\u0027t do that without updating the delete_on_termination field (this spec) or creating a snapshot of the server (which is probably an alternative to the root bdm issue here).","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"27373f96c736c492b4bfff3e9d15009c36a0e598","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (after [1]_"},{"line_number":49,"context_line":"compeleted), if you want to change that value, you could just detach and"},{"line_number":50,"context_line":"re-attach with the new value."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_ea7af585","line":48,"in_reply_to":"3fa7e38b_44577f02","updated":"2019-10-29 19:46:09.000000000","message":"That is a good alternative.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a4833afbee99f224627e5bf89252156563ef697c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (after [1]_"},{"line_number":49,"context_line":"compeleted), if you want to change that value, you could just detach and"},{"line_number":50,"context_line":"re-attach with the new value."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_14144be8","line":48,"in_reply_to":"3fa7e38b_44577f02","updated":"2019-10-30 12:48:54.000000000","message":"Yeah, the alternative to the root bdm issue is better, that will be changed as follows:\n\n\nConfigure the ``delete_on_termination`` by the volume attach API (see [1]_),\nif you want to change that value with the data volume, you could just detach\nand re-attach with the new value.\n\nIf you boot from volume where nova creates the root volume and\n``delete_on_termination\u003dTrue`` when you created the server, but if you want\nto preserve the root volume after the server is deleted, you can create a\nsnapshot of the server.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d009585a70fcb4839c5cd08bac980334f8bcc3c","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    {"},{"line_number":71,"context_line":"      \"volumeAttachment\": {"},{"line_number":72,"context_line":"        \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":73,"context_line":"        \"delete_on_termination\": true"},{"line_number":74,"context_line":"      }"},{"line_number":75,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_24a043f3","line":72,"updated":"2019-10-29 19:00:00.000000000","message":"This indicates swap volume which is not the operation you want here, correct?\n\nhttps://docs.openstack.org/api-ref/compute/#update-a-volume-attachment\n\nI\u0027ve mentioned this before on this review, but you really need to discuss the swap volume implications of solving this using the existing PUT /servers/{server_id}/os-volume_attachments/{volume_id} API which until this proposal only deals with swap volume which is only supported by the libvirt driver.\n\nI think PUT /servers/{server_id}/os-volume_attachments/{volume_id} is likely the correct API if we do this change, but you need to discuss when this would be a simple update of the BDM record versus swapping the volume in the guest which is a much more complicated orchestration event (and admin-only by default) between nova and cinder. See the warning in the API reference about that.\n\nSo at a minimum, the volumeId body parameter - which is required today - would need to change to optional I think so you don\u0027t have to swap volumes to update the BDM for the attached volume represented by the volume_id in the URL path. And then what kind of validation happens with that, i.e. if volumeId in the body is optional and delete_on_termination in the body are optional, is it a 400 if neither are specified?\n\nThese are details that need to be thought through and documented in the spec before this is taken very seriously, and it\u0027s already a low priority spec given the alternatives are available for saving the volume (snapshot) or updating it (detach and re-attach non-root volumes with updated delete_on_termination value).","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1170a2abfe63e562ef25394f4fca3d6673c52d3d","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    {"},{"line_number":71,"context_line":"      \"volumeAttachment\": {"},{"line_number":72,"context_line":"        \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":73,"context_line":"        \"delete_on_termination\": true"},{"line_number":74,"context_line":"      }"},{"line_number":75,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_e5021b0c","line":72,"in_reply_to":"3fa7e38b_0afbc6bd","updated":"2019-10-30 14:13:17.000000000","message":"No, the volume_id in the path is required, it\u0027s how you identify the target volume attachment to update. It\u0027s the volumeId in the request body that is the volume you\u0027re swapping *to* if you\u0027re doing a swap volume today, but that would become optional with your spec so that you just update the volume denoted by the volume_id parameter in the *path* not the *body*.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a4833afbee99f224627e5bf89252156563ef697c","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    {"},{"line_number":71,"context_line":"      \"volumeAttachment\": {"},{"line_number":72,"context_line":"        \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":73,"context_line":"        \"delete_on_termination\": true"},{"line_number":74,"context_line":"      }"},{"line_number":75,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_0afbc6bd","line":72,"in_reply_to":"3fa7e38b_24a043f3","updated":"2019-10-30 12:48:54.000000000","message":"\u003e So at a minimum, the volumeId body parameter - which is\n\u003e required today - would need to change to optional I think so \n\u003e you don\u0027t have to swap volumes to update the BDM for the \n\u003e attached volume represented by the volume_id in the URL \n\u003e path. And then what kind of validation happens with that, \n\u003e i.e. if volumeId in the body is optional and \n\u003e delete_on_termination in the body are optional, is it a 400 \n\u003e if neither are specified?\n\nYeah, I agree make the volume_id in URL path to optional, I am also concerned about this, I think we can make the following judgment:\n\n# if volume_id not int the URL path, delete_on_termination and volumeId are all needed\n* PUT /servers/{server_id}/os-volume_attachments/\n  if (volumeId is None and delete_on_termination is not None) or\n     (volumeId is not None and delete_on_termination is None) or\n     (volumeId is None and delete_on_termination is None):\n        raised 400\n\n# we don\u0027t want to change the swap volume, so when volume_id was requested, the delete_on_termination cannot be set.\n* PUT /servers/{server_id}/os-volume_attachments/{volume_id}\n  if delete_on_termination is not None:\n      raise 409\n\nThis seems complicated, so much so that I want to add a dedicated single API interface for data volume to reset the delete_on_termination to the server.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"62fb768bd5a4be47fbaecd2b116c10e0559b4c8f","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    {"},{"line_number":71,"context_line":"      \"volumeAttachment\": {"},{"line_number":72,"context_line":"        \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":73,"context_line":"        \"delete_on_termination\": true"},{"line_number":74,"context_line":"      }"},{"line_number":75,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_9614b442","line":72,"in_reply_to":"3fa7e38b_e5021b0c","updated":"2019-10-31 02:04:52.000000000","message":"Yeah, it\u0027s a misunderstood, I got it now.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f1a4449da2505ecf1654062fada4a5f9d716845e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if not"},{"line_number":78,"context_line":"  specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Security impact"},{"line_number":81,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_0de20b31","line":78,"updated":"2019-10-29 20:37:32.000000000","message":"You could make this something we add to the delete instance call, thus avoiding the issues with the current attachment APIs? Unsure if people would prefer that? Specify ports and volumes that should be preserved after termination, regardless of what would normally happen? Or maybe just specify all ports and volumes survive.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"a4833afbee99f224627e5bf89252156563ef697c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if not"},{"line_number":78,"context_line":"  specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Security impact"},{"line_number":81,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_0ae986e1","line":78,"in_reply_to":"3fa7e38b_0de20b31","updated":"2019-10-30 12:48:54.000000000","message":"As said above, I want to add a dedicated single API to deal with this. Or as Matt said, change the volume_id in the URL path to optional, then deal with this in different scenes.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1170a2abfe63e562ef25394f4fca3d6673c52d3d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if not"},{"line_number":78,"context_line":"  specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Security impact"},{"line_number":81,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_a0fe5102","line":78,"in_reply_to":"3fa7e38b_0de20b31","updated":"2019-10-30 14:13:17.000000000","message":"DELETE doesn\u0027t take a body or any microversions and I don\u0027t think we want to start doing that.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bed7d240020766dc9a0220563ad747d5ac6c9de","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":147,"context_line":"Add docs that mention the update a volume attachment after the microversion."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"References"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":151,"context_line":".. [1] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/support-delete-on-termination-in-server-attach-volume.html"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_64d15b57","line":149,"updated":"2019-10-29 19:04:41.000000000","message":"This was also discussed at the Forum in Berlin:\n\nhttps://etherpad.openstack.org/p/BER-bfv-improvements\n\nNote the mention about how this could break Heat:\n\n\"This could break Heat if Heat created the volume, the user changed the flag and then nova deletes the volume but Heat expected it to exist.\"\n\nI\u0027m not sure how much of a concern that is though really, I would expect most people to use this API change to preserve a volume that otherwise would be deleted when the server is deleted and they changed their mind, not the other way around (started as delete_on_termination\u003dFalse and then changed to True).","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"62fb768bd5a4be47fbaecd2b116c10e0559b4c8f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":147,"context_line":"Add docs that mention the update a volume attachment after the microversion."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"References"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":151,"context_line":".. [1] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/support-delete-on-termination-in-server-attach-volume.html"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"3fa7e38b_0b3bc1e9","line":149,"in_reply_to":"3fa7e38b_64d15b57","updated":"2019-10-31 02:04:52.000000000","message":"Adding \"Discussed at the Forum in Berlin: https://etherpad.openstack.org/p/BER-bfv-improvements\" to this References.","commit_id":"5404766f61c89211e7eb5f306764bbcbf05cee65"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5bd1d96d7fe0017d537cb616f8b0a05a4936fbd3","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    {"},{"line_number":78,"context_line":"        \"volumeAttachment\": {"},{"line_number":79,"context_line":"           \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":80,"context_line":"           \"delete_on_termination\": true"},{"line_number":81,"context_line":"        }"},{"line_number":82,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_9f29e48a","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":62},"updated":"2019-11-06 08:22:16.000000000","message":"we can make this field as optional. If it isn\u0027t show up, then it mean a update on the existing volume.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"55652ee271daf7095356e8565d1e9072b7ec1dc5","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    {"},{"line_number":78,"context_line":"        \"volumeAttachment\": {"},{"line_number":79,"context_line":"           \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":80,"context_line":"           \"delete_on_termination\": true"},{"line_number":81,"context_line":"        }"},{"line_number":82,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_46360e52","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":62},"in_reply_to":"3fa7e38b_5a07d782","updated":"2019-12-02 13:01:24.000000000","message":"oops, sorry, then it is good for me","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"542991071070b821356e71da5e0c6d1bfe443e9a","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    {"},{"line_number":78,"context_line":"        \"volumeAttachment\": {"},{"line_number":79,"context_line":"           \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":80,"context_line":"           \"delete_on_termination\": true"},{"line_number":81,"context_line":"        }"},{"line_number":82,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_5a07d782","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":62},"in_reply_to":"3fa7e38b_9f29e48a","updated":"2019-11-29 00:03:41.000000000","message":"It\u0027s described here https://review.opendev.org/#/c/580336/25/specs/ussuri/approved/destroy-instance-with-datavolume.rst@84","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"55652ee271daf7095356e8565d1e9072b7ec1dc5","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  optional:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  - It will return 400 if neither are specified."},{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_2624320e","line":89,"range":{"start_line":88,"start_character":4,"end_line":89,"end_character":21},"updated":"2019-12-02 13:01:24.000000000","message":"From the PoC code, this will do the swap. I\u0027m ok with this.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07aae472695d9940df003e8da63ee0347f114095","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  optional:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  - It will return 400 if neither are specified."},{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_a6eca292","line":89,"range":{"start_line":88,"start_character":4,"end_line":89,"end_character":21},"in_reply_to":"3fa7e38b_2624320e","updated":"2019-12-02 13:03:43.000000000","message":"It will be good to clarify this.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"55652ee271daf7095356e8565d1e9072b7ec1dc5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Upgrade impact"},{"line_number":130,"context_line":"--------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Implementation"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_86d086ca","line":132,"updated":"2019-12-02 13:01:24.000000000","message":"From the PoC code, I saw you update the RPC call. But I\u0027m thinking we needn\u0027t that.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f3fe13eece638c55e3ef6cb2ac894e2f7e955a5a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Upgrade impact"},{"line_number":130,"context_line":"--------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Implementation"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_6791baf7","line":132,"in_reply_to":"3fa7e38b_268512af","updated":"2019-12-03 02:50:08.000000000","message":"If we are dealing this in the API layer, I think we can not ensure the volume can attach to the target instance successfully. If we pass the parameter to \"ComputeManger\" by RPC call, we can ensure that we set the \"delete_on_termination\" of the new volume that was swapped, so I think it is safer to pass through RPC.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"9aa9ac52ebf842fdfd2a06faabbaede2e927d46d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Upgrade impact"},{"line_number":130,"context_line":"--------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Implementation"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_ba64924e","line":132,"in_reply_to":"3fa7e38b_325bfe86","updated":"2019-12-04 05:46:29.000000000","message":"\u003e But I prefer to not mix the swap and delete_on_termination together, to make the change easier.\n\nYes, it will be easier if we are limit the request parameters in the request body. But another problem is if we want to change the swap volume\u0027s ``delete_on_termination`` to TRUE, we will call this api do again, and it will also complicate the operation.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dbc3a2c8bd6df2773ded15f9244f39f220fc7c51","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Upgrade impact"},{"line_number":130,"context_line":"--------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Implementation"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_325bfe86","line":132,"in_reply_to":"3fa7e38b_6791baf7","updated":"2019-12-03 06:19:40.000000000","message":"good point. It is good you describe the RPC change at here.\n\nBut I prefer to not mix the swap and delete_on_termination together, to make the change easier.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07aae472695d9940df003e8da63ee0347f114095","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Upgrade impact"},{"line_number":130,"context_line":"--------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Implementation"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"3fa7e38b_268512af","line":132,"in_reply_to":"3fa7e38b_86d086ca","updated":"2019-12-02 13:03:43.000000000","message":"I\u0027m thinking you can do that in the API layer also, if that works, then you needn\u0027t rpc call update, that will make thing easier.","commit_id":"00acf055d60103241aec6bbccb34b49ddeb5a482"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5989e21027dd9c3441661a9f95f6f605cf574903","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":40,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":41,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":42,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":43,"context_line":"URL path not the request body."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Alternatives"},{"line_number":46,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_92eb3679","line":43,"range":{"start_line":41,"start_character":11,"end_line":43,"end_character":30},"updated":"2020-02-14 16:32:19.000000000","message":"this seems updating \u0027delete_on_termination\u0027 for already attached volume but via PUT which is nothing but swap volume API not updating the existing attachment. \n\nI am not sure we need this. or we can just support \u0027delete_on_termination\u0027 for new volume only while swapping volume. \n\nI am curious why it was not done during supporting the same in POST /servers/{server_id}/os-volume_attachments/{volume_id}\n- https://blueprints.launchpad.net/openstack/nova/+spec/support-delete-on-termination-in-server-attach-volume","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3f87036a33e307c204c06fc5a9e50a0dc6adfe15","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":40,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":41,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":42,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":43,"context_line":"URL path not the request body."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Alternatives"},{"line_number":46,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_b52f3ca4","line":43,"range":{"start_line":41,"start_character":11,"end_line":43,"end_character":30},"in_reply_to":"3fa7e38b_92eb3679","updated":"2020-02-14 17:40:21.000000000","message":"I think the main point of this spec is for being able to update an already existing attachment though, without having to detach/attach :\\ (Brin, please correct me if I\u0027m wrong).\n\nHere is the place in the attach volume spec review where update of existing attachment was decoupled from the other work:\n\nhttps://review.opendev.org/#/c/612949/10/specs/train/approved/support-delete-on-termination-in-server-attach-volume.rst@37\n\nMy opinion is that allowing *only* update of an already existing attachment and not allowing specification of delete_on_termination for a new swap volume would be weird. And allowing *only* specification for a new swap volume is not what the spec use case is ultimately trying to get. For this reason, I think both should be supported if we bother to do this at all because the use case is mostly about the already existing attachment (if I understand correctly). It seems it would wasteful to do all the work to support specifying delete_on_termination only for a new swap volume when that is not what the use case wants the most.\n\nI think overloading the PUT /servers/{server_id}/os-volume_attachments/{volume_id} API to support being able to change the delete_on_termination value is not ideal, but it seems like the least ugly way to do it today in the absence of an overhaul of the swap volume API, as mentioned by lyarwood on IRC [1].\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2020-02-14.log.html#t2020-02-14T16:44:03","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"26636a165fc40166824a2bf4a6b9003fc6fd9e7a","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":40,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":41,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":42,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":43,"context_line":"URL path not the request body."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Alternatives"},{"line_number":46,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_ec840db1","line":43,"range":{"start_line":41,"start_character":11,"end_line":43,"end_character":30},"in_reply_to":"3fa7e38b_b52f3ca4","updated":"2020-02-15 06:11:22.000000000","message":"@melwitt, thanks for the generalization, it is correct.\n\nFrom talks in IRC, I think we should support these two use cases, that we can cover all the case where user can attach a volume (server boot, attach volume, swap volume) with \u0027delete_on_termination\u0027 info, which will reduce unnecessary modification in the future (eg just change the swap volume to support \u0027delete_on_termination\u0027), what about my use case for swap? SPEC itself has already done this, but the use case does not cover this.\n\nThe use case maybe like:\n\n\"The end user expects to be able to set \u0027delete_on_termination\u0027 when swap volume, to decide whether to clean up the attached volume when the server is deleted.\"\n\nIf you are ok with this, I can update soon.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95e22f664c5fabedf669b0c4f1c1bf846716c1a6","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":40,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":41,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":42,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":43,"context_line":"URL path not the request body."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Alternatives"},{"line_number":46,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_00f1de64","line":43,"range":{"start_line":41,"start_character":11,"end_line":43,"end_character":30},"in_reply_to":"3fa7e38b_b52f3ca4","updated":"2020-02-20 14:01:05.000000000","message":"That\u0027s true but mixing the APIs from its original purpose and especially original known usage is hard to digest for users. I think we can go with sean proposal of using PATCH that makes the API very clear about their scope.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac6fb63589f33bb45992af6d0c5a83b55f82da0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  optional:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  - It will return 400 if neither are specified."},{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_b274329c","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":21},"updated":"2020-02-14 15:56:06.000000000","message":"If the volumeId in the request body is not the same as the volumeId in the URL path and the body contains delete_on_termination key then I think we should return HTTP 409 conflict or HTTP 400.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6d16d94546ac81e4698d151a410f805f93d14d01","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  optional:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  - It will return 400 if neither are specified."},{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_d2d1aefa","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":21},"in_reply_to":"3fa7e38b_b274329c","updated":"2020-02-14 16:18:35.000000000","message":"this is PUT request so volume id in url is old volume and volume id in request is new volume. so we need volume id in request as mandatory.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"ec71965bfda318a038006a6d441657ec4c2e4aaf","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  optional:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  - It will return 400 if neither are specified."},{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_7208fa7d","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":21},"in_reply_to":"3fa7e38b_d2d1aefa","updated":"2020-02-14 16:33:13.000000000","message":"Yeah, ``volume_id`` and ``volumeId`` should not be the same.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac6fb63589f33bb45992af6d0c5a83b55f82da0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_92481662","line":91,"range":{"start_line":91,"start_character":67,"end_line":91,"end_character":72},"updated":"2020-02-14 15:56:06.000000000","message":"nit: volume","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"ec71965bfda318a038006a6d441657ec4c2e4aaf","unresolved":false,"context_lines":[{"line_number":88,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":89,"context_line":"    the request body."},{"line_number":90,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_527b7e29","line":91,"range":{"start_line":91,"start_character":67,"end_line":91,"end_character":72},"in_reply_to":"3fa7e38b_92481662","updated":"2020-02-14 16:33:13.000000000","message":"Done","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac6fb63589f33bb45992af6d0c5a83b55f82da0","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"},{"line_number":95,"context_line":"  not specified."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Security impact"},{"line_number":98,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_12d8a67d","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":16},"updated":"2020-02-14 15:56:06.000000000","message":"Hm, if delete_on_termination key is not specified then we do a swap volume and during swap we don\u0027t want to change the delete_on_termination to False. So I think this key does not have a default value but it is still optional in the request.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"ec71965bfda318a038006a6d441657ec4c2e4aaf","unresolved":false,"context_lines":[{"line_number":91,"context_line":"  - If only ``delete_on_termination`` is required, just update the voume"},{"line_number":92,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"},{"line_number":95,"context_line":"  not specified."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Security impact"},{"line_number":98,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3fa7e38b_72e47aa7","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":16},"in_reply_to":"3fa7e38b_12d8a67d","updated":"2020-02-14 16:33:13.000000000","message":"\"considering ``delete_on_termination`` as false by default make sense for me and consider only if it is explicitly mentioned in request\", from gmann in irc, also what I want to say.","commit_id":"5f8f254b0d0bfe5c94ab6eec1c44e05912749012"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/destroy-instance-with-datavolume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposed to changing the ``deleted_on_termination`` attribute"},{"line_number":14,"context_line":"after boot an instance, that support deleting the target volumes while"},{"line_number":15,"context_line":"the instance is destroyed."},{"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":32,"id":"3fa7e38b_353461ab","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":26},"updated":"2020-02-20 02:02:26.000000000","message":"This blueprint proposes to allow changing the ``deleted_on_termination`` attribute of a volume\nafter an instance is booted.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/destroy-instance-with-datavolume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposed to changing the ``deleted_on_termination`` attribute"},{"line_number":14,"context_line":"after boot an instance, that support deleting the target volumes while"},{"line_number":15,"context_line":"the instance is destroyed."},{"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":32,"id":"3fa7e38b_a69342b0","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":26},"in_reply_to":"3fa7e38b_353461ab","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","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":"Currently, only support configuring ``deleted_on_termination`` to root disk"},{"line_number":21,"context_line":"and data volume (refrerence to the volume attach API [1]_.) when the instance"},{"line_number":22,"context_line":"is created, but is not allowed to be re-setting it\u0027s configure of"},{"line_number":23,"context_line":"``deleted_on_termination`` item after the instance is created."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_554c7d3f","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":62},"updated":"2020-02-20 02:02:26.000000000","message":"Currently, nova support configuring ``deleted_on_termination`` for the root disk\nand data volume (refrerence to the volume attach API [1]_.) when the instance\nis created, but does not allow it to be updated after the instance is created.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","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":"Currently, only support configuring ``deleted_on_termination`` to root disk"},{"line_number":21,"context_line":"and data volume (refrerence to the volume attach API [1]_.) when the instance"},{"line_number":22,"context_line":"is created, but is not allowed to be re-setting it\u0027s configure of"},{"line_number":23,"context_line":"``deleted_on_termination`` item after the instance is created."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_669d4ab9","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":62},"in_reply_to":"3fa7e38b_554c7d3f","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"In large scale environment, lots of resources were created in system, and"},{"line_number":29,"context_line":"sometimes some discard instances need to clean up from the production"},{"line_number":30,"context_line":"environment. Therefore, the user need to re-set the processing mode of his"},{"line_number":31,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":32,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_350221bb","line":31,"range":{"start_line":30,"start_character":14,"end_line":31,"end_character":8},"updated":"2020-02-20 02:02:26.000000000","message":"there is no concept of a procressing mode in nova.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"In large scale environment, lots of resources were created in system, and"},{"line_number":29,"context_line":"sometimes some discard instances need to clean up from the production"},{"line_number":30,"context_line":"environment. Therefore, the user need to re-set the processing mode of his"},{"line_number":31,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":32,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_86796682","line":31,"range":{"start_line":30,"start_character":14,"end_line":31,"end_character":8},"in_reply_to":"3fa7e38b_350221bb","updated":"2020-02-20 15:34:42.000000000","message":"yeah.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"In large scale environment, lots of resources were created in system, and"},{"line_number":29,"context_line":"sometimes some discard instances need to clean up from the production"},{"line_number":30,"context_line":"environment. Therefore, the user need to re-set the processing mode of his"},{"line_number":31,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":32,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The end user expects to be able to set \u0027delete_on_termination\u0027 when swap"},{"line_number":37,"context_line":"volume, to decide whether to clean up the attached volume when the server"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_75e5f906","line":34,"range":{"start_line":28,"start_character":0,"end_line":34,"end_character":10},"updated":"2020-02-20 02:02:26.000000000","message":"i would rewrite this as\n\n\"In large scale environment, lots of resources can be created in system, and\nsometimes some discarded instances need to cleaned up from the production environment. \n\nAs the admin that is tasked with cleaning up the production environment may be distinct form the user that created the instances, it is desirable to be able to alter the delete_on_termination property to either preserve important data while freeing compute resources or freeing storage space and cleaning up sensitive data.\"","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"In large scale environment, lots of resources were created in system, and"},{"line_number":29,"context_line":"sometimes some discard instances need to clean up from the production"},{"line_number":30,"context_line":"environment. Therefore, the user need to re-set the processing mode of his"},{"line_number":31,"context_line":"instance. When destroying the instance, the attached volume can be deleted"},{"line_number":32,"context_line":"together, the invalid data is cleared, and the storage space is released."},{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The end user expects to be able to set \u0027delete_on_termination\u0027 when swap"},{"line_number":37,"context_line":"volume, to decide whether to clean up the attached volume when the server"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_06857653","line":34,"range":{"start_line":28,"start_character":0,"end_line":34,"end_character":10},"in_reply_to":"3fa7e38b_75e5f906","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The end user expects to be able to set \u0027delete_on_termination\u0027 when swap"},{"line_number":37,"context_line":"volume, to decide whether to clean up the attached volume when the server"},{"line_number":38,"context_line":"is deleted."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"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":32,"id":"3fa7e38b_75f739d3","line":38,"range":{"start_line":36,"start_character":1,"end_line":38,"end_character":11},"updated":"2020-02-20 02:02:26.000000000","message":"no that is an impelemataion detail not an expectation.\n\nthe use may expect a way to set teh delete_on_termination attibute on the volume but no one would expect to do that via a swap volume operation it just might be the simplest way to achive that with the current api.\n\ni would rewrite this as\n\n\"The end user expects to be able to decide the policy by which the volumes are preserved or destoryed at any point in the vms lifecyle.\"","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Or reserved the imported attached volume, in order to prevent the important"},{"line_number":34,"context_line":"data loss."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The end user expects to be able to set \u0027delete_on_termination\u0027 when swap"},{"line_number":37,"context_line":"volume, to decide whether to clean up the attached volume when the server"},{"line_number":38,"context_line":"is deleted."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"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":32,"id":"3fa7e38b_a62fc255","line":38,"range":{"start_line":36,"start_character":1,"end_line":38,"end_character":11},"in_reply_to":"3fa7e38b_75f739d3","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_15b4c5f3","line":43,"range":{"start_line":43,"start_character":37,"end_line":43,"end_character":38},"updated":"2020-02-20 02:02:26.000000000","message":"delete this","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Proposed change"},{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_2643d214","line":43,"range":{"start_line":43,"start_character":37,"end_line":43,"end_character":38},"in_reply_to":"3fa7e38b_15b4c5f3","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_d5adcda4","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":39},"updated":"2020-02-20 02:02:26.000000000","message":"delete this","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_e64cda41","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":39},"in_reply_to":"3fa7e38b_d5adcda4","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_1599257f","line":47,"range":{"start_line":45,"start_character":68,"end_line":47,"end_character":30},"updated":"2020-02-20 02:02:26.000000000","message":"\". When not specified in the body the ``volume_id`` parameter in the url will be used as the volume to update.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Add a new microversion to the update a volume attachment API to support"},{"line_number":44,"context_line":"configuring whether to delete the attached volume when the instance is"},{"line_number":45,"context_line":"destroyed. And make the ``volumeId`` to optional in the request body, that"},{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_4667eeba","line":47,"range":{"start_line":45,"start_character":68,"end_line":47,"end_character":30},"in_reply_to":"3fa7e38b_1599257f","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_359ea168","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":73},"updated":"2020-02-20 02:02:26.000000000","message":"i assume this will be set in the body of the api request","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"just update the volume denoted by the ``volume_id`` parameter in the"},{"line_number":47,"context_line":"URL path not the request body."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_66078aca","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":73},"in_reply_to":"3fa7e38b_359ea168","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"444bca429a31084bb0fdd1a4b51b0ac057f10a95","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (reference"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_95718e16","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":12},"updated":"2020-02-20 13:11:22.000000000","message":"another option would be to not modify PUT keeping it for swap volume and instead use PATCH for partial updates. e.g. use patch with delete_on_termination as the only content in the body with the volume_id specified in the url.\n\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (reference"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_264e72c3","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":12},"in_reply_to":"3fa7e38b_95718e16","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95e22f664c5fabedf669b0c4f1c1bf846716c1a6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Support set ``deleted_on_termination`` while swap volume for an instance."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (reference"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_c0c2e601","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":12},"in_reply_to":"3fa7e38b_95718e16","updated":"2020-02-20 14:01:05.000000000","message":"Yeah, this sounds good option. I did not find any existing API where we can do the proposed change on volume. Also to note, we should clearly state(doc) that new PATCH will be to update the nova related/owned bits for volume and should not do any proxy things for cinder.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (reference"},{"line_number":55,"context_line":"to the volume attach API [1]_.), if you want to change that value with the"},{"line_number":56,"context_line":"data volume, you could just detach and re-attach with the new value."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If you boot from volume where nova creates the root volume and"},{"line_number":59,"context_line":"``delete_on_termination\u003dTrue`` when you created the server, but if you want"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_35878114","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":68},"updated":"2020-02-20 02:02:26.000000000","message":"a put to the volume attach api triggers swap volume right?\nor am i miss remebering?\n\nif put is otherwise free i woudl jsut do this via  an update to the atchment api without detaching and reataching.\n\nthat is how i expect this to work but im assuming we are using swap volume because we can just do a simple put.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Configure the ``delete_on_termination`` by the volume attach API (reference"},{"line_number":55,"context_line":"to the volume attach API [1]_.), if you want to change that value with the"},{"line_number":56,"context_line":"data volume, you could just detach and re-attach with the new value."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"If you boot from volume where nova creates the root volume and"},{"line_number":59,"context_line":"``delete_on_termination\u003dTrue`` when you created the server, but if you want"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_66aeaaa2","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":68},"in_reply_to":"3fa7e38b_35878114","updated":"2020-02-20 15:34:42.000000000","message":"This is describe the POST volume attach API, changed in https://specs.openstack.org/openstack/nova-specs/specs/train/approved/support-delete-on-termination-in-server-attach-volume.html","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3bd7ac1d94fe4b2dc8ce3bfee41f9ab93669a0df","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"URL: /servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request method: PUT (update a volume attachment)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  Add the ``delete_on_termination`` parameter to the request body."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_3bec4b04","line":75,"range":{"start_line":75,"start_character":18,"end_line":75,"end_character":21},"updated":"2020-02-20 14:24:12.000000000","message":"Should we update the \u0027GET\u0027 method to include the \u0027delete_on_termination\u0027?","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"7f0891fe020d28e12cd5978ac894882000fd4b25","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"URL: /servers/{server_id}/os-volume_attachments/{volume_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request method: PUT (update a volume attachment)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  Add the ``delete_on_termination`` parameter to the request body."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_1b1dcf77","line":75,"range":{"start_line":75,"start_character":18,"end_line":75,"end_character":21},"in_reply_to":"3fa7e38b_3bec4b04","updated":"2020-02-20 14:58:29.000000000","message":"sorry, i\u0027m wrong, we already have that in 2.79","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    {"},{"line_number":84,"context_line":"        \"volumeAttachment\": {"},{"line_number":85,"context_line":"           \"volumeId\": \"a26887c6-c47b-4654-abb5-dfadf7d3f804\","},{"line_number":86,"context_line":"           \"delete_on_termination\": true"},{"line_number":87,"context_line":"        }"},{"line_number":88,"context_line":"    }"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_b572914a","line":86,"range":{"start_line":86,"start_character":11,"end_line":86,"end_character":40},"updated":"2020-02-20 02:02:26.000000000","message":"ok this is what i was expecting and asking on line 49 +1","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  - It will return 400 if neither are specified."},{"line_number":94,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":95,"context_line":"    the request body."},{"line_number":96,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":97,"context_line":"  - If only ``delete_on_termination`` is required, just update the volume"},{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_756c196b","line":96,"range":{"start_line":96,"start_character":28,"end_line":96,"end_character":36},"updated":"2020-02-20 02:02:26.000000000","message":"specified or provided","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  - It will return 400 if neither are specified."},{"line_number":94,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":95,"context_line":"    the request body."},{"line_number":96,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":97,"context_line":"  - If only ``delete_on_termination`` is required, just update the volume"},{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_06925656","line":96,"range":{"start_line":96,"start_character":28,"end_line":96,"end_character":36},"in_reply_to":"3fa7e38b_756c196b","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":95,"context_line":"    the request body."},{"line_number":96,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":97,"context_line":"  - If only ``delete_on_termination`` is required, just update the volume"},{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_1587e50c","line":97,"range":{"start_line":97,"start_character":41,"end_line":97,"end_character":49},"updated":"2020-02-20 02:02:26.000000000","message":"specified or provided","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":95,"context_line":"    the request body."},{"line_number":96,"context_line":"  - If only ``volumeId`` is required, just doing a swap volume."},{"line_number":97,"context_line":"  - If only ``delete_on_termination`` is required, just update the volume"},{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_c6851e0b","line":97,"range":{"start_line":97,"start_character":41,"end_line":97,"end_character":49},"in_reply_to":"3fa7e38b_1587e50c","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0a640ad457a7aa3f0aa69cab0b0653a757db5c3c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"},{"line_number":101,"context_line":"  not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_75fbb279","line":101,"updated":"2020-02-20 13:06:54.000000000","message":"If both is provided then that swapping a volume while defining the delete_on_termination behavior for the new volume?","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"},{"line_number":101,"context_line":"  not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_86940637","line":101,"in_reply_to":"3fa7e38b_154efec2","updated":"2020-02-20 15:34:42.000000000","message":"Right.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edf836611f6cf63371c34f34f25f624d2f4d359a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    denoted by the ``volume_id`` in the URL path not the request body."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  The default value of the ``delete_on_termination`` field is **False** if"},{"line_number":101,"context_line":"  not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_154efec2","line":101,"in_reply_to":"3fa7e38b_75fbb279","updated":"2020-02-20 13:13:04.000000000","message":"that was how i understood it would work yes.","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57d694a9592a0f6a046d3fc584afd4d7ad2eeb2c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Upgrade impact"},{"line_number":136,"context_line":"--------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"It will be updating the ``swap_volume`` rpc API, that we can ensure we set"},{"line_number":139,"context_line":"the ``delete_on_termination`` of the new volume was swapped. Before the"},{"line_number":140,"context_line":"whole upgrade finsihed if the swap volume and the ``delete_on_termination``"},{"line_number":141,"context_line":"are both specified the request will be rejected."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Implementation"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_95c3d53a","line":141,"range":{"start_line":138,"start_character":0,"end_line":141,"end_character":48},"updated":"2020-02-20 02:02:26.000000000","message":"\"This spec will modify the swap_volume rpc API.\nduring a rolling upgrade if both the volume id and delete_on_termination attribute are specified in a swap volume api call the request will be reject until all hosts are upgraded.\"\n\ni think that is what you ment","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"208c6cefd6a015f51653efad52180537d6c6aac7","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Upgrade impact"},{"line_number":136,"context_line":"--------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"It will be updating the ``swap_volume`` rpc API, that we can ensure we set"},{"line_number":139,"context_line":"the ``delete_on_termination`` of the new volume was swapped. Before the"},{"line_number":140,"context_line":"whole upgrade finsihed if the swap volume and the ``delete_on_termination``"},{"line_number":141,"context_line":"are both specified the request will be rejected."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Implementation"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":32,"id":"3fa7e38b_a6b022e1","line":141,"range":{"start_line":138,"start_character":0,"end_line":141,"end_character":48},"in_reply_to":"3fa7e38b_95c3d53a","updated":"2020-02-20 15:34:42.000000000","message":"Done","commit_id":"4209441be7ff28ee5ddef8f30eb5d0776a3f451d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb776b68af825a3c3c99cd08ddbd85cc3d174b00","unresolved":false,"context_lines":[{"line_number":60,"context_line":"to preserve the root volume after the server is deleted, you can create a"},{"line_number":61,"context_line":"snapshot of the server."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Another option would be to not modify ``PUT`` keeping it for swap volume"},{"line_number":64,"context_line":"and instead use ``PATCH`` [2]_ for partial updates. e.g. Use ``PATCH``"},{"line_number":65,"context_line":"with ``delete_on_termination`` as the only content in the body with the"},{"line_number":66,"context_line":"``volume_id`` specified in the url. That will be a big change to the"},{"line_number":67,"context_line":"current API."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Data model impact"},{"line_number":70,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":33,"id":"3fa7e38b_41ecb804","line":67,"range":{"start_line":63,"start_character":0,"end_line":67,"end_character":12},"updated":"2020-02-20 16:01:21.000000000","message":"so i think the open question is do we want to proceed with this as the design or keep it as an alternitive.\n\ni think this would be cleaner but gmann gibi alex i think that is where ye need to weigh in.","commit_id":"af4ba6138a26371bb61e7305335f44d83bd5f6ec"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f4238739514738d1ceec5cb6fbd87839f2853371","unresolved":false,"context_lines":[{"line_number":60,"context_line":"to preserve the root volume after the server is deleted, you can create a"},{"line_number":61,"context_line":"snapshot of the server."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Another option would be to not modify ``PUT`` keeping it for swap volume"},{"line_number":64,"context_line":"and instead use ``PATCH`` [2]_ for partial updates. e.g. Use ``PATCH``"},{"line_number":65,"context_line":"with ``delete_on_termination`` as the only content in the body with the"},{"line_number":66,"context_line":"``volume_id`` specified in the url. That will be a big change to the"},{"line_number":67,"context_line":"current API."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Data model impact"},{"line_number":70,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":33,"id":"3fa7e38b_e1512433","line":67,"range":{"start_line":63,"start_character":0,"end_line":67,"end_character":12},"in_reply_to":"3fa7e38b_41ecb804","updated":"2020-02-20 16:30:36.000000000","message":"From the nova meeting [1] I understood that PATCH method is the way we want to go. So this is should be the main proposal not an alternative.\n\n[1] http://eavesdrop.openstack.org/meetings/nova/2020/nova.2020-02-20-14.00.log.html#l-62","commit_id":"af4ba6138a26371bb61e7305335f44d83bd5f6ec"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb776b68af825a3c3c99cd08ddbd85cc3d174b00","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  - If all specified, just update the volume denoted by the ``volumeId`` in"},{"line_number":101,"context_line":"    the request body."},{"line_number":102,"context_line":"  - If only ``volumeId`` is specified or provided, just doing a swap volume."},{"line_number":103,"context_line":"  - If only ``delete_on_termination`` is specified or provided, just update"},{"line_number":104,"context_line":"    the volume denoted by the ``volume_id`` in the URL path not the request"},{"line_number":105,"context_line":"    body."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":33,"id":"3fa7e38b_411598e6","line":103,"range":{"start_line":103,"start_character":41,"end_line":103,"end_character":62},"updated":"2020-02-20 16:01:21.000000000","message":"oh i ment replace \"required\" with one of those two options not \"specified or provided\" although that works too.","commit_id":"af4ba6138a26371bb61e7305335f44d83bd5f6ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dde2a530b191aedd4e92be0c3ed58362d01bed45","unresolved":false,"context_lines":[{"line_number":58,"context_line":"to preserve the root volume after the server is deleted, you can create a"},{"line_number":59,"context_line":"snapshot of the server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Another option is change the exist PUT Update a volume attachment API, add"},{"line_number":62,"context_line":"``delete_on_termination`` property to the request body, and should make"},{"line_number":63,"context_line":"the ``volumeId`` is optional in the request body. This API is typically meant"},{"line_number":64,"context_line":"to only be used as part of a larger orchestrated volume migration operation"}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_5ee80b7d","line":61,"range":{"start_line":61,"start_character":39,"end_line":61,"end_character":45},"updated":"2020-02-21 02:34:39.000000000","message":"s/Update/update","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7189c7d9110d7e26e508d9b5c3b4d4cad3a030a9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"to preserve the root volume after the server is deleted, you can create a"},{"line_number":59,"context_line":"snapshot of the server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Another option is change the exist PUT Update a volume attachment API, add"},{"line_number":62,"context_line":"``delete_on_termination`` property to the request body, and should make"},{"line_number":63,"context_line":"the ``volumeId`` is optional in the request body. This API is typically meant"},{"line_number":64,"context_line":"to only be used as part of a larger orchestrated volume migration operation"}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_be733fe5","line":61,"range":{"start_line":61,"start_character":39,"end_line":61,"end_character":45},"in_reply_to":"3fa7e38b_5ee80b7d","updated":"2020-02-21 02:58:40.000000000","message":"Done","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dde2a530b191aedd4e92be0c3ed58362d01bed45","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The ``delete_on_termination`` in the request body is required:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` andi/or ``delete_on_termination``"},{"line_number":101,"context_line":"    are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  The default value of the ``delete_on_termination`` field is **False**."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_bef01f62","line":100,"range":{"start_line":100,"start_character":40,"end_line":100,"end_character":44},"updated":"2020-02-21 02:34:39.000000000","message":"s/andi/and","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dde2a530b191aedd4e92be0c3ed58362d01bed45","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The ``delete_on_termination`` in the request body is required:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` andi/or ``delete_on_termination``"},{"line_number":101,"context_line":"    are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  The default value of the ``delete_on_termination`` field is **False**."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_fef6975f","line":100,"range":{"start_line":100,"start_character":26,"end_line":100,"end_character":39},"updated":"2020-02-21 02:34:39.000000000","message":"there is no volume_id in the body.","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7189c7d9110d7e26e508d9b5c3b4d4cad3a030a9","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The ``delete_on_termination`` in the request body is required:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` andi/or ``delete_on_termination``"},{"line_number":101,"context_line":"    are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  The default value of the ``delete_on_termination`` field is **False**."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_5e448b76","line":100,"range":{"start_line":100,"start_character":26,"end_line":100,"end_character":39},"in_reply_to":"3fa7e38b_fef6975f","updated":"2020-02-21 02:58:40.000000000","message":"The ``volume_id`` is in the path","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dde2a530b191aedd4e92be0c3ed58362d01bed45","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` andi/or ``delete_on_termination``"},{"line_number":101,"context_line":"    are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  The default value of the ``delete_on_termination`` field is **False**."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  Allow admin or owner role to perform this operation and add"},{"line_number":106,"context_line":"  \u0027rule: system_admin_or_owner\u0027 policy."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_5e8d6bd8","line":103,"range":{"start_line":103,"start_character":2,"end_line":103,"end_character":72},"updated":"2020-02-21 02:34:39.000000000","message":"this is required field, so there is no default value","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7189c7d9110d7e26e508d9b5c3b4d4cad3a030a9","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` andi/or ``delete_on_termination``"},{"line_number":101,"context_line":"    are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  The default value of the ``delete_on_termination`` field is **False**."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  Allow admin or owner role to perform this operation and add"},{"line_number":106,"context_line":"  \u0027rule: system_admin_or_owner\u0027 policy."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_7e47077b","line":103,"range":{"start_line":103,"start_character":2,"end_line":103,"end_character":72},"in_reply_to":"3fa7e38b_5e8d6bd8","updated":"2020-02-21 02:58:40.000000000","message":"Done","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dde2a530b191aedd4e92be0c3ed58362d01bed45","unresolved":false,"context_lines":[{"line_number":162,"context_line":"Work Items"},{"line_number":163,"context_line":"----------"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* Add patch volume attachment support in compute."},{"line_number":166,"context_line":"* Add a patch volume attachment rpc API."},{"line_number":167,"context_line":"* Add microversion support."},{"line_number":168,"context_line":"* Add patch volume attachment API support in python-novaclient."},{"line_number":169,"context_line":"* Add related tests."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_1e97f3ec","line":166,"range":{"start_line":165,"start_character":2,"end_line":166,"end_character":40},"updated":"2020-02-21 02:34:39.000000000","message":"why we need rpc API change?","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7189c7d9110d7e26e508d9b5c3b4d4cad3a030a9","unresolved":false,"context_lines":[{"line_number":162,"context_line":"Work Items"},{"line_number":163,"context_line":"----------"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* Add patch volume attachment support in compute."},{"line_number":166,"context_line":"* Add a patch volume attachment rpc API."},{"line_number":167,"context_line":"* Add microversion support."},{"line_number":168,"context_line":"* Add patch volume attachment API support in python-novaclient."},{"line_number":169,"context_line":"* Add related tests."}],"source_content_type":"text/x-rst","patch_set":34,"id":"3fa7e38b_3e418f63","line":166,"range":{"start_line":165,"start_character":2,"end_line":166,"end_character":40},"in_reply_to":"3fa7e38b_1e97f3ec","updated":"2020-02-21 02:58:40.000000000","message":"Oh yes, it just change in the API, wil remove.","commit_id":"4f47aa9424f1663edb11ad545194996a30ee87b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8461c12c7b6249aa245534c26800e9ba02961d4d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The ``delete_on_termination`` in the request body is required:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` in the path and/or"},{"line_number":101,"context_line":"    ``delete_on_termination`` in the request body are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Allow admin or owner role to perform this operation and add"}],"source_content_type":"text/x-rst","patch_set":35,"id":"3fa7e38b_c19f3e4c","line":100,"range":{"start_line":100,"start_character":23,"end_line":100,"end_character":51},"updated":"2020-02-21 23:09:12.000000000","message":"if volume_id in the path isn\u0027t specified, then it is going to the \u0027list attachement\u0027 API. You can just remove this.","commit_id":"3dbc3d940427b4d12672e34c5e2ae6f9d9f0422d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d1b770403235a25cbb41d8b8c7d0f68a6cf94a0a","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The ``delete_on_termination`` in the request body is required:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` in the path and/or"},{"line_number":101,"context_line":"    ``delete_on_termination`` in the request body are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Allow admin or owner role to perform this operation and add"}],"source_content_type":"text/x-rst","patch_set":35,"id":"1fa4df85_c32316be","line":100,"range":{"start_line":100,"start_character":23,"end_line":100,"end_character":51},"in_reply_to":"3fa7e38b_c19f3e4c","updated":"2020-02-23 01:23:46.000000000","message":"yeah, it can be 400 if not valid valume_id and if there is no such attachment.","commit_id":"3dbc3d940427b4d12672e34c5e2ae6f9d9f0422d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d1b770403235a25cbb41d8b8c7d0f68a6cf94a0a","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  - It will return 400 if ``volume_id`` in the path and/or"},{"line_number":101,"context_line":"    ``delete_on_termination`` in the request body are not specified."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Allow admin or owner role to perform this operation and add"},{"line_number":104,"context_line":"  \u0027rule: system_admin_or_owner\u0027 policy."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":35,"id":"1fa4df85_631ee271","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":28},"updated":"2020-02-23 01:23:46.000000000","message":"+1","commit_id":"3dbc3d940427b4d12672e34c5e2ae6f9d9f0422d"}]}
