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>
>>> <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-cloudstack.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
> 

Reply via email to