wiki:TicketQuery

TicketQuery Wiki Macro

The TicketQuery macro lets you display ticket information anywhere that accepts WikiFormatting. The query language used by the [[TicketQuery]] macro is described in the TracQuery page.

Usage

[[TicketQuery]]

Wiki macro listing tickets that match certain criteria.

This macro accepts a comma-separated list of keyed parameters, in the form "key=value".

If the key is the name of a field, the value must use the syntax of a filter specifier as defined in TracQuery#QueryLanguage. Note that this is not the same as the simplified URL syntax used for query: links starting with a ? character. Commas (,) can be included in field values by escaping them with a backslash (\).

Groups of field constraints to be OR-ed together can be separated by a literal or argument.

In addition to filters, several other named parameters can be used to control how the results are presented. All of them are optional.

The format parameter determines how the list of tickets is presented:

  • list -- the default presentation is to list the ticket ID next to the summary, with each ticket on a separate line.
  • compact -- the tickets are presented as a comma-separated list of ticket IDs.
  • count -- only the count of matching tickets is displayed
  • rawcount -- only the count of matching tickets is displayed, not even with a link to the corresponding query (since 1.1.1)
  • table -- a view similar to the custom query view (but without the controls)
  • progress -- a view similar to the milestone progress bars

The max parameter can be used to limit the number of tickets shown (defaults to 0, i.e. no maximum).

The order parameter sets the field used for ordering tickets (defaults to id).

The desc parameter indicates whether the order of the tickets should be reversed (defaults to false).

The group parameter sets the field used for grouping tickets (defaults to not being set).

The groupdesc parameter indicates whether the natural display order of the groups should be reversed (defaults to false).

The verbose parameter can be set to a true value in order to get the description for the listed tickets. For table format only. deprecated in favor of the rows parameter

The rows parameter can be used to specify which field(s) should be viewed as a row, e.g. rows=description|summary

The col parameter can be used to specify which fields should be viewed as columns. For table format only.

For compatibility with Trac 0.10, if there's a last positional parameter given to the macro, it will be used to specify the format. Also, using "&" as a field separator still works (except for order) but is deprecated.

Examples

Example Result Macro
Number of Triage tickets: 12 [[TicketQuery(status=new&milestone=,count)]]
Number of new tickets: 66 [[TicketQuery(status=new,count)]]
Number of reopened tickets: 6 [[TicketQuery(status=reopened,count)]]
Number of assigned tickets: 62 [[TicketQuery(status=assigned,count)]]
Number of invalid tickets: 62 [[TicketQuery(status=closed,resolution=invalid,count)]]
Number of worksforme tickets: 69 [[TicketQuery(status=closed,resolution=worksforme,count)]]
Number of duplicate tickets: 45 [[TicketQuery(status=closed,resolution=duplicate,count)]]
Number of wontfix tickets: 31 [[TicketQuery(status=closed,resolution=wontfix,count)]]
Number of fixed tickets: 474 [[TicketQuery(status=closed,resolution=fixed,count)]]
Number of untriaged tickets (milestone unset): 34 [[TicketQuery(status!=closed,milestone=,count)]]
Total number of tickets: 815 [[TicketQuery(count)]]
Number of tickets reported or owned by current user: 11 [[TicketQuery(reporter=$USER,or,owner=$USER,count)]]
Number of tickets created this month: 0 [[TicketQuery(created=thismonth..,count)]]
Number of closed Firefox tickets: 0 [[TicketQuery(status=closed,keywords~=firefox,count)]]
Number of closed Opera tickets: 0 [[TicketQuery(status=closed,keywords~=opera,count)]]
Number of closed tickets affecting Firefox and Opera: 0 [[TicketQuery(status=closed,keywords~=firefox opera,count)]]
Number of closed tickets affecting Firefox or Opera: 0 [[TicketQuery(status=closed,keywords~=firefox|opera,count)]]
Number of tickets that affect Firefox or are closed and affect Opera: 0 [[TicketQuery(status=closed,keywords~=opera,or,keywords~=firefox,count)]]
Number of closed Firefox tickets that don't affect Opera: 0 [[TicketQuery(status=closed,keywords~=firefox -opera,count)]]
Last 3 modified tickets: #866, #865, #864 [[TicketQuery(max=3,order=modified,desc=1,compact)]]

Details of ticket #1:

[[TicketQuery(id=1,col=id|owner|reporter,rows=summary,table)]]

Ticket Owner Reporter
#1 Bruno Cornec Bruno Cornec
Summary sprintf used without checks

Format: list

[[TicketQuery(version=0.6|0.7&resolution=duplicate)]]

This is displayed as:

No results

[[TicketQuery(id=123)]]

This is displayed as:

#123
Add support for Slackware 11.0

Format: compact

[[TicketQuery(version=0.6|0.7&resolution=duplicate, compact)]]

This is displayed as:

No results

Format: count

[[TicketQuery(version=0.6|0.7&resolution=duplicate, count)]]

This is displayed as:

0

Format: progress

[[TicketQuery(milestone=0.12.8&group=type,format=progress)]]

