Changeset ce2abc5 for server


Ignore:
Timestamp:
Dec 28, 2011, 12:10:35 AM (12 years ago)
Author:
Jessica B. Hamrick <jhamrick@…>
Branches:
no-cups
Children:
ffbe41d
Parents:
e58af05
git-author:
Jessica B. Hamrick <jhamrick@…> (12/28/11 00:10:35)
git-committer:
Jessica B. Hamrick <jhamrick@…> (12/28/11 00:10:35)
Message:

Queueing jobs (and playing them through mplayer) works

Location:
server/lib/gutenbach
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • server/lib/gutenbach/ipp/core/request.py

    r7c143c9 rce2abc5  
    188188                raise ClientErrorBadRequest("length (%d) < 0" % length)
    189189           
    190             self.data = tempfile.TemporaryFile()
     190            self.data = tempfile.NamedTemporaryFile()
    191191            self.data.write(request.read(length))
    192192            self.data.seek(0)
  • server/lib/gutenbach/server/job.py

    re58af05 rce2abc5  
    33import gutenbach.ipp as ipp
    44import logging
     5import subprocess
     6import time
    57
    68# initialize logger
     
    3638        self.document = None
    3739        self.document_name = None
     40        self.player = None
    3841
    3942        self.status   = ipp.JobStates.HELD
     
    99102        # TODO: add external call to music player
    100103        self.status = ipp.JobStates.PROCESSING
     104        self.player = subprocess.Popen(
     105            "/usr/bin/mplayer -quiet %s" % self.document.name,
     106            shell=True)
     107            #stderr=subprocess.PIPE,
     108            #stdout=subprocess.PIPE)
     109        while self.player.poll() is None:
     110            time.sleep(0.1)
     111        logger.info("mplayer finished with code %d" % self.player.returncode)
     112        #if self.player.returncode < 0:
     113        #    logger.error(self.player.stderr)
     114        #logger.debug(self.player.stdout)
     115        self.player = None
    101116        self.printer.complete_job(self.jid)
    102117
  • server/lib/gutenbach/server/printer.py

    re58af05 rce2abc5  
    227227                "Invalid job state: %d" % job.status)
    228228        job.document = document
     229        logger.debug("document for job %d is '%s'" % (jobid, job.document.name))
    229230        job.status = ipp.JobStates.PENDING
    230231
     
    251252        else:
    252253            job = self.active_jobs[0]
    253         return job       
     254        return job
     255
     256    def stop(self):
     257        if len(self.active_jobs) == 0:
     258            return
     259        job = self.jobs[self.active_jobs[0]]
     260        if job.player is not None:
     261            logger.info("stopping printer %s" % self.name)
     262            job.player.terminate()
    254263
    255264    def get_job(self, jobid):
Note: See TracChangeset for help on using the changeset viewer.