浏览代码

HUE-3199 [oozie] Add support for earlier schema versions in external workflow graph

krish 9 年之前
父节点
当前提交
0591f8f1de

+ 12 - 2
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/action.xslt

@@ -3,14 +3,24 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
 
 <xsl:import href="extensions/distcp.0.1.xslt"/>
+<xsl:import href="extensions/distcp.0.2.xslt"/>
 <xsl:import href="extensions/email.0.1.xslt"/>
 <xsl:import href="extensions/email.0.2.xslt"/>
-<xsl:import href="extensions/hive.0.1.xslt"/>
 <xsl:import href="extensions/hive.0.2.xslt"/>
+<xsl:import href="extensions/hive.0.3.xslt"/>
+<xsl:import href="extensions/hive.0.4.xslt"/>
+<xsl:import href="extensions/hive.0.5.xslt"/>
+<xsl:import href="extensions/hive.0.6.xslt"/>
+<xsl:import href="extensions/hive2.0.1.xslt"/>
+<xsl:import href="extensions/hive2.0.2.xslt"/>
 <xsl:import href="extensions/shell.0.1.xslt"/>
-<xsl:import href="extensions/sqoop.0.1.xslt"/>
+<xsl:import href="extensions/shell.0.2.xslt"/>
+<xsl:import href="extensions/shell.0.3.xslt"/>
 <xsl:import href="extensions/sqoop.0.2.xslt"/>
+<xsl:import href="extensions/sqoop.0.3.xslt"/>
+<xsl:import href="extensions/sqoop.0.4.xslt"/>
 <xsl:import href="extensions/ssh.0.1.xslt"/>
+<xsl:import href="extensions/ssh.0.2.xslt"/>
 <xsl:import href="extensions/spark.0.1.xslt"/>
 <xsl:import href="nodes/fs.xslt"/>
 <xsl:import href="nodes/java.xslt"/>

+ 22 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/distcp.0.2.xslt

@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:distcp="uri:oozie:distcp-action:0.2" exclude-result-prefixes="workflow distcp">
+
+<xsl:template match="distcp:distcp">
+
+  ,"params": [
+        <xsl:for-each select="*[local-name()='arg']">
+          <xsl:choose>
+            <xsl:when test="position() &lt; last()">
+              {"type":"arg","value":"<xsl:value-of select="."/>"},
+            </xsl:when>
+            <xsl:otherwise>
+              {"type":"arg","value":"<xsl:value-of select="."/>"}
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
+    ]
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive.0.3.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.3" exclude-result-prefixes="workflow hive">
+
+<xsl:template match="hive:hive">
+
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive.0.4.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.4" exclude-result-prefixes="workflow hive">
+
+<xsl:template match="hive:hive">
+
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive.0.5.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.5" exclude-result-prefixes="workflow hive">
+
+<xsl:template match="hive:hive">
+
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive.0.6.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.6" exclude-result-prefixes="workflow hive">
+
+<xsl:template match="hive:hive">
+
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 1 - 1
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive.0.1.xslt → apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive2.0.1.xslt

@@ -4,7 +4,7 @@
 
 <xsl:template match="hive2:hive2">
 
-  ,"hive2": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
 
 </xsl:template>
 

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/hive2.0.2.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive2="uri:oozie:hive2-action:0.2" exclude-result-prefixes="workflow hive">
+
+<xsl:template match="hive2:hive2">
+
+  ,"hive": {"script": "<xsl:value-of select="*[local-name()='script']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/shell.0.2.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:shell="uri:oozie:shell-action:0.2" exclude-result-prefixes="workflow shell">
+
+<xsl:import href="../nodes/fields/command.xslt"/>
+
+<xsl:template match="shell:shell">
+
+  ,"shell": {<xsl:call-template name="command"/>}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/shell.0.3.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:shell="uri:oozie:shell-action:0.3" exclude-result-prefixes="workflow shell">
+
+<xsl:import href="../nodes/fields/command.xslt"/>
+
+<xsl:template match="shell:shell">
+
+  ,"shell": {<xsl:call-template name="command"/>}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 2 - 4
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/sqoop.0.1.xslt → apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/sqoop.0.3.xslt

@@ -1,12 +1,10 @@
 <?xml version="1.0"?>
 
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sqoop="uri:oozie:sqoop-action:0.1" exclude-result-prefixes="workflow sqoop">
-
-<xsl:import href="../nodes/fields/script_path.xslt"/>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sqoop="uri:oozie:sqoop-action:0.3" exclude-result-prefixes="workflow sqoop">
 
 <xsl:template match="sqoop:sqoop">
 
-  ,"sqoop": { "command": "<xsl:value-of select="*[local-name()='command']"/>"}
+  ,"sqoop": {"command": "<xsl:value-of select="*[local-name()='command']"/>"}
 
 </xsl:template>
 

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/sqoop.0.4.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sqoop="uri:oozie:sqoop-action:0.4" exclude-result-prefixes="workflow sqoop">
+
+<xsl:template match="sqoop:sqoop">
+
+  ,"sqoop": {"command": "<xsl:value-of select="*[local-name()='command']"/>"}
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 17 - 0
apps/oozie/src/oozie/importlib/xslt2/workflows/0.5/extensions/ssh.0.2.xslt

@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:ssh="uri:oozie:ssh-action:0.2" exclude-result-prefixes="workflow ssh">
+
+<xsl:import href="../nodes/fields/command.xslt"/>
+
+<xsl:template match="ssh:ssh">
+
+  ,"ssh": {
+    <xsl:call-template name="command"/>,
+    "user":"<xsl:value-of select="*[local-name()='user']"/>",
+    "host":"<xsl:value-of select="*[local-name()='host']"/>"
+    }
+
+</xsl:template>
+
+</xsl:stylesheet>

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

@@ -488,7 +488,7 @@ def _dig_nodes(nodes, adj_list, user, wf_nodes):
         properties['class'] = node.get('spark').get('class')
         properties['jars'] = node.get('spark').get('jar')
       elif node['node_type'] == 'hive' or node['node_type'] == 'hive2':
-        properties['script_path'] = node.get('hive2').get('script')
+        properties['script_path'] = node.get('hive').get('script')
       elif node['node_type'] == 'java':
         properties['main_class'] = node.get('java').get('main-class')
       elif node['node_type'] == 'sqoop':