Fantastic, thanks Rohit. I have saved a bunch of time already using CloudMonkey!
On Fri, Nov 16, 2012 at 5:17 PM, Rohit Yadav <rohit.ya...@citrix.com> wrote: > 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. > > -- Thanks, Dave.