incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rohit Yadav <rohit.ya...@citrix.com>
Subject Re: CLI for CloudStack: cloudmonkey
Date Thu, 15 Nov 2012 14:20:41 GMT

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.

Mime
View raw message