跳转到主要内容

Nautobot API客户端库

项目描述



pyautobot

Nautobot 提供的Python API客户端库。

pyautobot最初作为 pynetbox 的分支开发。pynetbox最初由DigitalOcean的Zach Moody和NetBox社区开发。

有关pynautobot的完整文档可在 Read the Docs 上找到。

有问题?评论?加入我们在 Network to Code#nautobot Slack频道!

安装

您可以通过 pippoetry 进行安装

使用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对象,传入urltoken

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调用/执行作业运行。

  1. 从工作实例中运行。
>>> 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.
  1. 使用工作输入运行
job = nautobot.extras.jobs.all()[7]
job.run(data={"hostname_regex": ".*"})
  1. 通过提供工作 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 设置为除 0None 以外的任何值。默认值 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 (29.6 kB 查看哈希值)

上传时间

构建分发

pynautobot-2.2.1-py3-none-any.whl (36.5 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页