[X2Go-Commits] python-x2go.git - twofactorauth (branch) updated: 926ebbbc9976ec45e3131f4dd814340ce9895933

X2Go dev team git-admin at x2go.org
Sat Sep 14 15:55:40 CEST 2013


The branch, twofactorauth has been updated
       via  926ebbbc9976ec45e3131f4dd814340ce9895933 (commit)
      from  3e9bd013e07df85ae426e58bc3c177cbb4f61977 (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/control/_stdout.py  |   11 +++++++++++
 x2go/backends/proxy/_nx3.py       |    6 ++----
 x2go/backends/proxy/base.py       |    6 +++++-
 x2go/backends/terminal/_stdout.py |   27 +++++++++++++++++----------
 x2go/client.py                    |   12 ++++++++++++
 x2go/defaults.py                  |    1 +
 x2go/mime_export.py               |    2 --
 x2go/printactions.py              |    2 --
 x2go/printqueue.py                |    2 --
 x2go/registry.py                  |   12 ++++++++++++
 x2go/session.py                   |   15 +++++++++++++++
 11 files changed, 75 insertions(+), 21 deletions(-)

The diff of changes is:
diff --git a/x2go/backends/control/_stdout.py b/x2go/backends/control/_stdout.py
index f3a3030..f0a06de 100644
--- a/x2go/backends/control/_stdout.py
+++ b/x2go/backends/control/_stdout.py
@@ -26,6 +26,7 @@ This backend handles X2go server implementations that respond via server-side ST
 __NAME__ = 'x2gocontrolsession-pylib'
 
 # modules
+import os
 import types
 import paramiko
 import gevent
@@ -78,6 +79,9 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
                  info_backend=_X2goServerSessionInfo,
                  list_backend=_X2goServerSessionList,
                  proxy_backend=_X2goProxy,
+                 client_rootdir=os.path.join(defaults.LOCAL_HOME, defaults.X2GO_CLIENT_ROOTDIR),
+                 session_rootdir=os.path.join(defaults.LOCAL_HOME, defaults.X2GO_SESSION_ROOTDIR),
+                 ssh_rootdir=os.path.join(defaults.LOCAL_HOME, defaults.X2GO_SSH_ROOTDIR),
                  logger=None, loglevel=log.loglevel_DEFAULT,
                  *args, **kwargs):
         """\
@@ -105,6 +109,11 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
         self._info_backend = info_backend
         self._list_backend = list_backend
         self._proxy_backend = proxy_backend
+
+        self.client_rootdir = client_rootdir
+        self.session_rootdir = session_rootdir
+        self.ssh_rootdir = ssh_rootdir
+
         paramiko.SSHClient.__init__(self, *args, **kwargs)
 
     def __del__(self):
@@ -368,6 +377,8 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
                                            info_backend=self._info_backend,
                                            list_backend=self._list_backend,
                                            proxy_backend=self._proxy_backend,
+                                           client_rootdir=self.client_rootdir,
+                                           session_rootdir=self.session_rootdir,
                                            **kwargs)
 
         if session_name is not None:
diff --git a/x2go/backends/proxy/_nx3.py b/x2go/backends/proxy/_nx3.py
index 01eee7d..f229c3e 100644
--- a/x2go/backends/proxy/_nx3.py
+++ b/x2go/backends/proxy/_nx3.py
@@ -38,8 +38,6 @@ import x2go.log as log
 import base
 
 from x2go.defaults import X2GOCLIENT_OS as _X2GOCLIENT_OS
-from x2go.defaults import LOCAL_HOME as _LOCAL_HOME
-from x2go.defaults import X2GO_SESSION_ROOTDIR as _X2GO_SESSION_ROOTDIR
 
 class X2goProxyNX3(base.X2goProxyBASE):
     """\
@@ -55,7 +53,7 @@ class X2goProxyNX3(base.X2goProxyBASE):
 
         """
         base.X2goProxyBASE.__init__(self, *args, **kwargs)
-        
+
         # setting some default environment variables, nxproxy paths etc.
         if _X2GOCLIENT_OS == "Windows":
             _nxproxy_paths = [
@@ -72,7 +70,7 @@ class X2goProxyNX3(base.X2goProxyBASE):
             self.PROXY_CMD = "/usr/bin/nxproxy"
         self.PROXY_ENV.update({
             "NX_CLIENT": "/bin/true",
-            "NX_ROOT": os.path.join(_LOCAL_HOME, _X2GO_SESSION_ROOTDIR)
+            "NX_ROOT": self.session_rootdir
         })
         self.PROXY_MODE = '-S'
         if _X2GOCLIENT_OS == "Windows":
diff --git a/x2go/backends/proxy/base.py b/x2go/backends/proxy/base.py
index b894d91..585492e 100644
--- a/x2go/backends/proxy/base.py
+++ b/x2go/backends/proxy/base.py
@@ -68,7 +68,10 @@ class X2goProxyBASE(threading.Thread):
     fw_tunnel = None
     proxy = None
 
-    def __init__(self, session_info=None, ssh_transport=None, session_log="session.log", logger=None, loglevel=log.loglevel_DEFAULT, ):
+    def __init__(self, session_info=None, 
+                 session_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSION_ROOTDIR), 
+                 ssh_transport=None, session_log="session.log", 
+                 logger=None, loglevel=log.loglevel_DEFAULT, ):
         """\
         @param session_info: session information provided as an C{X2goServerSessionInfo} backend
             class object
