コード例 #1
0
    def get_client(self, announce):
        client_group = ""
        if self.host :

            for pref_net_ip, pref_netmask in self.config.preferred_network :
                if NetUtils.on_same_network(self.host, pref_net_ip, pref_netmask):

                    client_group = pref_net_ip
                    break
        else :
            if len(self.config.preferred_network) > 0 :
                (pref_net_ip, pref_netmask) = self.config.preferred_network[0]
                client_group = pref_net_ip


        return {'host': self.host,
                'uuid': self.target.getUUID(),
                'maxbw': self.cmd.maxbw,
                'protocol': 'ssh',
                'client_check': getClientCheck(self.target),
                'server_check': getServerCheck(self.target),
                'action': getAnnounceCheck(announce),
                'group': client_group
               }
コード例 #2
0
ファイル: types.py プロジェクト: pavelpromin/mmc
    def get_client(self, announce):
        client_group = ""
        if self.host :

            for pref_net_ip, pref_netmask in self.config.preferred_network :
                if NetUtils.on_same_network(self.host, pref_net_ip, pref_netmask):

                    client_group = pref_net_ip
                    break
        else :
            if len(self.config.preferred_network) > 0 :
                (pref_net_ip, pref_netmask) = self.config.preferred_network[0] 
                client_group = pref_net_ip 
            

        return {'host': self.host, 
                'uuid': self.target.getUUID(), 
                'maxbw': self.cmd.maxbw, 
                'protocol': 'ssh', 
                'client_check': getClientCheck(self.target), 
                'server_check': getServerCheck(self.target), 
                'action': getAnnounceCheck(announce), 
                'group': client_group
               }
コード例 #3
0
ファイル: remote.py プロジェクト: pavelpromin/mmc
    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
コード例 #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