面向Microsoft服务结构的Chaos工具包扩展

chaostoolkit-service-fabric的Python项目详细描述


服务结构的Chaos工具包扩展

Python versions

这个项目是actionsprobes的集合,作为 扩展到Chaos Toolkit。它的目标是 Microsoft Service Fabric平台。

安装

这个包需要python 3.5+

要从实验中使用,此包必须安装在python中 chaostoolkit已经存在的环境。

$ pip install -U chaostoolkit-service-fabric

用法

要使用此包中的探测和操作,请将以下内容添加到 实验文件:

{"type":"action","name":"start-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"start_chaos","secrets":["azure"],"arguments":{"parameters":{"TimeToRunInSeconds":45}}}},{"type":"action","name":"stop-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"stop_chaos","secrets":["azure"]}}

就这样!

请查看代码以查看现有的探针和操作。

配置

证书

此扩展使用引擎盖下的requests库。请求库 希望您有一个pfx证书,转换为pem格式,允许您 使用Service Factory终结点进行身份验证。

一般来说,有两种方法可以做到这一点:

  • 您有created一个配置文件,可以在其中运行 从(使用~/.sfctl/config文件进行实验)

  • 您显式地将正确的环境变量传递给实验 定义如下:

    配置部分:

    {"endpoint":"https://XYZ.westus.cloudapp.azure.com:19080","verify_tls":false,"use_ca":false}

    机密部分:

    {"azure":{"security":"pem","pem_path":"./cluster-client-cert.pem"}}

    PEM也可以作为环境变量传递:

    {"azure":{"security":"pem","pem_content":{"type":"env","key":"AZURE_PEM"}}}

    环境变量名可以是任何内容。

总而言之

下面是一个完整的示例:

{"version":"1.0.0","title":"...","description":"...","configuration":{"endpoint":"https://XYZ.westus.cloudapp.azure.com:19080","verify_tls":false,"use_ca":false},"secrets":{"azure":{"security":"pem","pem_path":"./cluster-client-cert.pem"}},"steady-state-hypothesis":{"title":"Services is healthy","probes":[{"type":"probe","name":"application-must-respond","tolerance":200,"provider":{"type":"http","verify_tls":false,"url":"https://some-url-in-cluster/"}}]},"method":[{"type":"action","name":"start-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"start_chaos","secrets":["azure"],"arguments":{"parameters":{"TimeToRunInSeconds":45}}},"pauses":{"after":30}},{"type":"probe","ref":"application-must-respond"},{"type":"action","name":"stop-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"stop_chaos","secrets":["azure"]},"pauses":{"after":5}},{"type":"probe","name":"get-service-factory-chaos-report","provider":{"type":"python","module":"chaosservicefabric.factory.probes","func":"chaos_report","secrets":["azure"],"arguments":{"start_time_utc":"1 minute ago","end_time_utc":"now"}}}]}

贡献

如果您希望为这个包贡献更多的功能,那么 欢迎这么做。请,派生此项目,按照 通常的PEP 8代码样式,洒上测试并提交 回顾。

混沌工具包项目要求所有贡献者必须签署 Developer Certificate of Origin每次提交时,它们都希望合并 进入存储库的主分支。请确保你能遵守 提交PR前DCO的规则。

发展

如果您希望在此项目上进行开发,请确保安装开发 依赖关系。但首先,create a virtual environment然后安装 这些依赖。

$ pip install -r requirements-dev.txt -r requirements.txt 

然后,将您的环境指向此目录:

$ python setup.py develop

现在,您可以编辑这些文件,您的 环境,即使在本地从chaos命令运行时也是如此。

测试

要运行项目的测试,请执行以下操作:

$ pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
直接组件的javacamel-Junit测试   java@ConfigurationProperties在控制器注释类中工作,但在组件类中不工作   Eclipse中的java相对路径   java如何检查变量名是否包含字符串,然后输出字符串变量内容   java JPA CriteriaQuery<Object[]。类>和单个字段的多选返回列表<Object>   java通用同步代码块[无对象锁定]   JAVA网安卓中的URL。。新手问题   java如何分析运行Tomcat的嵌入式H2数据库的内存消耗?   这里不允许使用java Void   hibernate警告[commonLogger.java:60]ognl。MethodFailedException:对象[java.lang.NoSuchMethodException:([Ljava.lang.String;)]的方法失败   java静态类代替Oracle表如何   JAVA LWJGL纹理旋转   java是否有用于ical4j的类型化包装器?   java使用maven生成校验和并存储指定文件夹中的MD5文件   java如何定义文件的相对路径?   java对于gradle项目是否有一个等价的“mvn依赖项:buildclasspath”?   JavaHadoop文件系统。mkdirs(路径,权限)忽略该权限