)]}'
{"ironic/drivers/modules/ipminative.py":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"b3846d815294c512d0195208a67a0dc18206f0b9","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        :param task: a TaskManager instance."},{"line_number":229,"context_line":"        :param node: the node info."},{"line_number":230,"context_line":"        :param pstate: a power state that will be set on the given node."},{"line_number":231,"context_line":"        :raises: IPMIFailure when the native ipmi call fails."},{"line_number":232,"context_line":"        :raises: InvalidParameterValue when an invalid power state"},{"line_number":233,"context_line":"                 is specified or required ipmi credentials are missing."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fv7s%3D","line":230,"updated":"2014-01-08 22:31:00.000000000","message":"param order.","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"880a06458e758ac3d20705fa7f60eadda12ffa18","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        :param task: a TaskManager instance."},{"line_number":229,"context_line":"        :param node: the node info."},{"line_number":230,"context_line":"        :param pstate: a power state that will be set on the given node."},{"line_number":231,"context_line":"        :raises: IPMIFailure when the native ipmi call fails."},{"line_number":232,"context_line":"        :raises: InvalidParameterValue when an invalid power state"},{"line_number":233,"context_line":"                 is specified or required ipmi credentials are missing."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FvyE%3D","line":230,"in_reply_to":"AAAAUH%2F%2Fv7s%3D","updated":"2014-01-08 22:47:00.000000000","message":"yes, param order will changed. I will use set_power_state(self, task, pstate, node\u003dNone) in base interface for removing passing of node argument to this method","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"b3846d815294c512d0195208a67a0dc18206f0b9","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                node.last_error \u003d msg"},{"line_number":650,"context_line":"                node.save(task.context)"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"         # remove cached keystone token immediately"},{"line_number":653,"context_line":"        _destroy_token_file(node)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"        params \u003d self._get_deploy_info(node, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fv7Y%3D","line":652,"updated":"2014-01-08 22:31:00.000000000","message":"space?","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"880a06458e758ac3d20705fa7f60eadda12ffa18","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                node.last_error \u003d msg"},{"line_number":650,"context_line":"                node.save(task.context)"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"         # remove cached keystone token immediately"},{"line_number":653,"context_line":"        _destroy_token_file(node)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"        params \u003d self._get_deploy_info(node, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fvx8%3D","line":652,"in_reply_to":"AAAAUH%2F%2Fv7Y%3D","updated":"2014-01-08 22:47:00.000000000","message":"oh, sorry. i will fix it.","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"}],"ironic/drivers/modules/ssh.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"dcf684332a735206520a580ec9163192a038582e","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        :param node: A single node."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        :returns: power state. One of :class:`ironic.common.states`."},{"line_number":281,"context_line":"        \"\"\""},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        driver_info \u003d _parse_driver_info(node)"},{"line_number":284,"context_line":"        driver_info[\u0027macs\u0027] \u003d _get_nodes_mac_addresses(task, node)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8674%3D","line":281,"updated":"2013-12-18 19:15:08.000000000","message":"This empty line is not related to this change and violated PEP-257. It should be either remove it or move before the \"\"\"","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"f399245f9b30642ec08275e29ddc191fdc8ec593","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        :param node: A single node."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        :returns: power state. One of :class:`ironic.common.states`."},{"line_number":281,"context_line":"        \"\"\""},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        driver_info \u003d _parse_driver_info(node)"},{"line_number":284,"context_line":"        driver_info[\u0027macs\u0027] \u003d _get_nodes_mac_addresses(task, node)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F84jc%3D","line":281,"in_reply_to":"AAAATn%2F8674%3D","updated":"2013-12-19 07:49:45.000000000","message":"I\u0027ll remove it.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"b3846d815294c512d0195208a67a0dc18206f0b9","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        Set the power state of a node."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :param task: A instance of `ironic.manager.task_manager.TaskManager`."},{"line_number":301,"context_line":"        :param node: A single node."},{"line_number":302,"context_line":"        :param pstate: Either POWER_ON or POWER_OFF from :class:"},{"line_number":303,"context_line":"            `ironic.common.states`."},{"line_number":304,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fv7w%3D","line":301,"updated":"2014-01-08 22:31:00.000000000","message":"param order?","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"880a06458e758ac3d20705fa7f60eadda12ffa18","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        Set the power state of a node."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :param task: A instance of `ironic.manager.task_manager.TaskManager`."},{"line_number":301,"context_line":"        :param node: A single node."},{"line_number":302,"context_line":"        :param pstate: Either POWER_ON or POWER_OFF from :class:"},{"line_number":303,"context_line":"            `ironic.common.states`."},{"line_number":304,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FvyQ%3D","line":301,"in_reply_to":"AAAAUH%2F%2Fv7w%3D","updated":"2014-01-08 22:47:00.000000000","message":"yes, param order will changed. I will use set_power_state(self, task, pstate, node\u003dNone) in base interface for removing passing of node argument to this method","commit_id":"d8e0f79d85fab0e2fa12f037f481973ca1deb4c1"}],"ironic/tests/drivers/test_pxe.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"f26fa1be161a591656559972ad6afd8be7b0fc34","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                        state \u003d task.resources[0].driver.deploy.deploy(task,"},{"line_number":525,"context_line":"                                                                    self.node)"},{"line_number":526,"context_line":"                        get_tftp_image_info_mock.assert_called_once_with("},{"line_number":527,"context_line":"                                                                  task.node)"},{"line_number":528,"context_line":"                        create_pxe_config_mock.assert_called_once_with(task,"},{"line_number":529,"context_line":"                                                                    task.node,"},{"line_number":530,"context_line":"                                                                    None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ThI%3D","line":527,"updated":"2013-12-12 20:34:14.000000000","message":"this should remain self.node to be consistent with other test_{driver} modules in this patch set.\n\ncomment applies to the rest of this file, as well.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"210e52048e831fa1ec833a56ee8e8b69172de0de","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                        state \u003d task.resources[0].driver.deploy.deploy(task,"},{"line_number":525,"context_line":"                                                                    self.node)"},{"line_number":526,"context_line":"                        get_tftp_image_info_mock.assert_called_once_with("},{"line_number":527,"context_line":"                                                                  task.node)"},{"line_number":528,"context_line":"                        create_pxe_config_mock.assert_called_once_with(task,"},{"line_number":529,"context_line":"                                                                    task.node,"},{"line_number":530,"context_line":"                                                                    None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F86%2BE%3D","line":527,"in_reply_to":"AAAATn%2F9Tbk%3D","updated":"2013-12-18 19:07:23.000000000","message":"I agree with Vitalii. Since the driver uses the task.node this assertion should expect it.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"89dbe3fedcd7d62ffe06db40dfea1126a7f277d4","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                        state \u003d task.resources[0].driver.deploy.deploy(task,"},{"line_number":525,"context_line":"                                                                    self.node)"},{"line_number":526,"context_line":"                        get_tftp_image_info_mock.assert_called_once_with("},{"line_number":527,"context_line":"                                                                  task.node)"},{"line_number":528,"context_line":"                        create_pxe_config_mock.assert_called_once_with(task,"},{"line_number":529,"context_line":"                                                                    task.node,"},{"line_number":530,"context_line":"                                                                    None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Tbk%3D","line":527,"in_reply_to":"AAAATn%2F9ThI%3D","updated":"2013-12-12 20:51:35.000000000","message":"task.node and self.node are different instances of Node so the assertion fails since the driver uses task.node.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"210e52048e831fa1ec833a56ee8e8b69172de0de","unresolved":false,"context_lines":[{"line_number":549,"context_line":"            task.resources[0].driver.vendor.vendor_passthru(task, task.node,"},{"line_number":550,"context_line":"                    method\u003d\u0027pass_deploy_info\u0027, address\u003d\u0027123456\u0027, iqn\u003d\u0027aaa-bbb\u0027,"},{"line_number":551,"context_line":"                    key\u003d\u0027fake-56789\u0027)"},{"line_number":552,"context_line":"        self.assertEqual(task.node[\u0027provision_state\u0027], states.DEPLOYDONE)"},{"line_number":553,"context_line":"        self.assertFalse(os.path.exists(token_path))"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def test_continue_deploy_fail(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F869o%3D","line":552,"updated":"2013-12-18 19:07:23.000000000","message":"I think Devananda\u0027s comment applies to assertions like this one and bellow.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"5b7fcd0818692128c4c22cae4cdb274c7e682585","unresolved":false,"context_lines":[{"line_number":549,"context_line":"            task.resources[0].driver.vendor.vendor_passthru(task, task.node,"},{"line_number":550,"context_line":"                    method\u003d\u0027pass_deploy_info\u0027, address\u003d\u0027123456\u0027, iqn\u003d\u0027aaa-bbb\u0027,"},{"line_number":551,"context_line":"                    key\u003d\u0027fake-56789\u0027)"},{"line_number":552,"context_line":"        self.assertEqual(task.node[\u0027provision_state\u0027], states.DEPLOYDONE)"},{"line_number":553,"context_line":"        self.assertFalse(os.path.exists(token_path))"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def test_continue_deploy_fail(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8ydI%3D","line":552,"in_reply_to":"AAAATn%2F84iA%3D","updated":"2013-12-20 09:52:54.000000000","message":"We cannot use self.node because self.node and task.node have different state since task.node was passed into deploy(). self.node doesn\u0027t have provision_state","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"},{"author":{"_account_id":9376,"name":"Vitalii Lebedynskyi","email":"vetal.lebed@gmail.com","username":"vetalll"},"change_message_id":"f399245f9b30642ec08275e29ddc191fdc8ec593","unresolved":false,"context_lines":[{"line_number":549,"context_line":"            task.resources[0].driver.vendor.vendor_passthru(task, task.node,"},{"line_number":550,"context_line":"                    method\u003d\u0027pass_deploy_info\u0027, address\u003d\u0027123456\u0027, iqn\u003d\u0027aaa-bbb\u0027,"},{"line_number":551,"context_line":"                    key\u003d\u0027fake-56789\u0027)"},{"line_number":552,"context_line":"        self.assertEqual(task.node[\u0027provision_state\u0027], states.DEPLOYDONE)"},{"line_number":553,"context_line":"        self.assertFalse(os.path.exists(token_path))"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def test_continue_deploy_fail(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F84iA%3D","line":552,"in_reply_to":"AAAATn%2F869o%3D","updated":"2013-12-19 07:49:45.000000000","message":"Ok, i will fix it.","commit_id":"324c89114207c1480d5b28a406e62302cf65bfa3"}]}
