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.