@@ -91,6 +94,7 @@ class X2goProxyBASE(threading.Thread):
             self.logger = copy.deepcopy(logger)
         self.logger.tag = __NAME__
 
+        self.session_rootdir = session_rootdir
         self.session_info = session_info
         self.ssh_transport = ssh_transport
         self.session_log = session_log
diff --git a/x2go/backends/terminal/_stdout.py b/x2go/backends/terminal/_stdout.py
index d199f3d..f7e8c8e 100644
--- a/x2go/backends/terminal/_stdout.py
+++ b/x2go/backends/terminal/_stdout.py
@@ -50,6 +50,7 @@ from x2go.cleanup import x2go_cleanup
 # we hide the default values from epydoc (that's why we transform them to _UNDERSCORE variables)
 from x2go.defaults import LOCAL_HOME as _LOCAL_HOME
 from x2go.defaults import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER
+from x2go.defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
 from x2go.defaults import X2GO_SESSION_ROOTDIR as _X2GO_SESSION_ROOTDIR
 
 from x2go.backends.info import X2goServerSessionInfo as _X2goServerSessionInfo
@@ -224,6 +225,8 @@ class X2goTerminalSessionSTDOUT(object):
                  list_backend=_X2goServerSessionList,
                  proxy_backend=_X2goProxy,
                  printing_backend=_X2goClientPrinting,
+                 client_rootdir=os.path.join(_LOCAL_HOME, _X2GO_CLIENT_ROOTDIR),
+                 session_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSION_ROOTDIR),
                  client_instance=None,
                  logger=None, loglevel=log.loglevel_DEFAULT):
         """\
@@ -249,6 +252,9 @@ class X2goTerminalSessionSTDOUT(object):
         self.control_session = control_session
         self.reverse_tunnels = self.control_session.get_transport().reverse_tunnels
 
+        self.client_rootdir = client_rootdir
+        self.session_rootdir = session_rootdir
+
         self.params = X2goSessionParams()
 
         self.params.geometry = geometry
@@ -265,7 +271,7 @@ class X2goTerminalSessionSTDOUT(object):
         self.params.rdp_server = rdp_server
         self.params.rdp_options = rdp_options
 
-        self.params.rootdir = (type(rootdir) is types.StringType) and rootdir or os.path.join(_LOCAL_HOME,_X2GO_SESSION_ROOTDIR)
+        self.params.rootdir = (type(rootdir) is types.StringType) and rootdir or self.session_rootdir
         self.params.update()
 
         self.profile_name = profile_name
@@ -668,13 +674,15 @@ class X2goTerminalSessionSTDOUT(object):
         # local path may be a Windows path, so we use the path separator of the local system
         self.session_info.local_container = os.path.join(self.params.rootdir, 'S-%s' % self.session_info.name)
         # remote path is always a UniX path...
-        self.session_info.remote_container = '%s/%s/C-%s' % (self.control_session._x2go_remote_home,
-                                                             _X2GO_SESSION_ROOTDIR,
-                                                             self.session_info.name,
-                                                            )
+        self.session_info.remote_container = '%s/.x2go/C-%s' % (self.control_session._x2go_remote_home,
+                                                                self.session_info.name,
+                                                               )
 
         # set up SSH tunnel for X11 graphical elements
-        self.proxy = self.proxy_class(session_info=self.session_info, ssh_transport=self.control_session.get_transport(), logger=self.logger)
+        self.proxy = self.proxy_class(session_info=self.session_info, 
+                                      session_rootdir=self.session_rootdir, 
+                                      ssh_transport=self.control_session.get_transport(), 
+                                      logger=self.logger)
         self.proxy_subprocess = self.proxy.start_proxy()
         self.active_threads.append(self.proxy)
 
@@ -712,10 +720,9 @@ class X2goTerminalSessionSTDOUT(object):
         # local path may be a Windows path, so we use the path separator of the local system
         self.session_info.local_container = os.path.join(self.params.rootdir, 'S-%s' % self.session_info.name)
         # remote path is always a UniX path...
-        self.session_info.remote_container = '%s/%s/C-%s' % (self.control_session._x2go_remote_home, 
-                                                             _X2GO_SESSION_ROOTDIR,
-                                                             self.session_info.name,
-                                                            )
+        self.session_info.remote_container = '%s/.x2go/C-%s' % (self.control_session._x2go_remote_home, 
+                                                                self.session_info.name,
+                                                               )
         return self.ok()
 
     def suspend(self):
diff --git a/x2go/client.py b/x2go/client.py
index 1f43f3f..3a483bf 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -136,6 +136,8 @@ from defaults import X2GOCLIENT_OS as _X2GOCLIENT_OS
 from defaults import LOCAL_HOME as _LOCAL_HOME
 from defaults import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER
 from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
+from defaults import X2GO_SESSION_ROOTDIR as _X2GO_SESSION_ROOTDIR
+from defaults import X2GO_SSH_ROOTDIR as _X2GO_SSH_ROOTDIR
 
 from x2go.backends.control import X2goControlSession as _X2goControlSession
 from x2go.backends.terminal import X2goTerminalSession as _X2goTerminalSession
@@ -169,6 +171,9 @@ class X2goClient(object):
                  profiles_backend=_X2goSessionProfiles,
                  settings_backend=_X2goClientSettings,
                  printing_backend=_X2goClientPrinting,
+                 client_rootdir=os.path.join(_LOCAL_HOME, _X2GO_CLIENT_ROOTDIR),
+                 session_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSION_ROOTDIR),
+                 ssh_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SSH_ROOTDIR),
                  logger=None, loglevel=log.loglevel_DEFAULT):
         """\
         @param logger: you can pass an L{X2goLogger} object to the
