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? ;) 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.