Pritunl API Client for Python
Project description
Pritunl API Client for Python 3
This is a simple Pritunl API Client written in Python 3.
You need to refer to Pritunl API Documentation to understand how to use this. This API client uses almost the same command as the API Handlers.
Installation
Install the published package using pip
from our PyPI project repository.
pip install pritunl-api
Beyond the core API client library, we also added the executable distribution in this project. Add extra cli
during the PIP installation to enable the CLI feature.
pip install pritunl-api[cli]
Proceed to the CLI Usage for the complete command options and syntax.
API Usage
Before using the API library including the use of the CLI feature, we need to provide the Pritunl API URL and administrative credentials in our environment variables.
export PRITUNL_BASE_URL="https://vpn.domain.tld/"
export PRITUNL_API_TOKEN="XXXXXXXXXXXXXXXXXXXXXX"
export PRITUNL_API_SECRET="XXXXXXXXXXXXXXXXXXXXX"
Initializing an API object.
import os
from pritunl_api import Pritunl
pritunl = Pritunl(
url=os.environ.get('PRITUNL_BASE_URL'),
token=os.environ.get('PRITUNL_API_TOKEN'),
secret=os.environ.get('PRITUNL_API_SECRET')
)
# Your Pritunl API Client Object is now ready to use!
pritunl.<FEATURE>.<METHOD>
Example
-
Example 1:
(in source)
GET /server
pritunl.server.get()
-
Example 2:
(in source)
PUT /server/:server_id/organization/:organization_id
pritunl.server.put(srv_id='', org_id='')
-
Example 3:
(in source)
DELETE /user/:organization_id/:user_id
pritunl.user.delete(org_id='', usr_id='')
-
Example 4:
(in source)
POST /server**
pritunl.server.post( data={ 'name': 'new server name' } )
- If there is data available, you must pass it through the data parameter.
- The command above works well because there are templates available for creating a new server.
-
Example 5:
(in source)
PUT /user/:organization_id/:user_id
pritunl.user.put(org_id='', usr_id='', data={ 'name': 'modified org name', 'disabled': True } )
CLI Usage
Available Commands
As of this period of development, the feature is limited.
To show the available commands, use the help option.
pritunl-api-cli --help
Usage: pritunl-api-cli [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
create-user
delete-user
get-user
update-user
For available command options and syntax, use the feature command help option.
pritunl-api-cli create-user --help
Usage: pritunl-api-cli create-user [OPTIONS]
Options:
--org-name TEXT
--user-name TEXT
--user-email TEXT
--pin TEXT
--yubikey-id TEXT
--from-csv-file PATH
--help Show this message and exit.
Create User
Example 1: Create a Single User
pritunl-api-cli create-user \
--org-name develop-network \
--user-name developer_1 \
--user-email developer_1@domain.tld
Example 2: Create Users from CSV
pritunl-api-cli create-user \
--from-csv-file ./users.csv
Delete User
pritunl-api-cli delete-user \
--org-name develop-network \
--user-name developer_1
Get User Information
pritunl-api-cli get-user \
--org-name develop-network \
--user-name developer_1
Or get (regenerate) the profile key of a user
pritunl-api-cli get-user \
--org-name develop-network \
--user-name developer_1 \
--get-profile-key-only
Update a User
To disable a user
pritunl-api-cli update-user \
--org-name develop-network \
--user-name developer_1 \
--disable
To enable a user
pritunl-api-cli update-user \
--org-name developer-network \
--user-name developer_1 \
--enable
API Development
Using Virtual Environment
Create a virtual environment and activate it.
python -m venv ./venv
source ./venv/bin/activate
Or simple use other Python Version Manager like pyenv.
pip install -e .
Include REPL Tools
pip install -e .[repl]
ptipython
Using Docker Environment
Building a Development Container
docker buildx build . \
--progress plain \
--file dev.Dockerfile \
--tag pritunl-api:development
Running a Development Container
docker run --rm -it \
--volume $(PWD):/pritunl-api \
--env-file .env \
pritunl-api:development
This API client is not fully complete. Some features are missing, feel free to fork and pull requests to add new features.
Tested working on Pritunl v1.30.3354.99
.
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 pritunl_api-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0dd89e95d5809d89323be2daf9bf9eb68333940699926e77edb026b3a0a2c0d |
|
MD5 | 6f0cf386097689a740de4bc8a0bb6a7d |
|
BLAKE2b-256 | 02a422b48d17a58e167ca45c3eb9502bfcf799ff770c37b5c5044fe126425e38 |