Procházet zdrojové kódy

HUE-4115 [oozie] Autoatically persist the coordinator of a scheduled query

Romain Rigaux před 9 roky
rodič
revize
cfc527c

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

@@ -475,6 +475,7 @@ def list_editor_coordinators(request):
 def edit_coordinator(request):
   coordinator_id = request.GET.get('coordinator', request.GET.get('uuid'))
   doc = None
+  workflow_uuid = None
 
   if coordinator_id:
     cid = {}
@@ -500,6 +501,7 @@ def edit_coordinator(request):
       print 'create'
       workflow_doc = WorkflowBuilder().create_workflow(doc_uuid=document_uuid, user=request.user, managed=True)
     workflow_uuid = workflow_doc.uuid
+    coordinator.data['name'] = _('Schedule of %s') % workflow_doc.name
   elif request.GET.get('workflow'):
     workflow_uuid = request.GET.get('workflow')
 
@@ -516,7 +518,7 @@ def edit_coordinator(request):
 
   if USE_NEW_EDITOR.get():
     workflows = [dict([('uuid', d.uuid), ('name', d.name)])
-                      for d in Document2.objects.documents(request.user).search_documents(types=['oozie-workflow2'])]
+                      for d in Document2.objects.documents(request.user, include_managed=True).search_documents(types=['oozie-workflow2'])]
   else:
     workflows = [dict([('uuid', d.content_object.uuid), ('name', d.content_object.name)])
                       for d in Document.objects.available_docs(Document2, request.user).filter(extra='workflow2')]

+ 11 - 4
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -1836,6 +1836,8 @@
       self.saveNotebook();
     };
 
+    var schedulerViewModel;
+
     self.loadScheduler = function() {
       logGA('schedule/edit');
       // Create or load existing schedule
@@ -1844,18 +1846,23 @@
         document: self.selectedNotebook().uuid()
       }, function (data) {
         $("#schedulerEditor").html(data.layout);
-        var viewModel = new CoordinatorEditorViewModel(data.coordinator, data.credentials, data.workflows, data.can_edit);
+        schedulerViewModel = new CoordinatorEditorViewModel(data.coordinator, data.credentials, data.workflows, data.can_edit);
 
         ko.cleanNode($("#schedulerEditor")[0]);
-        ko.applyBindings(viewModel, $("#schedulerEditor")[0]);
+        ko.applyBindings(schedulerViewModel, $("#schedulerEditor")[0]);
 
-        viewModel.coordinator.properties.cron_advanced.valueHasMutated(); // Update jsCron enabled status
-        viewModel.coordinator.tracker().markCurrentStateAsClean();
+        schedulerViewModel.coordinator.properties.cron_advanced.valueHasMutated(); // Update jsCron enabled status
+        schedulerViewModel.coordinator.tracker().markCurrentStateAsClean();
       }).fail(function (xhr) {
         $(document).trigger("error", xhr.responseText);
       });
     };
 
+    self.saveScheduler = function() {
+      schedulerViewModel.coordinator.name('My daily run');
+      schedulerViewModel.save();  // {"status": 0, "message": "Saved !", "id": 52677}
+    };
+
     self.viewSchedulerId = ko.observable('0000000-160519110441280-oozie-oozi-C');
     self.viewScheduler = function() {
       logGA('schedule/view');

+ 3 - 2
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -1049,9 +1049,10 @@ ${ hueIcons.symbols() }
 
       <!-- ko if: $root.selectedNotebook() && $root.selectedNotebook().id() -->
         <a data-bind="click: $root.loadScheduler">Load scheduler</a></br>
-        Save coord</br>
+        <a data-bind="click: $root.saveScheduler">Save coord</a></br></br>
 
-        [Start / Monitor - Stop - Sync]</br>
+        Start</br>
+        <a href="#scheduledJobsTab" data-toggle="tab">${_('View')}</a>
 
         <div id="schedulerEditor">
         </div>