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.