Mageia Bugzilla – Attachment 6815 Details for
Bug 13837
msec-gui: error message and does not work (UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 16: ordinal not in range(128))
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
Impoved tv's patch
0001-Add-a-Narg-function-to-deal-the-encoding-strings.patch (text/plain), 17.03 KB, created by
papoteur
on 2015-07-05 11:59:48 CEST
(
hide
)
Description:
Impoved tv's patch
Filename:
MIME Type:
Creator:
papoteur
Created:
2015-07-05 11:59:48 CEST
Size:
17.03 KB
patch
obsolete
>From 7f0b145ca728d0ba1c3e96019bd1220c0eb8bf5c Mon Sep 17 00:00:00 2001 >From: Papoteur <papoteur@mageialinux-online.org> >Date: Sun, 5 Jul 2015 11:54:47 +0200 >Subject: [PATCH] Add a Narg function to deal the encoding strings. #mga13837 > >--- > src/msec/config.py | 41 ++++++++++++++++++++++++++++++++--------- > src/msec/libmsec.py | 51 ++++++++++++++++++++++++++++++++------------------- > src/msec/msecgui.py | 17 ++++++++++++----- > src/msec/tools.py | 9 +++++---- > 4 files changed, 81 insertions(+), 37 deletions(-) > >diff --git a/src/msec/config.py b/src/msec/config.py >index c8e87f6..9f41998 100755 >--- a/src/msec/config.py >+++ b/src/msec/config.py >@@ -81,6 +81,9 @@ SETTINGS_PERIODIC = [] > # checks that support exceptions - defined by 'audit' plugin > CHECKS_WITH_EXCEPTIONS = [] > >+# system encoding >+SYS_ENC = sys.getfilesystemencoding() >+ > # localized help > try: > from help import HELP >@@ -168,6 +171,26 @@ def merge_with_baselevel(log, config, base_level, load_func, root=''): > config.merge(levelconf) > > >+def to_utf8(s): >+ """ Returs string after decoding if needed """ >+ try: >+ s.decode() >+ return s >+ except: >+ return str(s).decode("utf-8") >+ >+def Narg(s): >+ """ Returs string after decoding if needed """ >+ try: >+ s.decode() >+ return s >+ except: >+ try: >+ t=str(s) >+ except: >+ return s >+ return t.decode(SYS_ENC) >+ > # {{{ MsecConfig > class MsecConfig: > """Msec configuration parser""" >@@ -208,7 +231,7 @@ class MsecConfig: > try: > fd = open(self.config) > except: >- self.log.error(_("Unable to load configuration file %s: %s") % (self.config, sys.exc_value[1])) >+ self.log.error(_("Unable to load configuration file %s: %s") % (self.config, Narg(sys.exc_value[1]))) > return False > for line in fd.readlines(): > line = line.strip() >@@ -222,7 +245,7 @@ class MsecConfig: > option, val = line.split("=", 1) > self.options[option] = val > except: >- self.log.warn(_("Bad config option: %s") % line) >+ self.log.warn(_("Bad config option: %s") % Narg(line)) > continue > fd.close() > return True >@@ -257,7 +280,7 @@ class MsecConfig: > try: > fd = open(self.config, "w") > except: >- self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) >+ self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) > return False > for comment in self.comments: > print >>fd, comment >@@ -316,7 +339,7 @@ class ExceptionConfig: > fd = open(self.config) > except: > # this file is optional, so if it is not found that's not fatal >- self.log.info(_("loading exceptions file %s: %s") % (self.config, sys.exc_value[1])) >+ self.log.info(_("loading exceptions file %s: %s") % (self.config, Narg(sys.exc_value[1]))) > self.log.info(_("No exceptions loaded")) > return False > for line in fd.readlines(): >@@ -331,7 +354,7 @@ class ExceptionConfig: > option, val = line.split(" ", 1) > self.options.append((option, val)) > except: >- self.log.warn(_("Bad config option: %s") % line) >+ self.log.warn(_("Bad config option: %s") % Narg(line)) > continue > fd.close() > return True >@@ -370,7 +393,7 @@ class ExceptionConfig: > try: > fd = open(self.config, "w") > except: >- self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) >+ self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) > return False > for comment in self.comments: > print >>fd, comment >@@ -420,7 +443,7 @@ class PermConfig(MsecConfig): > try: > fd = open(self.config) > except: >- self.log.error(_("Unable to load configuration file %s: %s") % (self.config, sys.exc_value)) >+ self.log.error(_("Unable to load configuration file %s: %s") % (self.config, Narg(sys.exc_value))) > return False > for line in fd.readlines(): > line = line.strip() >@@ -439,7 +462,7 @@ class PermConfig(MsecConfig): > self.options_order.append(file) > except: > traceback.print_exc() >- self.log.warn(_("Bad config option: %s") % line) >+ self.log.warn(_("Bad config option: %s") % Narg(line)) > continue > fd.close() > return True >@@ -465,7 +488,7 @@ class PermConfig(MsecConfig): > try: > fd = open(self.config, "w") > except: >- self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) >+ self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) > return False > for comment in self.comments: > print >>fd, comment >diff --git a/src/msec/libmsec.py b/src/msec/libmsec.py >index d456eab..4b7e20d 100755 >--- a/src/msec/libmsec.py >+++ b/src/msec/libmsec.py >@@ -262,7 +262,7 @@ class ConfigFiles: > if res: > s = substitute_re_result(res, a[1]) > if commit: >- self.log.info(_('%s modified so launched command: %s') % (f, s)) >+ self.log.info(_('%s modified so launched command: %s') % (Narg(f), Narg(s))) > cmd = commands.getstatusoutput(s) > cmd = [0, ''] > if cmd[0] == 0: >@@ -367,32 +367,41 @@ class ConfigFile: > return link > > def write(self): >+ if not (type(self.path) == unicode): >+ self.pathN = Narg(self.path) >+ else: >+ self.pathN = self.path >+ > if self.is_deleted: > if self.exists(): > try: > os.unlink(self.path) > except: >- error('unlink %s: %s' % (self.path, str(sys.exc_value))) >- self.log.info(_('deleted %s') % (self.path,)) >+ error('unlink %s: %s' % (self.pathN, str(sys.exc_value))) >+ self.log.info(_('deleted %s') % (self.pathN,)) > elif self.is_touched: > if os.path.exists(self.path): > try: > os.utime(self.path, None) > except: >- self.log.error('utime %s: %s' % (self.path, str(sys.exc_value))) >+ self.log.error('utime %s: %s' % (self.pathN, str(sys.exc_value))) > elif self.suffix and os.path.exists(self.path + self.suffix): > move(self.path + self.suffix, self.path) > try: > os.utime(self.path, None) > except: >- self.log.error('utime %s: %s' % (self.path, str(sys.exc_value))) >+ self.log.error('utime %s: %s' % (self.pathN, str(sys.exc_value))) > else: > self.lines = [] > self.is_modified = 1 > file = open(self.path, 'w') > file.close() >- self.log.info(_('touched file %s') % (self.path,)) >+ self.log.info(_('touched file %s') % (self.pathN,)) > elif self.sym_link: >+ if not (type(self.sym_link) == unicode): >+ self.sym_linkN = Narg(self.sym_link) >+ else: >+ self.sym_linkN = self.sym_link > done = 0 > if self.exists(): > full = os.lstat(self.path) >@@ -404,17 +413,21 @@ class ConfigFile: > try: > os.unlink(self.path) > except: >- self.log.error('unlink %s: %s' % (self.path, str(sys.exc_value))) >- self.log.info(_('deleted %s') % (self.path,)) >+ self.log.error('unlink %s: %s' % (self.pathN, str(sys.exc_value))) >+ self.log.info(_('deleted %s') % (self.pathN,)) > if not done: > try: > os.symlink(self.sym_link, self.path) > except: >- self.log.error('symlink %s %s: %s' % (self.sym_link, self.path, str(sys.exc_value))) >- self.log.info(_('made symbolic link from %s to %s') % (self.sym_link, self.path)) >+ self.log.error('symlink %s %s: %s' % (self.sym_linkN, self.path, str(sys.exc_value))) >+ self.log.info(_('made symbolic link from %s to %s') % (self.sym_linkN, self.path)) > elif self.is_moved: >+ if not (type(self.suffix) == unicode): >+ self.suffixN = Narg(self.suffix) >+ else: >+ self.suffixN = self.suffix > move(self.path, self.path + self.suffix) >- self.log.info(_('moved file %s to %s') % (self.path, self.path + self.suffix)) >+ self.log.info(_('moved file %s to %s') % (self.path, self.path + self.suffixN)) > self.meta.modified(self.path) > elif self.is_modified: > content = string.join(self.lines, "\n") >@@ -682,7 +695,7 @@ class MSEC: > self.plugins[plugin_name] = plugin > self.log.debug("Loaded plugin '%s'" % plugin_f) > except: >- self.log.error(_("Error loading plugin '%s' from %s: %s") % (plugin_f, file, sys.exc_value)) >+ self.log.error(_("Error loading plugin '%s' from %s: %s") % (plugin_f, file, Narg(sys.exc_value))) > > def reset(self): > """Resets the configuration""" >@@ -699,7 +712,7 @@ class MSEC: > plugin_, callback = name.split(".", 1) > except: > # bad format? >- self.log.error(_("Invalid callback: %s") % (name)) >+ self.log.error(_("Invalid callback: %s") % (Narg(name))) > return None > # is it a main function or a plugin? > if plugin_ == config.MAIN_LIB: >@@ -708,14 +721,14 @@ class MSEC: > if plugin_ in self.plugins: > plugin = self.plugins[plugin_] > else: >- self.log.info(_("Plugin %s not found") % plugin_) >+ self.log.info(_("Plugin %s not found") % to_utf8(plugin_)) > return self.log.info > return None > try: > func = getattr(plugin, callback) > return func > except: >- self.log.info(_("Not supported function '%s' in '%s'") % (callback, plugin)) >+ self.log.info(_("Not supported function '%s' in '%s'") % (Narg(callback), Narg(plugin))) > traceback.print_exc() > return None > >@@ -871,7 +884,7 @@ class PERMS: > try: > os.chown(file, newuser, -1) > except: >- self.log.error(_("Error changing user on %s: %s") % (file, sys.exc_value)) >+ self.log.error(_("Error changing user on %s: %s") % (file, Narg(sys.exc_value))) > else: > self.log.warn(_("Wrong owner of %s: should be %s") % (file, self.get_user_name(newuser))) > if newgroup != None: >@@ -880,7 +893,7 @@ class PERMS: > try: > os.chown(file, -1, newgroup) > except: >- self.log.error(_("Error changing group on %s: %s") % (file, sys.exc_value)) >+ self.log.error(_("Error changing group on %s: %s") % (file, Narg(sys.exc_value))) > else: > self.log.warn(_("Wrong group of %s: should be %s") % (file, self.get_group_name(newgroup))) > # permissions should be last, as chown resets them >@@ -891,7 +904,7 @@ class PERMS: > try: > os.chmod(file, newperm) > except: >- self.log.error(_("Error changing permissions on %s: %s") % (file, sys.exc_value)) >+ self.log.error(_("Error changing permissions on %s: %s") % (file, Narg(sys.exc_value))) > else: > self.log.warn(_("Wrong permissions of %s: should be %o") % (file, newperm)) > >@@ -913,7 +926,7 @@ class PERMS: > # problem setting setfacl > self.log.error(_("Unable to add filesystem-specific ACL %s to %s") % (acluser, file)) > except: >- self.log.error(_("Error changing acl on %s: %s") % (file, sys.exc_value)) >+ self.log.error(_("Error changing acl on %s: %s") % (file, Narg(str(sys.exc_value)))) > else: > self.log.warn(_("Wrong acl of %s") % (file)) > >diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py >index 7a2ceb7..d468b15 100755 >--- a/src/msec/msecgui.py >+++ b/src/msec/msecgui.py >@@ -14,6 +14,8 @@ from textwrap import wrap > from threading import Thread > import time > >+from config import Narg >+ > # PyGTK > import warnings > warnings.filterwarnings('error', module='gtk') >@@ -379,14 +381,14 @@ class MsecGui: > > # TODO: FIX > for name, changes in allchanges: >- label = Gtk.Label(label=_('<b>%s:</b> <i>%s</i>\n') % (name, changes)) >+ label = Gtk.Label(label=_('<b>%s:</b> <i>%s</i>\n') % (Narg(name), Narg(changes))) > label.set_use_markup(True) > label.set_property("xalign", 0.0) > vbox.pack_start(label, False, False, padding=DEFAULT_SPACING) > # see if there were any changes to system files > for msg in messages['info']: > if msg.find(config.MODIFICATIONS_FOUND) != -1 or msg.find(config.MODIFICATIONS_NOT_FOUND) != -1: >- label = Gtk.Label(label=_("<b>MSEC test run results:</b> <i>%s</i>") % msg) >+ label = Gtk.Label(label=_("<b>MSEC test run results:</b> <i>%s</i>") % Narg(msg)) > label.set_line_wrap(True) > label.set_use_markup(True) > label.set_property("xalign", 0.0) >@@ -659,7 +661,7 @@ class MsecGui: > for check, logfile, updated_n, updated in tools.periodic_check_status(log): > if not updated: > updated = _("Never") >- label = Gtk.Label(label=_("Check: %s. Last run: %s") % (check, updated)) >+ label = Gtk.Label(label=_("Check: %s. Last run: %s") % (Narg(check), Narg(updated))) > label.set_property("xalign", 0.0) > table.attach(label, 2, 3, row, row + 1, Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL, 0, 0, 0) > >@@ -691,7 +693,7 @@ class MsecGui: > with open(logfile, "r") as fd: > data = fd.readlines() > except: >- data = [_("Unable to read log file: %s") % sys.exc_value] >+ data = [_("Unable to read log file: %s") % Narg(sys.exc_value)] > dialog = Gtk.Dialog(_("Periodic check results"), > self.window, > 0, >@@ -724,7 +726,7 @@ class MsecGui: > flags=0, > type=Gtk.MessageType.INFO, > buttons=Gtk.ButtonsType.YES_NO) >- dialog.set_markup(_("Do you want to run the <b>%s</b> periodic check? Please note that it could take a considerable time to finish.") % check) >+ dialog.set_markup(_("Do you want to run the <b>%s</b> periodic check? Please note that it could take a considerable time to finish.") % Narg(check)) > dialog.show_all() > ret = dialog.run() > dialog.destroy() >@@ -1643,6 +1645,11 @@ class MsecGui: > > val_def = conf_def.get(param) > >+ for i in [param, descr, value]: >+ i = Narg(i) >+ # if not (type(i) == unicode) and not config.try_decode(i): >+ # i = i.decode(config.SYS_ENC) >+ > # asks for new parameter value > dialog = Gtk.Dialog(_("Select new value for %s") % (param), > self.window, 0, >diff --git a/src/msec/tools.py b/src/msec/tools.py >index 3a079cd..cb9d1bf 100755 >--- a/src/msec/tools.py >+++ b/src/msec/tools.py >@@ -9,6 +9,8 @@ import sys > import time > import locale > >+from config import Narg, SYS_ENC >+ > # localization > import gettext > try: >@@ -30,7 +32,7 @@ def find_firewall_info(log): > if l[:3] == "-A ": > firewall_entries.append(l.strip()) > except: >- log.error(_("Unable to parse firewall configuration: %s") % sys.exc_value) >+ log.error(_("Unable to parse firewall configuration: %s") % Narg(sys.exc_value)) > # not find out if the firewall is enabled > if len(firewall_entries) == 0: > firewall_status = _("Disabled") >@@ -44,10 +46,9 @@ def get_updates_status(log, updatedir="/var/lib/urpmi"): > try: > ret = os.stat(updatedir) > updated = time.localtime(ret[stat.ST_MTIME]) >- updated_s = time.strftime(locale.nl_langinfo(locale.D_T_FMT), updated) >- status = _("Last updated: %s") % updated_s >+ status = _("Last updated: %s") % Narg(updated_s) > except: >- log.error(_("Unable to access %s: %s") % (updatedir, sys.exc_value)) >+ log.error(_("Unable to access %s: %s") % (updatedir, Narg(sys.exc_value))) > status = _("Unable to determine update status") > return status > >-- >2.3.8 >
From 7f0b145ca728d0ba1c3e96019bd1220c0eb8bf5c Mon Sep 17 00:00:00 2001 From: Papoteur <papoteur@mageialinux-online.org> Date: Sun, 5 Jul 2015 11:54:47 +0200 Subject: [PATCH] Add a Narg function to deal the encoding strings. #mga13837 --- src/msec/config.py | 41 ++++++++++++++++++++++++++++++++--------- src/msec/libmsec.py | 51 ++++++++++++++++++++++++++++++++------------------- src/msec/msecgui.py | 17 ++++++++++++----- src/msec/tools.py | 9 +++++---- 4 files changed, 81 insertions(+), 37 deletions(-) diff --git a/src/msec/config.py b/src/msec/config.py index c8e87f6..9f41998 100755 --- a/src/msec/config.py +++ b/src/msec/config.py @@ -81,6 +81,9 @@ SETTINGS_PERIODIC = [] # checks that support exceptions - defined by 'audit' plugin CHECKS_WITH_EXCEPTIONS = [] +# system encoding +SYS_ENC = sys.getfilesystemencoding() + # localized help try: from help import HELP @@ -168,6 +171,26 @@ def merge_with_baselevel(log, config, base_level, load_func, root=''): config.merge(levelconf) +def to_utf8(s): + """ Returs string after decoding if needed """ + try: + s.decode() + return s + except: + return str(s).decode("utf-8") + +def Narg(s): + """ Returs string after decoding if needed """ + try: + s.decode() + return s + except: + try: + t=str(s) + except: + return s + return t.decode(SYS_ENC) + # {{{ MsecConfig class MsecConfig: """Msec configuration parser""" @@ -208,7 +231,7 @@ class MsecConfig: try: fd = open(self.config) except: - self.log.error(_("Unable to load configuration file %s: %s") % (self.config, sys.exc_value[1])) + self.log.error(_("Unable to load configuration file %s: %s") % (self.config, Narg(sys.exc_value[1]))) return False for line in fd.readlines(): line = line.strip() @@ -222,7 +245,7 @@ class MsecConfig: option, val = line.split("=", 1) self.options[option] = val except: - self.log.warn(_("Bad config option: %s") % line) + self.log.warn(_("Bad config option: %s") % Narg(line)) continue fd.close() return True @@ -257,7 +280,7 @@ class MsecConfig: try: fd = open(self.config, "w") except: - self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) + self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) return False for comment in self.comments: print >>fd, comment @@ -316,7 +339,7 @@ class ExceptionConfig: fd = open(self.config) except: # this file is optional, so if it is not found that's not fatal - self.log.info(_("loading exceptions file %s: %s") % (self.config, sys.exc_value[1])) + self.log.info(_("loading exceptions file %s: %s") % (self.config, Narg(sys.exc_value[1]))) self.log.info(_("No exceptions loaded")) return False for line in fd.readlines(): @@ -331,7 +354,7 @@ class ExceptionConfig: option, val = line.split(" ", 1) self.options.append((option, val)) except: - self.log.warn(_("Bad config option: %s") % line) + self.log.warn(_("Bad config option: %s") % Narg(line)) continue fd.close() return True @@ -370,7 +393,7 @@ class ExceptionConfig: try: fd = open(self.config, "w") except: - self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) + self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) return False for comment in self.comments: print >>fd, comment @@ -420,7 +443,7 @@ class PermConfig(MsecConfig): try: fd = open(self.config) except: - self.log.error(_("Unable to load configuration file %s: %s") % (self.config, sys.exc_value)) + self.log.error(_("Unable to load configuration file %s: %s") % (self.config, Narg(sys.exc_value))) return False for line in fd.readlines(): line = line.strip() @@ -439,7 +462,7 @@ class PermConfig(MsecConfig): self.options_order.append(file) except: traceback.print_exc() - self.log.warn(_("Bad config option: %s") % line) + self.log.warn(_("Bad config option: %s") % Narg(line)) continue fd.close() return True @@ -465,7 +488,7 @@ class PermConfig(MsecConfig): try: fd = open(self.config, "w") except: - self.log.error(_("Unable to save %s: %s") % (self.config, sys.exc_value)) + self.log.error(_("Unable to save %s: %s") % (self.config, Narg(sys.exc_value))) return False for comment in self.comments: print >>fd, comment diff --git a/src/msec/libmsec.py b/src/msec/libmsec.py index d456eab..4b7e20d 100755 --- a/src/msec/libmsec.py +++ b/src/msec/libmsec.py @@ -262,7 +262,7 @@ class ConfigFiles: if res: s = substitute_re_result(res, a[1]) if commit: - self.log.info(_('%s modified so launched command: %s') % (f, s)) + self.log.info(_('%s modified so launched command: %s') % (Narg(f), Narg(s))) cmd = commands.getstatusoutput(s) cmd = [0, ''] if cmd[0] == 0: @@ -367,32 +367,41 @@ class ConfigFile: return link def write(self): + if not (type(self.path) == unicode): + self.pathN = Narg(self.path) + else: + self.pathN = self.path + if self.is_deleted: if self.exists(): try: os.unlink(self.path) except: - error('unlink %s: %s' % (self.path, str(sys.exc_value))) - self.log.info(_('deleted %s') % (self.path,)) + error('unlink %s: %s' % (self.pathN, str(sys.exc_value))) + self.log.info(_('deleted %s') % (self.pathN,)) elif self.is_touched: if os.path.exists(self.path): try: os.utime(self.path, None) except: - self.log.error('utime %s: %s' % (self.path, str(sys.exc_value))) + self.log.error('utime %s: %s' % (self.pathN, str(sys.exc_value))) elif self.suffix and os.path.exists(self.path + self.suffix): move(self.path + self.suffix, self.path) try: os.utime(self.path, None) except: - self.log.error('utime %s: %s' % (self.path, str(sys.exc_value))) + self.log.error('utime %s: %s' % (self.pathN, str(sys.exc_value))) else: self.lines = [] self.is_modified = 1 file = open(self.path, 'w') file.close() - self.log.info(_('touched file %s') % (self.path,)) + self.log.info(_('touched file %s') % (self.pathN,)) elif self.sym_link: + if not (type(self.sym_link) == unicode): + self.sym_linkN = Narg(self.sym_link) + else: + self.sym_linkN = self.sym_link done = 0 if self.exists(): full = os.lstat(self.path) @@ -404,17 +413,21 @@ class ConfigFile: try: os.unlink(self.path) except: - self.log.error('unlink %s: %s' % (self.path, str(sys.exc_value))) - self.log.info(_('deleted %s') % (self.path,)) + self.log.error('unlink %s: %s' % (self.pathN, str(sys.exc_value))) + self.log.info(_('deleted %s') % (self.pathN,)) if not done: try: os.symlink(self.sym_link, self.path) except: - self.log.error('symlink %s %s: %s' % (self.sym_link, self.path, str(sys.exc_value))) - self.log.info(_('made symbolic link from %s to %s') % (self.sym_link, self.path)) + self.log.error('symlink %s %s: %s' % (self.sym_linkN, self.path, str(sys.exc_value))) + self.log.info(_('made symbolic link from %s to %s') % (self.sym_linkN, self.path)) elif self.is_moved: + if not (type(self.suffix) == unicode): + self.suffixN = Narg(self.suffix) + else: + self.suffixN = self.suffix move(self.path, self.path + self.suffix) - self.log.info(_('moved file %s to %s') % (self.path, self.path + self.suffix)) + self.log.info(_('moved file %s to %s') % (self.path, self.path + self.suffixN)) self.meta.modified(self.path) elif self.is_modified: content = string.join(self.lines, "\n") @@ -682,7 +695,7 @@ class MSEC: self.plugins[plugin_name] = plugin self.log.debug("Loaded plugin '%s'" % plugin_f) except: - self.log.error(_("Error loading plugin '%s' from %s: %s") % (plugin_f, file, sys.exc_value)) + self.log.error(_("Error loading plugin '%s' from %s: %s") % (plugin_f, file, Narg(sys.exc_value))) def reset(self): """Resets the configuration""" @@ -699,7 +712,7 @@ class MSEC: plugin_, callback = name.split(".", 1) except: # bad format? - self.log.error(_("Invalid callback: %s") % (name)) + self.log.error(_("Invalid callback: %s") % (Narg(name))) return None # is it a main function or a plugin? if plugin_ == config.MAIN_LIB: @@ -708,14 +721,14 @@ class MSEC: if plugin_ in self.plugins: plugin = self.plugins[plugin_] else: - self.log.info(_("Plugin %s not found") % plugin_) + self.log.info(_("Plugin %s not found") % to_utf8(plugin_)) return self.log.info return None try: func = getattr(plugin, callback) return func except: - self.log.info(_("Not supported function '%s' in '%s'") % (callback, plugin)) + self.log.info(_("Not supported function '%s' in '%s'") % (Narg(callback), Narg(plugin))) traceback.print_exc() return None @@ -871,7 +884,7 @@ class PERMS: try: os.chown(file, newuser, -1) except: - self.log.error(_("Error changing user on %s: %s") % (file, sys.exc_value)) + self.log.error(_("Error changing user on %s: %s") % (file, Narg(sys.exc_value))) else: self.log.warn(_("Wrong owner of %s: should be %s") % (file, self.get_user_name(newuser))) if newgroup != None: @@ -880,7 +893,7 @@ class PERMS: try: os.chown(file, -1, newgroup) except: - self.log.error(_("Error changing group on %s: %s") % (file, sys.exc_value)) + self.log.error(_("Error changing group on %s: %s") % (file, Narg(sys.exc_value))) else: self.log.warn(_("Wrong group of %s: should be %s") % (file, self.get_group_name(newgroup))) # permissions should be last, as chown resets them @@ -891,7 +904,7 @@ class PERMS: try: os.chmod(file, newperm) except: - self.log.error(_("Error changing permissions on %s: %s") % (file, sys.exc_value)) + self.log.error(_("Error changing permissions on %s: %s") % (file, Narg(sys.exc_value))) else: self.log.warn(_("Wrong permissions of %s: should be %o") % (file, newperm)) @@ -913,7 +926,7 @@ class PERMS: # problem setting setfacl self.log.error(_("Unable to add filesystem-specific ACL %s to %s") % (acluser, file)) except: - self.log.error(_("Error changing acl on %s: %s") % (file, sys.exc_value)) + self.log.error(_("Error changing acl on %s: %s") % (file, Narg(str(sys.exc_value)))) else: self.log.warn(_("Wrong acl of %s") % (file)) diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py index 7a2ceb7..d468b15 100755 --- a/src/msec/msecgui.py +++ b/src/msec/msecgui.py @@ -14,6 +14,8 @@ from textwrap import wrap from threading import Thread import time +from config import Narg + # PyGTK import warnings warnings.filterwarnings('error', module='gtk') @@ -379,14 +381,14 @@ class MsecGui: # TODO: FIX for name, changes in allchanges: - label = Gtk.Label(label=_('<b>%s:</b> <i>%s</i>\n') % (name, changes)) + label = Gtk.Label(label=_('<b>%s:</b> <i>%s</i>\n') % (Narg(name), Narg(changes))) label.set_use_markup(True) label.set_property("xalign", 0.0) vbox.pack_start(label, False, False, padding=DEFAULT_SPACING) # see if there were any changes to system files for msg in messages['info']: if msg.find(config.MODIFICATIONS_FOUND) != -1 or msg.find(config.MODIFICATIONS_NOT_FOUND) != -1: - label = Gtk.Label(label=_("<b>MSEC test run results:</b> <i>%s</i>") % msg) + label = Gtk.Label(label=_("<b>MSEC test run results:</b> <i>%s</i>") % Narg(msg)) label.set_line_wrap(True) label.set_use_markup(True) label.set_property("xalign", 0.0) @@ -659,7 +661,7 @@ class MsecGui: for check, logfile, updated_n, updated in tools.periodic_check_status(log): if not updated: updated = _("Never") - label = Gtk.Label(label=_("Check: %s. Last run: %s") % (check, updated)) + label = Gtk.Label(label=_("Check: %s. Last run: %s") % (Narg(check), Narg(updated))) label.set_property("xalign", 0.0) table.attach(label, 2, 3, row, row + 1, Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL, 0, 0, 0) @@ -691,7 +693,7 @@ class MsecGui: with open(logfile, "r") as fd: data = fd.readlines() except: - data = [_("Unable to read log file: %s") % sys.exc_value] + data = [_("Unable to read log file: %s") % Narg(sys.exc_value)] dialog = Gtk.Dialog(_("Periodic check results"), self.window, 0, @@ -724,7 +726,7 @@ class MsecGui: flags=0, type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.YES_NO) - dialog.set_markup(_("Do you want to run the <b>%s</b> periodic check? Please note that it could take a considerable time to finish.") % check) + dialog.set_markup(_("Do you want to run the <b>%s</b> periodic check? Please note that it could take a considerable time to finish.") % Narg(check)) dialog.show_all() ret = dialog.run() dialog.destroy() @@ -1643,6 +1645,11 @@ class MsecGui: val_def = conf_def.get(param) + for i in [param, descr, value]: + i = Narg(i) + # if not (type(i) == unicode) and not config.try_decode(i): + # i = i.decode(config.SYS_ENC) + # asks for new parameter value dialog = Gtk.Dialog(_("Select new value for %s") % (param), self.window, 0, diff --git a/src/msec/tools.py b/src/msec/tools.py index 3a079cd..cb9d1bf 100755 --- a/src/msec/tools.py +++ b/src/msec/tools.py @@ -9,6 +9,8 @@ import sys import time import locale +from config import Narg, SYS_ENC + # localization import gettext try: @@ -30,7 +32,7 @@ def find_firewall_info(log): if l[:3] == "-A ": firewall_entries.append(l.strip()) except: - log.error(_("Unable to parse firewall configuration: %s") % sys.exc_value) + log.error(_("Unable to parse firewall configuration: %s") % Narg(sys.exc_value)) # not find out if the firewall is enabled if len(firewall_entries) == 0: firewall_status = _("Disabled") @@ -44,10 +46,9 @@ def get_updates_status(log, updatedir="/var/lib/urpmi"): try: ret = os.stat(updatedir) updated = time.localtime(ret[stat.ST_MTIME]) - updated_s = time.strftime(locale.nl_langinfo(locale.D_T_FMT), updated) - status = _("Last updated: %s") % updated_s + status = _("Last updated: %s") % Narg(updated_s) except: - log.error(_("Unable to access %s: %s") % (updatedir, sys.exc_value)) + log.error(_("Unable to access %s: %s") % (updatedir, Narg(sys.exc_value))) status = _("Unable to determine update status") return status -- 2.3.8
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 13837
:
5829
|
6514
| 6815 |
6869