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

Connect to the firewall

# Initialize the client
client = SonicWallClient(
    ip="192.168.1.1",
    port=443,
    username="admin",
    password="password"
)

# 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.1.tar.gz (4.1 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.1-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sonicwall_api_client-1.0.1.tar.gz
  • Upload date:
  • Size: 4.1 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.1.tar.gz
Algorithm Hash digest
SHA256 87d0c9fd60e11de8b40741fd043988f92957e0f93924693e2be38a6d8338d29e
MD5 3e39d63a43264ce94b6e11be31937dfc
BLAKE2b-256 5dbdd97adab479df975cdfadc1f8174d1b171e011423e039f837220d121d8999

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sonicwall_api_client-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c2ae42f22273393177ec86ff9ecb86c66a25bb1cce0f5d6acd8ae6b8c6cf5d46
MD5 8b07fbc37b6e6a8719e1dbef2047a126
BLAKE2b-256 f8f2f785af2964a73c62a498bcb0fa7694b17e1ab2f4f346c3b3827ae5a35a74

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