Prechádzať zdrojové kódy

[oozie] Credentials support

Romain Rigaux 11 rokov pred
rodič
commit
90533d34aa

+ 2 - 2
apps/oozie/src/oozie/templates/editor/workflow_editor.mako

@@ -327,7 +327,7 @@ ${ dashboard.layout_skeleton() }
           
         </div>
         <div class="tab-pane" id="credentials">
-          credentials <input type="text" data-bind="value: properties.credentials" /></br>
+          <select data-bind="options: $root.credentials, value: properties.credentials" size="5" multiple="true"></select>
         </div>
         <div class="tab-pane" id="transitions">
           OK --> []
@@ -539,7 +539,7 @@ ${ dashboard.import_bindings() }
   ${ utils.slaGlobal() }
 
 
-  var viewModel = new WorkflowEditorViewModel(${ layout_json | n,unicode }, ${ workflow_json | n,unicode });
+  var viewModel = new WorkflowEditorViewModel(${ layout_json | n,unicode }, ${ workflow_json | n,unicode }, ${ credentials_json | n,unicode });
   ko.applyBindings(viewModel);
 
   viewModel.init();

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

@@ -30,6 +30,8 @@ from desktop.lib.i18n import smart_str
 from desktop.lib.rest.http_client import RestException
 from desktop.models import Document2
 
+from liboozie.credentials import Credentials
+from liboozie.oozie_api import get_oozie
 from liboozie.submission2 import Submission
 
 from oozie.forms import ParameterForm
@@ -59,9 +61,14 @@ def edit_workflow(request):
   
   workflow_data = workflow.get_data()
 
+  api = get_oozie(request.user)
+  credentials = Credentials()
+  credentials.fetch(api)
+
   return render('editor/workflow_editor.mako', request, {
       'layout_json': json.dumps(workflow_data['layout']),
-      'workflow_json': json.dumps(workflow_data['workflow'])
+      'workflow_json': json.dumps(workflow_data['workflow']),
+      'credentials_json': json.dumps(credentials.credentials.keys())
   })
 
 
@@ -189,7 +196,8 @@ def add_node(request):
           {'key': 'alert-contact', 'value': ''},
           {'key': 'notification-msg', 'value': ''},
           {'key': 'upstream-apps', 'value': ''},
-      ]      
+      ],
+      'credentials': []
   })
 
   response['status'] = 0

+ 2 - 1
apps/oozie/static/js/workflow-editor.ko.js

@@ -143,7 +143,7 @@ var Workflow = function (vm, workflow) {
   }
 }
 
-var WorkflowEditorViewModel = function (layout_json, workflow_json) {
+var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_json) {
   var self = this;
 
   self.isEditing = ko.observable(true);
@@ -154,6 +154,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json) {
   self.columns = ko.observable([]);
   self.previewColumns = ko.observable("");
   self.workflow = new Workflow(self, workflow_json);
+  self.credentials = ko.mapping.fromJSON(credentials_json);
 
   self.inited = ko.observable(self.columns().length > 0);
   self.init = function(callback) {