浏览代码

[oozie] Generate Workflow credentials properties

If some actions are using credentials, generate their corresponding
credentials data in the workflow.
Romain Rigaux 10 年之前
父节点
当前提交
cbf4094483
共有 2 个文件被更改,包括 6 次插入3 次删除
  1. 4 1
      apps/oozie/src/oozie/models2.py
  2. 2 2
      apps/oozie/src/oozie/templates/editor2/gen/workflow.xml.mako

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

@@ -123,7 +123,6 @@ class Workflow(Job):
                   "job_xml": "",
                   "sla_enabled": False,
                   "schema_version": "uri:oozie:workflow:0.5",
-                  "credentials": [],
                   "properties": [],
                   "sla": Workflow.SLA_DEFAULT,
                   "show_arrows": True,
@@ -228,6 +227,10 @@ class Workflow(Job):
   def has_some_slas(self):
     return self.sla_enabled or any([node.sla_enabled for node in self.nodes])
 
+  @property
+  def credentials(self):
+    return list(set([cred for node in self.nodes for cred in node.data['properties']['credentials']]))
+
   @property
   def sla(self):
     _data = self.get_data()

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

@@ -29,9 +29,9 @@
     % endif
   </global>
   % endif
-  % if workflow['properties']['credentials']:
+  % if wf.credentials:
   <credentials>
-    % for cred_type in workflow['properties']['credentials']:
+    % for cred_type in wf.credentials:
     <%
       credential = mapping['credentials'][cred_type]
     %>