Explorar o código

HUE-8737 [core] Fix admin check_config, dump_config and user_list

Ying Chen %!s(int64=6) %!d(string=hai) anos
pai
achega
ff7d021fae

+ 4 - 1
desktop/core/src/desktop/lib/config_spec_dump.py

@@ -30,7 +30,10 @@ class ConfigSpec(object):
     self.file.close()
 
   def p(self, s):
-    self.file.write("\n" + " " * self.indent + s + "\n")
+    bytes_obj = "\n" + " " * self.indent + s + "\n"
+    if not isinstance(bytes_obj, bytes):
+      bytes_obj = bytes_obj.encode()
+    self.file.write(bytes_obj)
 
   def recurse(self, config_obj):
     if isinstance(config_obj, BoundContainer):

+ 4 - 3
desktop/core/src/desktop/templates/dump_config.mako

@@ -16,6 +16,7 @@
 
 <%!
 import logging
+import sys
 
 from desktop.lib.conf import BoundContainer, is_anonymous
 from desktop.views import commonheader, commonfooter
@@ -140,12 +141,12 @@ LOG = logging.getLogger(__name__)
             % if 'password' in config_obj.config.key:
               ${ "*" * 10 }
             % else:
-              ${ str(config_obj.get_raw()).decode('utf-8', 'replace') }
+              ${ config_obj.get_raw() if sys.version_info[0] > 2 else str(config_obj.get_raw()).decode('utf-8', 'replace') }
             % endif
               <%
                 config_str = None
                 try:
-                  config_str = str(config_obj.get_raw()).decode('utf-8', 'replace')
+                  config_str = str(config_obj.get_raw()) if sys.version_info[0] > 2 else str(config_obj.get_raw()).decode('utf-8', 'replace')
                 except:
                   LOG.exception("Potential misconfiguration. Error value of key '%s' in configuration." % config_obj.grab_key)
               %>
@@ -156,7 +157,7 @@ LOG = logging.getLogger(__name__)
               %if config_obj.config.help:
                 <i>${ config_obj.config.help or _('No help available.') }</i>
               %endif
-            <span class="muted">${ _('Default:') } <i>${ str(config_obj.config.default).decode('utf-8', 'replace') }</i></span>
+            <span class="muted">${ _('Default:') } <i>${ config_obj.config.default if sys.version_info[0] > 2 else str(config_obj.config.default).decode('utf-8', 'replace') }</i></span>
           % endif
           </td>
         </tr>

+ 3 - 1
desktop/core/src/desktop/views.py

@@ -628,6 +628,7 @@ def _get_config_errors(request, cache=True):
   return _CONFIG_ERROR_LIST
 
 def validate_by_spec(error_list):
+  configspec = None
   try:
     # Generate the spec file
     configspec = generate_configspec()
@@ -637,7 +638,8 @@ def validate_by_spec(error_list):
     # Validate after merging all the confs
     collect_validation_messages(conf, error_list)
   finally:
-    os.remove(configspec.name)
+    if configspec:
+      os.remove(configspec.name)
 
 def load_confs(configspecpath, conf_source=None):
   """Loads and merges all of the configurations passed in,