)]}'
{"ironic/drivers/modules/iscsi_deploy.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"37af4a80cf5182a3cb9072079bc6b5d77d0e16ed","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            uuid_dict_returned \u003d deploy_utils.deploy_partition_image(**params)"},{"line_number":251,"context_line":"    except exception.IronicException as e:"},{"line_number":252,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":253,"context_line":"            # As it comes from Ironic, assume we\u0027ve logged it already"},{"line_number":254,"context_line":"            _fail_deploy(task, e, raise_exception\u003dFalse)"},{"line_number":255,"context_line":"    except Exception as e:"},{"line_number":256,"context_line":"        LOG.exception(_LE(\u0027Deploy of instance %(instance)s on node %(node)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_cbd6e0c4","line":253,"updated":"2016-10-11 21:28:54.000000000","message":"I just looked at deploy_utils.deploy_partition_image(), and the msg wasn\u0027t logged before exception.InstanceDeployFailure was raised : https://github.com/openstack/ironic/blob/66fc750a00198c98603ae0489fa4ec7201648696/ironic/drivers/modules/deploy_utils.py#L353","commit_id":"0ded57f6221037d317ddc4a2f3987ed0e0829488"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eb2740f709d07f5f93e348ec85c8f1bb74795f78","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            uuid_dict_returned \u003d deploy_utils.deploy_partition_image(**params)"},{"line_number":251,"context_line":"    except exception.IronicException as e:"},{"line_number":252,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":253,"context_line":"            # As it comes from Ironic, assume we\u0027ve logged it already"},{"line_number":254,"context_line":"            _fail_deploy(task, e, raise_exception\u003dFalse)"},{"line_number":255,"context_line":"    except Exception as e:"},{"line_number":256,"context_line":"        LOG.exception(_LE(\u0027Deploy of instance %(instance)s on node %(node)s \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_a299a621","line":253,"in_reply_to":"fa6399be_cbd6e0c4","updated":"2016-10-31 13:12:32.000000000","message":"Ugh, ok, I\u0027ll log here as well","commit_id":"0ded57f6221037d317ddc4a2f3987ed0e0829488"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"6a0f5cae338af5362102ff83c8e546b6c8bf662d","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    params \u003d get_deploy_info(node, **kwargs)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    def _fail_deploy(task, msg, raise_exception\u003dTrue):"},{"line_number":224,"context_line":"        \"\"\"Fail the deploy after logging and setting error states.\"\"\""},{"line_number":225,"context_line":"        if isinstance(msg, Exception):"},{"line_number":226,"context_line":"            msg \u003d (_(\u0027Deploy failed for instance %(instance)s. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_43541e20","line":223,"updated":"2016-11-01 20:05:27.000000000","message":"with this implementation, renaming msg to error would make sense. Additionally I think s/raise/reraise/ would be more meaningful here :)","commit_id":"395307f4f98055125245b56f7038d9e244850a66"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"6429a891cc9e16ff9dc54e66e7e0aee8ffc24404","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    params \u003d get_deploy_info(node, **kwargs)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    def _fail_deploy(task, msg, raise_exception\u003dTrue):"},{"line_number":224,"context_line":"        \"\"\"Fail the deploy after logging and setting error states.\"\"\""},{"line_number":225,"context_line":"        if isinstance(msg, Exception):"},{"line_number":226,"context_line":"            msg \u003d (_(\u0027Deploy failed for instance %(instance)s. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_443573f5","line":223,"in_reply_to":"ba5da102_43541e20","updated":"2016-11-21 23:34:08.000000000","message":"msg is used pretty frequently in Ironic for error messages.","commit_id":"395307f4f98055125245b56f7038d9e244850a66"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a349b8a5a337d36ca05d4964974fbade74f64c2e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    params \u003d get_deploy_info(node, **kwargs)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    def _fail_deploy(task, msg, raise_exception\u003dTrue):"},{"line_number":224,"context_line":"        \"\"\"Fail the deploy after logging and setting error states.\"\"\""},{"line_number":225,"context_line":"        if isinstance(msg, Exception):"},{"line_number":226,"context_line":"            msg \u003d (_(\u0027Deploy failed for instance %(instance)s. \u0027"},{"line_number":227,"context_line":"                     \u0027Error: %(error)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_a9b95b7b","line":224,"updated":"2016-11-01 20:55:47.000000000","message":"nit: s/logging and// because you removed the logging","commit_id":"395307f4f98055125245b56f7038d9e244850a66"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"6a0f5cae338af5362102ff83c8e546b6c8bf662d","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            uuid_dict_returned \u003d deploy_utils.deploy_partition_image(**params)"},{"line_number":251,"context_line":"    except exception.IronicException as e:"},{"line_number":252,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":253,"context_line":"            LOG.error(_LE(\u0027Deploy of instance %(instance)s on node %(node)s \u0027"},{"line_number":254,"context_line":"                          \u0027failed: %(error)s\u0027),"},{"line_number":255,"context_line":"                      {\u0027instance\u0027: node.instance_uuid, \u0027node\u0027: node.uuid,"},{"line_number":256,"context_line":"                       \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_ae2321a6","line":253,"updated":"2016-11-01 20:05:27.000000000","message":"This message is almost the same as in _fail_deploy. Maybe it would make sense to log in _fail_deploy?","commit_id":"395307f4f98055125245b56f7038d9e244850a66"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"6429a891cc9e16ff9dc54e66e7e0aee8ffc24404","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            uuid_dict_returned \u003d deploy_utils.deploy_partition_image(**params)"},{"line_number":251,"context_line":"    except exception.IronicException as e:"},{"line_number":252,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":253,"context_line":"            LOG.error(_LE(\u0027Deploy of instance %(instance)s on node %(node)s \u0027"},{"line_number":254,"context_line":"                          \u0027failed: %(error)s\u0027),"},{"line_number":255,"context_line":"                      {\u0027instance\u0027: node.instance_uuid, \u0027node\u0027: node.uuid,"},{"line_number":256,"context_line":"                       \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_a45d674a","line":253,"in_reply_to":"ba5da102_ae2321a6","updated":"2016-11-21 23:34:08.000000000","message":"I prefer it this way, without logging in the helper function.","commit_id":"395307f4f98055125245b56f7038d9e244850a66"}],"ironic/tests/unit/drivers/modules/test_iscsi_deploy.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"dad3f4997beef5f12d38d3c6175ede829039dbbe","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            power_mock.assert_called_once_with(task, states.POWER_OFF)"},{"line_number":189,"context_line":"            mock_image_cache.assert_called_once_with()"},{"line_number":190,"context_line":"            mock_image_cache.return_value.clean_up.assert_called_once_with()"},{"line_number":191,"context_line":"            self.assertFalse(mock_disk_layout.called)"},{"line_number":192,"context_line":"            mock_collect_logs.assert_called_once_with(task.node)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @mock.patch.object(driver_utils, \u0027collect_ramdisk_logs\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_75009102","line":191,"range":{"start_line":191,"start_character":17,"end_line":191,"end_character":28},"updated":"2016-10-04 10:23:53.000000000","message":"nit: assert_not_called might be used instead.","commit_id":"0ded57f6221037d317ddc4a2f3987ed0e0829488"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eb2740f709d07f5f93e348ec85c8f1bb74795f78","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            power_mock.assert_called_once_with(task, states.POWER_OFF)"},{"line_number":189,"context_line":"            mock_image_cache.assert_called_once_with()"},{"line_number":190,"context_line":"            mock_image_cache.return_value.clean_up.assert_called_once_with()"},{"line_number":191,"context_line":"            self.assertFalse(mock_disk_layout.called)"},{"line_number":192,"context_line":"            mock_collect_logs.assert_called_once_with(task.node)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @mock.patch.object(driver_utils, \u0027collect_ramdisk_logs\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_a2c0c6e1","line":191,"range":{"start_line":191,"start_character":17,"end_line":191,"end_character":28},"in_reply_to":"3a98d1f4_75009102","updated":"2016-10-31 13:12:32.000000000","message":"true, I can\u0027t get used to these new functions. anyway, this is a copy-paste from the second test, so I\u0027d leave it alone for now","commit_id":"0ded57f6221037d317ddc4a2f3987ed0e0829488"},{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"6a0f5cae338af5362102ff83c8e546b6c8bf662d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            self, deploy_mock, power_mock, mock_image_cache, mock_disk_layout,"},{"line_number":201,"context_line":"            mock_collect_logs):"},{"line_number":202,"context_line":"        kwargs \u003d {\u0027address\u0027: \u0027123456\u0027, \u0027iqn\u0027: \u0027aaa-bbb\u0027}"},{"line_number":203,"context_line":"        deploy_mock.side_effect \u003d KeyError(\u0027boom\u0027)"},{"line_number":204,"context_line":"        self.node.provision_state \u003d states.DEPLOYWAIT"},{"line_number":205,"context_line":"        self.node.target_provision_state \u003d states.ACTIVE"},{"line_number":206,"context_line":"        self.node.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_2e5e3112","line":203,"updated":"2016-11-01 20:05:27.000000000","message":"I think there should be additional test that would raise an IronicException, and check that exception wasn\u0027t reraised.","commit_id":"395307f4f98055125245b56f7038d9e244850a66"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"a32ed6a5f4096ea6c6f7d320415286e35bfa60bd","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            self, deploy_mock, power_mock, mock_image_cache, mock_disk_layout,"},{"line_number":201,"context_line":"            mock_collect_logs):"},{"line_number":202,"context_line":"        kwargs \u003d {\u0027address\u0027: \u0027123456\u0027, \u0027iqn\u0027: \u0027aaa-bbb\u0027}"},{"line_number":203,"context_line":"        deploy_mock.side_effect \u003d KeyError(\u0027boom\u0027)"},{"line_number":204,"context_line":"        self.node.provision_state \u003d states.DEPLOYWAIT"},{"line_number":205,"context_line":"        self.node.target_provision_state \u003d states.ACTIVE"},{"line_number":206,"context_line":"        self.node.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_e51eb35d","line":203,"in_reply_to":"ba5da102_2e5e3112","updated":"2016-11-03 22:01:29.000000000","message":"+1 if there\u0027s another revision","commit_id":"395307f4f98055125245b56f7038d9e244850a66"}]}
