)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"9f118db7811e00cf34d8cd7c50cfdafe819a1424","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Add wait support for ironic node [de]activate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Original shade support for ironic node activateion and deactivation"},{"line_number":10,"context_line":"was without support for a wait option being passed into the helper"},{"line_number":11,"context_line":"methods."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a740942_28bdfbb6","line":9,"updated":"2015-12-07 22:38:07.000000000","message":"s/activateion/activation/","commit_id":"4c6f0b0e486afc3df66f969e9efa17b5f66adc26"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"467e9502bbe6627f3109b7d1459e81bd6c392b4e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Add wait support for ironic node [de]activate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Original shade support for ironic node activateion and deactivation"},{"line_number":10,"context_line":"was without support for a wait option being passed into the helper"},{"line_number":11,"context_line":"methods."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a740942_d7ce522c","line":9,"in_reply_to":"7a740942_28bdfbb6","updated":"2015-12-08 01:16:33.000000000","message":"Done","commit_id":"4c6f0b0e486afc3df66f969e9efa17b5f66adc26"}],"shade/operatorcloud.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"25adada3ee2dd414304368404c520e6fb490cfe2","unresolved":false,"context_lines":[{"line_number":576,"context_line":"                    if state in machine[\u0027provision_state\u0027]:"},{"line_number":577,"context_line":"                        break"},{"line_number":578,"context_line":"                    if (\"available\" in machine[\u0027provision_state\u0027] and"},{"line_number":579,"context_line":"                            state in [\"provide\", \"deleted\"]):"},{"line_number":580,"context_line":"                        break"},{"line_number":581,"context_line":"            else:"},{"line_number":582,"context_line":"                machine \u003d self.get_machine(name_or_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_896b9184","line":579,"updated":"2015-12-08 22:37:38.000000000","message":"It looks like this is not going to wait for the node to wait for being in active or deleted depending on what\u0027s passed in below. Instead, it\u0027s matching on provide or deleted.","commit_id":"809a9f9fb6c844be33855bc6ecea2c0948235eb1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e66004671d176bc0c1d2cb3fade667e3c1f1881e","unresolved":false,"context_lines":[{"line_number":576,"context_line":"                    if state in machine[\u0027provision_state\u0027]:"},{"line_number":577,"context_line":"                        break"},{"line_number":578,"context_line":"                    if (\"available\" in machine[\u0027provision_state\u0027] and"},{"line_number":579,"context_line":"                            state in [\"provide\", \"deleted\"]):"},{"line_number":580,"context_line":"                        break"},{"line_number":581,"context_line":"            else:"},{"line_number":582,"context_line":"                machine \u003d self.get_machine(name_or_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_d44290ad","line":579,"in_reply_to":"7a740942_896b9184","updated":"2015-12-08 23:13:42.000000000","message":"If active is requested, 576 causes it to break out of the wait, since the requested verb to the API is the same as the end state name for the transition.  579 should cause the wait to break upon the completion of deletion since the end state of deletion is \"available\".  The check for if the request is \"deleted\" or \"provide\" is to ensure that we have reached the desired end states for the two state transitions that occur.\n\nSo I think it works just fine, unless I\u0027m missing something from your statement.  :)\n\nPerhaps an inline note on ironic\u0027s state machine is necessary :\\","commit_id":"809a9f9fb6c844be33855bc6ecea2c0948235eb1"}],"shade/tests/unit/test_shade_operator.py":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"9f118db7811e00cf34d8cd7c50cfdafe819a1424","unresolved":false,"context_lines":[{"line_number":957,"context_line":"        return_value \u003d self.cloud.activate_node("},{"line_number":958,"context_line":"            node_id,"},{"line_number":959,"context_line":"            configdrive\u003d\u0027http://127.0.0.1/file.iso\u0027,"},{"line_number":960,"context_line":"            wait\u003dFalse)"},{"line_number":961,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":962,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":963,"context_line":"            node_uuid\u003d\u0027node04\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_e8a13347","line":960,"updated":"2015-12-07 22:38:07.000000000","message":"should wait be true here?","commit_id":"4c6f0b0e486afc3df66f969e9efa17b5f66adc26"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"467e9502bbe6627f3109b7d1459e81bd6c392b4e","unresolved":false,"context_lines":[{"line_number":957,"context_line":"        return_value \u003d self.cloud.activate_node("},{"line_number":958,"context_line":"            node_id,"},{"line_number":959,"context_line":"            configdrive\u003d\u0027http://127.0.0.1/file.iso\u0027,"},{"line_number":960,"context_line":"            wait\u003dFalse)"},{"line_number":961,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":962,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":963,"context_line":"            node_uuid\u003d\u0027node04\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_976f6a2a","line":960,"in_reply_to":"7a740942_e8a13347","updated":"2015-12-08 01:16:33.000000000","message":"Doh, it should be True.  Good catch, thank you!","commit_id":"4c6f0b0e486afc3df66f969e9efa17b5f66adc26"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"db17a92658aa888ea42058923883b8d028f7566a","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        return_value \u003d self.cloud.activate_node("},{"line_number":933,"context_line":"            node_id,"},{"line_number":934,"context_line":"            configdrive\u003d\u0027http://127.0.0.1/file.iso\u0027,"},{"line_number":935,"context_line":"            wait\u003dFalse)"},{"line_number":936,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":937,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":938,"context_line":"            node_uuid\u003d\u0027node02\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_9a7bd9bd","line":935,"updated":"2015-12-08 20:59:55.000000000","message":"not sure about wait\u003dfalse here. I think it may be better to leave it off 1) it is the default 2) better backwards compatibility testing with it.\n\nwe could assert wait is not called to ensure the code is doing what it should and not waiting.","commit_id":"c415860525d1a3311974cd874e1f3114e28ecaea"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"da70838a220873b858f414b9c8383c4a552e913e","unresolved":false,"context_lines":[{"line_number":959,"context_line":"            node_id,"},{"line_number":960,"context_line":"            configdrive\u003d\u0027http://127.0.0.1/file.iso\u0027,"},{"line_number":961,"context_line":"            wait\u003dTrue,"},{"line_number":962,"context_line":"            timeout\u003d2)"},{"line_number":963,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":964,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":965,"context_line":"            node_uuid\u003d\u0027node04\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_a58f0922","line":962,"updated":"2015-12-11 00:14:19.000000000","message":"There is no verification that sending wait/timeout actually does any waiting here. Perhaps verifying that node.get() is called twice, as you expect, would be sufficient?","commit_id":"b3599b399c61ba164fff0587fa8c423615dd570b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bc5a4fc33d9f31e0e5d853ed61621fce2802976f","unresolved":false,"context_lines":[{"line_number":959,"context_line":"            node_id,"},{"line_number":960,"context_line":"            configdrive\u003d\u0027http://127.0.0.1/file.iso\u0027,"},{"line_number":961,"context_line":"            wait\u003dTrue,"},{"line_number":962,"context_line":"            timeout\u003d2)"},{"line_number":963,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":964,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":965,"context_line":"            node_uuid\u003d\u0027node04\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_3b5560c1","line":962,"in_reply_to":"7a740942_a58f0922","updated":"2015-12-11 13:48:31.000000000","message":"Good catch, fixing.  I think checking the get count is sufficient since the behavior we expect will be represented in the test, so if anything should change with node.get, then we that test will fail, which is kind of what we want to have happen.","commit_id":"b3599b399c61ba164fff0587fa8c423615dd570b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"da70838a220873b858f414b9c8383c4a552e913e","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        mock_client.node.set_provision_state.return_value \u003d None"},{"line_number":997,"context_line":"        node_id \u003d \u0027node03\u0027"},{"line_number":998,"context_line":"        return_value \u003d self.cloud.deactivate_node("},{"line_number":999,"context_line":"            node_id, wait\u003dTrue, timeout\u003d2)"},{"line_number":1000,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":1001,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":1002,"context_line":"            node_uuid\u003d\u0027node03\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_a5886923","line":999,"updated":"2015-12-11 00:14:19.000000000","message":"Same issue here... no verification that sending wait/timeout actually does what you intend.","commit_id":"b3599b399c61ba164fff0587fa8c423615dd570b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bc5a4fc33d9f31e0e5d853ed61621fce2802976f","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        mock_client.node.set_provision_state.return_value \u003d None"},{"line_number":997,"context_line":"        node_id \u003d \u0027node03\u0027"},{"line_number":998,"context_line":"        return_value \u003d self.cloud.deactivate_node("},{"line_number":999,"context_line":"            node_id, wait\u003dTrue, timeout\u003d2)"},{"line_number":1000,"context_line":"        self.assertEqual(None, return_value)"},{"line_number":1001,"context_line":"        mock_client.node.set_provision_state.assert_called_with("},{"line_number":1002,"context_line":"            node_uuid\u003d\u0027node03\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_9bd9f459","line":999,"in_reply_to":"7a740942_a5886923","updated":"2015-12-11 13:48:31.000000000","message":"Done","commit_id":"b3599b399c61ba164fff0587fa8c423615dd570b"}]}
