)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"5c22968f9ce7a6b465fc1bc7943441ed56553cbe","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2012-11-01 15:53:14 +0000"},{"line_number":4,"context_line":"Commit:     Kyle Mestery \u003ckmestery@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2012-11-01 15:53:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for Bug #1070460."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Had to add _formatters to CreateRouter, and modify"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAALn%2F%2F2SY%3D","line":6,"updated":"2012-11-01 16:04:37.000000000","message":"Please make sure the commit message follows the Openstack format. See http://wiki.openstack.org/GerritWorkflow","commit_id":"a11b276abb5f685a2adb33aa718b36bf9d1e9ad8"}],"quantumclient/quantum/v2_0/__init__.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \"\""},{"line_number":187,"context_line":"                    for _item in v:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALn%2F%2FyiM%3D","line":184,"updated":"2012-11-06 14:01:00.000000000","message":"Please see Mark\u0027s comment in https://review.openstack.org/#/c/15100/1/quantumclient/quantum/v2_0/__init__.py","commit_id":"1277c3dc76cd034208ebebedbca6a44256bf7b11"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \"\""},{"line_number":187,"context_line":"                    for _item in v:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALn%2F%2FuCA%3D","line":184,"in_reply_to":"AAAALn%2F%2FuHI%3D","updated":"2012-11-10 03:33:59.000000000","message":"Sorry, I got caught up in some other work, just getting back to this now. I should have a new version of this patch posted soon.","commit_id":"1277c3dc76cd034208ebebedbca6a44256bf7b11"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"58fd042db14fa33d274dd9bf6550adb7a3fd2513","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \"\""},{"line_number":187,"context_line":"                    for _item in v:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALn%2F%2FuHI%3D","line":184,"in_reply_to":"AAAALn%2F%2FyCg%3D","updated":"2012-11-10 00:19:57.000000000","message":"How is it going, what is the difference?","commit_id":"1277c3dc76cd034208ebebedbca6a44256bf7b11"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \"\""},{"line_number":187,"context_line":"                    for _item in v:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALn%2F%2FyCg%3D","line":184,"in_reply_to":"AAAALn%2F%2FyiM%3D","updated":"2012-11-06 20:57:02.000000000","message":"I tried this, and the results were not as expected. Instead of simply grabbing the network_id, it appears to grab all data from the dictionary. Will look at it some more and see what might be different in what Mark explained in the bug you mention here.","commit_id":"1277c3dc76cd034208ebebedbca6a44256bf7b11"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"58fd042db14fa33d274dd9bf6550adb7a3fd2513","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        obj_shower \u003d getattr(quantum_client, \"show_%s\" % self.resource)"},{"line_number":446,"context_line":"        data \u003d obj_shower(_id, **params)"},{"line_number":447,"context_line":"        data \u003d format_output_data(self, data)"},{"line_number":448,"context_line":"        if self.resource in data:"},{"line_number":449,"context_line":"            return zip(*sorted(data[self.resource].iteritems()))"},{"line_number":450,"context_line":"        else:"},{"line_number":451,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALn%2F%2FuHM%3D","line":448,"updated":"2012-11-10 00:19:57.000000000","message":"Do we need this line?","commit_id":"1277c3dc76cd034208ebebedbca6a44256bf7b11"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"c184fca663dad88fea559836a7206047a31efb64","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    return result_dict"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3NA%3D","line":182,"updated":"2012-11-19 18:55:10.000000000","message":"Is there any good reason why this isn\u0027t a method of QuantumCommand?","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":179,"context_line":"    return result_dict"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3GA%3D","line":182,"in_reply_to":"AAAAMH%2F%2F3NA%3D","updated":"2012-11-19 19:55:53.000000000","message":"None that I can think of, I\u0027ve made it so.","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"c184fca663dad88fea559836a7206047a31efb64","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \u0027\\n\u0027.join(utils.dumps(i) if isinstance(i, dict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3MY%3D","line":183,"updated":"2012-11-19 18:55:10.000000000","message":"Any reader of the following:\n\n    data \u003d format_output_data(self, data)\n\nwill assume that format_output_data is a pure function, returning a transformed copy of data.  However, actually, it\u0027s not pure: \u0027data\u0027 out is just data in, and indeed the call below works only because of the fact that it\u0027s transforming data in place.\n\n1. Document.  2. Lose the return value, it\u0027s misleading.","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"def format_output_data(self, data):"},{"line_number":183,"context_line":"        if self.resource in data:"},{"line_number":184,"context_line":"            for k, v in data[self.resource].iteritems():"},{"line_number":185,"context_line":"                if isinstance(v, list):"},{"line_number":186,"context_line":"                    value \u003d \u0027\\n\u0027.join(utils.dumps(i) if isinstance(i, dict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3F4%3D","line":183,"in_reply_to":"AAAAMH%2F%2F3MY%3D","updated":"2012-11-19 19:55:53.000000000","message":"Done","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"c184fca663dad88fea559836a7206047a31efb64","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            print \u003e\u003eself.app.stdout, _(\u0027Created a new %s:\u0027 % self.resource)"},{"line_number":261,"context_line":"        else:"},{"line_number":262,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":263,"context_line":"        data \u003d format_output_data(self, data)"},{"line_number":264,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3NE%3D","line":263,"updated":"2012-11-19 18:55:10.000000000","message":"Misleading function.  Actually changes \u0027data\u0027 the input.  The return value is the same thing as the input, as it happens, but...","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":260,"context_line":"            print \u003e\u003eself.app.stdout, _(\u0027Created a new %s:\u0027 % self.resource)"},{"line_number":261,"context_line":"        else:"},{"line_number":262,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":263,"context_line":"        data \u003d format_output_data(self, data)"},{"line_number":264,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F3F0%3D","line":263,"in_reply_to":"AAAAMH%2F%2F3NE%3D","updated":"2012-11-19 19:55:53.000000000","message":"Done","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"58fd042db14fa33d274dd9bf6550adb7a3fd2513","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        else:"},{"line_number":262,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":263,"context_line":"        data \u003d format_output_data(self, data)"},{"line_number":264,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"class UpdateCommand(QuantumCommand):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F8Gc%3D","line":264,"updated":"2012-11-15 00:20:20.000000000","message":"formatted data is not used in this statement. I know it works (probably), but it seems strange.","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":261,"context_line":"        else:"},{"line_number":262,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":263,"context_line":"        data \u003d format_output_data(self, data)"},{"line_number":264,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"class UpdateCommand(QuantumCommand):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F6z4%3D","line":264,"in_reply_to":"AAAAMH%2F%2F8Gc%3D","updated":"2012-11-15 20:25:59.000000000","message":"I think this is the crux of this change, actually. Without this, the formatting is incorrect. Can you clarify why you have a concern here?","commit_id":"2e1d6ebaaf0f1b7eea199ae3bff6f7120237271b"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":259,"context_line":"            print \u003e\u003eself.app.stdout, _(\u0027Created a new %s:\u0027 % self.resource)"},{"line_number":260,"context_line":"        else:"},{"line_number":261,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":262,"context_line":"        self.format_output_data(data)"},{"line_number":263,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F2rE%3D","line":262,"updated":"2012-11-19 23:13:51.000000000","message":"to move self.format_output_data after 259? and can use use self.format_output_data(info)?","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":259,"context_line":"            print \u003e\u003eself.app.stdout, _(\u0027Created a new %s:\u0027 % self.resource)"},{"line_number":260,"context_line":"        else:"},{"line_number":261,"context_line":"            info \u003d {\u0027\u0027: \u0027\u0027}"},{"line_number":262,"context_line":"        self.format_output_data(data)"},{"line_number":263,"context_line":"        return zip(*sorted(info.iteritems()))"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F1lE%3D","line":262,"in_reply_to":"AAAAMH%2F%2F2rE%3D","updated":"2012-11-20 18:59:46.000000000","message":"Done","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":438,"context_line":"        obj_shower \u003d getattr(quantum_client, \"show_%s\" % self.resource)"},{"line_number":439,"context_line":"        data \u003d obj_shower(_id, **params)"},{"line_number":440,"context_line":"        self.format_output_data(data)"},{"line_number":441,"context_line":"        if self.resource in data:"},{"line_number":442,"context_line":"            return zip(*sorted(data[self.resource].iteritems()))"},{"line_number":443,"context_line":"        else:"},{"line_number":444,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F2q8%3D","line":441,"updated":"2012-11-19 23:13:51.000000000","message":"resource \u003d data[self.resource]\nself.format_output_data(resource)","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":438,"context_line":"        obj_shower \u003d getattr(quantum_client, \"show_%s\" % self.resource)"},{"line_number":439,"context_line":"        data \u003d obj_shower(_id, **params)"},{"line_number":440,"context_line":"        self.format_output_data(data)"},{"line_number":441,"context_line":"        if self.resource in data:"},{"line_number":442,"context_line":"            return zip(*sorted(data[self.resource].iteritems()))"},{"line_number":443,"context_line":"        else:"},{"line_number":444,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F1lA%3D","line":441,"in_reply_to":"AAAAMH%2F%2F2q8%3D","updated":"2012-11-20 18:59:46.000000000","message":"Done","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":439,"context_line":"        data \u003d obj_shower(_id, **params)"},{"line_number":440,"context_line":"        self.format_output_data(data)"},{"line_number":441,"context_line":"        if self.resource in data:"},{"line_number":442,"context_line":"            return zip(*sorted(data[self.resource].iteritems()))"},{"line_number":443,"context_line":"        else:"},{"line_number":444,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F2q0%3D","line":442,"updated":"2012-11-19 23:13:51.000000000","message":"zip(*sorted(resource.iteritems()))","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"unresolved":false,"context_lines":[{"line_number":439,"context_line":"        data \u003d obj_shower(_id, **params)"},{"line_number":440,"context_line":"        self.format_output_data(data)"},{"line_number":441,"context_line":"        if self.resource in data:"},{"line_number":442,"context_line":"            return zip(*sorted(data[self.resource].iteritems()))"},{"line_number":443,"context_line":"        else:"},{"line_number":444,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F1k8%3D","line":442,"in_reply_to":"AAAAMH%2F%2F2q0%3D","updated":"2012-11-20 18:59:46.000000000","message":"Done","commit_id":"e669e55e9ac631b3e7afbf9ce8263c1e87e96d47"}]}
