- General information
- Installation
- Configuration
- First run
- Autocomplete
- Modular CLI schema
- Project information
Modular-CLI is the specialized tool for interacting with the Modular-API. Automatically generate auth token, request body based on received meta from Modular-API and send it via HTTP requests.
The installation of Modular-CLI assumed that you have Python3.10 and pip installed.
Use the following links to install the tools in case they are not installed.
NOTE: Due to the best Python practices, it is highly recommended to use virtual environment to protect project against dependency breakage.
Creating Virtual Environments Guide
- Create:
python -m venv modular_cli_venv
- Activate (Linux):
source modular_cli_venv/bin/activate
Activate (Windows):source modular_cli_venv/Scripts/activate
- Installation:
pip install .
By default - entry point for Modular-CLI set as m3admin
and this name will be used
in all next commands examples. However, you have ability to customize this name in
setup.py
file before Modular-CLI installation:
- open
setup.py
file in any convenient editor - find property
entry_points
and linem3admin=modular_cli.modular_cli:modular_cli
in it - replace
m3admin
keyword with desired name
Before first run Modular-CLI should be properly configured. Please create the user
in Modular-API
by yourself or ask for support your system administrator. For using
Modular-CLI you need to know your username, password and link to Modular-API.
After that use the next command:
m3admin setup --username $USER --password $PASSWORD --api_path $LINK_TO_MODULAR_API
Please NOTE: Modular-API server should be in running state when setup
command will be executed
If you would like update access credentials just execute m3admin setup
command again.
To delete credentials run m3admin cleanup
command
The following environment variables could be used:
LOG_PATH
: in case you need to store the Modular-cli log file by the custom path.
First step you should do after configuration it is retrieving jwt token for authorization and available for your user commands meta.
Execute m3admin login
- to get fresh jwt token and available commands
Response:
Login successful
Execute m3admin
- to see available for your user commands
Available modules:
module_1
module_2
...
module_N
Available groups:
group_1
group_2
...
group_N
Available commands:
cleanup
login
setup
version
Try to execute any available by Modular-API policy command
m3admin $module_name $group_name $command_name --$parameter $parameter value
Response:
$Command execution result
In every command you can add --json
or --table
flag and change output mode.
- If
--json
flag was specified:
m3admin $module_name $group_name $command_name --$parameter $parameter value --json
{
"Status": "SUCCESS",
"Code": 200,
"Message": "$Command execution result",
"Warnings": []
}
- If
--table
flag was specified:
m3admin $module_name $group_name $command_name --$parameter $parameter value --table
+---------+------+----------------------------------------------------+
| Status | Code | Response |
+---------+------+----------------------------------------------------+
| SUCCESS | 200 | $Command execution result |
+---------+------+----------------------------------------------------+
If you want to extend list of available commands/modules please contact to your system administrator with request about adding desired resources.
Commands syntax:
m3admin <available commands> <parameters>
m3admin <available modules> <group or command> <parameters>
m3admin <available groups> <subgroup or command> <parameters>
The user has ability to enable autocompletion feature for Modular-CLI tool. Autocomplete option available only on Unix-based platforms (bash&zsh interpreters).
To activate it do a few steps:
- Activate virtual environment by command
source <path_to_venv>/bin/activate
- Create SYMLINK to virtual environment
sudo ln -s <your_path_to_venv>/bin/m3admin /usr/local/bin/m3admin
- Start a new terminal session
- Execute command
sudo m3admin enable_autocomplete
- Restart terminal session
To deactivate:
- Execute the
sudo m3admin disable_autocomplete
command - Restart terminal session
Open Source Code: https://github.com/epam/modular-cli
Documentation: https://github.com/epam/modular-cli/blob/develop/README.md
Changelog: https://github.com/epam/modular-cli/blob/develop/CHANGELOG.md
Supported Python Version: 3.10