Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #4
0
    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