Hi, Great to see the project is progressing!
What is the Jira to track this? Thanks. On Tue, Feb 24, 2015 at 12:33 PM, Akila Ravihansa Perera <raviha...@wso2.com > wrote: > Hi Milindu, > > Welcome to Stratos! > > It's great to see that you've already started working on this. Regarding > your suggestion to use cmd2, I think it's better if you can do some > research on alternative libraries and list down pros and cons. This is to > make sure that we're making the best decision possible and not missing out > on anything much better. > > And for the support for "-" character. Perhaps I mis-understood the > problem but I don't see how this could affect passing an alias value with a > hyphen character. Is this character limitation only for CLI commands OR for > any argument that is passed? > > Having to use "create tenant <tenant param>" OR "create_tenant <tenant > param>" is okay, IMO. > > Thanks. > > On Mon, Feb 23, 2015 at 10:52 PM, Imesh Gunaratne <im...@apache.org> > wrote: > >> Hi Milindu, >> >> Good work on researching Python CLI frameworks. It would be great if you >> could provide a list of available options and reasons for your selection. >> >> Regarding the word separator issue, I agree with Martin. We might need to >> support "-". >> >> Thanks >> >> On Tue, Feb 24, 2015 at 2:30 AM, Martin Eppel (meppel) <mep...@cisco.com> >> wrote: >> >>> Hi Milindu, >>> >>> >>> >>> IMHO, not supporting “-“ could be an issue or at least very inconvenient >>> (not sure what the cli will cover), for example currently alias validation >>> (e.g. application alias) is set to exclude “_” but to allow “-“ (although I >>> am not entirely clear why we ?) >>> >>> >>> >>> I would argue for patterns consistency across all stratos (java and >>> python), WDYT ? >>> >>> >>> >>> Thanks >>> >>> >>> >>> Martin >>> >>> >>> >>> See ApplicationUtils.java: >>> >>> …. >>> >>> Pattern ALIAS_PATTERN = Pattern.compile("([a-z0-9]+([-][a-z0-9])*)+"); >>> >>> >>> >>> *From:* Milindu Sanoj Kumarage [mailto:agentmili...@gmail.com] >>> *Sent:* Monday, February 23, 2015 12:28 PM >>> *To:* dev@stratos.apache.org >>> *Subject:* Re: GSoC 2015 >>> >>> >>> >>> Hi, >>> >>> >>> >>> Thanks for the quick and detailed reply, I'm confident that I can work >>> on this. I'll start creating the project proposal. >>> >>> >>> >>> I have some questions, >>> >>> I considered several Python CLI frameworks and packages ( Click, Plac, >>> Cement, etc ) and found cmd2 package is more suitable for the need. >>> >>> It supports both Interactive mode and Single command line mode. Have >>> lot of features like auto-complete, history, executing shell commands while >>> in Interactive Mode, etc. Their coding styles are also very clean and easy >>> to understand. >>> >>> >>> >>> do_greet(self, arg): >>> >>> print("Hello ", arg) >>> >>> >>> >>> this would be, >>> >>> stratos>greet Milindu >>> >>> Hello Milindu >>> >>> >>> >>> And it supports Unix-style flags also. >>> >>> >>> >>> >>> >>> Only thing that is `-` can not be used. but `_` is possible. >>> >>> >>> >>> def do_create_tenant(self, arg): >>> >>> print("Created ") >>> >>> >>> >>> this could be invoked as either, >>> >>> >>> >>> stratos>create_tenant >>> >>> >>> >>> or >>> >>> >>> >>> stratos>create tenant >>> >>> >>> >>> Would this be a problem? ( have to accommodate workarounds to get `-` >>> into action if you really need them ) I think I can provide a basic >>> implementation if you are interested. >>> >>> >>> >>> Thank you >>> >>> >>> >>> >>> >>> On Mon, Feb 23, 2015 at 9:58 AM, Imesh Gunaratne <im...@apache.org> >>> wrote: >>> >>> Hi Milindu, >>> >>> >>> >>> It's nice to hear from you! Thanks for introducing yourself, it seems >>> like you have a good background for this project. >>> >>> >>> >>> On Mon, Feb 23, 2015 at 1:15 AM, Milindu Sanoj Kumarage < >>> agentmili...@gmail.com> wrote: >>> >>> >>> >>> 1. I'm thinking of using a Python CLI framework instead of writing >>> from the scratch, in order to increase the reliability and >>> maintainability. What's your idea on that? >>> >>> >>> >>> Yes definitely! Better to use a Python CLI framework rather than >>> writing it from scratch. >>> >>> >>> >>> 2. The final product would be a python script that we run like `$ >>> python stratos.py login` ( or with a wrapper for Linux and Windows >>> environments like `stratos-cli.sh` ) or python package submitted to Pip >>> that can be installed to a system as `$pip install stratos-cli` and >>> run as `$stratos-cli login`? >>> >>> >>> >>> Yes the final deliverable would be a Python based CLI for Stratos >>> which may include following: >>> >>> >>> >>> - Need to be implemented for Stratos 4.1.0 >>> >>> - Communicate with Stratos REST API via HTTPS >>> >>> - Authenticate users using Basic Auth/OAuth >>> >>> - Implement CLI commands for API methods >>> >>> - Each command should have standard CLI features (help, auto-complete, >>> etc) >>> >>> - CLI commands which receives data from the server needs to be properly >>> printed >>> >>> - There are two CLI commands which needs to print Tree structures >>> (Application definition and Application runtime) >>> >>> - Documentation for CLI in Stratos Wiki >>> >>> >>> >>> It would be great if you could go through the Stratos 4.1.0 API and >>> existing Java based CLI and prepare a project proposal. Once it is ready we >>> can review the plan and move forward. >>> >>> >>> >>> Thanks >>> >>> >>> >>> -- >>> >>> Imesh Gunaratne >>> >>> >>> >>> Technical Lead, WSO2 >>> >>> Committer & PMC Member, Apache Stratos >>> >>> >>> >> >> >> >> -- >> Imesh Gunaratne >> >> Technical Lead, WSO2 >> Committer & PMC Member, Apache Stratos >> > > > > -- > Akila Ravihansa Perera > Software Engineer, WSO2 > > Blog: http://ravihansa3000.blogspot.com > -- -- Lahiru Sandaruwan Committer and PMC member, Apache Stratos, Senior Software Engineer, WSO2 Inc., http://wso2.com lean.enterprise.middleware email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146