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:23:55 UTC
git commit: cloudstack 3.0 UI - VPC - IP Address page - configuration
tab - fix a bug that root-admin was unable to see LB service of IP Address
owned by regular-user or domain-admin.
Updated Branches:
refs/heads/vpc 0c8ce06f6 -> 0db332887
cloudstack 3.0 UI - VPC - IP Address page - configuration tab - fix a bug that root-admin was unable to see LB service of IP Address owned by regular-user or domain-admin.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/0db33288
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/0db33288
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/0db33288
Branch: refs/heads/vpc
Commit: 0db332887e5934a30f1ca3c1eb6d7f4b0dc56995
Parents: 0c8ce06
Author: Jessica Wang <je...@citrix.com>
Authored: Tue Aug 7 10:45:58 2012 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Wed Aug 8 10:22:49 2012 -0700
----------------------------------------------------------------------
ui/scripts/network.js | 261 ++++++++++++++++++++++---------------------
1 files changed, 134 insertions(+), 127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/0db33288/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index fbcde8d..6b79f71 100644
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -1714,137 +1714,144 @@
var havingVpnService = false;
if('networks' in args.context && args.context.networks[0].vpcid == null) { //a non-VPC network from Guest Network section
- $.ajax({
- url: createURL("listNetworkOfferings&id=" + args.context.networks[0].networkofferingid),
- dataType: "json",
- async: false,
- success: function(json) {
- var networkoffering = json.listnetworkofferingsresponse.networkoffering[0];
- $(networkoffering.service).each(function(){
- var thisService = this;
- if(thisService.name == "Firewall")
- havingFirewallService = true;
- if(thisService.name == "PortForwarding")
- havingPortForwardingService = true;
- if(thisService.name == "Lb")
- havingLbService = true;
- if(thisService.name == "Vpn")
- havingVpnService = true;
- });
- }
- });
- }
- else { //a VPC network from Guest Network section or from VPC section
+ $.ajax({
+ url: createURL('listNetworkOfferings'),
+ data: {
+ listAll: true,
+ id: args.context.networks[0].networkofferingid
+ },
+ async: false,
+ success: function(json) {
+ var networkoffering = json.listnetworkofferingsresponse.networkoffering[0];
+ $(networkoffering.service).each(function(){
+ var thisService = this;
+ if(thisService.name == "Firewall")
+ havingFirewallService = true;
+ if(thisService.name == "PortForwarding")
+ havingPortForwardingService = true;
+ if(thisService.name == "Lb")
+ havingLbService = true;
+ if(thisService.name == "Vpn")
+ havingVpnService = true;
+ });
+ }
+ });
+ }
+ else { //a VPC network from Guest Network section or from VPC section
// Firewall is not supported in IP from VPC section
// (because ACL has already supported in tier from VPC section)
- havingFirewallService = false;
- disallowedActions.push("firewall");
-
- havingVpnService = false; //VPN is not supported in IP from VPC section
-
- if(args.context.ipAddresses[0].associatednetworkid == null) { //IP is not associated with any tier yet
- havingPortForwardingService = true;
- havingLbService = true;
- }
- else { //IP is associated with a tier
- $.ajax({
- url: createURL("listNetworks&id=" + args.context.ipAddresses[0].associatednetworkid),
- async: false,
- success: function(json) {
- var networkObj = json.listnetworksresponse.network[0];
- $.ajax({
- url: createURL("listNetworkOfferings&id=" + networkObj.networkofferingid),
- async: false,
- success: function(json) {
- var networkoffering = json.listnetworkofferingsresponse.networkoffering[0];
- $(networkoffering.service).each(function(){
- var thisService = this;
- if(thisService.name == "PortForwarding")
- havingPortForwardingService = true;
- if(thisService.name == "Lb")
- havingLbService = true;
- });
- }
- });
- }
- });
- }
- }
-
- if(args.context.ipAddresses[0].networkOfferingConserveMode == false) {
- /*
- (1) If IP is SourceNat, no StaticNat/VPN/PortForwarding/LoadBalancer can be enabled/added.
- */
- if (args.context.ipAddresses[0].issourcenat){
- if(havingFirewallService == false) { //firewall is not supported in IP from VPC section (because ACL has already supported in tier from VPC section)
- disallowedActions.push("firewall");
- }
-
- disallowedActions.push("portForwarding");
- disallowedActions.push("loadBalancing");
- }
-
- /*
- (2) If IP is non-SourceNat, show StaticNat/VPN/PortForwarding/LoadBalancer at first.
- 1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
- 2. If VPN service is supported (i.e. IP comes from Guest Network section, not from VPC section), once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
- 3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
- 4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
- */
- else { //args.context.ipAddresses[0].issourcenat == false
- if(havingFirewallService == false)
- disallowedActions.push("firewall");
- if(havingPortForwardingService == false)
- disallowedActions.push("portForwarding");
- if(havingLbService == false)
- disallowedActions.push("loadBalancing");
-
- if (args.context.ipAddresses[0].isstaticnat) { //1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
- disallowedActions.push("portForwarding");
- disallowedActions.push("loadBalancing");
- }
- if (havingVpnService && args.context.ipAddresses[0].vpnenabled) { //2. If VPN service is supported (i.e. IP comes from Guest Network section, not from VPC section), once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
- disallowedActions.push("portForwarding");
- disallowedActions.push("loadBalancing");
- }
-
- //3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
- $.ajax({
- url: createURL('listPortForwardingRules'),
- data: {
- ipaddressid: args.context.ipAddresses[0].id,
- listAll: true
- },
- dataType: 'json',
- async: false,
- success: function(json) {
- // Get instance
- var rules = json.listportforwardingrulesresponse.portforwardingrule;
- if(rules != null && rules.length > 0) {
- disallowedActions.push("loadBalancing");
- }
- }
- });
-
- //4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
- $.ajax({
- url: createURL('listLoadBalancerRules'),
+ havingFirewallService = false;
+ disallowedActions.push("firewall");
+
+ havingVpnService = false; //VPN is not supported in IP from VPC section
+
+ if(args.context.ipAddresses[0].associatednetworkid == null) { //IP is not associated with any tier yet
+ havingPortForwardingService = true;
+ havingLbService = true;
+ }
+ else { //IP is associated with a tier
+ $.ajax({
+ url: createURL('listNetworks'),
data: {
- publicipid: args.context.ipAddresses[0].id,
- listAll: true
+ listAll: true,
+ id: args.context.ipAddresses[0].associatednetworkid
},
- dataType: 'json',
- async: false,
- success: function(json) {
- var rules = json.listloadbalancerrulesresponse.loadbalancerrule;
- if(rules != null && rules.length > 0) {
- disallowedActions.push("portForwarding");
- }
- }
- });
- }
- }
-
+ async: false,
+ success: function(json) {
+ var networkObj = json.listnetworksresponse.network[0];
+ $.ajax({
+ url: createURL("listNetworkOfferings&id=" + networkObj.networkofferingid),
+ async: false,
+ success: function(json) {
+ var networkoffering = json.listnetworkofferingsresponse.networkoffering[0];
+ $(networkoffering.service).each(function(){
+ var thisService = this;
+ if(thisService.name == "PortForwarding")
+ havingPortForwardingService = true;
+ if(thisService.name == "Lb")
+ havingLbService = true;
+ });
+ }
+ });
+ }
+ });
+ }
+ }
+
+ if(args.context.ipAddresses[0].networkOfferingConserveMode == false) {
+ /*
+ (1) If IP is SourceNat, no StaticNat/VPN/PortForwarding/LoadBalancer can be enabled/added.
+ */
+ if (args.context.ipAddresses[0].issourcenat){
+ if(havingFirewallService == false) { //firewall is not supported in IP from VPC section (because ACL has already supported in tier from VPC section)
+ disallowedActions.push("firewall");
+ }
+
+ disallowedActions.push("portForwarding");
+ disallowedActions.push("loadBalancing");
+ }
+
+ /*
+ (2) If IP is non-SourceNat, show StaticNat/VPN/PortForwarding/LoadBalancer at first.
+ 1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
+ 2. If VPN service is supported (i.e. IP comes from Guest Network section, not from VPC section), once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
+ 3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
+ 4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
+ */
+ else { //args.context.ipAddresses[0].issourcenat == false
+ if(havingFirewallService == false)
+ disallowedActions.push("firewall");
+ if(havingPortForwardingService == false)
+ disallowedActions.push("portForwarding");
+ if(havingLbService == false)
+ disallowedActions.push("loadBalancing");
+
+ if (args.context.ipAddresses[0].isstaticnat) { //1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
+ disallowedActions.push("portForwarding");
+ disallowedActions.push("loadBalancing");
+ }
+ if (havingVpnService && args.context.ipAddresses[0].vpnenabled) { //2. If VPN service is supported (i.e. IP comes from Guest Network section, not from VPC section), once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
+ disallowedActions.push("portForwarding");
+ disallowedActions.push("loadBalancing");
+ }
+
+ //3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
+ $.ajax({
+ url: createURL('listPortForwardingRules'),
+ data: {
+ ipaddressid: args.context.ipAddresses[0].id,
+ listAll: true
+ },
+ dataType: 'json',
+ async: false,
+ success: function(json) {
+ // Get instance
+ var rules = json.listportforwardingrulesresponse.portforwardingrule;
+ if(rules != null && rules.length > 0) {
+ disallowedActions.push("loadBalancing");
+ }
+ }
+ });
+
+ //4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
+ $.ajax({
+ url: createURL('listLoadBalancerRules'),
+ data: {
+ publicipid: args.context.ipAddresses[0].id,
+ listAll: true
+ },
+ dataType: 'json',
+ async: false,
+ success: function(json) {
+ var rules = json.listloadbalancerrulesresponse.loadbalancerrule;
+ if(rules != null && rules.length > 0) {
+ disallowedActions.push("portForwarding");
+ }
+ }
+ });
+ }
+ }
+
return disallowedActions;
},