@@ -197,6 +202,10 @@ class X2goClient(object):
         self.settings_backend = settings_backend
         self.printing_backend = printing_backend
 
+        self.client_rootdir = client_rootdir
+        self.session_rootdir = session_rootdir
+        self.ssh_rootdir = ssh_rootdir
+
         if _X2GOCLIENT_OS == 'Windows' and start_xserver:
             self.client_xconfig = X2goClientXConfig(logger=self.logger)
             if not self.client_xconfig.known_server:
@@ -380,6 +389,9 @@ class X2goClient(object):
                                                       proxy_backend=self.proxy_backend,
                                                       settings_backend=self.settings_backend,
                                                       printing_backend=self.printing_backend,
+                                                      client_rootdir=self.client_rootdir,
+                                                      session_rootdir=self.session_rootdir,
+                                                      ssh_rootdir=self.ssh_rootdir,
                                                       **_params)
 
         self.logger('initializing X2go session...', log.loglevel_NOTICE, tag=self._logger_tag)
diff --git a/x2go/defaults.py b/x2go/defaults.py
index 24b606e..1f17cba 100644
--- a/x2go/defaults.py
+++ b/x2go/defaults.py
@@ -37,6 +37,7 @@ X2GOCLIENT_OS = platform.system()
 LOCAL_HOME = os.path.expanduser('~')
 X2GO_SESSION_ROOTDIR = '.x2go'
 X2GO_CLIENT_ROOTDIR = '.x2goclient'
+X2GO_SSH_ROOTDIR = os.path.join('.x2go','.ssh')
 
 # setting OS dependent variables
 if X2GOCLIENT_OS == "Windows":
diff --git a/x2go/mime_export.py b/x2go/mime_export.py
index 8e5a864..7302ca0 100644
--- a/x2go/mime_export.py
+++ b/x2go/mime_export.py
@@ -42,8 +42,6 @@ if sys.platform == 'win32':
 import log
 import defaults
 # we hide the default values from epydoc (that's why we transform them to _UNDERSCORE variables)
-from defaults import LOCAL_HOME as _LOCAL_HOME
-from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
 from defaults import X2GO_CLIENTPRINTING_DEFAULTS as _X2GO_CLIENTPRINTING_DEFAULTS
 from defaults import X2GO_PRINTING_CONFIGFILES as _X2GO_PRINTING_CONFIGFILES
 import utils
diff --git a/x2go/printactions.py b/x2go/printactions.py
index 40e4740..a895161 100644
--- a/x2go/printactions.py
+++ b/x2go/printactions.py
@@ -48,8 +48,6 @@ else:
 import log
 import defaults
 # we hide the default values from epydoc (that's why we transform them to _UNDERSCORE variables)
-from defaults import LOCAL_HOME as _LOCAL_HOME
-from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
 import utils
 import x2go_exceptions
 
diff --git a/x2go/printqueue.py b/x2go/printqueue.py
index bff0892..266ba61 100644
--- a/x2go/printqueue.py
+++ b/x2go/printqueue.py
@@ -37,8 +37,6 @@ import gevent
 import log
 import defaults
 # we hide the default values from epydoc (that's why we transform them to _UNDERSCORE variables)
