示例#1
0
    def init_ftp_client(self, alias, port, remote_url=False):
        """
        功能描述:初始化执行ftp client;
        
        参数:
            alias:别名;
            port:服务器所打开的端口号;
            remote_url:是否要进行远程控制;
        格式为:http://remote_IP.可以用以下的几种方式进行初始化。
        注意别名请设置为不同的别名,切换的时候用别名进行切换。
        
        Example:
        | Init Ftp Client  | Local   | 21     |
        | Init Ftp Client  | remote  | 21     | http://10.10.10.85 |
        """
        # 对用户输入的remote_url做处理转换,添加http://头等
        remote_url = modified_remote_url(remote_url)

        if (is_remote(remote_url)):
            # already init?
            ret_alias = self._is_init(alias, port, remote_url)
            if (ret_alias):
                reallib = self._cache.switch(ret_alias)
            else:
                reallib = Remote(remote_url)

            reallib._client.set_timeout(
                REMOTE_TIMEOUT)  # add connection remote timeout zsj 2013-3-28
            auto_do_remote(reallib)

        else:
            # already init?
            ret_alias = self._is_init(alias, port, remote_url)
            if (ret_alias):
                reallib = self._cache.switch(ret_alias)
                #清空之前建立的连接对象  #add by jias 20130810
                #当相同的2个用例一起执行的时候,第二个用例初始化时,会直接去第一用的ftpclient对象,
                #这时,远端server已经重新启动,故清空之前的连接和标志
                reallib.clear()
            else:
                reallib = ATTFtpClient(port)

        tag = self._cache.register(reallib, alias)
        self._register_alias(alias, port, remote_url)

        return tag