(1) CS-15057: Remove jquery.timer.js from source code. Replace it with native JavaScript functions.

(2) CS-14604: cloudstack 3.0 UI - Add Zone Wizard - skip Guest Traffic step if OVS tunnel manager is enabled.
(3) CS-15311: cloudstack 3.0 UI - Add Zone Wizard - add physical network step - no isolation method dropdown if network type is Basic.
(4) CS-14769:  Don't pass subdomainaccess param when scope=project.
(5) CS-15157: cloudstack 3.0 UI - infrastructure page - physical network - network service providers - reset nspMap before populating listNetworkServiceProviders response to nspMap.
This commit is contained in:
Jessica Wang 2012-06-21 12:13:41 -07:00
parent e7995d09dc
commit a00c21686f
5 changed files with 229 additions and 345 deletions

View File

@ -1584,7 +1584,6 @@
<script src="lib/jquery-ui/js/jquery-ui.js" type="text/javascript"></script> <script src="lib/jquery-ui/js/jquery-ui.js" type="text/javascript"></script>
<script src="lib/date.js" type="text/javascript"></script> <script src="lib/date.js" type="text/javascript"></script>
<script src="lib/jquery.cookies.js" type="text/javascript"></script> <script src="lib/jquery.cookies.js" type="text/javascript"></script>
<script src="lib/jquery.timers.js" type="text/javascript"></script>
<script src="lib/jquery.md5.js" type="text/javascript" ></script> <script src="lib/jquery.md5.js" type="text/javascript" ></script>
<script src="lib/excanvas.js"></script> <script src="lib/excanvas.js"></script>

View File

@ -1,138 +0,0 @@
/**
* jQuery.timers - Timer abstractions for jQuery
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
* Date: 2009/10/16
*
* @author Blair Mitchelmore
* @version 1.2
*
**/
jQuery.fn.extend({
everyTime: function(interval, label, fn, times) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, times);
});
},
oneTime: function(interval, label, fn) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, 1);
});
},
stopTime: function(label, fn) {
return this.each(function() {
jQuery.timer.remove(this, label, fn);
});
}
});
jQuery.extend({
timer: {
global: [],
guid: 1,
dataKey: "jQuery.timer",
regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
powers: {
// Yeah this is major overkill...
'ms': 1,
'cs': 10,
'ds': 100,
's': 1000,
'das': 10000,
'hs': 100000,
'ks': 1000000
},
timeParse: function(value) {
if (value == undefined || value == null)
return null;
var result = this.regex.exec(jQuery.trim(value.toString()));
if (result[2]) {
var num = parseFloat(result[1]);
var mult = this.powers[result[2]] || 1;
return num * mult;
} else {
return value;
}
},
add: function(element, interval, label, fn, times) {
var counter = 0;
if (jQuery.isFunction(label)) {
if (!times)
times = fn;
fn = label;
label = interval;
}
interval = jQuery.timer.timeParse(interval);
if (typeof interval != 'number' || isNaN(interval) || interval < 0)
return;
if (typeof times != 'number' || isNaN(times) || times < 0)
times = 0;
times = times || 0;
var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
if (!timers[label])
timers[label] = {};
fn.timerID = fn.timerID || this.guid++;
var handler = function() {
if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
jQuery.timer.remove(element, label, fn);
};
handler.timerID = fn.timerID;
if (!timers[label][fn.timerID])
timers[label][fn.timerID] = window.setInterval(handler,interval);
this.global.push( element );
},
remove: function(element, label, fn) {
var timers = jQuery.data(element, this.dataKey), ret;
if ( timers ) {
if (!label) {
for ( label in timers )
this.remove(element, label, fn);
} else if ( timers[label] ) {
if ( fn ) {
if ( fn.timerID ) {
window.clearInterval(timers[label][fn.timerID]);
delete timers[label][fn.timerID];
}
} else {
for ( var fn in timers[label] ) {
window.clearInterval(timers[label][fn]);
delete timers[label][fn];
}
}
for ( ret in timers[label] ) break;
if ( !ret ) {
ret = null;
delete timers[label];
}
}
for ( ret in timers ) break;
if ( !ret )
jQuery.removeData(element, this.dataKey);
}
}
}
});
jQuery(window).bind("unload", function() {
jQuery.each(jQuery.timer.global, function(index, item) {
jQuery.timer.remove(item);
});
});

View File

