面向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第三方库


热门话题
对于C++、爪哇、C语言之间的循环init变量范围   如何在Java中检查两个日期是否在同一天   在AIX中找不到java DocumentBuilderFactoryImpl,但可以在Windows中工作   如何使用Java API直接查询RTC中的工作项历史   java水平微调器安卓   java Ebean不理解模型中的继承关系   java Android无internet连接,使用权限正确   通过添加类的两个BigDecimal类型属性进行java分组   java正在尝试获取最大文件的文件名   java从命令行运行maven插件的语法是什么。   java如何对常见的第三方JAR使用OSGI EmbeddeDependency   java使用JMX和Jaas进行jconsole身份验证   httpurlconnection Java中HTTP/1.1持久(“连接:关闭”)连接的最佳库是什么?   java Selenium无法导入包“org”。openqa。硒。环境的   java反射API,类。forName()vs。班   java以有效的方式将列表<HashMap<Obj1,Obj2>>合并为列表<HashMap<Ob1,List<Obj2>>?   java我试图调用超级参数化构造函数,但它抛出了一个错误   java获取聚焦单元格的索引并以编程方式设置聚焦   java如何更改系统位置设置以使用我选择的语言?