)]}'
{"specs/approved/node-abandon.rst":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"0c23108e358fda656912fe763c4080a79c7993dd","unresolved":false,"context_lines":[{"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action. Removing nodes"},{"line_number":22,"context_line":"from ironic will go through cleaning process, if any cleaning operation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_b19813c0","line":19,"updated":"2017-08-25 07:37:24.000000000","message":"Node can live in the active state infinite time. Please describe the problem more carefully.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action. Removing nodes"},{"line_number":22,"context_line":"from ironic will go through cleaning process, if any cleaning operation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_8ac15c83","line":19,"in_reply_to":"7f287b81_b19813c0","updated":"2017-08-25 09:46:15.000000000","message":"I will add an example use case.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"38322d30920676dcf79c7ec091e5f41c06b4047d","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":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action. Removing nodes"},{"line_number":22,"context_line":"from ironic will go through cleaning process, if any cleaning operation"},{"line_number":23,"context_line":"is in use, the data might be destroyed (determined by specific clean step)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_5095893f","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"updated":"2017-08-24 11:36:34.000000000","message":"nit: should it be in bold e.g. **Ironic**?","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","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":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action. Removing nodes"},{"line_number":22,"context_line":"from ironic will go through cleaning process, if any cleaning operation"},{"line_number":23,"context_line":"is in use, the data might be destroyed (determined by specific clean step)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_474b6daf","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"in_reply_to":"7f287b81_5095893f","updated":"2017-08-25 09:46:15.000000000","message":"There are too many ironic here, which one should be bold or bold them all? That\u0027s really a headache for me :)\nAFAIK project name should be lowercased, I personally don\u0027t have preference, though I don\u0027t see a guideline for styles either.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"ab4d96b45f27b748ab2e44417bd3080773d398ac","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Also there is case when active baremetal nodes with data needs to be removed"},{"line_number":26,"context_line":"from ironic\u0027s management with no harm."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"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":1,"id":"7f287b81_3161c3aa","line":27,"updated":"2017-08-25 07:40:21.000000000","message":"There is additional problem. Should ironic remove netboot config files? If yes, node can not be booted without external configuration.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Also there is case when active baremetal nodes with data needs to be removed"},{"line_number":26,"context_line":"from ironic\u0027s management with no harm."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"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":1,"id":"7f287b81_a7d1f1fd","line":27,"in_reply_to":"7f287b81_3161c3aa","updated":"2017-08-25 09:46:15.000000000","message":"I think that\u0027s abandon means, node will not be gonverned by ironic, it can be put to other use.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"38322d30920676dcf79c7ec091e5f41c06b4047d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"named ``abandon``, two states named ``abandoning`` and ``abandon failed`` will"},{"line_number":34,"context_line":"be added to ironic state machine."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":37,"context_line":"``abandoning`` state and perform the same process with node tear down, except"},{"line_number":38,"context_line":"cleaning. The tear_down interface from driver API will be used to support node"},{"line_number":39,"context_line":"clean up."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_301d5d0f","line":36,"range":{"start_line":36,"start_character":7,"end_line":36,"end_character":54},"updated":"2017-08-24 11:36:34.000000000","message":"nit: can the abandon operation also be issued against a non-active node e.g. in \u0027wait call-back\u0027, \u0027deploy failed\u0027, \u0027error\u0027?","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"line_number":33,"context_line":"named ``abandon``, two states named ``abandoning`` and ``abandon failed`` will"},{"line_number":34,"context_line":"be added to ironic state machine."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":37,"context_line":"``abandoning`` state and perform the same process with node tear down, except"},{"line_number":38,"context_line":"cleaning. The tear_down interface from driver API will be used to support node"},{"line_number":39,"context_line":"clean up."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_07d68550","line":36,"range":{"start_line":36,"start_character":7,"end_line":36,"end_character":54},"in_reply_to":"7f287b81_301d5d0f","updated":"2017-08-25 09:46:15.000000000","message":"Abandon is proposed as an opposite operation of adopt, so it only deals with active nodes.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"38322d30920676dcf79c7ec091e5f41c06b4047d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"be added to ironic state machine."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":37,"context_line":"``abandoning`` state and perform the same process with node tear down, except"},{"line_number":38,"context_line":"cleaning. The tear_down interface from driver API will be used to support node"},{"line_number":39,"context_line":"clean up."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_b0bf0dcf","line":37,"range":{"start_line":37,"start_character":55,"end_line":37,"end_character":69},"updated":"2017-08-24 11:36:34.000000000","message":"nit: the state diagram [1] uses \u0027delete\u0027 verb, not `tear down`.\n\n1. https://docs.openstack.org/ironic/latest/_images/states.svg","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"line_number":34,"context_line":"be added to ironic state machine."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":37,"context_line":"``abandoning`` state and perform the same process with node tear down, except"},{"line_number":38,"context_line":"cleaning. The tear_down interface from driver API will be used to support node"},{"line_number":39,"context_line":"clean up."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_27906143","line":37,"range":{"start_line":37,"start_character":55,"end_line":37,"end_character":69},"in_reply_to":"7f287b81_b0bf0dcf","updated":"2017-08-25 09:46:15.000000000","message":"You are right, but tear down is what actually going when `deleted` is requested, anyway, I will reword it.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"0c23108e358fda656912fe763c4080a79c7993dd","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Users can disable any clean step which will damage data, but this is not fine"},{"line_number":53,"context_line":"grained."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_b16a53b0","line":51,"updated":"2017-08-25 07:37:24.000000000","message":"Currently there is a hack (and it will be present in the future because it\u0027s breaking change): move node to maintenance, then delete it.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Users can disable any clean step which will damage data, but this is not fine"},{"line_number":53,"context_line":"grained."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_87aa75cf","line":51,"in_reply_to":"7f287b81_b16a53b0","updated":"2017-08-25 09:46:15.000000000","message":"That\u0027s true, but putting node into maintenance then delete does not go through driver clean up/tear down, resources will not be cleaned up, like network, pxe config.\nI will add it as an alternative.","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"38322d30920676dcf79c7ec091e5f41c06b4047d","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"This API allows users to set node provision state."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"A new target ``abandon`` will be available after this spec is implmeneted."},{"line_number":91,"context_line":"JSON schema definition and http error codes are not changed."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"As an example:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_f04fd531","line":90,"range":{"start_line":90,"start_character":62,"end_line":90,"end_character":73},"updated":"2017-08-24 11:36:34.000000000","message":"typo: implemented","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3eed48e12bcf7a8f4564407622a24a65bf5db551","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"This API allows users to set node provision state."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"A new target ``abandon`` will be available after this spec is implmeneted."},{"line_number":91,"context_line":"JSON schema definition and http error codes are not changed."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"As an example:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_27298189","line":90,"range":{"start_line":90,"start_character":62,"end_line":90,"end_character":73},"in_reply_to":"7f287b81_f04fd531","updated":"2017-08-25 09:46:15.000000000","message":"Done","commit_id":"b1c95951d91bade48eb90a4c4da57f215fab48e6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action (see alternatives"},{"line_number":22,"context_line":"section for a workable hack). Removing nodes from ironic will go through"},{"line_number":23,"context_line":"cleaning process, if any cleaning operation is in use, the data might be"},{"line_number":24,"context_line":"destroyed (determined by specific clean step)."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_384994cf","line":22,"updated":"2017-08-25 19:40:57.000000000","message":"This is actually incorrect. Provision state deleted results in cleaning, but a node can be deleted from ironic directly bypassing cleaning, which preserves the data. The overall idea is a good idea, in terms of adding a state, however I think it would need to be completely optional behavior.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"26e32ca5b2aed3d8d98933fa356d077ec3de58fc","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action (see alternatives"},{"line_number":22,"context_line":"section for a workable hack). Removing nodes from ironic will go through"},{"line_number":23,"context_line":"cleaning process, if any cleaning operation is in use, the data might be"},{"line_number":24,"context_line":"destroyed (determined by specific clean step)."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_786b911d","line":22,"in_reply_to":"7f287b81_384994cf","updated":"2017-08-26 13:49:44.000000000","message":"+1","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Ironic supports the ability to adopt a node to use without deployment"},{"line_number":21,"context_line":"process, but there is no way to do the opposite action (see alternatives"},{"line_number":22,"context_line":"section for a workable hack). Removing nodes from ironic will go through"},{"line_number":23,"context_line":"cleaning process, if any cleaning operation is in use, the data might be"},{"line_number":24,"context_line":"destroyed (determined by specific clean step)."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_8f0027ad","line":22,"in_reply_to":"7f287b81_384994cf","updated":"2017-08-28 08:25:35.000000000","message":"I need to reword this, it\u0027s causing confusing.\nRemoving a node in active state is not allowed, except in maintenance. Either we can move node to available state and delete this node, or set node to maintenance mode and delete, the first case will go through cleaning process, the latter, as said in the alternatives section, does not clean resources used by this node.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":24,"context_line":"destroyed (determined by specific clean step)."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Also there is case when active baremetal nodes with data needs to be removed"},{"line_number":27,"context_line":"from ironic\u0027s management with no harm. For example, user wants to move a"},{"line_number":28,"context_line":"batch of nodes from one cloud to another (e.g., hardware resource reschedule),"},{"line_number":29,"context_line":"physically removing the node will not remove records in ironic, since ironic"},{"line_number":30,"context_line":"losts real control on these nodes, their records are hard to remove, and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_988648db","line":27,"updated":"2017-08-25 19:40:57.000000000","message":"In my mind, this already exists through `ironic node-delete`","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Also there is case when active baremetal nodes with data needs to be removed"},{"line_number":27,"context_line":"from ironic\u0027s management with no harm. For example, user wants to move a"},{"line_number":28,"context_line":"batch of nodes from one cloud to another (e.g., hardware resource reschedule),"},{"line_number":29,"context_line":"physically removing the node will not remove records in ironic, since ironic"},{"line_number":30,"context_line":"losts real control on these nodes, their records are hard to remove, and"},{"line_number":31,"context_line":"periodic tasks on these nodes is taking system resources."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_5868e01f","line":29,"updated":"2017-08-25 19:40:57.000000000","message":"Could you please elaborate on this?","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from ironic\u0027s management with no harm. For example, user wants to move a"},{"line_number":28,"context_line":"batch of nodes from one cloud to another (e.g., hardware resource reschedule),"},{"line_number":29,"context_line":"physically removing the node will not remove records in ironic, since ironic"},{"line_number":30,"context_line":"losts real control on these nodes, their records are hard to remove, and"},{"line_number":31,"context_line":"periodic tasks on these nodes is taking system resources."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_58510062","line":30,"updated":"2017-08-25 19:40:57.000000000","message":"Could you please provide some specific examples? I\u0027m guessing you mean things like ports, but depending on how it is accessed, it should be addressable, if not it is a bug.\n\nAlso, s/losts/loses/","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"batch of nodes from one cloud to another (e.g., hardware resource reschedule),"},{"line_number":29,"context_line":"physically removing the node will not remove records in ironic, since ironic"},{"line_number":30,"context_line":"losts real control on these nodes, their records are hard to remove, and"},{"line_number":31,"context_line":"periodic tasks on these nodes is taking system resources."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_98ed288d","line":31,"updated":"2017-08-25 19:40:57.000000000","message":"I\u0027m not sure this statement is correct once deleted, but I think you have a different context or way your approaching this. Answering the questions above would help clarify.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"named ``abandon``, two states named ``abandoning`` and ``abandon failed`` will"},{"line_number":39,"context_line":"be added to ironic state machine."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":42,"context_line":"``abandoning`` state and perform clean up process similar with ``deleted``,"},{"line_number":43,"context_line":"but cleaning will be bypassed to keep data untouched. The clean_up / tear_down"},{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b8b8e475","line":41,"updated":"2017-08-25 19:40:57.000000000","message":"``ACTIVE`` or a \"a node in active state\"","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"26e32ca5b2aed3d8d98933fa356d077ec3de58fc","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":42,"context_line":"``abandoning`` state and perform clean up process similar with ``deleted``,"},{"line_number":43,"context_line":"but cleaning will be bypassed to keep data untouched. The clean_up / tear_down"},{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_98a4fda7","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":64},"updated":"2017-08-26 13:49:44.000000000","message":"Isn\u0027t this essentially mean \u0027ironic node-delete\u0027 operation with automated cleaning disabled. \nHow about adding a new flag into the nodes to be abandoned. Some flag in the node.properties indicating no automated cleaning to be performed? This flag could be used by conductor to not-to perform automated cleaning.\nThen you could achieve the proposed behavior with existing \u0027ironic node-delete\u0027 functionality.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"When a user issues abandon operation to an active node, the node will go to"},{"line_number":42,"context_line":"``abandoning`` state and perform clean up process similar with ``deleted``,"},{"line_number":43,"context_line":"but cleaning will be bypassed to keep data untouched. The clean_up / tear_down"},{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b53a14c9","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":64},"in_reply_to":"7f287b81_98a4fda7","updated":"2017-08-28 08:25:35.000000000","message":"From the intention of this spec, that\u0027s a way worth considering and doable.\nI need to reconsider the origins of this feature.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"but cleaning will be bypassed to keep data untouched. The clean_up / tear_down"},{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"},{"line_number":48,"context_line":"allowed."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_d81df073","line":46,"updated":"2017-08-25 19:40:57.000000000","message":"I think this requires some community consensus. In my mind, you would send a node into abandoned, and ironic would be hands-off as a result, until \"deleted\". Basically, prevent scheduling, and lock the node out as problematic, but at the same time we need to ensure the following:\n1) Make this optional to allow an operator to bypass this transition, because a user may be well meaning, but we should deny it if the environment does not support this workflow wise.\n2) I suspect the community will require that ultimately the machine MUST be forced to undergo cleaning.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"but cleaning will be bypassed to keep data untouched. The clean_up / tear_down"},{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"},{"line_number":48,"context_line":"allowed."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b549f431","line":46,"in_reply_to":"7f287b81_d81df073","updated":"2017-08-28 08:25:35.000000000","message":"cleaning is user controllable, it can be configured to do nothing, it\u0027s the workflow we forced, not machine, i think.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"},{"line_number":48,"context_line":"allowed."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"User can safely remove the node in manageable state from ironic management by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_530e8132","line":47,"updated":"2017-08-25 19:40:57.000000000","message":"Logistical question, what would cause `abandon failed` state to be reached?  Seems like this would largely Abe a matter of a database record change, not an actual operation that could fail in terms of the state machine.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"interface from driver API will be used to support node clean up."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Node will move to ``manageable`` state when abandon succeed, or"},{"line_number":47,"context_line":"``abandon failed`` if failed. Abandon a node in state ``abandon failed`` is"},{"line_number":48,"context_line":"allowed."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"User can safely remove the node in manageable state from ironic management by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_afa1a396","line":47,"in_reply_to":"7f287b81_530e8132","updated":"2017-08-28 08:25:35.000000000","message":"clean up work (e.g, removing pxe config) is expected when abandoning a node, something like driver verification when adopting a node, it\u0027s possible to fail.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Alternatives"},{"line_number":55,"context_line":"------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Users can disable any clean step which will damage data, but this is not fine"},{"line_number":58,"context_line":"grained."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Users can put node into maintenance mode, then destroy the node, but resources"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_33c0957b","line":57,"updated":"2017-08-25 19:40:57.000000000","message":"We should likely define a user. Is this an user of \"ironic\" or a user of \"nova\" that is using the ironic virt driver?","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    {"},{"line_number":106,"context_line":"        \"target\": \"abandon\""},{"line_number":107,"context_line":"    }"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"API microversion will be bumped, CLI will updated to support abandon"},{"line_number":110,"context_line":"operation."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_9344e91c","line":107,"updated":"2017-08-25 19:40:57.000000000","message":"FWIW, I feel like this is not required unless you need additional arguments for the provision state verb.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Add a new command to support the abandon operation:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* ``openstack baremetal node abandon testnode``"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"RPC API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_1350f9d3","line":126,"updated":"2017-08-25 19:40:57.000000000","message":"S/testnode/\u003cnode\u003e/","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"26e32ca5b2aed3d8d98933fa356d077ec3de58fc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Nova driver impact"},{"line_number":142,"context_line":"------------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Ramdisk impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_58c33539","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":5},"updated":"2017-08-26 13:49:44.000000000","message":"What would be the impact on nova resources, if the node being abandoned was provisioned using \u0027nova boot\u0027?\nOr is the proposed feature would be applicable only for Standalone Ironic?","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Nova driver impact"},{"line_number":142,"context_line":"------------------"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"None."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Ramdisk impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b268eab8","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":5},"in_reply_to":"7f287b81_58c33539","updated":"2017-08-28 08:25:35.000000000","message":"I suppose it\u0027s standalone only, there is no counterpart of adopting a node from nova, so is abandon.\nbut abandon a node with instance_info should be forbidden i think.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Security impact"},{"line_number":154,"context_line":"---------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Leaving node without cleaning may have security issues. While users do have"},{"line_number":157,"context_line":"control on cleaning steps, it\u0027s not a direct impact from this feature."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_d37cb1ec","line":156,"updated":"2017-08-25 19:40:57.000000000","message":"S/do/do not/","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Security impact"},{"line_number":154,"context_line":"---------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Leaving node without cleaning may have security issues. While users do have"},{"line_number":157,"context_line":"control on cleaning steps, it\u0027s not a direct impact from this feature."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_d2e816e3","line":156,"in_reply_to":"7f287b81_d37cb1ec","updated":"2017-08-28 08:25:35.000000000","message":"clean steps can be specified by node update, automated clean can be enabled/disabled by configuration, am i missing something?","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":154,"context_line":"---------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Leaving node without cleaning may have security issues. While users do have"},{"line_number":157,"context_line":"control on cleaning steps, it\u0027s not a direct impact from this feature."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_b38365cc","line":157,"updated":"2017-08-25 19:40:57.000000000","message":"But it is a direct impact upon the commitment and expectations that operators have with cleaning being enabled.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"7894e8cad40413e695046f5969344e303f08e29f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"---------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Leaving node without cleaning may have security issues. While users do have"},{"line_number":157,"context_line":"control on cleaning steps, it\u0027s not a direct impact from this feature."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_87d8787f","line":157,"in_reply_to":"7f287b81_b38365cc","updated":"2017-09-02 08:39:32.000000000","message":"Done","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"270e91036e5cb4dea0c7c340b9716118f10c0eb4","unresolved":false,"context_lines":[{"line_number":232,"context_line":"Documentation Impact"},{"line_number":233,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Documents and state machine diagram will be updated accordingly."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_13723912","line":235,"updated":"2017-08-25 19:40:57.000000000","message":"FWIW, the diagram is updated from states.py.  Refreshing the diagram is a command defined in fox.ini","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"7894e8cad40413e695046f5969344e303f08e29f","unresolved":false,"context_lines":[{"line_number":232,"context_line":"Documentation Impact"},{"line_number":233,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Documents and state machine diagram will be updated accordingly."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_0cf4af5a","line":235,"in_reply_to":"7f287b81_13723912","updated":"2017-09-02 08:39:32.000000000","message":"Done","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"3a1168f68e3d1083a3b0a0fe01ae6bdf0c537e4a","unresolved":false,"context_lines":[{"line_number":232,"context_line":"Documentation Impact"},{"line_number":233,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"Documents and state machine diagram will be updated accordingly."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f287b81_32e4fae0","line":235,"in_reply_to":"7f287b81_13723912","updated":"2017-08-28 08:25:35.000000000","message":"Okay, i can omit the diagram, it\u0027s autogenerated from source.","commit_id":"113d060a7ccd6de3c77701101bf8f2455c8d5e8a"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6161a5664014b111a036ff027c4ce3d541181584","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_dcd2b234","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":40},"updated":"2017-09-05 06:25:11.000000000","message":"With this approach this feature would be available only for Standalone Ironic. User will not be able to pass this additional flag to delete node from Nova.\n\nOther alternative to accomoadate nova case, user can set a boolean node-property (say \u0027skip_automated_clean\u0027). If its \u0027True\u0027, no cleaning would be done upon node delete. Then user could move node to \u0027manageable\u0027 state using existing Ironic API call.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"24c8bfa54eb349583d21b4c2e58cd08c44ae6ef1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_12e6e145","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":40},"in_reply_to":"7f287b81_dcd2b234","updated":"2017-09-05 08:41:14.000000000","message":"Yeah, I\u0027m really in favor of the alternative approach, we can cover both cases (standalone/with nova) with least efforts, will consider, thanks!","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a2ef852109f88e116555cc23d5b4937f22676525","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_350ce4a3","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":40},"in_reply_to":"7f287b81_dcd2b234","updated":"2017-09-07 06:42:38.000000000","message":"node update and node provisioning based on different policies, although we only have an admin role (and a read only observer) at this time, I think is logically not to bind them together, in case we have more thorough policy control in the future.\nBy using property, we can only cover exactly one more case: abandon node deployed by nova untouched. For consistency with node adoption, I think it may be less confusing if we limit the scope of abandon as counterpart of adoption.\nAnyway, I add it as an implementation alternative, let\u0027s see if there is any other opinions about it.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6161a5664014b111a036ff027c4ce3d541181584","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User can safely remove the node in manageable state from ironic management by"},{"line_number":48,"context_line":"node delete if required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_1cb83a28","line":45,"range":{"start_line":44,"start_character":55,"end_line":45,"end_character":34},"updated":"2017-09-05 06:25:11.000000000","message":"May be for clarity you can state:-\n\u0027after node tear down, node is moved to state ``manageable`` instead of ``available``.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"24c8bfa54eb349583d21b4c2e58cd08c44ae6ef1","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User can safely remove the node in manageable state from ironic management by"},{"line_number":48,"context_line":"node delete if required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_f468e2ba","line":45,"range":{"start_line":44,"start_character":55,"end_line":45,"end_character":34},"in_reply_to":"7f287b81_174813ca","updated":"2017-09-05 08:41:14.000000000","message":"By moving node to manageable, we can prevent node being scheduled by nova, a redeployment will destroy node data, which is not we want in this context.\nThe major problem for a new verb is the same with no_clean, we don\u0027t have support from nova, the usage is limited to ironic standalone. Since abandon shares the same logic with deleted, i think we don\u0027t have to add a new verb to achieve the purpose.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a2ef852109f88e116555cc23d5b4937f22676525","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User can safely remove the node in manageable state from ironic management by"},{"line_number":48,"context_line":"node delete if required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_95c27833","line":45,"range":{"start_line":44,"start_character":55,"end_line":45,"end_character":34},"in_reply_to":"7f287b81_1cb83a28","updated":"2017-09-07 06:42:38.000000000","message":"Done","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"bf58fb6bc14afca2255c82092fa19c3a3c8c068e","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User can safely remove the node in manageable state from ironic management by"},{"line_number":48,"context_line":"node delete if required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_174813ca","line":45,"range":{"start_line":44,"start_character":55,"end_line":45,"end_character":34},"in_reply_to":"7f287b81_1cb83a28","updated":"2017-09-05 07:43:22.000000000","message":"It seems important to clarify the target state.\nIf it\u0027s \"available\", we would just skip cleaning. However, the node cannot be adopted directly from the state, but can be deployed so that the disk is overwritten with a new image.\nIf the node should get \"manageable\" where the node can be adopted again, I prefer adding a new verb like the previous revision.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"24c8bfa54eb349583d21b4c2e58cd08c44ae6ef1","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Add an optional boolean arg ``no_clean`` to"},{"line_number":43,"context_line":"/v1/nodes/{node_ident}/states/provision. When deleted is set as target with"},{"line_number":44,"context_line":"``no_clean`` set to True, node clean will be bypassed, after node tear down,"},{"line_number":45,"context_line":"node is moved to state manageable."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User can safely remove the node in manageable state from ironic management by"},{"line_number":48,"context_line":"node delete if required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_32455d16","line":45,"range":{"start_line":44,"start_character":55,"end_line":45,"end_character":34},"in_reply_to":"7f287b81_1cb83a28","updated":"2017-09-05 08:41:14.000000000","message":"Will do","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b05e9e911d629739e0305050a73bfbb37d631393","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Admins can put node into maintenance mode, then delete the node from"},{"line_number":58,"context_line":"ironic, but node has to be enrolled again when needed. Besides, resource used"},{"line_number":59,"context_line":"by node will not be cleaned up (for example, generated pxe configuration in"},{"line_number":60,"context_line":"case of netboot)."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_daf2afe3","line":60,"updated":"2017-09-05 09:58:19.000000000","message":"In case of netboot node can not be booted after delete configuration.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9e6277b6e3cade1d5ca29d390490fb6c505a4619","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Admins can put node into maintenance mode, then delete the node from"},{"line_number":58,"context_line":"ironic, but node has to be enrolled again when needed. Besides, resource used"},{"line_number":59,"context_line":"by node will not be cleaned up (for example, generated pxe configuration in"},{"line_number":60,"context_line":"case of netboot)."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_43a376b2","line":60,"in_reply_to":"7f287b81_daf2afe3","updated":"2017-09-05 12:17:15.000000000","message":"If we delete this node, it\u0027s out of ironic management, should we expect it still bootable?\nthe node can be enrolled when needed, and put to use by adopt.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6161a5664014b111a036ff027c4ce3d541181584","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Nova driver impact"},{"line_number":127,"context_line":"------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"None."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Ramdisk impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_dcd19259","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":4},"updated":"2017-09-05 06:25:11.000000000","message":"I think we need to explicitly mention that this feature is not available if node is deleted using Nova. It would be available in standalone Ironic only.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a2ef852109f88e116555cc23d5b4937f22676525","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Nova driver impact"},{"line_number":127,"context_line":"------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"None."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Ramdisk impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_d5a3609d","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":4},"in_reply_to":"7f287b81_dcd19259","updated":"2017-09-07 06:42:38.000000000","message":"Done","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b05e9e911d629739e0305050a73bfbb37d631393","unresolved":false,"context_lines":[{"line_number":139,"context_line":"---------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Leaving node without cleaning may have security issues, when node clean is"},{"line_number":142,"context_line":"turned on globally, admins should be informed that node clean can still be"},{"line_number":143,"context_line":"bypassed. This will be documented."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_ba1a4314","line":143,"range":{"start_line":142,"start_character":20,"end_line":143,"end_character":8},"updated":"2017-09-05 09:58:19.000000000","message":"What is the way of inform admins?","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a2ef852109f88e116555cc23d5b4937f22676525","unresolved":false,"context_lines":[{"line_number":139,"context_line":"---------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Leaving node without cleaning may have security issues, when node clean is"},{"line_number":142,"context_line":"turned on globally, admins should be informed that node clean can still be"},{"line_number":143,"context_line":"bypassed. This will be documented."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_15afa87d","line":143,"range":{"start_line":142,"start_character":20,"end_line":143,"end_character":8},"in_reply_to":"7f287b81_83715e47","updated":"2017-09-07 06:42:38.000000000","message":"Added a few words, please let me know if you have any questions, thanks","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9e6277b6e3cade1d5ca29d390490fb6c505a4619","unresolved":false,"context_lines":[{"line_number":139,"context_line":"---------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Leaving node without cleaning may have security issues, when node clean is"},{"line_number":142,"context_line":"turned on globally, admins should be informed that node clean can still be"},{"line_number":143,"context_line":"bypassed. This will be documented."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_83715e47","line":143,"range":{"start_line":142,"start_character":20,"end_line":143,"end_character":8},"in_reply_to":"7f287b81_ba1a4314","updated":"2017-09-05 12:17:15.000000000","message":"Document and release notes I suppose? Other ways are also acceptable.","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6161a5664014b111a036ff027c4ce3d541181584","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  machine."},{"line_number":194,"context_line":"* Implement code logic to bypass node clean when ``no_clean`` is specified in"},{"line_number":195,"context_line":"  requests."},{"line_number":196,"context_line":"* Update documents to cover related changes."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_9cf2ea05","line":196,"range":{"start_line":196,"start_character":0,"end_line":196,"end_character":44},"updated":"2017-09-05 06:25:11.000000000","message":"Aren\u0027t you going to update CLI for passing this option?","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a2ef852109f88e116555cc23d5b4937f22676525","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  machine."},{"line_number":194,"context_line":"* Implement code logic to bypass node clean when ``no_clean`` is specified in"},{"line_number":195,"context_line":"  requests."},{"line_number":196,"context_line":"* Update documents to cover related changes."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_d5cc806b","line":196,"range":{"start_line":196,"start_character":0,"end_line":196,"end_character":44},"in_reply_to":"7f287b81_9cf2ea05","updated":"2017-09-07 06:42:38.000000000","message":"Done","commit_id":"1e6e1c69812b0929f37df1d01a69a35ef9e727a2"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"0db606cb1add5f735420379c6db1643b5f249e26","unresolved":false,"context_lines":[{"line_number":125,"context_line":"RPC API impact"},{"line_number":126,"context_line":"--------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Driver API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_66b9a013","line":128,"updated":"2017-09-07 08:30:22.000000000","message":"We need to add an parameter to do_node_tear_down() to skip cleaning. RPC API version should be also bumped.","commit_id":"724806b1a6eb8757c6b55468dbc69ebe10b42e58"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9a71f1bf8f94e0063c04fb7a5153e24ebba403b4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"RPC API impact"},{"line_number":126,"context_line":"--------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Driver API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_0c855acf","line":128,"in_reply_to":"7f287b81_66b9a013","updated":"2017-09-07 12:03:51.000000000","message":"Good catch, thanks :)","commit_id":"724806b1a6eb8757c6b55468dbc69ebe10b42e58"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"492b7c5e2cd23eb24da9df24346c8a52fe7b9ee6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"with ``skip_clean`` set to True, node clean will be bypassed. After node tear"},{"line_number":45,"context_line":"down, node is moved to ``manageable`` state instead of ``available``."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note that, this operation is only available for nodes had been adopted to use."},{"line_number":48,"context_line":"For active nodes deployed by nova, ``deleted`` is prevented by ironic, for"},{"line_number":49,"context_line":"active instances are managed by nova."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_ac34e493","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":78},"updated":"2017-09-18 06:56:29.000000000","message":"Ironic do not maintain any details whether the node being adopted. It just moves the node from \u0027manageable\u0027 to \u0027active\u0027 once node  provision state is changed using \u0027adopt\u0027 verb.\nMay be you can indicate here that, this operation can be invoked on nodes that is being provisioned directly using Ironic API calls and are not provisioned through Nova.","commit_id":"a28e6190ba58b96a5f966ffd743846200b60c535"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"e79f369d76ccb7827b9083c8f18bea7b307b99c6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"with ``skip_clean`` set to True, node clean will be bypassed. After node tear"},{"line_number":45,"context_line":"down, node is moved to ``manageable`` state instead of ``available``."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Note that, this operation is only available for nodes had been adopted to use."},{"line_number":48,"context_line":"For active nodes deployed by nova, ``deleted`` is prevented by ironic, for"},{"line_number":49,"context_line":"active instances are managed by nova."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_47d061ca","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":78},"in_reply_to":"5f2577a7_ac34e493","updated":"2017-09-19 11:53:56.000000000","message":"node provisioned by nova will have an instance_uuid, ironic does not generate this info. we can tell the difference, although it may not an \u0027official\u0027 way.","commit_id":"a28e6190ba58b96a5f966ffd743846200b60c535"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"492b7c5e2cd23eb24da9df24346c8a52fe7b9ee6","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"A transition will be added to state machine:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* ``deleting`` -\u003e ``manageable``"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_eced4cb7","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":32},"updated":"2017-09-18 06:56:29.000000000","message":"Node can move into \u0027error\u0027 state if delete fails.\nWould we need to provide a path from \u0027error\u0027 to \u0027manageable\u0027?","commit_id":"a28e6190ba58b96a5f966ffd743846200b60c535"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"e79f369d76ccb7827b9083c8f18bea7b307b99c6","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"A transition will be added to state machine:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* ``deleting`` -\u003e ``manageable``"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_4af2a808","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":32},"in_reply_to":"5f2577a7_eced4cb7","updated":"2017-09-19 11:53:56.000000000","message":"I think it\u0027s not required, when a node is moved into error state, the operator has to move node to deleting state by deleted, skip_clean can be provided here.","commit_id":"a28e6190ba58b96a5f966ffd743846200b60c535"}]}
