云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_数据库开发工程师_怎么买

小七 141 0

电气指挥官+Python=ec.py公司

上周CloudBees举办了有史以来规模最大的客户峰会,讨论了持续交付的现实世界实现和加速软件管道的方法。这对客户和EC员工来说是一次令人兴奋和富有教育意义的经历。有几个客户向我提出了一个问题:"我们在Perl上不是什么大公司。有没有计划开发一个到Commander服务器的Python接口?"这个问题在每年的客户峰会上都会出现,而且答案总是一样的:"很抱歉,还有许多其他功能具有更广泛的影响,优先级更高"。。。直到现在!介绍ElectricCommander Python模块0.1.0让我非常高兴!本模块(ec.py公司)包含一个与electricommander Perl类似的electricommander类模块。下载和安装下载模块和httplib2模块ec-0.1.1 httplib2-0.7.1。每个模块都作为distutils包提供。要安装,请解压缩相应的归档文件,然后发出以下命令命令:python setup.pyinstallusaget若要发出请求,请使用请求参数字典调用electricommander对象上的方法。下面是一个简单的示例,用于检索属性:来自ec进口电气指挥官指挥官=电气指挥官()xml=cmdr.getProperty(dict(propertyName='/server/myprop'))... 像平常一样处理xml结果…登录是特殊的,因为它需要更新electricommander对象中的活动会话。登录失败引发异常。注意,请求参数不在字典中api:尝试:xml=命令登录('user1','pass1')除非另有说明:打印(inst)您可以创建多个ElectricCommander对象以连接到多个服务器:cmdr2=电气指挥官('server2',user='user1')... 对cmdr2对象发出请求。。。下面是如何为名称以"D"或"E"开头的项目发出findObjects请求:print(findObjects指挥官(迪克特)(objectType='项目',过滤器=dict(运算符='或',过滤器=)))下面是如何并行发出批处理请求模式:打印(httpPost指挥官(makeEnvelope命令(createRequest命令('getProperty',dict(propertyName='/server/myprop'))+ createRequest命令('getServerStatus'),'平行'))以下是如何从作业中设置作业属性步骤:从操作系统导入环境打印(命令集属性(迪克特)(propertyName='/myJob/prop1',值='5',作业步骤ID=环境)先决条件2号还是蟒蛇3号?Python没有提供用于连接缓存的http模块,所以我写了ec.py公司依赖httplib2。httplib2在python3.2.2上运行时会出现一个bug,因此它不能正确地发出https请求。我调整了模块以解决这个问题,并遇到了一个核心python3.2.2问题(这实际上是OpenSSL中未解决的问题)。不过,它确实可以正确地发出纯http请求。httplib2在python2.7.2上运行良好,适用于http和https。ec.py公司不适用于Python2.5.x,但都适用于Python2.6。建议:使用Python2.7.x或与其相近的版本可能.httplib2As前面提到过,ec.py公司依赖于httplib2。我把httplib-0.7.1附加到这个博客中岗位行为区别于电气指挥官.pmThere有一些区别ec.py公司以及电气指挥官pm.ec.py没有api调用的位置参数概念(登录除外);必须始终在词典.ec.py以xml字符串形式返回响应,同时电气指挥官.pm返回xpath对象。以下是选择返回响应的几个原因字符串:Python的标准库不包括xpath模块/类。公共可用的PyXML包支持xpath,但它不是纯Python包,因此我们必须为用户希望使用的每个平台构建它ec.py公司. 也是繁重的。为了对于较大的响应,您可能希望选择使用SAX解析器来解析结果,而不是使用DOM解析器(xpath查询需要)。DOM解析器可以在内存中为xml.ec.py不进行参数验证。您可以对任何请求(包括不存在的请求名称)设置任何请求参数。该模块将创建具有代表性的请求xml,并将其发送到服务器,服务器将执行验证并拒绝无效请求。这样做的副作用是ec.py公司在某种程度上是经得起未来考验的——如果新的服务器api在下一个版本的ElectricalCommander中可用,则无需升级ec.py公司使用他们知道吗LimitationsIt不会自动附加上下文参数(例如,在作业步骤上下文中运行时属性api调用的jobStepId)会话文件。但是,它会读取它并尊重默认会话存在。它没有批处理api,但是您可以使用public方法自己发出批处理请求(如上面的例子所示)请求。功能从Perl API中,并没有实现不仅仅是围绕发出服务器请求的包装器。这包括(但不限于)installPlugin、uninstallPlugin、publishArtifactVersion和retrieveArtifactVersions.合法(非)限制此模块免费使用。根据您认为合适的方式修改它,以提高您使用ElectricCommander的体验。我很乐意在我的主人中加入更新。CloudBees未正式支持此模块。它没有经过正式的测试,您可能会遇到我在手动测试中没有遇到的问题。发布您的问题/评论,当我收到机会。未来方向因为我刚刚学习了Python,所以很可能一些模块实现和接口可以改进。我不能保证向后兼容,但我将记录向后不兼容的更改,这样您就可以很容易地更新脚本以使用新版本的ec.py公司.