)]}'
{"nova/api/ec2/cloud.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                            kwargs.get(\u0027display_name\u0027),"},{"line_number":921,"context_line":"                            kwargs.get(\u0027display_description\u0027),"},{"line_number":922,"context_line":"                            snapshot,"},{"line_number":923,"context_line":"                            availability_zone\u003dkwargs.get(\u0027availability_zone\u0027))"},{"line_number":924,"context_line":"        # TODO(vish): Instance should be None at db layer instead of"},{"line_number":925,"context_line":"        #             trying to lazy load, but for now we turn it into"},{"line_number":926,"context_line":"        #             a dict to avoid an error."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F83Q%3D","line":923,"updated":"2012-01-18 21:44:08.000000000","message":"the original indentation was correct, see HACKING","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"}],"nova/api/openstack/compute/contrib/virtual_storage_arrays.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        vsa \u003d body[\u0027vsa\u0027]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        display_name \u003d vsa.get(\u0027display_name\u0027)"},{"line_number":171,"context_line":"        vc_type \u003d vsa.get(\u0027vc_type\u0027, FLAGS.default_vsa_instance_type)"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            instance_type \u003d instance_types.get_instance_type_by_name(vc_type)"},{"line_number":174,"context_line":"        except exception.NotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F83M%3D","line":171,"updated":"2012-01-18 21:44:08.000000000","message":"Is this not an API change?\n\nDo we not need to warn people if we want to do this?\n\nWhy is the API change needed?\n\nAm I missing something?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                    locals(), context\u003dcontext)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        args \u003d dict(display_name\u003ddisplay_name,"},{"line_number":181,"context_line":"                display_description\u003dvsa.get(\u0027display_description\u0027),"},{"line_number":182,"context_line":"                instance_type\u003dinstance_type,"},{"line_number":183,"context_line":"                storage\u003dvsa.get(\u0027storage\u0027),"},{"line_number":184,"context_line":"                shared\u003dvsa.get(\u0027shared\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F83I%3D","line":181,"updated":"2012-01-18 21:44:08.000000000","message":"API change?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        if body is None:"},{"line_number":211,"context_line":"            ip \u003d \u0027auto\u0027"},{"line_number":212,"context_line":"        else:"},{"line_number":213,"context_line":"            ip \u003d body.get(\u0027ip_address\u0027, \u0027auto\u0027)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        LOG.audit(_(\"Associate address %(ip)s to VSA %(id)s\"),"},{"line_number":216,"context_line":"                    locals(), context\u003dcontext)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F83E%3D","line":213,"updated":"2012-01-18 21:44:08.000000000","message":"API change?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        if body is None:"},{"line_number":239,"context_line":"            ip \u003d \u0027auto\u0027"},{"line_number":240,"context_line":"        else:"},{"line_number":241,"context_line":"            ip \u003d body.get(\u0027ip_address\u0027, \u0027auto\u0027)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        LOG.audit(_(\"Disassociate address from VSA %(id)s\"),"},{"line_number":244,"context_line":"                    locals(), context\u003dcontext)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F83A%3D","line":241,"updated":"2012-01-18 21:44:08.000000000","message":"API change?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        new_volume \u003d self.volume_api.create(context,"},{"line_number":337,"context_line":"                            size,"},{"line_number":338,"context_line":"                            vol.get(\u0027display_name\u0027),"},{"line_number":339,"context_line":"                            vol.get(\u0027display_description\u0027),"},{"line_number":340,"context_line":"                            None,"},{"line_number":341,"context_line":"                            volume_type\u003dvolume_type,"},{"line_number":342,"context_line":"                            metadata\u003ddict(from_vsa_id\u003dstr(vsa_id)),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F828%3D","line":339,"updated":"2012-01-18 21:44:08.000000000","message":"API changes?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                            {\u0027display_description\u0027: \u0027display_description\u0027},"},{"line_number":362,"context_line":"                            {\u0027status\u0027: \u0027status\u0027},"},{"line_number":363,"context_line":"                            {\u0027provider_location\u0027: \u0027provider_location\u0027},"},{"line_number":364,"context_line":"                            {\u0027provider_auth\u0027: \u0027provider_auth\u0027}]"},{"line_number":365,"context_line":"        changes \u003d {}"},{"line_number":366,"context_line":"        for field in updatable_fields:"},{"line_number":367,"context_line":"            key \u003d field.keys()[0]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F824%3D","line":364,"updated":"2012-01-18 21:44:08.000000000","message":"API changes?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"}],"nova/api/openstack/compute/contrib/volumes.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                                            metadata\u003dmetadata)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Work around problem that instance is lazy-loaded..."},{"line_number":210,"context_line":"        new_volume \u003d self.volume_api.get(context, new_volume[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        retval \u003d _translate_volume_detail_view(context, new_volume)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F82s%3D","side":"PARENT","line":210,"updated":"2012-01-18 21:44:08.000000000","message":"Why are you removing this code?\n\nPlease leave the code there for now and submit a separate patch to remove it if you can explain why the code was needed before but not anymore","commit_id":"3972390d286ba487a53a27fa59a6cc1b0e2573ba"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                                        volume_type\u003dvol_type,"},{"line_number":210,"context_line":"                                        metadata\u003dmetadata,"},{"line_number":211,"context_line":"                                        availability_zone\u003davailability_zone)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        retval \u003d _translate_volume_detail_view(context, new_volume)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        return {\u0027volume\u0027: retval}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F820%3D","line":212,"updated":"2012-01-18 21:44:08.000000000","message":"Original indentation was correct","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"}],"nova/api/openstack/volume/volumes.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # Work around problem that instance is lazy-loaded..."},{"line_number":197,"context_line":"        new_volume \u003d self.volume_api.get(context, new_volume[\u0027id\u0027])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        retval \u003d _translate_volume_detail_view(context, new_volume)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        return {\u0027volume\u0027: retval}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F82k%3D","side":"PARENT","line":198,"updated":"2012-01-18 21:44:08.000000000","message":"Again, why is it safe to remove this code now?\n\nPlease make this change separately","commit_id":"3972390d286ba487a53a27fa59a6cc1b0e2573ba"}],"nova/tests/api/openstack/compute/contrib/test_volumes.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"26eb205b2f46c5300f793cdbf93cbd1f79d57499","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import json"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from lxml import etree"},{"line_number":20,"context_line":"import stubout"},{"line_number":21,"context_line":"import webob"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import nova"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F93I%3D","line":20,"updated":"2012-01-16 18:14:27.000000000","message":"unneeded","commit_id":"c9a71e7c4b468cb6a5434463d72cf2ae0f8d72c1"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"26eb205b2f46c5300f793cdbf93cbd1f79d57499","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    return {\u0027id\u0027: volume_id}"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"class VolumeApiTest(test.TestCase):"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def setUp(self, test_obj\u003dNone, test_objs\u003dNone):"},{"line_number":161,"context_line":"        super(VolumeApiTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F920%3D","line":158,"updated":"2012-01-16 18:14:27.000000000","message":"I would prefer that this test goes in nova/tests/api/volume/test_volumes and tests the volume api instead of the compute extension.  The extension is going to be deprecated.","commit_id":"c9a71e7c4b468cb6a5434463d72cf2ae0f8d72c1"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"26eb205b2f46c5300f793cdbf93cbd1f79d57499","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def setUp(self, test_obj\u003dNone, test_objs\u003dNone):"},{"line_number":161,"context_line":"        super(VolumeApiTest, self).setUp()"},{"line_number":162,"context_line":"        self.stubs \u003d stubout.StubOutForTesting()"},{"line_number":163,"context_line":"        fakes.FakeAuthManager.reset_fake_data()"},{"line_number":164,"context_line":"        fakes.FakeAuthDatabase.data \u003d {}"},{"line_number":165,"context_line":"        fakes.stub_out_networking(self.stubs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F93M%3D","line":162,"updated":"2012-01-16 18:14:27.000000000","message":"unneeded.  already done in the base class","commit_id":"c9a71e7c4b468cb6a5434463d72cf2ae0f8d72c1"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class VolumeApiTest(test.TestCase):"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def setUp(self, test_obj\u003dNone, test_objs\u003dNone):"},{"line_number":160,"context_line":"        super(VolumeApiTest, self).setUp()"},{"line_number":161,"context_line":"        fakes.FakeAuthManager.reset_fake_data()"},{"line_number":162,"context_line":"        fakes.FakeAuthDatabase.data \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F82g%3D","line":159,"updated":"2012-01-18 21:44:08.000000000","message":"The test_obj args are unused, right?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"}],"nova/volume/manager.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"b14d2d081841b8803b41733c9286fb3e6401a815","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            else:"},{"line_number":92,"context_line":"                LOG.info(_(\"volume %s: skipping export\"), volume[\u0027name\u0027])"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def create_volume(self, context, volume_id, snapshot_id\u003dNone, **_kwargs):"},{"line_number":95,"context_line":"        \"\"\"Creates and exports the volume.\"\"\""},{"line_number":96,"context_line":"        context \u003d context.elevated()"},{"line_number":97,"context_line":"        volume_ref \u003d self.db.volume_get(context, volume_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAD3%2F%2F82c%3D","line":94,"updated":"2012-01-18 21:44:08.000000000","message":"Why _kwargs not kwargs?","commit_id":"442cdcc4b0598ce6816d2c38548c064590e14e08"}]}
