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

You can clone this repository or install it directly using pip:

pip install git+https://github.com/Samuel-Berset/sonicwall-api-client.git

Import

from sonicwall_api 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.0.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.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sonicwall_api_client-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 39a111c46ee3e55e69587c4494af6e8e547c41e8a469c8f4a3ae7c353f381f23
MD5 8897b9379b66a06923b798496b673d84
BLAKE2b-256 76fabcc0e6bf77987d3e40a94b3515abc4c55009abf12073b7ae7a0a00a99dee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sonicwall_api_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cde22f1d722bbd19236da38a31b3c0568f7a708c8e4f42920b6702f696e5108a
MD5 232ef5dfd283ef80485762832d28e5de
BLAKE2b-256 ad89d70d7b674aafd5a487f0a7899f1ab6809e2b6db60da8bccfb9d2ede4bd73

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