Hi Milindu,

All the requests sent to Stratos needs an username and a password for
> authentications, right? I was thinking if I can create a python decorator (
> maybe as @auth ) to check if the username  and password  is known before
> sending the request.


If we use a decorator, for each api call username and password will be
checked. I think it is fine when CLI is running in  non-interactive mode.
But in interactive mode we can check username and password when starting
CLI and store those values. WDYT ?

I have to add a POM to the Python CLI component. What I should include in
> it?


You have to link CLI with Startos as a child component.  You can have look
at python agent pom.xml [1].

[1]
https://github.com/apache/stratos/blob/master/components/org.apache.stratos.python.cartridge.agent/pom.xml

On Thu, May 28, 2015 at 11:31 AM, Milindu Sanoj Kumarage <
agentmili...@gmail.com> wrote:

> Hi,
>
> I came up with this structure after studying the needs.
>
> Main.py, CLI.py and Stratos.py would be same as of our previous
> discussions.
>
> Configs.py would hold configurations, etc. It would be like
> the CliConstants.java and  holds the default Stratos directory, Stratos
> prompt string, etc. And it is reading the environment variables, like
> username, password, etc.
>
> Logging.py would handle everything about logging. Setting the logging
> file, creating the logging file's directory if not exists, and setting
> logging level etc.
>
> Utils.py would hold the utility methods. Currently it holds codes for
> pretty printing of tables and trees.
>
> [image: Inline image 1]
>
>
> I pushed my commits to my fork. (
> https://github.com/agentmilindu/stratos/tree/python-cli/components/org.apache.stratos.python.cli/src/main/python/cli
>  )
>
> I have some questions,
>
> All the requests sent to Stratos needs an username and a password for
> authentications, right? I was thinking if I can create a python decorator (
> maybe as @auth ) to check if the username  and password  is known before
> sending the request.
>
> @auth
> def do_deploy_service(self, line , opts=None):
>   #codes of the deploy_service def
>
> where @auth checks either,
> if the opts list contains username and password,
> else if environment variables are set for username and password.
>
> Reason is, if we have to do a change in the username and password
> checking logic, then we have to change only one place.
> What you think about this approach?
> Is there any way keeping a session like, if one successfully authenticated
> request got a response, the subsequent requests need not to have to reenter
> the username/password ?
>
> I have to add a POM to the Python CLI component. What I should include in
> it?
>
> I think our foundation parts are done now. We have to start coding the
> each actions.
> I will send my first pull request once we are done with the above :)
>
>
> On Sun, May 10, 2015 at 10:32 PM, Chamila De Alwis <chami...@wso2.com>
> wrote:
>
>> Hi Milindu,
>>
>> We should always log enough information to a log file. In fact,*
>> .stratos* folder in the Java CLI is used to store the *stratos-cli.log*
>> file. INFO level logs should be used to log important messages, while DEBUG
>> level should be verbose enough to pinpoint an error.
>>
>> The other use of the* .stratos* folder is to store the command history.
>> You can verify this by checking the files in ~/.stratos folder.
>>
>>
>>
>>
>> Regards,
>> Chamila de Alwis
>> Software Engineer | WSO2 | +94772207163
>> Blog: code.chamiladealwis.com
>>
>>
>>
>> On Sun, May 10, 2015 at 9:26 PM, Milindu Sanoj Kumarage <
>> agentmili...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Thanks Chamila, I will update the setup.py with these info.
>>> I too taught of using 'stratos-cli' first, but doubted you wouldn't
>>> like that because the user has to type this when working with Single
>>> Command Line Mode. But if you think that would not be a problem, then
>>> let's change that as 'stratos-cli' :)
>>>
>>> Thanks Imesh, I will update the name as StratosApiClient then.
>>>
>>> I have few more questions,
>>>
>>> 1. We have to do logging, right? Log important events always ( to a
>>> file? ) or log only in debug mode ( directly to the cmd? )?
>>> 2. I saw Java CLI  creating a  dir named '.stratos', for what that dir
>>> is used to?
>>>
>>>
>>>
>>> On Sat, May 9, 2015 at 10:16 PM, Imesh Gunaratne <im...@apache.org>
>>> wrote:
>>>
>>>> Hi Milindu,
>>>>
>>>> On Sat, May 9, 2015 at 9:37 PM, Milindu Sanoj Kumarage <
>>>> agentmili...@gmail.com> wrote:
>>>>>
>>>>>
>>>>> 1. Main.py - This contains the entry point, it does the initializing
>>>>> parts, creates a CLI instance and runs the loop and other stuffs.
>>>>>
>>>> +1
>>>>
>>>>>
>>>>> 2. CLI.py - This is the actual CLI that extends Cmd2. This contains
>>>>> the command to def mappings, argument and flag handling, printing outputs,
>>>>> etc.
>>>>>
>>>> +1
>>>>
>>>>>
>>>>> 3. Stratos.py - This contains the actual business logic, that is,
>>>>> which REST end point to call, and do what with the response, what to show,
>>>>> what not, etc. At the end, this would be like a Python API for Stratos in 
>>>>> a
>>>>> way.
>>>>>
>>>>> IMO Stratos is too generic for a class name. Shall we rename this to
>>>> something like StratosApiClient?
>>>>
>>>> Thanks
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>
>


-- 
*Thanks and Regards,*
Anuruddha Lanka Liyanarachchi
Software Engineer - WSO2
Mobile : +94 (0) 712762611
Tel      : +94 112 145 345
a <thili...@wso2.com>nurudd...@wso2.com

Reply via email to