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, 08 Nov 2012 19:11:01 GMT
Not sure what can be the issue if b key is accepted, can you check the values in ~/.cloudmonkey_config
against the actual apikey and help debug?
May be try regenerating new keys, as far as parsing is concerned anything after set <cmd><space>
is set to the key.

Regards.

________________________________________
From: Sebastien Goasguen [runseb@gmail.com]
Sent: Thursday, November 08, 2012 10:00 PM
To: cloudstack-dev@incubator.apache.org
Subject: Re: CLI for CloudStack: cloudmonkey

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-DRP3an1pqL6TutyUCzjRB9UNrBybVr3kcZ6Q

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-DRP3an1pqL6TutyUCzjRB9UNrByVr3kcZ6Q

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-python-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>:<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.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-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
>>>
>>
>

Mime
View raw message