TracXmlRpc namespace changes when upgrading to Agilo 1.1.1

44 views
Skip to first unread message

Fredrik Salomonsson

unread,
Dec 3, 2009, 3:57:11 AM12/3/09
to Agilo for Scrum
Hello everyone!

We use the Trac connector for Eclipse Mylyn to synchronize task lists
in Eclipse using the TracXmlRpc plugin. After upgrading Agilo to 1.1.1
it seems that the XML-RPC connection breaks, because of a namespace
change.

The Mylyn connector reports that the RPC method
ticket.milestone.getAll cannot be found. Examining the RPC api shows
that "ticket.milestone" has been renamed "ticket.agilomilestone",
which is unknown to the Mylyn connector.

Does anyone know of a workaround for this?

Martin Häcker

unread,
Dec 4, 2009, 4:40:52 AM12/4/09
to ag...@googlegroups.com
Hi Frederic,
Not really - the problem is that we have to change quite some internals
of trac to get event notifications of stuff that we would otherwise be
unable to get.

This means that some core classes are renamed, which causes this problem
for trac xml rpc.

What you probably could do is patch the trac-xml-rpc to not just use the
classname, but maps the names to the old names of trac.

That could be one workaround - if you get it working, please share!

Regards,
Martin

Fredrik Salomonsson

unread,
Dec 7, 2009, 1:52:33 AM12/7/09
to Agilo for Scrum
Hi Martin, thanks for your reply!

> What you probably could do is patch the trac-xml-rpc to not just use the
> classname, but maps the names to the old names of trac.
>
> That could be one workaround - if you get it working, please share!

I will! Thanks for the input!


/ Fredrik

Fredrik Salomonsson

unread,
Dec 7, 2009, 8:15:40 AM12/7/09
to Agilo for Scrum
> > What you probably could do is patch the trac-xml-rpc to not just use the
> > classname, but maps the names to the old names of trac.
>
> > That could be one workaround - if you get it working, please share!

I actually got it working by doing the quickest and dirtiest
workaround possible. I modified ticket.py in TracXmlRpc to check for
the class name 'AgiloMilestone' and replace it with 'Milestone' where
the namespace is returned.

Line 378 onwards:
...
def ticketEnumFactory(cls):
""" Return a class which exports an interface to one of the Trac
ticket abstract enum types. """
class AbstractEnumImpl(Component):
implements(IXMLRPCHandler)

def xmlrpc_namespace(self):
# Workaround for changed class names in Agilo-1.1.1
if (cls.__name__.lower() == 'agilomilestone'):
return 'ticket.milestone'

return 'ticket.' + cls.__name__.lower()

def xmlrpc_methods(self):
...

Admittedly, this is NOT pretty but it will have to do for now.

jgranie

unread,
Jan 19, 2010, 7:14:19 AM1/19/10
to Agilo for Scrum
Hi,
I've tried this patch on the xmlrpc-r7413, but I couldn't get it
working (with agilo opensource 1.2), I can authenticate in eclipse
with xml-rpc but I have the message saying that the
ticket.milestone.getAll is not found.
Is there another incompatibility issue with agilo 1.2 ?
Thanks

On 7 déc 2009, 14:15, Fredrik Salomonsson

Reply all
Reply to author
Forward
0 new messages