Bug 216127

Summary: eggcups should just look at local jobs
Product: [Fedora] Fedora Reporter: Tim Waugh <twaugh>
Component: desktop-printingAssignee: Tim Waugh <twaugh>
Status: CLOSED WONTFIX QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 6   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-27 11:58:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tim Waugh 2006-11-17 12:56:29 UTC
Description of problem:
The eggcups print queue manager tries to follow jobs queued for remote CUPS
servers to the remote CUPS server.  There is no reason I know of for it to do
that.  It should just watch the local job.

Unless someone deliberately sets 'waitjob=no' on the queue or the job, the local
job will stay around waiting for the remote job to finish.  Cancelling the local
job will cancel the remote job.

Basically eggcups's 'follow remote jobs' feature is looking for a problem to
solve, and just making everything worse in the process.  It needs to be
re-written to simply show the user the current queue.  It doesn't need to track
individual jobs -- CUPS does that.  It doesn't need to maintain the status of
each job -- CUPS does that.

It also shouldn't bother with 'LocalJobStarted' etc -- it only needs to listen
for 'QueueChanged' D-Bus events.  They are sent whenever something has changed
that makes it worth a print queue manager re-checking the queues.

Version-Release number of selected component (if applicable):
desktop-printing-0.19-17.0.1.fc6

Comment 1 Matthias Clasen 2006-11-17 22:04:24 UTC
Really, Tim ?

Back when Colin and I were working on this, cups  would loose all knowledge
about a print job as soon as it was sent off to somewhere else, and it wasn't
possible to get any updates for the (now remote) job via the local cupsd. If
that works now, eggcups state machine can in fact be greatly simplified.

Comment 2 Tim Waugh 2006-11-19 12:02:51 UTC
If it ever didn't work, it must have been a bug (now fixed).  Or could it be you
were thinking about when the job is completed?  In that case, the job history
for the job only resides on the remote server and not the local server (so e.g.
'lpstat -Wcompleted -o' on the local server won't show completed remote jobs).

Comment 3 Matthias Clasen 2006-11-20 03:00:35 UTC
eggcups needs to get status updates for the remote job until it is completed. 

Comment 4 Tim Waugh 2006-11-20 12:17:00 UTC
The ipp backend does this already, at 10s intervals.

It fetches the printer-state-reasons job attribute from the remote server, sets
its own state to copy it, and also logs an ERROR/WARNING/INFO about it.  See
report_printer_state() starting at backend/ipp.c:1428.