Hi Azeez, I had a chat with PrabathA sometime ago, and got to know that he wrote such a tool(for deployment of artifacts). Not sure where did it end up. May be we can use that as a starting point(of course after this S2 release as Pual mentioned).
Thanks. Thanks. On Thu, May 9, 2013 at 10:51 PM, Afkham Azeez <[email protected]> wrote: > It would be good if you could make this a generic CLI tooling framework > for Carbon. We need it not only in Stratos 2, but in many other areas. We > can provide CLI tooling to deploy artifacts into a server, for example. > > On Fri, May 10, 2013 at 1:23 AM, Isuru Perera <[email protected]> wrote: > >> Hi, >> >> For Stratos 2.0 release, we are planning to improve the existing CLI Tool >> [1]. >> >> We are planning to support following features in Stratos2 CLI Tool >> >> >> - Command history [2] >> - Auto-completion of commands >> - Character masking (for passwords) [3] >> >> >> For above features, we are planning to use jline2 library [4]. >> >> *Existing Design* >> >> Currently the CLI tool has two modes. (Stratos2 CLI source can be found >> at [5]) >> >> 1. Interactive Mode - In this mode, user is logged in by passing only >> username & password as arguments. >> >> $stratos <username> <password> >> After successful login, the user get a prompt as "stratos>" >> >> 2. Single Command Line Mode - In this mode, all the commands are passed >> as arguments including username and password >> >> $stratos <username> <password> list >> This will list all the cartridges. >> >> AFAIK, we can support above features only when the CLI tool is in prompt >> mode. In order to provide auto-complete features at the terminal, we need >> to use OS specific functions, for example /etc/bash_completion [6] >> >> *Drawbacks of existing Beta 2 CLI Tool & Possible Solutions* >> >> 1. A drawback of existing design is that we have to login every time the >> stratos command is executed. >> >> Solution: Login only once. The back-end service is an admin service and >> we login as a tenant. I'm thinking of a way to save session in the file >> system. For example inside <user.home>/.stratos/ >> >> If we can save the session id, then we use the same for authenticate next >> requests. In this way, the user can use the CLI tool, until the session >> times out. >> >> Or else we can keep the username and password cached (encrypted form). In >> this way, user can keep using the tool without worrying about the session >> time out. >> >> Which is the better way? >> >> 2. Currently the password is entered in the command line itself >> >> Solution: With jline2, we can use masking for password input. >> >> 3. Command history not support. >> >> Solution: jline2 can provide command history. Additionally if we can >> login only once, user can execute commands directly in terminal and use the >> history available in the terminal environment. >> >> *New Design* >> >> I'm going to introduce following commands to the tool >> >> 1. $stratos setup >> This will prompt for Stratos Controller hostname & port. These values >> will be saved in <user.home>/.stratos/stratos.config >> >> 2. $stratos login >> This will have arguments for username and password. Password will be >> prompted with masked character. Authentication details will be saved in >> <user.home>/.stratos/ >> >> 3. $stratos logout >> Logout user. >> >> After successful login, user can go into interactive mode by just >> entering "stratos" or user can execute commands in single line. For example >> "stratos list", "stratos subscribe" etc. >> >> CLI Tool will also be improved to use a single '-' for short option names >> and '--' for longer option names [7]. >> >> WDYT? >> >> [1] https://wso2.org/jira/browse/SPI-234 >> [2] https://wso2.org/jira/browse/SPI-111 >> [3] https://wso2.org/jira/browse/SPI-241 >> [4] http://jline.github.io/jline2/ >> [5] >> https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/components/stratos/artifact-deployment-coordinator/org.wso2.carbon.adc.mgt.cli/2.1.1 >> [6] http://www.debian-administration.org/articles/316 >> [7] https://wso2.org/jira/browse/SPI-240 >> >> -- >> Isuru Perera >> Senior Software Engineer | WSO2, Inc. | http://wso2.com/ >> Lean . Enterprise . Middleware >> >> Twitter: http://twitter.com/chrishantha | LinkedIn: >> http://lk.linkedin.com/in/chrishantha/ >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > *Afkham Azeez* > Director of Architecture; WSO2, Inc.; http://wso2.com > Member; Apache Software Foundation; http://www.apache.org/ > * <http://www.apache.org/>** > email: **[email protected]* <[email protected]>* cell: +94 77 3320919 > blog: **http://blog.afkham.org* <http://blog.afkham.org>* > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> > * > linked-in: **http://lk.linkedin.com/in/afkhamazeez* > > * > * > *Lean . Enterprise . Middleware* > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- -- Lahiru Sandaruwan Software Engineer, Platform Technologies, WSO2 Inc., http://wso2.com lean.enterprise.middleware email: [email protected] cell: (+94) 773 325 954 blog: http://lahiruwrites.blogspot.com/ twitter: http://twitter.com/lahirus linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
