Pārlūkot izejas kodu

[oozie] Support prepare in action

Romain Rigaux 11 gadi atpakaļ
vecāks
revīzija
e4ec10f145

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

@@ -94,7 +94,7 @@ class Workflow():
     
     if self.document is not None:
       _data['workflow']['id'] = self.document.id
-      _data['workflow']['dependencies'] = self.document.dependencies
+      _data['workflow']['dependencies'] = list(self.document.dependencies.values())
     else:
       _data['workflow']['dependencies'] = []
 

+ 1 - 1
apps/oozie/src/oozie/templates/editor/gen2/workflow-common.xml.mako

@@ -59,7 +59,7 @@
 <%def name="distributed_cache(files, archives)">
     % for f in files:
         % if f:
-            <file>${ filelink(f['value']) }</file>
+            <file>${ filelink(f) }</file>
         % endif
     % endfor
     % for a in archives:

+ 17 - 0
apps/oozie/src/oozie/templates/editor/workflow_editor.mako

@@ -256,6 +256,23 @@ ${ dashboard.layout_skeleton() }
           </button>
         </div>
         <div class="tab-pane" id="properties">
+          ${ _('Prepare') }   
+          <ul data-bind="foreach: properties.prepares">
+            <li>
+              <span data-bind="text: type"></span>
+              <input data-bind="value: value"/>
+              <a href="#" data-bind="click: function(){ $parent.properties.prepares.remove(this); }">
+                <i class="fa fa-minus"></i>
+              </a>
+            </li>
+          </ul>
+          <button data-bind="click: function(){ properties.prepares.push({'type': 'mkdir', 'value': ''}); }">
+            ${ _('Directory') } <i class="fa fa-plus"></i>
+          </button>
+          <button data-bind="click: function(){ properties.prepares.push({'type': 'delete', 'value': ''}); }">
+            ${ _('Delete') } <i class="fa fa-plus"></i>
+          </button>
+          <br/>
           prepares <input type="text" data-bind="value: properties.prepares" /></br>
           job_xml <input type="text" data-bind="value: properties.job_xml" /></br>
           proeperties <input type="text" data-bind="value: properties.properties" /></br>

+ 2 - 1
apps/oozie/src/oozie/views/editor2.py

@@ -175,7 +175,8 @@ def add_node(request):
       'parameters': [],
       'arguments': [],
       'files': [],
-      'archives': []
+      'archives': [],
+      'prepares': [],
   })
 
   response['status'] = 0