Hey Justin, thanks for posting this on community ML. On Sat, Mar 30, 2013 at 9:20 AM, Justin Grudzien <grudz...@gmail.com> wrote:
> 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. > +1 > > 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" > } > ] > } > Awesome. > > 3. Add color to the json output > I was thinking of colorizing the keys in the key/value pairs to increase > readability. > This is easily doable, all we have to do is define a regex rule in printer.py for the regex type "txt": as key and ": xxx, as value. > 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. > I did not understand this one. What exactly are you proposing? You can always set color to false or true. Are you talking about color themes? > 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. > Oh man, that would be just great! Pl. share your patch. > > 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. > You can submit patches as you finish them, don't wait till all of 5 things are done. I can help review them and merge them. Thanks for your proposal and sharing them. Cheers. > Justin >