)]}'
{"specs/pike/approved/port-deletion-on-termination.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3647921a3ddac9dad4c51ddb3b60fbef9752c4fb","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      --nic port-id\u003dport-uuid,shutdown\u003dremove \\"},{"line_number":61,"context_line":"      myserver"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Possible values for ``shutdown`` are ``preserve`` and ``remove``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5201f7_0be6b5af","line":63,"updated":"2017-01-05 15:01:10.000000000","message":"If I had to pick between \u0027shutdown\u0027 and \u0027delete_on_termination\u0027 I\u0027d go with \u0027delete_on_termination\u0027 for ports to be consistent with how we treat volumes provided when nova creates the server. It\u0027s also simpler, in my opinion, since it\u0027s a boolean.","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"4bcc573566bd0920e63ca39c40402fc44e9b2c44","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      --nic port-id\u003dport-uuid,shutdown\u003dremove \\"},{"line_number":61,"context_line":"      myserver"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Possible values for ``shutdown`` are ``preserve`` and ``remove``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ffe62b97_0ef5c883","line":63,"in_reply_to":"ba5201f7_0be6b5af","updated":"2017-03-30 13:58:55.000000000","message":"Done","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3647921a3ddac9dad4c51ddb3b60fbef9752c4fb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Data model impact"},{"line_number":73,"context_line":"-----------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The NetworkRequest object (and associated table) will"},{"line_number":76,"context_line":"gain a boolean attribute, named ``delete_on_termination``."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The VIF representation already has a boolean ``preserve_on_delete``, which is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5201f7_cb4bcd85","line":75,"updated":"2017-01-05 15:01:10.000000000","message":"The NetworkRequest object is not actually persisted in the Nova database.\n\nWhat you\u0027d probably actually need to do is change the logic of how the VIF model\u0027s preserve_on_delete attribute is set:\n\nhttps://github.com/openstack/nova/blob/7463e1eec8f1d4b486703fbfd8d1eb755e0c5b0c/nova/network/model.py#L353\n\nAnd that VIF object is serialized and stored in the network_info column of the instance_info_cache table in the database.","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"4bcc573566bd0920e63ca39c40402fc44e9b2c44","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Data model impact"},{"line_number":73,"context_line":"-----------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The NetworkRequest object (and associated table) will"},{"line_number":76,"context_line":"gain a boolean attribute, named ``delete_on_termination``."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The VIF representation already has a boolean ``preserve_on_delete``, which is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ffe62b97_6e333464","line":75,"in_reply_to":"ba5201f7_cb4bcd85","updated":"2017-03-30 13:58:55.000000000","message":"Done","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3647921a3ddac9dad4c51ddb3b60fbef9752c4fb","unresolved":false,"context_lines":[{"line_number":75,"context_line":"The NetworkRequest object (and associated table) will"},{"line_number":76,"context_line":"gain a boolean attribute, named ``delete_on_termination``."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The VIF representation already has a boolean ``preserve_on_delete``, which is"},{"line_number":79,"context_line":"currently set to ``true`` for all pre-created devices. This will be set"},{"line_number":80,"context_line":"conditionally based on user input."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5201f7_2b47f977","line":80,"range":{"start_line":78,"start_character":0,"end_line":80,"end_character":34},"updated":"2017-01-05 15:01:10.000000000","message":"Yeah, so I don\u0027t think we have data model impact as it\u0027s just this, which is already in the data model.","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"4bcc573566bd0920e63ca39c40402fc44e9b2c44","unresolved":false,"context_lines":[{"line_number":75,"context_line":"The NetworkRequest object (and associated table) will"},{"line_number":76,"context_line":"gain a boolean attribute, named ``delete_on_termination``."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The VIF representation already has a boolean ``preserve_on_delete``, which is"},{"line_number":79,"context_line":"currently set to ``true`` for all pre-created devices. This will be set"},{"line_number":80,"context_line":"conditionally based on user input."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ffe62b97_4e38703c","line":80,"range":{"start_line":78,"start_character":0,"end_line":80,"end_character":34},"in_reply_to":"ba5201f7_2b47f977","updated":"2017-03-30 13:58:55.000000000","message":"Done","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3647921a3ddac9dad4c51ddb3b60fbef9752c4fb","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code-block:: console"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  nova boot --nic port-id\u003dUUID,shutdown\u003dremove"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Example json data for using with the API"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba5201f7_eb37b1fc","line":92,"range":{"start_line":92,"start_character":31,"end_line":92,"end_character":46},"updated":"2017-01-05 15:01:10.000000000","message":"Let\u0027s be consistent and just use the single delete_on_termination flag if we go with this proposal. Because the action is scoped to the nic resource, we don\u0027t really shut those down, so it\u0027s confusing.","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"4bcc573566bd0920e63ca39c40402fc44e9b2c44","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code-block:: console"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  nova boot --nic port-id\u003dUUID,shutdown\u003dremove"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Example json data for using with the API"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ffe62b97_ee4624c1","line":92,"range":{"start_line":92,"start_character":31,"end_line":92,"end_character":46},"in_reply_to":"ba5201f7_eb37b1fc","updated":"2017-03-30 13:58:55.000000000","message":"Done","commit_id":"9aef3fe4de8eca079758a8705a01eddc51ef82d2"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"926844dd80c5de8dbec5209fc3838a8668a3bca8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"If you really want to clean up, the current behavior is cumbersome due to"},{"line_number":26,"context_line":"multiple reasons:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* in Horizon, normal members cannot delete ports"},{"line_number":29,"context_line":"* in scripts, you need to get the ports, delete the VM, wait until the VM is"},{"line_number":30,"context_line":"  deleted, delete each port"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a3c09a3_f19f2cb2","line":28,"updated":"2017-01-13 10:09:08.000000000","message":"Ok, that seems to me a bug in horizon. Default behaivor is user-role can create and delete it\u0027s ports.","commit_id":"8598dc33e4d40f0538fb3522f753ea08036d9731"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"926844dd80c5de8dbec5209fc3838a8668a3bca8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"multiple reasons:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* in Horizon, normal members cannot delete ports"},{"line_number":29,"context_line":"* in scripts, you need to get the ports, delete the VM, wait until the VM is"},{"line_number":30,"context_line":"  deleted, delete each port"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Compare this to boot-from-volume, where the user can specify what to do with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a3c09a3_8b2077f9","line":29,"updated":"2017-01-13 10:09:08.000000000","message":"I think Matt comment is correct. If you need to manually create ports in a script you should be able to store the port ids, wait for server deletion and then just go through the existing list of ports. But given the fact that nova supports delete_on_termination for volumes it\u0027s valid to support this also for ports.","commit_id":"8598dc33e4d40f0538fb3522f753ea08036d9731"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"926844dd80c5de8dbec5209fc3838a8668a3bca8","unresolved":false,"context_lines":[{"line_number":158,"context_line":"-----------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Primary assignee:"},{"line_number":161,"context_line":"  \u003cNone\u003e"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Other contributors:"},{"line_number":164,"context_line":"  \u003cNone\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a3c09a3_50263e17","line":161,"updated":"2017-01-13 10:09:08.000000000","message":"Please add an assignee that will implement the change.","commit_id":"8598dc33e4d40f0538fb3522f753ea08036d9731"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7555ce0b41c723e105542b55fe5464cab829fb27","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/port-deletion-on-termination"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will provide a mechanism for the user to define what nova should do with"},{"line_number":14,"context_line":"pre-created ports when the server is terminated."},{"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"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_3feefab3","line":14,"updated":"2017-04-04 17:50:05.000000000","message":"lets expand that to create and pre-created ports.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/port-deletion-on-termination"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will provide a mechanism for the user to define what nova should do with"},{"line_number":14,"context_line":"pre-created ports when the server is terminated."},{"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"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_550e758d","line":14,"in_reply_to":"bff0334d_5f657544","updated":"2017-04-19 10:19:31.000000000","message":"For non-goals, I would add them into the problem description, or some times the alternatives section, depending on the context.\n\nGenerally I am very supportive of reduced scope, but it seems odd to restrict this flag to only one type of port in the API, it just feels inconsistent/incomplete.\n\nI think its good to compare this directly with what we have for volumes with the delete_on_termination flag, see: block_device_mapping_v2.delete_on_termination in: https://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-server-detail#create-server\n\nFor context, AFAIK the thinking here was something like this: When a user provides a port, they are responsible for cleaning it up afterwards, as it is assumed they \"own\" that port, and may want to use it on another instance. On the other hand, if Nova creates a port, Nova is responsible for cleaning it up when the instance dies, otherwise you just leak ports.\n\nIts a bit tempting to have a new microversion where all ports are delete by default, unless the user opts out of it with some flag about preserving the port on delete.\n\nI may be alone in thinking all this, it would be good to get wider feedback on these ideas. We could just move them into the alternatives if you are not keen on these.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/port-deletion-on-termination"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This will provide a mechanism for the user to define what nova should do with"},{"line_number":14,"context_line":"pre-created ports when the server is terminated."},{"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"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_5f657544","line":14,"in_reply_to":"dfeb2761_3feefab3","updated":"2017-04-07 08:26:06.000000000","message":"I would rather not. This spec is about a very specific case: deleting pre-created ports when deleting the VM. Extending it to optionally *not* delete ports created by nova seems like a different thing.\n\nWhile I do see benefit in giving users as much control as possible about the artefacts around a VM, I\u0027m not sure about very specific use-cases for this.\n\nTherefore, in this spec, I\u0027d like to argue for the one use-case I know exists and keep it to this scope. I\u0027d suggest to deal with the proposal to give the user more control about nova-created ports (and potentially other resources, such as disks, as well)  in an additional spec.\n\n\"Non Goals\" is unfortunately not a section in the spec template, but if it were, I would have added nova-created ports there.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":25,"context_line":"If you really want to clean up, the current behavior is cumbersome due to"},{"line_number":26,"context_line":"multiple reasons:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* in Horizon, normal members cannot delete ports"},{"line_number":29,"context_line":"* in scripts, you either"},{"line_number":30,"context_line":"  * need to get the ports, delete the VM, wait until the VM is"},{"line_number":31,"context_line":"  deleted, delete each port"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_508323cd","line":28,"updated":"2017-04-19 10:19:31.000000000","message":"Thats very curious, it lets you create but not delete a port?","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7aa16050cc88aa26a6abba806704354361df0e6c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"If you really want to clean up, the current behavior is cumbersome due to"},{"line_number":26,"context_line":"multiple reasons:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* in Horizon, normal members cannot delete ports"},{"line_number":29,"context_line":"* in scripts, you either"},{"line_number":30,"context_line":"  * need to get the ports, delete the VM, wait until the VM is"},{"line_number":31,"context_line":"  deleted, delete each port"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_209c365c","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":48},"updated":"2017-10-03 17:32:23.000000000","message":"if this is the case it sounds like a horizon bug, no?","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7aa16050cc88aa26a6abba806704354361df0e6c","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* in Horizon, normal members cannot delete ports"},{"line_number":29,"context_line":"* in scripts, you either"},{"line_number":30,"context_line":"  * need to get the ports, delete the VM, wait until the VM is"},{"line_number":31,"context_line":"  deleted, delete each port"},{"line_number":32,"context_line":"  * store the information about all created VMs and their associated ports in"},{"line_number":33,"context_line":"  your application or client"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Compare this to boot-from-volume, where the user can specify what to do with"},{"line_number":36,"context_line":"the boot volume by setting ``delete_on_terminate``, which offers a much better"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_a0c0262c","line":33,"range":{"start_line":30,"start_character":0,"end_line":33,"end_character":28},"updated":"2017-10-03 17:32:23.000000000","message":"you missed the option of using Heat, which will manage your resources for you.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a821c6b3019c5bfb3af9d07b10b9e07b7fa23256","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_df25ce5d","line":49,"updated":"2017-04-04 17:49:36.000000000","message":"I would start with describing what happens today, something like:\n\nToday if nova creates the port, it is deleted on termination, if the port is given to nova it is not deleted on termination. This spec is about letting the user specify if thats what they want or not.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_f57101e0","line":49,"in_reply_to":"bff0334d_7ff03968","updated":"2017-04-19 10:19:31.000000000","message":"Opps, good point. Repeating that seems silly. Not quite sure why this doesn\u0027t read quite right for me, I need to think on that more.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_7ff03968","line":49,"in_reply_to":"dfeb2761_df25ce5d","updated":"2017-04-07 08:26:06.000000000","message":"Do you feel we need additional information to what is already present in \"Problem description\"? I thought describing the current situation would already be covered there.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a821c6b3019c5bfb3af9d07b10b9e07b7fa23256","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The default is ``preserve`` and ``false``, respectively. This way, the behavior"},{"line_number":55,"context_line":"remains unchanged for users who don\u0027t care about this."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_3fba7a09","line":52,"updated":"2017-04-04 17:49:36.000000000","message":"I think we should support this for pre-create and non pre-created ports. i.e. I think this should work as well:\n\n    $ nova boot \\\n      --flavor myFlavor \\\n      --block-device id\u003dimage-uuid,source\u003dimage,dest\u003dvolume,shutdown\u003dremove \\\n      --nic net-id\u003dnet-uuid,delete-on-termination\u003dfalse \\\n      myserver","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7aa16050cc88aa26a6abba806704354361df0e6c","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The default is ``preserve`` and ``false``, respectively. This way, the behavior"},{"line_number":55,"context_line":"remains unchanged for users who don\u0027t care about this."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_003dba2b","line":52,"in_reply_to":"7ffa3b31_951abd7a","updated":"2017-10-03 17:32:23.000000000","message":"I agree, being consistent would be simpler.  (Though I don\u0027t expect a lot of people to want to keep the auto-created port around after instance deletion.)","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The default is ``preserve`` and ``false``, respectively. This way, the behavior"},{"line_number":55,"context_line":"remains unchanged for users who don\u0027t care about this."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_951abd7a","line":52,"in_reply_to":"bff0334d_bffda13b","updated":"2017-04-19 10:19:31.000000000","message":"It would be good to say why that seems like a bad idea in the alternatives.\n\nEither way around, if you don\u0027t want to do support that, we should define the behaviour when delete-on-termination is specified for a port that is created by Nova. I assume we return 400 (bad request)?\n\nIt just seems easier to support the override for both cases, and be consistent.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"When booting a server with a pre-created port, the user can specify a property"},{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The default is ``preserve`` and ``false``, respectively. This way, the behavior"},{"line_number":55,"context_line":"remains unchanged for users who don\u0027t care about this."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_bffda13b","line":52,"in_reply_to":"dfeb2761_3fba7a09","updated":"2017-04-07 08:26:06.000000000","message":"See my comment above, I would rather not do that in this spec.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7aa16050cc88aa26a6abba806704354361df0e6c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"``delete-on-termination`` (on the commandline) or ``delete_on_termination``"},{"line_number":52,"context_line":"(in the API), analogous to what can be done for boot-from-volume."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The default is ``preserve`` and ``false``, respectively. This way, the behavior"},{"line_number":55,"context_line":"remains unchanged for users who don\u0027t care about this."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Example using the nova CLI (boot-from-volume also included as a reference here)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_4033b263","line":54,"range":{"start_line":54,"start_character":15,"end_line":54,"end_character":27},"updated":"2017-10-03 17:32:23.000000000","message":"what is \u0027preserve\u0027 for?","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The VIF representation already has a boolean ``preserve_on_delete``, which is"},{"line_number":80,"context_line":"currently set to ``true`` for all pre-created devices. This will be set"},{"line_number":81,"context_line":"conditionally based on user input."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_30a897d9","line":81,"updated":"2017-04-19 10:19:31.000000000","message":"FWIW, its this reason that I think should make the API apply to all ports, where the user is basically specifying the value of preserve_on_delete, but in a way that matches the BDM API.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a821c6b3019c5bfb3af9d07b10b9e07b7fa23256","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"server\": {"},{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_1fa336b4","line":103,"range":{"start_line":103,"start_character":18,"end_line":103,"end_character":21},"updated":"2017-04-04 17:49:36.000000000","message":"This is required in the boot request, I would add that in please.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"server\": {"},{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_50f3230b","line":103,"range":{"start_line":103,"start_character":18,"end_line":103,"end_character":21},"in_reply_to":"bff0334d_bf9241f5","updated":"2017-04-19 10:19:31.000000000","message":"My mistake, that is correct based on the validation here:\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/servers.py#L33\n\nWe should probably update the api-ref docs to better reflect that.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"server\": {"},{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_bf9241f5","line":103,"range":{"start_line":103,"start_character":18,"end_line":103,"end_character":21},"in_reply_to":"dfeb2761_1fa336b4","updated":"2017-04-07 08:26:06.000000000","message":"It\u0027s not, if you\u0027re using BDMv2. IIRC it even breaks, if you specify it. But I can definitely make this to an API call which doesn\u0027t have a BDMv2.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a821c6b3019c5bfb3af9d07b10b9e07b7fa23256","unresolved":false,"context_lines":[{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","},{"line_number":107,"context_line":"          \"source_type\": \"image\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_5fc77e65","line":104,"updated":"2017-04-04 17:49:36.000000000","message":"Nit: I would drop this, as its not in your console request above.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","},{"line_number":107,"context_line":"          \"source_type\": \"image\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_50b683fc","line":104,"in_reply_to":"bff0334d_b1b835c8","updated":"2017-04-19 10:19:31.000000000","message":"Sorry, I probably sending you the wrong direction here.\n\nIts nice to have this here, I would just like to see the CLI call and API in sync if we want to include both here.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":101,"context_line":"      \"flavorRef\": \"2\","},{"line_number":102,"context_line":"      \"name\": \"myserver\","},{"line_number":103,"context_line":"      \"imageRef\": \"\","},{"line_number":104,"context_line":"      \"block_device_mapping_v2\": ["},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"          \"uuid\": \"image-uuid\","},{"line_number":107,"context_line":"          \"source_type\": \"image\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_b1b835c8","line":104,"in_reply_to":"dfeb2761_5fc77e65","updated":"2017-04-07 08:26:06.000000000","message":"See above: I can for sure remove BDMv2 from the API call.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a821c6b3019c5bfb3af9d07b10b9e07b7fa23256","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The NetworkRequest object needs to gain a boolean attribute,"},{"line_number":125,"context_line":"named ``delete_on_termination``."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Security impact"},{"line_number":128,"context_line":"---------------"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfeb2761_ff0c12a6","line":126,"updated":"2017-04-04 17:49:36.000000000","message":"What about how the user checks the added this correctly? What about when adding ports after the instance is booted.\n\nI think we need to cover both of those cases at the same time as the above, so we are self consistent here.\n\n* https://developer.openstack.org/api-ref/compute/?expanded\u003dlist-port-interfaces-detail#list-port-interfaces\n* https://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-interface-detail#create-interface","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7aa16050cc88aa26a6abba806704354361df0e6c","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The NetworkRequest object needs to gain a boolean attribute,"},{"line_number":125,"context_line":"named ``delete_on_termination``."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Security impact"},{"line_number":128,"context_line":"---------------"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_e0505e61","line":126,"in_reply_to":"7ffa3b31_d0acd38d","updated":"2017-10-03 17:32:23.000000000","message":"If we\u0027re going to support this at boot we pretty much need to support it for attaching an interface later on.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d977c1feb7e12314910957572d0092cf38adf597","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The NetworkRequest object needs to gain a boolean attribute,"},{"line_number":125,"context_line":"named ``delete_on_termination``."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Security impact"},{"line_number":128,"context_line":"---------------"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ffa3b31_d0acd38d","line":126,"in_reply_to":"bff0334d_f4546bcc","updated":"2017-04-19 10:19:31.000000000","message":"That sounds right to me, I think its probably good to keep this all consistent.\n\nBut not 100% sure if everyone will like that because of the \"no more orchestration\" clause in this Nova scope statement:\nhttps://docs.openstack.org/developer/nova/project_scope.html#no-more-orchestration","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"},{"author":{"_account_id":24570,"name":"Marco Voelz","email":"marco.voelz@sap.com","username":"voelzmo"},"change_message_id":"18ccd235ba9ee6fca46b990a79d7f94ea56a2b81","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The NetworkRequest object needs to gain a boolean attribute,"},{"line_number":125,"context_line":"named ``delete_on_termination``."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Security impact"},{"line_number":128,"context_line":"---------------"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bff0334d_f4546bcc","line":126,"in_reply_to":"dfeb2761_ff0c12a6","updated":"2017-04-07 08:26:06.000000000","message":"Those are two very interesting questions! I\u0027m not entirely sure how to deal with both. \n* I can definitely add a property to the `interfaceAttachment` json when listing and creating interfaces. Probably we just call this `delete_on_termination` as well? For creation, this would be optional, defaulting to \u0027false\u0027.","commit_id":"96c737f8e7dbbf89ffb317d4d267618a82190e9f"}]}