This is displayed as:

Format: table

You can choose the columns displayed in the table format (format=table) using col=<field>. You can specify multiple fields and the order they are displayed by placing pipes (|) between the columns:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

This is displayed as:

Results (1 - 3 of 681)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#860 fixed Add support for for Dell EMC DD BoostFS Bruno Cornec Bruno Cornec
#851 fixed debian deps incorrect for debian 9 and 10 Bruno Cornec Bruno Cornec
#850 fixed Off by one bug in src/lib/mr_str.c Bruno Cornec KONG
1 2 3 4 5 6 7 8 9 10 11

Full rows

In table format you can specify full rows using rows=<field>:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter,rows=description)]]

This is displayed as:

Results (1 - 3 of 681)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#860 fixed Add support for for Dell EMC DD BoostFS Bruno Cornec Bruno Cornec
Description

Until now, we used the NFS remote resource as a backup device, which was mounted on the target servers only for the time of the backup task. At the same time, we used the '-N' option with the 'mondoarchive' command to automatically exclude all mounted remote file systems, including the NFS resource with backups. This worked fine.

But recently, to reduce backup window time, we migrated to use Dell EMC DD BoostFS (boostfs) in conjunction with Dell EMC DD9300HA storage. And after that, the above option '-N' certainly stopped working, since the remote BoostFS resource with backups is not mounted via 'fstab' and looks like this:

=== $ df -hT Filesystem Type Size Used Avail Use% Mounted on ... boostfs fuse.boostfs 202T 82T 120T 41% /mnt/nfs_backups ===

The BoostFS remote resource is mounted at the time of backup task with a simple command:

# /opt/emc/boostfs/bin/boostfs mount /mnt/nfs_backups

Therefore, I really ask the developers to add support for the Dell EMC DD BoostFS (boostfs) remote file system for the above '-N' option. If required, I can send (privately) detailed 'mondoarchive' runtime log-files.

My working versions: -- Mondo Archive v3.3.0-r3697M (RHEL/CentOS-6) -- Mondo Archive v3.3.0-r3699 (RHEL/CentOS-7)

#851 fixed debian deps incorrect for debian 9 and 10 Bruno Cornec Bruno Cornec
Description

afio is missing from Debian. We need to make the dep based on star then

#850 fixed Off by one bug in src/lib/mr_str.c Bruno Cornec KONG
Description

I found a bug in src/lib/mr_str.c. The following line:

q = outstr + strlen(outstr) -1;

will cause a SIGABRT on latest rhel 7. See parts of the log:

*** Error in `/usr/sbin/mondoarchive': corrupted size vs. prev_size: 0x000000000065b5d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7f7c4)[0x7ffff765b7c4]
/lib64/libc.so.6(+0x82fd4)[0x7ffff765efd4]
/lib64/libc.so.6(+0x840c2)[0x7ffff76600c2]
/lib64/libc.so.6(realloc+0x1d2)[0x7ffff7662162]
/lib64/libc.so.6(getdelim+0x10b)[0x7ffff764b91b]
/usr/sbin/mondoarchive[0x4380bf]
/usr/sbin/mondoarchive[0x41e765]
/usr/sbin/mondoarchive[0x4291c8]
/usr/sbin/mondoarchive[0x402e90]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7ffff75fe505]
/usr/sbin/mondoarchive[0x4039b3]
==
....

Running it through valgrind, displays:

I think you have a EFI/UEFI partition.
==2587== Invalid read of size 1
==2587==    at 0x437DAA: mr_strip_spaces (mr_str.c:185)
==2587==    by 0x41E6FC: run_program_and_log_output (libmondo-fork.c:317)
==2587==    by 0x42B079: some_basic_system_sanity_checks (libmondo-tools.c:1016)
==2587==    by 0x42B4A3: pre_param_configuration (libmondo-tools.c:684)
==2587==    by 0x402E46: main (mondoarchive.c:328)
==2587==  Address 0x5ed05bf is 1 bytes before a block of size 1 alloc'd
==2587==    at 0x4C29EA3: malloc (vg_replace_malloc.c:309)
==2587==    by 0x537FF2F: __vasprintf_chk (vasprintf_chk.c:80)
==2587==    by 0x437FFA: UnknownInlinedFun (stdio2.h:210)
==2587==    by 0x437FFA: mr_asprintf_int (mr_mem.c:62)
==2587==    by 0x437D98: mr_strip_spaces (mr_str.c:181)
==2587==    by 0x41E6FC: run_program_and_log_output (libmondo-fork.c:317)
==2587==    by 0x42B079: some_basic_system_sanity_checks (libmondo-tools.c:1016)
==2587==    by 0x42B4A3: pre_param_configuration (libmondo-tools.c:684)
==2587==    by 0x402E46: main (mondoarchive.c:328)
==2587==

The following change fixes it:

q = outstr + strlen(outstr);

After that archive creation successfully completes.

1 2 3 4 5 6 7 8 9 10 11


See also: TracQuery, TracTickets, TracReports

Last modified 8 months ago Last modified on Nov 20, 2019, 10:04:31 AM