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