)]}'
{"smaug/services/protection/bank_plugin.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"f0aa6637cf317da1c980ccbf4d818f4371d9491d","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            self._prepend_prefix(key),"},{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def get_bank(self):"},{"line_number":196,"context_line":"        return self._bank"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_a2ccd26a","line":196,"range":{"start_line":195,"start_character":0,"end_line":196,"end_character":25},"updated":"2016-04-20 08:09:59.000000000","message":"consider @property","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"f2e6788b3d35e65eb01e84d4f2e44cc291b61d47","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            self._prepend_prefix(key),"},{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def get_bank(self):"},{"line_number":196,"context_line":"        return self._bank"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_9c6262d7","line":196,"range":{"start_line":195,"start_character":0,"end_line":196,"end_character":25},"in_reply_to":"1a122d0e_a2ccd26a","updated":"2016-05-18 09:13:37.000000000","message":"OK","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"}],"smaug/services/protection/checkpoint.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"f0aa6637cf317da1c980ccbf4d818f4371d9491d","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"class CheckpointCollection(object):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def __init__(self, bank, bank_lease):"},{"line_number":137,"context_line":"        super(CheckpointCollection, self).__init__()"},{"line_number":138,"context_line":"        self._bank \u003d bank"},{"line_number":139,"context_line":"        self._bank_lease \u003d bank_lease"},{"line_number":140,"context_line":"        self._checkpoints_section \u003d BankSection(bank, \"/checkpoints\")"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def list_ids(self, limit\u003dNone, marker\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_e2c6ca66","line":139,"range":{"start_line":136,"start_character":0,"end_line":139,"end_character":37},"updated":"2016-04-20 08:09:59.000000000","message":"Should we pass the lease in constructor?\nMaybe consider moving it to the get and create parameters?","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"f2e6788b3d35e65eb01e84d4f2e44cc291b61d47","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"class CheckpointCollection(object):"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def __init__(self, bank, bank_lease):"},{"line_number":137,"context_line":"        super(CheckpointCollection, self).__init__()"},{"line_number":138,"context_line":"        self._bank \u003d bank"},{"line_number":139,"context_line":"        self._bank_lease \u003d bank_lease"},{"line_number":140,"context_line":"        self._checkpoints_section \u003d BankSection(bank, \"/checkpoints\")"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def list_ids(self, limit\u003dNone, marker\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_1c41520c","line":139,"range":{"start_line":136,"start_character":0,"end_line":139,"end_character":37},"in_reply_to":"1a122d0e_e2c6ca66","updated":"2016-05-18 09:13:37.000000000","message":"We will set the default value of lease to be None.","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"}],"smaug/services/protection/provider.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"f0aa6637cf317da1c980ccbf4d818f4371d9491d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                self._load_plugin(plugin_name)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        if self._bank_plugin:"},{"line_number":77,"context_line":"            self.checkpoint_collection \u003d checkpoint.CheckpointCollection("},{"line_number":78,"context_line":"                Bank(self._bank_plugin), self._bank_plugin)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            LOG.error(_LE(\u0027Bank plugin not exist, check your configuration\u0027))"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_42b7bef4","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":59},"updated":"2016-04-20 08:09:59.000000000","message":"If we don\u0027t pass the lease:\nCheckpointCollection(self._bank_plugin())\nIf we do pass the lease:\nCheckpointCollection(self._bank_plugin(), lease)\n\n(see comment in checkpoint.py)","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"11b605c62f0e46549956884e40274dfa415b1a5a","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        if self._bank_plugin:"},{"line_number":77,"context_line":"            self.checkpoint_collection \u003d checkpoint.CheckpointCollection("},{"line_number":78,"context_line":"                Bank(self._bank_plugin), self._bank_plugin)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            LOG.error(_LE(\u0027Bank plugin not exist, check your configuration\u0027))"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_5b30d656","line":78,"range":{"start_line":78,"start_character":41,"end_line":78,"end_character":58},"updated":"2016-05-18 20:47:33.000000000","message":"should be either a lease or None","commit_id":"fe70228ad5f61037f7a8d8b1145b07cae7dda29b"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"c9912df866c094ff941741f46a9835ca47b4e76e","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        if self._bank_plugin:"},{"line_number":77,"context_line":"            self.checkpoint_collection \u003d checkpoint.CheckpointCollection("},{"line_number":78,"context_line":"                Bank(self._bank_plugin), self._bank_plugin)"},{"line_number":79,"context_line":"        else:"},{"line_number":80,"context_line":"            LOG.error(_LE(\u0027Bank plugin not exist, check your configuration\u0027))"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_21aca79f","line":78,"range":{"start_line":78,"start_character":41,"end_line":78,"end_character":58},"in_reply_to":"bab6814e_5b30d656","updated":"2016-05-19 11:09:03.000000000","message":"I will follow your idea.","commit_id":"fe70228ad5f61037f7a8d8b1145b07cae7dda29b"}],"smaug/tests/unit/protection/test_bank.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"cacf8f2871616451bb2f465e7938f34f2d991238","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self._data \u003d OrderedDict()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def create_object(self, key, value):"},{"line_number":32,"context_line":"        # should allow same key over write, same like swift"},{"line_number":33,"context_line":"        self._data.setdefault(key, value)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def update_object(self, key, value):"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_95dcbfe5","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":59},"updated":"2016-05-08 14:34:49.000000000","message":"setdefault() doesn\u0027t overwrite. It silently keeps the old value if it exists.","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"1ddcc0d843bdf77b3fb7618b918e60f11d4b80fc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self._data \u003d OrderedDict()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def create_object(self, key, value):"},{"line_number":32,"context_line":"        # should allow same key over write, same like swift"},{"line_number":33,"context_line":"        self._data.setdefault(key, value)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def update_object(self, key, value):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_bca5a6b6","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":59},"in_reply_to":"dab17558_95dcbfe5","updated":"2016-05-18 09:14:20.000000000","message":"OK","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"}],"smaug/tests/unit/protection/test_checkpoint_collection.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"f0aa6637cf317da1c980ccbf4d818f4371d9491d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1a122d0e_a2569259","line":46,"updated":"2016-04-20 08:09:59.000000000","message":"Add a test for writing to the checkpoint after lease is invalid?","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"f2e6788b3d35e65eb01e84d4f2e44cc291b61d47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"bab6814e_5c72ba7d","line":46,"in_reply_to":"1a122d0e_a2569259","updated":"2016-05-18 09:13:37.000000000","message":"OK","commit_id":"4d9c3a5e25b1d1a74dc80012c9f39a75d9d4fafd"}]}
