The patch adds feature in cloudmonkey to have multiple profiles by passing
custom cfg file to set custom profile in both interactive shell and cmd line tool
use cases.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
minor pom refactor to put all the tools under one placeholder pom.
Also adds a profile for marvin to run deployDataCenter via mvn options.
$mvn -Pdeveloper,marvin -pl :cloud-marvin -Dmarvin.config=<path/to/config>
OR
$cd tools/marvin
$mvn -Pmarvin -pl :cloud-marvin -Dmarvin.config=path/to/config
will deploy the datacenter using the marvin.config property's value
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
- Fixes metaprogramming to inject methods during shell class object's runtime
- This enable new apis that are synced to come up with new verbs, docs etc.
- Fixes printing issue
- Fixes null bitfield parsing issue
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
- Pygments based colored output for tabular and normal list outputs
- Fix cfg processing as per new cfg paths and ds
- Get rid of clint and old way of parsing and color printing
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Changes config path to ~/.cloudmonkey this will break cfg path but all configs are
still backward compatible. We need folder to put a lot of stuff that is coming
for ex. themes and plugins
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
The following api commands have no cloudmonkey equivalent because
cloudmonkey grammar misses the related verbs.
~/tools/cli/cloudmonkey/marvin/cloudstackAPI(branch:master*) $ ls disassociateIpAddress.py
disassociateIpAddress.py
------------------------------------------------------------
~/tools/cli/cloudmonkey/marvin/cloudstackAPI(branch:master*) $ ls lock*
lockAccount.py lockUser.py
------------------------------------------------------------
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
If asyncblock is set to true, prints dots as polling requests are made.
When result is obtained, dots are wiped and result is printed.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
- Adds new cloudmonkey config field, tabularize
- If tabularize is set to true, all the list of dict in response are printed as
table
- The columns of the tables can be filtered using the filter= argument, for ex:
list domains listall=true filter=id,name,path
- filter arg will take comma separated values, if they have space put them under
quotes
- Empty filter argument will cause it to print the whole table
- Multiple fields with the same name will cause it to print the column again
- In case there is a typo in the field, that column is skipped. It takes an
intersection of response dict keys and filter keys provided
- Uses opensource prettytable library to pretty print tabular data
TODOs:
- Handle recursive table printing for nested list of dicts
- Colorize table columns if community wants such a feature
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
- Fix handles shell loop
- Handles any control breaks without breaking the shell
- Handles ctrl+c to start afresh on the shell
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
This is the second half of making cloudmonkey and marvin more
flexible in environments that may have https enabled and / or
a different path for the cloudstack API.
Signed-off-by: Chip Childers <chip.childers@gmail.com>
- Move config, grammar to common
- Cleanup cloudmonkey.py, import from common
- Import precached verbs, if fails init to {}
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Posix mode allows the parse to:
- split by whitespace but value="between quotes are retained or enclose"
- quotes are stripped out
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>