)]}'
{"specs/approved/cleanhold-state.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://bugs.launchpad.net/ironic/+bug/1719925"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"During the discussions at the Queens Project Teams Gathering (PTG),"},{"line_number":14,"context_line":"as part of the disucssions regarding how to enable users to have"},{"line_number":15,"context_line":"a workflow that enables collection of available ``clean_steps``,"},{"line_number":16,"context_line":"we determined that we might need to add a step to start, but not"},{"line_number":17,"context_line":"proceed further with the cleaning workflow."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_2107071b","line":14,"updated":"2017-09-27 18:05:57.000000000","message":"nit: s/disucssions/discussions.","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"In order to provide an API user with the most up to date ``clean_steps``"},{"line_number":23,"context_line":"for any given baremetal node, an overall workflow and mechanism is needed,"},{"line_number":24,"context_line":"that works with-in the state machine\u0027s processes, to perform the collection"},{"line_number":25,"context_line":"of clean steps and take no further action."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_61861f69","line":22,"updated":"2017-09-27 18:05:57.000000000","message":"maybe \u0027In order to provide an API that returns the most up-to-date clean steps available...\u0027","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"In order to provide an API user with the most up to date ``clean_steps``"},{"line_number":23,"context_line":"for any given baremetal node, an overall workflow and mechanism is needed,"},{"line_number":24,"context_line":"that works with-in the state machine\u0027s processes, to perform the collection"},{"line_number":25,"context_line":"of clean steps and take no further action."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_818c7b7f","line":24,"updated":"2017-09-27 18:05:57.000000000","message":"nit s/with-in/within/","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"In order to provide an API user with the most up to date ``clean_steps``"},{"line_number":23,"context_line":"for any given baremetal node, an overall workflow and mechanism is needed,"},{"line_number":24,"context_line":"that works with-in the state machine\u0027s processes, to perform the collection"},{"line_number":25,"context_line":"of clean steps and take no further action."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_7a4ee738","line":24,"in_reply_to":"7f515b1d_818c7b7f","updated":"2018-04-16 22:11:53.000000000","message":"Done","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":24,"context_line":"that works with-in the state machine\u0027s processes, to perform the collection"},{"line_number":25,"context_line":"of clean steps and take no further action."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"},{"line_number":28,"context_line":"collect it while a node is in a cleaning process where the ``clean_steps``"},{"line_number":29,"context_line":"are being processed by the conductor. Presently drivers and hardware managers"},{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_01f64bfa","line":27,"updated":"2017-09-27 18:05:57.000000000","message":"nit s/A user would need to to/a user would need to/","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":24,"context_line":"that works with-in the state machine\u0027s processes, to perform the collection"},{"line_number":25,"context_line":"of clean steps and take no further action."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"},{"line_number":28,"context_line":"collect it while a node is in a cleaning process where the ``clean_steps``"},{"line_number":29,"context_line":"are being processed by the conductor. Presently drivers and hardware managers"},{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_1a61eba9","line":27,"in_reply_to":"7f515b1d_01f64bfa","updated":"2018-04-16 22:11:53.000000000","message":"Done","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"},{"line_number":28,"context_line":"collect it while a node is in a cleaning process where the ``clean_steps``"},{"line_number":29,"context_line":"are being processed by the conductor. Presently drivers and hardware managers"},{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"},{"line_number":31,"context_line":"generated by both the conductor and the running IPA agent, necessitating the"},{"line_number":32,"context_line":"baremetal node being powered on with IPA."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_c1db9379","line":30,"updated":"2017-09-27 18:05:57.000000000","message":"nit, misspelled documentation","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Presently, in order to collect the information, A user would need to to"},{"line_number":28,"context_line":"collect it while a node is in a cleaning process where the ``clean_steps``"},{"line_number":29,"context_line":"are being processed by the conductor. Presently drivers and hardware managers"},{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"},{"line_number":31,"context_line":"generated by both the conductor and the running IPA agent, necessitating the"},{"line_number":32,"context_line":"baremetal node being powered on with IPA."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_5a6a0381","line":30,"in_reply_to":"7f515b1d_c1db9379","updated":"2018-04-16 22:11:53.000000000","message":"Done","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"},{"line_number":31,"context_line":"generated by both the conductor and the running IPA agent, necessitating the"},{"line_number":32,"context_line":"baremetal node being powered on with IPA."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_c493a15a","line":33,"updated":"2017-09-27 18:05:57.000000000","message":"I thought that at the PTG, people thought i\u0027d be useful to be able to boot the node into the ramdisk, and keep it there so they could do... stuff... to the node. Is that another use case for this?","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":30,"context_line":"have some documenation regarding steps, but ``clean_steps`` information is"},{"line_number":31,"context_line":"generated by both the conductor and the running IPA agent, necessitating the"},{"line_number":32,"context_line":"baremetal node being powered on with IPA."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_fa10b702","line":33,"in_reply_to":"7f515b1d_c493a15a","updated":"2018-04-16 22:11:53.000000000","message":"I was not thinking of that use case. That would be rescue, and I think that is actually another route to use along the lines of \"boot to ramdisk\" in terms of deployment. The HPC users would actually really like that...","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2ae286c23f9029641cd236d06f75df88fc82d65c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"initial cleaning setup processes in terms of booting the deployment ramdisk,"},{"line_number":40,"context_line":"to facilitate obtaining the cleaning steps. From that point, the node will"},{"line_number":41,"context_line":"be left with its power state on and continuing to heartbeat. To the conductor"},{"line_number":42,"context_line":"this will be the ``clean hold`` provision state."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next heartbeat fromt he agent."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_fbce77b2","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":29},"updated":"2017-10-06 08:51:59.000000000","message":"Is this being proposed for manual cleaning alone? or both automated cleaning and manual cleaning?","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"2ae286c23f9029641cd236d06f75df88fc82d65c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"initial cleaning setup processes in terms of booting the deployment ramdisk,"},{"line_number":40,"context_line":"to facilitate obtaining the cleaning steps. From that point, the node will"},{"line_number":41,"context_line":"be left with its power state on and continuing to heartbeat. To the conductor"},{"line_number":42,"context_line":"this will be the ``clean hold`` provision state."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next heartbeat fromt he agent."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_db973b90","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":29},"updated":"2017-10-06 08:51:59.000000000","message":"should it be a single word as \"clean-hold\" or clean_hold\" or just \"cleanhold\"?","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":39,"context_line":"initial cleaning setup processes in terms of booting the deployment ramdisk,"},{"line_number":40,"context_line":"to facilitate obtaining the cleaning steps. From that point, the node will"},{"line_number":41,"context_line":"be left with its power state on and continuing to heartbeat. To the conductor"},{"line_number":42,"context_line":"this will be the ``clean hold`` provision state."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next heartbeat fromt he agent."}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_fad2f7d0","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":29},"in_reply_to":"7f515b1d_fbce77b2","updated":"2018-04-16 22:11:53.000000000","message":"I was thinking \"cleanhold\" as a single descriptive string. I was thinking both, updating the spec.","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e686d553f620e62eb87a3b42f68b09d790be504a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"be left with its power state on and continuing to heartbeat. To the conductor"},{"line_number":42,"context_line":"this will be the ``clean hold`` provision state."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next heartbeat fromt he agent."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_bd650cb7","line":44,"range":{"start_line":44,"start_character":29,"end_line":44,"end_character":34},"updated":"2017-10-02 14:52:13.000000000","message":"s/ \u0027request to clean the node\u0027 / \u0027request to clean the node using ``clean`` verb\u0027 /","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":42,"context_line":"this will be the ``clean hold`` provision state."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next heartbeat fromt he agent."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_01cf6bb0","line":45,"updated":"2017-09-27 18:05:57.000000000","message":"nit s/fromt he/from the/","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3d65f90e8101f8c452ce0e15c96180e487c9e967","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Ultimately, there are few alternatives short of building actions that exist"},{"line_number":51,"context_line":"outside of the state machine that impact the state of a node, which would"},{"line_number":52,"context_line":"serve the purpose of collecting the ``clean_steps`` from the node as it"},{"line_number":53,"context_line":"is a union of what the conductor and the running ramdisk has in memory."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_a4754534","line":50,"updated":"2017-09-27 18:05:57.000000000","message":"Have you thought about having a \u0027hold\u0027 clean step? It might provide more flexibility, the user could specify this clean step after another clean step, so they could poke around or whatever.","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Ultimately, there are few alternatives short of building actions that exist"},{"line_number":51,"context_line":"outside of the state machine that impact the state of a node, which would"},{"line_number":52,"context_line":"serve the purpose of collecting the ``clean_steps`` from the node as it"},{"line_number":53,"context_line":"is a union of what the conductor and the running ramdisk has in memory."}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_7aa58746","line":50,"in_reply_to":"7f515b1d_a4754534","updated":"2018-04-16 22:11:53.000000000","message":"That is a really good idea, and in actuality I feel like that might be a required element to make this work, because we would be effectively telling the node to just noop and hold in place. Hmmmmm!","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e686d553f620e62eb87a3b42f68b09d790be504a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"state."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"From the ``clean hold`` state, a node should be able to be moved to"},{"line_number":75,"context_line":"``cleaning``, ``manageable``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"REST API impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_dd8c4837","line":75,"range":{"start_line":75,"start_character":27,"end_line":75,"end_character":29},"updated":"2017-10-02 14:52:13.000000000","message":"I think we should we allow it to move to \u0027available\u0027 state as well.\nIn case of \u0027automated cleaning\u0027, the cleaning would get triggered when node moves from \u0027manageable\u0027 to \u0027available\u0027 state. User might have moved into \u0027clean hold state to collect the cleaning steps information and might not want  to initiate \u0027automated cleaning\u0027.\nWDYT?","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e686d553f620e62eb87a3b42f68b09d790be504a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"state."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"From the ``clean hold`` state, a node should be able to be moved to"},{"line_number":75,"context_line":"``cleaning``, ``manageable``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"REST API impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f515b1d_1d01c0af","line":75,"range":{"start_line":75,"start_character":12,"end_line":75,"end_character":14},"updated":"2017-10-02 14:52:13.000000000","message":"s/ , / \u0027or\u0027 /","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":72,"context_line":"state."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"From the ``clean hold`` state, a node should be able to be moved to"},{"line_number":75,"context_line":"``cleaning``, ``manageable``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"REST API impact"},{"line_number":78,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_9ab2db93","line":75,"range":{"start_line":75,"start_character":27,"end_line":75,"end_character":29},"in_reply_to":"7f515b1d_dd8c4837","updated":"2018-04-16 22:11:53.000000000","message":"Makes sense, it becomes a logical shortcut.","commit_id":"9d967412a2bd7a8d21d748f7480c2049a7f72233"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5c53d479b9b44a11c32a257a1bf4eaf0fc24a6b9","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next agent heartbeat. The result of"},{"line_number":46,"context_line":"this is that it would be able to be used with automated cleaning, or manual"},{"line_number":47,"context_line":"cleaning."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"An additional cleaning step would be added that allows for a user-definable"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_264c3175","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":65},"updated":"2018-04-07 03:03:01.000000000","message":"Since request needs to made to move from \u0027clean hold\u0027 to \u0027cleaning\u0027, in case of automated cleaning, would the conductor move the state to \u0027cleaning\u0027 upon receiving the first heartbeat?\nSo the transition during \u0027manage\u0027 to \u0027available\u0027 through \u0027provide\u0027 verb would be:-\nMANAGEABLE-\u003e\u0027CLEANHOLD\u0027-\u003e\u0027CLEANING\u0027-\u003e\u0027AVAILABLE\u0027","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":45,"context_line":"immediately starting cleaning upon the next agent heartbeat. The result of"},{"line_number":46,"context_line":"this is that it would be able to be used with automated cleaning, or manual"},{"line_number":47,"context_line":"cleaning."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"An additional cleaning step would be added that allows for a user-definable"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f6a8fd7_16893674","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":65},"in_reply_to":"bf659307_264c3175","updated":"2018-04-16 22:11:53.000000000","message":"No, the agent would continue to heartbeat and thus no action would occur.\n\nI think it would be MANAGEABLE-\u003e cleanhold verb -\u003e \u0027CLEANHOLD\u0027 -\u003e provide verb -\u003e \u0027CLEANING\u0027 -\u003e \u0027AVAILABLE\u0027\n\nManual cleaning would be\n\nI think it would be MANAGEABLE-\u003e cleanhold verb-\u003e\u0027CLEANHOLD\u0027 -\u003e clean verb -\u003e \u0027CLEANING\u0027 -\u003e \u0027MANAGEABLE\u0027","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5c53d479b9b44a11c32a257a1bf4eaf0fc24a6b9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"--------------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":75,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":76,"context_line":"the ``cleanhold`` target provision state being requested via the API."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The ``clean hold`` provision state will be a stable state, which a node"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e6a399ff","line":75,"range":{"start_line":75,"start_character":20,"end_line":75,"end_character":36},"updated":"2018-04-07 03:03:01.000000000","message":"Will someone be able to move the node from \u0027clean failed\u0027 to \n`clean hold`? This may be useful in the manual cleaning cases wherein user can re-attempt a failed clean step by modifying the input params for the clean step and invoking \u0027clean\u0027 verb.\nCLEANHOLD -\u003e CLEANING -\u003e CLEANFAIL -\u003e CLEANHOLD -\u003e CLEANING\n\nThis is similar to the cleaning success case, wherein user can perform more cleaning by moving node back into cleaning invoking \u0027clean\u0027 verb.\nCLEANHOLD -\u003e CLEANING -\u003e CLEANHOLD -\u003e CLEANING","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":72,"context_line":"--------------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":75,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":76,"context_line":"the ``cleanhold`` target provision state being requested via the API."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The ``clean hold`` provision state will be a stable state, which a node"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f6a8fd7_96d9c684","line":75,"range":{"start_line":75,"start_character":20,"end_line":75,"end_character":36},"in_reply_to":"bf659307_e6a399ff","updated":"2018-04-16 22:11:53.000000000","message":"I don\u0027t think so, I think they would only be able to go back to manageable or to retry cleaning. I\u0027m not sure why someone with the information on cleaning would want to re-stage cleaning... they could always go back to manageable state.","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5c53d479b9b44a11c32a257a1bf4eaf0fc24a6b9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"state."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"From the ``clean hold`` state, a node should be able to be moved to"},{"line_number":83,"context_line":"``cleaning``, ``manageable``, or ``available`` via the ``manage``"},{"line_number":84,"context_line":"api verb."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_a63a81ca","line":83,"range":{"start_line":83,"start_character":47,"end_line":83,"end_character":65},"updated":"2018-04-07 03:03:01.000000000","message":"s/ \"via ``manage``\" / \"using ``clean``, ``manage``, or ``provide`` respectively.\"","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":80,"context_line":"state."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"From the ``clean hold`` state, a node should be able to be moved to"},{"line_number":83,"context_line":"``cleaning``, ``manageable``, or ``available`` via the ``manage``"},{"line_number":84,"context_line":"api verb."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f6a8fd7_f6d12259","line":83,"range":{"start_line":83,"start_character":47,"end_line":83,"end_character":65},"in_reply_to":"bf659307_a63a81ca","updated":"2018-04-16 22:11:53.000000000","message":"great catch.","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5c53d479b9b44a11c32a257a1bf4eaf0fc24a6b9","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The new node ``clean hold`` provision state will be exposed to all API clients,"},{"line_number":223,"context_line":"however only newer clients will be able to invoke the new state verb. This is"},{"line_number":224,"context_line":"purely an additive change, unlike the change of ``None`` to ``available``"},{"line_number":225,"context_line":"which had meaning, and is thus guarded by a microversion.."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_e67cf973","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":79},"updated":"2018-04-07 03:03:01.000000000","message":"Will the newer clients be able to perform cleaning as they do today and also perform it via \u0027clean hold\u0027?\n1. MANAGEABLE -\u003e clean -\u003e CLEANING -\u003e manage -\u003e MANAGEABLE\n2. MANGEABLE -\u003e cleanhold -\u003e CLEANHOLD -\u003e clean -\u003e CLEANING -\u003e \nCLEANHOLD -\u003e manage -\u003e MANAGEABLE","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7b50e45cb32cd0d7994dd8c81ffc80c3e8d3f565","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The new node ``clean hold`` provision state will be exposed to all API clients,"},{"line_number":223,"context_line":"however only newer clients will be able to invoke the new state verb. This is"},{"line_number":224,"context_line":"purely an additive change, unlike the change of ``None`` to ``available``"},{"line_number":225,"context_line":"which had meaning, and is thus guarded by a microversion.."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f6a8fd7_9647861e","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":79},"in_reply_to":"bf659307_e67cf973","updated":"2018-04-16 22:11:53.000000000","message":"Yes, they will be able to.","commit_id":"dffc830d0158a9ea497d9d39a7e578b83c4511b6"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"f22bcd620edc7a51259a11cb24018a7acc4a3c0c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"multiple times in order to provide contextual information in order to properly"},{"line_number":30,"context_line":"complete their desired cleaning steps."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To facilitate collection of the available cleaning step information, the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_ed444d75","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":8},"updated":"2018-06-25 09:35:23.000000000","message":"Sorry, i may not get because i\u0027m still new to that. How will the users collect information when they are on this cleanhold state? The benefit here, is that users will have more time to collect that info, while the cleanup step was just being executed for a short time?","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e76fba8dffec5c0350d94d8a5f8f2b7111407f7b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"multiple times in order to provide contextual information in order to properly"},{"line_number":30,"context_line":"complete their desired cleaning steps."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To facilitate collection of the available cleaning step information, the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_cf8ffc2b","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":8},"in_reply_to":"5f7c97a3_ed444d75","updated":"2018-06-25 16:44:29.000000000","message":"So the idea is that the user will just be able to retrieve the node object (tl;dr openstack baremetal node show)\n\nThe idea is that entering the state will position IPA into a state where it is heartbeating and that the clean_steps data has been updated... but not executed upon. Moving to to a manual cleaning process, or even provide would allow cleaning to proceed upon the next heartbeat.\n\nI guess in reality, it would be driver_internal_info[\u0027clean_steps\u0027]... I think (it has been well over a year since this was discussed and I\u0027ve forgotten how the cleaning code works exactly/). The idea of the spec is create the first step where we can then provide the user an easy way to get to the data that we would end up generating and being able to collect upon IPA startup. The prior idea was to basically boot IPA, collect the data, shutdown IPA except the idea was to do it outside of the state machine, which has some drawbacks. So hence the idea here, a state that we just send a node into to being cleaning or wait to be exited.\n\nIn a sense, with the clean step, this also allows a user to have load testing/benchmarking clean steps.","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"f22bcd620edc7a51259a11cb24018a7acc4a3c0c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To facilitate collection of the available cleaning step information, the"},{"line_number":36,"context_line":"``cleanhold`` provision state would be utilized trigger the initial cleaning"},{"line_number":37,"context_line":"setup processes in terms of booting the deployment ramdisk, to facilitate"},{"line_number":38,"context_line":"obtaining the cleaning steps."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_2d66c52a","line":36,"range":{"start_line":36,"start_character":39,"end_line":36,"end_character":47},"updated":"2018-06-25 09:35:23.000000000","message":"to trigger","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bc3985abd1af82346d012403941da7c9cc296813","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"An additional cleaning step would be added that allows for a user-definable"},{"line_number":50,"context_line":"transition to the ``cleanhold`` state. This enables a user to supply a set"},{"line_number":51,"context_line":"of steps to be executed and await for the results. In essence this could"},{"line_number":52,"context_line":"facilitate the ability for operators to burn-in hardware using the manual"},{"line_number":53,"context_line":"cleaning framework."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_9292e857","line":51,"range":{"start_line":51,"start_character":28,"end_line":51,"end_character":37},"updated":"2018-06-20 10:58:53.000000000","message":"nit: wait for? Or just drop the \u0027for\u0027. ie. \u0027await the results\u0027?","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bc3985abd1af82346d012403941da7c9cc296813","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":75,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":76,"context_line":"the ``cleanhold`` target provision state being requested via the API."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The ``clean hold`` provision state will be a stable state, which a node"},{"line_number":79,"context_line":"will reside in until requested to be cleaned or moved to another provision"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_12db3821","line":76,"range":{"start_line":76,"start_character":41,"end_line":76,"end_character":46},"updated":"2018-06-20 10:58:53.000000000","message":"nit: s/being/is/","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bc3985abd1af82346d012403941da7c9cc296813","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":75,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":76,"context_line":"the ``cleanhold`` target provision state being requested via the API."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The ``clean hold`` provision state will be a stable state, which a node"},{"line_number":79,"context_line":"will reside in until requested to be cleaned or moved to another provision"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_52c3f038","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":17},"updated":"2018-06-20 10:58:53.000000000","message":"nit: s/the ``cleanhold``/when the ``cleanhold``/","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bc3985abd1af82346d012403941da7c9cc296813","unresolved":false,"context_lines":[{"line_number":104,"context_line":"None, as this CLI is anticipated to be deprecated prior to this feature"},{"line_number":105,"context_line":"landing."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\"openstack baremetal\" CLI"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The OSC command line will require additional code to handle the new state"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_f2147c4f","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":25},"updated":"2018-06-20 10:58:53.000000000","message":"Would it be user friendly to add some command to get just the \u0027agent_cached_clean_steps\u0027 part of the driver_info in a readable format?","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4d053c501965f17f6d4ba2626c7c0be26ef8bac6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"None, as this CLI is anticipated to be deprecated prior to this feature"},{"line_number":105,"context_line":"landing."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\"openstack baremetal\" CLI"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The OSC command line will require additional code to handle the new state"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_01ddf73f","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":25},"in_reply_to":"5f7c97a3_f2147c4f","updated":"2018-06-22 05:15:38.000000000","message":"I think that is beyond the state machine chnages that I\u0027m proposing. Luckilly with the state machine change getting that data becomes super easy an a non-spec worthy RFE. ;)","commit_id":"f3a17447c5ce009aaf415e93eb4629e65a7a8fc4"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"32071640a2229975188eb628be30f7bc7c193b45","unresolved":false,"context_lines":[{"line_number":76,"context_line":"State Machine Impact"},{"line_number":77,"context_line":"--------------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":80,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":81,"context_line":"when the ``cleanhold`` target provision state is requested via the API."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_9c683288","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":8},"updated":"2018-06-27 14:17:23.000000000","message":"Ok, just the last question. I guess this will just work as a manual step right? The automated clean step will just go to clean without passing for that state first?","commit_id":"919b6458a4c184fd34e758276acdd23f19eb179a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"743e484e5a5e622219d402fe14ca774cd05c39aa","unresolved":false,"context_lines":[{"line_number":76,"context_line":"State Machine Impact"},{"line_number":77,"context_line":"--------------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":80,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":81,"context_line":"when the ``cleanhold`` target provision state is requested via the API."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_0bb56432","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":8},"in_reply_to":"5f7c97a3_9c683288","updated":"2018-07-01 17:22:30.000000000","message":"Correct.","commit_id":"919b6458a4c184fd34e758276acdd23f19eb179a"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"32071640a2229975188eb628be30f7bc7c193b45","unresolved":false,"context_lines":[{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"A new ``target`` verb will be added to `\u003cnode\u003e/provision/state`"},{"line_number":95,"context_line":"that can be posted to by an API client, utilizing the same means"},{"line_number":96,"context_line":"and mechanisms as all other state machine actions."},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_dcf78ad3","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"updated":"2018-06-27 14:17:23.000000000","message":"why \u0027this \u0027target\u0027 verb, can you clarify? should not be \u0027cleanhold\u0027 ?","commit_id":"919b6458a4c184fd34e758276acdd23f19eb179a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"743e484e5a5e622219d402fe14ca774cd05c39aa","unresolved":false,"context_lines":[{"line_number":91,"context_line":"REST API impact"},{"line_number":92,"context_line":"---------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"A new ``target`` verb will be added to `\u003cnode\u003e/provision/state`"},{"line_number":95,"context_line":"that can be posted to by an API client, utilizing the same means"},{"line_number":96,"context_line":"and mechanisms as all other state machine actions."},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_cb80cc4c","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"in_reply_to":"5f7c97a3_dcf78ad3","updated":"2018-07-01 17:22:30.000000000","message":"Sorry, target is the field name that it is posted in the message body.  It should be cleahold","commit_id":"919b6458a4c184fd34e758276acdd23f19eb179a"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"32071640a2229975188eb628be30f7bc7c193b45","unresolved":false,"context_lines":[{"line_number":205,"context_line":"* Add logic to trigger initial cleaning start."},{"line_number":206,"context_line":"* Add logic to abort and return the node to ``clean hold`` once the ramdisk"},{"line_number":207,"context_line":"  is running, and the conductor has the ``clean_steps`` information."},{"line_number":208,"context_line":"* Ensure that the any actions taken in the process of beginning cleaning"},{"line_number":209,"context_line":"  account for being able to skip interruptive steps if a node is already"},{"line_number":210,"context_line":"  in the ``clean hold`` state, such as power state changes."},{"line_number":211,"context_line":"* Update documentation to cover the workflow addition of ``clean hold``."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_9517a447","line":208,"range":{"start_line":208,"start_character":9,"end_line":208,"end_character":13},"updated":"2018-06-27 14:17:23.000000000","message":"nit, this sentence is quite dense and it\u0027s hard to understand (i am non native english speaker), maybe you can split in smaller sentences","commit_id":"919b6458a4c184fd34e758276acdd23f19eb179a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To facilitate collection of the available cleaning step information, the"},{"line_number":36,"context_line":"``cleanhold`` provision state would be to trigger the initial cleaning"},{"line_number":37,"context_line":"setup processes in terms of booting the deployment ramdisk, to facilitate"},{"line_number":38,"context_line":"obtaining the cleaning steps. As part of this process, the node object will"},{"line_number":39,"context_line":"be updated with available ``clean_steps`` information which can be retrieved"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_c2000e06","line":36,"updated":"2018-07-20 16:29:47.000000000","message":"nit: \"clean hold\"? we seem to allow spaces in states","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"From that point, the node will be left with node power state in ``power on``"},{"line_number":46,"context_line":"allowing the agent to continue to heartbeat. To the conductor this will be"},{"line_number":47,"context_line":"the ``clean hold`` provision state."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"A provision state request to clean the node will result in the node"},{"line_number":50,"context_line":"immediately starting cleaning upon the next agent heartbeat. The result of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_e2fbca12","line":47,"updated":"2018-07-20 16:29:47.000000000","message":"okay, so \"clean hold\"","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":52,"context_line":"cleaning."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"An additional cleaning step would be added that allows for a user-definable"},{"line_number":55,"context_line":"transition to the ``cleanhold`` state. This enables a user to supply a set"},{"line_number":56,"context_line":"of steps to be executed and await the results. In essence this could"},{"line_number":57,"context_line":"facilitate the ability for operators to burn-in hardware using the manual"},{"line_number":58,"context_line":"cleaning framework."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_85fc600c","line":55,"updated":"2018-07-20 16:29:47.000000000","message":"or not? :) if you create another patchset, please use one variant (preferably, \"clean hold\")","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Addition of a ``clean hold`` provision state that relies upon the existing"},{"line_number":80,"context_line":"``clean wait``, and ``clean failed``. This provision state will be the result"},{"line_number":81,"context_line":"when the ``cleanhold`` target provision state is requested via the API."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The ``clean hold`` provision state will be a stable state, which a node"},{"line_number":84,"context_line":"will reside in until requested to be cleaned or moved to another provision"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_a5ff1cfe","line":81,"updated":"2018-07-20 16:29:47.000000000","message":"Okay, so the provisioning action is called \"cleanhold\", and the state is called \"clean hold\". May be confusing.. I wonder if we should just use \"clean\" with empty body (though it will complicate the state machine)","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The OSC command line will require additional code to handle the new state"},{"line_number":116,"context_line":"as states are part of the command line for the state. Pre-existing patterns"},{"line_number":117,"context_line":"will be adhered to, the command shall be ``cleanhold``. No additional"},{"line_number":118,"context_line":"enhancement of the baremetal CLI is anticipated as part of this work."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"RPC API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_4502c809","line":117,"updated":"2018-07-20 16:29:47.000000000","message":"eeeek. I don\u0027t really like using \"cleanhold\" here.. I\u0027m trying to image what \"baremetal node cleanhold\" would mean to a person not familiar with this spec. It\u0027s confusing enough that we call building RAID \"cleaning\". I\u0027d go as far as calling it \"baremetal node boot ramdisk\" even though it won\u0027t be consistent with the state name. Or should we call the state \"boot ramdisk\" as well? May conflict with your ramdisk deploy interface work, of course..","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bf670ddce1b87081e6f28c92b66537d94b5b0e4c","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The OSC command line will require additional code to handle the new state"},{"line_number":116,"context_line":"as states are part of the command line for the state. Pre-existing patterns"},{"line_number":117,"context_line":"will be adhered to, the command shall be ``cleanhold``. No additional"},{"line_number":118,"context_line":"enhancement of the baremetal CLI is anticipated as part of this work."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"RPC API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_33e036cb","line":117,"in_reply_to":"5f7c97a3_4502c809","updated":"2018-07-20 18:37:25.000000000","message":"+1 for thinking about the end-user.\n\nSo cleaning seam to be a very overloaded term in Ironic. (I was\u0027nt aware that building RAID was a clean step ...)\n\nAre\u0027nt all these things: claning, deploying, building raid etc . All done by the Ironic Python Agent? \n\nIronic Python Agent (also often called IPA or just agent) [Ref: https://docs.openstack.org/ironic/latest/admin/drivers/ipa.html]\n\nmaby \"boot agent\" ? or \"boot ipa\"?\n\nThe state could be \"agent ready\"? As it is in a state ready to recieve commands/instructions?\n\n\n\nRant from someone whow does not know the history::\n\nIf these \"cleaning\" steps are actually used for things not really cleaning; like RAID configuration; it would make sense to change cleaning to someting more generic. Ideas: action, task, job, workflow, or ? (I saw benchmarking/burn-in and execution of hardware diagnostics mentioned somewhere as well.)","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":134,"context_line":"the node ``clean_steps`` if the target provision state is ``clean hold``."},{"line_number":135,"context_line":"Aside from that, no other changes to the HeartbeatMixin and AgentDeployMixin"},{"line_number":136,"context_line":"classes are expected as the way they are presently designed, they will ignore"},{"line_number":137,"context_line":"the heartbeats of a node in the ``clean hold`` state."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Nova driver impact"},{"line_number":140,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_6505840e","line":137,"updated":"2018-07-20 16:29:47.000000000","message":"One thing we should consider is setting the \"PXE\" boot device persistently. As this is a stable state, a user can use \u0027openstack baremetal node reboot\u0027 on the node. We have to make sure the node will return into the ramdisk, not boot into e.g. hard drive.","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a54c06d14dc24b559f7f3c47d3e346bd3b382708","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"This feature can largely be tested by using the ``fake`` driver for API and"},{"line_number":221,"context_line":"state machine interactions, however if a tempest cleaning scenario is added,"},{"line_number":222,"context_line":"this would be an easy addition to such a scenario."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":225,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_0510504e","line":222,"updated":"2018-07-20 16:29:47.000000000","message":"We have a tempest scenario for manual cleaning now IIRC","commit_id":"aa8b199e6f875c5383b9998f4f5ae335141ff9ee"}]}
