)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"729d1e7ebb6cf09de4838e43569c56c14727e24a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SanISCSIDriver SSH execution fixes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In ssh_execute methon in nova/utils there was a problem with cmd passed to it."},{"line_number":10,"context_line":"From SanISCSIDriver and all other places it is called from cmd is a string."},{"line_number":11,"context_line":"But in ssh_execute method cmd was processed as a list. This can make problems"},{"line_number":12,"context_line":"with SanISCSIdriver using."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAALn%2F%2F9ZA%3D","line":9,"updated":"2012-10-24 19:14:07.000000000","message":"\"methon\"?  :)  (femtonit)","commit_id":"cb9b36c94ba1652cf60e45ae1d96ba7bd41e5710"}],"nova/volume/san.py":[{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"88a8d9e358b72617ee321846dde0ebf5b8008f2d","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def __init__(self, execute\u003dNone):"},{"line_number":90,"context_line":"        if execute is None:"},{"line_number":91,"context_line":"            execute \u003d self._execute"},{"line_number":92,"context_line":"        super(SanISCSIDriver, self).__init__(execute\u003dexecute)"},{"line_number":93,"context_line":"        self.run_local \u003d FLAGS.san_is_local"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FG5A%3D","line":91,"updated":"2012-10-18 14:10:41.000000000","message":"parent classes take (*args, **kwargs) as parameters - this can cause some potential issues in the future if someone starts using multiple inheritance in this class hierarchy\n\nwhat about preserving the signature with:\n\n    new_kwargs \u003d {\u0027execute\u0027: self._execute}\n    new_kwargs.update(kwargs)\n    super(SanISCSIDriver, self).__init__(*args, **new_kwargs)","commit_id":"11b0525360559000bc7045cbe3d33a2fc2c098e1"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"5c51fb49117d68e8f3b661d42d4681fb63444545","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def __init__(self, execute\u003dNone):"},{"line_number":90,"context_line":"        if execute is None:"},{"line_number":91,"context_line":"            execute \u003d self._execute"},{"line_number":92,"context_line":"        super(SanISCSIDriver, self).__init__(execute\u003dexecute)"},{"line_number":93,"context_line":"        self.run_local \u003d FLAGS.san_is_local"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FGjM%3D","line":91,"in_reply_to":"AAAALH%2F%2FG5A%3D","updated":"2012-10-19 09:24:14.000000000","message":"I think, such hidden argument handling is bad. Smth like this:\n\n   def __init__(self, execute\u003dNone, *args, **kwargs):\n        if execute is None:\n            execute \u003d self._execute\n        super(SanISCSIDriver, self).__init__(execute, *args, **kwargs)\n\nwould be better. We know for sure that core VolumeDriver accepts execute as the first argument.","commit_id":"11b0525360559000bc7045cbe3d33a2fc2c098e1"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"88a8d9e358b72617ee321846dde0ebf5b8008f2d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        if self.run_local:"},{"line_number":122,"context_line":"            return utils.execute(*cmd, **kwargs)"},{"line_number":123,"context_line":"        else:"},{"line_number":124,"context_line":"            check_exit_code \u003d kwargs.pop(\u0027check_exit_code\u0027, True)"},{"line_number":125,"context_line":"            command \u003d \u0027 \u0027.join(cmd)"},{"line_number":126,"context_line":"            return self._run_ssh(command, check_exit_code)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FG44%3D","line":124,"updated":"2012-10-18 14:10:41.000000000","message":"This changes the default as far as I can tell, but wasn\u0027t included in the commit message. Intended or accidental?","commit_id":"11b0525360559000bc7045cbe3d33a2fc2c098e1"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"5c51fb49117d68e8f3b661d42d4681fb63444545","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        if self.run_local:"},{"line_number":122,"context_line":"            return utils.execute(*cmd, **kwargs)"},{"line_number":123,"context_line":"        else:"},{"line_number":124,"context_line":"            check_exit_code \u003d kwargs.pop(\u0027check_exit_code\u0027, True)"},{"line_number":125,"context_line":"            command \u003d \u0027 \u0027.join(cmd)"},{"line_number":126,"context_line":"            return self._run_ssh(command, check_exit_code)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FGjI%3D","line":124,"in_reply_to":"AAAALH%2F%2FG44%3D","updated":"2012-10-19 09:24:14.000000000","message":"check_exit_code defaults to True everywhere except this line. We should get an exception when a command fails by default. I guess, it was a misprint.","commit_id":"11b0525360559000bc7045cbe3d33a2fc2c098e1"}]}
