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.19.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e049a86b49f7cc01916701c5fa40e63242806bc56fe5085fd6017d28b4fbff |
|
MD5 | 01df3b64a85626214d80798576c49b23 |
|
BLAKE2b-256 | 0f362ecde02edcdeb56923ec18b3efdec62ab329429b84cd8a2b433f698c393c |
Hashes for nagra_panorama_api-0.1.19-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae5f3449463e6f9e826eabccde160e6fdd227ad2da8151830864020ba703b04b |
|
MD5 | 158990bf9ccf2971966c68973479fecf |
|
BLAKE2b-256 | e938cd3218166e75e929ff57b74888b18b8fed55f355a8e47754ef6fa568e2d6 |