No project description provided
Project description
README
This repository contains a wrapper around Panorama/PaloAlto API.
It also provides a cli tool panorama_api
CLI
This package also provide a CLI tool for some operations:
- Generating an API Key
- Upgrading a group of devices
- Generating a boilerplate configuration file for the upgrades
pip install nagra_panorama_api
panorama_api --help
Why the need for this library ?
For simple resource retrieval, the existing API is enough, but:
- The libraries available are not practical for it, the manual management of urls is easier
- For more complex operation, this does not suits well
The official python SDK of PaloAltoNetworks itself relies on a third party wrapper for their API.
This library takes a more popular approach when wrapping the API, making it easier to use. It also provides types' wrappers to simplify their usage or utility functions to re-structure the data we receive. It provides a client for the REST API and for the XML API
- A simple client for the API
- Tool to manage the xml configuration
Library Usage Example
client = XMLApi(HOST, API_KEY)
tree = client.get_tree()
# Find your object using its name (may not be unique)
my_object = config.find_by_name("my_object_name")[0]
print(my_object) # /address/entry[@name='my_object_name']
# Find the references to it (0 or multiple results are possible)
ref = my_object.get_references()[0]
print(ref) # /post-rulebase/security/rules/entry[@uuid='...']/destination/member
# We must not delete the <member> tag, but we can delete its parent
client.delete(ref.parent.xpath)
# Now we must commit the changes
client.commit_changes()
# We can also revert it
# client.revert_changes()
The library currently doesn't provide helper tools to know how to edit the configuration. Theses changes must be done manually
TODO
-
Provide wrapper classes for the resources.
nat = NatPolicy(...) tree.insert(nat) # or nat.insertInto(tree) client.create(nat.insert_xpath, nat.xml)
-
Mix Rest API and XML API ?
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 nagra_panorama_api-0.1.20.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc9e52f1cd79ffbe63773f26e1bdab6b1a1d7e683e9c87e1de56e8b40a566019 |
|
MD5 | e997b8789b53ba48586d08b59a6741ee |
|
BLAKE2b-256 | 12817c2577e8af31b18e3a5b88b09986d08890ef5b2328783b92d40c0620e4c5 |
Hashes for nagra_panorama_api-0.1.20-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0ceef21beed7d392578c3b060fa5a1688428157b3b2ca38b53c608cceb4566e |
|
MD5 | 9c70df3461e1bc26ff4f654391bcc264 |
|
BLAKE2b-256 | 7e04bab05ef7a44814982a306776ecf6d13d252fdd43c2fd3892e704ae9f12da |