@ -2485,8 +2485,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addNetscalerProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -2496,7 +2495,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addNetscalerProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["netscaler"] = result.jobresult.networkserviceprovider; nspMap["netscaler"] = result.jobresult.networkserviceprovider;
addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addNetscalerLoadBalancer", "addnetscalerloadbalancerresponse", "netscalerloadbalancer"); addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addNetscalerLoadBalancer", "addnetscalerloadbalancerresponse", "netscalerloadbalancer");
@ -2511,7 +2510,7 @@
alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -2714,8 +2713,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addF5ProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -2725,7 +2723,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addF5ProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["f5"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider; nspMap["f5"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addF5LoadBalancer", "addf5bigiploadbalancerresponse"); addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addF5LoadBalancer", "addf5bigiploadbalancerresponse");
@ -2740,7 +2738,7 @@
alert("addNetworkServiceProvider&name=F5BigIpfailed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=F5BigIpfailed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -2962,8 +2960,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addJuniperSRXProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -2973,7 +2970,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addJuniperSRXProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["srx"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider; nspMap["srx"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
addExternalFirewall(args, selectedPhysicalNetworkObj, "addSrxFirewall", "addsrxfirewallresponse", "srxfirewall"); addExternalFirewall(args, selectedPhysicalNetworkObj, "addSrxFirewall", "addsrxfirewallresponse", "srxfirewall");
@ -2988,7 +2985,7 @@
alert("addNetworkServiceProvider&name=JuniperSRX failed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=JuniperSRX failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -5121,8 +5118,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addNetscalerProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -5132,7 +5128,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addNetscalerProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["netscaler"] = result.jobresult.networkserviceprovider; nspMap["netscaler"] = result.jobresult.networkserviceprovider;
addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addNetscalerLoadBalancer", "addnetscalerloadbalancerresponse", "netscalerloadbalancer"); addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addNetscalerLoadBalancer", "addnetscalerloadbalancerresponse", "netscalerloadbalancer");
@ -5147,7 +5143,7 @@
alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -5314,8 +5310,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addF5ProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -5325,7 +5320,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addF5ProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["f5"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider; nspMap["f5"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addF5LoadBalancer", "addf5bigiploadbalancerresponse", "f5loadbalancer"); addExternalLoadBalancer(args, selectedPhysicalNetworkObj, "addF5LoadBalancer", "addf5bigiploadbalancerresponse", "f5loadbalancer");
@ -5340,7 +5335,7 @@
alert("addNetworkServiceProvider&name=F5BigIpfailed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=F5BigIpfailed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -5524,8 +5519,7 @@
async: true, async: true,
success: function(json) { success: function(json) {
var jobId = json.addnetworkserviceproviderresponse.jobid; var jobId = json.addnetworkserviceproviderresponse.jobid;
var timerKey = "addNetworkServiceProviderJob_"+jobId; var addJuniperSRXProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -5535,7 +5529,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addJuniperSRXProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
nspMap["srx"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider; nspMap["srx"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
addExternalFirewall(args, selectedPhysicalNetworkObj, "addSrxFirewall", "addsrxfirewallresponse", "srxfirewall"); addExternalFirewall(args, selectedPhysicalNetworkObj, "addSrxFirewall", "addsrxfirewallresponse", "srxfirewall");
@ -5550,7 +5544,7 @@
alert("addNetworkServiceProvider&name=JuniperSRX failed. Error: " + errorMsg); alert("addNetworkServiceProvider&name=JuniperSRX failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -6227,9 +6221,11 @@
array1.push("&username=" + todb(args.data.vCenterUsername)); array1.push("&username=" + todb(args.data.vCenterUsername));
array1.push("&password=" + todb(args.data.vCenterPassword)); array1.push("&password=" + todb(args.data.vCenterPassword));
array1.push('&vsmipaddress=' + args.data.vsmipaddress); if (args.data.vsmipaddress) {
array1.push('&vsmusername=' + args.data.vsmusername); array1.push('&vsmipaddress=' + args.data.vsmipaddress);
array1.push('&vsmpassword=' + args.data.vsmpassword); array1.push('&vsmusername=' + args.data.vsmusername);
array1.push('&vsmpassword=' + args.data.vsmpassword);
}
var hostname = args.data.vCenterHost; var hostname = args.data.vCenterHost;
var dcName = args.data.vCenterDatacenter; var dcName = args.data.vCenterDatacenter;
@ -6491,7 +6487,7 @@
id: 'vSwitches', id: 'vSwitches',
fields: { fields: {
vsmdeviceid: { label: 'label.name' }, vsmdeviceid: { label: 'label.name' },
vsmdevicestate: { label: 'label.state' } vsmdevicestate: { label: 'label.state',indicator:{ 'Enabled': 'on' } }
}, },
detailView: { detailView: {
actions: { actions: {
@ -6517,6 +6513,8 @@
{jobId: jid} {jobId: jid}
} }
); );
//args.context.vSwitches[0].vsmdevicestate = item.allocationstate;
//addExtraPropertiesToClusterObject(item);
args.response.success({ args.response.success({
actionFilter: nexusActionfilter, actionFilter: nexusActionfilter,
data:item data:item
@ -6553,6 +6551,8 @@
{jobId: jid} {jobId: jid}
} }
); );
//args.context.vSwitches[0].vsmdevicestate = item.allocationstate;
//addExtraPropertiesToClusterObject(item);
args.response.success({ args.response.success({
actionFilter: nexusActionfilter, actionFilter: nexusActionfilter,
data:item data:item
@ -6602,7 +6602,7 @@
vsmctrlvlanid: { label: 'label.vsmctrlvlanid' }, vsmctrlvlanid: { label: 'label.vsmctrlvlanid' },
vsmpktvlanid: { label: 'label.vsmpktvlanid' }, vsmpktvlanid: { label: 'label.vsmpktvlanid' },
vsmstoragevlanid: { label: 'label.vsmstoragevlanid' }, vsmstoragevlanid: { label: 'label.vsmstoragevlanid' },
vsmdevicestate: { label: 'label.state' } vsmdevicestate: { label: 'label.state', indicator: { 'Enabled': 'on' } }
}, },
dataProvider: function(args) { dataProvider: function(args) {
@ -6635,6 +6635,7 @@
args.response.success({ args.response.success({
actionFilter: nexusActionfilter, actionFilter: nexusActionfilter,
data: item data: item
}); });
}, },
error: function(json) { error: function(json) {
@ -8596,8 +8597,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.updatephysicalnetworkresponse.jobid; var jobId = json.updatephysicalnetworkresponse.jobid;
var timerKey = "updatePhysicalNetworkJob_"+jobId; var enablePhysicalNetworkIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -8607,7 +8607,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enablePhysicalNetworkIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("updatePhysicalNetwork succeeded."); //alert("updatePhysicalNetwork succeeded.");
@ -8652,8 +8652,7 @@
async: false, async: false,
success: function(json) { success: function(json) {
var jobId = json.configurevirtualrouterelementresponse.jobid; var jobId = json.configurevirtualrouterelementresponse.jobid;
var timerKey = "configureVirtualRouterElementJob_"+jobId; var enableVirtualRouterElementIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -8663,7 +8662,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enableVirtualRouterElementIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("configureVirtualRouterElement succeeded."); //alert("configureVirtualRouterElement succeeded.");
@ -8673,8 +8672,7 @@
async: false, async: false,
success: function(json) { success: function(json) {
var jobId = json.updatenetworkserviceproviderresponse.jobid; var jobId = json.updatenetworkserviceproviderresponse.jobid;
var timerKey = "updateNetworkServiceProviderJob_"+jobId; var enableVirtualRouterProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -8684,7 +8682,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enableVirtualRouterProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("Virtual Router Provider is enabled"); //alert("Virtual Router Provider is enabled");
@ -8714,8 +8712,7 @@
async: false, async: false,
success: function(json) { success: function(json) {
var jobId = json.updatenetworkserviceproviderresponse.jobid; var jobId = json.updatenetworkserviceproviderresponse.jobid;
var timerKey = "updateNetworkServiceProviderJob_"+jobId; var enableSecurityGroupProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -8725,7 +8722,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enableSecurityGroupProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("Security group provider is enabled"); //alert("Security group provider is enabled");
@ -8777,7 +8774,7 @@
alert("updateNetworkServiceProvider failed. Error: " + errorMsg); alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -8858,7 +8855,7 @@
alert("updateNetworkServiceProvider failed. Error: " + errorMsg); alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -8872,7 +8869,7 @@
alert("configureVirtualRouterElement failed. Error: " + errorMsg); alert("configureVirtualRouterElement failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -8886,7 +8883,7 @@
alert("updatePhysicalNetwork failed. Error: " + errorMsg); alert("updatePhysicalNetwork failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
}; };
@ -9163,6 +9160,8 @@
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
nspMap = {}; //reset
var items = json.listnetworkserviceprovidersresponse.networkserviceprovider; var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
if(items != null) { if(items != null) {
for(var i = 0; i < items.length; i++) { for(var i = 0; i < items.length; i++) {

View File

@ -82,8 +82,7 @@
dataType: 'json', dataType: 'json',
success: function(json) { success: function(json) {
var jid = json.uploadcustomcertificateresponse.jobid; var jid = json.uploadcustomcertificateresponse.jobid;
var timerKey = "uploadcustomcertificatejob_" + jid; var uploadCustomCertificateIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid), url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json", dataType: "json",
@ -93,7 +92,7 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(uploadCustomCertificateIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
cloudStack.dialog.notice({ message: 'Update SSL Certiciate succeeded' }); cloudStack.dialog.notice({ message: 'Update SSL Certiciate succeeded' });
} }
@ -108,7 +107,7 @@
$loading.remove(); $loading.remove();
} }
}); });
}); }, 3000);
}, },
error: function(XMLHttpResponse) { error: function(XMLHttpResponse) {
cloudStack.dialog.notice({ message: 'Failed to update SSL Certificate. ' + parseXMLHttpResponse(XMLHttpResponse) }); cloudStack.dialog.notice({ message: 'Failed to update SSL Certificate. ' + parseXMLHttpResponse(XMLHttpResponse) });

View File

@ -17,6 +17,7 @@
var selectedNetworkOfferingHavingNetscaler = false; var selectedNetworkOfferingHavingNetscaler = false;
var returnedPublicVlanIpRanges = []; //public VlanIpRanges returned by API var returnedPublicVlanIpRanges = []; //public VlanIpRanges returned by API
var configurationUseLocalStorage = false; var configurationUseLocalStorage = false;
var skipGuestTrafficStep = false;
// Makes URL string for traffic label // Makes URL string for traffic label
var trafficLabelParam = function(trafficTypeID, data, physicalNetworkID) { var trafficLabelParam = function(trafficTypeID, data, physicalNetworkID) {
@ -241,15 +242,35 @@
if (args.data['network-model'] == 'Basic') { if (args.data['network-model'] == 'Basic') {
$('.setup-guest-traffic').addClass('basic'); $('.setup-guest-traffic').addClass('basic');
$('.setup-guest-traffic').removeClass('advanced'); $('.setup-guest-traffic').removeClass('advanced');
} else { skipGuestTrafficStep = false; //set value
}
else {
$('.setup-guest-traffic').removeClass('basic'); $('.setup-guest-traffic').removeClass('basic');
$('.setup-guest-traffic').addClass('advanced'); $('.setup-guest-traffic').addClass('advanced');
}
return args.data['network-model'] == 'Basic' || //skip the step if OVS tunnel manager is enabled
$.grep(args.groupedData.physicalNetworks, function(network) { skipGuestTrafficStep = false; //reset it before ajax call
return $.inArray('guest', network.trafficTypes) > -1; $.ajax({
}).length; url: createURL('listConfigurations'),
data: {
name: 'sdn.ovs.controller'
},
dataType: "json",
async: false,
success: function(json) {
var items = json.listconfigurationsresponse.configuration; //2 entries returned: 'sdn.ovs.controller', 'sdn.ovs.controller.default.label'
$(items).each(function(){
if(this.name == 'sdn.ovs.controller') {
if(this.value == 'true' || this.value == true) {
skipGuestTrafficStep = true;
}
return false; //break each loop
}
});
}
});
}
return !skipGuestTrafficStep;
}, },
configureStorageTraffic: function(args) { configureStorageTraffic: function(args) {
@ -340,16 +361,18 @@
async: false, async: false,
data: { listAll: true }, data: { listAll: true },
success: function(json) { success: function(json) {
var items = json.listhypervisorsresponse.hypervisor;
var array1 = [];
if(items != null) {
for(var i = 0; i < items.length; i++) {
if(items[i].name == "XenServer")
array1.unshift({id: items[i].name, description: items[i].name});
else
array1.push({id: items[i].name, description: items[i].name});
}
}
args.response.success({ args.response.success({
data: $.map( data: array1
json.listhypervisorsresponse.hypervisor,
function(hypervisor) {
return {
id: hypervisor.name,
description: hypervisor.name
};
}
)
}); });
} }
}); });
@ -1269,7 +1292,7 @@
var returnedPhysicalNetworks = []; var returnedPhysicalNetworks = [];
if(args.data.zone.networkType == "Basic") { if(args.data.zone.networkType == "Basic") { //Basic zone ***
var requestedTrafficTypeCount = 2; //request guest traffic type, management traffic type var requestedTrafficTypeCount = 2; //request guest traffic type, management traffic type
if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true)
requestedTrafficTypeCount++; //request public traffic type requestedTrafficTypeCount++; //request public traffic type
@ -1278,8 +1301,6 @@
var array1 = []; var array1 = [];
if("physicalNetworks" in args.data) { //from add-zone-wizard if("physicalNetworks" in args.data) { //from add-zone-wizard
array1.push("&name=" + todb(args.data.physicalNetworks[0].name)); array1.push("&name=" + todb(args.data.physicalNetworks[0].name));
if(args.data.physicalNetworks[0].isolationMethod != null && args.data.physicalNetworks[0].isolationMethod.length > 0)
array1.push("&isolationmethods=" + todb(args.data.physicalNetworks[0].isolationMethod));
} }
else { //from quick-install-wizard else { //from quick-install-wizard
array1.push("&name=PhysicalNetworkInBasicZone"); array1.push("&name=PhysicalNetworkInBasicZone");
@ -1290,8 +1311,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.createphysicalnetworkresponse.jobid; var jobId = json.createphysicalnetworkresponse.jobid;
var timerKey = "createPhysicalNetworkJob_" + jobId; var createPhysicalNetworkIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function(){
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1301,7 +1321,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(createPhysicalNetworkIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
var returnedBasicPhysicalNetwork = result.jobresult.physicalnetwork; var returnedBasicPhysicalNetwork = result.jobresult.physicalnetwork;
var label = returnedBasicPhysicalNetwork.id + trafficLabelParam('guest', data); var label = returnedBasicPhysicalNetwork.id + trafficLabelParam('guest', data);
@ -1312,8 +1333,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.addtraffictyperesponse.jobid; var jobId = json.addtraffictyperesponse.jobid;
var timerKey = "addTrafficTypeJob_" + jobId; var addGuestTrafficTypeIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1323,7 +1343,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addGuestTrafficTypeIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
returnedTrafficTypes.push(result.jobresult.traffictype); returnedTrafficTypes.push(result.jobresult.traffictype);
@ -1347,7 +1368,7 @@
alert("Failed to add Guest traffic type to basic zone. Error: " + errorMsg); alert("Failed to add Guest traffic type to basic zone. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
@ -1358,8 +1379,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.addtraffictyperesponse.jobid; var jobId = json.addtraffictyperesponse.jobid;
var timerKey = "addTrafficTypeJob_" + jobId; var addManagementTrafficTypeIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1369,7 +1389,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addManagementTrafficTypeIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
returnedTrafficTypes.push(result.jobresult.traffictype); returnedTrafficTypes.push(result.jobresult.traffictype);
@ -1393,7 +1414,7 @@
alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg); alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
@ -1406,8 +1427,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.addtraffictyperesponse.jobid; var jobId = json.addtraffictyperesponse.jobid;
var timerKey = "addTrafficTypeJob_" + jobId; var addStorageTrafficTypeIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1417,7 +1437,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addStorageTrafficTypeIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
returnedTrafficTypes.push(result.jobresult.traffictype); returnedTrafficTypes.push(result.jobresult.traffictype);
@ -1441,7 +1462,7 @@
alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg); alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1453,8 +1474,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.addtraffictyperesponse.jobid; var jobId = json.addtraffictyperesponse.jobid;
var timerKey = "addTrafficTypeJob_" + jobId; var addPublicTrafficTypeIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1464,7 +1484,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addPublicTrafficTypeIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
returnedTrafficTypes.push(result.jobresult.traffictype); returnedTrafficTypes.push(result.jobresult.traffictype);
@ -1488,7 +1509,7 @@
alert("Failed to add Public traffic type to basic zone. Error: " + errorMsg); alert("Failed to add Public traffic type to basic zone. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1503,7 +1524,8 @@
alert("createPhysicalNetwork failed. Error: " + errorMsg); alert("createPhysicalNetwork failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1519,8 +1541,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.createphysicalnetworkresponse.jobid; var jobId = json.createphysicalnetworkresponse.jobid;
var timerKey = "createPhysicalNetworkJob_" + jobId; var createPhysicalNetworkIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function(){
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1530,7 +1551,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(createPhysicalNetworkIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
var returnedPhysicalNetwork = result.jobresult.physicalnetwork; var returnedPhysicalNetwork = result.jobresult.physicalnetwork;
returnedPhysicalNetwork.originalId = thisPhysicalNetwork.id; returnedPhysicalNetwork.originalId = thisPhysicalNetwork.id;
@ -1562,8 +1584,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.addtraffictyperesponse.jobid; var jobId = json.addtraffictyperesponse.jobid;
var timerKey = "addTrafficTypeJob_" + jobId; var addTrafficTypeIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -1573,7 +1594,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(addTrafficTypeIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
returnedTrafficTypes.push(result.jobresult.traffictype); returnedTrafficTypes.push(result.jobresult.traffictype);
@ -1600,7 +1622,7 @@
alert(apiCmd + " failed. Error: " + errorMsg); alert(apiCmd + " failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
}); });
@ -1615,7 +1637,7 @@
alert("createPhysicalNetwork failed. Error: " + errorMsg); alert("createPhysicalNetwork failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
}); });
@ -1631,9 +1653,7 @@
url: createURL("updatePhysicalNetwork&state=Enabled&id=" + args.data.returnedBasicPhysicalNetwork.id), url: createURL("updatePhysicalNetwork&state=Enabled&id=" + args.data.returnedBasicPhysicalNetwork.id),
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
//var jobId = json.updatephysicalnetworkresponse.jobid; var enablePhysicalNetworkIntervalID = setInterval(function() {
var updatePhysicalNetworkTimer = "updatePhysicalNetworkJob_" + json.updatephysicalnetworkresponse.jobid;
$("body").everyTime(2000, updatePhysicalNetworkTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + json.updatephysicalnetworkresponse.jobid), url: createURL("queryAsyncJobResult&jobId=" + json.updatephysicalnetworkresponse.jobid),
dataType: "json", dataType: "json",
@ -1643,7 +1663,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(updatePhysicalNetworkTimer); clearInterval(enablePhysicalNetworkIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("updatePhysicalNetwork succeeded."); //alert("updatePhysicalNetwork succeeded.");
@ -1687,9 +1708,7 @@
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
//var jobId = json.configurevirtualrouterelementresponse.jobid; var enableVirtualRouterElementIntervalID = setInterval(function() {
var configureVirtualRouterElementTimer = "configureVirtualRouterElementJob_" + json.configurevirtualrouterelementresponse.jobid;
$("body").everyTime(2000, configureVirtualRouterElementTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + json.configurevirtualrouterelementresponse.jobid), url: createURL("queryAsyncJobResult&jobId=" + json.configurevirtualrouterelementresponse.jobid),
dataType: "json", dataType: "json",
@ -1699,7 +1718,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(configureVirtualRouterElementTimer); clearInterval(enableVirtualRouterElementIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("configureVirtualRouterElement succeeded."); //alert("configureVirtualRouterElement succeeded.");
@ -1708,9 +1728,7 @@
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
//var jobId = json.updatenetworkserviceproviderresponse.jobid; var enableVirtualRouterProviderIntervalID = setInterval(function() {
var updateNetworkServiceProviderTimer = "updateNetworkServiceProviderJob_" + json.updatenetworkserviceproviderresponse.jobid;
$("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid), url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
dataType: "json", dataType: "json",
@ -1720,7 +1738,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(updateNetworkServiceProviderTimer); clearInterval(enableVirtualRouterProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("Virtual Router Provider is enabled"); //alert("Virtual Router Provider is enabled");
@ -1753,8 +1772,7 @@
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid; var enableSecurityGroupProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid), url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
dataType: "json", dataType: "json",
@ -1764,7 +1782,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(updateNetworkServiceProviderTimer); clearInterval(enableSecurityGroupProviderIntervalID);
if (result.jobstatus == 1) { //Security group provider has been enabled successfully if (result.jobstatus == 1) { //Security group provider has been enabled successfully
stepFns.addNetscalerProvider({ stepFns.addNetscalerProvider({
data: args.data data: args.data
@ -1780,7 +1799,7 @@
alert("failed to enable security group provider. Error: " + errorMsg); alert("failed to enable security group provider. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1800,7 +1819,7 @@
alert("failed to enable Virtual Router Provider. Error: " + errorMsg); alert("failed to enable Virtual Router Provider. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1814,7 +1833,7 @@
alert("configureVirtualRouterElement failed. Error: " + errorMsg); alert("configureVirtualRouterElement failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1828,7 +1847,7 @@
alert("updatePhysicalNetwork failed. Error: " + errorMsg); alert("updatePhysicalNetwork failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1840,8 +1859,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.updatephysicalnetworkresponse.jobid; var jobId = json.updatephysicalnetworkresponse.jobid;
var timerKey = "updatePhysicalNetworkJob_"+jobId; var enablePhysicalNetworkIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -1851,7 +1869,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enablePhysicalNetworkIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
//alert("updatePhysicalNetwork succeeded."); //alert("updatePhysicalNetwork succeeded.");
@ -1896,8 +1915,7 @@
async: false, async: false,
success: function(json) { success: function(json) {
var jobId = json.configurevirtualrouterelementresponse.jobid; var jobId = json.configurevirtualrouterelementresponse.jobid;
var timerKey = "configureVirtualRouterElementJob_"+jobId; var enableVirtualRouterElementIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -1907,7 +1925,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enableVirtualRouterElementIntervalID);
if (result.jobstatus == 1) { //configureVirtualRouterElement succeeded if (result.jobstatus == 1) { //configureVirtualRouterElement succeeded
$.ajax({ $.ajax({
url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId), url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId),
@ -1915,8 +1934,7 @@
async: false, async: false,
success: function(json) { success: function(json) {
var jobId = json.updatenetworkserviceproviderresponse.jobid; var jobId = json.updatenetworkserviceproviderresponse.jobid;
var timerKey = "updateNetworkServiceProviderJob_"+jobId; var enableVirtualRouterProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId="+jobId), url: createURL("queryAsyncJobResult&jobId="+jobId),
dataType: "json", dataType: "json",
@ -1926,7 +1944,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(timerKey); clearInterval(enableVirtualRouterProviderIntervalID);
if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully
advZoneConfiguredPhysicalNetworkCount++; advZoneConfiguredPhysicalNetworkCount++;
if(advZoneConfiguredPhysicalNetworkCount == args.data.returnedPhysicalNetworks.length) { //not call addPod() until all physical networks get configured if(advZoneConfiguredPhysicalNetworkCount == args.data.returnedPhysicalNetworks.length) { //not call addPod() until all physical networks get configured
@ -1945,7 +1964,7 @@
alert("updateNetworkServiceProvider failed. Error: " + errorMsg); alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1959,7 +1978,7 @@
alert("configureVirtualRouterElement failed. Error: " + errorMsg); alert("configureVirtualRouterElement failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
} }
@ -1973,7 +1992,7 @@
alert("updatePhysicalNetwork failed. Error: " + errorMsg); alert("updatePhysicalNetwork failed. Error: " + errorMsg);
} }
}); });
}); }, 3000);
} }
}); });
}); });
@ -1989,8 +2008,7 @@
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
var addNetworkServiceProviderTimer = "asyncJob_" + json.addnetworkserviceproviderresponse.jobid; var addNetscalerProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, addNetworkServiceProviderTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobId=" + json.addnetworkserviceproviderresponse.jobid), url: createURL("queryAsyncJobResult&jobId=" + json.addnetworkserviceproviderresponse.jobid),
dataType: "json", dataType: "json",
@ -2000,7 +2018,8 @@
return; //Job has not completed return; //Job has not completed
} }
else { else {
$("body").stopTime(addNetworkServiceProviderTimer); clearInterval(addNetscalerProviderIntervalID);
if (result.jobstatus == 1) { if (result.jobstatus == 1) {
args.data.returnedNetscalerProvider = result.jobresult.networkserviceprovider; args.data.returnedNetscalerProvider = result.jobresult.networkserviceprovider;
stepFns.addNetscalerDevice({ stepFns.addNetscalerDevice({
@ -2019,7 +2038,7 @@
}); });
}); });
} }
}); }, 3000);
//add netscaler provider (end) //add netscaler provider (end)
} }
else { //selectedNetworkOfferingHavingNetscaler == false else { //selectedNetworkOfferingHavingNetscaler == false
@ -2126,8 +2145,7 @@
url: createURL("addNetscalerLoadBalancer" + array1.join("")), url: createURL("addNetscalerLoadBalancer" + array1.join("")),
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var addNetscalerLoadBalancerTimer = "asyncJob_" + json.addnetscalerloadbalancerresponse.jobid; var addNetscalerLoadBalancerIntervalID = setInterval(function() {
$("body").everyTime(2000, addNetscalerLoadBalancerTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + json.addnetscalerloadbalancerresponse.jobid), url: createURL("queryAsyncJobResult&jobid=" + json.addnetscalerloadbalancerresponse.jobid),
dataType: "json", dataType: "json",
@ -2137,7 +2155,8 @@
return; return;
} }
else { else {
$("body").stopTime(addNetscalerLoadBalancerTimer); clearInterval(addNetscalerLoadBalancerIntervalID);
if(result.jobstatus == 1) { if(result.jobstatus == 1) {
args.data.returnedNetscalerProvider.returnedNetscalerloadbalancer = result.jobresult.netscalerloadbalancer; args.data.returnedNetscalerProvider.returnedNetscalerloadbalancer = result.jobresult.netscalerloadbalancer;
@ -2145,9 +2164,7 @@
url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + args.data.returnedNetscalerProvider.id), url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + args.data.returnedNetscalerProvider.id),
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid; var enableNetscalerProviderIntervalID = setInterval(function() {
$("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + json.updatenetworkserviceproviderresponse.jobid), url: createURL("queryAsyncJobResult&jobid=" + json.updatenetworkserviceproviderresponse.jobid),
dataType: "json", dataType: "json",
@ -2157,7 +2174,8 @@
return; return;
} }
else { else {
$("body").stopTime(updateNetworkServiceProviderTimer); clearInterval(enableNetscalerProviderIntervalID);
if(result.jobstatus == 1) { if(result.jobstatus == 1) {
stepFns.addGuestNetwork({ stepFns.addGuestNetwork({
data: args.data data: args.data
@ -2169,7 +2187,7 @@
} }
} }
}); });
}); }, 3000);
}, },
error: function(XMLHttpResponse) { error: function(XMLHttpResponse) {
var errorMsg = parseXMLHttpResponse(XMLHttpResponse); var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
@ -2183,7 +2201,7 @@
} }
} }
}); });
}); }, 3000);
}, },
error: function(XMLHttpResponse) { error: function(XMLHttpResponse) {
var errorMsg = parseXMLHttpResponse(XMLHttpResponse); var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
@ -2425,6 +2443,13 @@
}, },
configureGuestTraffic: function(args) { configureGuestTraffic: function(args) {
if(skipGuestTrafficStep == true) {
stepFns.addCluster({
data: args.data
});
return;
}
message(dictionary['message.configuring.guest.traffic']); message(dictionary['message.configuring.guest.traffic']);
if(args.data.returnedZone.networktype == "Basic") { //create an VlanIpRange for guest network in basic zone if(args.data.returnedZone.networktype == "Basic") { //create an VlanIpRange for guest network in basic zone
@ -2489,8 +2514,7 @@
dataType: "json", dataType: "json",
success: function(json) { success: function(json) {
var jobId = json.updatephysicalnetworkresponse.jobid; var jobId = json.updatephysicalnetworkresponse.jobid;
var timerKey = "asyncJob_" + jobId; var updatePhysicalNetworkVlanIntervalID = setInterval(function() {
$("body").everyTime(2000, timerKey, function(){
$.ajax({ $.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jobId), url: createURL("queryAsyncJobResult&jobid=" + jobId),
dataType: "json", dataType: "json",
@ -2500,7 +2524,8 @@
return; return;
} }
else { else {
$("body").stopTime(timerKey); clearInterval(updatePhysicalNetworkVlanIntervalID);
if(result.jobstatus == 1) { if(result.jobstatus == 1) {
updatedCount++; updatedCount++;
if(updatedCount == physicalNetworksHavingGuestIncludingVlan.length) { if(updatedCount == physicalNetworksHavingGuestIncludingVlan.length) {
@ -2519,7 +2544,7 @@
error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args }); error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args });
} }
}); });
}); }, 3000);
} }
}); });
}); });