Selaa lähdekoodia

HUE-3488 [oozie] find_dollar_braced_variables skips variables on same line

Jenny Kim 9 vuotta sitten
vanhempi
commit
c67323f14d
2 muutettua tiedostoa jossa 3 lisäystä ja 1 poistoa
  1. 1 1
      apps/oozie/src/oozie/models2.py
  2. 2 0
      apps/oozie/src/oozie/tests2.py

+ 1 - 1
apps/oozie/src/oozie/models2.py

@@ -1915,7 +1915,7 @@ def find_dollar_variables(text):
 def find_dollar_braced_variables(text):
   vars = set()
 
-  for var in re.findall('\$\{(.+)\}', text, re.MULTILINE):
+  for var in re.findall('\$\{([A-Za-z0-9:_-]+)\}', text, re.MULTILINE):
     if ':' in var:
       var = var.split(':', 1)[1]
     vars.add(var)

+ 2 - 0
apps/oozie/src/oozie/tests2.py

@@ -69,6 +69,8 @@ LIMIT $limit"""))
     LIMIT ${hiveconf:LIMIT}
     """))
 
+    assert_equal(['field', 'tablename', 'LIMIT'], find_dollar_braced_variables("SELECT ${field} FROM ${hivevar:tablename} LIMIT ${hiveconf:LIMIT}"))
+
 
   def test_workflow_gen_xml(self):
     assert_equal([