cloudstack 3.0 UI - move site-to-site VPN into VPC container.

This commit is contained in:
Jessica Wang 2012-07-08 11:37:46 -07:00
parent 2602acb0b7
commit 6641f35885
2 changed files with 457 additions and 463 deletions

View File

@ -173,7 +173,7 @@
}
});
var sectionsToShow = ['networks', 'vpc', 'siteToSiteVpn'];
var sectionsToShow = ['networks', 'vpc'];
if(havingSecurityGroupNetwork == true)
sectionsToShow.push('securityGroups');
@ -3286,463 +3286,7 @@
}
}
}
},
//site-to-site VPN (begin)
siteToSiteVpn: {
type: 'select',
title: 'site-to-site VPN',
listView: {
id: 'siteToSiteVpn',
label: 'site-to-site VPN',
fields: {
publicip: { label: 'label.ip.address' },
gateway: { label: 'label.gateway' },
cidrlist: { label: 'CIDR list' },
ipsecpsk: { label: 'IPsec Preshared-Key' },
ikepolicy: { label: 'IKE policy' },
esppolicy: { label: 'ESP policy' }
},
dataProvider: function(args) {
var array1 = [];
if(args.filterBy != null) {
if(args.filterBy.search != null && args.filterBy.search.by != null && args.filterBy.search.value != null) {
switch(args.filterBy.search.by) {
case "name":
if(args.filterBy.search.value.length > 0)
array1.push("&keyword=" + args.filterBy.search.value);
break;
}
}
}
$.ajax({
url: createURL("listVpnConnections&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
dataType: "json",
async: true,
success: function(json) {
var items = json.listvpnconnectionsresponse.vpnconnection;
args.response.success({data:items});
}
});
},
actions: {
add: {
label: 'add site-to-site VPN',
messages: {
notification: function(args) {
return 'add site-to-site VPN';
}
},
createForm: {
title: 'add site-to-site VPN',
fields: {
publicipid: {
label: 'label.ip.address',
select: function(args) {
$.ajax({
url: createURL('listPublicIpAddresses'),
dataType: 'json',
async: true,
success: function(json) {
var items = [];
var objs = json.listpublicipaddressesresponse.publicipaddress;
if(objs != null && objs.length > 0) {
for(var i = 0; i < objs.length; i++) {
items.push({id: objs[i].id, description: objs[i].ipaddress});
}
}
args.response.success({data: items});
}
});
},
validation: { required: true }
},
gateway: {
label: 'label.gateway',
validation: { required: true }
},
cidrlist: {
label: 'CIDR list',
validation: { required: true }
},
ipsecpsk: {
label: 'IPsec Preshared-Key',
validation: { required: true }
},
ikepolicy: {
label: 'IKE policy',
select: function(args) {
var items = [];
items.push({id: '3des-md5', description: '3des-md5'});
items.push({id: 'aes-md5', description: 'aes-md5'});
items.push({id: 'aes128-md5', description: 'aes128-md5'});
items.push({id: 'des-md5', description: 'des-md5'});
items.push({id: '3des-sha1', description: '3des-sha1'});
items.push({id: 'aes-sha1', description: 'aes-sha1'});
items.push({id: 'aes128-sha1', description: 'aes128-sha1'});
items.push({id: 'des-sha1', description: 'des-sha1'});
args.response.success({data: items});
}
},
esppolicy: {
label: 'ESP policy',
select: function(args) {
var items = [];
items.push({id: '3des-md5', description: '3des-md5'});
items.push({id: 'aes-md5', description: 'aes-md5'});
items.push({id: 'aes128-md5', description: 'aes128-md5'});
items.push({id: 'des-md5', description: 'des-md5'});
items.push({id: '3des-sha1', description: '3des-sha1'});
items.push({id: 'aes-sha1', description: 'aes-sha1'});
items.push({id: 'aes128-sha1', description: 'aes128-sha1'});
items.push({id: 'des-sha1', description: 'des-sha1'});
args.response.success({data: items});
}
},
lifetime: {
label: 'Lifetime (second)',
defaultValue: '86400',
validation: { required: false, number: true }
}
}
},
action: function(args) {
$.ajax({
url: createURL('createVpnGateway'),
data: {
publicipid: args.data.publicipid
},
dataType: 'json',
success: function(json) {
var jid = json.createvpngatewayresponse.jobid;
var createvpngatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpngatewayIntervalID);
if (result.jobstatus == 1) {
var obj = result.jobresult.vpngateway;
var vpngatewayid = obj.id;
$.ajax({
url: createURL('createVpnCustomerGateway'),
data: {
gateway: args.data.gateway,
cidrlist: args.data.cidrlist,
ipsecpsk: args.data.ipsecpsk,
ikepolicy: args.data.ikepolicy,
esppolicy: args.data.esppolicy,
lifetime: args.data.lifetime
},
dataType: 'json',
success: function(json) {
var jid = json.createvpncustomergatewayresponse.jobid;
var createvpncustomergatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpncustomergatewayIntervalID);
if (result.jobstatus == 1) {
var obj = result.jobresult.vpncustomergateway;
var vpncustomergatewayid = obj.id;
$.ajax({
url: createURL('createVpnConnection'),
data: {
s2svpngatewayid: vpngatewayid,
s2scustomergatewayid: vpncustomergatewayid
},
dataType: 'json',
success: function(json) {
var jid = json.createvpnconnectionresponse.jobid;
var createvpnconnectionIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpnconnectionIntervalID);
if (result.jobstatus == 1) {
//remove loading image on table row
var $listviewTable = $("div.list-view div.data-table table.body tbody");
var $tr1 = $listviewTable.find("tr.loading").removeClass("loading");
$tr1.find("td div.loading").removeClass("loading");
var item = result.jobresult.vpnconnection;
$tr1.find("td.publicip span").text(item.publicip);
cloudStack.dialog.notice({ message: "site-to-site VPN is created successfully." });
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
}
},
detailView: {
name: 'label.details',
tabs: {
details: {
title: 'label.details',
fields: [
{
id: { label: 'label.id' },
//s2svpngatewayid: { label: 'VPN gateway ID' },
publicip: { label: 'label.ip.address' },
//s2scustomergatewayid: { label: 'Customer gateway ID' },
gateway: { label: 'label.gateway' },
cidrlist: { label: 'CIDR list' },
ipsecpsk: { label: 'IPsec Preshared-Key' },
ikepolicy: { label: 'IKE policy' },
esppolicy: { label: 'ESP policy' },
lifetime: { label: 'Lifetime (second)' },
created: { label: 'label.date', converter: cloudStack.converters.toLocalDate }
}
],
dataProvider: function(args) {
$.ajax({
url: createURL("listVpnConnections&id=" + args.context.siteToSiteVpn[0].id),
dataType: "json",
async: true,
success: function(json) {
var item = json.listvpnconnectionsresponse.vpnconnection[0];
args.response.success({data: item});
}
});
}
}
},
actions: {
restart: {
label: 'Reset VPN connection',
messages: {
confirm: function(args) {
return 'Please confirm that you want to reset VPN connection' ;
},
notification: function(args) {
return 'Reset VPN connection';
}
},
action: function(args) {
$.ajax({
url: createURL("resetVpnConnection"),
data: {
id: args.context.siteToSiteVpn[0].id
},
dataType: "json",
async: true,
success: function(json) {
var jid = json.resetvpnconnectionresponse.jobid;
args.response.success(
{_custom:
{
jobId: jid,
getUpdatedItem: function(json) {
return json.queryasyncjobresultresponse.jobresult.vpnconnection;
}
}
}
);
}
});
},
notification: {
poll: pollAsyncJobResult
}
},
remove: {
label: 'delete site-to-site VPN',
messages: {
confirm: function(args) {
return 'Please confirm that you want to delete this site-to-site VPN';
},
notification: function(args) {
return 'delete site-to-site VPN';
}
},
action: function(args) {
$.ajax({
url: createURL("deleteVpnConnection"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].id
},
async: true,
success: function(json) {
var jid = json.deletevpnconnectionresponse.jobid;
var deleteVpnConnectionIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnConnectionIntervalID);
if (result.jobstatus == 1) {
$.ajax({
url: createURL("deleteVpnGateway"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].s2svpngatewayid
},
async: true,
success: function(json) {
var jid = json.deletevpngatewayresponse.jobid;
var deleteVpnGatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnGatewayIntervalID);
if (result.jobstatus == 1) {
$.ajax({
url: createURL("deleteVpnCustomerGateway"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].s2scustomergatewayid
},
async: true,
success: function(json) {
var jid = json.deletecustomergatewayresponse.jobid;
var deleteVpnCustomerGatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnCustomerGatewayIntervalID);
if (result.jobstatus == 1) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: "site-to-site VPN has been deleted." });
$.removeDetailViewAndTableRow();
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
}
}
}
}
}
//site-to-site VPN (end)
}
}
};

View File

@ -412,11 +412,461 @@
gateways: {
},
siteToSiteVPN: {
listView: function() {
return cloudStack.sections.network.sections.siteToSiteVpn;
}
},
siteToSiteVPN: {//start siteToSiteVPN
listView: { //start siteToSiteVPN.listView
type: 'select',
title: 'site-to-site VPN',
listView: {
id: 'siteToSiteVpn',
label: 'site-to-site VPN',
fields: {
publicip: { label: 'label.ip.address' },
gateway: { label: 'label.gateway' },
cidrlist: { label: 'CIDR list' },
ipsecpsk: { label: 'IPsec Preshared-Key' },
ikepolicy: { label: 'IKE policy' },
esppolicy: { label: 'ESP policy' }
},
dataProvider: function(args) {
var array1 = [];
if(args.filterBy != null) {
if(args.filterBy.search != null && args.filterBy.search.by != null && args.filterBy.search.value != null) {
switch(args.filterBy.search.by) {
case "name":
if(args.filterBy.search.value.length > 0)
array1.push("&keyword=" + args.filterBy.search.value);
break;
}
}
}
$.ajax({
url: createURL("listVpnConnections&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
dataType: "json",
async: true,
success: function(json) {
var items = json.listvpnconnectionsresponse.vpnconnection;
args.response.success({data:items});
}
});
},
actions: {
add: {
label: 'add site-to-site VPN',
messages: {
notification: function(args) {
return 'add site-to-site VPN';
}
},
createForm: {
title: 'add site-to-site VPN',
fields: {
publicipid: {
label: 'label.ip.address',
select: function(args) {
$.ajax({
url: createURL('listPublicIpAddresses'),
dataType: 'json',
async: true,
success: function(json) {
var items = [];
var objs = json.listpublicipaddressesresponse.publicipaddress;
if(objs != null && objs.length > 0) {
for(var i = 0; i < objs.length; i++) {
items.push({id: objs[i].id, description: objs[i].ipaddress});
}
}
args.response.success({data: items});
}
});
},
validation: { required: true }
},
gateway: {
label: 'label.gateway',
validation: { required: true }
},
cidrlist: {
label: 'CIDR list',
validation: { required: true }
},
ipsecpsk: {
label: 'IPsec Preshared-Key',
validation: { required: true }
},
ikepolicy: {
label: 'IKE policy',
select: function(args) {
var items = [];
items.push({id: '3des-md5', description: '3des-md5'});
items.push({id: 'aes-md5', description: 'aes-md5'});
items.push({id: 'aes128-md5', description: 'aes128-md5'});
items.push({id: 'des-md5', description: 'des-md5'});
items.push({id: '3des-sha1', description: '3des-sha1'});
items.push({id: 'aes-sha1', description: 'aes-sha1'});
items.push({id: 'aes128-sha1', description: 'aes128-sha1'});
items.push({id: 'des-sha1', description: 'des-sha1'});
args.response.success({data: items});
}
},
esppolicy: {
label: 'ESP policy',
select: function(args) {
var items = [];
items.push({id: '3des-md5', description: '3des-md5'});
items.push({id: 'aes-md5', description: 'aes-md5'});
items.push({id: 'aes128-md5', description: 'aes128-md5'});
items.push({id: 'des-md5', description: 'des-md5'});
items.push({id: '3des-sha1', description: '3des-sha1'});
items.push({id: 'aes-sha1', description: 'aes-sha1'});
items.push({id: 'aes128-sha1', description: 'aes128-sha1'});
items.push({id: 'des-sha1', description: 'des-sha1'});
args.response.success({data: items});
}
},
lifetime: {
label: 'Lifetime (second)',
defaultValue: '86400',
validation: { required: false, number: true }
}
}
},
action: function(args) {
$.ajax({
url: createURL('createVpnGateway'),
data: {
publicipid: args.data.publicipid
},
dataType: 'json',
success: function(json) {
var jid = json.createvpngatewayresponse.jobid;
var createvpngatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpngatewayIntervalID);
if (result.jobstatus == 1) {
var obj = result.jobresult.vpngateway;
var vpngatewayid = obj.id;
$.ajax({
url: createURL('createVpnCustomerGateway'),
data: {
gateway: args.data.gateway,
cidrlist: args.data.cidrlist,
ipsecpsk: args.data.ipsecpsk,
ikepolicy: args.data.ikepolicy,
esppolicy: args.data.esppolicy,
lifetime: args.data.lifetime
},
dataType: 'json',
success: function(json) {
var jid = json.createvpncustomergatewayresponse.jobid;
var createvpncustomergatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpncustomergatewayIntervalID);
if (result.jobstatus == 1) {
var obj = result.jobresult.vpncustomergateway;
var vpncustomergatewayid = obj.id;
$.ajax({
url: createURL('createVpnConnection'),
data: {
s2svpngatewayid: vpngatewayid,
s2scustomergatewayid: vpncustomergatewayid
},
dataType: 'json',
success: function(json) {
var jid = json.createvpnconnectionresponse.jobid;
var createvpnconnectionIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobid=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(createvpnconnectionIntervalID);
if (result.jobstatus == 1) {
//remove loading image on table row
var $listviewTable = $("div.list-view div.data-table table.body tbody");
var $tr1 = $listviewTable.find("tr.loading").removeClass("loading");
$tr1.find("td div.loading").removeClass("loading");
var item = result.jobresult.vpnconnection;
$tr1.find("td.publicip span").text(item.publicip);
cloudStack.dialog.notice({ message: "site-to-site VPN is created successfully." });
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$.removeTableRowInAction();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
}
},
detailView: {
name: 'label.details',
tabs: {
details: {
title: 'label.details',
fields: [
{
id: { label: 'label.id' },
//s2svpngatewayid: { label: 'VPN gateway ID' },
publicip: { label: 'label.ip.address' },
//s2scustomergatewayid: { label: 'Customer gateway ID' },
gateway: { label: 'label.gateway' },
cidrlist: { label: 'CIDR list' },
ipsecpsk: { label: 'IPsec Preshared-Key' },
ikepolicy: { label: 'IKE policy' },
esppolicy: { label: 'ESP policy' },
lifetime: { label: 'Lifetime (second)' },
created: { label: 'label.date', converter: cloudStack.converters.toLocalDate }
}
],
dataProvider: function(args) {
$.ajax({
url: createURL("listVpnConnections&id=" + args.context.siteToSiteVpn[0].id),
dataType: "json",
async: true,
success: function(json) {
var item = json.listvpnconnectionsresponse.vpnconnection[0];
args.response.success({data: item});
}
});
}
}
},
actions: {
restart: {
label: 'Reset VPN connection',
messages: {
confirm: function(args) {
return 'Please confirm that you want to reset VPN connection' ;
},
notification: function(args) {
return 'Reset VPN connection';
}
},
action: function(args) {
$.ajax({
url: createURL("resetVpnConnection"),
data: {
id: args.context.siteToSiteVpn[0].id
},
dataType: "json",
async: true,
success: function(json) {
var jid = json.resetvpnconnectionresponse.jobid;
args.response.success(
{_custom:
{
jobId: jid,
getUpdatedItem: function(json) {
return json.queryasyncjobresultresponse.jobresult.vpnconnection;
}
}
}
);
}
});
},
notification: {
poll: pollAsyncJobResult
}
},
remove: {
label: 'delete site-to-site VPN',
messages: {
confirm: function(args) {
return 'Please confirm that you want to delete this site-to-site VPN';
},
notification: function(args) {
return 'delete site-to-site VPN';
}
},
action: function(args) {
$.ajax({
url: createURL("deleteVpnConnection"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].id
},
async: true,
success: function(json) {
var jid = json.deletevpnconnectionresponse.jobid;
var deleteVpnConnectionIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnConnectionIntervalID);
if (result.jobstatus == 1) {
$.ajax({
url: createURL("deleteVpnGateway"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].s2svpngatewayid
},
async: true,
success: function(json) {
var jid = json.deletevpngatewayresponse.jobid;
var deleteVpnGatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnGatewayIntervalID);
if (result.jobstatus == 1) {
$.ajax({
url: createURL("deleteVpnCustomerGateway"),
dataType: "json",
data: {
id: args.context.siteToSiteVpn[0].s2scustomergatewayid
},
async: true,
success: function(json) {
var jid = json.deletecustomergatewayresponse.jobid;
var deleteVpnCustomerGatewayIntervalID = setInterval(function() {
$.ajax({
url: createURL("queryAsyncJobResult&jobId=" + jid),
dataType: "json",
success: function(json) {
var result = json.queryasyncjobresultresponse;
if (result.jobstatus == 0) {
return; //Job has not completed
}
else {
clearInterval(deleteVpnCustomerGatewayIntervalID);
if (result.jobstatus == 1) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: "site-to-site VPN has been deleted." });
$.removeDetailViewAndTableRow();
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
else if (result.jobstatus == 2) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: _s(result.jobresult.errortext) });
}
}
},
error: function(XMLHttpResponse) {
$("div.detail-view div.loading-overlay").remove();
cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse) });
}
});
}, 3000);
}
});
}
}
}
}
}
} //end listView
},//end site-to-siteVPN
tiers: {
actionPreFilter: function(args) {
var tier = args.context.tiers[0];