示例#1
0
 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
示例#2
0
文件: shard_agent.py 项目: f3at/feat
    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