)]}'
{"cinder/api/v1/volume_metadata.py":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"13df8419ba7fece6a48d46e925ed3a7b7b1892fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2011 OpenStack LLC."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FjPk%3D","line":3,"updated":"2013-01-16 12:25:44.000000000","message":"2013","commit_id":"3ee84d976051f2f732135baac88d6f74da6bd61f"}],"cinder/tests/api/v1/test_volume_metadata.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"43e8d889d7a2a96b5ad5ad1d7bb125648900b903","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"    return metadata"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def stub_volume_no_metadata():"},{"line_number":69,"context_line":"    return {}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fe2k%3D","line":67,"updated":"2013-01-19 19:00:26.000000000","message":"nothing is using this.","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"adc959756076990e13f759b05e8e604ebbcfc2c5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"    return metadata"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def stub_volume_no_metadata():"},{"line_number":69,"context_line":"    return {}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fet0%3D","line":67,"in_reply_to":"AAAAM3%2F%2Fe2k%3D","updated":"2013-01-19 19:34:09.000000000","message":"Done","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"43e8d889d7a2a96b5ad5ad1d7bb125648900b903","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        metadata[\u0027metadata\u0027][\u0027key%i\u0027 % num] \u003d \"blah\""},{"line_number":76,"context_line":"    return metadata"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def return_volume(context, volume_id):"},{"line_number":80,"context_line":"    return {\u0027id\u0027: \u00270cc3346e-9fef-4445-abe6-5d2b2690ec64\u0027,"},{"line_number":81,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fe2s%3D","line":78,"updated":"2013-01-19 19:00:26.000000000","message":"what\u0027s the difference between this and return_volume_by_id()? Also nothing appears to be using return_volume().","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"adc959756076990e13f759b05e8e604ebbcfc2c5","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        metadata[\u0027metadata\u0027][\u0027key%i\u0027 % num] \u003d \"blah\""},{"line_number":76,"context_line":"    return metadata"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def return_volume(context, volume_id):"},{"line_number":80,"context_line":"    return {\u0027id\u0027: \u00270cc3346e-9fef-4445-abe6-5d2b2690ec64\u0027,"},{"line_number":81,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fetw%3D","line":78,"in_reply_to":"AAAAM3%2F%2Fe2s%3D","updated":"2013-01-19 19:34:09.000000000","message":"Done","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"43e8d889d7a2a96b5ad5ad1d7bb125648900b903","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"},{"line_number":82,"context_line":"            \u0027metadata\u0027: {}}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def return_volume_by_id(context, volume_id):"},{"line_number":86,"context_line":"    return {\u0027id\u0027: \u00270cc3346e-9fef-4445-abe6-5d2b2690ec64\u0027,"},{"line_number":87,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fe2o%3D","line":84,"updated":"2013-01-19 19:00:26.000000000","message":"nothing is using this","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"adc959756076990e13f759b05e8e604ebbcfc2c5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"},{"line_number":82,"context_line":"            \u0027metadata\u0027: {}}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def return_volume_by_id(context, volume_id):"},{"line_number":86,"context_line":"    return {\u0027id\u0027: \u00270cc3346e-9fef-4445-abe6-5d2b2690ec64\u0027,"},{"line_number":87,"context_line":"            \u0027name\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fets%3D","line":84,"in_reply_to":"AAAAM3%2F%2Fe2o%3D","updated":"2013-01-19 19:34:09.000000000","message":"Done","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"43e8d889d7a2a96b5ad5ad1d7bb125648900b903","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key2\u0027)"},{"line_number":182,"context_line":"        req.method \u003d \u0027DELETE\u0027"},{"line_number":183,"context_line":"        res \u003d self.controller.delete(req, self.id, \u0027key2\u0027)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        self.assertEqual(None, res)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def test_delete_nonexistent_volume(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FeuQ%3D","line":184,"updated":"2013-01-19 19:00:26.000000000","message":"Should at the very least get a 204.","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"adc959756076990e13f759b05e8e604ebbcfc2c5","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key2\u0027)"},{"line_number":182,"context_line":"        req.method \u003d \u0027DELETE\u0027"},{"line_number":183,"context_line":"        res \u003d self.controller.delete(req, self.id, \u0027key2\u0027)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        self.assertEqual(None, res)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def test_delete_nonexistent_volume(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Feto%3D","line":184,"in_reply_to":"AAAAM3%2F%2FeuQ%3D","updated":"2013-01-19 19:34:09.000000000","message":"Yeah, the wsgi.response decorator didn\u0027t work the way I though it would, but really it should just return a 200 in this case as the delete has completed so I added a webob response 200 instead.","commit_id":"7bd96ae85a99e200c4cdbada0cf2b19dbb8cc3aa"}],"cinder/volume/api.py":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"13df8419ba7fece6a48d46e925ed3a7b7b1892fe","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    def _check_metadata_properties(self, context, metadata\u003dNone):"},{"line_number":517,"context_line":"        if not metadata:"},{"line_number":518,"context_line":"            metadata \u003d {}"},{"line_number":519,"context_line":"        num_items \u003d len(metadata)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        for k, v in metadata.iteritems():"},{"line_number":522,"context_line":"            if len(k) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FjPQ%3D","line":519,"updated":"2013-01-16 12:25:44.000000000","message":"num_items is unused","commit_id":"3ee84d976051f2f732135baac88d6f74da6bd61f"}]}
