)]}'
{"ironicclient/tests/functional/test_node_set_power_state.py":[{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"d55621e3154b090cb0497f71895202c61db9f01e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class NodeSetPowerStateTestIronicClient(base.FunctionalTestBase):"},{"line_number":19,"context_line":"    \"\"\"Tests for testing node-set-power-state command."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   Tests for the Ironic CLI node-set-power-state command that checks that node"},{"line_number":22,"context_line":"   can be set to \u0027on\u0027, \u0027off\u0027 or \u0027reboot\u0027 power states"},{"line_number":23,"context_line":"   \"\"\""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_c240bea7","line":21,"updated":"2015-12-03 05:52:17.000000000","message":"Need one more space at the beginning for the following 3 lines.","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class NodeSetPowerStateTestIronicClient(base.FunctionalTestBase):"},{"line_number":19,"context_line":"    \"\"\"Tests for testing node-set-power-state command."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   Tests for the Ironic CLI node-set-power-state command that checks that node"},{"line_number":22,"context_line":"   can be set to \u0027on\u0027, \u0027off\u0027 or \u0027reboot\u0027 power states"},{"line_number":23,"context_line":"   \"\"\""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_a91cf113","line":21,"in_reply_to":"9a8ffd7b_c240bea7","updated":"2015-12-04 15:30:44.000000000","message":"Done","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"d55621e3154b090cb0497f71895202c61db9f01e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        2) set node power state to \u0027on\u0027"},{"line_number":34,"context_line":"        3) check node power state has been set to \u0027on\u0027"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027on\u0027)"},{"line_number":37,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":38,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_c20d1e3f","line":36,"updated":"2015-12-03 05:52:17.000000000","message":"Can we check the power state of the new created node firstly to make a comparison?","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        2) set node power state to \u0027on\u0027"},{"line_number":34,"context_line":"        3) check node power state has been set to \u0027on\u0027"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027on\u0027)"},{"line_number":37,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":38,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_698fe9cc","line":36,"in_reply_to":"9a8ffd7b_c20d1e3f","updated":"2015-12-04 15:30:44.000000000","message":"Added check to setUp() method","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        2) set node power state to \u0027on\u0027"},{"line_number":34,"context_line":"        3) check node power state has been set to \u0027on\u0027"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027on\u0027)"},{"line_number":37,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":38,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_49a0ed9f","line":36,"in_reply_to":"9a8ffd7b_c20d1e3f","updated":"2015-12-04 15:30:44.000000000","message":"Yep we can \u003d)","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"d55621e3154b090cb0497f71895202c61db9f01e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        2) set node power state to \u0027off\u0027"},{"line_number":45,"context_line":"        3) check node power state has been set to \u0027off\u0027"},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":48,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":49,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_a2001a03","line":47,"updated":"2015-12-03 05:52:17.000000000","message":"ditto","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        2) set node power state to \u0027off\u0027"},{"line_number":45,"context_line":"        3) check node power state has been set to \u0027off\u0027"},{"line_number":46,"context_line":"        \"\"\""},{"line_number":47,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":48,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":49,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_49ab0d1e","line":47,"in_reply_to":"9a8ffd7b_a2001a03","updated":"2015-12-04 15:30:44.000000000","message":"Done","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17958,"name":"NGUYEN TUONG THANH","email":"ngtthanh1010@gmail.com","username":"thanhnt"},"change_message_id":"a9934cd903793f8b94087ee876952dfc6be769bf","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":66,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_54604735","line":68,"updated":"2015-12-02 09:53:10.000000000","message":"Why don\u0027t you test the case that rebooting node when its power state is \"power on\"? I think it is neccessary.","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":66,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_a9acf135","line":68,"in_reply_to":"9a8ffd7b_02b3269b","updated":"2015-12-04 15:30:44.000000000","message":"Done","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"d55621e3154b090cb0497f71895202c61db9f01e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":66,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_02b3269b","line":68,"in_reply_to":"9a8ffd7b_54604735","updated":"2015-12-03 05:52:17.000000000","message":"++","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"20d324beb20dc030f5ac3b2a0fddc449e95a1cb6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":66,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_c9b61d8a","line":68,"in_reply_to":"9a8ffd7b_54604735","updated":"2015-12-04 15:30:44.000000000","message":"Added test-case test_node_set_power_state_reboot_node_on","commit_id":"a0825ad1d3d52f5b3c60d71078511fdaa833a734"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"0d0152ecf096f9306b274e11c1b1ee1cb10374ee","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        2) set node power state to \u0027off\u0027"},{"line_number":47,"context_line":"        3) check node power state has been set to \u0027off\u0027"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":50,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":51,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_ce094d97","line":49,"updated":"2015-12-15 13:46:50.000000000","message":"I\u0027m not sure this is actually doing anything. Hard to tell because the tests themselves aren\u0027t logging, nor are api requests. However, I see this: http://logs.openstack.org/97/251997/4/check/gate-ironicclient-dsvm-functional/430187e/logs/screen-ir-cond.txt.gz#_2015-12-04_16_06_06_125\n\nMy assumption is the fake driver changes the power state to None shortly after registering, but I don\u0027t have data to back that up right now.","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"28447dec7fdd8d93a9c4b37111baf1807860b071","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        2) set node power state to \u0027off\u0027"},{"line_number":47,"context_line":"        3) check node power state has been set to \u0027off\u0027"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":50,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":51,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_63134fb9","line":49,"in_reply_to":"5a710552_be174ea2","updated":"2015-12-16 14:11:31.000000000","message":"Hm, maybe this is okay, on second thought.","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"7437aa1dd60491aa514cfecdbaa82ec648f25734","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        2) set node power state to \u0027off\u0027"},{"line_number":47,"context_line":"        3) check node power state has been set to \u0027off\u0027"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":50,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":51,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_be174ea2","line":49,"in_reply_to":"5a710552_ce094d97","updated":"2015-12-15 15:01:39.000000000","message":"The point is to test CLI command. I check that trigger works and switches states. Of course to test the node power states we need real driver.","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"0d0152ecf096f9306b274e11c1b1ee1cb10374ee","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        4) set node power state to \u0027reboot\u0027"},{"line_number":60,"context_line":"        5) check node power state has been set to \u0027on\u0027"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":63,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_ae2ba1ea","line":62,"updated":"2015-12-15 13:46:50.000000000","message":"Ditto","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"7437aa1dd60491aa514cfecdbaa82ec648f25734","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        4) set node power state to \u0027reboot\u0027"},{"line_number":60,"context_line":"        5) check node power state has been set to \u0027on\u0027"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027off\u0027)"},{"line_number":63,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        self.assertEqual(\u0027power off\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_1e278213","line":62,"in_reply_to":"5a710552_ae2ba1ea","updated":"2015-12-15 15:01:39.000000000","message":"Ditto","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"0d0152ecf096f9306b274e11c1b1ee1cb10374ee","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":87,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_6e7cd972","line":89,"updated":"2015-12-15 13:46:50.000000000","message":"Shouldn\u0027t we sleep a bit to make sure that we\u0027re checking *after* the reboot goes through?","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"28447dec7fdd8d93a9c4b37111baf1807860b071","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":87,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_43a3b34f","line":89,"in_reply_to":"5a710552_5ee8aa7c","updated":"2015-12-16 14:11:31.000000000","message":"Well, it isn\u0027t necessarily instantly. The actual power state change is run in a separate thread, and could happen after the API response is returned. Especially if we\u0027re running tests in parallel.\n\nhttps://github.com/openstack/ironic/blob/master/ironic/conductor/manager.py#L265\n\nIt\u0027s probably fine for now, but with more tests added I could see this getting flaky.","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"},{"author":{"_account_id":17270,"name":"Sergii Turivnyi","email":"sturivnyi@mirantis.com","username":"sturivnyi"},"change_message_id":"7437aa1dd60491aa514cfecdbaa82ec648f25734","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.set_node_power_state(self.node[\u0027uuid\u0027], \u0027reboot\u0027)"},{"line_number":87,"context_line":"        node_state \u003d self.show_node_states(self.node[\u0027uuid\u0027])"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.assertEqual(\u0027power on\u0027, node_state[\u0027power_state\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a710552_5ee8aa7c","line":89,"in_reply_to":"5a710552_6e7cd972","updated":"2015-12-15 15:01:39.000000000","message":"I think we don\u0027t need sleep a bit because we use fake driver it switches states instantly.","commit_id":"6670dd4f0320cd78502c7f9a3f084e5cdbff8fe7"}]}
