Browse Source

HUE-4119 [jobbrowser] Change list jobs call to POST

krish 9 năm trước cách đây
mục cha
commit
7b636e4

+ 9 - 9
apps/jobbrowser/src/jobbrowser/templates/jobs.mako

@@ -287,37 +287,37 @@ ${ components.menubar(hiveserver2_impersonation_enabled) }
     }
 
     function callJsonData(callback, justRunning) {
-      var _url = "?format=json";
+      var _url_params = {"format": "json"};
 
       if (justRunning == undefined) {
         if ($(".btn-status.active").length > 0) {
-          _url += "&state=" + $(".btn-status.active").data("value");
+          _url_params["state"] = $('.btn-status.active').data('value');
         }
         else {
-          _url += "&state=all";
+          _url_params["state"] = "all";
         }
       }
       else {
         isUpdating = true;
         if ($(".btn-status.active").length > 0) {
-          _url += "&state=" + $(".btn-status.active").data("value");
+          _url_params["state"] = $('.btn-status.active').data('value');
         }
         else {
-          _url += "&state=running";
+          _url_params["state"] = "running";
         }
       }
 
-      _url += "&user=" + $("#userFilter").val().trim();
+      _url_params["user"] = $('#userFilter').val().trim();
 
       if ($("#textFilter").val().trim() != "") {
-        _url += "&text=" + $("#textFilter").val().trim();
+        _url_params["text"] = $('#textFilter').val().trim();
       }
 
       if ($("#showRetired").is(":checked")) {
-        _url += "&retired=on";
+        _url_params["retired"] = "on";
       }
 
-      $.getJSON(_url, callback);
+      $.post("/jobbrowser/jobs/", _url_params, callback);
     }
 
     $(".search-query").jHueDelayedInput(function(){

+ 14 - 14
apps/jobbrowser/src/jobbrowser/tests.py

@@ -224,12 +224,12 @@ class TestJobBrowserWithHadoop(unittest.TestCase, OozieServerProvider):
 
     # Select only killed jobs (should be absent)
     # Taking advantage of the fact new jobs are at the top of the list!
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=killed')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'killed'})
     assert_false(hadoop_job_id_short in response.content)
 
     # Select only failed jobs (should be present)
     # Map job should succeed. Reduce job should fail.
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=failed')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'failed'})
     assert_true(hadoop_job_id_short in response.content)
 
     raise SkipTest # Not compatible with MR2
@@ -259,17 +259,17 @@ class TestJobBrowserWithHadoop(unittest.TestCase, OozieServerProvider):
   def test_jobs_page(self):
     # All jobs page and fetch job ID
     # Taking advantage of the fact new jobs are at the top of the list!
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json'})
     assert_true(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content, response.content)
 
     # Make sure job succeeded
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=completed')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'completed'})
     assert_true(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=failed')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'failed'})
     assert_false(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=running')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'running'})
     assert_false(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
-    response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&state=killed')
+    response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'state': 'killed'})
     assert_false(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
 
   def test_tasks_page(self):
@@ -287,14 +287,14 @@ class TestJobBrowserWithHadoop(unittest.TestCase, OozieServerProvider):
     # Login as ourself
     finish = SHARE_JOBS.set_for_testing(True)
     try:
-      response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&user=')
+      response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'user': ''})
       assert_true(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
     finally:
       finish()
 
     finish = SHARE_JOBS.set_for_testing(False)
     try:
-      response = TestJobBrowserWithHadoop.client.get('/jobbrowser/jobs/?format=json&user=')
+      response = TestJobBrowserWithHadoop.client.post('/jobbrowser/jobs/', {'format': 'json', 'user': ''})
       assert_true(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
     finally:
       finish()
@@ -305,14 +305,14 @@ class TestJobBrowserWithHadoop(unittest.TestCase, OozieServerProvider):
 
     finish = SHARE_JOBS.set_for_testing(True)
     try:
-      response = client_not_me.get('/jobbrowser/jobs/?format=json&user=')
+      response = client_not_me.post('/jobbrowser/jobs/', {'format': 'json', 'user': ''})
       assert_true(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
     finally:
       finish()
 
     finish = SHARE_JOBS.set_for_testing(False)
     try:
-      response = client_not_me.get('/jobbrowser/jobs/?format=json&user=')
+      response = client_not_me.post('/jobbrowser/jobs/', {'format': 'json', 'user': ''})
       assert_false(TestJobBrowserWithHadoop.hadoop_job_id_short in response.content)
     finally:
       finish()
@@ -424,16 +424,16 @@ class TestMapReduce2NoHadoop:
       f()
 
   def test_jobs(self):
-    response = self.c.get('/jobbrowser/?format=json')
+    response = self.c.post('/jobbrowser/', {'format': 'json'})
     response_content = json.loads(response.content)
     assert_equal(len(response_content['jobs']), 4)
 
-    response = self.c.get('/jobbrowser/jobs/?format=json&text=W=MapReduce-copy2')
+    response = self.c.post('/jobbrowser/jobs/', {'format': 'json', 'text': 'W=MapReduce-copy2'})
     response_content = json.loads(response.content)
     assert_equal(len(response_content['jobs']), 1)
 
   def test_applications_no_start_time(self):
-    response = self.c.get('/jobbrowser/?format=json')
+    response = self.c.post('/jobbrowser/', {'format': 'json'})
     data = json.loads(response.content)
     job = [j for j in data['jobs'] if j['id'] == 'application_1428442704693_0007']
     assert_true(job, job)

+ 5 - 5
apps/jobbrowser/src/jobbrowser/views.py

@@ -107,12 +107,12 @@ def job_not_assigned(request, jobid, path):
 
 
 def jobs(request):
-  user = request.GET.get('user', request.user.username)
-  state = request.GET.get('state')
-  text = request.GET.get('text')
-  retired = request.GET.get('retired')
+  user = request.POST.get('user', request.user.username)
+  state = request.POST.get('state')
+  text = request.POST.get('text')
+  retired = request.POST.get('retired')
 
-  if request.GET.get('format') == 'json':
+  if request.POST.get('format') == 'json':
     try:
       # Limit number of jobs to be 10,000
       jobs = get_api(request.user, request.jt).get_jobs(user=request.user, username=user, state=state, text=text, retired=retired, limit=10000)

+ 13 - 8
desktop/core/src/desktop/templates/common_header.mako

@@ -294,15 +294,20 @@ if USE_NEW_EDITOR.get():
       var checkJobBrowserStatusIdx = window.setTimeout(checkJobBrowserStatus, 10);
 
       function checkJobBrowserStatus(){
-        $.getJSON("/${apps['jobbrowser'].display_name}/?format=json&state=running&user=${user.username}", function(data){
-          if (data != null && data.jobs != null){
-            if (data.jobs.length > 0){
-              $("#jobBrowserCount").removeClass("hide").text(data.jobs.length);
+        $.post("/jobbrowser/jobs/", {
+            "format": "json",
+            "state": "running",
+            "user": "${user.username}"
+          },
+          function(data) {
+            if (data != null && data.jobs != null) {
+              if (data.jobs.length > 0){
+                $("#jobBrowserCount").removeClass("hide").text(data.jobs.length);
+              }
+              else {
+                $("#jobBrowserCount").addClass("hide");
+              }
             }
-            else {
-              $("#jobBrowserCount").addClass("hide");
-            }
-          }
           checkJobBrowserStatusIdx = window.setTimeout(checkJobBrowserStatus, JB_CHECK_INTERVAL_IN_MILLIS);
         }).fail(function () {
           window.clearTimeout(checkJobBrowserStatusIdx);