)]}'
{"designate/coordination.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"f36e9ab382c0d7f306db1c939d23fa6e909972bd","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class Partitioner(object):"},{"line_number":106,"context_line":"    def __init__(self, coordinator, group_id, my_id, partitions):"},{"line_number":107,"context_line":"        self._coordinator \u003d coordinator"},{"line_number":108,"context_line":"        self._group_id \u003d group_id"},{"line_number":109,"context_line":"        self._my_id \u003d my_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa32b979_24fc16b7","line":106,"updated":"2015-06-24 16:57:10.000000000","message":"We\u0027ll want to update the Partitioner to assign all partitions to the local process when self._coordinator \u003d\u003d None - https://review.openstack.org/#/c/194705/ has an example of how this might be done, and the testing required :)","commit_id":"59710d781d6d6e69ff5011b12ac671608ddb36f6"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6809c9703bd0e821826b7c92f2cb1ef878b812c0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               default\u003dNone,"},{"line_number":35,"context_line":"               help\u003d\u0027The backend URL to use for distributed coordination. If \u0027"},{"line_number":36,"context_line":"                    \u0027unset services that need coordination will function as \u0027"},{"line_number":37,"context_line":"                    \u0027a standalone service.\u0027"},{"line_number":38,"context_line":"    cfg.FloatOpt(\u0027heartbeat_interval\u0027,"},{"line_number":39,"context_line":"                 default\u003d1.0,"},{"line_number":40,"context_line":"                 help\u003d\u0027Number of seconds between heartbeats for distributed \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3487e813","line":37,"updated":"2015-06-27 11:20:39.000000000","message":"Syntax error - Missing ), from the end...","commit_id":"49568eb6dd516c9ae93329a94d75ec0c974ac796"},{"author":{"_account_id":395,"name":"Endre Karlson","email":"endre.karlson@gmail.com","username":"endre-karlson"},"change_message_id":"8b02139bb369af46977c97ccc8968c5f943a5842","unresolved":false,"context_lines":[{"line_number":34,"context_line":"               default\u003dNone,"},{"line_number":35,"context_line":"               help\u003d\u0027The backend URL to use for distributed coordination. If \u0027"},{"line_number":36,"context_line":"                    \u0027unset services that need coordination will function as \u0027"},{"line_number":37,"context_line":"                    \u0027a standalone service.\u0027"},{"line_number":38,"context_line":"    cfg.FloatOpt(\u0027heartbeat_interval\u0027,"},{"line_number":39,"context_line":"                 default\u003d1.0,"},{"line_number":40,"context_line":"                 help\u003d\u0027Number of seconds between heartbeats for distributed \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_9abe1aad","line":37,"in_reply_to":"fa32b979_3487e813","updated":"2015-06-27 19:09:52.000000000","message":"Done","commit_id":"49568eb6dd516c9ae93329a94d75ec0c974ac796"}],"designate/zone_manager/service.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"ff41ff8f201c646f8e71a3bbf43b435086d1d8be","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.tg.add_timer(cfg.CONF.coordination.heartbeat,"},{"line_number":64,"context_line":"                          self.partitioner.heartbeat)"},{"line_number":65,"context_line":"        self.tg.add_timer(cfg.CONF.coordination.check_watchers,"},{"line_number":66,"context_line":"                          self.partitioner.run_watchers)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _rebalance(self, event):"},{"line_number":69,"context_line":"        LOG.info(\"Received rebalance event %s\" % event)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_1bb3100c","line":66,"updated":"2015-06-20 09:55:51.000000000","message":"The spec called for the Group Membership piece to be built as a service mixin, so it can be reused in other services. Humm, I wonder if we\u0027ll need to re-work the code from ceilo to allow for that. The reasoning for this is, we want to use the Group Membership stuff in most services, so we can have a \"service-list\" command similar to Nova/Neutron etc, displaying all the services and their UP/DOWN status.\n\nIf we take a step back from the partitioner code, and add a mixin which is purely tooz Group Membership, and then layer the the partitioner pieces on top - this should become more reusable. This will likely need lots of rework on the partitioner code we\u0027ve grabbed, sorry!","commit_id":"83b07bd46d50a199380cb051ba82b395fc52e781"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"6809c9703bd0e821826b7c92f2cb1ef878b812c0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(Service, self).__init__(threads\u003dthreads)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self._partitioner \u003d coordination.Partitioner("},{"line_number":34,"context_line":"            self._coordinator, self.service_name, self._my_id, range(0, 4095))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _rebalance(self, my_partitions, members, event):"},{"line_number":37,"context_line":"        LOG.info(_LI(\"Received rebalance event %s\") % event)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b47bf828","line":34,"updated":"2015-06-27 11:20:39.000000000","message":"self._my_id doesn\u0027t exist, it\u0027s self._coordination_id","commit_id":"49568eb6dd516c9ae93329a94d75ec0c974ac796"},{"author":{"_account_id":395,"name":"Endre Karlson","email":"endre.karlson@gmail.com","username":"endre-karlson"},"change_message_id":"8b02139bb369af46977c97ccc8968c5f943a5842","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(Service, self).__init__(threads\u003dthreads)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self._partitioner \u003d coordination.Partitioner("},{"line_number":34,"context_line":"            self._coordinator, self.service_name, self._my_id, range(0, 4095))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _rebalance(self, my_partitions, members, event):"},{"line_number":37,"context_line":"        LOG.info(_LI(\"Received rebalance event %s\") % event)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_1a00ca65","line":34,"in_reply_to":"fa32b979_b47bf828","updated":"2015-06-27 19:09:52.000000000","message":"Done","commit_id":"49568eb6dd516c9ae93329a94d75ec0c974ac796"}]}
