VASTPY
This package is a Python SDK to the VMS (VAST Management System) REST API.
While developing against the VMS API use the documentation locally available at https://vms-host-name/docs.
Install
pip install vastpy
The package is hosted in PyPI: https://pypi.org/project/vastpy/
SDK Usage
Initialization:
from vastpy import VASTClient
client = VASTClient(user='user', password='********', address='vast-vms')
The API is straightforward:
client.<collection>.get()
client.<collection>.post()
client.<collection>[<object>].get()
client.<collection>[<object>].patch()
client.<collection>[<object>].delete()
Accessing collections:
for view in client.views.get():
print(view)
Creating objects:
policy, = client.viewpolicies.get(name='default')
view = client.views.post(path='/prod/pgsql', policy_id=policy['id'], create_dir=True)
Modifying/deleting objects:
view, = client.views.get(path='/prod/pgsql')
view = client.views[view['id']].patch(protocols=['NFS', 'SMB'])
client.views[view['id']].delete()
Reading metrics:
client.monitors.ad_hoc_query.get(object_type='cluster',
time_frame='5m',
prop_list=['ProtoMetrics,proto_name=ProtoCommon,iops',
'ProtoMetrics,proto_name=ProtoCommon,bw'])
CLI Usage
Credentials can be passed through environment variables or parameters:
$ export VMS_USER=admin VMS_PASSWORD=******** VMS_ADDRESS=vast-file-server
$ vastpy-cli get snapshots fields=id,path
[
{
"path": "/dbs",
"id": 12
},
{
"path": "/datasets",
"id": 43
},
...
$ vastpy-cli --user=admin --password==******** --address=vast-file-server get snapshots fields=id,path
Any method (get, post, patch, delete) is supported:
$ vastpy-cli post snapshots path=/projects/db name=db
{
"id": 4707792,
"name": "db_snapshot",
"path": "/projects/db"
...
$ vastpy-cli post views path=/projects/db create_dir=true policy_id=1
{
"id": 109,
"guid": "551b5fc0-42a2-4b77-b385-d5bf6a6c1538",
"name": "view-109",
"title": "/projects/db",
...
$ vastpy-cli delete views/109
Accepts JSON file input (--file-input <JSON_file>):
$ cat input.json
{
"read_access_users": [
"vastadmin"
],
"read_access_users_groups": [
"vastadmin"
],
"protocols_audit": {
"log_full_path": true,
"modify_data_md": true,
"create_delete_files_dirs_objects": true
},
"enable_vast_db_audit": true
}
$ vastpy-cli patch clusters/<cluster_id>/auditing --file-input input.json
Version Compatibility
This package is compatible with any VAST version as it's schema-less.
Python objects are simply translated to URLs: client.collection[object].get() is translated to GET /api/collection/object.
Metadata
Release files for vastpy 0.3.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vastpy-0.3.9.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vastpy-0.3.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.2 kB
Release files / vastpy-0.3.9.tar.gz
| Download URL | vastpy-0.3.9.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8b07c22700838d92326e0798e94e402a4396d24e0bb05327c14feaa9d3a99d6
|
|
BLAKE2b-256 checksum How to use checksums |
328f0849e2a76797aed74d7d68e8f1f6170a368020597234acacc14333ffb5b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.9 Darwin/23.6.0
|
Release files / vastpy-0.3.9-py3-none-any.whl
| Download URL | vastpy-0.3.9-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
218d3c9b000fbe24ad810111c0036584b64bc6b7395214efc8f8e528670febf1
|
|
BLAKE2b-256 checksum How to use checksums |
f1b66484f7842b384b8329e082de8ebf1fb2b9bf1eb6526247e4fe4756a2c674
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.10.9 Darwin/23.6.0
|