def _chooseClientNetwork(self, reason=None): """ Choosing the correct IP address based on target info. @param reason: void parameter, used as twisted callback reason @type reason: twisted callback reason """ return chooseClientInfo(self.cohq.target)
def _runProxyClientPhase(self, client): # fulfill protocol client['protocol'] = 'rsyncproxy' proxyCoH = CoHQuery(self.coh.getUsedProxy()) # get informations about our proxy if proxyCoH == None: return defer.fail(Exception("Cant access to CoH")).addErrback(self.parsePushError, decrement_attempts_left = True).addErrback(self.got_error_in_error) #proxy = self.get_client("transfert") proxy = {'host': chooseClientInfo(proxyCoH.target), 'uuid': proxyCoH.target.getUUID(), 'maxbw': proxyCoH.cmd.maxbw, 'client_check': getClientCheck(proxyCoH.target), 'server_check': getServerCheck(proxyCoH.target), 'action': getAnnounceCheck('transfert'), #'group': getClientGroup(proxyCoH.target)} # TODO - get correct network address 'group': ""} # TODO - get from launchers select if not proxy['host']: # We couldn't get an IP address for the target host return defer.fail(Exception("Can't get proxy IP address")).addErrback(self.parsePushError, decrement_attempts_left = True).addErrback(self.got_error_in_error) # and fill struct # only proxy['host'] used until now client['proxy'] = {'command_id': self.coh.getUsedProxy(), 'host': proxy['host'], 'uuid': proxy['uuid'] } # build file list files_list = [] for file in self.cmd.files.split("\n"): fname = file.split('##')[1] if re_abs_path.search(fname): fname = re_basename.search(fname).group(1) # keeps last compontent of path files_list.append(fname) # prepare deffereds if self.config.mode == 'sync': self.update_history_in_progress() mydeffered = self.launchers_provider.sync_remote_pull(self.coh.getId(), client, files_list, self.config.max_upload_time ) mydeffered.\ addCallback(self.parsePushResult).\ addErrback(self.parsePushError).\ addErrback(self.got_error_in_error) elif self.config.mode == 'async': # 'server_check': {'IP': '192.168.0.16', 'MAC': 'abbcd'} mydeffered = self.launchers_provider.async_remote_pull(self.coh.getId(), client, files_list, self.config.max_upload_time ) mydeffered.\ addCallback(self.parsePushOrder).\ addErrback(self.parsePushError).\ addErrback(self.got_error_in_error) else: mydeffered = None return mydeffered
def _runProxyClientPhase(self, client): # fulfill protocol client['protocol'] = 'rsyncproxy' proxyCoH = CoHQuery(self.coh.getUsedProxy()) # get informations about our proxy if proxyCoH == None: return defer.fail(Exception("Cant access to CoH")).addErrback(self.parsePushError).addErrback(self.got_error_in_error) #proxy = self.get_client("transfert") proxy = {'host': chooseClientInfo(proxyCoH.target), 'uuid': proxyCoH.target.getUUID(), 'maxbw': proxyCoH.cmd.maxbw, 'client_check': getClientCheck(proxyCoH.target), 'server_check': getServerCheck(proxyCoH.target), 'action': getAnnounceCheck('transfert'), #'group': getClientGroup(proxyCoH.target)} # TODO - get correct network address 'group': ""} # TODO - get from launchers select if not proxy['host']: # We couldn't get an IP address for the target host return defer.fail(Exception("Can't get proxy IP address")).addErrback(self.parsePushError).addErrback(self.got_error_in_error) # and fill struct # only proxy['host'] used until now client['proxy'] = {'command_id': self.coh.getUsedProxy(), 'host': proxy['host'], 'uuid': proxy['uuid'] } # build file list files_list = [] for file in self.cmd.files.split("\n"): fname = file.split('##')[1] if re_abs_path.search(fname): fname = re_basename.search(fname).group(1) # keeps last compontent of path files_list.append(fname) # prepare deffereds if self.config.mode == 'sync': self.update_history_in_progress() mydeffered = self.launchers_provider.sync_remote_pull(self.coh.getId(), client, files_list, self.config.max_upload_time ) mydeffered.\ addCallback(self.parsePushResult).\ addErrback(self.parsePushError).\ addErrback(self.got_error_in_error) elif self.config.mode == 'async': # 'server_check': {'IP': '192.168.0.16', 'MAC': 'abbcd'} mydeffered = self.launchers_provider.async_remote_pull(self.coh.getId(), client, files_list, self.config.max_upload_time ) mydeffered.\ addCallback(self.parsePushOrder).\ addErrback(self.parsePushError).\ addErrback(self.got_error_in_error) else: mydeffered = None return mydeffered