-from defaults import LOCAL_HOME as _LOCAL_HOME
-from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
 from backends.printing import X2goClientPrinting as _X2goClientPrinting
 
 
diff --git a/x2go/registry.py b/x2go/registry.py
index 3b03b31..acdb5d4 100644
--- a/x2go/registry.py
+++ b/x2go/registry.py
@@ -22,6 +22,7 @@ X2goSessionRegistry class - the X2goClient's session registry backend
 """
 __NAME__ = 'x2gosessregistry-pylib'
 
+import os
 import copy
 import types
 import uuid
@@ -43,6 +44,11 @@ from x2go.backends.proxy import X2goProxy as _X2goProxy
 from x2go.backends.settings import X2goClientSettings as _X2goClientSettings
 from x2go.backends.printing import X2goClientPrinting as _X2goClientPrinting
 
+from defaults import LOCAL_HOME as _LOCAL_HOME
+from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
+from defaults import X2GO_SESSION_ROOTDIR as _X2GO_SESSION_ROOTDIR
+from defaults import X2GO_SSH_ROOTDIR as _X2GO_SSH_ROOTDIR
+
 class X2goSessionRegistry(object):
     """\
     STILL UNDOCUMENTED
@@ -127,6 +133,9 @@ class X2goSessionRegistry(object):
                  proxy_backend=_X2goProxy,
                  settings_backend=_X2goClientSettings,
                  printing_backend=_X2goClientPrinting,
+                 client_rootdir=os.path.join(_LOCAL_HOME,_X2GO_CLIENT_ROOTDIR),
+                 session_rootdir=os.path.join(_LOCAL_HOME,_X2GO_SESSION_ROOTDIR),
+                 ssh_rootdir=os.path.join(_LOCAL_HOME,_X2GO_SSH_ROOTDIR),
                  **kwargs):
 
         control_session = None
@@ -142,6 +151,9 @@ class X2goSessionRegistry(object):
                                 proxy_backend=proxy_backend,
                                 settings_backend=settings_backend,
                                 printing_backend=printing_backend,
+                                client_rootdir=client_rootdir,
+                                session_rootdir=session_rootdir,
+                                ssh_rootdir=ssh_rootdir,
                                 logger=self.logger, **kwargs)
 
         session_uuid = s._X2goSession__get_uuid()
diff --git a/x2go/session.py b/x2go/session.py
index da8a3bc..7ad9c30 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -22,6 +22,7 @@ X2goSession class - the X2goClient's session backend
 """
 __NAME__ = 'x2gosession-pylib'
 
+import os
 import copy
 import types
 import uuid
@@ -43,6 +44,11 @@ from x2go.backends.profiles import X2goSessionProfiles as _X2goSessionProfiles
 from x2go.backends.settings import X2goClientSettings as _X2goClientSettings
 from x2go.backends.printing import X2goClientPrinting as _X2goClientPrinting
 
+from defaults import LOCAL_HOME as _LOCAL_HOME
+from defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
+from defaults import X2GO_SESSION_ROOTDIR as _X2GO_SESSION_ROOTDIR
+from defaults import X2GO_SSH_ROOTDIR as _X2GO_SSH_ROOTDIR
+
 from defaults import SUPPORTED_SOUND, SUPPORTED_PRINTING, SUPPORTED_FOLDERSHARING
 
 # options of the paramiko.SSHClient().connect()
@@ -70,6 +76,9 @@ class X2goSession(object):
                  proxy_backend=_X2goProxy,
                  settings_backend=_X2goClientSettings,
                  printing_backend=_X2goClientPrinting,
+                 client_rootdir=os.path.join(_LOCAL_HOME, _X2GO_CLIENT_ROOTDIR),
+                 session_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSION_ROOTDIR),
+                 ssh_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SSH_ROOTDIR),
                  known_hosts=None,
                  logger=None, loglevel=log.loglevel_DEFAULT,
                  **params):
@@ -100,6 +109,9 @@ class X2goSession(object):
         self._proxy_backend = proxy_backend
         self._settings_backend = settings_backend
         self._printing_backend = printing_backend
+        self.client_rootdir = client_rootdir
+        self.session_rootdir = session_rootdir
+        self.ssh_rootdir = ssh_rootdir
 
         # the client instance is not deeply copiable
         _client_instance=None
@@ -134,6 +146,9 @@ class X2goSession(object):
                                                    info_backend=info_backend,
                                                    list_backend=list_backend,
                                                    proxy_backend=proxy_backend,
+                                                   client_rootdir=client_rootdir,
+                                                   session_rootdir=session_rootdir,
+                                                   ssh_rootdir=ssh_rootdir,
                                                    logger=logger)
         else:
             self.control_session = control_session


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