Skip to main content

Simple Python client for SonicWall SonicOS REST API (with HTTP Digest Auth).

Project description

SonicWall API Python Client

A simple Python client for interacting with the SonicWall SonicOS REST API, using HTTP Digest Authentication.

Features

  • Login / logout to the SonicOS API
  • Check and manage pending configurations
  • Generic requests (GET, POST, PUT, PATCH, DELETE)
  • Persistent session support via requests.Session()

Installation

Install the package from PyPI:

pip install sonicwall-api-client

Import

from sonicwall_api_client import SonicWallClient

Examples

Initialize the client

# Initialize the client (with optional TFA code)
client = SonicWallClient(
    ip="192.168.1.1",
    port=443,
    username="admin",
    password="password"
    tfa="123456"  # optional, only if TFA is enabled
)

Note
The tfa argument is optional and should only be provided if the SonicWall firewall is configured with Two-Factor Authentication (TFA/2FA).
If TFA is not required, you can omit this argument.

Connect to the firewall

# Log in
success, message, _ = client.login()
if success:
    print("Login successful.")
else:
    print(f"Login failed: {message}")

Check pending configurations

success, message, data = client.get_pending_configurations()
if success:
    print("Pending configurations:", data)
else:
    print(f"Error: {message}")

Commit configurations

success, message, _ = client.commit()
if success:
    print("Configurations committed successfully.")
else:
    print(f"Commit error: {message}")

Discard pending configurations

success, message, _ = client.delete_pending_configurations()
if success:
    print("Pending changes discarded.")
else:
    print(f"Error: {message}")

Generic request

# Without payload
success, message, data = client.request("get", "/zones")
if success:
    print("Zones list:", data)
else:
    print(f"Request error: {message}")

# With payload
payload = {
    "zones": [
        {
            "name": "LAN_IT",
            "security_type": "public",
            "interface_trust": False,
            "auto_generate_access_rules": {
                "allow_from_to_equal": False,
                "allow_from_higher": False,
                "allow_to_lower": False,
                "deny_from_lower": False
            },
        }
    ]
}

success, message, _ = client.request("post", "/zones", payload)
if success:
    print("Object created successfully.")
else:
    print(f"Creation error: {message}")

Logout

success, message, _ = client.logout()
if success:
    print("Logged out successfully.")
else:
    print(f"Logout error: {message}")

License

MIT

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

sonicwall_api_client-1.0.5.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sonicwall_api_client-1.0.5-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file sonicwall_api_client-1.0.5.tar.gz.

File metadata

  • Download URL: sonicwall_api_client-1.0.5.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for sonicwall_api_client-1.0.5.tar.gz
Algorithm Hash digest
SHA256 e6eb871c03a7199ac0f5804edaf1576e3ed1f5b23115b927cd1f49a3680201e1
MD5 3980b800cb601c0ce0d14035f661cb8a
BLAKE2b-256 97e932ac8eae1874502a1fdc55baaa0d4da0b7ce8a99b52452b33f73590b3049

See more details on using hashes here.

File details

Details for the file sonicwall_api_client-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for sonicwall_api_client-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 acbd88f6eafc266101db4efc51bc22c55efa7f17088447244be18677f0d7e946
MD5 7b40a40c15715afe07dfbcf937ab3196
BLAKE2b-256 cef6a69ff23c82fce28d38e60b491cb941c97f7f8f5902a341d792ab24d236bc

See more details on using hashes here.

Supported by

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