incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Cahill <dcah...@midokura.jp>
Subject Re: CLI for CloudStack: cloudmonkey
Date Fri, 16 Nov 2012 07:49:58 GMT
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.yadav@citrix.com>wrote:

>
> On 15-Nov-2012, at 3:26 PM, Dave Cahill <dcahill@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.yadav@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 [ch007m@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 <imusayev@webmd.net>
> wrote:
> >>
> >>> I guess mine got wiped somehow...
> >>>
> >>> -----Original Message-----
> >>> From: Musayev, Ilya [mailto:imusayev@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:runseb@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.Kavala@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" <runseb@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 <runseb@gmail.com>
> >>> wrote:
> >>>>>
> >>>>>>
> >>>>>> On Nov 8, 2012, at 3:28 PM, Rohit Yadav <rohit.yadav@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 [runseb@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.yadav@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 [imusayev@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.yadav@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.su@citrix.com>
> >> wrote:
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> -----Original Message-----
> >>>>>>>>>> From: Rohit Yadav [mailto:rohit.yadav@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.su@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:shadowsor@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.su@citrix.com
> >>>
> >>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>> -----Original Message-----
> >>>>>>>>>>>>> From: Rohit Yadav [mailto:rohit.yadav@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.childers@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.yadav@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.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message