[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 37e42dd89f9a033ae45c8a2920e3899d8013a882
X2Go dev team
git-admin at x2go.org
Wed Jan 8 15:25:35 CET 2014
The branch, build-baikal has been updated
via 37e42dd89f9a033ae45c8a2920e3899d8013a882 (commit)
from 78580340d5e68ba25c2a7366c2f5fc709bbe6264 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
x2go/backends/printing/_file.py | 8 ++++----
x2go/client.py | 4 +++-
x2go/printactions.py | 24 +++++++++++++++++++-----
x2go/printqueue.py | 4 ++--
x2go/xserver.py | 9 ++++++---
5 files changed, 34 insertions(+), 15 deletions(-)
The diff of changes is:
diff --git a/x2go/backends/printing/_file.py b/x2go/backends/printing/_file.py
index 2497520..17c908c 100644
--- a/x2go/backends/printing/_file.py
+++ b/x2go/backends/printing/_file.py
@@ -95,18 +95,18 @@ class X2goClientPrintingFILE(inifiles.X2goIniFile):
elif _general_pdfview and _view_open:
_view_command = self.get('view', 'command')
- self._print_action = printactions.X2goPrintActionPDFVIEW(pdfview_cmd=_view_command, logger=self.logger)
+ self._print_action = printactions.X2goPrintActionPDFVIEW(client_instance=self.client_instance, pdfview_cmd=_view_command, logger=self.logger)
elif _general_pdfview and not _view_open:
- self._print_action = printactions.X2goPrintActionPDFSAVE(logger=self.logger)
+ self._print_action = printactions.X2goPrintActionPDFSAVE(client_instance=self.client_instance, logger=self.logger)
elif not _general_pdfview and not _print_startcmd:
_cups_defaultprinter = self.get('CUPS', 'defaultprinter')
- self._print_action = printactions.X2goPrintActionPRINT(printer=_cups_defaultprinter, logger=self.logger)
+ self._print_action = printactions.X2goPrintActionPRINT(client_instance=self.client_instance, printer=_cups_defaultprinter, logger=self.logger)
elif not _general_pdfview and _print_startcmd:
_print_command = self.get('print', 'command')
- self._print_action = printactions.X2goPrintActionPRINTCMD(print_cmd=_print_command, logger=self.logger)
+ self._print_action = printactions.X2goPrintActionPRINTCMD(client_instance=self.client_instance, print_cmd=_print_command, logger=self.logger)
@property
def print_action(self):
diff --git a/x2go/client.py b/x2go/client.py
index 846f50f..f6e196c 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -276,7 +276,9 @@ class X2goClient(object):
def HOOK_no_known_xserver_found(self):
self.logger('the Python X2go module could not find any usable XServer application, you will not be able to start X2go sessions without XServer', loglevel=log.loglevel_WARN)
def HOOK_open_print_dialog(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN'):
- self.logger('HOOK_open_print_dialog: incoming print job,, %s'' detected by X2goClient hook method' % filename, loglevel=log.loglevel_WARN)
+ self.logger('HOOK_open_print_dialog: incoming print job ,, %s'' detected by X2goClient hook method' % filename, loglevel=log.loglevel_WARN)
+ def HOOK_printaction_error(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN', err_msg='GENERIC_ERROR')
+ self.logger('HOOK_printaction_error: incoming print job ,, %s'' caused error: %s' % (filename, err_msg), loglevel=log.loglevel_ERROR)
def HOOK_on_control_session_death(self, profile_name):
self.logger('HOOK_on_control_session_death: the control session of profile %s has died unexpectedly' % profile_name, loglevel=log.loglevel_WARN)
diff --git a/x2go/printactions.py b/x2go/printactions.py
index b171b52..877b5aa 100644
--- a/x2go/printactions.py
+++ b/x2go/printactions.py
@@ -136,7 +136,7 @@ class X2goPrintActionPDFVIEW(X2goPrintAction):
pdfview_cmd = None
- def __init__(self, pdfview_cmd=None, logger=None, loglevel=log.loglevel_DEFAULT):
+ def __init__(self, client_instance=None, pdfview_cmd=None, logger=None, loglevel=log.loglevel_DEFAULT):
"""\
@param pdfview_cmd: command that starts the external PDF viewer application
@type pdfview_cmd: C{str}
@@ -151,6 +151,7 @@ class X2goPrintActionPDFVIEW(X2goPrintAction):
if pdfview_cmd is None:
pdfview_cmd = defaults.DEFAULT_PDFVIEW_CMD
self.pdfview_cmd = pdfview_cmd
+ self.client_instance = client_instance
X2goPrintAction.__init__(self, logger=logger, loglevel=loglevel)
def do_print(self, pdf_file, job_title, spool_dir, ):
@@ -169,7 +170,17 @@ class X2goPrintActionPDFVIEW(X2goPrintAction):
shutil.copy2(pdf_file, _hr_filename)
if sys.platform == "win32":
self.logger('printing incoming job with Python\'s os.startfile(): %s' % pdf_file, loglevel=log.loglevel_DEBUG)
- os.startfile(_hr_filename)
+ try:
+ os.startfile(_hr_filename)
+ except WindowsError, win_err:
+ if self.client_instance:
+ self.HOOK_printaction_error(_hr_filename,
+ profile_name=self.profile_name,
+ session_name=self.session_name,
+ err_msg=str(win_err)
+ )
+ else:
+ self.logger('Encountered WindowsError: %s' % str(win_err), loglevel=log.loglevel_ERROR)
else:
cmd_line = [ self.pdfview_cmd, _hr_filename, ]
self.logger('printing incoming job with command: %s' % ' '.join(cmd_line), loglevel=log.loglevel_DEBUG)
@@ -190,7 +201,7 @@ class X2goPrintActionPDFSAVE(X2goPrintAction):
save_to_folder = None
- def __init__(self, save_to_folder=None, logger=None, loglevel=log.loglevel_DEFAULT):
+ def __init__(self, client_instance=None, save_to_folder=None, logger=None, loglevel=log.loglevel_DEFAULT):
"""\
@param save_to_folder: saving location for incoming print jobs (PDF files)
@type save_to_folder: C{str}
@@ -205,6 +216,7 @@ class X2goPrintActionPDFSAVE(X2goPrintAction):
if save_to_folder is None:
save_to_folder = os.path.expanduser(defaults.DEFAULT_PDFSAVE_LOCATION)
self.save_to_folder = save_to_folder
+ self.client_instance = client_instance
X2goPrintAction.__init__(self, logger=None, loglevel=loglevel)
def do_print(self, pdf_file, job_title, spool_dir):
@@ -234,7 +246,7 @@ class X2goPrintActionPRINT(X2goPrintAction):
__name__ = 'PRINT'
__decription__= 'UNIX/Win32GDI printing'
- def __init__(self, printer=None, logger=None, loglevel=log.loglevel_DEFAULT):
+ def __init__(self, client_instance=None, printer=None, logger=None, loglevel=log.loglevel_DEFAULT):
"""\
@param printer: name of the preferred printer, if C{None} the system's/user's default printer will be used
@type printer: C{str}
@@ -247,6 +259,7 @@ class X2goPrintActionPRINT(X2goPrintAction):
"""
self.printer = printer
+ self.client_instance = client_instance
X2goPrintAction.__init__(self, logger=logger, loglevel=loglevel)
def do_print(self, pdf_file, job_title, spool_dir, ):
@@ -307,7 +320,7 @@ class X2goPrintActionPRINTCMD(X2goPrintAction):
__name__ = 'PRINTCMD'
__decription__= 'Print via a command (like LPR)'
- def __init__(self, print_cmd=None, logger=None, loglevel=log.loglevel_DEFAULT):
+ def __init__(self, client_instance=None, print_cmd=None, logger=None, loglevel=log.loglevel_DEFAULT):
"""\
@param print_cmd: external command to be called on incoming print jobs
@type print_cmd: C{str}
@@ -321,6 +334,7 @@ class X2goPrintActionPRINTCMD(X2goPrintAction):
"""
if print_cmd is None:
print_cmd = defaults.DEFAULT_PRINTCMD_CMD
+ self.client_instance = client_instance
self.print_cmd = print_cmd
X2goPrintAction.__init__(self, logger=logger, loglevel=loglevel)
diff --git a/x2go/printqueue.py b/x2go/printqueue.py
index 9d2f250..1553a87 100644
--- a/x2go/printqueue.py
+++ b/x2go/printqueue.py
@@ -221,8 +221,8 @@ def x2go_printjob_handler(job_file=None, pdf_file=None, job_title=None, print_ac
)
print_action = _printing.print_action
- print_action.profile_name = parent_thread.profile_name
- print_action.session_name = parent_thread.session_name
+ print_action.profile_name = parent_thread.profile_name
+ print_action.session_name = parent_thread.session_name
logger('action for printing is: %s' % print_action, loglevel=log.loglevel_DEBUG)
print_action.do_print(pdf_file=os.path.join(parent_thread.spool_dir, pdf_file),
diff --git a/x2go/xserver.py b/x2go/xserver.py
index ddf5458..2e92a63 100644
--- a/x2go/xserver.py
+++ b/x2go/xserver.py
@@ -197,8 +197,11 @@ class X2goXServer(threading.Thread):
while self._keepalive:
gevent.sleep(1)
self.logger('terminating running XServer ,,%s\'\'' % self.xserver_name, loglevel=log.loglevel_DEBUG)
- p.terminate()
-
+ try:
+ p.terminate()
+ except WindowsError:
+ pass
+
def stop_thread(self):
"""\
STILL UNDOCUMENTED
@@ -206,4 +209,4 @@ class X2goXServer(threading.Thread):
"""
self.logger('stop_thread() method has been called', loglevel=log.loglevel_DEBUG)
self._keepalive = False
-
+
hooks/post-receive
--
python-x2go.git (Python X2Go Client API)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-x2go.git" (Python X2Go Client API).
More information about the x2go-commits
mailing list