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.

Reply via email to