用于commvault api的python包装器
pinkop的Python项目详细描述
pinkopy是commvault api的python包装器。支持CommVault 在v2.0.0中添加了v11 api。
安装
来自Pypi
pip install pinkopy
来源
git clone git@github.com:theherk/pinkopy.git pip install pinkopy
用法
frompinkopyimportCommvaultSessionconfig={'service':'service url','user':'username','pw':'password'}withCommvaultSession(**config)ascommvault:client_jobs=commvault.jobs.get_jobs('1234',job_filter="Backup")cust_jobs=commvault.jobs.get_subclient_jobs(client_jobs,'12345678',last=3)# multi statusforjobincust_jobs:job_id=job['jobSummary']['jobId']job_details=commvault.jobs.get_job_details('1234',job_id)job_vmstatus=commvault.jobs.get_job_vmstatus(job_details)
Pinkopy不必用作上下文管理器。
commvault=CommvaultSession(**config)
Pinkopy过去在一个类上拥有所有的方法。现在,方法是 被分成几个类,类似于api本身 布置好了。然而,模块化存在的方法是 引入了一个垫片,使其向后兼容。所以 这些方法可以直接在commvaultsession实例上调用。
client_properties=commvault.clients.get_client_properties('2234')# or the old wayclient_properties=commvault.get_client_properties('2234')
这样,你的旧代码就可以工作了。另外,您可以实例化 如果你愿意的话,你需要的课程。
withSubclientSession(**config)assubclients:subclients=subclients.get_subclients('2234')
缓存
2.0.0中最大的引入是对缓存的改进。 我们实现了一个 伟大的 ttl_cache 使用 lru_cache 从核心图书馆。这是从一个叫 cachetools。这个 实现允许您传入要使用的方法的列表 如果没有,此缓存或提供非常合理的默认值。
在cache_ttl期间,缓存将用 不运行函数的上一个返回值。比如说, 第一次调用get_clients可能需要几秒钟, 但在接下来的通话中只有几毫秒。
默认情况下,我们缓存20分钟,但您也可以设置此值。
cache_methods=['get_clients','get_subclients']withCommvaultSession(cache_ttl=120,cache_methods=cache_methods,**config)ascommvault:clients1=commvault.clients.get_clients()# slowclients2=commvault.clients.get_clients()# fast# ... fast
或者完全关闭缓存。
withCommvaultSession(use_cache=False,**config)ascommvault:clients1=commvault.clients.get_clients()# slowclients2=commvault.clients.get_clients()# slow but fresh
贡献
请向此存储库投稿。它目前只支持 commvault提供的一组小api。但是,如果你这样做了 贡献,请遵循这些准则。
指南
- 使用
Gitflow。
您的请求必须来自gitflow分支。
- 功能/您的功能
- 错误修复/问题编号
- 仅限命令式提交消息。第一行是必须的, 简短的句子。下面几行可能有更多细节。
- 构建必须通过(现在应该很容易,因为 没有测试)。
- 不要提交二进制文件。
- 确保向github用户提交。
名称
名字本来是commpy,但后来我喜欢commepy。 从这里到平克比只有一小步之遥,这是对一位亲爱的 我的朋友。