Infoblox客户端

ib-client的Python项目详细描述


IB客户端

Pypi versionBuild StatusWindows Build StatusCoverage StatusDocumentation Status

最简单的infoblox客户端!

为什么选择另一个infoblox客户端?

如果你知道已经有了 infoblox支持的client

答案是泛型。我试图尽可能地更通用,以支持 infoblox api通过其api的instroppetion。如果你知道wapi 对象/函数的文档,您将知道如何通过具有simple直观的api。

安装

pip install ib-client

n.b:ib客户端从python 3.6开始工作

文档

文档可在https://ib-client.readthedocs.io/en/stable/找到。

功能

  • 允许您执行infoblox api中所有可用操作的客户端。
  • 一种cli,它允许您快速执行与处理客户端相同的操作。
  • 执行自定义的能力 requests
  • 能够加载.env文件来配置客户端或cli。

用法

客户

下面是如何实例化客户机的。

frominfobloximportClientclient=Client(url='https://foo.com/wapi/v2.8',user='foo',password='foo')

创建网络:

network=client.get_object('network')network.create(network='10.1.0.0/16')

要读取创建的所有网络:

network.get()

您将得到类似于以下内容的输出:

[{"_ref":"network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0%2F16","network":"10.1.0.0/16","network_view":"default"},{"_ref":"network/ZG5zLm5ldHdvcmskMTAuMi4wLjAvMTYvMA:10.2.0.0%2F16","network":"10.2.0.0/16","network_view":"default"}]

修改网络:

network.update(object_ref='network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0/16',comment='just a comment')

如果要搜索已修改的网络,可以执行以下操作:

network.get(params={'comment~':'just'},return_fields=['network','networkview','comment'])

在上一次调用中,我们还注意到如何过滤要返回的字段,这一点也很有趣。输出包含 以前修改过网络。

[{"_ref":"network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0%2F16","comment":"just a comment","network":"10.1.0.0/16","network_view":"default"}]

n.b:引用总是返回的,所以这就是为什么我们不需要在return_fields参数中提到它。

最后,要删除网络,您可以执行以下调用:

network.delete(object_ref='network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0/16')

很简单!

cli

在使用cli之前,必须设置3个环境变量,否则将出现错误。三大环境 变量为:

  • ib\u url:wapi infoblox url,如https://foo/wapi/v2.8
  • ib_用户:要连接到的用户
  • ib_密码:用户密码

如果不想重复这些操作,可以在要使用cli的目录中创建一个.env文件。 您需要以KEY=VALUE的形式提供上述信息,每行一个。

cli有帮助信息可帮助您快速了解如何使用它

ib -h
Usage: ib [OPTIONS] COMMAND [ARGS]...

  Infoblox Command Line Interface. It allows you to interact with infoblox
  in the same way you will do with the python api client.

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  object            Performs various object operations.
  objects           Lists the available objects supports by the infoblox...
  request           Makes a custom request using the request object of...
  schema            Shows the api schema.
  shell-completion  Installs shell completion.

每个命令还通过-h选项提供帮助信息。 通过执行以下命令,可以在bashfishzshpowershell上激活shell完成:

ib shell-completion

注意:在powershell上,您可能在非管理员模式下遇到错误,如果您在管理员模式下, 您仍然会遇到如下错误:

Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden
by a policy defined at a more specific scope.  Due to the override, your shell will retain its current effective
execution policy of Bypass. Type "Get-ExecutionPolicy -List" to view your execution policy settings.
For more information please see "Get-Help Set-ExecutionPolicy".

请参阅microsoft documentation了解如何解决问题。

我们现在将执行在客户端实现的相同操作。

创建网络:

ib object -n network create -a '{"network": "10.1.0.0/16"}'

注意:

  • 命令后的-n选项指定要处理的对象。
  • 在powershell上,需要使用不同的语法才能正确转义json参数:
ib object -n network create -a "{\"network\": \"10.1.0.0/16\"}"

我知道这很难看,也很棘手,但在windows上我们不能有不同的做法:(

获取所有创建的网络:

ib object -n network get

更新网络:

ib object -n network update -o network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0%2F16 -a '{"comment":"just a comment"}'

搜索网络:

ib object -n network get -p '{"comment~":"just"}' --return-fields=network,networkview,comment

删除网络:

ib object -n network delete -o network/ZG5zLm5ldHdvcmskMTAuMS4wLjAvMTYvMA:10.1.0.0%2F16

警告

  • 客户机是通过处理infoblox api的主要版本2创建的,因此它肯定会处理它,不会处理 在以前的主版本上,但不确定是否可以在更高的主版本上工作。
  • 我没多少时间测试我的客户机在infoblox服务器上,所以可能有一些bug。请随意提出建议 拉取请求。有关详细信息,请参见contributing.md文件。欢迎所有投稿:)

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

推荐PyPI第三方库


热门话题
java如何比较二维交错数组中列中元素的长度   java依赖javafx是安全的。util。回电话?   用于格式化二进制数的正则表达式,在Java中,从右到左每4个字符使用空格   java我应该在基于Springboot的后端使用headless模式吗?   java Hibernate获取数据。list()已去润滑,表未映射。怎么办?   java Spring引导存储库,包括示例、规范和页面   java使用UUID。randomUUID()和多次调用方法?   每个客户端请求的Java DatagramSocket不同线程   字符串中的java表达式到arraylist   数组循环遍历word文档和图像,并存储到SQL java   java wsimport Xauthfile错误   java在适配器中返回相同的片段   charAt()方法如何从字符串中提取数字并将其放入Java中的新字符串中?   java我想在两部手机之间建立hfp连接   java如何添加priceAfterDiscount的公共方法,该方法返回折扣后的价格