Justin

Read over your email, really liked the proposal - I think all of them are very 
good and useful. 

Please post the code if you need someone to test it.

Thanks 
ilya

-----Original Message-----
From: Justin Grudzien [mailto:grudz...@gmail.com] 
Sent: Friday, March 29, 2013 11:51 PM
To: dev@cloudstack.apache.org
Subject: cloudmonkey printing enhancements proposal

My company is building a private cloud and we are moving to cloudstack. As we 
begun investigating the cloudmonkey CLI we found that the output was slightly 
hard to read. I have begun working on some optimizations that I think will 
benefit the community and I reached out to Rohit, who recommended that I join 
this list and present my ideas. Here is what I am
proposing:

1. Add json output to cloudmonkey
I have accomplished this by adding a config parameter called display, which can 
be set to json, tabularize, or default. I have removed the tabularize parameter.

Justins-MacBook-Pro:cloudmonkey grudzien$ cloudmonkey list users 
account=grudzien {
  "count": 1,
  "user": [
    {
      "account": "grudzien",
      "accountid": "b799783d-e5bb-460a-be0e-3966bd69edda",
      "accounttype": 1,
      "apikey": "*nokey*",
      "created": "2013-03-27T16:09:17-0500",
      "domain": "ROOT",
      "domainid": "7e61c32f-9873-4944-947a-dcc00d3bebdc",
      "email": "grudz...@gmail.com",
      "firstname": "Justin",
      "id": "265930bc-62ef-41f8-849c-e58593ca4b1f",
      "lastname": "Grudzien",
      "secretkey": "*nokey*",
      "state": "enabled",
      "username": "grudzien"
    }
  ]
}

2. Add filtering as a standard parameter for all output types.
The only thing that has filtering now is the tabular output and grep breaks the 
json.

Justins-MacBook-Pro:cloudmonkey grudzien$ cloudmonkey list users 
account=grudzien filter=account,email,username,state
{
  "count": 1,
  "user": [
    {
      "account": "grudzien",
      "email": "grudz...@gmail.com",
      "state": "enabled",
      "username": "grudzien"
    }
  ]
}

3. Add color to the json output
I was thinking of colorizing the keys in the key/value pairs to increase 
readability.

4. Move the color option from the config file to the command line.
There are two reasons for this. First, I want to be able to wrap a script 
around cloudmonkey and not have to worry about colorization that will impede me 
processing the output and second I think it would be more useful to use the 
highlighting on demand rather than having to back out of the shell to edit a 
config file.

5. Standardize messaging for the output types.
Right now certain kinds of messaging is presented differently for an output 
type. For example, if I issue an api command that doesn't exist it displays a 
generic error message, regardless of the output type selected. Ideally, all 
output would be in the specified format.

I have the first two working and am planning on implementing the others as I 
flesh them out. I will submit a patch when I feel it is ready. Any early 
feedback on whether these changes will be useful to others is appreciated.

Justin

Reply via email to