python redfish库
redfish的Python项目详细描述
Description
rest(representational state transfer)是一种基于web的软件体系结构样式,由一组集中于系统资源的约束组成。redfish库使用hateoas(超媒体作为应用程序状态的引擎)redfish架构对资源执行基本的https操作get、post、put、patch和delete。api客户端允许您通过一个固定的url和几个uri来管理和与系统交互。有关详细信息,请转到wiki。
Installing
pip install redfish
从zip文件源构建
python setup.py sdist --formats=zip (this will produce a .zip file)
cd dist
pip install redfish-x.x.x.zip
Requirements
确保系统没有在目标系统上安装openstack“python redfish”模块。此模块正在使用此库已使用的冲突包名称。有问题的模块可以在这里找到:https://pypi.org/project/python-redfish/
Usage
在这个项目的examples目录下提供了一组示例。除了本段中的指令之外,您还将在这些示例中找到有价值的实现技巧。
导入相关的python模块
对于符合redfish的应用程序,导入相关的python模块。
对于符合redfish的应用程序:
importredfish
创建一个redfish对象
redfish对象包含3个参数:目标安全url(即“https://IP”或“https://X.Y.Z.T”)、用户名及其密码。 另外还有两个可选参数:timeout(连接初始化超时前的秒数)和max_retry(超时后请求重试的次数)。如果将这些默认值分别设置为“无”和“10”。 要指定一个redfish对象,请调用redfish_客户端方法:
REDFISH_OBJ=redfish.redfish_client(base_url=login_host,username=login_account, \ password=login_password,default_prefix='/redfish/v1')
登录到服务器
创建redfish_obj时执行登录操作。您可以继续进行基本的身份验证,但这样会降低安全性。
REDFISH_OBJ.login(auth="session")
执行get操作
可以执行简单的get操作来获取任何有效路径中的数据。 路径“/redfish/v1/systems/1”上的rawget操作示例如下所示:
response=REDFISH_OBJ.get("/redfish/v1/systems/1",None)
执行手术后
可以执行post操作来创建资源或执行操作。 路径“/redfish/v1/systems/1/actions/computersystem.reset”上的post操作示例如下:
body={"ResetType":"GracefulShutdown"}response=REDFISH_OBJ.post("/redfish/v1/systems/1/Actions/ComputerSystem.Reset",body=body)
处理任务
post操作可能导致一个任务,描述一个持续时间大于单个请求范围的操作。 正在处理的操作消息对象将返回一个任务资源,当使用监视器进行轮询时,可以访问该资源。 下面显示了具有可能任务的post操作的示例。
body={"ResetType":"GracefulShutdown"}response=REDFISH_OBJ.post("/redfish/v1/systems/1/Actions/ComputerSystem.Reset",body=body)if(response.is_processing):task=response.monitor(context)while(task.is_processing):retry_time=task.retry_aftertask_status=task.dict['TaskState']time.sleep(retry_timeifretry_timeelse5)task=response.monitor(context)
注销创建的会话
确保注销创建的每个会话,因为它将保持活动状态,直到超时。
REDFISH_OBJ.logout()
注销将从系统中删除当前会话。redfish_客户端对象析构函数包含一个logout语句。
Contributing
- 叉开!
- 创建您的功能分支:git checkout-b我的新功能
- 提交您的更改:git commit-am'add some feature'
- 推到分支:git push origin my new feature
- 提交拉取请求:d
Release Process
- 使用自上次发布以来的更改列表更新changelog.md
- 更新src/redfish/__init__.py和setup.py中的__version__变量,以反映新的库版本
- 聚氨酯sh更改为github
- 在github中创建新版本
- 将新的库版本推送到pypi.org:python setup.py sdist && twine upload dist/*
Copyright and License
版权声明: 版权所有2016-2019 DMTF。保留所有权利。 许可证:BSD 3条款许可证。全文见链接:https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md