On Fri, May 10, 2013 at 2:24 AM, Paul Fremantle <[email protected]> wrote:

> +1. But let's do that beyond S2 release.
>
> Paul
>
>
> On 9 May 2013 21:51, 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.
>>
> +1

As Paul said, we will improve the existing tool to a generic CLI tooling
framework after Stratos 2 release is done.

>
>> 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
>>
>>
>
>
> --
> Paul Fremantle
> CTO and Co-Founder, WSO2
> OASIS WS-RX TC Co-chair, VP, Apache Synapse
>
> UK: +44 207 096 0336
> US: +1 646 595 7614
>
> blog: http://pzf.fremantle.org
> twitter.com/pzfreo
> [email protected]
>
> wso2.com Lean Enterprise Middleware
>
> Disclaimer: This communication may contain privileged or other
> confidential information and is intended exclusively for the addressee/s.
> If you are not the intended recipient/s, or believe that you may have
> received this communication in error, please reply to the sender indicating
> that fact and delete the copy you received and in addition, you should not
> print, copy, retransmit, disseminate, or otherwise use the information
> contained in this communication. Internet communications cannot be
> guaranteed to be timely, secure, error or virus-free. The sender does not
> accept liability for any errors or omissions.
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


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

Reply via email to