)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"An extra backend is added which allows to use memcached as"},{"line_number":10,"context_line":"synchronization medium."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idbefc198e446f6f419f41639271d65953647b132"},{"line_number":13,"context_line":"BP: no-db-scheduler"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAT3%2F%2F2Go%3D","line":11,"updated":"2013-12-30 09:38:01.000000000","message":"Can you please add in DocImpact as this has new configuration variables.","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"An extra backend is added which allows to use memcached as"},{"line_number":10,"context_line":"synchronization medium."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idbefc198e446f6f419f41639271d65953647b132"},{"line_number":13,"context_line":"BP: no-db-scheduler"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAT3%2F%2F17M%3D","line":11,"in_reply_to":"AAAAT3%2F%2F2Go%3D","updated":"2013-12-30 10:38:25.000000000","message":"Done","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"}],"nova/scheduler/vault_backends/memcache.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.IntOpt(\u0027update_expiration_time\u0027,"},{"line_number":33,"context_line":"               default\u003d10,"},{"line_number":34,"context_line":"               help\u003d\u0027Time in seconds after which a failed update should be\u0027"},{"line_number":35,"context_line":"               \u0027considered acritical problem and result in mandatory state\u0027"},{"line_number":36,"context_line":"               \u0027reinitializetion\u0027),"},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027run_batch_chunk_size\u0027,"},{"line_number":38,"context_line":"               default\u003d100,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2HI%3D","line":35,"updated":"2013-12-30 09:38:01.000000000","message":"acritical \u003d\u003e a critical","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.IntOpt(\u0027update_expiration_time\u0027,"},{"line_number":33,"context_line":"               default\u003d10,"},{"line_number":34,"context_line":"               help\u003d\u0027Time in seconds after which a failed update should be\u0027"},{"line_number":35,"context_line":"               \u0027considered acritical problem and result in mandatory state\u0027"},{"line_number":36,"context_line":"               \u0027reinitializetion\u0027),"},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027run_batch_chunk_size\u0027,"},{"line_number":38,"context_line":"               default\u003d100,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F17I%3D","line":35,"in_reply_to":"AAAAT3%2F%2F2HI%3D","updated":"2013-12-30 10:38:25.000000000","message":"Done","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":61,"context_line":"class MCClientWrapper(object):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, mc_client, prefix):"},{"line_number":64,"context_line":"        self.mc_client \u003d mc_client"},{"line_number":65,"context_line":"        self.prefix \u003d prefix"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, id_):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2FQ%3D","line":64,"updated":"2013-12-30 09:38:01.000000000","message":"any reason the variables are not starting with _","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"class MCClientWrapper(object):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, mc_client, prefix):"},{"line_number":64,"context_line":"        self.mc_client \u003d mc_client"},{"line_number":65,"context_line":"        self.prefix \u003d prefix"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, id_):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F17E%3D","line":64,"in_reply_to":"AAAAT3%2F%2F2FQ%3D","updated":"2013-12-30 10:38:25.000000000","message":"no, there is no reason not to start them with an underscore.","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            addresses \u003d CONF.memcached_addresses"},{"line_number":106,"context_line":"        self._addresses \u003d addresses"},{"line_number":107,"context_line":"        self._update_expiration_time \u003d CONF.update_expiration_time"},{"line_number":108,"context_line":"        self.mc_client \u003d mc_module.Client(addresses)"},{"line_number":109,"context_line":"        self.ns_mc_client \u003d None"},{"line_number":110,"context_line":"        self._update_holes \u003d None  # will be set later from _create_namespace"},{"line_number":111,"context_line":"        super(MC_Synchronizer, self).__init__(namespace)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2G8%3D","line":108,"updated":"2013-12-30 09:38:01.000000000","message":"any reason why this does not have an _?","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            addresses \u003d CONF.memcached_addresses"},{"line_number":106,"context_line":"        self._addresses \u003d addresses"},{"line_number":107,"context_line":"        self._update_expiration_time \u003d CONF.update_expiration_time"},{"line_number":108,"context_line":"        self.mc_client \u003d mc_module.Client(addresses)"},{"line_number":109,"context_line":"        self.ns_mc_client \u003d None"},{"line_number":110,"context_line":"        self._update_holes \u003d None  # will be set later from _create_namespace"},{"line_number":111,"context_line":"        super(MC_Synchronizer, self).__init__(namespace)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F17A%3D","line":108,"in_reply_to":"AAAAT3%2F%2F2G8%3D","updated":"2013-12-30 10:38:25.000000000","message":"ditto","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                break"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        namespace_count \u003d self.mc_client.get(self._namespace_count)"},{"line_number":130,"context_line":"        ids \u003d map(str, xrange(1, namespace_count + 1))"},{"line_number":131,"context_line":"        namespaces \u003d self.mc_client.get_multi(ids, key_prefix\u003dself._ns_prefix)"},{"line_number":132,"context_line":"        self._namespace_id \u003d None"},{"line_number":133,"context_line":"        for ns_id, ns in namespaces.iteritems():"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2F8%3D","line":130,"updated":"2013-12-30 09:38:01.000000000","message":"any reason not to do xrange(namespace_count)?","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                break"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        namespace_count \u003d self.mc_client.get(self._namespace_count)"},{"line_number":130,"context_line":"        ids \u003d map(str, xrange(1, namespace_count + 1))"},{"line_number":131,"context_line":"        namespaces \u003d self.mc_client.get_multi(ids, key_prefix\u003dself._ns_prefix)"},{"line_number":132,"context_line":"        self._namespace_id \u003d None"},{"line_number":133,"context_line":"        for ns_id, ns in namespaces.iteritems():"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F16o%3D","line":130,"in_reply_to":"AAAAT3%2F%2F2F8%3D","updated":"2013-12-30 10:38:25.000000000","message":"to start numbering namespaces with 1","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            self.ns_mc_client.set(self._record_count, 0)"},{"line_number":144,"context_line":"            self.ns_mc_client.set(self._update_count, 0)"},{"line_number":145,"context_line":"            self.ns_mc_client.set(self._update_lower_bound, 0)"},{"line_number":146,"context_line":"            LOG.info(_(\"Namespace %s was created.\") % (namespace))"},{"line_number":147,"context_line":"        if reinitialize:"},{"line_number":148,"context_line":"            self._clear_state()"},{"line_number":149,"context_line":"            self.ns_mc_client \u003d MCClientWrapper("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2F0%3D","line":146,"updated":"2013-12-30 09:38:01.000000000","message":"please use , instead of %","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            self.ns_mc_client.set(self._record_count, 0)"},{"line_number":144,"context_line":"            self.ns_mc_client.set(self._update_count, 0)"},{"line_number":145,"context_line":"            self.ns_mc_client.set(self._update_lower_bound, 0)"},{"line_number":146,"context_line":"            LOG.info(_(\"Namespace %s was created.\") % (namespace))"},{"line_number":147,"context_line":"        if reinitialize:"},{"line_number":148,"context_line":"            self._clear_state()"},{"line_number":149,"context_line":"            self.ns_mc_client \u003d MCClientWrapper("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F16k%3D","line":146,"in_reply_to":"AAAAT3%2F%2F2F0%3D","updated":"2013-12-30 10:38:25.000000000","message":"Done","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbfc1b84507760c9cbec64464f35a0d060ff8e17","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                # to reinitialize."},{"line_number":163,"context_line":"                if state_vault.sv_timedelta("},{"line_number":164,"context_line":"                        update_time, self._update_expiration_time) \u003e now:"},{"line_number":165,"context_line":"                    return None"},{"line_number":166,"context_line":"        return updated_records"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _get_updated_records(self, token, update_count):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F2Gk%3D","line":165,"updated":"2013-12-30 09:38:01.000000000","message":"by default None is returned. So you can just do return","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"cdeeb3f12343478cff2588d00653be4c70eb10d4","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                # to reinitialize."},{"line_number":163,"context_line":"                if state_vault.sv_timedelta("},{"line_number":164,"context_line":"                        update_time, self._update_expiration_time) \u003e now:"},{"line_number":165,"context_line":"                    return None"},{"line_number":166,"context_line":"        return updated_records"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _get_updated_records(self, token, update_count):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAT3%2F%2F16U%3D","line":165,"in_reply_to":"AAAAT3%2F%2F2Gk%3D","updated":"2013-12-30 10:38:25.000000000","message":"sure, but this seems to me a bit more readable","commit_id":"d134a0818a2e92ce63651651f8c6c6d79d957321"}]}
