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.