Explorar el Código

ISSUE-1127 [oozie] Submit a coordinator from HDFS does not work (#1128)

* Fix issue of not rendering Markdown in notebook's snippet (Issue #1116)

* Proposition to fix submit coordinator from HDFS (Issue #1127)

* remove a tiny bit of duplication

Co-authored-by: Romain Rigaux <romain.rigaux@gmail.com>
Louis de Charsonville hace 5 años
padre
commit
61b8ed5b8c
Se han modificado 2 ficheros con 10 adiciones y 0 borrados
  1. 4 0
      apps/oozie/src/oozie/forms.py
  2. 6 0
      apps/oozie/src/oozie/views/dashboard.py

+ 4 - 0
apps/oozie/src/oozie/forms.py

@@ -68,6 +68,10 @@ class ParameterForm(forms.Form):
     params = [key for key in list(conf_dict.keys()) if key not in ParameterForm.NON_PARAMETERS]
     return [{'name': name, 'value': conf_dict[name]} for name in params]
 
+  @staticmethod
+  def get_non_parameters(conf_dict):
+    params = filter(lambda key: key in ParameterForm.NON_PARAMETERS, conf_dict.keys())
+    return [{'name': name, 'value': conf_dict[name]} for name in params]
 
 class WorkflowForm(forms.ModelForm):
   class Meta(object):

+ 6 - 0
apps/oozie/src/oozie/views/dashboard.py

@@ -968,6 +968,12 @@ def submit_external_job(request, application_path):
     params_form = ParametersFormSet(request.POST)
 
     if params_form.is_valid():
+      if application_name == 'coordinator.xml':
+        external_properties = Submission(request.user, fs=request.fs, jt=request.jt).get_external_parameters(application_path)
+        non_parameters = ParameterForm.get_non_parameters(external_properties)
+        mapping = non_parameters
+      else :
+        mapping = {}  
       mapping = dict([(param['name'], param['value']) for param in params_form.cleaned_data])
       mapping['dryrun'] = request.POST.get('dryrun_checkbox') == 'on'
       application_name = os.path.basename(application_path)