Bug 406131 - 3.3: XMLRPC compatibility with current API.
Summary: 3.3: XMLRPC compatibility with current API.
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Bugzilla
Classification: Community
Component: Bugzilla General
Version: 3.2
Hardware: All
OS: Linux
high
medium
Target Milestone: ---
Assignee: Noura El hawary
QA Contact:
URL:
Whiteboard:
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
Blocks: 427053
TreeView+ depends on / blocked
 
Reported: 2007-11-30 16:57 UTC by David Lawrence
Modified: 2013-06-24 04:17 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-02-05 23:22:59 UTC
Embargoed:


Attachments (Terms of Use)

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. 


Note You need to log in before you can comment on or make changes to this bug.