)]}'
{"glance/db/simple/api.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"fd098c417b638b205b9369d1ff15ddd882d4c3ac","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        raise exception.NotFound()"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    if from_state and image[\u0027status\u0027] !\u003d from_state:"},{"line_number":648,"context_line":"        raise exception.NotFound()"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    location_data \u003d image_values.pop(\u0027locations\u0027, None)"},{"line_number":651,"context_line":"    if location_data is not None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_b0fd383e","line":648,"updated":"2014-10-09 10:50:19.000000000","message":"Based on the logic above we should raise exception.Conflict here rather than NotFound.","commit_id":"ca544d1994b1079d519db25fe5f8fcfabfaa41c4"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"9c58414a2b8188803b4cbb58f4ad0d9bc554e888","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        raise exception.NotFound()"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    if from_state and image[\u0027status\u0027] !\u003d from_state:"},{"line_number":648,"context_line":"        raise exception.NotFound()"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    location_data \u003d image_values.pop(\u0027locations\u0027, None)"},{"line_number":651,"context_line":"    if location_data is not None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_5325f65a","line":648,"in_reply_to":"baa201ad_b0fd383e","updated":"2014-10-09 11:22:35.000000000","message":"Done","commit_id":"ca544d1994b1079d519db25fe5f8fcfabfaa41c4"}],"glance/domain/__init__.py":[{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"216b2e8ef2252fc3c79b94f0fd239b61be10ccd9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        return set(self._modified_properties.keys())"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def get_original_values(self):"},{"line_number":111,"context_line":"        return self._modified_properties"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def get_init_value(self, key):"},{"line_number":114,"context_line":"        if self._modified_properties[key]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_c3e438e3","line":111,"updated":"2014-10-03 13:11:24.000000000","message":"This method does not return \"original values\" - it returns the dict representing the history of property changes. It should either be renamed or modified, so its name reflect its actual semantics.","commit_id":"4659beee9a5c12e48cf214b8944df37dfbd10911"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"216b2e8ef2252fc3c79b94f0fd239b61be10ccd9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def get_original_values(self):"},{"line_number":111,"context_line":"        return self._modified_properties"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def get_init_value(self, key):"},{"line_number":114,"context_line":"        if self._modified_properties[key]:"},{"line_number":115,"context_line":"            return self._modified_properties[key][0]"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_43e68816","line":113,"updated":"2014-10-03 13:11:24.000000000","message":"\"init\" sounds a bit confusing as probably meaning  \"value which was set in the __initi__\", which  is not always true. Why not call it \"initial\"?","commit_id":"4659beee9a5c12e48cf214b8944df37dfbd10911"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"216b2e8ef2252fc3c79b94f0fd239b61be10ccd9","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def get_init_value(self, key):"},{"line_number":114,"context_line":"        if self._modified_properties[key]:"},{"line_number":115,"context_line":"            return self._modified_properties[key][0]"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class Image(StateTrackingObject):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_c3c19855","line":115,"updated":"2014-10-03 13:11:24.000000000","message":"If the key is not present (i.e. the property was not modified) its initial value is equal to the current value. So, why not return it?","commit_id":"4659beee9a5c12e48cf214b8944df37dfbd10911"}],"glance/tests/unit/test_db.py":[{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"80d25837b67cb63e6d5afa495e3f316f40dc6616","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        self.assertIn(fake_uuid, utils.exception_to_str(exc))"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def test_save_image_incorrect_status_update(self):"},{"line_number":339,"context_line":"        from glance.domain import Image"},{"line_number":340,"context_line":"        UUID5 \u003d \u0027482a0d53-712f-42c4-812c-bd4d6784d12f\u0027"},{"line_number":341,"context_line":"        image \u003d Image(image_id\u003dUUID5,"},{"line_number":342,"context_line":"                      status\u003d\u0027saving\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa7fdbe_b0e1a400","line":339,"updated":"2014-10-29 15:17:54.000000000","message":"why do you import Image in function\u0027s body?","commit_id":"601ba4161452295c62b0a5c063da1aaacfe2a62e"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"b34b04ccf7c963fc003944329ecd7c2f2fe0fdf1","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        self.assertIn(fake_uuid, utils.exception_to_str(exc))"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def test_save_image_incorrect_status_update(self):"},{"line_number":339,"context_line":"        from glance.domain import Image"},{"line_number":340,"context_line":"        UUID5 \u003d \u0027482a0d53-712f-42c4-812c-bd4d6784d12f\u0027"},{"line_number":341,"context_line":"        image \u003d Image(image_id\u003dUUID5,"},{"line_number":342,"context_line":"                      status\u003d\u0027saving\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa7fdbe_23fe4b39","line":339,"in_reply_to":"9aa7fdbe_164d08c5","updated":"2014-10-29 18:49:56.000000000","message":"Sorry folks, I used it for testing testing and really forgot about it.","commit_id":"601ba4161452295c62b0a5c063da1aaacfe2a62e"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"5a58baea68740fd5e011607745e24891352b5abe","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        self.assertIn(fake_uuid, utils.exception_to_str(exc))"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def test_save_image_incorrect_status_update(self):"},{"line_number":339,"context_line":"        from glance.domain import Image"},{"line_number":340,"context_line":"        UUID5 \u003d \u0027482a0d53-712f-42c4-812c-bd4d6784d12f\u0027"},{"line_number":341,"context_line":"        image \u003d Image(image_id\u003dUUID5,"},{"line_number":342,"context_line":"                      status\u003d\u0027saving\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa7fdbe_164d08c5","line":339,"in_reply_to":"9aa7fdbe_b0e1a400","updated":"2014-10-29 16:29:32.000000000","message":"I agree with Inessa. This should be `import glance.domain` with the rest of the imports.","commit_id":"601ba4161452295c62b0a5c063da1aaacfe2a62e"},{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"f715a5b304974173c672af0dfbaa7328421c38e2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import glance.context"},{"line_number":27,"context_line":"import glance.db"},{"line_number":28,"context_line":"from glance.db.sqlalchemy import api"},{"line_number":29,"context_line":"from glance.domain import Image"},{"line_number":30,"context_line":"import glance.tests.unit.utils as unit_test_utils"},{"line_number":31,"context_line":"import glance.tests.utils as test_utils"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7a8c0949_2ec71c14","line":29,"updated":"2014-10-30 09:51:28.000000000","message":"I think it should be \u0027from glance import domain\u0027 according to http://docs.openstack.org/developer/hacking/#imports","commit_id":"45d636a5a5f10c837e284c50027610a103ec2fcd"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"6696cbe2f1f66c8b9525a59a29856cd3458d98bd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import glance.context"},{"line_number":27,"context_line":"import glance.db"},{"line_number":28,"context_line":"from glance.db.sqlalchemy import api"},{"line_number":29,"context_line":"from glance.domain import Image"},{"line_number":30,"context_line":"import glance.tests.unit.utils as unit_test_utils"},{"line_number":31,"context_line":"import glance.tests.utils as test_utils"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7a8c0949_aeaf8c2a","line":29,"in_reply_to":"7a8c0949_2ec71c14","updated":"2014-10-30 10:01:09.000000000","message":"Erno taught you that? :)","commit_id":"45d636a5a5f10c837e284c50027610a103ec2fcd"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"da99d909893c29f9b2872fa2b303b1b00a0916c2","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    def test_save_image_incorrect_status_update(self):"},{"line_number":340,"context_line":"        UUID5 \u003d \u0027482a0d53-712f-42c4-812c-bd4d6784d12f\u0027"},{"line_number":341,"context_line":"        image \u003d domain.Image(image_id\u003dUUID5,"},{"line_number":342,"context_line":"                      status\u003d\u0027saving\u0027,"},{"line_number":343,"context_line":"                      created_at\u003dNone,"},{"line_number":344,"context_line":"                      updated_at\u003dNone,"},{"line_number":345,"context_line":"                      size\u003d256,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8c0949_e491b353","line":342,"updated":"2014-10-30 11:00:45.000000000","message":"I\u0027m pretty sure this block needs to be indented more (pep8 will probably fail).","commit_id":"0a926eea9a4969732741a6ca8c9ce8a1d0197e24"}]}
