You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by je...@apache.org on 2012/08/08 19:42:43 UTC

git commit: cloudstack 3.0 UI - autoscale - implement enableAutoScaleVmGroup API, disableAutoScaleVmGroup API.

Updated Branches:
  refs/heads/autoscale dcae4e810 -> 0970f9333


cloudstack 3.0 UI - autoscale - implement enableAutoScaleVmGroup API, disableAutoScaleVmGroup API.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/0970f933
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/0970f933
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/0970f933

Branch: refs/heads/autoscale
Commit: 0970f933326984ddfbebf13a692b769c69982fa7
Parents: dcae4e8
Author: Jessica Wang <je...@citrix.com>
Authored: Tue Aug 7 16:33:04 2012 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Wed Aug 8 10:42:02 2012 -0700

----------------------------------------------------------------------
 ui/scripts/autoscaler.js           |  113 +++++++++++++++++--------------
 ui/scripts/ui-custom/autoscaler.js |    3 +
 2 files changed, 65 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0970f933/ui/scripts/autoscaler.js
----------------------------------------------------------------------
diff --git a/ui/scripts/autoscaler.js b/ui/scripts/autoscaler.js
index db708e4..1dc90b9 100644
--- a/ui/scripts/autoscaler.js
+++ b/ui/scripts/autoscaler.js
@@ -25,63 +25,74 @@
     // UI actions to appear in dialog
     autoscaleActions: {
       enable: {
-        label: 'Enable Autoscaler',
-        action: function(args) {
-          args.response.success({
-            _custom: { jobId: 12345 },
-            notification: {
-              poll: function(args) {
-                args.complete({
-                  data: { state: 'Enabled' }
-                });
-              }
-            }
-          });
+        label: 'Enable Autoscale VM Group',
+        action: function(args) {				
+				  $.ajax({
+					  url: createURL('enableAutoScaleVmGroup'),
+						data: {
+						  id: args.context.originalAutoscaleData.context.autoscaleVmGroup.id
+						},
+						success: function(json) {						  				
+							var jid = json.enableautoscalevmGroupresponse.jobid;
+							args.response.success({
+							  _custom: {
+								  jobId: jid,
+									getUpdatedItem: function(json) {									  
+										return json.queryasyncjobresultresponse.jobresult.autoscalevmgroup;
+									},
+									getActionFilter: function() {									  
+										return cloudStack.autoscaler.actionFilter;										
+									}
+								},								
+								notification: {
+									poll: pollAsyncJobResult
+								}								
+							});															
+						}
+					});          
         }
       },
       disable: {
-        label: 'Disable Autoscaler',
-        action: function(args) {
-          args.response.success({
-            _custom: { jobId: 12345 },
-            notification: {
-              poll: function(args) {
-                args.complete({
-                  data: { state: 'Disabled' }
-                });
-              }
-            }
-          });
-        }
-      },
-      restart: {
-        label: 'Restart Autoscaler',
-        action: function(args) {
-          args.response.success({
-            _custom: { jobId: 12345 },
-            notification: {
-              poll: function(args) {
-                args.complete({
-                  data: { state: 'Enabled' }
-                });
-              }
-            }
-          });
+        label: 'Disable Autoscale VM Group',
+        action: function(args) {				  
+				  $.ajax({
+					  url: createURL('disableAutoScaleVmGroup'),
+						data: {
+						  id: args.context.originalAutoscaleData.context.autoscaleVmGroup.id
+						},
+						success: function(json) {						  			
+							var jid = json.disableautoscalevmGroupresponse.jobid;
+							args.response.success({
+							  _custom: {
+								  jobId: jid,
+									getUpdatedItem: function(json) {									  
+										return json.queryasyncjobresultresponse.jobresult.autoscalevmgroup;
+									},
+									getActionFilter: function() {									  
+										return cloudStack.autoscaler.actionFilter;										
+									}
+								},								
+								notification: {
+									poll: pollAsyncJobResult
+								}								
+							});															
+						}
+					});          
         }
       }
     },
-    actionFilter: function(args) {
-      var data = $.isArray(args.context.originalAutoscaleData) ?
-            args.context.originalAutoscaleData[0] : {};
-
-      if (data.state == 'Enabled') {
-        return ['disable', 'restart'];
-      } else if (data.state == 'Disabled') {
-        return ['enable'];
-      }
-
-      // No existing data, so actions are not visible
-      return [];
+    actionFilter: function(args) {		  
+			var allowedActions = [];		
+			if(args.context.originalAutoscaleData == null) { //new LB rule
+			  //no actions  for new LB rule
+			}
+			else { //existing LB rule			 
+				if(args.context.originalAutoscaleData[0].context.autoscaleVmGroup.state == 'disabled')
+				  allowedActions.push('enable');
+				else if(args.context.originalAutoscaleData[0].context.autoscaleVmGroup.state == 'enabled')
+				  allowedActions.push('disable');				
+			}	
+			return allowedActions;      
     },
     dataProvider: function(args) {
       // Reset data

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0970f933/ui/scripts/ui-custom/autoscaler.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/autoscaler.js b/ui/scripts/ui-custom/autoscaler.js
index ceec5a7..8e9c5c2 100644
--- a/ui/scripts/ui-custom/autoscaler.js
+++ b/ui/scripts/ui-custom/autoscaler.js
@@ -115,6 +115,9 @@
             };
 
             action.action({
+						  context: {
+							  originalAutoscaleData: args.data,
+							},						  
               response: {
                 success: function(args) {
                   var notification = $.extend(args.notification, {