cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jessicaw...@apache.org
Subject git commit: updated refs/heads/4.2 to 3953cbe
Date Mon, 08 Jul 2013 18:58:49 GMT
Updated Branches:
  refs/heads/4.2 39e6e7f09 -> 3953cbe35


CLOUDSTACK-3164: UI - VPC section - tier - Internal LB - detailView - add assignVMs action
in detailView (will show on Quickview in listView as well).


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

Branch: refs/heads/4.2
Commit: 3953cbe35edfd7ee98a07c09cc271fdcc399bfcb
Parents: 39e6e7f
Author: Jessica Wang <jessicawang@apache.org>
Authored: Tue Jul 2 16:14:54 2013 -0700
Committer: Jessica Wang <jessicawang@apache.org>
Committed: Mon Jul 8 11:58:39 2013 -0700

----------------------------------------------------------------------
 ui/scripts/vpc.js | 110 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 108 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3953cbe3/ui/scripts/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index e31121e..d5a02f6 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -584,7 +584,98 @@
           detailView: {
             isMaximized: true,
             name: 'Internal LB details',
-            actions: {              
+            actions: {                
+              assignVMs: {
+                label: 'Assign VMs',
+                messages: {
+                  notification: function(args) { return 'Assign VMs'; }
+                },
+                needsRefresh: true,
+                listView: $.extend(true, {}, cloudStack.sections.instances.listView, {
+                  type: 'checkbox',
+                  filters: false,
+                  dataProvider: function(args) {       
+                    var assignedInstances;
+                    $.ajax({
+                      url: createURL('listLoadBalancers'),
+                      data: {
+                        id: args.context.internalLoadBalancers[0].id
+                      },
+                      async: false,
+                      success: function(json) {    
+                        assignedInstances = json.listloadbalancerssresponse.loadbalancer[0].loadbalancerinstance;
        
+                        if(assignedInstances == null)
+                          assignedInstances = []; 
+                      }
+                    });                     
+                    
+                    $.ajax({
+                      url: createURL('listVirtualMachines'),
+                      data: {
+                        networkid: args.context.networks[0].id,
+                        listAll: true
+                      },
+                      success: function(json) {
+                        var instances = json.listvirtualmachinesresponse.virtualmachine;
+
+                        // Pre-select existing instances in LB rule
+                        $(instances).map(function(index, instance) {
+                          instance._isSelected = $.grep(assignedInstances,              
                   
+                            function(assignedInstance) {
+                              return assignedInstance.id == instance.id;
+                            }
+                          ).length ? true : false;
+                        });
+                        
+                        //remove assigned VMs (i.e. instance._isSelected == true)
+                        var items = [];
+                        if(instances != null) {
+                          for(var i = 0; i < instances.length; i++) {
+                            if(instances[i]._isSelected == true)
+                              continue;
+                            else
+                              items.push(instances[i]);
+                          }
+                        }
+                        
+                        args.response.success({
+                          data: items
+                        });
+                      }
+                    });
+                  }
+                }),
+                action: function(args) {                          
+                  var vms = args.context.instances;
+                  var array1 = [];
+                  for(var i = 0; i < vms.length; i++) {
+                    array1.push(vms[i].id);
+                  }
+                  var virtualmachineids = array1.join(',');
+                  
+                  $.ajax({
+                    url: createURL('assignToLoadBalancerRule'),
+                    data: {
+                      id: args.context.internalLoadBalancers[0].id,
+                      virtualmachineids: virtualmachineids
+                    },
+                    dataType: 'json',
+                    async: true,
+                    success: function(data) {                          
+                      var jid = data.assigntoloadbalancerruleresponse.jobid;            
                                      
+                      args.response.success({
+                        _custom: { 
+                          jobId: jid
+                        }
+                      });
+                    }
+                  });
+                },
+                notification: {
+                  poll: pollAsyncJobResult
+                }                      
+              },
+                            
               remove: {
                 label: 'Delete Internal LB',
                 messages: {
@@ -632,7 +723,22 @@
                     sourceipaddress: { label: 'Source IP Address' },
                     sourceport: { label: 'Source Port' },
                     instanceport: { label: 'Instance Port' },
-                    algorithm: { label: 'label.algorithm' }                        
+                    algorithm: { label: 'label.algorithm' },
+                    loadbalancerinstance: { 
+                      label: 'Assigned VMs',
+                      converter: function(objArray) {                       
+                        var s = '';
+                        if(objArray != null) {
+                          for(var i = 0; i < objArray.length; i++) {
+                            if(i > 0) {
+                              s += ', ';      
+                            }                                                    
+                            s += objArray[i].name + ' ('+ objArray[i].ipaddress + ')';
+                          }
+                        }                        
+                        return s;                     
+                      }
+                    }
                   }
                 ],                    
                 dataProvider: function(args) {      


Mime
View raw message