On Fri, May 10, 2013 at 10:37 AM, Afkham Azeez <az...@wso2.com> wrote:

>
>
> On Fri, May 10, 2013 at 2:24 AM, Paul Fremantle <p...@wso2.com> wrote:
>
>> +1. But let's do that beyond S2 release.
>>
>
> I agree. What I wanted to say is, while developing this CLI tool, if you
> use proper abstractions from the outset, so  that it is not tightly coupled
> to Stratos 2, we will require less effort when making it into a generic
> tool.
>

IsuruP brought up the concept of programming to the interface on a
different thread sometime back. So, we could follow the same here to make
life easier in the future.


>
>> Paul
>>
>>
>> On 9 May 2013 21:51, Afkham Azeez <az...@wso2.com> 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 <isu...@wso2.com> 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
>>>> Architecture@wso2.org
>>>> 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: **az...@wso2.com* <az...@wso2.com>* 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
>>> Architecture@wso2.org
>>> 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
>> p...@wso2.com
>>
>> 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
>> Architecture@wso2.org
>> 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: **az...@wso2.com* <az...@wso2.com>* 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*
>



-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>**
email: **az...@wso2.com* <az...@wso2.com>* 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
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to