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.6
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.6.tar.gz | 8.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vastpy-0.3.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.6 kB
Release files / vastpy-0.3.6.tar.gz
| Download URL | vastpy-0.3.6.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c322ff78320a54f9e341a16cd28c93994d629d69207e9e9d5ebf8fcf5ce8b37
|
|
BLAKE2b-256 checksum How to use checksums |
01a95bcc9ff4146e65d74d6a2434ee5fe7a7b12156bd31734df09ab75547e7b6
|
| 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.6-py3-none-any.whl
| Download URL | vastpy-0.3.6-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8aa0642a726f955c037bb175b057f3c40cb37e7370ccc64688c30486bdf132df
|
|
BLAKE2b-256 checksum How to use checksums |
37541886d6ff84865d305dfa39fed559d24ce1307c209cd917786a4401498ac4
|
| 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
|