Python API client library for Fortinet's FortiZTP.
Project description
pyfortiztp
Python API client library for Fortinet's FortiZTP.
The FortiZTP Cloud API provides:
- Retrieve provisioning status of FortiGates, FortiAPs, and FortiSwitch.
- Provision or un-provision devices to the cloud or on-premise targets.
Installation
To install run pip install pyfortiztp
.
Alternatively, you can clone the repo and run python setup.py install
.
Quick Start
To begin, import pyfortiztp and instantiate the API.
We need to provide our API credentials to our FortiCloud account.
Optionally, its possible to set the following settings:
client_id
which defaults tofortiztp
.forticloud_host
which defaults tohttps://customerapiauth.fortinet.com
fortiztp_host
which defaults tohttps://fortiztp.forticloud.com
Code
fortiztp = pyfortiztp.api(
userid = "<your forticloud userid>",
password = "<your forticloud password>"
)
Examples
Retrieve a single device.
Code
device = fortiztp.devices.all(deviceSN="FGT60FTK1234ABCD")
print(device)
Output
{
"deviceSN": "FGT60FTK1234ABCD",
"deviceType": "FortiGate",
"provisionStatus": "unprovisioned",
"provisionTarget": null,
"region": "global,europe,JP,US",
"externalControllerSn": null,
"externalControllerIp": null,
"platform": null
}
Provision one or more devices to FortiManager.
deviceSN
is a list of serial numbers. In this example, we only test with a single serial number.
Code
update = fortiztp.devices.update(
deviceSN = ["FGT60FTK1234ABCD"],
deviceType = "FortiGate",
provisionStatus = "provisioned",
provisionTarget = "FortiManager",
externalControllerIp = "<external IP of your fortimanager>",
externalControllerSn = "<serial number of your fortimanager>"
)
print(update)
Output
204
Note: The FortiZTP API returns the HTTP response "204 No Content" on success.
Unprovision one or more devices from FortiManager.
deviceSN
is a list of serial numbers. In this example, we only test with a single serial number.
Code
update = fortiztp.devices.update(
deviceSN = ["FGT60FTK1234ABCD"],
deviceType = "FortiGate",
provisionStatus = "unprovisioned",
provisionTarget = "FortiManager",
externalControllerIp = "<external IP of your fortimanager>",
externalControllerSn = "<serial number of your fortimanager>"
)
print(update)
Output
204
Error messages.
Error messages are provided as is, from the FortiZTP API.
Code
update = fortiztp.devices.update(
deviceSN = ["FGT60FTK1234ABCD", "testSN"],
deviceType = "FortiGate",
provisionStatus = "provisioned",
provisionTarget = "FortiManager"
)
print(update)
Output
{
"error": "invalid_request",
"error_description": "Device testSN doesn't exist in this account"
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyfortiztp-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 239866c988faa4594f509fea016d72c3e8d7e349d5a1f4a4c3d3de6f50275bac |
|
MD5 | 4dbcdcd38247e2c579bcf020f80d9825 |
|
BLAKE2b-256 | b757f707002d37c8de17edba01614981f07fc05084064702ab577ca7f256f9e3 |