)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"fa5a16b214401109c8b69abea7f7cb6a3f234ef3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"*tests/storage/base.py"},{"line_number":11,"context_line":"*tools/test-requires"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"I added an assert statement to test_get_resources() function in/tests/storage/base.py to prove that source is not being generated by the generator models.Resource.  Also, I had to add a line in tools/test-requires to use Ming, to get rid ofSKIP messages in my tox output."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I5a407bc8c7ce82a71be7e56705c540ece4573340"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FpQk%3D","line":13,"updated":"2013-04-30 19:51:05.000000000","message":"It would be more clear if you can break the long line :)","commit_id":"0a9f5e08b1dcf1bc62a0084b0dd2d9f1bd990322"}],"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a1b5635e004863b46f371132c4d4e850c0d7ece3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            yield api_models.Resource("},{"line_number":256,"context_line":"                resource_id\u003dmeter.resource_id,"},{"line_number":257,"context_line":"                project_id\u003dmeter.project_id,"},{"line_number":258,"context_line":"                source\u003dmeter.sources[0].id,"},{"line_number":259,"context_line":"                user_id\u003dmeter.user_id,"},{"line_number":260,"context_line":"                metadata\u003dmeter.resource_metadata,"},{"line_number":261,"context_line":"                meter\u003d["}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPH%2F%2F2k4%3D","line":258,"updated":"2013-05-21 17:20:42.000000000","message":"will meter.sources always exists and have at least one member id?\nwill this cause problems for resources created in previous versions?","commit_id":"5bca5b55159e3e2ebcfec3bec6a5b9e50b5ead04"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"83a991e3e37d1b29adfe2a1ca4a937c045021b3d","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            yield api_models.Resource("},{"line_number":256,"context_line":"                resource_id\u003dmeter.resource_id,"},{"line_number":257,"context_line":"                project_id\u003dmeter.project_id,"},{"line_number":258,"context_line":"                source\u003dmeter.sources[0].id,"},{"line_number":259,"context_line":"                user_id\u003dmeter.user_id,"},{"line_number":260,"context_line":"                metadata\u003dmeter.resource_metadata,"},{"line_number":261,"context_line":"                meter\u003d["}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPH%2F%2F0UQ%3D","line":258,"in_reply_to":"AAAAPH%2F%2F2Zg%3D","updated":"2013-05-22 11:49:25.000000000","message":"Yes, that seems valid to me.","commit_id":"5bca5b55159e3e2ebcfec3bec6a5b9e50b5ead04"},{"author":{"_account_id":7399,"name":"Terri Yu","email":"teryu@alum.mit.edu","username":"terriyu"},"change_message_id":"8406726c32a831ce26e4845b2aaff5de9e4c1e68","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            yield api_models.Resource("},{"line_number":256,"context_line":"                resource_id\u003dmeter.resource_id,"},{"line_number":257,"context_line":"                project_id\u003dmeter.project_id,"},{"line_number":258,"context_line":"                source\u003dmeter.sources[0].id,"},{"line_number":259,"context_line":"                user_id\u003dmeter.user_id,"},{"line_number":260,"context_line":"                metadata\u003dmeter.resource_metadata,"},{"line_number":261,"context_line":"                meter\u003d["}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPH%2F%2F2Zg%3D","line":258,"in_reply_to":"AAAAPH%2F%2F2k4%3D","updated":"2013-05-21 18:37:35.000000000","message":"My idea to use that particular line of code came from https://github.com/openstack/ceilometer/commit/912235cfce96889a25f186d7d0089a881204548f#L5L337  \n\nI\u0027m new here, so I\u0027ll have to ask dhellmann or jd__ about this.","commit_id":"5bca5b55159e3e2ebcfec3bec6a5b9e50b5ead04"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a1b5635e004863b46f371132c4d4e850c0d7ece3","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                    unit\u003dmeter.counter_unit,"},{"line_number":305,"context_line":"                    resource_id\u003dresource.id,"},{"line_number":306,"context_line":"                    project_id\u003dresource.project_id,"},{"line_number":307,"context_line":"                    source\u003dresource.sources[0].id,"},{"line_number":308,"context_line":"                    user_id\u003dresource.user_id,"},{"line_number":309,"context_line":"                )"},{"line_number":310,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPH%2F%2F2kw%3D","line":307,"updated":"2013-05-21 17:20:42.000000000","message":"Same concerns.","commit_id":"5bca5b55159e3e2ebcfec3bec6a5b9e50b5ead04"}],"ceilometer/storage/models.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"802aa22d0ef62c6996e0dcb7f6d4ae8c884d4888","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \"\"\""},{"line_number":53,"context_line":"        :param resource_id: UUID of the resource"},{"line_number":54,"context_line":"        :param project_id:  UUID of project owning the resource"},{"line_number":55,"context_line":"        :param source:      the identifier for the user/project id definition   "},{"line_number":56,"context_line":"        :param user_id:     UUID of user owning the resource"},{"line_number":57,"context_line":"        :param metadata:    most current metadata for the resource (a dict)"},{"line_number":58,"context_line":"        :param meter:       list of the meters reporting data for the resource,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPH%2F%2F34s%3D","line":55,"updated":"2013-05-21 08:31:30.000000000","message":"Trailing whitespaces","commit_id":"bbdeb26c8b877e3a7e6735b2c90a97dd95c72485"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"802aa22d0ef62c6996e0dcb7f6d4ae8c884d4888","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    \"\"\"Definition of a meter for which sample data has been collected."},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def __init__(self, name, type, unit, resource_id, project_id, source, "},{"line_number":95,"context_line":"                 user_id):"},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        :param name: name of the meter"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPH%2F%2F34k%3D","line":94,"updated":"2013-05-21 08:31:30.000000000","message":"Trailing whitespace","commit_id":"bbdeb26c8b877e3a7e6735b2c90a97dd95c72485"}],"tests/storage/base.py":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"fa5a16b214401109c8b69abea7f7cb6a3f234ef3","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            assert resource.project_id \u003d\u003d \u0027project-id\u0027"},{"line_number":161,"context_line":"            # brunnhilde (Terri Yu) edit START"},{"line_number":162,"context_line":"            assert resource.source"},{"line_number":163,"context_line":"            # brunnhilde edit END"},{"line_number":164,"context_line":"            assert resource.user_id \u003d\u003d \u0027user-id\u0027"},{"line_number":165,"context_line":"            assert resource.metadata[\u0027display_name\u0027] \u003d\u003d \u0027test-server\u0027"},{"line_number":166,"context_line":"            self.assertIn(models.ResourceMeter(\u0027instance\u0027, \u0027cumulative\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FpQQ%3D","line":163,"updated":"2013-04-30 19:51:05.000000000","message":"(nit): generally, comments is used only if you want to explain the change you post to make it more readable.","commit_id":"0a9f5e08b1dcf1bc62a0084b0dd2d9f1bd990322"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"5946b9110d532fa7774d8ef1a6b28505063c4236","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            assert resource.project_id \u003d\u003d \u0027project-id\u0027"},{"line_number":161,"context_line":"            # brunnhilde (Terri Yu) edit START"},{"line_number":162,"context_line":"            assert resource.source"},{"line_number":163,"context_line":"            # brunnhilde edit END"},{"line_number":164,"context_line":"            assert resource.user_id \u003d\u003d \u0027user-id\u0027"},{"line_number":165,"context_line":"            assert resource.metadata[\u0027display_name\u0027] \u003d\u003d \u0027test-server\u0027"},{"line_number":166,"context_line":"            self.assertIn(models.ResourceMeter(\u0027instance\u0027, \u0027cumulative\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FpM8%3D","line":163,"in_reply_to":"AAAAOn%2F%2FpQQ%3D","updated":"2013-04-30 20:07:14.000000000","message":"Also, this is not your fault since you copied, but using self.assertTrue or any of the asssertSomething function that unittest offers is far better than using just assert.\nWhen test fails, the assert* functions from unittest indicates why it fails, whereas \"assert\" just say… it failed :)","commit_id":"0a9f5e08b1dcf1bc62a0084b0dd2d9f1bd990322"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"802aa22d0ef62c6996e0dcb7f6d4ae8c884d4888","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                continue"},{"line_number":165,"context_line":"            assert resource.resource_id \u003d\u003d \u0027resource-id\u0027"},{"line_number":166,"context_line":"            assert resource.project_id \u003d\u003d \u0027project-id\u0027"},{"line_number":167,"context_line":"            #self.assertEqual(resource.source, cfg.CONF.counter_source)"},{"line_number":168,"context_line":"            self.assertEqual(resource.source, \u0027test-1\u0027)"},{"line_number":169,"context_line":"            assert resource.user_id \u003d\u003d \u0027user-id\u0027"},{"line_number":170,"context_line":"            assert resource.metadata[\u0027display_name\u0027] \u003d\u003d \u0027test-server\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPH%2F%2F34c%3D","line":167,"updated":"2013-05-21 08:31:30.000000000","message":"You can remove this line.","commit_id":"bbdeb26c8b877e3a7e6735b2c90a97dd95c72485"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"802aa22d0ef62c6996e0dcb7f6d4ae8c884d4888","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        results \u003d list(self.conn.get_meters())"},{"line_number":242,"context_line":"        assert len(results) \u003d\u003d 4"},{"line_number":243,"context_line":"        for meter in results:"},{"line_number":244,"context_line":"            #self.assertEqual(meter.source, cfg.CONF.counter_source)"},{"line_number":245,"context_line":"            self.assertEqual(meter.source, \u0027test-1\u0027)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def test_get_meters_by_user(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPH%2F%2F34Y%3D","line":244,"updated":"2013-05-21 08:31:30.000000000","message":"Same here.","commit_id":"bbdeb26c8b877e3a7e6735b2c90a97dd95c72485"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"407cb7e6781147a0f07f42f310ea66367ff25c86","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                continue"},{"line_number":166,"context_line":"            assert resource.resource_id \u003d\u003d \u0027resource-id\u0027"},{"line_number":167,"context_line":"            assert resource.project_id \u003d\u003d \u0027project-id\u0027"},{"line_number":168,"context_line":"            self.assertTrue(resource.source in msgs_sources)"},{"line_number":169,"context_line":"            assert resource.user_id \u003d\u003d \u0027user-id\u0027"},{"line_number":170,"context_line":"            assert resource.metadata[\u0027display_name\u0027] \u003d\u003d \u0027test-server\u0027"},{"line_number":171,"context_line":"            self.assertIn(models.ResourceMeter(\u0027instance\u0027, \u0027cumulative\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAPH%2F%2FzTc%3D","line":168,"updated":"2013-05-22 18:33:02.000000000","message":"Hey, you could even use self.assertIn :)","commit_id":"25408e15a52fe5e5970fef07bfb917b8aecd6e8d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"407cb7e6781147a0f07f42f310ea66367ff25c86","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        results \u003d list(self.conn.get_meters())"},{"line_number":243,"context_line":"        assert len(results) \u003d\u003d 4"},{"line_number":244,"context_line":"        for meter in results:"},{"line_number":245,"context_line":"            self.assertTrue(meter.source in msgs_sources)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def test_get_meters_by_user(self):"},{"line_number":248,"context_line":"        results \u003d list(self.conn.get_meters(user\u003d\u0027user-id\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAPH%2F%2FzTY%3D","line":245,"updated":"2013-05-22 18:33:02.000000000","message":"Same here.","commit_id":"25408e15a52fe5e5970fef07bfb917b8aecd6e8d"}],"tools/test-requires":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"fa5a16b214401109c8b69abea7f7cb6a3f234ef3","unresolved":false,"context_lines":[{"line_number":6,"context_line":"Babel\u003e\u003d0.9.6"},{"line_number":7,"context_line":"# NOTE(dhellmann): Ming is necessary to provide the Mongo-in-memory"},{"line_number":8,"context_line":"# implementation of MongoDB."},{"line_number":9,"context_line":"# MY EDIT: Added Ming"},{"line_number":10,"context_line":"Ming"},{"line_number":11,"context_line":"# NOTE(jd): the support for finalize in map reduce in MIM is not yet merged"},{"line_number":12,"context_line":"# git+http://git.naquadah.org/git/~jd/merciless.git#egg\u003dMing"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAOn%2F%2FpQ4%3D","line":9,"updated":"2013-04-30 19:51:05.000000000","message":"Would you mind removing this comment line? I believe the line you added below can explain what you\u0027re doing.","commit_id":"0a9f5e08b1dcf1bc62a0084b0dd2d9f1bd990322"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"5946b9110d532fa7774d8ef1a6b28505063c4236","unresolved":false,"context_lines":[{"line_number":7,"context_line":"# NOTE(dhellmann): Ming is necessary to provide the Mongo-in-memory"},{"line_number":8,"context_line":"# implementation of MongoDB."},{"line_number":9,"context_line":"# MY EDIT: Added Ming"},{"line_number":10,"context_line":"Ming"},{"line_number":11,"context_line":"# NOTE(jd): the support for finalize in map reduce in MIM is not yet merged"},{"line_number":12,"context_line":"# git+http://git.naquadah.org/git/~jd/merciless.git#egg\u003dMing"},{"line_number":13,"context_line":"http://tarballs.openstack.org/nova/nova-master.tar.gz"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAOn%2F%2FpM0%3D","line":10,"updated":"2013-04-30 20:07:14.000000000","message":"You can\u0027t add Ming. The change is correct in theory, but we are not allowed to depend on Ming for now for reason due to infrastructure requirements. :)","commit_id":"0a9f5e08b1dcf1bc62a0084b0dd2d9f1bd990322"}]}
