)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"898bce7506d3eba7afd3a9817fcee3315bed4dba","unresolved":false,"context_lines":[{"line_number":24,"context_line":"level by altering the pool size."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"DocImpact"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I5f18a70cd427e2c1e19a6bddeff317a46396eecc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"da20952f_a673b3b3","line":27,"updated":"2015-09-10 11:01:39.000000000","message":"I think you have Implements flag missing here.","commit_id":"c6b9015e95c79e79ba8f32bfbf4d25340a095a95"}],"glance/scrubber.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3b247499fa58be30e802be5dd0442e56e395d3f3","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        delete_jobs \u003d self._merge_delete_jobs(file_jobs, db_jobs)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"        if delete_jobs:"},{"line_number":550,"context_line":"            list(pool.starmap(self._scrub_image, six.iteritems(delete_jobs)))"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def _scrub_image(self, image_id, delete_jobs):"},{"line_number":553,"context_line":"        if len(delete_jobs) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_ddbdff02","line":550,"updated":"2015-07-02 14:40:18.000000000","message":"Can we just use\n\n    list(pool.starmap(self._scrub_image, delete_jobs.items()))\n\nWe recently discussed the use of `six.iteritems` on the mailing list and came to the conclusion that dict.items() is fine. We don\u0027t need the performance cost of using six.iteritems.","commit_id":"b3a692b102f0dfa76d606b9bcdbcac5152421131"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"328a86f92fc39cdfaad92dd1928b528b319a2622","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        db_jobs \u003d self._get_delete_jobs(self.db_queue, False)"},{"line_number":552,"context_line":"        delete_jobs \u003d self._merge_delete_jobs(file_jobs, db_jobs)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        pool.resize(CONF.scrub_pool_size)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        if delete_jobs:"},{"line_number":557,"context_line":"            list(pool.starmap(self._scrub_image, delete_jobs.items()))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_f8597936","line":554,"updated":"2015-07-06 20:43:15.000000000","message":"What\u0027s the advantage of resizing over every single run?","commit_id":"b2c8a0740cc7bad08111f4d10a43d06de528cc7c"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"66c335da29a6bc9d1f6bd721dc9c15556f5622f7","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        db_jobs \u003d self._get_delete_jobs(self.db_queue, False)"},{"line_number":552,"context_line":"        delete_jobs \u003d self._merge_delete_jobs(file_jobs, db_jobs)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        pool.resize(CONF.scrub_pool_size)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        if delete_jobs:"},{"line_number":557,"context_line":"            list(pool.starmap(self._scrub_image, delete_jobs.items()))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_13c38d58","line":554,"in_reply_to":"9a41bdd9_7c969e4d","updated":"2015-08-25 23:35:58.000000000","message":"Yes, it\u0027s called only once in non-daemon mode. And, in daemon mode, yes, it probably doesn\u0027t make sense to be doing this for every run.","commit_id":"b2c8a0740cc7bad08111f4d10a43d06de528cc7c"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"a84b40a85806e63cf0fbfc9ddf0e77503524030b","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        db_jobs \u003d self._get_delete_jobs(self.db_queue, False)"},{"line_number":552,"context_line":"        delete_jobs \u003d self._merge_delete_jobs(file_jobs, db_jobs)"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        pool.resize(CONF.scrub_pool_size)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        if delete_jobs:"},{"line_number":557,"context_line":"            list(pool.starmap(self._scrub_image, delete_jobs.items()))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_7c969e4d","line":554,"in_reply_to":"ba3cc151_f8597936","updated":"2015-07-13 22:01:48.000000000","message":"IIRC, this is only called once in non-daemon mode. In daemon mode, it is called periodically. Does the config get reloaded every run so that in daemon mode it would get reloaded?\n\nAssuming not, echoing Nikhil, why not just set in __init__?","commit_id":"b2c8a0740cc7bad08111f4d10a43d06de528cc7c"},{"author":{"_account_id":15168,"name":"Kirill Zaitsev","email":"k.zaitsev@me.com","username":"kzaitsev"},"change_message_id":"2f6470e292c080ece304adb5aee19aed7f95aef8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                      \u0027performing a delete.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027scrub_pool_size\u0027, default\u003d1,"},{"line_number":44,"context_line":"               help\u003d_(\u0027The size of thread pool to be used for \u0027"},{"line_number":45,"context_line":"                      \u0027scrubbing images. The default is one, which\u0027"},{"line_number":46,"context_line":"                      \u0027signifies serial scrubbing. Any value above\u0027"},{"line_number":47,"context_line":"                      \u0027one indicates the max number of images that\u0027"},{"line_number":48,"context_line":"                      \u0027may be scrubbed in parallel.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_e6d88755","line":45,"updated":"2015-08-26 08:04:01.000000000","message":"tiny nit: you\u0027re missing trailing whitespace here and other lines.\nWhile this is negligible — let\u0027s not send malformed string for translation?","commit_id":"05826ad74a88d6e7021cca1e4e78fc7177ba7651"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"16ba5d328dfb86574b4e68dc1fb99ad800ed7745","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                      \u0027performing a delete.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027scrub_pool_size\u0027, default\u003d1,"},{"line_number":44,"context_line":"               help\u003d_(\u0027The size of thread pool to be used for \u0027"},{"line_number":45,"context_line":"                      \u0027scrubbing images. The default is one, which\u0027"},{"line_number":46,"context_line":"                      \u0027signifies serial scrubbing. Any value above\u0027"},{"line_number":47,"context_line":"                      \u0027one indicates the max number of images that\u0027"},{"line_number":48,"context_line":"                      \u0027may be scrubbed in parallel.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_800ddd3f","line":45,"in_reply_to":"fa1b9901_e6d88755","updated":"2015-08-26 15:08:00.000000000","message":"Done","commit_id":"05826ad74a88d6e7021cca1e4e78fc7177ba7651"},{"author":{"_account_id":15168,"name":"Kirill Zaitsev","email":"k.zaitsev@me.com","username":"kzaitsev"},"change_message_id":"2f6470e292c080ece304adb5aee19aed7f95aef8","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"class Daemon(object):"},{"line_number":189,"context_line":"    def __init__(self, wakeup_time\u003d300, threads\u003d1000):"},{"line_number":190,"context_line":"        LOG.info(_LI(\"Starting Daemon: wakeup_time\u003d%(wakeup_time)s\""},{"line_number":191,"context_line":"                     \"threads\u003d%(threads)s\"),"},{"line_number":192,"context_line":"                 {\u0027wakeup_time\u0027: wakeup_time, \u0027threads\u0027: threads})"},{"line_number":193,"context_line":"        self.wakeup_time \u003d wakeup_time"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_a6de0f3c","line":190,"updated":"2015-08-26 08:04:01.000000000","message":"also why remove trailing whitespace here?","commit_id":"05826ad74a88d6e7021cca1e4e78fc7177ba7651"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"16ba5d328dfb86574b4e68dc1fb99ad800ed7745","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"class Daemon(object):"},{"line_number":189,"context_line":"    def __init__(self, wakeup_time\u003d300, threads\u003d1000):"},{"line_number":190,"context_line":"        LOG.info(_LI(\"Starting Daemon: wakeup_time\u003d%(wakeup_time)s\""},{"line_number":191,"context_line":"                     \"threads\u003d%(threads)s\"),"},{"line_number":192,"context_line":"                 {\u0027wakeup_time\u0027: wakeup_time, \u0027threads\u0027: threads})"},{"line_number":193,"context_line":"        self.wakeup_time \u003d wakeup_time"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_6000c902","line":190,"in_reply_to":"fa1b9901_a6de0f3c","updated":"2015-08-26 15:08:00.000000000","message":"Done","commit_id":"05826ad74a88d6e7021cca1e4e78fc7177ba7651"}]}
