瀏覽代碼

HUE-8670 [cluster] Wire-in the autoscale API

Romain Rigaux 7 年之前
父節點
當前提交
5ad48133e4

+ 2 - 0
apps/jobbrowser/src/jobbrowser/apis/clusters.py

@@ -80,6 +80,8 @@ class ClusterApi(Api):
 
     cluster = handle['cluster']
 
+    cluster['workerAutoResize'] = False
+
     common = {
         'id': cluster['crn'],
         'name': cluster['clusterName'],

+ 5 - 8
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -246,9 +246,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
           <input id="clusterConfigureWorkers" type="number" min="1" data-bind="value: updateClusterWorkers, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('Size')}">
         </span>
         <span data-bind="visible: updateClusterAutoResize()">
-          <input id="clusterConfigureWorkers" type="number" min="0" data-bind="value: updateClusterAutoResizeMin, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('Min')}">
-          <input id="clusterConfigureWorkers" type="number" min="0" data-bind="value: updateClusterAutoResizeMax, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('Max')}">
-          <input id="clusterConfigureWorkers" type="number" min="0" data-bind="value: updateClusterAutoResizeCpu, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('CPU')}">
+          <input type="number" min="0" data-bind="value: updateClusterAutoResizeMin, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('Min')}">
+          <input type="number" min="0" data-bind="value: updateClusterAutoResizeMax, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('Max')}">
+          <input type="number" min="0" data-bind="value: updateClusterAutoResizeCpu, valueUpdate: 'afterkeydown'" class="input-mini" placeholder="${_('CPU')}">
         </span>
 
         <label class="checkbox" style="margin-right: 10px; float: right;">
@@ -2690,7 +2690,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
       };
 
       self.updateClusterWorkers = ko.observable(1);
-      self.updateClusterAutoResize = ko.observable();
+      self.updateClusterAutoResize = ko.observable(false);
       self.updateClusterAutoResizeMin = ko.observable(1);
       self.updateClusterAutoResizeMax = ko.observable(3);
       self.updateClusterAutoResizeCpu = ko.observable(80);
@@ -2705,10 +2705,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
 
       self.clusterConfigModified = ko.pureComputed(function () {
         return (self.updateClusterWorkers() > 0 && self.updateClusterWorkers() !== self.properties['properties']['workerReplicas']()) ||
-            (self.updateClusterAutoResize() !== self.properties['properties']['workerAutoResize']() &&
-              (self.updateClusterAutoResize() && self.updateClusterAutoResizeMax() >= 0) ||
-              (!self.updateClusterAutoResize())
-            );
+            (self.updateClusterAutoResize() !== self.properties['properties']['workerAutoResize']());
       });
 
       ## TODO Move to control

+ 10 - 11
desktop/libs/metadata/src/metadata/analytic_db_api.py

@@ -16,14 +16,12 @@
 # limitations under the License.
 
 import logging
-import json
 
 from django.utils.translation import ugettext as _
 from django.views.decorators.http import require_POST
 
 from desktop.lib.django_util import JsonResponse
 from desktop.lib.i18n import force_unicode
-
 from notebook.connectors.altus import AnalyticDbApi, DataWarehouse2Api
 
 
@@ -85,21 +83,22 @@ def update_cluster(request):
   response = {'status': -1}
 
   cluster_name = request.POST.get('cluster_name') or 'Analytic Cluster'
-  auto_resize_changed = bool(request.POST.get('auto_resize_changed'))
+  auto_resize_changed = request.POST.get('auto_resize_changed') == 'true'
 
   params = {
-    'clusterName': cluster_name
+    'clusterName': cluster_name,
+    'updateClusterAutoResizeChanged': auto_resize_changed
   }
 
   if auto_resize_changed:
-    updateClusterAutoResize = bool(request.POST.get('updateClusterAutoResize'))
-    params = {'updateClusterAutoResize': updateClusterAutoResize}
+    updateClusterAutoResize = request.POST.get('auto_resize_enabled') == 'true'
+    params['updateClusterAutoResize'] = updateClusterAutoResize
     if updateClusterAutoResize:
-      params['updateClusterAutoResizeMax'] = int(request.POST.get('updateClusterAutoResizeMax'))
-      if request.POST.get('updateClusterAutoResizeMin'):
-        params['updateClusterAutoResizeMin'] = int(request.POST.get('updateClusterAutoResizeMin'))
-      if request.POST.get('updateClusterAutoResizeCpu'):
-        params['updateClusterAutoResizeCpu'] = int(request.POST.get('updateClusterAutoResizeCpu'))
+      params['updateClusterAutoResizeMax'] = int(request.POST.get('auto_resize_max'))
+      if request.POST.get('auto_resize_min'):
+        params['updateClusterAutoResizeMin'] = int(request.POST.get('auto_resize_min'))
+      if request.POST.get('auto_resize_cpu'):
+        params['updateClusterAutoResizeCpu'] = int(request.POST.get('auto_resize_cpu'))
   else:
     params['workerReplicas'] = int(request.POST.get('workers_group_size', '3'))
 

+ 1 - 0
desktop/libs/notebook/src/notebook/connectors/altus.py

@@ -307,6 +307,7 @@ class DataWarehouse2Api():
       'workerCpuCores': 1,
       'workerMemoryInGib': 1,
       'workerReplicas': workers_group_size,
+      'workerAutoResize': False
     }
 
     return self._root.post('createCluster', data=json.dumps(data), contenttype="application/json")