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 2013/06/01 00:38:24 UTC

git commit: updated refs/heads/master to 8deeb90

Updated Branches:
  refs/heads/master 66f5d4a53 -> 8deeb90a6


CLOUDSTACK-2746: UI - InternalLB - VPC section - tiers - add tier dialog - network offering dropdown - exclude PublicLb network offerings only when PublicLb networks exists (i.e. LB network whose provider is VpcVirtualRouter or Netscaler exists).


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

Branch: refs/heads/master
Commit: 8deeb90a6dcd90797d36f3c0ecd903a068140093
Parents: 66f5d4a
Author: Jessica Wang <je...@apache.org>
Authored: Fri May 31 15:33:15 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Fri May 31 15:35:24 2013 -0700

----------------------------------------------------------------------
 ui/scripts/vpc.js |   50 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 37 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8deeb90a/ui/scripts/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index 8f98414..033ac7f 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -3002,7 +3002,7 @@
                 validation: { required: true },
                 dependsOn: 'zoneId',
                 select: function(args) {
-                  var networkSupportingLbExists = false;
+                  var publicLbNetworkExists = false;
                   $.ajax({
                     url: createURL('listNetworks'),
                     data: {
@@ -3010,11 +3010,35 @@
                       supportedservices: 'LB'
                     },
                     success: function(json) {
-                      var networkSupportingLbExists;
-                      if(json.listnetworksresponse.network != null && json.listnetworksresponse.network.length > 0)
-                        networkSupportingLbExists = true;
-                      else
-                        networkSupportingLbExists = false;
+                      var publicLbNetworkExists = false;
+                      
+                      var lbNetworks = json.listnetworksresponse.network;                      
+                      if(lbNetworks != null) {
+                        for(var i = 0; i < lbNetworks.length; i++) {
+                          var thisNetworkOfferingIncludesPublicLbService = false;                          
+                          $.ajax({
+                            url: createURL('listNetworkOfferings'),
+                            data: {
+                              id: lbNetworks[i].networkofferingid
+                            },
+                            async: false,
+                            success: function(json) {                             
+                              var networkOffering = json.listnetworkofferingsresponse.networkoffering[0];                              
+                              $(networkOffering.service).each(function(){                                
+                                var thisService = this;                                
+                                if(thisService.name == "Lb" && lbProviderMap.publicLb.vpc.indexOf(thisService.provider[0].name) != -1) {    
+                                  thisNetworkOfferingIncludesPublicLbService = true;
+                                  return false; //break $.each() loop
+                                }
+                              });   
+                            }
+                          });                          
+                          if(thisNetworkOfferingIncludesPublicLbService == true) {
+                            publicLbNetworkExists = true;
+                            break; //break for loop
+                          }    
+                        }   
+                      }      
 
                       $.ajax({
                         url: createURL('listNetworkOfferings'),
@@ -3029,19 +3053,19 @@
                         success: function(json) {
                           var networkOfferings = json.listnetworkofferingsresponse.networkoffering;
 
-                          var items;
-                          if(networkSupportingLbExists == true) {
+                          //only one network(tier) is allowed to have PublicLb (i.e. provider is PublicLb provider like "VpcVirtualRouter", "Netscaler") in a VPC
+                          var items;                          
+                          if(publicLbNetworkExists == true) { //so, if a PublicLb network(tier) already exists in the vpc, exclude PublicLb network offerings from dropdown
                             items = $.grep(networkOfferings, function(networkOffering) {
-                              var includingPublicLbService = false;
+                              var thisNetworkOfferingIncludesPublicLbService = false;
                               $(networkOffering.service).each(function(){
-                                var thisService = this;
-                                //only one tier is allowed to have PublicLb provider in a VPC
+                                var thisService = this;                                
                                 if(thisService.name == "Lb" && lbProviderMap.publicLb.vpc.indexOf(thisService.provider[0].name) != -1) {                                  
-                                  includingPublicLbService = true;
+                                  thisNetworkOfferingIncludesPublicLbService = true;
                                   return false; //break $.each() loop
                                 }
                               });
-                              return !includingPublicLbService;
+                              return !thisNetworkOfferingIncludesPublicLbService;
                             });
                           }
                           else {