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<mailto: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<mailto: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