Thanks Dave for filing the issue, will try to fix this by end of the day. If 
not, I will post my solution on the issue.
Regards.
On 16-Nov-2012, at 1:19 PM, Dave Cahill <dcah...@midokura.jp> wrote:

> Thanks Rohit - filed this bug to track the issue:
> https://issues.apache.org/jira/browse/CLOUDSTACK-499
>
> If you have time to write a description of how you're planning to fix it, I
> could take a look at it - I have my setup 99% automated, just need to get
> this param passing working. :)
>
> Thanks,
> Dave.
>
>
> On Thu, Nov 15, 2012 at 11:20 PM, Rohit Yadav <rohit.ya...@citrix.com>wrote:
>
>>
>> On 15-Nov-2012, at 3:26 PM, Dave Cahill <dcah...@midokura.jp> wrote:
>>
>>> Hi Rohit,
>>>
>>> I've been using cloudmonkey to script my CloudStack setup process in dev,
>>> and had one question.
>>>
>>> How do we pass complex (MAP) parameters to cloudmonkey? For example, when
>>> setting up a networkoffering, there's a serviceProviderList parameter
>> which
>>> is a list of items, each of which has several key value pairs. I tried a
>>> couple of syntaxes to pass this parameter, but didn't come across the
>>> correct one yet - can you enlighten me? ;)
>>
>> Hi Dave, thanks for catching the bug. The way maps are handled in url are
>> very different than how cloudmonkey parses and passing key,values.
>> This actually needs to be fixed in Marvin, I've figured out a way but it
>> may cause issues with marvin, will discuss with Prasanna and fix it soon.
>>
>> You may file an issues if you want to.
>>
>> Regards.
>>
>>>
>>> Thanks for your work on this, very useful.
>>>
>>> Thanks,
>>> Dave.
>>>
>>>
>>> On Mon, Nov 12, 2012 at 7:01 PM, Rohit Yadav <rohit.ya...@citrix.com>
>> wrote:
>>>
>>>> Hi Charles,
>>>>
>>>> Karaf seems nice, and no worries I don't see any suggestions as flames
>> or
>>>> war. I would anytime throw away any code for something better, so feel
>> free
>>>> to start writing your own client and share with us. Patches welcome!
>>>>
>>>> Let me share why I wrote it in Python:
>>>>
>>>> - First of all the CLI is not even a client to start with, I mean I've
>>>> totally based it off marvin. It's a small wrapper I would say around
>> marvin.
>>>> - Python because, the environment is preinstalled on Macs and almost all
>>>> Linux distros.
>>>> - Scripting environment that Python provides so one can fork and edit
>>>> their own versions of cloudmonkey CLI, this saves the user from
>>>> hack->compile->build->run loop; one can just hack and run.
>>>> - The best part again is marvin as dependency, you write javadocs etc.
>> in
>>>> your java code, apidocs gets interface definition and requirements from
>> the
>>>> java code, the commands.xml created in the process is used by marvin's
>>>> codegenerator  which generates api modules with Cmd and Response
>> classes.
>>>> The generated cloudstackAPI is used by both marvin clients and the CLI.
>> The
>>>> CLI which is about 400 lines of Python, in turn loads these modules and
>>>> generates grammar and command handlers on the fly using some functional
>>>> magic (injects functions into the classes), I don't think this kind of
>>>> programming is even possible with Java, they don't have functions as
>> first
>>>> class citizens.
>>>>
>>>> What does the last statement mean for the developers:
>>>> So, if a developer simply adds a new API which is java code, with
>> required
>>>> docs etc. apidocs will pick it up automatically and in turn marvin (and
>>>> it's test clients) will get new cloudstackAPI and CLI too gets the new
>> APIs
>>>> on the fly. The functional closures in CLI will make sure the new APIs
>> and
>>>> its handlers are created with grammar rules. The developer won't need to
>>>> change apidocs, marvin or CLI. I think this is one of my best hacks [0]
>>>> which leverages on existing code and I think it would be very
>> maintainable
>>>> in future.
>>>>
>>>> Sorry everyone, I'm caught up with some other issues, I want to post a
>>>> screencast and blog explaining the CLI but only after I finalize the
>> specs
>>>> for the CLI. Thanks for the feedback so far.
>>>> The top TODOs left now are:
>>>> - Reverse search
>>>> - Bash/zsh completion
>>>>
>>>> Regards.
>>>> PS. Just in case you're curious:
>>>> [0] https://github.com/bhaisaab/hacktools
>>>>
>>>> ________________________________________
>>>> From: Charles Moulliard [ch0...@gmail.com]
>>>> Sent: Monday, November 12, 2012 12:49 PM
>>>> To: cloudstack-dev
>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>
>>>> Hi,
>>>>
>>>> I don't want to create a developer war or position a technology against
>>>> another (python against java) but we could leverage Apache Karaf (OSGI
>>>> runtime container) project to provide the cloudmonkey client. This work
>> has
>>>> already be done for jclouds (http://www.youtube.com/watch?v=EKVkm6AV19U
>> ,
>>>> https://github.com/jclouds/jclouds-karaf) and could be easily
>>>> created
>>>> created for cloudmonkey. Karaf which is a shell environment proposes a
>> lot
>>>> of by default features (http://karaf.apache.org/ : ssh, jaas,
>>>> provisioning,
>>>> administration, history, config files support, ... -
>>>> http://karaf.apache.org/manual/latest-2.3.x/developers-guide/index.html
>> )
>>>> that we could extend with cloudmonkey commands (
>>>>
>>>>
>> http://karaf.apache.org/manual/latest-2.3.x/developers-guide/extending-console.html
>>>> )
>>>> and rebrand Karaf into a cloudmonkey karaf container.
>>>>
>>>> Regards,
>>>>
>>>> Charles
>>>>
>>>>
>>>> On Fri, Nov 9, 2012 at 10:53 PM, Musayev, Ilya <imusa...@webmd.net>
>> wrote:
>>>>
>>>>> I guess mine got wiped somehow...
>>>>>
>>>>> -----Original Message-----
>>>>> From: Musayev, Ilya [mailto:imusa...@webmd.net]
>>>>> Sent: Friday, November 09, 2012 4:51 PM
>>>>> To: cloudstack-dev@incubator.apache.org
>>>>> Subject: RE: CLI for CloudStack: cloudmonkey
>>>>>
>>>>> Rohit
>>>>>
>>>>> History seems to retain only last session and not previous - is this by
>>>>> design?
>>>>>
>>>>> Thanks
>>>>> ilya
>>>>>
>>>>> -----Original Message-----
>>>>> From: sebgoa [mailto:run...@gmail.com]
>>>>> Sent: Friday, November 09, 2012 4:52 AM
>>>>> To: cloudstack-dev@incubator.apache.org
>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>
>>>>> Using lower case commands solved the issue
>>>>>
>>>>> thanks, and happy Diwali
>>>>>
>>>>> -Sebastien
>>>>>
>>>>> On Nov 8, 2012, at 8:14 PM, Rohit Yadav wrote:
>>>>>
>>>>>> Oh, forgot to see that. Yes, now all the cmds are lowercase (except
>> for
>>>>> few params liks isAsync=) and tab completion is advised.
>>>>>>
>>>>>> Regards.
>>>>>> ________________________________________
>>>>>> From: Kishan Kavala [kishan.kav...@citrix.com]
>>>>>> Sent: Thursday, November 08, 2012 11:29 PM
>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>> Cc: cloudstack-dev@incubator.apache.org
>>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>>
>>>>>> Sebastian,
>>>>>> Try set apikey in lower case. Same with set secretkey.
>>>>>>
>>>>>> ~kishan
>>>>>>
>>>>>> On 08-Nov-2012, at 10:00 PM, "Sebastien Goasguen" <run...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>> Actually it does not work yet.
>>>>>>>
>>>>>>> Now I can type 'b' but it does not get passed properly:
>>>>>>>
>>>>>>> πŸ™‰ cloudmonkey> set apiKey
>>>>>>> KEbkKWtYIz_q_fnpOdwnHoZUJt5tiBNiHvf-oApytBd0adU-s-DRP3an1pqL6TutyUCzj
>>>>>>> RB9UNrBybVr3kcZ6Q
>>>>>>>
>>>>>>> Gives:
>>>>>>>
>>>>>>> INFO  [cloud.api.ApiServer] (92734721@qtp-1601733969-7:) apiKey does
>>>>>>> not map to a valid user -- ignoring request, apiKey:
>>>>>>> KEkKWtYIz_q_fnpOdwnHoZUJt5tiBNiHvf-oApytBd0adU-s-DRP3an1pqL6TutyUCzjR
>>>>>>> B9UNrByVr3kcZ6Q
>>>>>>>
>>>>>>> On Nov 8, 2012, at 5:19 PM, Sebastien Goasguen <run...@gmail.com>
>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On Nov 8, 2012, at 3:28 PM, Rohit Yadav <rohit.ya...@citrix.com>
>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Sebastien,
>>>>>>>>>
>>>>>>>>> Are you using it from pypi/pip, if so do this:
>>>>>>>>> sudo pip uninstall cloudmonkey
>>>>>>>>> sudo pip install cloudmonkey
>>>>>>>>
>>>>>>>> no, I am doing: sudo python ./setup.py install from the source tree
>>>>>>>>
>>>>>>>>> I've had this bug on mac osx, fixed it:
>>>>>>>>> https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git
>> ;
>>>>>>>>> a=commit;h=36e7a7884efef7c41ac369549b7bdb93e5122110
>>>>>>>>
>>>>>>>> pulled that and reinstalled…and it works.
>>>>>>>>
>>>>>>>> thanks
>>>>>>>>
>>>>>>>> -sebastien
>>>>>>>>
>>>>>>>>
>>>>>>>>> If it still persists for you, checkout
>>>>>>>>>
>> http://superuser.com/questions/297527/cant-type-the-b-letter-in-pyt
>>>>>>>>> hon-shell-in-os-x
>>>>>>>>>
>>>>>>>>> Let me know if this still fails then.
>>>>>>>>>
>>>>>>>>> Regards.
>>>>>>>>>
>>>>>>>>> ________________________________________
>>>>>>>>> From: Sebastien Goasguen [run...@gmail.com]
>>>>>>>>> Sent: Thursday, November 08, 2012 5:37 PM
>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I am testing the cli and I have the weirdest issue. When I set the
>>>>> apikey or secretkey, the lower case 'b' letter does not print at the
>>>> prompt.
>>>>>>>>> So if my keys contain 'b' they don't work..
>>>>>>>>>
>>>>>>>>> I tried all the other letters and they work.
>>>>>>>>>
>>>>>>>>> Anyone seeing this,
>>>>>>>>>
>>>>>>>>> -Sebastien
>>>>>>>>>
>>>>>>>>> On Nov 7, 2012, at 7:25 PM, Rohit Yadav <rohit.ya...@citrix.com>
>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> yes, I think I'd mentioned in the thread or somewhere. Just use
>>>>>>>>>> pip or easy_install (apt-get install python-setuptools on ubuntu,
>>>>>>>>>> install python2.6 or above and pip if you don't have it);
>>>>>>>>>>
>>>>>>>>>> sudo pip install cloudmonkey
>>>>>>>>>>
>>>>>>>>>> or sudo easy_install cloudmonkey
>>>>>>>>>>
>>>>>>>>>> now start cloudmonkey:
>>>>>>>>>> $ cloudmonkey
>>>>>>>>>> ...
>>>>>>>>>>
>>>>>>>>>> Will post a blog/screencast this weekend and update doc so
>> everyone
>>>>> can get help on its usage, though it's pretty intuitive.
>>>>>>>>>> ________________________________________
>>>>>>>>>> From: Musayev, Ilya [imusa...@webmd.net]
>>>>>>>>>> Sent: Wednesday, November 07, 2012 11:41 PM
>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>> Subject: RE: CLI for CloudStack: cloudmonkey
>>>>>>>>>>
>>>>>>>>>> Rohit,
>>>>>>>>>>
>>>>>>>>>> Can I get the CLI only without going through the whole source code
>>>>> maven install? Is it part of any RPM?
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> ilya
>>>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: Rohit Yadav [mailto:rohit.ya...@citrix.com]
>>>>>>>>>> Sent: Monday, November 05, 2012 11:35 AM
>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>>>>>>
>>>>>>>>>> Checkout latest code. Few changes to share:
>>>>>>>>>>
>>>>>>>>>> - All lowercase now
>>>>>>>>>> - Tab tab over verbs to see list of params for that api, example
>>>>>>>>>> list users <tab><tab>
>>>>>>>>>> - This needs improvement but help string, using --help: list user
>>>>>>>>>> --help
>>>>>>>>>> - Caching to speedup runtime
>>>>>>>>>> - Color and Parsing fixes
>>>>>>>>>>
>>>>>>>>>> Last, I'm now able to get the doc strings for each
>> attribute/param,
>>>>> will see this tomorrow.
>>>>>>>>>>
>>>>>>>>>> Need your help, just incase you want to contribute, these are the
>>>>> TODOs:
>>>>>>>>>>
>>>>>>>>>> - search over history
>>>>>>>>>> - fix parsing
>>>>>>>>>> - doc strings for parameters
>>>>>>>>>> - testing for various kinds of apis (I'm able to deploy a zone
>>>>>>>>>> with this, but needs testing)
>>>>>>>>>> - unicode char monkey, used in prompt may mess up history
>>>>>>>>>> searching and text display
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Regards.
>>>>>>>>>>
>>>>>>>>>> On 02-Nov-2012, at 4:58 AM, Edison Su <edison...@citrix.com>
>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>> From: Rohit Yadav [mailto:rohit.ya...@citrix.com]
>>>>>>>>>>>> Sent: Thursday, November 01, 2012 2:23 PM
>>>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>>>> Subject: RE: CLI for CloudStack: cloudmonkey
>>>>>>>>>>>>
>>>>>>>>>>>> After you install the tool, so that cloudmonkey is in your
>>>>>>>>>>>> /usr/local/bin or in $PATH...
>>>>>>>>>>>>
>>>>>>>>>>>> Two ways;
>>>>>>>>>>>> 1. As command line tool, on bash/zsh, use the BNF grammar;
>>>>>>>>>>>> <command line tool
>>>>>>>>>>>> name>:<separator>:<verb>:<separator>:<action>:<separator>:<param
>>>>>>>>>>>> name>s>
>>>>>>>>>>>> <command line tool name>={'cloudmonkey'} <separator>={' '}
>>>>>>>>>>>> <verb>={'list', 'create', 'delete', 'update'.... etc.}
>>>>>>>>>>>> <action>={'Users'... etc.} <params>={'listall=#'... etc.} So; $
>>>>>>>>>>>> cloudmonkey list Users
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Got it, thanks!
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> 2. file redirector:
>>>>>>>>>>>>
>>>>>>>>>>>> $ cat test-file:
>>>>>>>>>>>> list Users
>>>>>>>>>>>> list <some other action>
>>>>>>>>>>>> <some verb> <some action>
>>>>>>>>>>>>
>>>>>>>>>>>> $ cloudmonkey < test-file
>>>>>>>>>>>>
>>>>>>>>>>>> Note, I'll change the actions (Users, VirtualMachine etc.) to
>>>>>>>>>>>> lowercase (users, virtualmachine etc.) if that's okay?
>>>>>>>>>>>
>>>>>>>>>>> Please do, nobody wants to type extra keystroke, if it's not
>>>>> necessary.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards.
>>>>>>>>>>>>
>>>>>>>>>>>> ________________________________________
>>>>>>>>>>>> From: Edison Su [edison...@citrix.com]
>>>>>>>>>>>> Sent: Friday, November 02, 2012 1:55 AM
>>>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>>>> Subject: RE: CLI for CloudStack: cloudmonkey
>>>>>>>>>>>>
>>>>>>>>>>>> Oh, it reminds me that how to use the CLI on the bash command
>>>> line?
>>>>>>>>>>>> I think admin may want to call cloudstack API in a bash script,
>>>>>>>>>>>> how can I do that?
>>>>>>>>>>>>
>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>> From: Marcus Sorensen [mailto:shadow...@gmail.com]
>>>>>>>>>>>>> Sent: Thursday, November 01, 2012 1:11 PM
>>>>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, I look forward to using it instead of local curl calls on
>>>>>>>>>>>>> the command line :-)
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Nov 1, 2012 at 2:02 PM, Edison Su <
>> edison...@citrix.com
>>>>>
>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>>>> From: Rohit Yadav [mailto:rohit.ya...@citrix.com]
>>>>>>>>>>>>>>> Sent: Thursday, November 01, 2012 11:45 AM
>>>>>>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>>>>>>> Subject: RE: CLI for CloudStack: cloudmonkey
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Chip, please go ahead if we can fix the http/s issue. The
>>>>>>>>>>>>>>> connection is based on marvin, I'm sure using CLI we'll find
>>>>>>>>>>>>>>> out more bugs and fix anything in marvin thereby help
>>>>>>>>>>>>>>> maintain
>>>>>>>>>>>>>>> marvin->tests and
>>>>>>>>>>>>> CLI.
>>>>>>>>>>>>>>> Please hack that up on
>>>>>>>>>>>>>>> tools/marvin/marvin/cloudstackConnection.py
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Edison, yes I'm working on the completedefault, I've figured
>>>>>>>>>>>>>>> a solution to the parsing and tabbing issue to show params
>>>>>>>>>>>>>>> for any api and added more verbs to the grammar like deploy,
>>>>> start etc.
>>>>>>>>>>>>>>> In the new approach doc strings and params needed for an api
>>>>>>>>>>>>>>> are fetched and cached in the class locally to speed up the
>>>>> loading process.
>>>>>>>>>>>>>>> Till it gets committed, cloudmonkey (now) will keep telling
>>>>>>>>>>>>>>> the user what params they are missing until it gets all the
>>>>> required ones.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Great! Thanks for your awesome CLI, people will like it.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> One more thing, for people who may not have unicode support
>>>>>>>>>>>>>>> the prompt may appear weird and history search (up, down )
>>>>>>>>>>>>>>> can mess up the visuals. For example on Mac it appears as a
>>>>>>>>>>>>>>> colorful emoji, but I found that it looks weird on other
>>>>>>>>>>>>>>> platforms. Will probably remove it, or the user can custom
>>>>>>>>>>>>>>> set their prompt, using: set prompt
>>>>>>>>>>>>>>> myprompt>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Regards.
>>>>>>>>>>>>>>> PS. the set command is full of (fun :)  hacks because of
>>>>>>>>>>>>>>> funtional/generic programming, it basically can set any
>>>>>>>>>>>>>>> attribute on the class, so one can do something like creating
>>>>>>>>>>>>>>> something (var, func). For example set ruler # (so instead of
>>>>>>>>>>>>>>> - you will have a #
>>>>>>>>>>>>>>> separator)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> ________________________________________
>>>>>>>>>>>>>>> From: Chip Childers [chip.child...@sungard.com]
>>>>>>>>>>>>>>> Sent: Thursday, November 01, 2012 11:15 PM
>>>>>>>>>>>>>>> To: cloudstack-dev@incubator.apache.org
>>>>>>>>>>>>>>> Subject: Re: CLI for CloudStack: cloudmonkey
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Oct 31, 2012 at 2:10 PM, Rohit Yadav
>>>>>>>>>>>>>>> <rohit.ya...@citrix.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I was working on a CLI for cloudstack, it's based on Marvin
>>>>>>>>>>>>>>>> (the neglected robot) and called cloudmonkey after our
>>>>>>>>>>>>>>>> beloved mascot :D
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I've committed that on master, please review:
>>>>>>>>>>>>>>>>
>> https://git-wip-us.apache.org/repos/asf?p=incubator-cloudsta
>>>>>>>>>>>>>>>> ck.gi t; a=c
>>>>>>>>>>>>>>>> ommit;h=2ceaa3911e792dbeb6c40dfb70961008a01f7e3c
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Features:
>>>>>>>>>>>>>>>> - it's a shell and also a terminal tool, accepts file
>>>>>>>>>>>>>>>> redirection and pipes
>>>>>>>>>>>>>>>> - scalable to find and run old and new APIs
>>>>>>>>>>>>>>>> - intuitive grammar and verbs
>>>>>>>>>>>>>>>> - autocompletion (functional hack)
>>>>>>>>>>>>>>>> - shell execution using ! or shell
>>>>>>>>>>>>>>>> - cfg support: user defined variables, like prompt, ruler,
>>>>> host, port etc.
>>>>>>>>>>>>>>>> - history
>>>>>>>>>>>>>>>> - colors (disable using set color false)
>>>>>>>>>>>>>>>> - dynamic API loading and rule generation
>>>>>>>>>>>>>>>> - leverages Marvin to get latest autogenerated APIs
>>>>>>>>>>>>>>>> - emacs like shortcuts on prompt
>>>>>>>>>>>>>>>> - uses apiKey and secretKey to interact with mgmt server
>>>>>>>>>>>>>>>> - logs all client commands
>>>>>>>>>>>>>>>> - PEP-8 compliant code
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> FIXMEs:
>>>>>>>>>>>>>>>> - Reverse search over history
>>>>>>>>>>>>>>>> - Fix input and output processing
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It requires python and clint; pip install clint (or if you
>>>>>>>>>>>>>>>> have to easy_install clint) mvn clean install -P developer
>>>>>>>>>>>>>>>> cd tools/cli/cloudmonkey python cloudmonkey.py
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> If you want to have the terminal tool installed; cd
>>>>>>>>>>>>>>>> tools/cli python setup.py sdist cd dist pip install
>>>>>>>>>>>>>>>> cloudmonkey-0.0.4.tar.gz (or easy_install etc.)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> You can do stuff like;
>>>>>>>>>>>>>>>> cloudmonkey < file-with-commands, or cloudmonkey list Users,
>>>>>>>>>>>>>>>> or as shell;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> (If you see unicode chars cloud and monkey below, yes they
>>>>>>>>>>>>>>>> were put intentionally :)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> $ cloudmonkey
>>>>>>>>>>>>>>>> ☁ Apache CloudStack CLI. Type help or ? to list commands.
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  set apiKey <your key here>
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  set secretKey <your key here>
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  <tab><tab>
>>>>>>>>>>>>>>>> add      api      create   delete   disable  enable   help
>>>>> list     quit
>>>>>>>>>>>> remove
>>>>>>>>>>>>>>> set      shell    update
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  list <tab><tab>
>>>>>>>>>>>>>>>> Accounts                   Alerts
>>>>> AsyncJobs                  Capabilities
>>>>>>>>>>>>>>> Capacity                   Clusters
>>>>> Configurations
>>>>>>>>>>>>>>>> DiskOfferings              DomainChildren
>> Domains
>>>>>                  Events
>>>>>>>>>>>>>>> EventTypes                 FirewallRules              Hosts
>>>>>>>>>>>>>>>> HypervisorCapabilities     Hypervisors
>>>>> InstanceGroups
>>>>>>>>>>>>>>> IpForwardingRules          IsoPermissions             Isos
>>>>>>>>>>>>>>> LBStickinessPolicies
>>>>>>>>>>>>>>>> LoadBalancerRuleInstances  LoadBalancerRules
>>>>> NetworkACLs
>>>>>>>>>>>>>>> NetworkDevice              NetworkOfferings
>> Networks
>>>>>>>>>>>>>>> NetworkServiceProviders
>>>>>>>>>>>>>>>> OsCategories               OsTypes
>>>>> PhysicalNetworks           Pods
>>>>>>>>>>>>>>> PortForwardingRules        PrivateGateways
>>>>> ProjectAccounts
>>>>>>>>>>>>>>>> ProjectInvitations         Projects
>>>>> PublicIpAddresses
>>>>>>>>>>>>>>> RemoteAccessVpns           ResourceLimits             Routers
>>>>>>>>>>>>>>> SecurityGroups
>>>>>>>>>>>>>>>> ServiceOfferings           SnapshotPolicies
>>>> Snapshots
>>>>>>>>>>>>>>> SSHKeyPairs                StaticRoutes
>>>>> StorageNetworkIpRange
>>>>>>>>>>>>>>> StoragePools
>>>>>>>>>>>>>>>> SupportedNetworkServices   Swifts
>>>> SystemVms
>>>>>>>>>>>> Tags
>>>>>>>>>>>>>>> TemplatePermissions        Templates
>>>>> TrafficTypeImplementors
>>>>>>>>>>>>>>>> TrafficTypes               Users
>>>>> VirtualMachines
>>>>>>>>>>>>>>> VirtualRouterElements      VlanIpRanges               Volumes
>>>>>>>>>>>>>>> VPCOfferings
>>>>>>>>>>>>>>>> VPCs                       VpnConnections
>>>>> VpnCustomerGateways
>>>>>>>>>>>>>>> VpnGateways                VpnUsers                   Zones
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  list Users
>>>>>>>>>>>>>>>> …
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  !ls
>>>>>>>>>>>>>>>> # this give you a shell too and one can do things like
>>>>>>>>>>>>>>>> πŸ™‰ cloudmonkey>  !for i in Users Account; do echo
>>>>>>>>>>>>>>>> `cloudmonkey list $i
>>>>>>>>>>>>>>>> | grep id`; done;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Example commands to deploy a datacenter; (fill in dynamic
>>>>>>>>>>>>>>>> ids
>>>>>>>>>>>>>>>> etc.) create Zone dns1=8.8.8.8 internaldns1=10.147.28.6
>>>>>>>>>>>>>>>> name=Zone1 networktype=Basic create PhysicalNetwork
>>>>>>>>>>>>>>>> name=test-network
>>>>>>>>>>>>> zoneid=
>>>>>>>>>>>>>>> add
>>>>>>>>>>>>>>>> TrafficType traffictype=Guest physicalnetworkid= add
>>>>>>>>>>>>>>>> TrafficType traffictype=Management physicalnetworkid= update
>>>>>>>>>>>>>>>> PhysicalNetwork state=Enabled id= list
>>>>>>>>>>>>>>>> NetworkServiceProviders name=VirtualRouter
>>>>>>>>>>>>>>>> physicalNetworkId= list VirtualRouterElements nspid= api
>>>>>>>>>>>>>>>> configureVirtualRouterElement enabled=true id= update
>>>>>>>>>>>>>>>> NetworkServiceProvider state=Enabled id= list
>>>>>>>>>>>>>>>> NetworkServiceProviders name=SecurityGroupProvider
>>>>>>>>>>>>>>>> physicalNetworkId= update NetworkServiceProvider
>>>>>>>>>>>>>>>> state=Enabled id= create Network zoneid=
>>>>>>>>>>>>>>>> name=guestNetworkForBasicZone
>>>>>>>>>>>>>>>> displaytext=guestNetworkForBasicZone
>>>>>>>>>>>>>>>> networkofferingid= create Pod zoneid= name=Pod1
>>>>>>>>>>>>> gateway=10.147.28.1
>>>>>>>>>>>>>>>> netmask=255.255.255.0 startip=10.147.28.220
>>>>>>>>>>>>>>>> endip=10.147.28.235 create VlanIpRange podid= networkid=
>>>>>>>>>>>>>>>> gateway=10.147.28.1
>>>>>>>>>>>>>>>> netmask=255.255.255.0 startip=10.147.28.236
>>>>>>>>>>>>>>>> endip=10.147.28.250 forVirtualNetwork=false add Cluster
>>>>>>>>>>>>>>>> zoneid= hypervisor=XenServer clustertype=CloudManaged podid=
>>>>>>>>>>>>>>>> clustername=Cluster1 add Host
>>>>>>>>>>>>>>> zoneid=
>>>>>>>>>>>>>>>> podid= clusterid= hypervisor=XenServer
>>>>>>>>>>>>>>>> clustertype=CloudManaged username=root password=password
>>>>>>>>>>>>>>>> url=http://10.147.28.60 create StoragePool zoneid=
>>>>>>>>>>>>>>>> clusterid= name=NFS1
>>>>>>>>>>>>>>>> url=nfs://10.147.28.7/export/home/rohit/primary
>>>>>>>>>>>>>>>> add SecondaryStorage zoneId=
>>>>>>>>>>>>>>>> url=nfs://10.147.28.7/export/home/rohit/secondary
>>>>>>>>>>>>>>>> update Zone allocationstate=Enabled id=
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> After some stabilisation, I can put it on pypi so any user
>>>>>>>>>>>>>>>> can just do pip
>>>>>>>>>>>>>>> install cloudmonkey to get the CLI.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Regards.
>>>>>>>>>>>>>>>> PS. Marvin the neglected robot and hipster cloudmonkey
>>>>>>>>>>>>>>>> should rule the world :D
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Rohit,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> This is really really cool.  It puts the "fun" in managing
>>>>>>>>>>>>>>> instances from a command line.  I've been testing it against
>>>>>>>>>>>>>>> a production CloudStack environment, and it's working pretty
>>>>> well.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If you don't mind, I might hack at the code a bit to fill in
>>>>>>>>>>>>>>> some gaps that I'm seeing.  First example is that it assumes
>>>>>>>>>>>>>>> http, which doesn't work in a public deployment where the
>>>>> endpoint is over https.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -chip
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Charles Moulliard
>>>> Apache Committer / Sr. Enterprise Architect (RedHat)
>>>> Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks,
>>> Dave.
>>
>>
>
>
> --
> Thanks,
> Dave.

Reply via email to