On 26 Jun 2013, at 22:57, Antonia Horincar <[email protected]> wrote:
> On Wed, Jun 26, 2013 at 9:30 PM, Matevž Bradač <[email protected]> wrote: >> >> On 26. Jun, 2013, at 20:12, Antonia Horincar wrote: >> >>> I just noticed that in the guide[1], when reaching the step that >>> requires the setting up of set$DBSTRING, it points to trac.db. I tried >>> to install Bloodhound again (in another directory), and when it came >>> to setting up set$DBSTRING, I put bloodhound.db instead of trac.db. >>> After finishing the installation, I opened bloodhound.db in sqlite3 >>> and selected ticket 1. This time it worked and it returned: >>> 1|defect|1372269942652842|1372269942652842|||major||antonia||||new||Porc|porc >>> ||@ >> >> For sqlite-based installations you probably don't need the >> manual installation method, you can use the quick version[1] >> and replace the step >> pip install -r requirements.txt >> with >> pip install -r requirements-dev.txt >> >> [1] https://issues.apache.org/bloodhound/wiki/BloodhoundInstall >> >>> >>> However, I installed my plugin in this copy of Bloodhound as well and >>> I still get the Invalid ticket number error. >> >> Ok, since match_request() is being called, you can try to >> retrieve the ticket from the database in that method first. >> If that works, compare the self.env in match_request() >> with the one in process_request() - they should match. >> If it doesn't work, we'll probably need to see a bit more >> code in order to make more assumptions. =) > > I have retrieved the ticket in the match_request method and then > compared the self.env with the one in process_request and they are the > same. > > I put the code here > https://code.google.com/p/bloodhound-embeddable-objects-plugin/ > (it's the first time I'm using SVN, I'm not sure I did everything right). > Brane / Gary: Can you help with giving Antonia access to her branch? The code should really be committed there. - Joe > >> >>> >>> [1] https://issues.apache.org/bloodhound/wiki/BloodhoundDetailedInstallation >>> >>> On Wed, Jun 26, 2013 at 8:38 PM, Antonia Horincar >>> <[email protected]> wrote: >>>> Yes, I am. This is my entire match_request method: >>>> >>>> def match_request(self, req): >>>> match = re.match(r'/api/ticket/([0-9]+)$', req.path_info) >>>> if match: >>>> req.args['id'] = match.group(1) >>>> return True >>>> >>>> I think the problem is in the database, I might not have set it up >>>> properly. When I make queries in the database, I get a 'no such table: >>>> <table>" error. But I installed everything by following this guide: >>>> https://issues.apache.org/bloodhound/wiki/BloodhoundDetailedInstallation >>>> I am really confused now, I can't see why the database has no tables in it. >>>> >>>> >>>> On Wed, Jun 26, 2013 at 7:50 PM, Anze Staric <[email protected]> wrote: >>>>> This looks ok. Are you returning True in your match_request if request >>>>> matches? >>>>> >>>>> On Wed, Jun 26, 2013 at 5:44 PM, Antonia Horincar >>>>> <[email protected]> wrote: >>>>>> It does get called, I wrote ticket_id = req.args.get('id') in the >>>>>> process_request method and then printed ticket_id. After starting the >>>>>> server, I looked in the logs and the correct id was there. I also >>>>>> printed req.path_info and the output was /api/ticket/1. >>>>>> >>>>>> On Wed, Jun 26, 2013 at 6:34 PM, Anze Staric <[email protected]> >>>>>> wrote: >>>>>>> Can you try setting a breakpoint in the match_request method and see >>>>>>> what is happening? (Does it get called? What is the value of >>>>>>> req.path_info?) I don't see any reason why would requests be matched >>>>>>> in global environment, but not in product ones. >>>>>>> >>>>>>> On Wed, Jun 26, 2013 at 5:21 PM, Antonia Horincar >>>>>>> <[email protected]> wrote: >>>>>>>> On Wed, Jun 26, 2013 at 6:00 PM, Matevž Bradač <[email protected]> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> On 26. Jun, 2013, at 16:43, Antonia Horincar wrote: >>>>>>>>> >>>>>>>>>> On Wed, Jun 26, 2013 at 5:29 PM, Matevž Bradač <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> On 26. Jun, 2013, at 16:14, Antonia Horincar wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Pranay, >>>>>>>>>>>> >>>>>>>>>>>> Thanks for the link, I had a look at it yesterday, but >>>>>>>>>>>> unfortunately >>>>>>>>>>>> it doesn't help me with the error. >>>>>>>>>>>> >>>>>>>>>>>> I'm still not sure what's causing this error to come up every time >>>>>>>>>>>> I >>>>>>>>>>>> try to access a ticket through my API. The ticket exists, I checked >>>>>>>>>>>> this in the Python interpreter. I am suspecting that the problem >>>>>>>>>>>> might >>>>>>>>>>>> be caused by the environment, but don't know why or how to solve >>>>>>>>>>>> it. I >>>>>>>>>>>> have 'forced' the API to use the "bloodhound/environments/main" >>>>>>>>>>>> environment by writing >>>>>>>>>>>> env = trac.env.Environment("bloodhound/environments/main") >>>>>>>>>>>> in the process_request method (I only did this so that maybe I >>>>>>>>>>>> could >>>>>>>>>>>> see what's causing the error). >>>>>>>>>>>> After doing this, I tried to access the ticket again and the error >>>>>>>>>>>> was >>>>>>>>>>>> KeyError: 'author_id', and this made me think that maybe the >>>>>>>>>>>> application runs on a different environment that the one I forced >>>>>>>>>>>> my >>>>>>>>>>>> API to run on. I'm definitely not sure if this is the problem. I >>>>>>>>>>>> will >>>>>>>>>>>> continue to try to solve this, but I am stuck for now. If anyone >>>>>>>>>>>> has >>>>>>>>>>>> the slightest idea on what could be the problem, that would be more >>>>>>>>>>>> than welcome. >>>>>>>>>>> >>>>>>>>>>> This could be related to multiproduct functionality. Could you >>>>>>>>>>> specify some more details on the following: >>>>>>>>>>> - How was the ticket created? Programatically or in the web UI? >>>>>>>>>> >>>>>>>>>> The ticket was created through the web UI. >>>>>>>>> >>>>>>>>> Ok, it should "belong" to a specific product then. Do you have >>>>>>>>> multiple products set up, or are you just using the default one? >>>>>>>> >>>>>>>> I am using the default one. >>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> - What does the SQL dump for that ticket from the Bloodhound DB look >>>>>>>>>>> like? (e.g. something like "SELECT * FROM ticket WHERE id=1;") >>>>>>>>>> >>>>>>>>>> I looked at the logs in the console but the database queries are not >>>>>>>>>> displayed. Only the requests. >>>>>>>>> >>>>>>>>> Correct, you have to manually run the query from the database. >>>>>>>>> If you have installed Bloodhound with sqlite3 as its database, try >>>>>>>>> the following (you need to have sqlite3 installed beforehand): >>>>>>>>> 1. Traverse to the "db" directory in the BH environment. IIRC the >>>>>>>>> relative path should be "bloodhound/environments/main/db". >>>>>>>>> 2. Open the database with >>>>>>>>> sqlite3 bloodhound.db >>>>>>>>> 3. List the ticket using the select statement >>>>>>>>> SELECT * FROM ticket WHERE id=<ID>; >>>>>>>>> replace the <ID> part with the actual ticket ID. >>>>>>>> >>>>>>>> This is weird, it says Error: no such table: ticket. Did I not >>>>>>>> configure the database properly then? >>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> - How are you accessing that ticket from the code? I understand it's >>>>>>>>>>> from a template, is that template loaded in a specific product >>>>>>>>>>> environment or in the global one? >>>>>>>>>> >>>>>>>>>> The template is loaded only for my plugin, it's not a global one. >>>>>>>>>> Well >>>>>>>>>> actually, it doesn't load because from what I saw the error occurs >>>>>>>>>> before reaching the template. >>>>>>>>> >>>>>>>>> I'm assuming that the "self.env" referenced in your code doesn't >>>>>>>>> match the ticket's, or something similar. Could you dump the >>>>>>>>> self.env and ticket_id from the code, so that we can compare them >>>>>>>>> to the SQL dump? >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> matevz >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Antonia >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Jun 26, 2013 at 1:29 AM, Pranay B. Sodre >>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>> Antonia- I am trying to understand this Ticket field myself. The >>>>>>>>>>>>> place I am >>>>>>>>>>>>> looking at to fully understand how this is structured is listed >>>>>>>>>>>>> below. The >>>>>>>>>>>>> structure is based on code written here >>>>>>>>>>>>> http://trac.edgewall.org/browser/branches/1.0-stable/trac/ticket/model.py?rev=11830 >>>>>>>>>>>>> >>>>>>>>>>>>> Look at line 120. I am not sure if this will answer your >>>>>>>>>>>>> question, but it a >>>>>>>>>>>>> place to look. >>>>>>>>>>>>> >>>>>>>>>>>>> Pranay B. >>>>>>>>>>>>> >>>>>>>>>>>>> "He is richest who is content with the least, for content is the >>>>>>>>>>>>> wealth of >>>>>>>>>>>>> nature."- >>>>>>>>>>>>> >>>>>>>>>>>>> Socrates >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 25 June 2013 14:31, Antonia Horincar >>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I made a basic template for displaying ticket information when >>>>>>>>>>>>>> accessing a certain path, but I am having trouble with >>>>>>>>>>>>>> processing the >>>>>>>>>>>>>> ticket. It gives me an error "Ticket <id> does not exist" even >>>>>>>>>>>>>> though >>>>>>>>>>>>>> there is a ticket with the id that I entered. What I did in my >>>>>>>>>>>>>> api, >>>>>>>>>>>>>> after matching the request, in the process_request method was >>>>>>>>>>>>>> something like this: >>>>>>>>>>>>>> data = {'ticket': model.Ticket(self.env, ticket_id)}, where >>>>>>>>>>>>>> ticket_id >>>>>>>>>>>>>> is the id of the req argument. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I have checked if the matching does indeed find the correct id, >>>>>>>>>>>>>> and it >>>>>>>>>>>>>> does. I have looked through the other Bloodhound APIs but I >>>>>>>>>>>>>> found no >>>>>>>>>>>>>> clue that could help me determine the cause of my error. If >>>>>>>>>>>>>> anyone >>>>>>>>>>>>>> encountered this error before and knows what might be causing >>>>>>>>>>>>>> it, can >>>>>>>>>>>>>> you please help me? I might be missing something or I might have >>>>>>>>>>>>>> misunderstood some concepts. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Antonia >>
