)]}'
{"openstack_dashboard/dashboards/admin/volumes/tests.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VolumeTests(test.BaseAdminViewTests):"},{"line_number":26,"context_line":"    @test.create_stubs({api: (\u0027server_list\u0027,"},{"line_number":27,"context_line":"                              \u0027volume_list\u0027,"},{"line_number":28,"context_line":"                              \u0027volume_type_list\u0027)})"},{"line_number":29,"context_line":"    def test_index(self):"},{"line_number":30,"context_line":"        api.volume_list(IsA(http.HttpRequest), search_opts\u003d{"},{"line_number":31,"context_line":"                            \u0027all_tenants\u0027: 1}).AndReturn(self.volumes.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9d4%3D","line":28,"updated":"2012-10-24 18:36:02.000000000","message":"trailing comma and newline before punctuation for easier maintenance","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"7a31d07e93c6681a3b601c63021a173afdb99f7b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VolumeTests(test.BaseAdminViewTests):"},{"line_number":26,"context_line":"    @test.create_stubs({api: (\u0027server_list\u0027,"},{"line_number":27,"context_line":"                              \u0027volume_list\u0027,"},{"line_number":28,"context_line":"                              \u0027volume_type_list\u0027)})"},{"line_number":29,"context_line":"    def test_index(self):"},{"line_number":30,"context_line":"        api.volume_list(IsA(http.HttpRequest), search_opts\u003d{"},{"line_number":31,"context_line":"                            \u0027all_tenants\u0027: 1}).AndReturn(self.volumes.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F8ts%3D","line":28,"in_reply_to":"AAAALn%2F%2F9d4%3D","updated":"2012-10-25 12:05:22.000000000","message":"OK with the comma, but I\u0027ll not add the newline - to be consistent with the other parts of the code in Dashboard where no newline is used in similar code blocks.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}],"openstack_dashboard/dashboards/project/volumes/forms.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    name \u003d forms.CharField(max_length\u003d\"255\", label\u003d_(\"Volume Name\"))"},{"line_number":27,"context_line":"    description \u003d forms.CharField(widget\u003dforms.Textarea,"},{"line_number":28,"context_line":"            label\u003d_(\"Description\"), required\u003dFalse)"},{"line_number":29,"context_line":"    type \u003d forms.ChoiceField(label\u003d_(\"Type\"),"},{"line_number":30,"context_line":"                             required\u003dFalse)"},{"line_number":31,"context_line":"    size \u003d forms.IntegerField(min_value\u003d1, label\u003d_(\"Size (GB)\"))"},{"line_number":32,"context_line":"    snapshot_source \u003d forms.ChoiceField(label\u003d_(\"Use snapshot as a source\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9eU%3D","line":29,"updated":"2012-10-24 18:36:02.000000000","message":"type shadows a builtin","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"199e0791b021035ea3403a0274862891a3556da6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    name \u003d forms.CharField(max_length\u003d\"255\", label\u003d_(\"Volume Name\"))"},{"line_number":27,"context_line":"    description \u003d forms.CharField(widget\u003dforms.Textarea,"},{"line_number":28,"context_line":"            label\u003d_(\"Description\"), required\u003dFalse)"},{"line_number":29,"context_line":"    type \u003d forms.ChoiceField(label\u003d_(\"Type\"),"},{"line_number":30,"context_line":"                             required\u003dFalse)"},{"line_number":31,"context_line":"    size \u003d forms.IntegerField(min_value\u003d1, label\u003d_(\"Size (GB)\"))"},{"line_number":32,"context_line":"    snapshot_source \u003d forms.ChoiceField(label\u003d_(\"Use snapshot as a source\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9Pk%3D","line":29,"in_reply_to":"AAAALn%2F%2F9eU%3D","updated":"2012-10-24 22:26:22.000000000","message":"Due to the magic in the django form metaclass, it actually doesn\u0027t. It ends up in form.fields[\u0027type\u0027] after the class is constructed at runtime.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}],"openstack_dashboard/dashboards/project/volumes/tables.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    name \u003d tables.Column(\"display_name\","},{"line_number":168,"context_line":"                         verbose_name\u003d_(\"Name\"),"},{"line_number":169,"context_line":"                         link\u003d\"horizon:project:volumes:detail\")"},{"line_number":170,"context_line":"    type \u003d tables.Column(get_volume_type,"},{"line_number":171,"context_line":"                         verbose_name\u003d_(\"Type\"),"},{"line_number":172,"context_line":"                         empty_value\u003d\"-\")"},{"line_number":173,"context_line":"    attachments \u003d AttachmentColumn(\"attachments\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9eg%3D","line":170,"updated":"2012-10-24 18:36:02.000000000","message":"\"type\" isn\u0027t a great Python variable name (it shadows a builtin) or database column name (it\u0027s not quite a reserved word, but it has special meaning in some places).  Maybe volume_type?","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"199e0791b021035ea3403a0274862891a3556da6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    name \u003d tables.Column(\"display_name\","},{"line_number":168,"context_line":"                         verbose_name\u003d_(\"Name\"),"},{"line_number":169,"context_line":"                         link\u003d\"horizon:project:volumes:detail\")"},{"line_number":170,"context_line":"    type \u003d tables.Column(get_volume_type,"},{"line_number":171,"context_line":"                         verbose_name\u003d_(\"Type\"),"},{"line_number":172,"context_line":"                         empty_value\u003d\"-\")"},{"line_number":173,"context_line":"    attachments \u003d AttachmentColumn(\"attachments\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9Pc%3D","line":170,"in_reply_to":"AAAALn%2F%2F9eg%3D","updated":"2012-10-24 22:26:22.000000000","message":"same as previous comment, though I don\u0027t mind if it\u0027s made more specific either.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}],"openstack_dashboard/dashboards/project/volumes/tests.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @test.create_stubs({api: (\u0027tenant_quota_usages\u0027,"},{"line_number":34,"context_line":"                              \u0027volume_create\u0027,"},{"line_number":35,"context_line":"                              \u0027volume_snapshot_list\u0027,"},{"line_number":36,"context_line":"                              \u0027volume_type_list\u0027)})"},{"line_number":37,"context_line":"    def test_create_volume(self):"},{"line_number":38,"context_line":"        volume \u003d self.volumes.first()"},{"line_number":39,"context_line":"        volume_type \u003d self.volume_types.first()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9fw%3D","line":36,"updated":"2012-10-24 18:36:02.000000000","message":"Better to end the tuple with a trailing comma and put the } and ) on separate lines, for easier modification in the future.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                    \u0027method\u0027: u\u0027CreateForm\u0027,"},{"line_number":44,"context_line":"                    \u0027type\u0027: volume_type.name,"},{"line_number":45,"context_line":"                    \u0027size\u0027: 50,"},{"line_number":46,"context_line":"                    \u0027snapshot_source\u0027: \u0027\u0027}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        api.volume_type_list(IsA(http.HttpRequest)).\\"},{"line_number":49,"context_line":"                             AndReturn(self.volume_types.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9fs%3D","line":46,"updated":"2012-10-24 18:36:02.000000000","message":"trailing comma and newline before }","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"7a31d07e93c6681a3b601c63021a173afdb99f7b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                    \u0027method\u0027: u\u0027CreateForm\u0027,"},{"line_number":44,"context_line":"                    \u0027type\u0027: volume_type.name,"},{"line_number":45,"context_line":"                    \u0027size\u0027: 50,"},{"line_number":46,"context_line":"                    \u0027snapshot_source\u0027: \u0027\u0027}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        api.volume_type_list(IsA(http.HttpRequest)).\\"},{"line_number":49,"context_line":"                             AndReturn(self.volume_types.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F8tg%3D","line":46,"in_reply_to":"AAAALn%2F%2F9fs%3D","updated":"2012-10-25 12:05:22.000000000","message":"Actually newline here is not consistent with the other part of the project.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    \u0027method\u0027: u\u0027CreateForm\u0027,"},{"line_number":79,"context_line":"                    \u0027size\u0027: 50,"},{"line_number":80,"context_line":"                    \u0027type\u0027: \u0027\u0027,"},{"line_number":81,"context_line":"                    \u0027snapshot_source\u0027: snapshot.id}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # first call- with url param"},{"line_number":84,"context_line":"        api.volume_type_list(IsA(http.HttpRequest)).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9fY%3D","line":81,"updated":"2012-10-24 18:36:02.000000000","message":"trailing comma and newline before }","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}],"openstack_dashboard/dashboards/project/volumes/views.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class VolumeTableMixIn():"},{"line_number":42,"context_line":"    def _get_volumes(self, search_opts\u003dNone):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            return api.volume_list(self.request, search_opts\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9gE%3D","line":41,"updated":"2012-10-24 18:36:02.000000000","message":"Did you mean to make an old-style class here?  All the other View classes in Horizon inherit from something.","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":2455,"name":"Tihomir Trifonov","email":"t.trifonov@gmail.com","username":"ttrifonov"},"change_message_id":"7a31d07e93c6681a3b601c63021a173afdb99f7b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class VolumeTableMixIn():"},{"line_number":42,"context_line":"    def _get_volumes(self, search_opts\u003dNone):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            return api.volume_list(self.request, search_opts\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F8tc%3D","line":41,"in_reply_to":"AAAALn%2F%2F9PQ%3D","updated":"2012-10-25 12:05:22.000000000","message":"Ouch..","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"change_message_id":"199e0791b021035ea3403a0274862891a3556da6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class VolumeTableMixIn():"},{"line_number":42,"context_line":"    def _get_volumes(self, search_opts\u003dNone):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            return api.volume_list(self.request, search_opts\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9PQ%3D","line":41,"in_reply_to":"AAAALn%2F%2F9gE%3D","updated":"2012-10-24 22:26:22.000000000","message":"This should definitely inherit from \"object\".","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}],"openstack_dashboard/test/test_data/nova_data.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    TEST.volumes.add(attached_volume)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    vol_type1 \u003d volume_types.VolumeType(volume_types.VolumeTypeManager(None),"},{"line_number":188,"context_line":"                                       {\u0027id\u0027: 1,"},{"line_number":189,"context_line":"                                        \u0027name\u0027: \u0027vol_type_1\u0027})"},{"line_number":190,"context_line":"    vol_type2 \u003d volume_types.VolumeType(volume_types.VolumeTypeManager(None),"},{"line_number":191,"context_line":"                                       {\u0027id\u0027: 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9g0%3D","line":188,"updated":"2012-10-24 18:36:02.000000000","message":"1 space before the { for consistency","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"00c06ac2a319472c4a1aaef859995287e1f66230","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                                       {\u0027id\u0027: 1,"},{"line_number":189,"context_line":"                                        \u0027name\u0027: \u0027vol_type_1\u0027})"},{"line_number":190,"context_line":"    vol_type2 \u003d volume_types.VolumeType(volume_types.VolumeTypeManager(None),"},{"line_number":191,"context_line":"                                       {\u0027id\u0027: 2,"},{"line_number":192,"context_line":"                                        \u0027name\u0027: \u0027vol_type_2\u0027})"},{"line_number":193,"context_line":"    TEST.volume_types.add(vol_type1, vol_type2)"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F9gw%3D","line":191,"updated":"2012-10-24 18:36:02.000000000","message":"1 space before the {","commit_id":"7ddd4265d48bd408ad187f9afc14d48c8200e9da"}]}
