)]}'
{"glance/image_cache/drivers/base.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8110928d4850930396a1121c1eb57b016f9e9bb0","unresolved":false,"context_lines":[{"line_number":231,"context_line":"    try:"},{"line_number":232,"context_line":"        os.unlink(path)"},{"line_number":233,"context_line":"    except OSError as e:"},{"line_number":234,"context_line":"        if e.errno \u003d\u003d 2:"},{"line_number":235,"context_line":"            # ENOENT: We don\u0027t care as the path has been removed"},{"line_number":236,"context_line":"            LOG.debug(\u0027Deletion of file \"%s\" failed, already deleted.\u0027,"},{"line_number":237,"context_line":"                      path)"},{"line_number":238,"context_line":"        else:"},{"line_number":239,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_391d12bd","line":239,"range":{"start_line":234,"start_character":8,"end_line":239,"end_character":17},"updated":"2017-07-04 04:21:20.000000000","message":"can we do something like this to avoid else\n\nwith excutils.save_and_reraise_exception() as ctxt:\n    if e.errno \u003d\u003d errno.ENOENT:\n        # ENOENT: We don\u0027t care as the path has been removed\n        LOG.debug(\u0027Deletion of file \"%s\" failed, already deleted.\u0027, path)\n        ctxt.reraise \u003d False","commit_id":"f3b25193309f9241f597cbec58e4038eabd61923"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c8e76aa0d81ef0f85a559a21dffc60994c7596bf","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":237,"context_line":"            if e.errno \u003d\u003d errno.ENOENT:"},{"line_number":238,"context_line":"                # ENOENT: We don\u0027t care as the path has been removed"},{"line_number":239,"context_line":"                LOG.debug(\u0027Deletion of file \"%s\" failed, already deleted\u0027."},{"line_number":240,"context_line":"                          path)"},{"line_number":241,"context_line":"                ctxt.reraise \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_cb6f47fa","line":239,"range":{"start_line":239,"start_character":73,"end_line":239,"end_character":74},"updated":"2017-07-05 04:49:17.000000000","message":"this should be ,\nbecause of this tests are failing","commit_id":"ccd9699097564d0eaa1df8282a8944946add1c50"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"036f285a8516dfb615dacfaec7e57c0b1bd88629","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        raise NotImplementedError"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def safe_delete(path):"},{"line_number":225,"context_line":"    \"\"\"Safely handle file deletion."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    Handles delete race conditions where a file is deleted before we get"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_b7aac26e","line":224,"range":{"start_line":224,"start_character":0,"end_line":224,"end_character":22},"updated":"2017-07-07 12:36:21.000000000","message":"Instead of adding this new method we can use \u0027delete_if_exists\u0027 method from oslo_utils.fileutils module to avoid duplication of code. \n\nhttps://github.com/openstack/oslo.utils/blob/master/oslo_utils/fileutils.py#L49","commit_id":"13b8f271f2276143cd70d43e0fff29e0aedb5d4a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4243ef22e9f5f1b3f11e2e652e9ab0693a88fe33","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        raise NotImplementedError"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def safe_delete(path):"},{"line_number":225,"context_line":"    \"\"\"Safely handle file deletion."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    Handles delete race conditions where a file is deleted before we get"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_dd0d5f36","line":224,"range":{"start_line":224,"start_character":0,"end_line":224,"end_character":22},"in_reply_to":"3f1d235d_b7aac26e","updated":"2017-07-07 13:24:09.000000000","message":"Oh, excellent. I wasn\u0027t aware of that one. I\u0027ll change this up to use the library call.","commit_id":"13b8f271f2276143cd70d43e0fff29e0aedb5d4a"}],"glance/image_cache/drivers/sqlite.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"cdab6582a34d97b4722cb09b59678e24293f9f99","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        :param image_id: Image ID"},{"line_number":272,"context_line":"        \"\"\""},{"line_number":273,"context_line":"        path \u003d self.get_image_filepath(image_id, \u0027queue\u0027)"},{"line_number":274,"context_line":"        if os.path.exists(path):"},{"line_number":275,"context_line":"            fileutils.delete_if_exists(path)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def clean(self, stall_time\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_51610539","line":274,"updated":"2017-07-10 16:15:18.000000000","message":"We don\u0027t need this anymore.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"cdab6582a34d97b4722cb09b59678e24293f9f99","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"def delete_cached_file(path):"},{"line_number":508,"context_line":"    if os.path.exists(path):"},{"line_number":509,"context_line":"        LOG.debug(\"Deleting image cache file \u0027%s\u0027\", path)"},{"line_number":510,"context_line":"        fileutils.delete_if_exists(path)"},{"line_number":511,"context_line":"    else:"},{"line_number":512,"context_line":"        LOG.warn(_LW(\"Cached image file \u0027%s\u0027 doesn\u0027t exist, unable to\""},{"line_number":513,"context_line":"                     \" delete\"), path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_f1a2514b","line":513,"range":{"start_line":508,"start_character":1,"end_line":513,"end_character":38},"updated":"2017-07-10 16:15:18.000000000","message":"As we don\u0027t care it existing or not we could just throw away this whole if..else blop and do delete_if_exists.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"7ac34a826f1861726f0249b139ebce2f12491a20","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"def delete_cached_file(path):"},{"line_number":508,"context_line":"    if os.path.exists(path):"},{"line_number":509,"context_line":"        LOG.debug(\"Deleting image cache file \u0027%s\u0027\", path)"},{"line_number":510,"context_line":"        fileutils.delete_if_exists(path)"},{"line_number":511,"context_line":"    else:"},{"line_number":512,"context_line":"        LOG.warn(_LW(\"Cached image file \u0027%s\u0027 doesn\u0027t exist, unable to\""},{"line_number":513,"context_line":"                     \" delete\"), path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_54c69318","line":513,"range":{"start_line":508,"start_character":1,"end_line":513,"end_character":38},"in_reply_to":"3f1d235d_f1a2514b","updated":"2017-07-10 16:27:07.000000000","message":"Yeah, didn\u0027t know if anyone would still want that log statement in there, so I left it. I agree though, no real point in keeping it like this.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"}],"glance/image_cache/drivers/xattr.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"cdab6582a34d97b4722cb09b59678e24293f9f99","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                                                       reason\u003dmsg)"},{"line_number":117,"context_line":"        else:"},{"line_number":118,"context_line":"            # Cleanup after ourselves..."},{"line_number":119,"context_line":"            if os.path.exists(fake_image_filepath):"},{"line_number":120,"context_line":"                fileutils.delete_if_exists(fake_image_filepath)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_cache_size(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_d1b0758e","line":119,"updated":"2017-07-10 16:15:18.000000000","message":"Don\u0027t need this if statement either.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"cdab6582a34d97b4722cb09b59678e24293f9f99","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        :param image_id: Image ID"},{"line_number":233,"context_line":"        \"\"\""},{"line_number":234,"context_line":"        path \u003d self.get_image_filepath(image_id, \u0027queue\u0027)"},{"line_number":235,"context_line":"        if os.path.exists(path):"},{"line_number":236,"context_line":"            fileutils.delete_if_exists(path)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def get_least_recently_accessed(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_91aafd16","line":235,"updated":"2017-07-10 16:15:18.000000000","message":"Nor this.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"cdab6582a34d97b4722cb09b59678e24293f9f99","unresolved":false,"context_lines":[{"line_number":433,"context_line":""},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"def delete_cached_file(path):"},{"line_number":436,"context_line":"    if os.path.exists(path):"},{"line_number":437,"context_line":"        LOG.debug(\"Deleting image cache file \u0027%s\u0027\", path)"},{"line_number":438,"context_line":"        fileutils.delete_if_exists(path)"},{"line_number":439,"context_line":"    else:"},{"line_number":440,"context_line":"        LOG.warn(_LW(\"Cached image file \u0027%s\u0027 doesn\u0027t exist, unable to\""},{"line_number":441,"context_line":"                     \" delete\") % path)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"def _make_namespaced_xattr_key(key, namespace\u003d\u0027user\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_116cad06","line":441,"range":{"start_line":436,"start_character":1,"end_line":441,"end_character":39},"updated":"2017-07-10 16:15:18.000000000","message":"Ditto sqlite.","commit_id":"a3e34c8e23f4ac9f4f63c5b6e2816cc816b2a23e"}]}
