[X2Go-Commits] python-x2go.git - twofactorauth (branch) updated: 58ece9e00def0c33b67b591eb075b025f59f79d7

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


The branch, twofactorauth has been updated
       via  58ece9e00def0c33b67b591eb075b025f59f79d7 (commit)
      from  84aaee3290745b91dc3629e905c3076c792d2a64 (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/profiles/_file.py |    3 +-
 x2go/inifiles.py                |   60 +++++++++++++--------------------------
 x2go/log.py                     |    7 ++++-
 x2go/utils.py                   |    8 +++++-
 x2go/xserver.py                 |    2 +-
 5 files changed, 34 insertions(+), 46 deletions(-)

The diff of changes is:
diff --git a/x2go/backends/profiles/_file.py b/x2go/backends/profiles/_file.py
index 37e94a4..4c4ea2c 100644
--- a/x2go/backends/profiles/_file.py
+++ b/x2go/backends/profiles/_file.py
@@ -72,8 +72,7 @@ class X2goSessionProfilesFILE(inifiles.X2goIniFile):
             for key, default_value in self.defaultSessionProfile.iteritems():
                 if not self.iniConfig.has_option(session_profile, key):
                     self._storeValue(session_profile, key, default_value)
-        self._updateDataObject()
-
+        
     def __call__(self, profile_id_or_name):
         """\
         STILL UNDOCUMENTED
diff --git a/x2go/inifiles.py b/x2go/inifiles.py
index 2e1fbac..b20b9fc 100644
--- a/x2go/inifiles.py
+++ b/x2go/inifiles.py
@@ -92,6 +92,12 @@ class X2goIniFile(object):
         self.iniConfig = ConfigParser.SafeConfigParser()
         self.iniConfig.optionxform = str
 
+        for file_name in config_files:
+            if file_name.startswith(_current_home):
+                if not os.path.exists(file_name):
+                    utils.touch_file(file_name)
+                break
+
         self.logger('proposed config files are %s' % config_files, log.loglevel_INFO, )
         _found_config_files = self.iniConfig.read(config_files)
         self.logger('config files found: %s' % _found_config_files or 'none', log.loglevel_INFO, )
@@ -104,8 +110,7 @@ class X2goIniFile(object):
 
         self.config_files = _found_config_files
         self._fill_defaults()
-        self._updateDataObject()
-
+        
     def __repr__(self):
         result = 'X2goIniFile('
         for p in dir(self):
@@ -129,14 +134,13 @@ class X2goIniFile(object):
         @type value: C{str}, C{list}, C{bool}, ...
 
         """
-        if type(value) is types.UnicodeType:
-            self.iniConfig.set(section,key,value)
-        elif type(value) is types.StringType:
-            self.iniConfig.set(section,key,unicode(value))
-        elif type(value) is types.BooleanType:
-            self.iniConfig.set(section,key,unicode(int(value)))
+        if type(value) == type(u''):
+            value = value.encode(utils.get_encoding())
+            
+        if type(value) is types.BooleanType:
+            self.iniConfig.set(section, key, str(int(value)))
         else:
-            self.iniConfig.set(section,key,unicode(value))
+            self.iniConfig.set(section, key, str(value))
 
     def _fill_defaults(self):
         """\
@@ -152,8 +156,7 @@ class X2goIniFile(object):
                 if not self.iniConfig.has_section(section):
                     self.iniConfig.add_section(section)
                 self._storeValue(section, key, value)
-        self._updateDataObject
-
+        
     def update_value(self, section, key, value):
         """\
         Change a value for a given section and key. This method
@@ -171,8 +174,7 @@ class X2goIniFile(object):
             self.iniConfig.add_section(section)
         self._storeValue(section, key, value)
         self.write_config = True
-        self._updateDataObject()
-
+        
     def write(self):
         """\
         Write the ini file modifications (SafeConfigParser object) from RAM to disk.
@@ -216,6 +218,8 @@ class X2goIniFile(object):
         @rtype: class
 
         """
+        if key_type is None:
+            key_type = self.get_type(section, key)
         if self.iniConfig.has_option(section, key):
             if key_type is types.BooleanType:
                 return self.iniConfig.getboolean(section, key)
@@ -228,37 +232,11 @@ class X2goIniFile(object):
                 else:
                     raise TypeError
             else:
-                return self.iniConfig.get(section, key)
+                _val = self.iniConfig.get(section, key)
+                return _val.decode(utils.get_encoding())
     get = get_value
     __call__ = get_value
 
-    def _updateDataObject(self):
-        """\
-        This routine transfers the ini file's config items into simple
-        object data properties of the form::
-
-           <X2goIniFile instance>.<section_name>.<option_name> = value
-
-        """
-        class ini_section(object):
-            def __str__(self):
-                return self.name
-            def __repr__(self):
-                return "<%s instance: %s>" % (self.__class__, self.name)
-            def __init__(self, name):
-                self.name = name
-            def set_option(self, option_name, value):
-                setattr(self, option_name.lower(), value)
-
-        for section_name in self.iniConfig.sections():
-            section = ini_section(section_name)
-            for option_name in self.iniConfig.options(section.name):
-                if section.name in self.defaultValues and option_name in self.defaultValues[section.name]:
-                    section.set_option(option_name, self.get(section.name, option_name, self.get_type(section.name, option_name)))
-                else:
-                    section.set_option(option_name, self.get(section.name, option_name))
-            setattr(self, section.name.lower(), section)
-
     @property
     def printable_config_file(self):
         """\
diff --git a/x2go/log.py b/x2go/log.py
index 17ef354..7fecb99 100644
--- a/x2go/log.py
+++ b/x2go/log.py
@@ -23,7 +23,8 @@ X2goLogger class - flexible handling of log and debug output.
 __NAME__ = 'x2gologger-pylib'
 
 # modules
-import os, sys
+import os
+import sys
 
 loglevel_NONE = 0
 loglevel_ERROR = 8
@@ -38,6 +39,9 @@ loglevel_DEFAULT = loglevel_ERROR | loglevel_WARN | loglevel_NOTICE
 Default loglevel of X2goLogger objects is: NOTICE & WARN & ERROR
 """
 
+# Python X2go modules
+import utils
+
 class X2goLogger(object):
     """\
     A simple logger class, that is used by all Python X2go classes.
@@ -89,6 +93,7 @@ class X2goLogger(object):
         if loglevel & self.loglevel:
 
             msg = msg.replace('\n', ' ')
+            msg = msg.encode(utils.get_encoding())
 
             if self.tag is not None:
                 self.destination.write('%s[%s] (%s) %s: %s\n' % (self.name, self.progpid, tag, self._loglevel_NAMES[loglevel].upper(), msg))
diff --git a/x2go/utils.py b/x2go/utils.py
index 5624928..b45da47 100644
--- a/x2go/utils.py
+++ b/x2go/utils.py
@@ -25,6 +25,7 @@ __NAME__ = 'x2goutils-pylib'
 
 import sys
 import os
+import locale
 import re
 import types
 import copy
@@ -290,4 +291,9 @@ def detect_unused_port(bind_address='', preferred_port=None):
         ipaddr, port = sock.getsockname()
     return port
 
-
+def get_encoding():
+    try:
+        encoding = locale.getdefaultlocale()[1]
+    except:
+        encoding = sys.getdefaultencoding()
+    return encoding
diff --git a/x2go/xserver.py b/x2go/xserver.py
index 850dcd7..bd31aa3 100644
--- a/x2go/xserver.py
+++ b/x2go/xserver.py
@@ -87,7 +87,7 @@ class X2goClientXConfig(inifiles.X2goIniFile):
         STILL UNDOCUMENTED
 
         """
-        return self.xservers.known_xservers
+        return self.get_value('XServers', 'known_xservers')
 
     @property
     def installed_xservers(self):


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