Teradici系统的可定制代理。
interstate-love-song的Python项目详细描述
____ _/________ /_____________________ /______ __ /_____
___ / __ __ \ __/ _ \_ ___/_ ___/ __/ __ `/ __/ _ \
__/ / _ / / / /_ / __/ / _(__ )/ /_ / /_/ // /_ / __/
/___/ /_/ /_/\__/ \___//_/ /____/ \__/ \__,_/ \__/ \___/
______ ________
___ / _________ ______ __ ___/___________________ _
__ / _ __ \_ | / / _ \ _____ \_ __ \_ __ \_ __ `/
_ /___/ /_/ /_ |/ // __/ ____/ // /_/ / / / / /_/ /
/_____/\____/_____/ \___/ /____/ \____//_ /_/_\__, /
/____/
Teradici系统的可定制代理。在
跑步
您可以通过以下方式直接运行WSGI服务器
^{pr2}$理由是:
- 在
-s,--server:可以是
在gunicorn
、cherrypy
或{}。 gunicorn
是推荐的,也是默认值。在 - 在
--主机:(默认:localhost)
在 - 在
-p,--端口:(默认值:60443)。在
在 - 在
--回退会话:在某些情况下,如果标头的大小写不正确,PCOIP客户端可能不会使用cookie。 HTTP规范说头名称不区分大小写,但PCOIP客户端认为其中一些应该区分大小写。在这种情况下 我们可以使用
在CLIENT-LOG-ID
头来跟踪会话。请注意,如果可以的话,您应该运行cookies 因为这样更稳定,更不浪费。在 - 在
--config:配置文件。在
在 - 在
--cert:SSL证书文件,SSL不是可选的。(默认值:自签名.crt)在
在 - 在
--密钥:SSL密钥文件(默认值:selfsign.key)在
在 - 在
--gunicorn worker类:请参见gunicorn config(默认值:gevent)
在 - 在
--gunicorn workers:请参见gunicorn config(默认值:2)
在
选择服务器
teradicipcoip客户端非常挑剔和特别。在
- 服务器必须使用分块编码(他们声称它支持 常规HTTP传输,但不是。)
- SSL是必须的。在
- cookie set头必须显式为“set cookie”,否 其他情况允许。在
如果你不喜欢,考虑一下古尼康。在
CherryPyRunner是在windows上开发的一个很好的选择。^运行CherryPy时可能需要{
Werkzeug似乎一点都不好用。这并不是因为Werkzeug不好,而是因为上面的原因,某件事 关于通信与Teradici PCOIP客户机没有关联。在
设置
生成默认配置:
python -m interstate_love_song.settings > ../settings.json
截面
JSON文件包含一个JSON设置。每个部分都是它自己的JSON对象。在
记录
level
:str;INFO
或DEBUG
(INFO
)
烧杯
查看Beaker docs。在
type
:str;会话存储类型(file
)
data_dir
:str;会话存储位置(/tmp
)
映射器
mapper
:dict;{"plugin": "SimpleMapper", "settings": {}}
mapper.plugin
:str;要使用的映射器的名称(SimpleMapper
)
mapper.settings
:dict;映射器设置
有关示例,请参见SimpleMapper
制图员
映射器将资源分配给用户;用简单的英语,他们决定将哪些Teradici机器(如果有的话)呈现给 正在连接客户端。在
SimpleMapper
简单的映射器确实很简单。它只验证一个普通用户。它为返回一组给定的资源 这个用户,没有特殊的逻辑。在
简单的映射器主要用于测试和作为参考实现。在
设置
username
:str;身份验证用户(test
)
password_hash
:str;身份验证密码,请参阅简单映射器部分(change_me
)
resources
:Sequence[Resource];要呈现的资源([]
)
domains
:Sequence[str];可用域列表
SimpleMapper的示例配置 例如:
{..."mapper":{"plugin":"SimpleMapper","settings":{"username":"kolmogorov","password_hash":"goodluckgettingthishash","resources":[{"name":"Elisabeth Taylor","hostname":"vmwr-test-01.example.com"},{"name":"James Dean","hostname":"vmwr-test-01.example.com"},{"name":"Marlon Brando","hostname":"localhost"}],"domains":["example.com"]}}}
生成密码哈希
用户名和密码存储在设置中。为了在明文密码上提供一点安全性,我们需要 要“预哈希”的密码。这样我们就不会在任何地方存储明文密码。在
要生成哈希密码,只需调用:
python -m interstate_love_song.mapping.simple "a very long password"
插件映射器
映射器可以作为插件写在单独的python包中。
要找到插件,您需要在setup.py
中定义一个入口点:
setup(
...
entry_points={'interstate_love_song.plugins': 'SimpleWebserviceMapper = SimpleWebserviceMapper'},
...
)
例如,请查看我们的SimpleWebServiceMapper repo。在
要求
- Python 3.7+
- 猎鹰 <李>pytest(用于测试)
- 消毒剂
- xmldiff(用于测试)
- 烧杯
- 猎鹰中间件烧杯
- 请求
- httpretty(用于测试)
如果你想运行Gunicorn,你需要Gunicorn和worker类可能需要的依赖项。例如, “gevent”,自然需要“gevent”。在
如果你想使用CherryPy的runner或Werkzeug,你也需要这些软件包。在
格式化和线切割
我们使用black来格式化代码,我们允许127
列的行长度。
如果代码格式不正确,CI将运行python -m black --check source --target-version py37 --line-length 127
失败。
要进行本地测试,可以使用pip install black==19.10b0
安装black
强烈建议将IDE配置为使用这些设置在保存时运行格式化。在
- 项目
标签: