Great progress guys!

On Wed, Jun 11, 2014 at 3:57 PM, Roshan Wijesena <ros...@wso2.com> wrote:

> Hi all,
>
> We have been working on Stratos manager - Puppet master communication
>  REST API. Please find the progress update of it as below.
>
> *Security*
> We have used  HTTP basic auth[1] security mode over SSL so far, and in the
>  future we can  extend this in to a further advance mode like OAuth  [2 ].
>
> *EndPoints*
> So far we have following endpoints.
>
> 1  /login - this will handle auth logging.
>
> 2  /getModuleList - this endpoint will  return current  installed modules
> in puppet master.
>
>    sample response json ["java", "php"]
>
> 3  /installPuppetModule/url/{cartridge URL}/name/{{Module name}} - we have
> to pass cartridge url and module name,then this endpoint will take care of
> module installation on puppet master.
>
> 4  /getModuleInstallationProgress/name/{{Module name}}
>

Are these the REST resource paths? If so, it is not correct to have these
verbs (getModuleInstallationProgress) in it. We should design the paths
properly. For an example, IMO, this should be something like; POST
/module/status/{name}

Also please send the permission model. I guess, you need something like
table here, with all the operations :-)



> - using this endpoint we can see the actual progress of a installation
> process.
>
>     sample response json
>     [
>          "Downloading: AAM1sXjadDd1s42Ez83xcC8mQSd9U7IFrfdIRl-JqWp07g?dl=1
> Bytes: 1255
>          ",
>          "1255  [100.00%]
>          ",
>          "File Download complete
>          "
>     ]
>
> 5  /getModuleStatus/name/{{module name}} - this endpoint will return
> "install" , "inprogress" ,"error" responses to the client according to
> client request. Those status will be saved in 3 XML  files  at the moment.
>
> 6  /getAllModulesStatus-  This will return all modules with their
> corresponding status value.
>
>     sample response json {"inprogress": ["ruby"], "error": ["wordpress"],
> "installed": ["java", "php"]}
>
> We will provide comprehensive  documentation on this soon as we are
> working on it.
>
> Git hub - https://github.com/stratos-cartridge-store/python_restapi
>
> [1] http://en.wikipedia.org/wiki/Basic_access_authentication
> [2] http://en.wikipedia.org/wiki/OAuth
>
> Thanks.
>
>
>
> On Mon, Jun 2, 2014 at 4:15 AM, Lakmal Warusawithana <lak...@wso2.com>
> wrote:
>
>> AFAIU, puppet api's only support for install modules from puppet lab
>> hence we can't used it. If we can point puppet module from our store and
>> install from puppet api's we should used it from our generic client.
>>
>>
>> On Mon, Jun 2, 2014 at 7:34 AM, Nirmal Fernando <nirmal070...@gmail.com>
>> wrote:
>>
>>> Well, have a look at this;
>>> http://docs.puppetlabs.com/puppet/latest/reference/modules_installing.html
>>>
>>> Isn't this the same you are referring to?
>>>
>>>
>>> On Mon, Jun 2, 2014 at 7:28 AM, Dakshika Jayathilaka <daksh...@wso2.com>
>>> wrote:
>>>
>>>> Yes we already checked that, currently you can installed modules which
>>>> reside on puppetlabs repo. but PMT[1] doesn't contain any exposed API for
>>>> that.
>>>>
>>>>
>>>> [1]
>>>> http://puppetlabs.com/blog/module-of-the-week-puppet-module-tool-part-1
>>>>
>>>> *Dakshika Jayathilaka*
>>>> Software Engineer
>>>> WSO2, Inc.
>>>> lean.enterprise.middleware
>>>> 0771100911
>>>>
>>>>
>>>> On Mon, Jun 2, 2014 at 1:10 AM, Nirmal Fernando <nirmal070...@gmail.com
>>>> > wrote:
>>>>
>>>>> Puppet Lab's modules can be installed using puppet CLI. There should
>>>>> be a REST API for that, I believe.
>>>>>
>>>>>
>>>>> On Sun, Jun 1, 2014 at 6:36 PM, Dakshika Jayathilaka <
>>>>> daksh...@wso2.com> wrote:
>>>>>
>>>>>> Hi Pradeep,
>>>>>>
>>>>>> AFAIK puppetlabs REST API currently doesn't support for module
>>>>>> deployment. Unfortunately its limited.  Also we are trying to implement
>>>>>> generic agent which can be further improve to support for Docker and Chef
>>>>>> as wel.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>> *Dakshika Jayathilaka*
>>>>>>  Software Engineer
>>>>>> WSO2, Inc.
>>>>>> lean.enterprise.middleware
>>>>>> 0771100911
>>>>>>
>>>>>>
>>>>>> On Sun, Jun 1, 2014 at 6:02 PM, Pradeep Fernando <pradee...@gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Hi Roshan,
>>>>>>>
>>>>>>> There seems to be a REST API exposed by puppet master.
>>>>>>>
>>>>>>> http://docs.puppetlabs.com/guides/rest_api.html
>>>>>>>
>>>>>>> Can't we use that ? Is it a limited API ?
>>>>>>>
>>>>>>> thanks,
>>>>>>> --Pradeep
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Jun 1, 2014 at 3:07 PM, Roshan Wijesena <ros...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> We are going to do  REST communication between Puppet Master's node
>>>>>>>> and Stratos  Manager's node as described below.
>>>>>>>>
>>>>>>>> We will use webpy[1] simple python opensource framework in order to
>>>>>>>> build our REST API to communicate with Puppet master's node. In order 
>>>>>>>> to
>>>>>>>> achieve this we may follow below steps.
>>>>>>>>
>>>>>>>> 1. Install Webpy framework + our python REST API code  on Puppet
>>>>>>>> Master's Computer. Initially we  have decided  to stay on Webpy's 
>>>>>>>> built in
>>>>>>>> web server,but when we are getting more hits on our store we might 
>>>>>>>> need to
>>>>>>>> install webpy on Light-httpd server or HTTPD server in order to handle 
>>>>>>>> more
>>>>>>>> requests as they recommend it.
>>>>>>>>
>>>>>>>> 2. Indeed this service must be very secured as we are executing
>>>>>>>> some root command using our API . For an example we need to extract 
>>>>>>>> puppet
>>>>>>>> modules to puppet master's /etc/puppet/ folder!!. So our security plan 
>>>>>>>> is
>>>>>>>> to use SSL with built in cherrypy server [2] and secure our API using a
>>>>>>>> security token.
>>>>>>>>
>>>>>>>> 3. At last but not least we may create automation scripts in order
>>>>>>>> to automate above steps.
>>>>>>>>
>>>>>>>> Here below I ll list some sample REST calls that we are going to
>>>>>>>> shoot!
>>>>>>>>
>>>>>>>> List Current available puppet Modules - GET  
>>>>>>>> https://{{Server}}/listmodules.
>>>>>>>> (out put should be a json)
>>>>>>>>
>>>>>>>> Install a module - GET https://{{Server}}/install/{{Module-name}}.
>>>>>>>>
>>>>>>>> So this is our current plan for the integration and this is  open
>>>>>>>> to discuss !!
>>>>>>>>
>>>>>>>> [1] http://webpy.org/
>>>>>>>>
>>>>>>>> [2] http://webpy.org/cookbook/ssl
>>>>>>>>
>>>>>>>> Thanks very much.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Best Regards,
>>>>>>>>  Senior Software Engineer-WSO2 Inc.
>>>>>>>> Roshan Wijesena
>>>>>>>> Mobile: *+94752126789*
>>>>>>>> Email: ros...@wso2.com
>>>>>>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>*
>>>>>>>> lean.enterprise.middleware.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Pradeep Fernando.
>>>>>>> http://pradeepfernando.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best Regards,
>>>>> Nirmal
>>>>>
>>>>> Nirmal Fernando.
>>>>> PPMC Member & Committer of Apache Stratos,
>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>
>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Lakmal Warusawithana
>> Vice President, Apache Stratos
>> Director - Cloud Architecture; WSO2 Inc.
>> Mobile : +94714289692
>> Blog : http://lakmalsview.blogspot.com/
>>
>>
>
>
> --
> Best Regards,
>  Senior Software Engineer-WSO2 Inc.
> Roshan Wijesena
> Mobile: *+94752126789*
> Email: ros...@wso2.com
> *WSO2, Inc. :** wso2.com <http://wso2.com/>*
> lean.enterprise.middleware.
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to