浏览代码

HUE-2114 [oozie] Configure action retry properties

Romain Rigaux 10 年之前
父节点
当前提交
af8982b

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

@@ -166,6 +166,13 @@ class Workflow(Job):
     if 'show_arrows' not in _data['workflow']['properties']:
       _data['workflow']['properties']['show_arrows'] = True
 
+    for node in _data['workflow']['nodes']:
+      if 'credentials' in node['properties']: # If node is an Action
+        if 'retry_max' not in node['properties']:
+          node['properties']['retry_max'] = []
+        if 'retry_interval' not in node['properties']:
+          node['properties']['retry_interval'] = []
+
     return _data
 
   def to_xml(self, mapping=None):

+ 26 - 0
apps/oozie/src/oozie/templates/editor2/common_workflow.mako

@@ -402,6 +402,32 @@
     </ul>
     <em data-bind="visible: properties.archives().length == 0">${ _('No archives defined.') }</em>
     <!-- /ko -->
+
+
+    <h6>${ _('Retry ') }</h6>
+    <a class="pointer" data-bind="click: function(){ properties.retry_max.push(ko.mapping.fromJS({'value': ''})); $(document).trigger('drawArrows') }, visible: properties.retry_max().length < 1">
+      ${ _('Max') } <i class="fa fa-plus"></i>
+    </a>
+    <a class="pointer" data-bind="click: function(){ properties.retry_interval.push(ko.mapping.fromJS({'value': ''})); $(document).trigger('drawArrows') }, visible: properties.retry_interval().length < 1">
+      ${ _('Interval') } <i class="fa fa-plus"></i>
+    </a>
+
+    <ul data-bind="visible: properties.retry_max().length > 0, foreach: properties.retry_max" class="unstyled">
+      <li>
+        ${ _('Max') } <input type="number" data-bind="value: value" placeholder="${ _('Number of times, default is 3') }"/>
+        <a href="#" data-bind="click: function(){ $parent.properties.retry_max.remove(this); $(document).trigger('drawArrows') }">
+          <i class="fa fa-minus"></i>
+        </a>
+      </li>
+    </ul>
+    <ul data-bind="visible: properties.retry_interval().length > 0, foreach: properties.retry_interval" class="unstyled">
+      <li>
+        ${ _('Interval') } <input type="number" class="small" data-bind="value: value" placeholder="${ _('Wait time in minutes, default is 10') }"/>
+        <a href="#" data-bind="click: function(){ $parent.properties.retry_interval.remove(this); $(document).trigger('drawArrows') }">
+          <i class="fa fa-minus"></i>
+        </a>
+      </li>
+    </ul>
   </div>
 </script>
 

+ 6 - 0
apps/oozie/src/oozie/templates/editor2/gen/workflow-common.xml.mako

@@ -27,6 +27,12 @@
 <%def name="credentials(credentials)">${ ' cred="%s"' % ','.join(credentials) if credentials else '' | n,unicode }</%def>
 
 
+<%def name="retry_max(retry)">${ ' retry-max="%(value)s"' % retry[0] if retry else '' | n,unicode }</%def>
+
+
+<%def name="retry_interval(retry)">${ ' retry-interval="%(value)s"' % retry[0] if retry else '' | n,unicode }</%def>
+
+
 <%def name="prepares(prepares)">
         % if prepares:
             <prepare>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-distcp.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <distcp xmlns="uri:oozie:distcp-action:0.1">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-email.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <email xmlns="uri:oozie:email-action:0.1">
             <to>${ node['properties']['to'] }</to>
             % if node['properties']['cc']:

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-fs.xml.mako

@@ -21,7 +21,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <fs>
             % for param in node['properties']['deletes']:
               <delete path='${ smart_path(param['value'], mapping) }'/>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-hive.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <hive xmlns="uri:oozie:hive-action:0.2">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-hive2.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <hive2 xmlns="uri:oozie:hive2-action:0.1">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-java.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <java>
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-mapreduce.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <map-reduce>
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-pig.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <pig>
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-shell.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <shell xmlns="uri:oozie:shell-action:0.1">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-spark.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <spark xmlns="uri:oozie:spark-action:0.1">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-sqoop.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <sqoop xmlns="uri:oozie:sqoop-action:0.2">
             <job-tracker>${'${'}jobTracker}</job-tracker>
             <name-node>${'${'}nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-ssh.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <ssh xmlns="uri:oozie:ssh-action:0.1">
             <host>${ node['properties']['host'] }</host>
             <command>${ node['properties']['ssh_command'] }</command>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-streaming.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <map-reduce>
             <job-tracker>${ '${' }jobTracker}</job-tracker>
             <name-node>${ '${' }nameNode}</name-node>

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/gen/workflow-subworkflow.xml.mako

@@ -17,7 +17,7 @@
 
 <%namespace name="common" file="workflow-common.xml.mako" />
 
-    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }>
+    <action name="${ node['name'] }"${ common.credentials(node['properties']['credentials']) }${ common.retry_max(node['properties']['retry_max']) }${ common.retry_interval(node['properties']['retry_interval']) }>
         <sub-workflow>
             <app-path>${'${'}nameNode}${ mapping['workspace_%s' % node['properties']['workflow']] }</app-path>
 

文件差异内容过多而无法显示
+ 0 - 0
apps/oozie/src/oozie/tests2.py


部分文件因为文件数量过多而无法显示