Bug 681969

Summary: [RFE] Support Rest API for bkr.client.commands
Product: [Retired] Beaker Reporter: Bill Peck <bpeck>
Component: web UIAssignee: Raymond Mancy <rmancy>
Status: CLOSED WONTFIX QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 0.7CC: bpeck, dcallagh, ebaak, mcsontos, rmancy, stl
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-09-26 00:33:08 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 681964    

Description Bill Peck 2011-03-03 18:21:03 UTC
Description of problem:
Currently we use kobo for 99% of command line communication to the Scheduler,  This bug is to investigate if moving to Rest(JSON) interface would be faster and simpler.

Currently Every method has to be duplicated in TG to support xmlrpc.  Rest(Json) support is built into TG and would not require separate methods.

Could kobo be extended to support Rest(Json) as well as xmlrpc?

Comment 1 Raymond Mancy 2011-03-17 22:52:27 UTC
(In reply to comment #0)
> Description of problem:
> Currently we use kobo for 99% of command line communication to the Scheduler, 
> This bug is to investigate if moving to Rest(JSON) interface would be faster
> and simpler.
> 
> Currently Every method has to be duplicated in TG to support xmlrpc. 

If it has to be duplicated it's possibly because we aren't doing it right in the first place.
i.e we should have methods that just return the data needed, and the controllers can dress the data as they like.

> Rest(Json) support is built into TG and would not require separate methods.

I'm not too clear on this. We would still need to structure our controllers and methods properly to support REST. And yes, TG can expose the methods as JSON for us.

> 
> Could kobo be extended to support Rest(Json) as well as xmlrpc?

Comment 2 Bill Peck 2011-03-18 01:49:18 UTC
(In reply to comment #1)
> (In reply to comment #0)
> > Description of problem:
> > Currently we use kobo for 99% of command line communication to the Scheduler, 
> > This bug is to investigate if moving to Rest(JSON) interface would be faster
> > and simpler.
> > 
> > Currently Every method has to be duplicated in TG to support xmlrpc. 
> 
> If it has to be duplicated it's possibly because we aren't doing it right in
> the first place.
> i.e we should have methods that just return the data needed, and the
> controllers can dress the data as they like.
> 
> > Rest(Json) support is built into TG and would not require separate methods.
> 
> I'm not too clear on this. We would still need to structure our controllers and
> methods properly to support REST. And yes, TG can expose the methods as JSON
> for us.

I could be wrong but I thought it was as simple as adding 

@expose(“json”)

to any of the existing templates.

> 
> > 
> > Could kobo be extended to support Rest(Json) as well as xmlrpc?

Comment 3 Raymond Mancy 2011-03-18 02:29:49 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > (In reply to comment #0)
> > > Description of problem:
> > > Currently we use kobo for 99% of command line communication to the Scheduler, 
> > > This bug is to investigate if moving to Rest(JSON) interface would be faster
> > > and simpler.
> > > 
> > > Currently Every method has to be duplicated in TG to support xmlrpc. 
> > 
> > If it has to be duplicated it's possibly because we aren't doing it right in
> > the first place.
> > i.e we should have methods that just return the data needed, and the
> > controllers can dress the data as they like.
> > 
> > > Rest(Json) support is built into TG and would not require separate methods.
> > 
> > I'm not too clear on this. We would still need to structure our controllers and
> > methods properly to support REST. And yes, TG can expose the methods as JSON
> > for us.
> 
> I could be wrong but I thought it was as simple as adding 
> 
> @expose(“json”)
> 

I think that's right, except you can only (and you would only want to) serialize a restricted set of data types. So you couldn't @expose("json")  bkr.server.model:Root.new()

> to any of the existing templates.
> 
> > 
> > > 
> > > Could kobo be extended to support Rest(Json) as well as xmlrpc?

Comment 4 Raymond Mancy 2012-09-26 00:33:08 UTC
AFAIK we no longer care about this.