)]}'
{"designate/coordination.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"2fc6cfcb027ba7799015724d45562cd313c529e8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                    \u0027compute agent won\\\u0027t do workload \u0027"},{"line_number":33,"context_line":"                    \u0027partitioning and will only function correctly if a \u0027"},{"line_number":34,"context_line":"                    \u0027single instance of that service is running.\u0027),"},{"line_number":35,"context_line":"    cfg.FloatOpt(\u0027heartbeat\u0027,"},{"line_number":36,"context_line":"                 default\u003d1.0,"},{"line_number":37,"context_line":"                 help\u003d\u0027Number of seconds between heartbeats for distributed \u0027"},{"line_number":38,"context_line":"                      \u0027coordination.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_facc11bd","line":35,"updated":"2015-06-22 09:46:51.000000000","message":"Can we call this heartbeat_interval so it\u0027s clear what it is from just the name?","commit_id":"39f583701730234eda2a79ae1bf7b23e742d6c3d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"2fc6cfcb027ba7799015724d45562cd313c529e8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                 default\u003d1.0,"},{"line_number":37,"context_line":"                 help\u003d\u0027Number of seconds between heartbeats for distributed \u0027"},{"line_number":38,"context_line":"                      \u0027coordination.\u0027),"},{"line_number":39,"context_line":"    cfg.FloatOpt(\u0027run_watchers\u0027,"},{"line_number":40,"context_line":"                 default\u003d10.0,"},{"line_number":41,"context_line":"                 help\u003d\u0027Number of seconds between checks to see if group \u0027"},{"line_number":42,"context_line":"                      \u0027membership has changed\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_7ab9e114","line":39,"updated":"2015-06-22 09:46:51.000000000","message":"Can we call this run_watcher_interval so it\u0027s clear what it is from just the name?","commit_id":"39f583701730234eda2a79ae1bf7b23e742d6c3d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"2fc6cfcb027ba7799015724d45562cd313c529e8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":52,"context_line":"        super(CoordinationMixin, self).__init__(*args, **kwargs)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        self._my_id \u003d kwargs.get(\u0027my_id\u0027) or str(uuid.uuid4())"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        backend_url \u003d cfg.CONF.coordination.backend_url"},{"line_number":57,"context_line":"        self._coordinator \u003d tooz.coordination.get_coordinator("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_baaa09d1","line":54,"updated":"2015-06-22 09:46:51.000000000","message":"We should just be set to CONF[\u0027host\u0027], avoiding the awkwardness of mixins with constructor arguments..\n\nAlso - can we ensure class members are prefixed with \"_coordinator_\", so the risk of conflict is minimal. e.g. the same pattern as all the Mixins in service.py","commit_id":"39f583701730234eda2a79ae1bf7b23e742d6c3d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"469b5218ca3ec71abc7f57ff4482bedc57976d7c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.tg.add_timer(cfg.CONF.coordination.heartbeat_interval,"},{"line_number":72,"context_line":"                          self._coordinator_heartbeat)"},{"line_number":73,"context_line":"        self.tg.add_timer(cfg.CONF.coordination.run_watchers_interval,"},{"line_number":74,"context_line":"                          self._coordinator_run_watchers)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self._coordination_started \u003d True"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_446e50ca","line":74,"updated":"2015-06-23 06:59:26.000000000","message":"We still need to move these out of the start method, if they are here, then calling start(),stop(),start() will result in the timers being incorrectly scheduled multiple times.","commit_id":"791c5041a30fe1e76b0eff91388785fdf77e8261"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"469b5218ca3ec71abc7f57ff4482bedc57976d7c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def stop(self):"},{"line_number":79,"context_line":"        self._coordination_started \u003d False"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self._coordinator.leave_group(self._my_id)"},{"line_number":82,"context_line":"        self._coordinator.stop()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        super(CoordinationMixin, self).stop()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_422163b3","line":81,"updated":"2015-06-23 06:59:26.000000000","message":"Shouldn\u0027t this be the group ID rather than my ID?","commit_id":"791c5041a30fe1e76b0eff91388785fdf77e8261"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"00d95f04f69335ffffe086bab7a9c471c928d9df","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":55,"context_line":"        super(CoordinationMixin, self).__init__(*args, **kwargs)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        self._my_id \u003d \":\".join([CONF.host, str(uuid.uuid4())])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        backend_url \u003d cfg.CONF.coordination.backend_url"},{"line_number":60,"context_line":"        self._coordinator \u003d tooz.coordination.get_coordinator("}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_98eeedeb","line":57,"updated":"2015-06-23 13:11:45.000000000","message":"can we rename self._my_id to self._coordination_id - so it\u0027s purpose is clearer when it\u0027s used in the other service classes?","commit_id":"e5429b0bb3df7cfbf7d820c9a28cafa9392ea663"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24dac951e85d19748c38d6ada9e796190e5f394d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            self._coordination_started \u003d True"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def stop(self):"},{"line_number":92,"context_line":"        if self._coordinator is None:"},{"line_number":93,"context_line":"            self._coordination_started \u003d False"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            self._coordinator.leave_group(self.service_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa32b979_dda76ebb","line":92,"updated":"2015-06-23 21:39:20.000000000","message":"This should be:\n\n    if self._coordinator is not None:","commit_id":"9f3113e5cfcb2b37710e4093338be6e4a96f33fb"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"6a773f41d8423d3a2abe8aa2a84d100fc6cd66c4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               help\u003d\u0027The backend URL to use for distributed coordination. If \u0027"},{"line_number":35,"context_line":"                    \u0027left empty, per-deployment central agent and per-host \u0027"},{"line_number":36,"context_line":"                    \u0027compute agent won\\\u0027t do workload \u0027"},{"line_number":37,"context_line":"                    \u0027partitioning and will only function correctly if a \u0027"},{"line_number":38,"context_line":"                    \u0027single instance of that service is running.\u0027),"},{"line_number":39,"context_line":"    cfg.FloatOpt(\u0027heartbeat_interval\u0027,"},{"line_number":40,"context_line":"                 default\u003d1.0,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e02a617d","line":37,"updated":"2015-06-25 17:44:47.000000000","message":"Help text might need to be updated?","commit_id":"a18d559c2ef7d063ed23b5c7705eecbf941ee675"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"5e3fdba709e5de82453167e9e3cfa1c9dbd2f5e9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            LOG.warn(msg)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _init_coordination(self):"},{"line_number":68,"context_line":"        self._coordination_id \u003d \":\".join([CONF.host, str(uuid.uuid4())])"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        backend_url \u003d cfg.CONF.coordination.backend_url"},{"line_number":71,"context_line":"        self._coordinator \u003d tooz.coordination.get_coordinator("}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_348e0828","line":68,"updated":"2015-06-27 11:24:28.000000000","message":"This belongs outside the if/else above, next to self._coordinator \u003d None so subclasses can rely on it\u0027s presence","commit_id":"a18d559c2ef7d063ed23b5c7705eecbf941ee675"}],"designate/tests/test_coordination.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24dac951e85d19748c38d6ada9e796190e5f394d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.assertEqual(True, service._coordination_started)"},{"line_number":44,"context_line":"        self.assertIn(service.service_name,"},{"line_number":45,"context_line":"                      service._coordinator.get_groups().get())"},{"line_number":46,"context_line":"        self.assertIn(service._my_id,"},{"line_number":47,"context_line":"                      service._coordinator.get_members("},{"line_number":48,"context_line":"                            service.service_name).get())"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa32b979_7da8a28c","line":46,"updated":"2015-06-23 21:39:20.000000000","message":"_my_id was renamed","commit_id":"9f3113e5cfcb2b37710e4093338be6e4a96f33fb"}]}
