)]}'
{"trove/guestagent/common/operating_system.py":[{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"2f4153d85b4e15263ba377db2373ad204240f8c9","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    \"\"\""},{"line_number":445,"context_line":"    Returns the number of bytes free for the filesystem that path is on"},{"line_number":446,"context_line":"    \"\"\""},{"line_number":447,"context_line":"    v \u003d os.statvfs(directory)"},{"line_number":448,"context_line":"    return v.f_bsize * v.f_bavail"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_ba630bb1","line":447,"updated":"2015-06-05 21:14:39.000000000","message":"Why are you not using the path input variable? Where does the variable directory come from?","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"edd2525c45c8cf5821f0740bfccfceafa9bab2b4","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    \"\"\""},{"line_number":445,"context_line":"    Returns the number of bytes free for the filesystem that path is on"},{"line_number":446,"context_line":"    \"\"\""},{"line_number":447,"context_line":"    v \u003d os.statvfs(directory)"},{"line_number":448,"context_line":"    return v.f_bsize * v.f_bavail"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_d4fe6f6a","line":447,"in_reply_to":"3afb71cf_ba630bb1","updated":"2015-06-08 14:59:10.000000000","message":"Oops. Last minute before sending up the review I decided \u0027path\u0027 made more sense as a name for the variable and seems I didn\u0027t refactor this correctly.","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    \"\"\""},{"line_number":445,"context_line":"    Returns the number of bytes free for the filesystem that path is on"},{"line_number":446,"context_line":"    \"\"\""},{"line_number":447,"context_line":"    v \u003d os.statvfs(path)"},{"line_number":448,"context_line":"    return v.f_bsize * v.f_bavail"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_aebe91ab","line":447,"updated":"2015-06-10 15:39:23.000000000","message":"I guess, you can obtain a expected result from trove.guestagent.dbaas.get_filesystem_volume_stats","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"8b61b121ed0358bedec376d7be90a58dd716168e","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    \"\"\""},{"line_number":445,"context_line":"    Returns the number of bytes free for the filesystem that path is on"},{"line_number":446,"context_line":"    \"\"\""},{"line_number":447,"context_line":"    v \u003d os.statvfs(path)"},{"line_number":448,"context_line":"    return v.f_bsize * v.f_bavail"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_fd3d59c4","line":447,"in_reply_to":"3afb71cf_aebe91ab","updated":"2015-06-10 16:39:41.000000000","message":"Thanks for catching this. Actually, I was a bit surprised that I had to add an implementation for this, I should have checked our codebase a bit more.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"}],"trove/guestagent/datastore/experimental/mongodb/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"97d66fd035813d013a95842ceb2756826668ca7f","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        try:"},{"line_number":227,"context_line":"            backup.restore(context, backup_info, restore_location)"},{"line_number":228,"context_line":"        except Exception as e:"},{"line_number":229,"context_line":"            LOG.error(e)"},{"line_number":230,"context_line":"            LOG.error(_(\"Error performing restore from backup %s.\") %"},{"line_number":231,"context_line":"                      backup_info[\u0027id\u0027])"},{"line_number":232,"context_line":"            self.status.set_status(ds_instance.ServiceStatuses.FAILED)"},{"line_number":233,"context_line":"            raise"},{"line_number":234,"context_line":"        LOG.info(_(\"Restored database successfully.\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_cc911149","line":231,"range":{"start_line":229,"start_character":0,"end_line":231,"end_character":40},"updated":"2015-06-04 15:36:08.000000000","message":"You can just LOG.exception instead of making two calls here:\n\n  LOG.exception(_(\"Error performing restore from backup %s.\") %\n                backup_info[\u0027id\u0027])","commit_id":"9225ee348abb351627d4503730b00baa72f7fb8f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"cb9588a40dcd7c91b4aa02effa1ef4af4dd81413","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        try:"},{"line_number":227,"context_line":"            backup.restore(context, backup_info, restore_location)"},{"line_number":228,"context_line":"        except Exception as e:"},{"line_number":229,"context_line":"            LOG.error(e)"},{"line_number":230,"context_line":"            LOG.error(_(\"Error performing restore from backup %s.\") %"},{"line_number":231,"context_line":"                      backup_info[\u0027id\u0027])"},{"line_number":232,"context_line":"            self.status.set_status(ds_instance.ServiceStatuses.FAILED)"},{"line_number":233,"context_line":"            raise"},{"line_number":234,"context_line":"        LOG.info(_(\"Restored database successfully.\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_8837fbaf","line":231,"range":{"start_line":229,"start_character":0,"end_line":231,"end_character":40},"in_reply_to":"5afe65bd_cc911149","updated":"2015-06-05 14:05:58.000000000","message":"Done","commit_id":"9225ee348abb351627d4503730b00baa72f7fb8f"}],"trove/guestagent/datastore/experimental/mongodb/service.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"a0cd841755d2cbd64d319e1b03d3a3995c5dd3d9","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        out.strip()"},{"line_number":334,"context_line":"        dbs \u003d json.loads(out)"},{"line_number":335,"context_line":"        return [d[\u0027name\u0027] for d in dbs]"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"class MongoDbAppStatus(service.BaseDbStatus):"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_86b1dfe3","line":336,"updated":"2015-06-08 19:44:36.000000000","message":"FYI, Matt is also creating this method as part of the MongoDB database management functionality he\u0027s working on. And looks like he\u0027s getting rid of the do_mongo method and replacing it with the MongoClient instead. You can see details in this review: ttps://review.openstack.org/#/c/188034/1/trove/guestagent/datastore/experimental/mongodb/service.py.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"dcd5d623f51388d19c2d3eb003b7b0f96e634407","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        out.strip()"},{"line_number":334,"context_line":"        dbs \u003d json.loads(out)"},{"line_number":335,"context_line":"        return [d[\u0027name\u0027] for d in dbs]"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"class MongoDbAppStatus(service.BaseDbStatus):"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_a1be05d2","line":336,"in_reply_to":"3afb71cf_86b1dfe3","updated":"2015-06-08 20:08:23.000000000","message":"Yes, this should be a simple merge, all I need is a list of databases, whether the mongo cli or pymongo provides it doesn\u0027t really matter.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        utils.poll_until(check_rs_status, sleep_time\u003d60, time_out\u003d100)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def list_databases(self):"},{"line_number":331,"context_line":"        cmd \u003d \u0027db.adminCommand(\"listDatabases\").databases\u0027"},{"line_number":332,"context_line":"        out, err \u003d self.do_mongo(cmd)"},{"line_number":333,"context_line":"        out.strip()"},{"line_number":334,"context_line":"        dbs \u003d json.loads(out)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_2e3d01dd","line":331,"updated":"2015-06-10 15:39:23.000000000","message":"This is not documented in commit message,\n\nAlso this is expected to come from the implementation of https://github.com/openstack/trove-specs/blob/master/specs/liberty/mongodb-database.rst\n\nwhich is already under implementation in https://review.openstack.org/#/c/188034/1/trove/guestagent/datastore/experimental/mongodb/service.py","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"8b61b121ed0358bedec376d7be90a58dd716168e","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        utils.poll_until(check_rs_status, sleep_time\u003d60, time_out\u003d100)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def list_databases(self):"},{"line_number":331,"context_line":"        cmd \u003d \u0027db.adminCommand(\"listDatabases\").databases\u0027"},{"line_number":332,"context_line":"        out, err \u003d self.do_mongo(cmd)"},{"line_number":333,"context_line":"        out.strip()"},{"line_number":334,"context_line":"        dbs \u003d json.loads(out)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_b7eca0bb","line":331,"in_reply_to":"3afb71cf_2e3d01dd","updated":"2015-06-10 16:39:41.000000000","message":"Mariam already noted this, please refer to the previous discussion.\n\nThe commit message says that an effort is made to estimate the size of the dump file, which requires that we get the size of each database.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"167ea279af54ae6d28a39c2902b5962f9e616cd0","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        utils.poll_until(check_rs_status, sleep_time\u003d60, time_out\u003d100)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def list_databases(self):"},{"line_number":331,"context_line":"        cmd \u003d \u0027db.adminCommand(\"listDatabases\").databases\u0027"},{"line_number":332,"context_line":"        out, err \u003d self.do_mongo(cmd)"},{"line_number":333,"context_line":"        out.strip()"},{"line_number":334,"context_line":"        dbs \u003d json.loads(out)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_3d341148","line":331,"in_reply_to":"3afb71cf_b7eca0bb","updated":"2015-06-10 16:47:50.000000000","message":"(+0) but the same does not suggest that you need to implement the list_databases for the purpose,\n\n(+0) Just a suggestion, alternatively, one can use the code to find the existing dbs at the same place where you are estimating the size.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"}],"trove/guestagent/strategies/backup/experimental/mongo_impl.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"c363de064ea27112b50084f81cbd1a27cf96bc62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_9478f7c5","line":1,"updated":"2015-06-08 14:38:07.000000000","message":"Should be Tesora - see https://review.openstack.org/#/c/164282/4/trove/guestagent/strategies/replication/mysql_gtid.py,cm for example","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"edd2525c45c8cf5821f0740bfccfceafa9bab2b4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_4a6d3a97","line":1,"in_reply_to":"3afb71cf_9478f7c5","updated":"2015-06-08 14:59:10.000000000","message":"Done","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"0515432a6fe0b60dbbed666021f1589702df8845","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright (c) 2015 Tesora, Inc."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_ca0c8a96","line":2,"updated":"2015-06-08 15:01:38.000000000","message":"The original work was done by eBay in 2014 with modifications made by Tesora in 2015.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"3342bd5a507ecb79ac4248b3f46eb2397f664106","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                # TODO(atomic77) Though we can fully recover from this error"},{"line_number":56,"context_line":"                # BackupRunner will leave the trove instance in a BACKUP state"},{"line_number":57,"context_line":"                raise OSError(\"Need more free space to run mongodump, estim %s\""},{"line_number":58,"context_line":"                              \" and found %s bytes free \" %"},{"line_number":59,"context_line":"                              (est_dump_size, avail))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            operating_system.create_directory(MONGO_DUMP_DIR, as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_d3efa285","line":58,"updated":"2015-06-08 19:18:32.000000000","message":"need to translate this error.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"dcd5d623f51388d19c2d3eb003b7b0f96e634407","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                # TODO(atomic77) Though we can fully recover from this error"},{"line_number":56,"context_line":"                # BackupRunner will leave the trove instance in a BACKUP state"},{"line_number":57,"context_line":"                raise OSError(\"Need more free space to run mongodump, estim %s\""},{"line_number":58,"context_line":"                              \" and found %s bytes free \" %"},{"line_number":59,"context_line":"                              (est_dump_size, avail))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            operating_system.create_directory(MONGO_DUMP_DIR, as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_a6f29b6d","line":58,"in_reply_to":"3afb71cf_d3efa285","updated":"2015-06-08 20:08:23.000000000","message":"Done","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"3342bd5a507ecb79ac4248b3f46eb2397f664106","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def cleanup(self):"},{"line_number":83,"context_line":"        utils.execute_with_timeout(\u0027sudo rm -fr \u0027 + MONGO_DUMP_DIR, shell\u003dTrue)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _run_post_backup(self):"},{"line_number":86,"context_line":"        self.cleanup()"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_d632f00f","line":84,"updated":"2015-06-08 19:18:32.000000000","message":"why not use operating_system.remove instead?","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"dcd5d623f51388d19c2d3eb003b7b0f96e634407","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def cleanup(self):"},{"line_number":83,"context_line":"        utils.execute_with_timeout(\u0027sudo rm -fr \u0027 + MONGO_DUMP_DIR, shell\u003dTrue)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _run_post_backup(self):"},{"line_number":86,"context_line":"        self.cleanup()"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_a64e1b94","line":84,"in_reply_to":"3afb71cf_d632f00f","updated":"2015-06-08 20:08:23.000000000","message":"I only cleaned up the code of the functions I had to modify from the original implementation. But you\u0027re right, this should be fixed.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P. and Tesora, Inc"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_8e1bd580","line":1,"updated":"2015-06-10 15:39:23.000000000","message":"2015","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"8b61b121ed0358bedec376d7be90a58dd716168e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P. and Tesora, Inc"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_f73d782b","line":1,"in_reply_to":"3afb71cf_8e1bd580","updated":"2015-06-10 16:39:41.000000000","message":"The code contributed by eBay was written in 2014.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"167ea279af54ae6d28a39c2902b5962f9e616cd0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P. and Tesora, Inc"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_fdfc39b9","line":1,"in_reply_to":"3afb71cf_f73d782b","updated":"2015-06-10 16:47:50.000000000","message":"I did not get this, you are writing a new code file, then how was this contributed in 2014","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"a86f93ee681ae29d0a0579bf3a1c0d4d331d3b21","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P. and Tesora, Inc"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_75e61de9","line":1,"in_reply_to":"3afb71cf_fdfc39b9","updated":"2015-06-10 18:02:16.000000000","message":"The original code was submitted for review in 2014\nhttps://review.openstack.org/#/c/78339/","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":"MONGODB_DBPATH \u003d CONF.mongodb.mount_point"},{"line_number":34,"context_line":"MONGO_DUMP_DIR \u003d MONGODB_DBPATH + \"/dump\""},{"line_number":35,"context_line":"LARGE_TIMEOUT \u003d 1200"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MongoDump(base.BackupRunner):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_31a7a00c","line":35,"updated":"2015-06-10 15:39:23.000000000","message":"This should come somewhere from configs for a better control","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"8b61b121ed0358bedec376d7be90a58dd716168e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":"MONGODB_DBPATH \u003d CONF.mongodb.mount_point"},{"line_number":34,"context_line":"MONGO_DUMP_DIR \u003d MONGODB_DBPATH + \"/dump\""},{"line_number":35,"context_line":"LARGE_TIMEOUT \u003d 1200"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MongoDump(base.BackupRunner):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_c2f19c96","line":35,"in_reply_to":"3afb71cf_31a7a00c","updated":"2015-06-10 16:39:41.000000000","message":"I would agree that at some point this kind of flexibility makes sense. I\u0027d prefer not to start introducing new config parameters at this stage though unless the community has concerns about this.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        super(MongoDump, self).__init__(*args, **kwargs)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _run_pre_backup(self):"},{"line_number":50,"context_line":"        \"\"\"Create archival contents in dump dir\"\"\""},{"line_number":51,"context_line":"        try:"},{"line_number":52,"context_line":"            est_dump_size \u003d self.estimate_dump_size()"},{"line_number":53,"context_line":"            avail \u003d operating_system.get_bytes_free_on_fs(MONGODB_DBPATH)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_7105180f","line":50,"updated":"2015-06-10 15:39:23.000000000","message":"(+0) This should end with \u0027.\u0027, though pep8 is not enforced, but its better to follow :)","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"2916435b3bfd27428d9512fc9120d796a299410e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                # BackupRunner will leave the trove instance in a BACKUP state"},{"line_number":58,"context_line":"                raise OSError(_(\"Need more free space to run mongodump, \""},{"line_number":59,"context_line":"                                \"estimated %(est_dump_size)s\""},{"line_number":60,"context_line":"                                \" and found %(avail)s bytes free \") %"},{"line_number":61,"context_line":"                              {\u0027est_dump_size\u0027: est_dump_size,"},{"line_number":62,"context_line":"                               \u0027avail\u0027: avail})"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_28be18ff","line":60,"updated":"2015-06-10 14:58:58.000000000","message":"missing a dot at the end of the exception. Not a big deal.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                # BackupRunner will leave the trove instance in a BACKUP state"},{"line_number":58,"context_line":"                raise OSError(_(\"Need more free space to run mongodump, \""},{"line_number":59,"context_line":"                                \"estimated %(est_dump_size)s\""},{"line_number":60,"context_line":"                                \" and found %(avail)s bytes free \") %"},{"line_number":61,"context_line":"                              {\u0027est_dump_size\u0027: est_dump_size,"},{"line_number":62,"context_line":"                               \u0027avail\u0027: avail})"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_9177749f","line":60,"in_reply_to":"3afb71cf_28be18ff","updated":"2015-06-10 15:39:23.000000000","message":"+1, also there is a blank space in end of sentence.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"}],"trove/guestagent/strategies/restore/experimental/mongo_impl.py":[{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"4740c5a1bb41aa24d97896ceeba24a523724768f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_da8fe721","line":1,"updated":"2015-06-05 21:23:33.000000000","message":"eBay Software Foundation?\n\nShould be:\n# Copyright 2015 OpenStack Foundation","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"edd2525c45c8cf5821f0740bfccfceafa9bab2b4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_ca580afd","line":1,"in_reply_to":"3afb71cf_afae0096","updated":"2015-06-08 14:59:10.000000000","message":"Done","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"c363de064ea27112b50084f81cbd1a27cf96bc62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_afae0096","line":1,"in_reply_to":"3afb71cf_da8fe721","updated":"2015-06-08 14:38:07.000000000","message":"Actually, should be Tesora (and/or eBay if they co-authored).  See https://wiki.openstack.org/wiki/LegalIssuesFAQ#OpenStack_Foundation_Copyright_Headers","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"40072e76ba9e558d5751108066067f6a9d2a7e65","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        utils.execute_with_timeout(\"mongorestore\", MONGO_DUMP_DIR,"},{"line_number":53,"context_line":"                                   timeout\u003dLARGE_TIMEOUT)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # now that db fs system has been created cleanup archive dir"},{"line_number":56,"context_line":"        for cmd in self.cleanup_commands:"},{"line_number":57,"context_line":"            utils.execute_with_timeout(cmd, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_5e7e4ee5","line":55,"updated":"2015-06-05 19:33:27.000000000","message":"fs system?","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"edd2525c45c8cf5821f0740bfccfceafa9bab2b4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        utils.execute_with_timeout(\"mongorestore\", MONGO_DUMP_DIR,"},{"line_number":53,"context_line":"                                   timeout\u003dLARGE_TIMEOUT)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # now that db fs system has been created cleanup archive dir"},{"line_number":56,"context_line":"        for cmd in self.cleanup_commands:"},{"line_number":57,"context_line":"            utils.execute_with_timeout(cmd, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_997832c6","line":55,"in_reply_to":"3afb71cf_5e7e4ee5","updated":"2015-06-08 14:59:10.000000000","message":"Stale comment from the original. Removed","commit_id":"00c3f9bb035db0022c52301c857d5b49d5ad2c22"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"0515432a6fe0b60dbbed666021f1589702df8845","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright (c) 2015 Tesora, Inc."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_ea15069b","line":2,"updated":"2015-06-08 15:01:38.000000000","message":"The original work was done by eBay in 2014 with modifications made by Tesora in 2015.","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"3342bd5a507ecb79ac4248b3f46eb2397f664106","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027sudo rm -fr \u0027 + MONGO_DUMP_DIR,"},{"line_number":40,"context_line":"        \u0027sudo chown -R mongodb:nogroup \u0027 + MONGODB_DBPATH"},{"line_number":41,"context_line":"    ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":44,"context_line":"        super(MongoDump, self).__init__(*args, **kwargs)"},{"line_number":45,"context_line":"        self.status \u003d mongo_service.MongoDbAppStatus()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_f0e609b3","line":42,"updated":"2015-06-08 19:18:32.000000000","message":"is there a reason we arent using the operating_system chown, remove commands for this?","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"dcd5d623f51388d19c2d3eb003b7b0f96e634407","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027sudo rm -fr \u0027 + MONGO_DUMP_DIR,"},{"line_number":40,"context_line":"        \u0027sudo chown -R mongodb:nogroup \u0027 + MONGODB_DBPATH"},{"line_number":41,"context_line":"    ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":44,"context_line":"        super(MongoDump, self).__init__(*args, **kwargs)"},{"line_number":45,"context_line":"        self.status \u003d mongo_service.MongoDbAppStatus()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_81f429f2","line":42,"in_reply_to":"3afb71cf_f0e609b3","updated":"2015-06-08 20:08:23.000000000","message":"Fair point. Also just realized I\u0027m not using the MONGO_USER system variable in the chown command anyway","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P. and Tesora, Inc"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_d16bac83","line":1,"updated":"2015-06-10 15:39:23.000000000","message":"2015","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_utils import netutils"},{"line_number":19,"context_line":"from trove.common import cfg"},{"line_number":20,"context_line":"from trove.common import utils"},{"line_number":21,"context_line":"from trove.guestagent.common import operating_system"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_3128c032","line":18,"updated":"2015-06-10 15:39:23.000000000","message":"there should be separating line between these two categories of imports as oslo_utils as 3rd party import","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"e7499332feff8fb54cab3ce7db35baaefe592487","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_utils import netutils"},{"line_number":19,"context_line":"from trove.common import cfg"},{"line_number":20,"context_line":"from trove.common import utils"},{"line_number":21,"context_line":"from trove.guestagent.common import operating_system"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_d5fdd1b1","line":18,"in_reply_to":"3afb71cf_3128c032","updated":"2015-06-10 17:55:18.000000000","message":"this rule is not being enforced","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"7799c1535e892670bd386a2754ef1057994b17fa","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_utils import netutils"},{"line_number":19,"context_line":"from trove.common import cfg"},{"line_number":20,"context_line":"from trove.common import utils"},{"line_number":21,"context_line":"from trove.guestagent.common import operating_system"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_d5c27152","line":18,"in_reply_to":"3afb71cf_d5fdd1b1","updated":"2015-06-10 17:58:09.000000000","message":"Though, I am not aware about the rule no, if we have something like that.\n\nHowever, it comes from, http://docs.openstack.org/developer/hacking/#import-order-template\n\nwhich was implemented during enabling H306","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":"IP \u003d netutils.get_my_ipv4()"},{"line_number":30,"context_line":"LARGE_TIMEOUT \u003d 1200"},{"line_number":31,"context_line":"MONGODB_DBPATH \u003d CONF.mongodb.mount_point"},{"line_number":32,"context_line":"MONGO_DUMP_DIR \u003d MONGODB_DBPATH + \"/dump\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_11eb84e0","line":30,"updated":"2015-06-10 15:39:23.000000000","message":"This should come from config.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"2916435b3bfd27428d9512fc9120d796a299410e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":"IP \u003d netutils.get_my_ipv4()"},{"line_number":30,"context_line":"LARGE_TIMEOUT \u003d 1200"},{"line_number":31,"context_line":"MONGODB_DBPATH \u003d CONF.mongodb.mount_point"},{"line_number":32,"context_line":"MONGO_DUMP_DIR \u003d MONGODB_DBPATH + \"/dump\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_c88e642d","line":31,"updated":"2015-06-10 14:58:58.000000000","message":"The command \u0027sudo chown -R mongodb:nogroup\u0027+MONGODB_DBPATH used to be part of the cleanup_commands to be used in post_restore. I see that command is not being called anymore in post_restore. Isnt that needed anymore? If thats the case, then we could probably remove this variable as well.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"cd5df46c54b4fafb8ff35ecf007c8c175e6dd708","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":"IP \u003d netutils.get_my_ipv4()"},{"line_number":30,"context_line":"LARGE_TIMEOUT \u003d 1200"},{"line_number":31,"context_line":"MONGODB_DBPATH \u003d CONF.mongodb.mount_point"},{"line_number":32,"context_line":"MONGO_DUMP_DIR \u003d MONGODB_DBPATH + \"/dump\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_cea9cd25","line":31,"in_reply_to":"3afb71cf_c88e642d","updated":"2015-06-10 15:22:35.000000000","message":"The chown was something that the original patchset was doing, perhaps because mongorestore ran with direct access to the database directory using the --dbpath option. Restoring with direct database file access is no longer supported in version 3.0, so mongorestore now runs through the server process. The only reason the dump is inside the mongo mount point is so that it ends up on volume rather than instance storage.\n\nAfter testing the restore without any ownership changes after deleting, everything looked fine, so I removed it.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def post_restore(self):"},{"line_number":45,"context_line":"        \"\"\""},{"line_number":46,"context_line":"        Restore from the directory that we untarred into"},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        utils.execute_with_timeout(\"mongorestore\", MONGO_DUMP_DIR,"},{"line_number":49,"context_line":"                                   timeout\u003dLARGE_TIMEOUT)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_51b33c0a","line":46,"updated":"2015-06-10 15:39:23.000000000","message":"I think this could be a single liner","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"}],"trove/tests/unittests/backup/test_backupagent.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"97d66fd035813d013a95842ceb2756826668ca7f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from trove.guestagent.strategies.storage.base import Storage"},{"line_number":34,"context_line":"from trove.tests.unittests import trove_testtools"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"conductor_api.API.update_backup \u003d Mock()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def create_fake_data():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_2cdb05ee","line":36,"updated":"2015-06-04 15:36:08.000000000","message":"This doesn\u0027t look like it\u0027s unmocked anywhere (these aren\u0027t trapped by the dangle detector ;) )  You should do this instead, before the test case that requires it:\n\n      @patch.object(conductor_api.API, \u0027update_backup\u0027,\n                  Mock(return_value\u003dMock()))","commit_id":"9225ee348abb351627d4503730b00baa72f7fb8f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"cb9588a40dcd7c91b4aa02effa1ef4af4dd81413","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from trove.guestagent.strategies.storage.base import Storage"},{"line_number":34,"context_line":"from trove.tests.unittests import trove_testtools"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"conductor_api.API.update_backup \u003d Mock()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def create_fake_data():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_28b927ea","line":36,"in_reply_to":"5afe65bd_2cdb05ee","updated":"2015-06-05 14:05:58.000000000","message":"Looks like a bad merge/rebase. Removed :)","commit_id":"9225ee348abb351627d4503730b00baa72f7fb8f"}],"trove/tests/unittests/guestagent/test_backups.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"3342bd5a507ecb79ac4248b3f46eb2397f664106","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        self.exec_timeout_patch.stop()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    def test_backup_success(self):"},{"line_number":462,"context_line":"        backup_runner_mocks \u003d self.backup_runner_patch.start()"},{"line_number":463,"context_line":"        with self.backup_runner(12345):"},{"line_number":464,"context_line":"            pass"},{"line_number":465,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_0b64dae1","line":462,"updated":"2015-06-08 19:18:32.000000000","message":"Just curious, why isnt the call above made in setUp?","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":10440,"name":"Alex Tomic","email":"atomic777@gmail.com","username":"atomic77"},"change_message_id":"dcd5d623f51388d19c2d3eb003b7b0f96e634407","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        self.exec_timeout_patch.stop()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    def test_backup_success(self):"},{"line_number":462,"context_line":"        backup_runner_mocks \u003d self.backup_runner_patch.start()"},{"line_number":463,"context_line":"        with self.backup_runner(12345):"},{"line_number":464,"context_line":"            pass"},{"line_number":465,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_a1e165d2","line":462,"in_reply_to":"3afb71cf_0b64dae1","updated":"2015-06-08 20:08:23.000000000","message":"I avoided refactoring anything from the inherited patchset that I didn\u0027t have to :)","commit_id":"d9977123c824860f483de941ac2964b39579c90f"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        RunnerClass \u003d utils.import_class(RESTORE_MONGODUMP_CLS)"},{"line_number":349,"context_line":"        restr \u003d RunnerClass(None, restore_location\u003d\"/tmp\","},{"line_number":350,"context_line":"                            location\u003d\"filename\", checksum\u003d\"md5\")"},{"line_number":351,"context_line":"        self.assertEqual(restr.restore_cmd, UNZIP + PIPE + MONGODUMP_RESTORE)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def test_restore_encrypted_mongodump_command(self):"},{"line_number":354,"context_line":"        restoreBase.RestoreRunner.is_zipped \u003d True"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_b1d5d0e5","line":351,"updated":"2015-06-10 15:39:23.000000000","message":"restr.restore_cmd should be second argument.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        RunnerClass \u003d utils.import_class(RESTORE_MONGODUMP_CLS)"},{"line_number":358,"context_line":"        restr \u003d RunnerClass(None, restore_location\u003d\"/tmp\","},{"line_number":359,"context_line":"                            location\u003d\"filename\", checksum\u003d\"md5\")"},{"line_number":360,"context_line":"        self.assertEqual(restr.restore_cmd,"},{"line_number":361,"context_line":"                         DECRYPT + PIPE + UNZIP + PIPE + MONGODUMP_RESTORE)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_3100c065","line":360,"updated":"2015-06-10 15:39:23.000000000","message":"restr.restore_cmd should be second argument.","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"21d5a483d755572bce80f15eb9190f0d890e54c7","unresolved":false,"context_lines":[{"line_number":461,"context_line":"    def test_backup_success(self):"},{"line_number":462,"context_line":"        backup_runner_mocks \u003d self.backup_runner_patch.start()"},{"line_number":463,"context_line":"        with self.backup_runner(12345):"},{"line_number":464,"context_line":"            pass"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"        backup_runner_mocks[\u0027_run_pre_backup\u0027].assert_called_once_with()"},{"line_number":467,"context_line":"        backup_runner_mocks[\u0027_run\u0027].assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_3137a04e","line":464,"updated":"2015-06-10 15:39:23.000000000","message":"(+0)cannot it be just self.backup_runner(12345)","commit_id":"0eb775a2716016bf0b04f0c092a51c8019d35858"}]}
