)]}'
{"glance/common/exception.py":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"ba71fffd8ee9e70c8ccecd1380dfc876218be323","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                \"properties. Attempted: %(attempted)s, Maximum: %(maximum)s\")"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class ImageTagLimitExceeded(GlanceException):"},{"line_number":298,"context_line":"    message \u003d _(\"The limit has been exceeded on the number of allowed image \""},{"line_number":299,"context_line":"                \"tags. Maximum: %(maximum)s\")"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bhz4%3D","line":297,"updated":"2013-11-25 04:09:55.000000000","message":"Why tag limit message doesn\u0027t follow the format of property limit? I mean it would be nice if we print the attempted number as well.","commit_id":"5b00f48b159d288904fcece9850f3f31ed7639e3"}],"glance/quota/__init__.py":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"ba71fffd8ee9e70c8ccecd1380dfc876218be323","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.image \u003d image"},{"line_number":179,"context_line":"        self.context \u003d context"},{"line_number":180,"context_line":"        self.db_api \u003d db_api"},{"line_number":181,"context_line":"        print self.image.tags"},{"line_number":182,"context_line":"        self.image.tags \u003d QuotaImageTagsProxy(self.image.tags)"},{"line_number":183,"context_line":"        super(ImageProxy, self).__init__(self.image)"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BhwQ%3D","line":181,"updated":"2013-11-25 04:09:55.000000000","message":"remove it?","commit_id":"5b00f48b159d288904fcece9850f3f31ed7639e3"}],"glance/tests/unit/test_quota.py":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"ba71fffd8ee9e70c8ccecd1380dfc876218be323","unresolved":false,"context_lines":[{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def test_add_image_tag(self):"},{"line_number":349,"context_line":"        self.config(image_tag_quota\u003d1)"},{"line_number":350,"context_line":"        self.image.tags.add(\u0027foo\u0027)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def test_add_too_many_image_tags(self):"},{"line_number":353,"context_line":"        self.config(image_tag_quota\u003d0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bhvg%3D","line":350,"updated":"2013-11-25 04:09:55.000000000","message":"I think it would nice if an assert is added given it\u0027s a test case. At least, we can try to get the tag number to make sure it\u0027s added successfully.","commit_id":"5b00f48b159d288904fcece9850f3f31ed7639e3"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"ba71fffd8ee9e70c8ccecd1380dfc876218be323","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    def test_add_unlimited_image_tags(self):"},{"line_number":359,"context_line":"        self.config(image_tag_quota\u003d-1)"},{"line_number":360,"context_line":"        for i in range(500):"},{"line_number":361,"context_line":"            self.image.tags.add(\u0027foo%d\u0027 % i)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BhvQ%3D","line":361,"updated":"2013-11-25 04:09:55.000000000","message":"Same as above.","commit_id":"5b00f48b159d288904fcece9850f3f31ed7639e3"}],"glance/tests/unit/v2/test_image_tags_resource.py":[{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"ba71fffd8ee9e70c8ccecd1380dfc876218be323","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        tags \u003d self.db.image_tag_get_all(context, unit_test_utils.UUID1)"},{"line_number":36,"context_line":"        self.assertEqual(1, len([tag for tag in tags if tag \u003d\u003d \u0027dink\u0027]))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def test_create_too_many_tags(self):"},{"line_number":39,"context_line":"        self.config(image_tag_quota\u003d0)"},{"line_number":40,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":41,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BhvA%3D","line":38,"updated":"2013-11-25 04:09:55.000000000","message":"How about rename this as \"test_update_too_many_tags\" given we\u0027re testing \u0027update\u0027 method?","commit_id":"5b00f48b159d288904fcece9850f3f31ed7639e3"}]}
