浏览代码

PR447 [oozie] Fix non-English workflow name mangling problem

https://github.com/cloudera/hue/pull/447
Wang, Xiaozhe 9 年之前
父节点
当前提交
50bec63e6d
共有 1 个文件被更改,包括 9 次插入7 次删除
  1. 9 7
      apps/oozie/src/oozie/models2.py

+ 9 - 7
apps/oozie/src/oozie/models2.py

@@ -75,16 +75,18 @@ class Job(object):
 
 
   @property
   @property
   def validated_name(self):
   def validated_name(self):
+    xml_entities = {
+            '"': '"',
+            '\'': ''',
+            '&': '&',
+            '<': '&lt;',
+            '>': '&gt;',
+    }
     good_name = []
     good_name = []
 
 
     for c in self.name[:40]:
     for c in self.name[:40]:
-      if not good_name:
-        if not re.match('[a-zA-Z_\{\$\}]', c):
-          c = '_'
-      else:
-        if not re.match('[\-_a-zA-Z0-9\{\$\}]', c):
-          c = '_'
-      good_name.append(c)
+        c = xml_entities.get(c, c)
+        good_name.append(c)
 
 
     return ''.join(good_name)
     return ''.join(good_name)