Re: How to add a message to an issue via roundup-admin?

Dan Tenenbaum <[email protected]>
Newsgroups gmane.comp.bug-tracking.roundup.user
Message-ID <[email protected]>

----- Original Message -----
> From: "Dan Tenenbaum" <[email protected]>
> To: "Ralf Schlatterbeck" <[email protected]>
> Cc: [email protected]
> Sent: Friday, June 12, 2015 8:15:59 AM
> Subject: Re: [Roundup-users] How to add a message to an issue via roundup-admin?
> 
> 
> 
> ----- Original Message -----
> > From: "Ralf Schlatterbeck" <[email protected]>
> > To: [email protected]
> > Sent: Friday, June 12, 2015 1:28:16 AM
> > Subject: Re: [Roundup-users] How to add a message to an issue via
> > roundup-admin?
> > 
> > On Wed, Jun 10, 2015 at 03:11:18PM -0700, Dan Tenenbaum wrote:
> > > Hi,
> > > 
> > > I'd like to be able to create a new message and add it to an
> > > issue
> > > via roundup-admin.
> > > 
> > > I have issue1 and I was able to do this:
> > > 
> > > $ roundup-admin -i . create msg
> > > Files (Multilink):
> > > Inreplyto (String):
> > > Recipients (Multilink):
> > > Author (Link):
> > > Summary (String): summary
> > > Content (String): content
> > > Messageid (String):
> > > Date (Date):
> > > Type (String):
> > > 5
> > 
> > This gets you the msg number 5 (the last number that is echoed).
> > 
> > Then you can do the same with an issue:
> > $ roundup-admin -i . create issue
> > ...
> > Messages (Multilink): 5
> > 
> > When prompted for the "Messages" Multilink you enter the ID of the
> > message just created.
> > 
> > Alternatively if you want to append the message to an
> > already-existing
> > issue you first query the 'messages' of that issue, e.g.,
> > 
> > $ roundup-admin -i. get messages issue1
> > ['3288', '25502', '32058', '41268', '100899', '366913']
> > 
> > And then append the message to it using set:
> > 
> > $ roundup-admin -i. set issue1
> > messages=5,3288,25502,32058,41268,100899,366913
> > 
> > > But I didn't see how to link the message to issue1. I did see a
> > > new
> > > entry in the _msg table but not in the issue_messages table. How
> > > do
> > > I
> > > do that? Do I need to create some other class that links the
> > > message
> > > to the issue? If so I'm not sure what that class is. Is there a
> > > way
> > > to
> > > list the available classes? Because then I could explore much
> > > more
> > > easily with 'roundup-admin list'.
> > 
> > This is automagically done when you fill in the 'messages'
> > multilink
> > value in issue.
> > 
> > > $ roundup-admin -i . display issue1|grep messages
> > > messages: ['1', '3', '4']
> > > 
> > > Then I can add to that:
> > > 
> > > roundup-admin -i . set issue1 messages="1,3,4,5"
> > > 
> > > But that seems awfully roundabout. I'd like to automate this. Is
> > > there
> > > a one-line command to create a message and add it to an issue?
> > 
> > Yes, that's the way to do it (except that you can use 'get' instead
> > of
> > 'display', see above).
> > 
> > If you want a one-line command you can write a short script using
> > the
> > roundup API.
> 
> I wasn't aware there was an API aside from the detectors/reactors API
> but in this case, detectors are not appropriate.
> Can you point me towards the documentation? Would it be something
> like this?
> 
> http://www.roundup-tracker.org/cgi-bin/moin.cgi/DatabaseWrapper
> 
> ?
> 
> I guess you just mean writing a python script which imports the
> relevant roundup classes?

OK, I've written such a script. The only problem is, it doesn't work! The goal of it is to append a message to an existing issue. It does that, such that when I then retrieve the issue's messages, it shows me that it now has 2 messages whereas before it only had 1:

In [92]: db.issue.get(1, 'messages')                                           
Out[92]: ['1', '9']

However, when I look at issue1 in my browser it only shows one message, and if I go to

http://myhost.com/mytracker/msg9

it says there is no such message. But in the database I can see it:

In [93]: db.getnode('msg', 9)
Out[93]: 
{'activity': <Date 2015-06-12.18:28:39.000>,
 'actor': '1',
 'author': '3',
 'content': None,
 'creation': <Date 2015-06-12.18:27:39.000>,
 'creator': '1',
 'date': <Date 2015-06-12.18:27:39.000>,
 'files': [],
 'inreplyto': None,
 'messageid': '<[email protected]>',
 'recipients': ['1', '3'],
 'summary': 'hey\nho',
 'type': None}


So what is the script doing wrong?

Thanks in advance! Here's the script.

Dan

#!/usr/bin/env python

import sys
from roundup import instance, hyperdb, date
from roundup.date import Date

tracker_home = "/mytrackerhome" # conditionalize me!
instance = instance.open(tracker_home) 
db = instance.open("admin") # make sure there is an admin user on production!

issue_id = 1 # parameterize me!

try:
  issue = db.getnode("issue", issue_id)
except IndexError:
  print("No such issue!")
  sys.exit(1)

username = "admin" # parameterize me

message = """
hey
ho
""" # parameterize me

matching_users = db.user.filter(None, {"username": username})

if len(matching_users) == 0:
  print("No such user!")
  sys.exit(1)

userid = matching_users[0]

msg_id = db.msg.create(
  author=str(userid),
  date=Date('.'),
  summary=message,
  content=message
)

messages = issue.get("messages") 

messages.append(msg_id)

db.issue.set(str(issue_id), messages=messages)



> 
> BTW, what I want to do is append a message to an existing issue, not
> create a new issue and then append a message to it.
> 
> Thanks for your help.
> 
> Dan
> 
> > An alternative is to prepare a full message in UNIX
> > mailbox
> > format and use roundup-mailgw to import it. In the subject you
> > would
> > have the issue in angular brackets to identify the issue, e.g.
> > 
> > Subject: [issue1] New subject of this issue
> > 
> > Ralf
> > --
> > Dr. Ralf Schlatterbeck                  Tel:   +43/2243/26465-16
> > Open Source Consulting                  www:
> >   http://www.runtux.com
> > Reichergasse 131, A-3411 Weidling       email: [email protected]
> > allmenda.com member                     email: [email protected]
> > 
> > ------------------------------------------------------------------------------
> > _______________________________________________
> > Roundup-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/roundup-users
> >

------------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.