Configure the vss-cliο
Before using VSS CLI, you need setup your VSS credentials. You can do this in a couple of ways:
Configuration file
Environment variables
Command Line Input
Configuration fileο
The quickest way to get started is to run the vss-cli configure mk command:
vss-cli configure mk
Endpoint Name [cloud-api]:
Username: jm
Password:
Repeat for confirmation:
Successfully configured credentials for https://cloud-api.eis.utoronto.ca.
You are ready to use the vss-cli π
vss-cli configure mk generates a new configuration file at
~/.vss-cli/config.yaml or %UserProfile%\.vss-cli\config.yaml
on Windows. The configuration file holds general settings configuration
general and multiple endpoint configuration endpoints as follows:
general:
default_endpoint_name: cloud-api
timeout: 120
verbose: no
debug: no
output: auto
table_format: simple
check_for_updates: yes
check_for_messages: yes
columns_width: 0
wait_for_requests: false
endpoints:
- name: cloud-api
url: https://cloud-api.eis.utoronto.ca
auth:
token:
- name: vss-api
url: https://vss-api.eis.utoronto.ca
auth:
token:
The following table summarizes the general area configuration parameters
Name |
Type |
Description |
|---|---|---|
|
string |
Default endpoint name that must match
one item from the |
|
string |
S3 server for user file transfer. |
|
int |
Timeout for network operations. |
|
bool |
Enables verbose mode. |
|
bool |
Enables debug mode. |
|
string |
Output format. Either |
|
string |
table formats supported by python-tabulate: plain, simple, github, grid, fancy_grid, pipe, orgtbl, rst, mediawiki, html, latex, latex_raw, latex_booktabs, tsv or csv. |
|
bool |
Check for |
|
bool |
Check for Cloud API messages when a new token is generated. |
|
int |
|
|
bool |
If set to true, will wait for request to complete. |
Edit Configurationο
There are two methods to edit the raw configuration file and update any of the
general configuration parameters. Using vss-cli configure edit command
will use your terminal default editor (vi, nano, etc..) to edit the
configuration file. Also, you can use any system default application to
edit the configuration file by adding the -l/--launch option, for instance
vss-cli configure edit --launch.
Upgrade Legacy Configurationο
Users with previous versions of the vss-cli including the legacy vsscli
can upgrade/migrate their endpoints to this version. To do so, execute
vss-cli configure upgrade <path-to-config>. By default the upgrade
command looks for ~/vss-cli/config.json if no argument is specified.
Usage: vss-cli configure upgrade [OPTIONS] [LEGACY_CONFIG]
Options:
-c, --confirm Proceed with migration without prompting confirmation.
-o, --overwrite Overwrite if target file exists.
--help Show this message and exit.
The following example upgrades an existing vss-cli configuration from
~/vss-cli/config.json to ~/vss-cli/config.yaml:
vss-cli configure upgrade
Found 3 endpoints. Migrating to new configuration file.
Successfully loaded 3 endpoints from legacy configuration.
Would you like to upgrade 3 endpoint(s)? This action will
create a new configuration file /path/to/.vss-cli/config.yaml
with your endpoints in it [y/N]: Y
Successfully migrated /path/to/.vss-cli/config.json π
General settingsο
General settings can be updated with the vss-cli configure set <setting>
command as follows:
Usage: vss-cli configure set [OPTIONS] [check_for_messages|check_for_updates|d
ebug|verbose|default_endpoint_name|output|table_f
ormat|timeout|columns_width|wait_for_requests]
VALUE
Set configuration attribute in the general section.
Options:
--help Show this message and exit.
For instance, to update the timeout value, execute:
vss-cli configure set timeout 60
Updating timeout from 120 -> 60.
/Users/username/.vss-cli/config.yaml updated πΎ
Or disable columns_width calculation:
vss-cli configure set columns_width β -1
Updating columns_width from 0 -> -1. /Users/username/.vss-cli/config.yaml updated πΎ
Boolean values for check_for_updates, verbose, debug,
and wait_for_requests etc. can be enabled (true) by using any
of the following values βyesβ, βtrueβ, βtβ, β1β, βyβ, everything else
is taken as false.
vss-cli configure set verbose no
Updating verbose from True -> False.
/Users/username/.vss-cli/config.yaml updated πΎ
vss-cli configure set verbose yes
Updating verbose from False -> True.
/Users/username/.vss-cli/config.yaml updated πΎ
Add/Update endpointsο
Endpoints can be added and updated with the vss-cli configure mk
command and you can have multiple accounts with the same endpoint.
For example, adding a different account:
vss-cli configure mk
Endpoint Name [cloud-api]: cloud-api-other
Username: other-user
Password:
Repeat for confirmation:
Successfully configured credentials for https://cloud-api.eis.utoronto.ca.
You are ready to use the vss-cli π
List endpointsο
To list available endpoint configuration, just execute
vss-cli configure ls and the output should look like:
vss-cli configure ls
NAME ENDPOINT USER PASS TOKEN SOURCE DEFAULT
--------------- --------------------------------- ------ -------- ----------------------- ----------- ---------
cloud-api https://cloud-api.eis.utoronto.ca jm ******** eyJhbGciOi...MiCveo6WaM config file β
cloud-api-other https://cloud-api.eis.utoronto.ca other ******** eyJhbGciOi...IlUvSkpU2A config file
Enable endpointο
By default the vss-cli will look for the default_endpoint_name
parameter in the configuration file. To update the default endpoint,
run vss-cli configure set default_endpoint <endpoint-name> as follows:
vss-cli configure set default_endpoint_name cloud-api-other
Updating default_endpoint_name from cloud-api -> cloud-api-other.
/path/to/.vss-cli/config.yaml updated πΎ
To verify, run vss-cli configure ls:
vss-cli configure ls
NAME ENDPOINT USER PASS TOKEN SOURCE DEFAULT
--------------- --------------------------------- ------ -------- ----------------------- ----------- ---------
cloud-api https://cloud-api.eis.utoronto.ca jm ******** eyJhbGciOi...MiCveo6WaM config file
cloud-api-other https://cloud-api.eis.utoronto.ca other ******** eyJhbGciOi...IlUvSkpU2A config file β
Environment Variablesο
The following table summarizes the environment variables
supported by the vss-cli:
Name |
Description |
|---|---|
VSS_ENDPOINT |
Cloud API endpoint URL or endpoint name defined in configuration file. |
VSS_S3_SERVER |
S3 server for user file transfer. |
VSS_VPN_SERVER |
VPN server for MFA management |
VSS_TIMEOUT |
Timeout for network operations. |
VSS_USER |
Default Username to use for generating an access token. Token will not persist. |
VSS_USER_PASS |
Default username password for generating an access token. Token will not persist. |
VSS_TOKEN |
Manually generated Cloud API Token. |
VSS_CONFIG |
Relative or full path to non-standard location to configuration file. |
VSS_OUTPUT |
Output format. Either |
VSS_TABLE |
Table format to be used by tabulate. |
VSS_COL_WIDTH |
|
VSS_WAIT_FOR_REQUESTS |
If set to true, will wait for request to complete. |
If you would like to have a stateless configuration, set VSS_USER
and VSS_USER_PASS or VSS_TOKEN with a token generated manually:
export VSS_USER=USER
export VSS_USER_PASS=superstrongpassword
# or
export VSS_TOKEN=long_jwt_token
Command Line Inputο
The following table summarizes the command line input options
supported by the vss-cli:
Option |
Description |
|---|---|
|
Cloud API endpoint URL endpoint name defined in configuration file. |
|
S3 server for user file transfer. |
|
|
|
HTTP timeout value. |
|
Default Username to use for generating an access token. Token will not persist. |
|
Default username password for generating an access token. Token will not persist. |
|
Manually generated Cloud API Access Token. |
|
Relative or full path to non-standard location to configuration file. |
|
Output format. Either |
|
Table format to be used by tabulate. |
|
Custom columns key=value list. |
|
Truncates column values (0: auto, -1: disable) |
|
Wait for request(s) to complete |
The vss-cli configuration file can be configured using a mix
of both user input and command line options as follows:
vss-cli --endpoint https://vss-api.eis.utoronto.ca configure mk --endpoint-name vss-api-jm
Username: jm
Password:
Repeat for confirmation:
Would you like to replace existing configuration?
vss-api-jm:jm: https://vss-api.eis.utoronto.ca [y/N]: y
Successfully configured credentials for https://vss-api.eis.utoronto.ca.
You are ready to use the vss-cli π
Then, if the new endpoint isnβt the default_endpoint_name in the
configuration file, you can specify the endpoint name in --endpoint
option as follows:
vss-cli --endpoint vss-api-jm compute vm ls
...