)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3e7f0ebdf4d5d3f552a5edc53b4fec94a2fc673c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance deletion efficiency when backup init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now when backup init host, if the status of backup is \u0027deleting\u0027, cinder"},{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_0538149f","line":9,"updated":"2015-07-28 13:14:26.000000000","message":"when -\u003e in ?","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance deletion efficiency when backup init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now when backup init host, if the status of backup is \u0027deleting\u0027, cinder"},{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_cb0a1ed2","line":9,"in_reply_to":"3a50d1a3_0538149f","updated":"2015-07-30 01:03:24.000000000","message":"Done","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3e7f0ebdf4d5d3f552a5edc53b4fec94a2fc673c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Like what we have done to volume deletion, threadpool could be used to"},{"line_number":14,"context_line":"offload all the pending backup delete operations."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Add CONF.backup_service_inithost_offload to specify if useing threadpool."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_45c5bc59","line":13,"updated":"2015-07-28 13:14:26.000000000","message":"Suggest: \"Similar to volume deletion, the threadpool could be used...\"","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Like what we have done to volume deletion, threadpool could be used to"},{"line_number":14,"context_line":"offload all the pending backup delete operations."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Add CONF.backup_service_inithost_offload to specify if useing threadpool."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_eb011ab0","line":13,"in_reply_to":"3a50d1a3_45c5bc59","updated":"2015-07-30 01:03:24.000000000","message":"Sure","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"876f18b9913db9a16035fbb3aa60f56cd28eed31","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Like what we have done to volume deletion, threadpool could be used to"},{"line_number":14,"context_line":"offload all the pending backup delete operations."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Add CONF.backup_service_inithost_offload to specify if useing threadpool."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"},{"line_number":19,"context_line":"Implements: blueprint enhance-deletion-efficiency-when-backup-init-host"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_7932ee5f","line":16,"updated":"2015-07-28 10:00:53.000000000","message":"s/useing/using/","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Like what we have done to volume deletion, threadpool could be used to"},{"line_number":14,"context_line":"offload all the pending backup delete operations."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Add CONF.backup_service_inithost_offload to specify if useing threadpool."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"},{"line_number":19,"context_line":"Implements: blueprint enhance-deletion-efficiency-when-backup-init-host"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_6b242a5f","line":16,"in_reply_to":"3a50d1a3_7932ee5f","updated":"2015-07-30 01:03:24.000000000","message":"Done","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"cb24b9ae570d72ec73021fc5b1ae7caa5632e803","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance deletion efficiency when backup init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now in backup init host, if the status of backup is \u0027deleting\u0027, cinder"},{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa1b9901_e6762e05","line":9,"updated":"2015-08-20 16:53:07.000000000","message":"Capitalize \"cinder\".","commit_id":"c81249107ffd5fc8fed2c6438b9521892789363f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"e5dc84d9e5700611de4c79162aebfcaa572b2821","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance deletion efficiency when backup init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now in backup init host, if the status of backup is \u0027deleting\u0027, cinder"},{"line_number":10,"context_line":"will delete those backups sequentially. So if the deletion process is"},{"line_number":11,"context_line":"slow, the backup service thread will be blocked."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da20952f_ffd1f357","line":9,"in_reply_to":"fa1b9901_e6762e05","updated":"2015-08-30 10:58:05.000000000","message":"The foundation prefers/advises that project names are not capitalised.","commit_id":"c81249107ffd5fc8fed2c6438b9521892789363f"}],"cinder/backup/manager.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"f2032d3dc0f1517909bd687362b41645af703d23","unresolved":false,"context_lines":[{"line_number":61,"context_line":"               default\u003d\u0027cinder.backup.drivers.swift\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Driver to use for backups.\u0027,"},{"line_number":63,"context_line":"               deprecated_name\u003d\u0027backup_service\u0027),"},{"line_number":64,"context_line":"    cfg.BoolOpt(\u0027backup_service_inithost_offload\u0027,"},{"line_number":65,"context_line":"                default\u003dFalse,"},{"line_number":66,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":67,"context_line":"                     \u0027backup service startup\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_bdfa5773","line":64,"updated":"2015-07-29 14:34:37.000000000","message":"This option name is quite long and not intuitive.  Maybe just use \"offload_pending_delete\".","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":61,"context_line":"               default\u003d\u0027cinder.backup.drivers.swift\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Driver to use for backups.\u0027,"},{"line_number":63,"context_line":"               deprecated_name\u003d\u0027backup_service\u0027),"},{"line_number":64,"context_line":"    cfg.BoolOpt(\u0027backup_service_inithost_offload\u0027,"},{"line_number":65,"context_line":"                default\u003dFalse,"},{"line_number":66,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":67,"context_line":"                     \u0027backup service startup\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_70d938f4","line":64,"in_reply_to":"3a50d1a3_bdfa5773","updated":"2015-07-30 01:03:24.000000000","message":"Done","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3e7f0ebdf4d5d3f552a5edc53b4fec94a2fc673c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    cfg.BoolOpt(\u0027backup_service_inithost_offload\u0027,"},{"line_number":65,"context_line":"                default\u003dFalse,"},{"line_number":66,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":67,"context_line":"                     \u0027backup service startup\u0027),"},{"line_number":68,"context_line":"]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# This map doesn\u0027t need to be extended in the future since it\u0027s only"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_655c7819","line":67,"updated":"2015-07-28 13:14:26.000000000","message":"\".\" at EOL","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    cfg.BoolOpt(\u0027backup_service_inithost_offload\u0027,"},{"line_number":65,"context_line":"                default\u003dFalse,"},{"line_number":66,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":67,"context_line":"                     \u0027backup service startup\u0027),"},{"line_number":68,"context_line":"]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# This map doesn\u0027t need to be extended in the future since it\u0027s only"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_30e3b0a6","line":67,"in_reply_to":"3a50d1a3_655c7819","updated":"2015-07-30 01:03:24.000000000","message":"Done","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bfdd290883eaf84032566906d790c707d099ca3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    cfg.StrOpt(\u0027backup_driver\u0027,"},{"line_number":61,"context_line":"               default\u003d\u0027cinder.backup.drivers.swift\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Driver to use for backups.\u0027,),"},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027offload_pending_delete\u0027,"},{"line_number":64,"context_line":"                default\u003dFalse,"},{"line_number":65,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":66,"context_line":"                     \u0027backup service startup.\u0027,),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_d1c80b78","line":63,"updated":"2015-07-31 10:22:18.000000000","message":"I think maybe we should use a similar name as we do in volume\u0027s init_host:\n\n backup_service_inithost_offload","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"1383ddcf438773097b7937dbc40a69a8d0c381d8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    cfg.StrOpt(\u0027backup_driver\u0027,"},{"line_number":61,"context_line":"               default\u003d\u0027cinder.backup.drivers.swift\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Driver to use for backups.\u0027,),"},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027offload_pending_delete\u0027,"},{"line_number":64,"context_line":"                default\u003dFalse,"},{"line_number":65,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":66,"context_line":"                     \u0027backup service startup.\u0027,),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_f3a8b8dd","line":63,"in_reply_to":"3a50d1a3_d1c80b78","updated":"2015-08-04 13:44:38.000000000","message":"IMO, this config option name does not identify what it does.  It would be confusing for any operator using this option or looking at it to understand what it does.","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a1441a9b02d559d87aaaa285f5cdaf2e2ed9c85b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    cfg.StrOpt(\u0027backup_driver\u0027,"},{"line_number":61,"context_line":"               default\u003d\u0027cinder.backup.drivers.swift\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Driver to use for backups.\u0027,),"},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027offload_pending_delete\u0027,"},{"line_number":64,"context_line":"                default\u003dFalse,"},{"line_number":65,"context_line":"                help\u003d\u0027Offload pending backup delete during \u0027"},{"line_number":66,"context_line":"                     \u0027backup service startup.\u0027,),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_4c6e6401","line":63,"in_reply_to":"3a50d1a3_d1c80b78","updated":"2015-08-03 03:45:13.000000000","message":"Yes, but Thang Pham was thinking this option name is quite long and not intuitive. Well I agree with you, backup_service_inithost_offload is better.","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bfdd290883eaf84032566906d790c707d099ca3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.backup_rpcapi \u003d backup_rpcapi.BackupAPI()"},{"line_number":92,"context_line":"        super(BackupManager, self).__init__(service_name\u003d\u0027backup\u0027,"},{"line_number":93,"context_line":"                                            *args, **kwargs)"},{"line_number":94,"context_line":"        self._tp \u003d greenpool.GreenPool()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @property"},{"line_number":97,"context_line":"    def driver_name(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_d1cb2b49","line":94,"updated":"2015-07-31 10:22:18.000000000","message":"This should be moved to the SchedulerDependentManager base clase and removed from here and from the Volume manager.","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a1441a9b02d559d87aaaa285f5cdaf2e2ed9c85b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.backup_rpcapi \u003d backup_rpcapi.BackupAPI()"},{"line_number":92,"context_line":"        super(BackupManager, self).__init__(service_name\u003d\u0027backup\u0027,"},{"line_number":93,"context_line":"                                            *args, **kwargs)"},{"line_number":94,"context_line":"        self._tp \u003d greenpool.GreenPool()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @property"},{"line_number":97,"context_line":"    def driver_name(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_2cfaf877","line":94,"in_reply_to":"3a50d1a3_d1cb2b49","updated":"2015-08-03 03:45:13.000000000","message":"Done","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bfdd290883eaf84032566906d790c707d099ca3","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        backup.fail_reason \u003d err"},{"line_number":196,"context_line":"        backup.save()"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _add_to_threadpool(self, func, *args, **kwargs):"},{"line_number":199,"context_line":"        self._tp.spawn_n(func, *args, **kwargs)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def init_host(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_71da5719","line":198,"updated":"2015-07-31 10:22:18.000000000","message":"Same thing with this common method.","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a1441a9b02d559d87aaaa285f5cdaf2e2ed9c85b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        backup.fail_reason \u003d err"},{"line_number":196,"context_line":"        backup.save()"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _add_to_threadpool(self, func, *args, **kwargs):"},{"line_number":199,"context_line":"        self._tp.spawn_n(func, *args, **kwargs)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def init_host(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_8c09cc97","line":198,"in_reply_to":"3a50d1a3_71da5719","updated":"2015-08-03 03:45:13.000000000","message":"Done","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"}],"cinder/tests/unit/test_backup.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"f2032d3dc0f1517909bd687362b41645af703d23","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        self.override_config(\u0027backup_service_inithost_offload\u0027, True)"},{"line_number":237,"context_line":"        vol1_id \u003d self._create_volume_db_entry()"},{"line_number":238,"context_line":"        db.volume_update(self.ctxt, vol1_id, {\u0027status\u0027: \u0027available\u0027})"},{"line_number":239,"context_line":"        backup1 \u003d self._create_backup_db_entry(status\u003d\u0027deleting\u0027,"},{"line_number":240,"context_line":"                                               volume_id\u003dvol1_id)"},{"line_number":241,"context_line":"        self.backup_mgr.init_host()"},{"line_number":242,"context_line":"        self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_5df31373","line":239,"updated":"2015-07-29 14:34:37.000000000","message":"It would be good to create more than one backup in \u0027deleting\u0027 state to test the threadpool.","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        self.override_config(\u0027backup_service_inithost_offload\u0027, True)"},{"line_number":237,"context_line":"        vol1_id \u003d self._create_volume_db_entry()"},{"line_number":238,"context_line":"        db.volume_update(self.ctxt, vol1_id, {\u0027status\u0027: \u0027available\u0027})"},{"line_number":239,"context_line":"        backup1 \u003d self._create_backup_db_entry(status\u003d\u0027deleting\u0027,"},{"line_number":240,"context_line":"                                               volume_id\u003dvol1_id)"},{"line_number":241,"context_line":"        self.backup_mgr.init_host()"},{"line_number":242,"context_line":"        self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_d0ea8c74","line":239,"in_reply_to":"3a50d1a3_5df31373","updated":"2015-07-30 01:03:24.000000000","message":"Sure.","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"876f18b9913db9a16035fbb3aa60f56cd28eed31","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        backup1 \u003d self._create_backup_db_entry(status\u003d\u0027deleting\u0027,"},{"line_number":240,"context_line":"                                               volume_id\u003dvol1_id)"},{"line_number":241,"context_line":"        self.backup_mgr.init_host()"},{"line_number":242,"context_line":"        self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt,"},{"line_number":243,"context_line":"                          backup1.id)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_74c75398","line":242,"updated":"2015-07-28 10:00:53.000000000","message":"Is this a time dependent unit test in that the delete thread has to run quickly enough for the exception to be raised on the get attempt?","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"de4cbad26c15eb5e6d4566be0e72bdb49792f596","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        backup1 \u003d self._create_backup_db_entry(status\u003d\u0027deleting\u0027,"},{"line_number":240,"context_line":"                                               volume_id\u003dvol1_id)"},{"line_number":241,"context_line":"        self.backup_mgr.init_host()"},{"line_number":242,"context_line":"        self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt,"},{"line_number":243,"context_line":"                          backup1.id)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_cb28a136","line":242,"in_reply_to":"3a50d1a3_11b608f9","updated":"2015-07-30 01:03:24.000000000","message":"I think so. Maybe we just need to ensure the function _add_to_threadpool will be called is fine.","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"e1a3c772a7974be6e2146b1a82349eb7e88f9b78","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        backup1 \u003d self._create_backup_db_entry(status\u003d\u0027deleting\u0027,"},{"line_number":240,"context_line":"                                               volume_id\u003dvol1_id)"},{"line_number":241,"context_line":"        self.backup_mgr.init_host()"},{"line_number":242,"context_line":"        self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt,"},{"line_number":243,"context_line":"                          backup1.id)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_11b608f9","line":242,"in_reply_to":"3a50d1a3_74c75398","updated":"2015-07-28 17:04:16.000000000","message":"Yeah, it fails CI - because the test is running faster than the delete thread?","commit_id":"2f4cd36ee050db96251937f9251d1219b30427eb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"766dfd5daf6c4c0e189e35ab0ee21f19c3590b13","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                               volume_id\u003dvol2_id)"},{"line_number":248,"context_line":"        self.backup_mgr.init_host()"},{"line_number":249,"context_line":"        calls \u003d [mock.call(mock.ANY, self.ctxt, backup1),"},{"line_number":250,"context_line":"                 mock.call(mock.ANY, self.ctxt, backup2)]"},{"line_number":251,"context_line":"        mock_add_threadpool.assert_has_calls(calls)"},{"line_number":252,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_50ace78b","line":250,"updated":"2015-07-31 14:45:46.000000000","message":"You are calling delete_backup, which isn\u0027t mocked.","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a1441a9b02d559d87aaaa285f5cdaf2e2ed9c85b","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                               volume_id\u003dvol2_id)"},{"line_number":248,"context_line":"        self.backup_mgr.init_host()"},{"line_number":249,"context_line":"        calls \u003d [mock.call(mock.ANY, self.ctxt, backup1),"},{"line_number":250,"context_line":"                 mock.call(mock.ANY, self.ctxt, backup2)]"},{"line_number":251,"context_line":"        mock_add_threadpool.assert_has_calls(calls)"},{"line_number":252,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_2ce3d8d9","line":250,"in_reply_to":"3a50d1a3_50ace78b","updated":"2015-08-03 03:45:13.000000000","message":"Done","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4bfdd290883eaf84032566906d790c707d099ca3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        self.backup_mgr.init_host()"},{"line_number":249,"context_line":"        calls \u003d [mock.call(mock.ANY, self.ctxt, backup1),"},{"line_number":250,"context_line":"                 mock.call(mock.ANY, self.ctxt, backup2)]"},{"line_number":251,"context_line":"        mock_add_threadpool.assert_has_calls(calls)"},{"line_number":252,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_3194cfe6","line":251,"updated":"2015-07-31 10:22:18.000000000","message":"It would be a good idea to set any_order\u003dTrue","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"a1441a9b02d559d87aaaa285f5cdaf2e2ed9c85b","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        self.backup_mgr.init_host()"},{"line_number":249,"context_line":"        calls \u003d [mock.call(mock.ANY, self.ctxt, backup1),"},{"line_number":250,"context_line":"                 mock.call(mock.ANY, self.ctxt, backup2)]"},{"line_number":251,"context_line":"        mock_add_threadpool.assert_has_calls(calls)"},{"line_number":252,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_4ce8a4b3","line":251,"in_reply_to":"3a50d1a3_3194cfe6","updated":"2015-08-03 03:45:13.000000000","message":"Done","commit_id":"d6135f4b9f4c4e6f053764ae774e368721537cec"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"74dd15a042ec1d91451b0ea817c22c954d39cf30","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                                               volume_id\u003dvol2_id)"},{"line_number":246,"context_line":"        mock_get_all_by_host.return_value \u003d [backup1, backup2]"},{"line_number":247,"context_line":"        self.backup_mgr.init_host()"},{"line_number":248,"context_line":"        calls \u003d [mock.call(mock.ANY, mock.ANY, backup1),"},{"line_number":249,"context_line":"                 mock.call(mock.ANY, mock.ANY, backup2)]"},{"line_number":250,"context_line":"        mock_add_threadpool.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":251,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_e4726bad","line":248,"updated":"2015-08-03 15:42:07.000000000","message":"Shouldn\u0027t this be:\n\n    mock.call(self.backup_mgr.delete_backup, mock.ANY, backup1)","commit_id":"a3ea9bffcbd0d97878134d82398678f4a5f094fb"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"133bc4f65b653caa5ecdf3251af0bc9f90c4a88c","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                                               volume_id\u003dvol2_id)"},{"line_number":246,"context_line":"        mock_get_all_by_host.return_value \u003d [backup1, backup2]"},{"line_number":247,"context_line":"        self.backup_mgr.init_host()"},{"line_number":248,"context_line":"        calls \u003d [mock.call(mock.ANY, mock.ANY, backup1),"},{"line_number":249,"context_line":"                 mock.call(mock.ANY, mock.ANY, backup2)]"},{"line_number":250,"context_line":"        mock_add_threadpool.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":251,"context_line":"        self.assertEqual(2, mock_add_threadpool.call_count)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_ffa3bb9c","line":248,"in_reply_to":"1a4dcd0f_e4726bad","updated":"2015-08-04 03:20:12.000000000","message":"Done","commit_id":"a3ea9bffcbd0d97878134d82398678f4a5f094fb"}]}
