Bug 406131

Summary: 3.3: XMLRPC compatibility with current API.
Product: [Community] Bugzilla Reporter: David Lawrence <dkl>
Component: Bugzilla GeneralAssignee: Noura El hawary <nelhawar>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: high    
Version: 3.2   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-02-05 23:22:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 426099, 426182, 426184, 427882, 427883, 427884, 427885, 427889, 427890, 427891, 427892, 427893, 427894, 427895, 427896, 427897, 427898, 427899, 427900, 427901, 427902, 427903, 427904, 427905, 427906, 427907, 427908, 427909, 427910, 427911, 427912, 427913, 427914, 427915, 427916, 427917, 427918, 427919, 427920, 427921, 427922, 427923, 427924, 427925, 427926, 427927, 427928, 427929, 427930, 427931, 427932, 427933, 427935, 427936, 427937, 427938, 427939, 427940, 428498, 433745, 434941    
Bug Blocks: 427053    

Description David Lawrence 2007-11-30 16:57:57 UTC
Description:
Red Hat's Bugzilla exports a XMLRPC interface for performing a variety of Bugzilla functions.

Function Requirements:
Mostly self contained on backend in xmlrpc.cgi, Bugzilla/RPC.pm and Bugzilla/RPC/*.pm.

Comment 1 Noura El hawary 2007-12-18 15:40:06 UTC
This bug is large task and will be broken into little tasks :

1- first task: update Bugzilla/RPC/Bug.pm to be compatible with upstream
WebServices/Bug.pm ,,
This will include adding new xmlrpc function from upstream get_bugs() as
currently we only have xmlrpc functions that returns one bug. also we are going
to rework Bugzilla/RPC/Bug.pm by replacing all the update/change bug functions
with single function that can update any field for us, so it would match with
what can be done in the web UI (bug 426099)

Comment 2 Noura El hawary 2007-12-19 01:50:02 UTC
2- Second subtask: As part of making Our XMLRPC API compatible with the upstream
API ,, we will update Bugzilla/RPC/User.pm to include all the functions in the
upstream WebService/User.pm and add our additional ones this will require moving
some functions from Bugzilla/RPC/Admin.pm to Bugzilla/RPC/User.pm "addUser and
name it create" . 

Also We will add new module Bugzilla/RPC/Admin.pm which doesn't exist in the
Upstream bugzilla.

Comment 3 Noura El hawary 2007-12-19 02:45:38 UTC
3- Third subtask: Currently we have module Bugzilla/RPC/Info.pm that has xmlrpc
functions to return information about components and products,, Upstream has only
/Bugzilla/WebService/Product.pm that basically can only Get a list of actual
products, based on list of ids which is a functionality we don't have, We need
to add this functionality from Upstream Product.pm to our Info.pm also possibly
contribute to the upstream our functions in Info.pm (Bug 426184)

Comment 4 Kevin Baker 2007-12-19 03:05:17 UTC
IMO integrating our RPC modules with upstream will be challenging. 

I think our current interface is the result of ad hoc development. Many of our 
routines could be compacted down into far fewer routines that are more 
generic.

Instead of simply adding in our RPC functions where the upstream is missing 
them we need to fully understand how the upstream is designing the interface. 
Then we need to look at our functionality and determine the best way to 
integrate it. Otherwise I don't think we have a big chance of getting the 
upstream to accept our patches.





Comment 5 Kevin Baker 2007-12-19 04:23:05 UTC
ok, as discussed on IRC, let's build a cross comparison between 2.18 and 3.2 
to see where the gaps are.

https://engineering.redhat.com/trac/bugzilla-3.0-rh/wiki/XmlrpcCrossComparison



Comment 6 Kevin Baker 2007-12-29 04:23:13 UTC
Bugzilla::RPC 2.18 xmlrpc functions rated by percentage of calls Oct 16 to Dec 
21 2007. Recommend implementing in the order the appear in the following table

 
+-----------------+--------------------+-------------+--------------+---+--------+
 | 2.18 RPC module | Function           | WebService? | Function     | 
I*| %calls |
 
+-----------------+--------------------+-------------+--------------+---+--------+
 | Query.pm        | runQuery           | None        | None         | N | 
48.07% |
 | Bug.pm          | getBug             | Bug.pm      | get_bugs     | P | 
34.57% |
 | Bug.pm          | addIT              | None        | None         | N |  
4.83% |
 | Bug.pm          | getBugActivity     | None        | None         | N |  
4.14% |
 | User.pm         | nameToId           | None        | None         | N |  
2.61% |
 | User.pm         | login              | User.pm     | login        | Y |  
1.43% |
 | Bug.pm          | getBugSimple       | Bug.pm      | get_bugs     | P |  
1.17% |
 | Admin.pm        | editComponent      | None        | None         | N |  
0.59% |
 | User.pm         | idToName           | None        | None         | N |  
0.57% |
 | Bug.pm          | getBugModified     | None        | None         | N |  
0.54% |
 | Bug.pm          | addComment         | None        | None         | N |  
0.28% |
 | Bug.pm          | updateFlags        | None        | None         | N |  
0.19% |
 | Bug.pm          | closeBug           | None        | None         | N |  
0.16% |
 | Bug.pm          | changeStatus       | None        | None         | N |  
0.11% |
 | Bug.pm          | updateCC           | None        | None         | N |  
0.08% |
 | Info.pm         | getProdInfo        | Product.pm  | get_products | P |  
0.07% |
 | Bug.pm          | createBug          | Bug.pm      | create       | Y |  
0.05% |
 | Bug.pm          | changeAssignment   | None        | None         | N |  
0.04% |
 | Bug.pm          | updateDepends      | None        | None         | N |  
0.03% |
 | Info.pm         | getProdCompDetails | None        | None         | N |  
0.02% |
 | Admin.pm        | addComponent       | None        | None         | N |  
0.02% |
 | Bug.pm          | updateMilestone    | None        | None         | N |  
0.02% |
 | Info.pm         | getCompInfo        | None        | None         | N |  
0.01% |
 | Info.pm         | getProductDetails  | Product.pm  | get_products | P |  
0.01% |
 | Info.pm         | getProductDetails  | Product.pm  | get_products | P |  
0.01% |
 | User.pm         | userInfo           | None        | None         | N |  
0.01% |
 | Admin.pm        | addUser            | User.pm     | create       | Y |  
0.00% |
 | Admin.pm        | disableAccount     | None        | None         | N |  
0.00% |
 | Admin.pm        | updatePerms        | None        | None         | N |  
0.00% |
 | Bug.pm          | addAttachment      | None        | None         | N |  
0.00% |
 | Bug.pm          | deleteIT           | None        | None         | N |  
0.00% |
 | Bug.pm          | getLastBug         | None        | None         | N |  
0.00% |
 | Bug.pm          | updateGroups       | None        | None         | N |  
0.00% |
 | Bug.pm          | updateKeywords     | None        | None         | N |  
0.00% |
 | Bug.pm          | updatePriority     | None        | None         | N |  
0.00% |
 | Bug.pm          | updateWhiteboard   | None        | None         | N |  
0.00% |
 | Info.pm         | getProdCompInfo    | None        | None         | N |  
0.00% |
 | Query.pm        | getQueryInfo       | None        | None         | N |  
0.00% |
 
+-----------------+--------------------+-------------+--------------+---+--------+

I*     - N - the function is not implemented in the upstream
         P - the function is partially implemented in the upstream
         Y - the function is fully implemented in the upstream
%calls -



These not called:

 
+-----------------+--------------------+-------------+--------------+---+--------+
 | Admin.pm        | isCanCreateAccount | None        | None         | 
N |        |
 | Admin.pm        | changeUserInfo     | None        | None         | 
N |        |
 | Admin.pm        | canSeeBug          | None        | None         | 
N |        |
 | Admin.pm        | getAllGroups       | None        | None         | 
N |        |
 | Bug.pm          | sillyness          | None        | None         | 
N |        |
 | Bug.pm          | isPrivate          | None        | None         | 
N |        |
 | Bug.pm          | issueExists        | None        | None         | 
N |        |
 | Bug.pm          | ping               | None        | None         | 
N |        |
 | Bug.pm          | getReleaseFlags    | None        | None         | 
N |        |
 | Bug.pm          | updateSeverity     | None        | None         | 
N |        |
 | Bug.pm          | getBugFields       | None        | None         | 
N |        |
 | Info.pm         | sillyness          | None        | None         | 
N |        |
 | Info.pm         | getCompDesc        | None        | None         | 
N |        |
 | Info.pm         | _product_to_id     | None        | None         | 
N |        |
 | Process.pm      | changeBug          | None        | None         | 
N |        |
 | Process.pm      | addComment         | None        | None         | 
N |        |
 | Process.pm      | addAttachment      | None        | None         | 
N |        |
 
+-----------------+--------------------+-------------+--------------+---+--------+


Comment 7 Kevin Baker 2007-12-29 04:27:38 UTC
Noura,

I think that bugs 426099, 426182, 426184 will need to be replaced with bugs 
that specific to implementing the functions in the above table. 

Each function we need will require discussion with the upstream about the most 
appropriate way to implement it. Please talk with dkl about how to approach 
this. 


Comment 8 Kevin Baker 2007-12-29 18:18:34 UTC
Please research the upstream conversations around xmlrpc

http://groups.google.com/group/mozilla.dev.apps.bugzilla/browse_thread/thread/ec6ae302c336e6a3 

This tiny url was referenced in the above conversation. It lists upstream bugs 
relevant to xmlrpc

http://tinyurl.com/3afonu

IMO the upstream has stalled on xmlrpc since October. Maybe there is activity 
behind the scenes.