Lightweight SDK to simplify the process of interacting with the Itential Automation Platform API.
Project description
itential-iap-sdk
Lightweight SDK to simplify the process of interacting with the Itential Automation Platform API.
This is an alpha release. It is incomplete and will change.
This package was written for Itential Automation Platform 2023.1.
Getting Started
Make sure you have a supported version of Python installed and then create and activate a virtual environment:
python -m venv venv
source /venv/bin/activate
You can install the iap_sdk from Pypi as follows:
pip install iap-sdk
Or you can install it from source as follows:
git clone https://github.com/awetomate/itential-iap-sdk.git
cd itential-iap-sdk
python -m pip install -r requirements.txt
python -m pip install -e .
Usage
from iap_sdk import Iap
username = "your_username"
password = "your_password"
host = "your_server"
iap = Iap(host=host, username=username, password=password, verify=False)
iap.core.get_application(name="Jst")
iap_sdk uses the following default values. You can overwrite any of them during instantiation:
class Iap(ClientBase):
def __init__(
self,
host: str,
username: str,
password: str,
protocol: Optional[str] = "https",
port: Optional[Union[int, str]] = 3443,
verify: Optional[bool] = True,
) -> None:
The iap_sdk methods are grouped in the same manner as in Itential's API documentation. I.e. all API calls related to AGManager are available under iap.ag_manager. and all API calls related to pronghorn-core are available under iap.core.
Examples
# get information about the AGManager application
iap.core.get_application(name="AGManager")
# get health information for the AGManager application
iap.core.get_application_health(name="AGManager")
# restart the AGManager application
iap.core.restart_application(name="AGManager")
# get first 10 jobs from OperationsManager that are in running, paused, or error state
iap.operations_manager.get_jobs(limit=10, status=["running", "paused", "error"])
The all-purpose 'query' method
The iap_sdk includes a generic 'query' method that can be used for every Itential automation gateway API call. In fact, all the other methods ultimately use the generic 'query' method to send calls to IAP.
The query method by default sends GET requests without any data or parameters. However, you can use the 'query' method to send get, delete, post, put, and patch requests by changing the 'method' argument. You can also send data by various means (params, data, jsonbody).
The generic 'query' method potentially could come in handy to overcome differences in the API between Automation Platform versions. If any of the existing methods don't work with your IAP version, try the generic 'query' method as a fallback.
The 'query' method takes the following arguments:
argument | description |
---|---|
endpoint | IAP API endpoint. E.g. /health/applications. |
method | Optional. API method: get (default),post,put,patch,delete. |
data | Optional. A dictionary to send as the body. |
jsonbody | Optional. A JSON object to send as the body. |
params | Optional. A dictionary to send as URL parameters. |
Basic GET call using 'query'
# get health information for the AGManager application
iap.query("/health/applications/AGManager")
# or to be more explicit
iap.query("/health/applications/AGManager", method="get")
# get jobs from OperationsManager
iap.query(
"/operations-manager/jobs",
jsonbody={
"queryParameters": {
"limit": 10,
"include": "name,status",
"in": {"status": "running"},
}
}
)
Basic PUT call using 'query'
# restart the AGManager application
iap.query("/applications/AGManager/restart", method="put")
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
File details
Details for the file iap_sdk-2023.12a1.tar.gz
.
File metadata
- Download URL: iap_sdk-2023.12a1.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72b444db162e13c5db1e959691b38e8db1f1664aacf1076542c19ce55f1eac42 |
|
MD5 | 1056ed7744883a319ef7dab716891e3f |
|
BLAKE2b-256 | 56c5b0fb811a18793d45090aabac9a2aaddd8d838271eac8ed680d1bf854862b |
File details
Details for the file iap_sdk-2023.12a1-py3-none-any.whl
.
File metadata
- Download URL: iap_sdk-2023.12a1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd55619723c63c7df6761b74fda078ce768ecb358eccf42ca3c3e89b99b8a802 |
|
MD5 | 433396ca76c7927c005782aa5595db07 |
|
BLAKE2b-256 | 2282395ee942b382ab5bba7928e69993ebf4f00b55c83418294d8b96e654a495 |