)]}'
{"ironic/drivers/modules/amt/management.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d38bbad293f9a727ae19bec31b8e80ad8d820d95","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                           Default: False."},{"line_number":129,"context_line":"        :raises: InvalidParameterValue if an invalid boot device is specified."},{"line_number":130,"context_line":"        \"\"\""},{"line_number":131,"context_line":"        if device not in self.get_supported_boot_devices():"},{"line_number":132,"context_line":"            raise exception.InvalidParameterValue(_(\"set_boot_device called \""},{"line_number":133,"context_line":"                    \"with invalid device %s.\") % device)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_a7f1c696","line":131,"updated":"2015-02-05 10:42:26.000000000","message":"You can use BOOT_DEVICE_MAPPING directly here.","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        :raises: AMTConnectFailure"},{"line_number":171,"context_line":"        \"\"\""},{"line_number":172,"context_line":"        driver_internal_info \u003d node.driver_internal_info"},{"line_number":173,"context_line":"        if driver_internal_info.get(\u0027amt_boot_persistent\u0027) is not True:"},{"line_number":174,"context_line":"            driver_internal_info[\u0027amt_boot_device\u0027] \u003d (amt_common."},{"line_number":175,"context_line":"                                                       DEFAULT_BOOT_DEVICE)"},{"line_number":176,"context_line":"            driver_internal_info[\u0027amt_boot_persistent\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_7193f55a","line":173,"updated":"2015-02-05 20:11:26.000000000","message":"nit - if not driver_internal_info.get(\u0027amt_boot_persistent\u0027):","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    client \u003d amt_common.get_wsman_client(node)"},{"line_number":43,"context_line":"    source \u003d pywsman.EndPointReference(resource_uris.CIM_BootSourceSetting,"},{"line_number":44,"context_line":"                                       None)"},{"line_number":45,"context_line":"    device \u003d amt_common.BOOT_DEVICES_MAPPING[boot_device]"},{"line_number":46,"context_line":"    source.add_selector(\u0027InstanceID\u0027, device)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    method \u003d \u0027ChangeBootOrder\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_e0bc116f","line":45,"updated":"2015-02-21 15:26:07.000000000","message":"Any reason to keep BOOT_DEVICES_MAPPING and DEFAULT_BOOT_DEVICE in amt_common ? They seem to be used only here.  I feel it belongs here.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    client \u003d amt_common.get_wsman_client(node)"},{"line_number":43,"context_line":"    source \u003d pywsman.EndPointReference(resource_uris.CIM_BootSourceSetting,"},{"line_number":44,"context_line":"                                       None)"},{"line_number":45,"context_line":"    device \u003d amt_common.BOOT_DEVICES_MAPPING[boot_device]"},{"line_number":46,"context_line":"    source.add_selector(\u0027InstanceID\u0027, device)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    method \u003d \u0027ChangeBootOrder\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_a38a7f61","line":45,"in_reply_to":"ba7be1f8_e0bc116f","updated":"2015-02-26 08:05:50.000000000","message":"DEFAULT_BOOT_DEVICE is also used in power.py, that\u0027s why keep it in amt_common.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"}],"ironic/drivers/modules/amt/power.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"AMT Power Driver"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"from oslo.config import cfg"},{"line_number":18,"context_line":"from oslo.utils import excutils"},{"line_number":19,"context_line":"from oslo.utils import importutils"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_717a1525","line":17,"updated":"2015-02-05 20:11:26.000000000","message":"oslo_config","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d38bbad293f9a727ae19bec31b8e80ad8d820d95","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        return states.ERROR"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"def _set_and_wait(node, driver, target_state):"},{"line_number":143,"context_line":"    \"\"\"Helper function for DynamicLoopingCall."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    This method changes the power state and polls AMT until the desired"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_0a9c570e","line":142,"updated":"2015-02-05 10:42:26.000000000","message":"You can pass single task parameter instead of 2 (node and driver).","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d38bbad293f9a727ae19bec31b8e80ad8d820d95","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    :raises: AMTConnectFailure"},{"line_number":154,"context_line":"    :raises: InvalidParameterValue"},{"line_number":155,"context_line":"    \"\"\""},{"line_number":156,"context_line":"    driver_info \u003d amt_common.parse_driver_info(node)"},{"line_number":157,"context_line":"    if target_state \u003d\u003d states.POWER_ON:"},{"line_number":158,"context_line":"        boot_device \u003d node.driver_internal_info.get(\u0027amt_boot_device\u0027)"},{"line_number":159,"context_line":"        if boot_device is not None and boot_device !\u003d boot_devices.DISK:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_6a75d362","line":156,"updated":"2015-02-05 10:42:26.000000000","message":"This line is not needed, you can simply use node.uuid in lines 177, 186.","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d38bbad293f9a727ae19bec31b8e80ad8d820d95","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    driver_info \u003d amt_common.parse_driver_info(node)"},{"line_number":157,"context_line":"    if target_state \u003d\u003d states.POWER_ON:"},{"line_number":158,"context_line":"        boot_device \u003d node.driver_internal_info.get(\u0027amt_boot_device\u0027)"},{"line_number":159,"context_line":"        if boot_device is not None and boot_device !\u003d boot_devices.DISK:"},{"line_number":160,"context_line":"            driver.management.ensure_next_boot_device(node, boot_device)"},{"line_number":161,"context_line":"        action \u003d AMT_POWER_ON"},{"line_number":162,"context_line":"    elif target_state \u003d\u003d states.POWER_OFF:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_aa198b23","line":159,"updated":"2015-02-05 10:42:26.000000000","message":"Better to use DEFAULT_BOOT_DEVICE from common here.","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    driver_info \u003d amt_common.parse_driver_info(node)"},{"line_number":157,"context_line":"    if target_state \u003d\u003d states.POWER_ON:"},{"line_number":158,"context_line":"        boot_device \u003d node.driver_internal_info.get(\u0027amt_boot_device\u0027)"},{"line_number":159,"context_line":"        if boot_device is not None and boot_device !\u003d boot_devices.DISK:"},{"line_number":160,"context_line":"            driver.management.ensure_next_boot_device(node, boot_device)"},{"line_number":161,"context_line":"        action \u003d AMT_POWER_ON"},{"line_number":162,"context_line":"    elif target_state \u003d\u003d states.POWER_OFF:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_b143adad","line":159,"in_reply_to":"da86d52c_aa198b23","updated":"2015-02-05 20:11:26.000000000","message":"nit - if boot_device and boot_device ...","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        :raises: InvalidParameterValue if invalid target power state provided."},{"line_number":240,"context_line":"        :raises: PowerStateFailure if the power cannot set to pstate."},{"line_number":241,"context_line":"        :raises: AMTFailure."},{"line_number":242,"context_line":"        :raises: AMTConnectFailure."},{"line_number":243,"context_line":"        \"\"\""},{"line_number":244,"context_line":"        state \u003d _set_and_wait(task.node, task.driver, pstate)"},{"line_number":245,"context_line":"        if state !\u003d pstate:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_71ae952f","line":242,"updated":"2015-02-05 20:11:26.000000000","message":"Please make sure that exceptions listed here and in reboot method are actually correct - seems that now they are not (e.g. MissingParameterValue not raised).","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            raise exception.PowerStateFailure(pstate\u003dpstate)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":246,"context_line":"    def reboot(self, task):"},{"line_number":247,"context_line":"        \"\"\"Cycle the power of the node"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        :param task: a TaskManager instance contains the target node."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_e095f1e4","line":246,"updated":"2015-02-21 15:26:07.000000000","message":"reboot should raise PowerStateFailure if it failed to reboot the machine.  I suggest the check on L242-243 be moved inside _set_and_wait().  Otherwise ironic.conductor.utils.node_power_action() will miss this fact.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            raise exception.PowerStateFailure(pstate\u003dpstate)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":246,"context_line":"    def reboot(self, task):"},{"line_number":247,"context_line":"        \"\"\"Cycle the power of the node"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        :param task: a TaskManager instance contains the target node."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_1cc80954","line":246,"in_reply_to":"ba7be1f8_e095f1e4","updated":"2015-02-26 08:05:50.000000000","message":"Good point.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"}],"ironic/drivers/pxe.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.power \u003d irmc_power.IRMCPower()"},{"line_number":210,"context_line":"        self.console \u003d ipmitool.IPMIShellinaboxConsole()"},{"line_number":211,"context_line":"        self.deploy \u003d pxe.PXEDeploy()"},{"line_number":212,"context_line":"        self.management \u003d ipmitool.IPMIManagement()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class PXEAndAMTDriver(base.BaseDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_6c115851","line":212,"updated":"2015-02-05 20:11:26.000000000","message":"Please return self.vendor to this class.","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                    reason\u003d_(\u0027Unable to import pywsman library\u0027))"},{"line_number":254,"context_line":"        self.power \u003d amt_power.AMTPower()"},{"line_number":255,"context_line":"        self.deploy \u003d pxe.PXEDeploy()"},{"line_number":256,"context_line":"        self.management \u003d amt_mgr.AMTManagement()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_e0633118","line":256,"updated":"2015-02-21 15:26:07.000000000","message":"self.vendor ??\n\nI don\u0027t see it in dependent patch as well.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                    reason\u003d_(\u0027Unable to import pywsman library\u0027))"},{"line_number":254,"context_line":"        self.power \u003d amt_power.AMTPower()"},{"line_number":255,"context_line":"        self.deploy \u003d pxe.PXEDeploy()"},{"line_number":256,"context_line":"        self.management \u003d amt_mgr.AMTManagement()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_7e33bcf5","line":256,"in_reply_to":"ba7be1f8_e0633118","updated":"2015-02-26 08:05:50.000000000","message":"Thanks a lot. Done","commit_id":"a5481931433049b29905aaf1c5888b453108242c"}],"ironic/tests/drivers/amt/test_management.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from ironic.common import boot_devices"},{"line_number":22,"context_line":"from ironic.common import exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_cc50840d","line":19,"updated":"2015-02-05 20:11:26.000000000","message":"oslo_config","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        mock_pywsman \u003d mock_client_pywsman.Client.return_value"},{"line_number":68,"context_line":"        mock_pywsman.invoke.return_value \u003d mock_xml"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.assertRaises(exception.AMTFailure,"},{"line_number":71,"context_line":"                          amt_mgmt._set_boot_device_order, self.node, device)"},{"line_number":72,"context_line":"        mock_pywsman.invoke.assert_called_once_with(mock.ANY,"},{"line_number":73,"context_line":"            namespace, \u0027ChangeBootOrder\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_6cadd8e8","line":70,"updated":"2015-02-05 20:11:26.000000000","message":"No tests for AMTConnectFailure","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        mock_pywsman \u003d mock_client_pywsman.Client.return_value"},{"line_number":94,"context_line":"        mock_pywsman.invoke.return_value \u003d mock_xml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.assertRaises(exception.AMTFailure,"},{"line_number":97,"context_line":"                          amt_mgmt._enable_boot_config, self.node)"},{"line_number":98,"context_line":"        mock_pywsman.invoke.assert_called_once_with(mock.ANY,"},{"line_number":99,"context_line":"            namespace, \u0027SetBootConfigRole\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_8cb84c2b","line":96,"updated":"2015-02-05 20:11:26.000000000","message":"No tests for AMTConnectFailure","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        super(AMTManagementTestCase, self).setUp()"},{"line_number":118,"context_line":"        mgr_utils.mock_the_extension_manager(driver\u003d\u0027fake_amt\u0027)"},{"line_number":119,"context_line":"        self.info \u003d INFO_DICT"},{"line_number":120,"context_line":"        self.info[\u0027uuid\u0027] \u003d \u0027fake-uuid\u0027"},{"line_number":121,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context,"},{"line_number":122,"context_line":"                                               driver\u003d\u0027fake_amt\u0027,"},{"line_number":123,"context_line":"                                               driver_info\u003dself.info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_807435d0","line":120,"updated":"2015-02-21 15:26:07.000000000","message":"Any reason why we need this ?","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        super(AMTManagementTestCase, self).setUp()"},{"line_number":118,"context_line":"        mgr_utils.mock_the_extension_manager(driver\u003d\u0027fake_amt\u0027)"},{"line_number":119,"context_line":"        self.info \u003d INFO_DICT"},{"line_number":120,"context_line":"        self.info[\u0027uuid\u0027] \u003d \u0027fake-uuid\u0027"},{"line_number":121,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context,"},{"line_number":122,"context_line":"                                               driver\u003d\u0027fake_amt\u0027,"},{"line_number":123,"context_line":"                                               driver_info\u003dself.info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_df7e6369","line":120,"in_reply_to":"ba7be1f8_807435d0","updated":"2015-02-26 08:05:50.000000000","message":"Done","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":150,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":151,"context_line":"            self.assertEqual(sorted(expected),"},{"line_number":152,"context_line":"                             sorted(task.driver.management."},{"line_number":153,"context_line":"                                    get_supported_boot_devices()))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_set_boot_device_one_time(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_607741d5","line":152,"updated":"2015-02-21 15:26:07.000000000","message":"I think we don\u0027t do this usually, breaking lines inbetween complete reference to the object.  If \u003e80 is the issue, I think we can do this,\n\n  self.assertEqual(\n    sorted(expected),\n    sorted(task.driver.management.get_supported_boot_devices()))\n\nDitto for other places as well.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":150,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":151,"context_line":"            self.assertEqual(sorted(expected),"},{"line_number":152,"context_line":"                             sorted(task.driver.management."},{"line_number":153,"context_line":"                                    get_supported_boot_devices()))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_set_boot_device_one_time(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_3e578459","line":152,"in_reply_to":"ba7be1f8_607741d5","updated":"2015-02-26 08:05:50.000000000","message":"Thanks.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"}],"ironic/tests/drivers/amt/test_power.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from ironic.common import boot_devices"},{"line_number":22,"context_line":"from ironic.common import exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_6cc23886","line":19,"updated":"2015-02-05 20:11:26.000000000","message":"oslo_config","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF \u003d cfg.CONF"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class AMTManagementInteralMethodsTestCase(db_base.DbTestCase):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(AMTManagementInteralMethodsTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_6c495830","line":38,"updated":"2015-02-05 20:11:26.000000000","message":"AMTPower","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ee1b85f5171cc0e8133a80fc43cdf0c4eb9946a3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"class AMTManagementInteralMethodsTestCase(db_base.DbTestCase):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(AMTManagementInteralMethodsTestCase, self).setUp()"},{"line_number":42,"context_line":"        mgr_utils.mock_the_extension_manager(driver\u003d\u0027fake_amt\u0027)"},{"line_number":43,"context_line":"        self.info \u003d INFO_DICT"},{"line_number":44,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_ec6468ba","line":41,"updated":"2015-02-05 20:11:26.000000000","message":"AMTPower","commit_id":"5d54067faf5e10939867987b0d53ca4db812cc04"}],"ironic/tests/drivers/third_party_driver_mocks.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"872792f5428c9f01e5f16eaccc50c251189cb01f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    reload(sys.modules[\u0027ironic.drivers.modules.drac\u0027])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"# if anything has loaded the amt driver yet, reload it now that the"},{"line_number":112,"context_line":"# external library has been mocked"},{"line_number":113,"context_line":"if \u0027ironic.drivers.modules.amt\u0027 in sys.modules:"},{"line_number":114,"context_line":"    reload(sys.modules[\u0027ironic.drivers.modules.amt\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_c090edee","line":111,"updated":"2015-02-21 15:26:07.000000000","message":"I suggest we move this if block above within \n\n  if not pywsman:\n    pywsman \u003d mock.Mock()\n    sys.modules[\u0027pywsman\u0027] \u003d pywsman\n\nIf I am not wrong, ironic.drivers.modules.amt need to be reloaded only if we mocked pywsman.","commit_id":"a5481931433049b29905aaf1c5888b453108242c"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"6e221201ec24a7117a90ef5451b2d3f02dcbfe39","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    reload(sys.modules[\u0027ironic.drivers.modules.drac\u0027])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"# if anything has loaded the amt driver yet, reload it now that the"},{"line_number":112,"context_line":"# external library has been mocked"},{"line_number":113,"context_line":"if \u0027ironic.drivers.modules.amt\u0027 in sys.modules:"},{"line_number":114,"context_line":"    reload(sys.modules[\u0027ironic.drivers.modules.amt\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_8202d207","line":111,"in_reply_to":"ba7be1f8_c090edee","updated":"2015-02-26 08:05:50.000000000","message":"Done","commit_id":"a5481931433049b29905aaf1c5888b453108242c"}]}
