Skip to main content

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 to fortiztp.
  • forticloud_host which defaults to https://customerapiauth.fortinet.com
  • fortiztp_host which defaults to https://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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfortiztp-1.0.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

pyfortiztp-1.0.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file pyfortiztp-1.0.1.tar.gz.

File metadata

  • Download URL: pyfortiztp-1.0.1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyfortiztp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4b8f502c92c4e5bad427a0c1cc12cd71bad71b7807af7fd82acf093bbb3e859a
MD5 03251885dbe9e4a60c0abb26beb27ebd
BLAKE2b-256 1740ca3d88a5fd29f598abb3381d366c4aa471502d4b13ed6b179df6a755ecb8

See more details on using hashes here.

File details

Details for the file pyfortiztp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyfortiztp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyfortiztp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 239866c988faa4594f509fea016d72c3e8d7e349d5a1f4a4c3d3de6f50275bac
MD5 4dbcdcd38247e2c579bcf020f80d9825
BLAKE2b-256 b757f707002d37c8de17edba01614981f07fc05084064702ab577ca7f256f9e3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page