)]}'
{"nova/virt/xenapi/agent.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"7f4ee07403b2219ebd7d64436c9da83723179663","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        while True:"},{"line_number":162,"context_line":"            try:"},{"line_number":163,"context_line":"                return self._call_agent(\u0027version\u0027)[\u0027message\u0027]"},{"line_number":164,"context_line":"            except exception.AgentTimeout as e:"},{"line_number":165,"context_line":"                if time.time() \u003e expiration:"},{"line_number":166,"context_line":"                    raise"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2FsiA%3D","line":164,"updated":"2013-06-12 16:21:48.000000000","message":"e unused","commit_id":"e5536ad25037ac87c9781557634744c69640410b"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"7f4ee07403b2219ebd7d64436c9da83723179663","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        except exception.AgentError as exc:"},{"line_number":179,"context_line":"            # Silently fail for agent upgrades"},{"line_number":180,"context_line":"            LOG.warning(_(\"Unable to update the agent due \""},{"line_number":181,"context_line":"                          \"to: %(exc)s\") % locals(),"},{"line_number":182,"context_line":"                        instance\u003dself.instance)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def _exchange_key_with_agent(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2Fsh4%3D","line":181,"updated":"2013-06-12 16:21:48.000000000","message":"locals","commit_id":"e5536ad25037ac87c9781557634744c69640410b"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6279f9374d2165e1d3852c9376a0d29068eb4a34","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    if ret[\u0027returncode\u0027] !\u003d success_code:"},{"line_number":129,"context_line":"        LOG.error(_(\u0027The agent call to %(method)s returned an \u0027"},{"line_number":130,"context_line":"                    \u0027an error: %(ret)r\u0027), locals(),"},{"line_number":131,"context_line":"                  instance\u003dinstance)"},{"line_number":132,"context_line":"        raise exception.AgentError(method\u003dmethod)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPX%2F%2FpP8%3D","line":130,"updated":"2013-06-13 16:03:35.000000000","message":"I\u0027m not concerned about the existing uses of locals() in the messages above, since they already existed.  However, this is new, and so should not be using locals().  (Also, it would be nice to go ahead and update the above messages as well…)","commit_id":"52a0719e486634d44ae405681a4cff2e86e65b66"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"ff2e3026444dd93b4930690054e75ec7beaeebec","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        expiration \u003d time.time() + CONF.agent_version_timeout"},{"line_number":164,"context_line":"        while True:"},{"line_number":165,"context_line":"            try:"},{"line_number":166,"context_line":"                return self._call_agent(\u0027version\u0027)"},{"line_number":167,"context_line":"            except exception.AgentTimeout:"},{"line_number":168,"context_line":"                if time.time() \u003e expiration:"},{"line_number":169,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F9DM%3D","line":166,"updated":"2013-06-17 14:34:12.000000000","message":"You might want to put a sleep(1) after each failed call to keep this from being too abusive.","commit_id":"e54c926330891e487345129576187be6b1049c1c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e2f5eb6e3a280609419667a8f59f9d84ab0b78f8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        expiration \u003d time.time() + CONF.agent_version_timeout"},{"line_number":164,"context_line":"        while True:"},{"line_number":165,"context_line":"            try:"},{"line_number":166,"context_line":"                return self._call_agent(\u0027version\u0027)"},{"line_number":167,"context_line":"            except exception.AgentTimeout:"},{"line_number":168,"context_line":"                if time.time() \u003e expiration:"},{"line_number":169,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2F36I%3D","line":166,"in_reply_to":"AAAAPn%2F%2F9DM%3D","updated":"2013-06-19 10:18:03.000000000","message":"But _call_agent makes an HTTP call to XenAPI. I didn\u0027t think we needed sleep in those cases?","commit_id":"e54c926330891e487345129576187be6b1049c1c"}],"nova/virt/xenapi/fake.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"7f4ee07403b2219ebd7d64436c9da83723179663","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    def _plugin_agent_agentupdate(self, method, args):"},{"line_number":571,"context_line":"        url \u003d args[\"url\"]"},{"line_number":572,"context_line":"        md5 \u003d args[\"md5sum\"]"},{"line_number":573,"context_line":"        message \u003d \"success with %(url)s and hash:%(md5)s\" % locals()"},{"line_number":574,"context_line":"        return as_json(returncode\u003d\u00270\u0027, message\u003dmessage)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def _plugin_noop(self, method, args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2FsiU%3D","line":573,"updated":"2013-06-12 16:21:48.000000000","message":"Please don\u0027t use locals()","commit_id":"e5536ad25037ac87c9781557634744c69640410b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0efa0d7505673d1c42d92833a0779f0241afbabb","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    def _plugin_agent_agentupdate(self, method, args):"},{"line_number":571,"context_line":"        url \u003d args[\"url\"]"},{"line_number":572,"context_line":"        md5 \u003d args[\"md5sum\"]"},{"line_number":573,"context_line":"        message \u003d \"success with %(url)s and hash:%(md5)s\" % locals()"},{"line_number":574,"context_line":"        return as_json(returncode\u003d\u00270\u0027, message\u003dmessage)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def _plugin_noop(self, method, args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2FqOM%3D","line":573,"in_reply_to":"AAAAPX%2F%2FsiU%3D","updated":"2013-06-13 09:34:20.000000000","message":"Sorry, bad habit.","commit_id":"e5536ad25037ac87c9781557634744c69640410b"}]}
