)]}'
{"watcher/common/scheduling.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"\"\"Stop service.\"\"\""},{"line_number":32,"context_line":"        self.shutdown()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def wait(self):"},{"line_number":35,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def reset(self):"},{"line_number":38,"context_line":"        \"\"\"Reset service."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_35040216","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":43},"updated":"2016-07-04 15:08:04.000000000","message":"def wait(self):\n        \"\"\"Wait for service to complete.\"\"\"\n        pass","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"\"\"Stop service.\"\"\""},{"line_number":32,"context_line":"        self.shutdown()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def wait(self):"},{"line_number":35,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def reset(self):"},{"line_number":38,"context_line":"        \"\"\"Reset service."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9db3b409","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":43},"in_reply_to":"1aa78d24_35040216","updated":"2016-07-07 14:35:18.000000000","message":"I didn\u0027t add the pass since it doesn\u0027t add any more information. Also, if you look at https://github.com/openstack/oslo.service/blob/master/oslo_service/service.py#L631-L653\nyou\u0027ll see that oslo service did it the same way :)","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def wait(self):"},{"line_number":35,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def reset(self):"},{"line_number":38,"context_line":"        \"\"\"Reset service."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        Called in case service running in daemon mode receives SIGHUP."},{"line_number":41,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9026a4b8","line":41,"range":{"start_line":37,"start_character":0,"end_line":41,"end_character":11},"updated":"2016-07-04 15:08:04.000000000","message":"def reset(self):\n        \"\"\"Reset service...\n        \n        \"\"\"\n        pass","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def wait(self):"},{"line_number":35,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def reset(self):"},{"line_number":38,"context_line":"        \"\"\"Reset service."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        Called in case service running in daemon mode receives SIGHUP."},{"line_number":41,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_1d76a43d","line":41,"range":{"start_line":37,"start_character":0,"end_line":41,"end_character":11},"in_reply_to":"1aa78d24_9026a4b8","updated":"2016-07-07 14:35:18.000000000","message":"ditto","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"}],"watcher/common/service.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        self.publish_status(evt, payload)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def launch(conf, service_, workers\u003d1, restart_method\u003d\u0027reload\u0027):"},{"line_number":215,"context_line":"    return service.launch(conf, service_, workers, restart_method)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_075c404a","line":214,"range":{"start_line":214,"start_character":27,"end_line":214,"end_character":36},"updated":"2016-07-04 15:08:04.000000000","message":"IMHO, we should add a comment why we force workers to 1.","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        self.publish_status(evt, payload)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def launch(conf, service_, workers\u003d1, restart_method\u003d\u0027reload\u0027):"},{"line_number":215,"context_line":"    return service.launch(conf, service_, workers, restart_method)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_babe71ab","line":214,"range":{"start_line":214,"start_character":27,"end_line":214,"end_character":36},"in_reply_to":"1aa78d24_075c404a","updated":"2016-07-07 14:35:18.000000000","message":"Done","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"}],"watcher/decision_engine/scheduling.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def collectors(self):"},{"line_number":32,"context_line":"        return self.collector_manager.get_collectors()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def add_initial_sync_jobs(self):"},{"line_number":35,"context_line":"        for collector in self.collectors.values():"},{"line_number":36,"context_line":"            self.add_job(collector.synchronize)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_periodic_sync_jobs(self):"},{"line_number":39,"context_line":"        for collector in self.collectors.values():"},{"line_number":40,"context_line":"            self.add_job(collector.synchronize,"},{"line_number":41,"context_line":"                         trigger\u003d\u0027interval\u0027,"},{"line_number":42,"context_line":"                         seconds\u003dcollector.config.period)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def start(self):"},{"line_number":45,"context_line":"        \"\"\"Start service.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_957976ff","line":42,"range":{"start_line":34,"start_character":0,"end_line":42,"end_character":57},"updated":"2016-07-04 15:08:04.000000000","message":"why not use next_run_period like this:\n\nfor collector in self.collectors.values():\n  self.add_job(collector.synchronise, trigger\u003d\u0027internal\u0027,\n               seconds\u003dcollector.config.period,\n               next_run_time\u003ddatetime.utcnow())","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def collectors(self):"},{"line_number":32,"context_line":"        return self.collector_manager.get_collectors()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def add_initial_sync_jobs(self):"},{"line_number":35,"context_line":"        for collector in self.collectors.values():"},{"line_number":36,"context_line":"            self.add_job(collector.synchronize)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_periodic_sync_jobs(self):"},{"line_number":39,"context_line":"        for collector in self.collectors.values():"},{"line_number":40,"context_line":"            self.add_job(collector.synchronize,"},{"line_number":41,"context_line":"                         trigger\u003d\u0027interval\u0027,"},{"line_number":42,"context_line":"                         seconds\u003dcollector.config.period)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def start(self):"},{"line_number":45,"context_line":"        \"\"\"Start service.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_da76dd04","line":42,"range":{"start_line":34,"start_character":0,"end_line":42,"end_character":57},"in_reply_to":"1aa78d24_957976ff","updated":"2016-07-07 14:35:18.000000000","message":"Done","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.shutdown()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def wait(self):"},{"line_number":55,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def reset(self):"},{"line_number":58,"context_line":"        \"\"\"Reset service."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_103bd4d2","line":55,"updated":"2016-07-04 15:08:04.000000000","message":"ditto (missing pass)","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.shutdown()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def wait(self):"},{"line_number":55,"context_line":"        \"\"\"Wait for service to complete.\"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def reset(self):"},{"line_number":58,"context_line":"        \"\"\"Reset service."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_fa68f9f6","line":55,"in_reply_to":"1aa78d24_103bd4d2","updated":"2016-07-07 14:35:18.000000000","message":"Done","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\"Reset service."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        Called in case service running in daemon mode receives SIGHUP."},{"line_number":61,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_303250f2","line":61,"updated":"2016-07-04 15:08:04.000000000","message":"ditto (missing pass)","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\"Reset service."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        Called in case service running in daemon mode receives SIGHUP."},{"line_number":61,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9a7a95bb","line":61,"in_reply_to":"1aa78d24_303250f2","updated":"2016-07-07 14:35:18.000000000","message":"Done","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"9bfb74fbb51264b7f9a43c5e6377266bec104093","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class DecisionEngineSchedulingService(scheduling.BackgroundSchedulerService):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __init__(self, gconfig\u003dNone, **options):"},{"line_number":27,"context_line":"        gconfig \u003d None or {}"},{"line_number":28,"context_line":"        super(DecisionEngineSchedulingService, self).__init__("},{"line_number":29,"context_line":"            gconfig, **options)"},{"line_number":30,"context_line":"        self.collector_manager \u003d manager.CollectorManager()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_5227d6b5","line":27,"updated":"2016-07-29 12:06:37.000000000","message":"We can reuse this class for ContinuousAuditHandler. What do you think ?","commit_id":"5761568ef96ab6f1aad193d363ecc554fb7360af"}],"watcher/metrics_engine/cluster_model_collector/base.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        Whenever called this synchronization will perform a drop-in replacement"},{"line_number":159,"context_line":"        with the existing cluster data model"},{"line_number":160,"context_line":"        \"\"\""},{"line_number":161,"context_line":"        self.cluster_data_model \u003d self.execute()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_90dd0417","line":161,"range":{"start_line":161,"start_character":0,"end_line":161,"end_character":48},"updated":"2016-07-04 15:08:04.000000000","message":"missing locking ?","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        Whenever called this synchronization will perform a drop-in replacement"},{"line_number":159,"context_line":"        with the existing cluster data model"},{"line_number":160,"context_line":"        \"\"\""},{"line_number":161,"context_line":"        self.cluster_data_model \u003d self.execute()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_f170290d","line":161,"range":{"start_line":161,"start_character":0,"end_line":161,"end_character":48},"in_reply_to":"1aa78d24_90dd0417","updated":"2016-07-07 14:35:18.000000000","message":"Not really because execute() creates a new model object (so no need for the lock).\nThen when it assigns it to cluster_data_model, it goes through the lock defined at line 133.","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"}],"watcher/tests/metrics_engine/test_nova_cdmc.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        vm \u003d list(vms.values())[0]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(hypervisor.uuid, \u0027test_hostname\u0027)"},{"line_number":82,"context_line":"        self.assertEqual(vm.uuid, \u0027ef500f7e-dac8-470f-960c-169486fce71b\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_f610c050","line":82,"updated":"2016-07-04 15:08:04.000000000","message":"As you defined a mocked method to return flavor settings, It whould be nice to have a test on a flavor value stored in memory :)","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        vm \u003d list(vms.values())[0]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(hypervisor.uuid, \u0027test_hostname\u0027)"},{"line_number":82,"context_line":"        self.assertEqual(vm.uuid, \u0027ef500f7e-dac8-470f-960c-169486fce71b\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9d3d6fc6","line":82,"in_reply_to":"1aa78d24_f610c050","updated":"2016-07-07 14:35:18.000000000","message":"Actually, we lack tests on the nova_helper, so the best to do would be to add more unit tests to it. However, it\u0027s not really the scope of this blueprint so that\u0027s why I only added tests to the bits that I am actually working on, i.e. the Nova cluster data model collector.\nI created a bug about this: https://bugs.launchpad.net/watcher/+bug/1599849.","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"}],"watcher/tests/test_list_opts.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"5dcdde8368c81bdb7f28c17124add65fe2a22f4e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(TestListOpts, self).setUp()"},{"line_number":28,"context_line":"        self.base_sections \u003d ["},{"line_number":29,"context_line":"            \u0027api\u0027, \u0027watcher_decision_engine\u0027, \u0027watcher_applier\u0027,"},{"line_number":30,"context_line":"            \u0027watcher_planner\u0027, \u0027nova_client\u0027, \u0027glance_client\u0027,"},{"line_number":31,"context_line":"            \u0027cinder_client\u0027, \u0027ceilometer_client\u0027, \u0027neutron_client\u0027,"},{"line_number":32,"context_line":"            \u0027watcher_clients_auth\u0027]"},{"line_number":33,"context_line":"        self.opt_sections \u003d list(dict(opts.list_opts()).keys())"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_76797093","line":31,"range":{"start_line":30,"start_character":31,"end_line":31,"end_character":66},"updated":"2016-07-04 15:08:04.000000000","message":"Is it not redundant with watcher_clients_auth ?","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"88644b566f901cd5735bbda870024c1bd23a27ac","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(TestListOpts, self).setUp()"},{"line_number":28,"context_line":"        self.base_sections \u003d ["},{"line_number":29,"context_line":"            \u0027api\u0027, \u0027watcher_decision_engine\u0027, \u0027watcher_applier\u0027,"},{"line_number":30,"context_line":"            \u0027watcher_planner\u0027, \u0027nova_client\u0027, \u0027glance_client\u0027,"},{"line_number":31,"context_line":"            \u0027cinder_client\u0027, \u0027ceilometer_client\u0027, \u0027neutron_client\u0027,"},{"line_number":32,"context_line":"            \u0027watcher_clients_auth\u0027]"},{"line_number":33,"context_line":"        self.opt_sections \u003d list(dict(opts.list_opts()).keys())"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9d29efe8","line":31,"range":{"start_line":30,"start_character":31,"end_line":31,"end_character":66},"in_reply_to":"1aa78d24_76797093","updated":"2016-07-07 14:35:18.000000000","message":"No it\u0027s not","commit_id":"0e9ed2fd4901d7d23d11a5b3e781e6b05d662fd6"}]}
