Hi Milindu, Yes you seems to be on track. Please use Kubernetes getting started guide here: https://gist.github.com/imesh/b8f81fac8de39183a504
Thanks On Mon, Mar 9, 2015 at 8:22 PM, Milindu Sanoj Kumarage < agentmili...@gmail.com> wrote: > Hi, > > I could fix that "-" problem, everything is now works exactly as Java CLI. > I think I can do a demo app with some functionality, then we can discuss > further, right? > > And I'm currently setting up the Stratos on my machine, it seems setting > up OpenStack ( DevStack ) is not easy, I found that Kubernetes Vagrant > Setup, trying it, and seems it is working fine. Going on that path would > not be a problem, right? > > > > On Fri, Mar 6, 2015 at 9:37 AM, Imesh Gunaratne <im...@apache.org> wrote: > >> Great! Nice to hear that. We might not need to use "_", it would be >> better if auto completion could also use commands with "-" pattern. >> >> At the moment we do not have much client side validations, most of them >> are done in server. You could refer [1] for this. >> >> [1] https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+CLI+Guide >> >> On Thu, Mar 5, 2015 at 6:23 PM, Milindu Sanoj Kumarage < >> agentmili...@gmail.com> wrote: >> >>> Hi, >>> >>> With this workaround ( actually it is not a workaround, Cmd2 really has >>> aliases feature! but in different name ) we can have both "list-tenants" >>> and "list_tenants" working without a problem. Therefor the Single >>> command line mode would work exactly like the Java CLI, and also the >>> Interactive mode. But in Interactive mode, auto-complete still suggests " >>> list_tenants" instead of "list-tenants". we can change that too if you >>> really need, but needs some alternations that may not be very beautiful, >>> but not ugly too. >>> >>> one more question, we have to validate the parameters before sending to >>> the REST API, right? Do we have any document for these validations, or is >>> it the codes I have to follow? >>> >>> >>> >>> On Thu, Mar 5, 2015 at 3:50 AM, Imesh Gunaratne <im...@apache.org> >>> wrote: >>> >>>> Hi Milindu, >>>> >>>> Great work! We will have a look at this and get back to you. In the >>>> mean time can you provide some details on this sample? >>>> >>>> Thanks >>>> >>>> On Thu, Mar 5, 2015 at 12:12 AM, Milindu Sanoj Kumarage < >>>> agentmili...@gmail.com> wrote: >>>> >>>>> Hi, >>>>> I spend last few days investigating a workarounds to solve that '-' >>>>> problem :) It seems it is possible. >>>>> >>>>> BTW, I checked the possibility of uploading the final product to Pip >>>>> where anyone can install Stratos CLI using Pip like >>>>> $Pip install stratos >>>>> >>>>> and then run like >>>>> >>>>> $ stratos -u abcdef >>>>> >>>>> What's your idea on that? ( We can also provide python script with a >>>>> wrapper for Windows and Linux ) >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Feb 27, 2015 at 9:45 PM, Milindu Sanoj Kumarage < >>>>> agentmili...@gmail.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> the reason is Cmd2 ( and most of the python CLI frameworks ) uses >>>>>> function mapping to CLI commands, that is, >>>>>> >>>>>> // stratos>greet >>>>>> def do_greet(): >>>>>> print("hi") >>>>>> >>>>>> will become the 'greet' command. >>>>>> >>>>>> But if we need, >>>>>> >>>>>> 'list-tenants' we have to code it as >>>>>> >>>>>> def do_list-tenants: >>>>>> #codes of list tenant command >>>>>> >>>>>> But using '-' in names of functions ( def*enitions* ) in Python is >>>>>> not allowed. >>>>>> What shall we do? I'm okay even to write it from the scratch. >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Feb 27, 2015 at 9:29 PM, Imesh Gunaratne <im...@apache.org> >>>>>> wrote: >>>>>> >>>>>>> Hi Milindu, >>>>>>> >>>>>>> Is there any way of using "-" in the CLI commands. I did not get why >>>>>>> a CLI framework would block "-" character. >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> On Fri, Feb 27, 2015 at 2:49 PM, Milindu Sanoj Kumarage < >>>>>>> agentmili...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Then shall we go with Cmd2 python package? Only change we have to >>>>>>>> do is call CLI commands with '_ ' instead '-', like 'list_tenants' >>>>>>>> instead >>>>>>>> of 'list-tenants'. >>>>>>>> >>>>>>>> And for HTTP request/response handling, we can use either Python's >>>>>>>> urllib3 or Requests, a wrapper around urllib3 which gives much simpler >>>>>>>> API >>>>>>>> that leads to cleaner codes. It's been praised in the community from >>>>>>>> the >>>>>>>> beginning. >>>>>>>> >>>>>>>> Licence: Apache2 >>>>>>>> >>>>>>>> http://docs.python-requests.org/en/latest/# >>>>>>>> >>>>>>>> On Wed, Feb 25, 2015 at 3:26 PM, Milindu Sanoj Kumarage < >>>>>>>> agentmili...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Here I have included the licences of each framework :) >>>>>>>>> >>>>>>>>> *Cement *(6/10) >>>>>>>>> A complex framework, every CLI commands is bound to a separate >>>>>>>>> Python class that acts like an controller, and each controller have >>>>>>>>> several >>>>>>>>> functions. But no 'Interactive Mode' support, just 'Single command >>>>>>>>> line >>>>>>>>> mode'. Supports having '-' in CLI Commands ( like 'create-tenant' ) >>>>>>>>> via aliases. But no much developments in Github repo recently. >>>>>>>>> >>>>>>>>> http://cement.readthedocs.org/ >>>>>>>>> >>>>>>>>> Licence : http://cement.readthedocs.org/en/latest/license/ >>>>>>>>> Redistribution and use in source and binary forms, with or without >>>>>>>>> modification, are permitted under given conditions. >>>>>>>>> >>>>>>>>> >>>>>>>>> *Click *(7/10) >>>>>>>>> Rich with features, uses Python Decorators to bind CLI commands to >>>>>>>>> functions. But no 'Interactive Mode' support, just 'Single command >>>>>>>>> line >>>>>>>>> mode'. >>>>>>>>> >>>>>>>>> http://click.pocoo.org/3/ >>>>>>>>> >>>>>>>>> Licence : http://click.pocoo.org/3/license/ >>>>>>>>> three-clause BSD License >>>>>>>>> >>>>>>>>> >>>>>>>>> *Plac *(4/10) >>>>>>>>> A scaled down version of Python argparse package. Uses set of if >>>>>>>>> else statements to process the commands. But no 'Interactive Mode' >>>>>>>>> support. >>>>>>>>> >>>>>>>>> http://plac.googlecode.com/hg/doc/plac.html >>>>>>>>> >>>>>>>>> Licence: http://plac.googlecode.com/hg/doc/plac.html >>>>>>>>> BSD license >>>>>>>>> >>>>>>>>> *Cliapp *(3/10) >>>>>>>>> No 'Interactive Mode' support. >>>>>>>>> >>>>>>>>> http://code.liw.fi/cliapp/docs/ >>>>>>>>> >>>>>>>>> Licence : https://github.com/rshk/CliApp/blob/master/LICENSE >>>>>>>>> Apache License >>>>>>>>> >>>>>>>>> >>>>>>>>> *pyCLI *(3/10) >>>>>>>>> No 'Interactive Mode' support. >>>>>>>>> >>>>>>>>> http://pythonhosted.org//pyCLI/ >>>>>>>>> >>>>>>>>> Licence: http://sourceforge.net/projects/pycli/ >>>>>>>>> GNU General Public License version 2.0 (GPLv2) >>>>>>>>> >>>>>>>>> >>>>>>>>> *Cliff *(9/10) >>>>>>>>> A framework for building command line programs by OpenStack. It >>>>>>>>> uses plugins to define sub-commands, output formatters, and other >>>>>>>>> extensions. >>>>>>>>> Supports 'Interactive Mode' using 'cmd2' and 'cmd' >>>>>>>>> >>>>>>>>> http://docs.openstack.org/developer/cliff/index.html >>>>>>>>> >>>>>>>>> Licence: https://launchpad.net/python-cliff >>>>>>>>> Apache Licence >>>>>>>>> >>>>>>>>> >>>>>>>>> *cmd *(8/10) >>>>>>>>> Python in built packages for 'Interactive Mode' applications. Maps >>>>>>>>> CLI commands to functions by function name, as def do_<whatever >>>>>>>>> the command name> ( eg: def do_command1 is for command1 ). >>>>>>>>> Support only arguments but no support for Unix-style flags. Have >>>>>>>>> features >>>>>>>>> like automatic command completion in 'Interactive Mode'. >>>>>>>>> >>>>>>>>> https://docs.python.org/2/library/cmd.html >>>>>>>>> >>>>>>>>> Licence: https://docs.python.org/2/license.html >>>>>>>>> GPL compatible >>>>>>>>> >>>>>>>>> >>>>>>>>> *cmd2 *(9/10) >>>>>>>>> Extends the Python Standard Library’s cmd package. Can handle >>>>>>>>> arguments and flags. Supports for Output Redirection and Piping ( As >>>>>>>>> in a >>>>>>>>> Unix shell ). Searchable command history ( bash-like history list >>>>>>>>> editing >>>>>>>>> ), can get last commands with arrow keys. Able to perform shell >>>>>>>>> commands >>>>>>>>> while in Interactive mode. ( eg: stratos>!ls or stratos>shell ls ) >>>>>>>>> output >>>>>>>>> can be colored. >>>>>>>>> >>>>>>>>> https://pythonhosted.org/cmd2 >>>>>>>>> >>>>>>>>> Licence: https://pypi.python.org/pypi/cmd2/0.6.8 >>>>>>>>> MIT License >>>>>>>>> >>>>>>>>> On Wed, Feb 25, 2015 at 10:29 AM, Chamila De Alwis < >>>>>>>>> chami...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> Great work Milindu. It would be better to add the licenses for >>>>>>>>>> each library too, in case any non-compatible or ambiguous ones might >>>>>>>>>> be >>>>>>>>>> there. >>>>>>>>>> >>>>>>>>>> IMO using a framework from the standard library would be better, >>>>>>>>>> since the pre-requisites will be minimal. >>>>>>>>>> On Feb 25, 2015 9:55 AM, "Milindu Sanoj Kumarage" < >>>>>>>>>> agentmili...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Here is the JIRA issue on this, >>>>>>>>>>> https://issues.apache.org/jira/browse/STRATOS-1187 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Here I have added some of the Python CLI frameworks I checked, I >>>>>>>>>>> have added a brief for each of them. I also have state a score out >>>>>>>>>>> of 10 to >>>>>>>>>>> indicate how best they matches for our need. ( But they are as of my >>>>>>>>>>> understanding! I may not be very correct in some cases. Because >>>>>>>>>>> some of >>>>>>>>>>> the ones I could write some codes and check, but for some I could >>>>>>>>>>> not, >>>>>>>>>>> manly because of errors ) >>>>>>>>>>> >>>>>>>>>>> *Cement *(6/10) >>>>>>>>>>> A complex framework, every CLI commands is bound to a separate >>>>>>>>>>> Python class that acts like an controller, and each controller have >>>>>>>>>>> several >>>>>>>>>>> functions. But no 'Interactive Mode' support, just 'Single command >>>>>>>>>>> line >>>>>>>>>>> mode'. Supports having '-' in CLI Commands ( like 'create-tenant' ) >>>>>>>>>>> via aliases. But no much developments in Github repo recently. >>>>>>>>>>> >>>>>>>>>>> http://cement.readthedocs.org/ >>>>>>>>>>> >>>>>>>>>>> *Click *(7/10) >>>>>>>>>>> Rich with features, uses Python Decorators to bind CLI commands >>>>>>>>>>> to functions. But no 'Interactive Mode' support, just 'Single >>>>>>>>>>> command line >>>>>>>>>>> mode'. >>>>>>>>>>> >>>>>>>>>>> http://click.pocoo.org/3/ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Plac *(4/10) >>>>>>>>>>> A scaled down version of Python argparse package. Uses set of >>>>>>>>>>> if else statements to process the commands. But no 'Interactive >>>>>>>>>>> Mode' >>>>>>>>>>> support. >>>>>>>>>>> >>>>>>>>>>> http://plac.googlecode.com/hg/doc/plac.html >>>>>>>>>>> >>>>>>>>>>> *Cliapp *(3/10) >>>>>>>>>>> No 'Interactive Mode' support. >>>>>>>>>>> >>>>>>>>>>> http://code.liw.fi/cliapp/docs/ >>>>>>>>>>> >>>>>>>>>>> *pyCLI *(3/10) >>>>>>>>>>> No 'Interactive Mode' support. >>>>>>>>>>> >>>>>>>>>>> http://pythonhosted.org//pyCLI/ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Cliff *(9/10) >>>>>>>>>>> A framework for building command line programs by OpenStack. It >>>>>>>>>>> uses plugins to define sub-commands, output formatters, and other >>>>>>>>>>> extensions. >>>>>>>>>>> Supports 'Interactive Mode' using 'cmd2' and 'cmd' >>>>>>>>>>> >>>>>>>>>>> http://docs.openstack.org/developer/cliff/index.html >>>>>>>>>>> >>>>>>>>>>> *cmd *(8/10) >>>>>>>>>>> Python in built packages for 'Interactive Mode' applications. >>>>>>>>>>> Maps CLI commands to functions by function name, as def >>>>>>>>>>> do_<whatever the command name> ( eg: def do_command1 is for >>>>>>>>>>> command1 ). Support only arguments but no support for Unix-style >>>>>>>>>>> flags. >>>>>>>>>>> Have features like automatic command completion in 'Interactive >>>>>>>>>>> Mode'. >>>>>>>>>>> >>>>>>>>>>> https://docs.python.org/2/library/cmd.html >>>>>>>>>>> >>>>>>>>>>> *cmd2 *(9/10) >>>>>>>>>>> Extends the Python Standard Library’s cmd package. Can handle >>>>>>>>>>> arguments and flags. Supports for Output Redirection and Piping ( >>>>>>>>>>> As in a >>>>>>>>>>> Unix shell ). Searchable command history ( bash-like history list >>>>>>>>>>> editing >>>>>>>>>>> ), can get last commands with arrow keys. Able to perform shell >>>>>>>>>>> commands >>>>>>>>>>> while in Interactive mode. ( eg: stratos>!ls or stratos>shell ls ) >>>>>>>>>>> output >>>>>>>>>>> can be colored. >>>>>>>>>>> >>>>>>>>>>> https://pythonhosted.org/cmd2 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Imesh Gunaratne >>>>>>> >>>>>>> Technical Lead, WSO2 >>>>>>> Committer & PMC Member, Apache Stratos >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Imesh Gunaratne >>>> >>>> Technical Lead, WSO2 >>>> Committer & PMC Member, Apache Stratos >>>> >>> >>> >> >> >> -- >> Imesh Gunaratne >> >> Technical Lead, WSO2 >> Committer & PMC Member, Apache Stratos >> > > -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos