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/10/17 19:46:40 UTC
git commit: updated refs/heads/master to 73c7de7
Updated Branches:
refs/heads/master 25acfbad7 -> 73c7de70e
CLOUDSTACK-754: UI > add Remote Access VPN support for VPC sourceNAT IP.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/73c7de70
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/73c7de70
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/73c7de70
Branch: refs/heads/master
Commit: 73c7de70e971314a568ff748e6b1752a86ae1e21
Parents: 25acfba
Author: Jessica Wang <je...@apache.org>
Authored: Thu Oct 17 10:43:12 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Thu Oct 17 10:46:30 2013 -0700
----------------------------------------------------------------------
ui/scripts/network.js | 233 ++++++++++++++++++++++++---------------------
1 file changed, 123 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/73c7de70/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index d0f6a92..80ddbcb 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -139,6 +139,7 @@
var ipObj = args.context.item;
var status = ipObj.state;
+ //***** apply to both Isolated Guest Network IP, VPC IP (begin) *****
if (status == 'Destroyed' ||
status == 'Releasing' ||
status == 'Released' ||
@@ -149,90 +150,105 @@
return [];
}
- if (args.context.networks[0].networkofferingconservemode == false) {
- /*
- (1) If IP is SourceNat, no StaticNat/VPN/PortForwarding/LoadBalancer can be enabled/added.
- */
- if (ipObj.issourcenat == true) {
- disallowedActions.push('enableStaticNAT');
- disallowedActions.push('enableVPN');
- }
-
- /*
- (2) If IP is non-SourceNat, show StaticNat/VPN/PortForwarding/LoadBalancer at first.
- 1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
- 2. 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 { //ipObj.issourcenat == false
- if (ipObj.isstaticnat) { //1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
- disallowedActions.push('enableVPN');
- }
- if (ipObj.vpnenabled) { //2. Once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
- disallowedActions.push('enableStaticNAT');
- }
-
- //3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
- $.ajax({
- url: createURL('listPortForwardingRules'),
- data: {
- ipaddressid: ipObj.id,
- listAll: true
- },
- dataType: 'json',
- async: false,
- success: function(json) {
- var rules = json.listportforwardingrulesresponse.portforwardingrule;
- if (rules != null && rules.length > 0) {
- disallowedActions.push('enableVPN');
- disallowedActions.push('enableStaticNAT');
- }
- }
- });
-
- //4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
- $.ajax({
- url: createURL('listLoadBalancerRules'),
- data: {
- publicipid: ipObj.id,
- listAll: true
- },
- dataType: 'json',
- async: false,
- success: function(json) {
- var rules = json.listloadbalancerrulesresponse.loadbalancerrule;
- if (rules != null && rules.length > 0) {
- disallowedActions.push('enableVPN');
- disallowedActions.push('enableStaticNAT');
- }
- }
- });
- }
- }
-
- if (ipObj.isstaticnat) {
- disallowedActions.push('enableStaticNAT');
- } else {
- disallowedActions.push('disableStaticNAT');
- }
-
- if (ipObj.networkOfferingHavingVpnService == true) {
- if (ipObj.vpnenabled) {
- disallowedActions.push('enableVPN');
- } else {
- disallowedActions.push('disableVPN');
- }
- } else { //ipObj.networkOfferingHavingVpnService == false
- disallowedActions.push('disableVPN');
- disallowedActions.push('enableVPN');
- }
-
- if (ipObj.issourcenat) {
+ if (ipObj.issourcenat) { //sourceNAT IP doesn't support staticNAT
disallowedActions.push('enableStaticNAT');
disallowedActions.push('disableStaticNAT');
disallowedActions.push('remove');
- }
+ } else { //non-sourceNAT IP supports staticNAT
+ if (ipObj.isstaticnat) {
+ disallowedActions.push('enableStaticNAT');
+ } else {
+ disallowedActions.push('disableStaticNAT');
+ }
+ }
+ //***** apply to both Isolated Guest Network IP, VPC IP (end) *****
+
+
+ if (!('vpc' in args.context)) { //***** Guest Network section > Guest Network page > IP Address page *****
+ if (args.context.networks[0].networkofferingconservemode == false) {
+ /*
+ (1) If IP is SourceNat, no StaticNat/VPN/PortForwarding/LoadBalancer can be enabled/added.
+ */
+ if (ipObj.issourcenat == true) {
+ disallowedActions.push('enableStaticNAT');
+ disallowedActions.push('enableVPN');
+ }
+
+ /*
+ (2) If IP is non-SourceNat, show StaticNat/VPN/PortForwarding/LoadBalancer at first.
+ 1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
+ 2. 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 { //ipObj.issourcenat == false
+ if (ipObj.isstaticnat) { //1. Once StaticNat is enabled, hide VPN/PortForwarding/LoadBalancer.
+ disallowedActions.push('enableVPN');
+ }
+ if (ipObj.vpnenabled) { //2. Once VPN is enabled, hide StaticNat/PortForwarding/LoadBalancer.
+ disallowedActions.push('enableStaticNAT');
+ }
+
+ //3. Once a PortForwarding rule is added, hide StaticNat/VPN/LoadBalancer.
+ $.ajax({
+ url: createURL('listPortForwardingRules'),
+ data: {
+ ipaddressid: ipObj.id,
+ listAll: true
+ },
+ dataType: 'json',
+ async: false,
+ success: function(json) {
+ var rules = json.listportforwardingrulesresponse.portforwardingrule;
+ if (rules != null && rules.length > 0) {
+ disallowedActions.push('enableVPN');
+ disallowedActions.push('enableStaticNAT');
+ }
+ }
+ });
+
+ //4. Once a LoadBalancer rule is added, hide StaticNat/VPN/PortForwarding.
+ $.ajax({
+ url: createURL('listLoadBalancerRules'),
+ data: {
+ publicipid: ipObj.id,
+ listAll: true
+ },
+ dataType: 'json',
+ async: false,
+ success: function(json) {
+ var rules = json.listloadbalancerrulesresponse.loadbalancerrule;
+ if (rules != null && rules.length > 0) {
+ disallowedActions.push('enableVPN');
+ disallowedActions.push('enableStaticNAT');
+ }
+ }
+ });
+ }
+ }
+
+ if (ipObj.networkOfferingHavingVpnService == true) {
+ if (ipObj.vpnenabled) {
+ disallowedActions.push('enableVPN');
+ } else {
+ disallowedActions.push('disableVPN');
+ }
+ } else { //ipObj.networkOfferingHavingVpnService == false
+ disallowedActions.push('disableVPN');
+ disallowedActions.push('enableVPN');
+ }
+ } else { //***** VPC section > Configuration VPC > Router > Public IP Addresses *****
+ if (ipObj.issourcenat) { //VPC sourceNAT IP: supports VPN
+ if (ipObj.vpnenabled) {
+ disallowedActions.push('enableVPN');
+ } else {
+ disallowedActions.push('disableVPN');
+ }
+ } else { //VPC non-sourceNAT IP: doesn't support VPN
+ disallowedActions.push('enableVPN');
+ disallowedActions.push('disableVPN');
+ }
+ }
allowedActions = $.grep(allowedActions, function(item) {
return $.inArray(item, disallowedActions) == -1;
@@ -444,9 +460,7 @@
})
});
}
- });
- //???
-
+ });
}
},
@@ -2121,28 +2135,7 @@
detailView: {
name: 'IP address detail',
tabFilter: function(args) {
- var item = args.context.ipAddresses[0];
-
- // Get VPN data
- $.ajax({
- url: createURL('listRemoteAccessVpns'),
- data: {
- listAll: true,
- publicipid: item.id
- },
- dataType: 'json',
- async: false,
- success: function(vpnResponse) {
- var isVPNEnabled = vpnResponse.listremoteaccessvpnsresponse.count;
- if (isVPNEnabled) {
- item.vpnenabled = true;
- item.remoteaccessvpn = vpnResponse.listremoteaccessvpnsresponse.remoteaccessvpn[0];
- };
- },
- error: function(data) {
- args.response.error(parseXMLHttpResponse(data));
- }
- });
+ var item = args.context.ipAddresses[0];
var disabledTabs = [];
var ipAddress = args.context.ipAddresses[0];
@@ -5935,7 +5928,7 @@
};
function getExtaPropertiesForIpObj(ipObj, args) {
- if (!('vpc' in args.context)) { //from Guest Network section
+ if (!('vpc' in args.context)) { //***** Guest Network section > Guest Network page > IP Address page *****
var services = args.context.networks[0].service;
if(services != null) {
for(var i = 0; i < services.length; i++) {
@@ -5959,12 +5952,32 @@
if (isVPNEnabled) {
ipObj.vpnenabled = true;
ipObj.remoteaccessvpn = vpnResponse.listremoteaccessvpnsresponse.remoteaccessvpn[0];
- };
+ } else {
+ ipObj.vpnenabled = false;
+ }
}
});
}
- } else { //from VPC section
- ipObj.networkOfferingHavingVpnService = false; //VPN is not supported in IP in VPC, so hardcode it as false
+ } else { //***** VPC section > Configuration VPC > Router > Public IP Addresses *****
+ if (ipObj.issourcenat) { //VPC sourceNAT IP: supports VPN
+ $.ajax({
+ url: createURL('listRemoteAccessVpns'),
+ data: {
+ listAll: true,
+ publicipid: ipObj.id
+ },
+ async: false,
+ success: function(vpnResponse) {
+ var isVPNEnabled = vpnResponse.listremoteaccessvpnsresponse.count;
+ if (isVPNEnabled) {
+ ipObj.vpnenabled = true;
+ ipObj.remoteaccessvpn = vpnResponse.listremoteaccessvpnsresponse.remoteaccessvpn[0];
+ } else {
+ ipObj.vpnenabled = false;
+ }
+ }
+ });
+ }
}
}