On 2/18/14, Mark Abbate <abbat...@gmail.com> wrote: > Hello All >
Hi ! :) > I greatly appreciate any help, and kudos for an extremely useful project. > Thanks ! > (1) Short version: > > I would like to submit and update tickets remotely using xml-rpc. I am > using 0.7 and the suggested xml-rpc plugin version. > AFAICR in 0.7 some requests sent to global scope URLs are redirected to default product . > I can use curl or chrome-postman and get sensible answers to calls such > as ticket.getTicketFields and wiki.getPage.I can also successfully use > ticket.create. > Ok . What RPC URL are you using ? - http://host.tld/bh/login/rpc - http://host.tld/bh/login/products/PREFIX/rpc - http://host.tld/bh/products/PREFIX/login/rpc - ... something else ... > However when I use ticket.update to put additional info into the ticket > I get the error that the ticket does not exist. > The simpler ticket.delete results in the same error. Other calls such as > ticket.getActions that need the id also fail. > You have to put the request in the right product context , especially if using PostgreSQL DB . Is this your case ? > Then I tried trac-admin and also can not delete: > Trac > [/home/family/bloodhoundsvn/bloodhound/installer/bloodhound/environments/main]> > > ticket remove 2 > ResourceNotFound: Ticket 2 does not exist. > Tickets are bound to products . In recent versions of BH (i.e. 0.8-dev /trunk) the command would be : [/path/to/env]> product admin PREFIX ticket remove 2 > > (2) Long version: > > I am by no means a trac/bloodhound/python expert, and do not fully > understand how bloodhound provides the multi product functionality on > top of trac. > Nevermind , that's what we are for ... It's all explained in https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0003 > The isolated multiproduct functionality is important for my application, > so I have not gone back to a trac only install to test this. > > ticket.create is not quite enough for my needs, I also want to assign > the ticket, and add successive comments and attachments. > There are recent reports of the RPC plugin working successfully connected to Mylyn running BH=0.8-dev [...] > > - Using: > > 4038685 Jan 22 15:55 /home/family/Downloads/apache-bloodhound-0.7.tar.gz > I also ran from the svn co: > svn co https://svn.apache.org/repos/asf/bloodhound/trunk bloodhound > TRAC_VERSION 1.0.1 > Followed README.rst, using SQLite. > > http://localhost:8000/main/products/%40/rpc#rpc.ticket.version > Remote Procedure Call (RPC), Installed API version : 1.4.1dev > Ok , that should be latest version . > This is a fresh install. I created 3 tickets manually from the web UI. > User mark has admin permissions, and XML_RPC. > [...] Request and response are consistent with everything you were saying before . > > 2014-02-18 09:27:38,431 Trac[main] DEBUG: Dispatching > <ProductRequestWithSession "POST '/login/xmlrpc'"> Try sending requests to /products/PREFIX/login/xmlrpc and please tell us what you get . [...] > 2014-02-18 09:27:38,438 Trac[web_ui] DEBUG: RPC(XML-RPC) call by 'mark' > ticket.delete authentication is configured OK . > 2014-02-18 09:27:38,440 Trac[web_ui] ERROR: RPC(XML-RPC) Error > Traceback (most recent call last): > File "build/bdist.linux-x86_64/egg/tracrpc/web_ui.py", line 158, in > _rpc_process > result = (XMLRPCSystem(self.env).get_method(method_name)(req, > args))[0] > File "build/bdist.linux-x86_64/egg/tracrpc/api.py", line 197, in > __call__ > result = self.callable(req, *args) > File "build/bdist.linux-x86_64/egg/tracrpc/ticket.py", line 270, in > delete > t = model.Ticket(self.env, id) > File > "/home/family/bloodhoundsvn/bloodhound/trac/trac/ticket/model.py", line > 82, in __init__ > self._fetch_ticket(tkt_id) > File > "/home/family/bloodhoundsvn/bloodhound/trac/trac/ticket/model.py", line > 121, in _fetch_ticket > id=tkt_id), _("Invalid ticket number")) > ResourceNotFound: Ticket 2 does not exist. > [...] This should be happening because in 0.7 tickets created in global scope via web UI are bound the «default» product (deprecated in 0.8) environment but RPC calls sent to /login/xmlrpc are handled by the global environment . Different contexts => ticket not found . -- Regards, Olemis - @olemislc