I've just installed and have it running :) awesome Not a big deal by any means, I have this weird character in front of cloudmonkey prompt, looks like a square with 6 digits - is it by design or some encoding gone wrong?
Thanks ilya -----Original Message----- From: Rohit Yadav [mailto:rohit.ya...@citrix.com] Sent: Thursday, November 08, 2012 3:45 PM To: cloudstack-dev@incubator.apache.org Subject: RE: CLI for CloudStack: cloudmonkey Yes, easy_install will work too using sudo easy_install cloudmonkey. Or, using pip: http://www.pip-installer.org/en/latest/installing.html#using-the-installer Python 2.5+ should work, if not please report any issues you face with the cli. Regards. ________________________________________ From: Musayev, Ilya [imusa...@webmd.net] Sent: Friday, November 09, 2012 1:25 AM To: cloudstack-dev@incubator.apache.org Subject: RE: CLI for CloudStack: cloudmonkey Never mind, I also have easy_install, I'll try that route... Thanks -----Original Message----- From: Musayev, Ilya [mailto:imusa...@webmd.net] Sent: Thursday, November 08, 2012 2:53 PM To: cloudstack-dev@incubator.apache.org Subject: RE: CLI for CloudStack: cloudmonkey So pip comes with python 2.7 which is not available by default on CentOS 6.3 Any other method I could use, other than installing python 2.7? Thanks ilya -----Original Message----- From: Rohit Yadav [mailto:rohit.ya...@citrix.com] Sent: Thursday, November 08, 2012 2:14 PM To: cloudstack-dev@incubator.apache.org Subject: RE: CLI for CloudStack: cloudmonkey 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-DRP3an1pqL6TutyUCzjR > B9UNrBybVr3kcZ6Q > > 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-DRP3an1pqL6TutyUCzjRB > 9UNrByVr3kcZ6Q > > 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-pyth >>> on-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>:<params >>>>>> name>> >>>>>> <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-cloudstac >>>>>>>>>> k.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 >