Changeset b8c3505 for server/lib/gutenbach
- Timestamp:
- Jan 12, 2012, 2:35:57 AM (12 years ago)
- Branches:
- no-cups
- Children:
- c94fa32
- Parents:
- adf8cf0
- git-author:
- Jessica B. Hamrick <jhamrick@…> (01/12/12 02:35:57)
- git-committer:
- Jessica B. Hamrick <jhamrick@…> (01/12/12 02:35:57)
- Location:
- server/lib/gutenbach/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
server/lib/gutenbach/server/job.py
radf8cf0 rb8c3505 323 323 324 324 def cancel(self): 325 """ Non-blocking cancel. The job must not have been previously325 """Blocking cancel. The job must not have been previously 326 326 aborted or completed (though this method will succeed if it 327 327 was previously cancelled). This should be used to stop the … … 335 335 """ 336 336 337 def _cancelled():338 logger.info("cancelled job %s" % str(self))339 self._why_done = "cancelled"340 341 337 if self.is_playing: 342 self.player. callback = _cancelled338 self.player._callback = None 343 339 self.player.mplayer_stop() 340 344 341 elif self.is_done and not self._why_done == "cancelled": 345 342 raise errors.InvalidJobStateException(self.state) 346 else: 347 _cancelled() 343 344 logger.info("cancelled job %s" % str(self)) 345 self._why_done = "cancelled" 348 346 349 347 def abort(self): 350 """ Non-blocking abort. The job must not have been previously348 """Blocking abort. The job must not have been previously 351 349 cancelled or completed (though this method will succeed if it 352 350 was previously aborted). This should be used to stop the job … … 360 358 """ 361 359 362 def _aborted():363 logger.info("aborted job %s" % str(self))364 self._why_done = "aborted"365 366 360 if self.is_playing: 367 self.player. callback = _aborted361 self.player._callback = None 368 362 self.player.mplayer_stop() 363 369 364 elif self.is_done and not self._why_done == "aborted": 370 365 raise errors.InvalidJobStateException(self.state) 371 else: 372 _aborted() 366 367 logger.info("aborted job %s" % str(self)) 368 self._why_done = "aborted" 373 369 374 370 def restart(self): -
server/lib/gutenbach/server/player.py
radf8cf0 rb8c3505 61 61 raise ValueError, "file handler is None" 62 62 63 self.mplayer_play()64 self._done = True 63 logger.info("playing file '%s'" % self.fh.name) 64 65 65 with self.lock: 66 if self.callback: 67 self.callback() 68 69 def mplayer_play(self): 70 if not self.isAlive(): 71 return 72 73 logger.info("playing file '%s'" % self.fh.name) 74 self._paused = False 66 self._paused = False 67 self._done = False 75 68 76 69 if self._dryrun: … … 81 74 while self.is_paused: 82 75 time.sleep(0.01) 83 return 76 77 else: 78 # open mplayer 79 with self.lock: 80 self.player = subprocess.Popen( 81 "/usr/bin/mplayer -really-quiet -slave %s" % self.fh.name, 82 shell=True, 83 stdin=subprocess.PIPE, 84 stderr=subprocess.PIPE, 85 stdout=subprocess.PIPE) 86 87 # wait for mplayer to finish 88 while True: 89 with self.lock: 90 playing = self.is_playing 91 if not playing: 92 break 93 time.sleep(0.1) 94 95 logger.info("mplayer finished with code %d" % self.player.returncode) 84 96 85 # open mplayer 97 # get output from mplayer and log it 98 with self.lock: 99 stderr = self.player.stderr.read() 100 stdout = self.player.stdout.read() 101 102 if stderr.strip() != "": 103 logger.error(stderr) 104 if stdout.strip() != "": 105 logger.debug(stdout) 106 86 107 with self.lock: 87 self.player = subprocess.Popen( 88 "/usr/bin/mplayer -really-quiet -slave %s" % self.fh.name, 89 shell=True, 90 stdin=subprocess.PIPE, 91 stderr=subprocess.PIPE, 92 stdout=subprocess.PIPE) 93 94 # wait for mplayer to finish 95 while True: 96 with self.lock: 97 playing = self.is_playing 98 if not playing: 99 break 100 time.sleep(0.1) 101 102 logger.info("mplayer finished with code %d" % self.player.returncode) 103 104 # get output from mplayer and log it 105 with self.lock: 106 stderr = self.player.stderr.read() 107 stdout = self.player.stdout.read() 108 109 if stderr.strip() != "": 110 logger.error(stderr) 111 if stdout.strip() != "": 112 logger.debug(stdout) 108 if self.callback: 109 self.callback() 110 self._done = True 113 111 114 112 def mplayer_pause(self): … … 133 131 else: 134 132 logger.warning("trying to stop non-playing job") 135 time.sleep(self._lag)133 self.join()
Note: See TracChangeset
for help on using the changeset viewer.