From f8f1e538f880a626bb677869b49c0e7e7d87f817 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Fri, 2 Dec 2011 12:48:39 -0800 Subject: [PATCH] bug 12249 Correctly filter VM list for port forwarding and load balancing, to only allow for stopped/running VMs, and only VMs within the specified network --- ui/scripts/network.js | 54 ++++++++++++++++++++++++++++++++++++-- ui/scripts/ui/multiEdit.js | 2 ++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index a3da9f25243..faabd922348 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -942,7 +942,32 @@ // Load balancing rules loadBalancing: { - listView: cloudStack.sections.instances, + listView: $.extend(true, {}, cloudStack.sections.instances, { + listView: { + dataProvider: function(args) { + $.ajax({ + url: createURL('listVirtualMachines'), + data: { + physicalnetworkid: args.context.ipAddresses[0].physicalnetworkid + }, + dataType: 'json', + async: true, + success: function(data) { + args.response.success({ + data: $.grep( + data.listvirtualmachinesresponse.virtualmachine, + function(instance) { + return $.inArray(instance.state, [ + 'Destroyed' + ]) == -1; + } + ) + }); + } + }); + } + } + }), multipleAdd: true, fields: { 'name': { edit: true, label: 'Name' }, @@ -1080,7 +1105,32 @@ // Port forwarding rules portForwarding: { - listView: cloudStack.sections.instances, + listView: $.extend(true, {}, cloudStack.sections.instances, { + listView: { + dataProvider: function(args) { + $.ajax({ + url: createURL('listVirtualMachines'), + data: { + physicalnetworkid: args.context.ipAddresses[0].physicalnetworkid + }, + dataType: 'json', + async: true, + success: function(data) { + args.response.success({ + data: $.grep( + data.listvirtualmachinesresponse.virtualmachine, + function(instance) { + return $.inArray(instance.state, [ + 'Destroyed' + ]) == -1; + } + ) + }); + } + }); + } + } + }), fields: { 'private-ports': { edit: true, diff --git a/ui/scripts/ui/multiEdit.js b/ui/scripts/ui/multiEdit.js index bac2818d27e..2bb9a1f5fd5 100644 --- a/ui/scripts/ui/multiEdit.js +++ b/ui/scripts/ui/multiEdit.js @@ -430,6 +430,7 @@ // from main instances list view var $listView; var instances = $.extend(true, {}, args.listView, { + context: context, uiCustom: true }); @@ -512,6 +513,7 @@ complete: function(completeArgs) { complete(args); $loading.remove(); + $(window).trigger('cloudStack.fullRefresh'); }, error: function(args) {