def prepare_migration(self, state, recp, host_cmd=None, migration_agent=None): recp = IRecipient(recp) manager = self.initiate_protocol(CheckInManager, recp, host_cmd=host_cmd, migration_agent=migration_agent) f = manager.notify_finish() f.add_callback(fiber.bridge_param, self.get_shard_structure) f.add_callback(self._topology_fixes) f.add_callback(self._register_migration) return f
def query_structure(self, state, partner_type, distance=1): def swallow_initiator_failed(fail): fail.trap(ProtocolFailed) self.log('query_structure failed with %r, returning empty ' 'list', fail) return list() if distance != 1: agent.error('Query distance is not supported yet. Right now ' 'this parameter is ignored and defaults to 1') distance = 1 manager = self.initiate_protocol( QueryStructureManager, state.partners.neighbours, partner_type, distance) f = manager.notify_finish() f.add_errback(swallow_initiator_failed) return f