Nautobot API客户端库
项目描述
pyautobot
为 Nautobot 提供的Python API客户端库。
pyautobot最初作为 pynetbox 的分支开发。pynetbox最初由DigitalOcean的Zach Moody和NetBox社区开发。
有关pynautobot的完整文档可在 Read the Docs 上找到。
有问题?评论?加入我们在 Network to Code 的 #nautobot Slack频道!
安装
使用pip
$ pip install pynautobot
...
使用poetry
$ git clone https://github.com/nautobot/pynautobot.git
...
$ pip install poetry
...
$ poetry shell
Virtual environment already activated: /home/user/pynautobot/.venv
$ poetry install
...
快速入门
这里提供了简要介绍;pyautobot的完整文档可在 Read the Docs 上找到。
要开始,请导入pyautobot并实例化一个Api
对象,传入url
和token
。
import pynautobot
nautobot = pynautobot.api(
url="http://localhost:8000",
token="d6f4e314a5b5fefd164995169f28ae32d987704f",
)
Api对象提供了对Nautobot中Apps的访问。Apps提供了对Nautobot中存储的模型和字段数据的访问。Pynautobot使用Endpoint
类来表示模型。例如,以下是访问存储在Nautobot中的设备的方法
devices = nautobot.dcim.devices
devices
<pynautobot.core.endpoint.Endpoint object at 0x7fe801e62fa0>
作业
Pynautobot提供了一个专门的Endpoint
类来表示作业模型。此类称为JobsEndpoint
。它通过添加run
方法扩展了Endpoint
类,以便可以使用pynautobot调用/执行作业运行。
- 从工作实例中运行。
>>> gc_backup_job = nautobot.extras.jobs.all()[14]
>>> job_result = gc_backup_job.run()
>>> job_result.result.id
'1838f8bd-440f-434e-9f29-82b46549a31d' # <-- Job Result ID.
- 使用工作输入运行
job = nautobot.extras.jobs.all()[7]
job.run(data={"hostname_regex": ".*"})
- 通过提供工作 ID 来运行
>>> gc_backup_job = nautobot.extras.jobs.run(class_path=nautobot.extras.jobs.all()[14].id)
>>> gc_backup_job.result.id
'548832dc-e586-4c65-a7c1-a4e799398a3b' # <-- Job Result ID.
查询
Pynautobot 提供了多种方式来从 Nautobot 获取对象。这里只展示了 get()
方法。要继续上述示例,将使用返回的 Endpoint
对象来 get
名称名为 hq-access-01 的设备。
switch = devices.get(name="hq-access-01")
get()
方法返回的对象是 Record
类的实现。此对象提供了从 Nautobot 访问字段数据的能力。
switch.id
'6929b68d-8f87-4470-8377-e7fdc933a2bb'
switch.name
'hq-access-01'
switch.site
hq
多线程
Pynautobot 支持 .filter()
和 .all()
查询的多线程调用。强烈建议您将 Nautobot 安装中的 MAX_PAGE_SIZE
设置为除 0
或 None
以外的任何值。默认值 1000
通常是一个很好的选择。要启用多线程,在实例化 Api
对象时添加 threading=True
参数。
nautobot = pynautobot.api(
url="http://localhost:8000",
token="d6f4e314a5b5fefd164995169f28ae32d987704f",
threading=True,
)
版本控制
用于 Nautobot Rest API 版本控制。版本控制可以通过设置 API
类初始化时的 api_version
来全局控制,并且可以通过设置可选的 api_version
参数来控制特定的请求,例如 all()
、filter()
、get()
、create()
等。
全局版本控制
import pynautobot
nautobot = pynautobot.api(
url="http://localhost:8000",
token="d6f4e314a5b5fefd164995169f28ae32d987704f",
api_version="2.1"
)
特定请求版本控制
import pynautobot
nautobot = pynautobot.api(
url="http://localhost:8000", token="d6f4e314a5b5fefd164995169f28ae32d987704f",
)
tags = nautobot.extras.tags
tags.create(name="Tag", api_version="2.0", content_types=["dcim.device"])
tags.get(api_version="2.1",)
重试逻辑
默认情况下,客户端不会重试任何操作。此行为可以通过 retries
可选参数进行调整。这将仅影响 HTTP 状态码:429、500、502、503 和 504。
重试
import pynautobot
nautobot = pynautobot.api(
url="http://localhost:8000",
token="d6f4e314a5b5fefd164995169f28ae32d987704f",
retries=3
)
相关项目
有关相关社区项目的列表,请参阅我们的维基百科。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
pynautobot-2.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0fa0fc2cbac8372d7cdf1d1e0abc396842760bf4934e31aba8517ab2171f2828 |
|
MD5 | d55dae420dace0d97fe82b95c4da4450 |
|
BLAKE2b-256 | 8b80867d758e1def158aa14d2551f30bd6f51aac195b491dc396d1f6d289a97e |