mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
cloudStack 3.0 new UI - NaaS
This commit is contained in:
parent
e62ce165f5
commit
d7edcd6957
@ -839,7 +839,7 @@
|
|||||||
},
|
},
|
||||||
dataProvider: function(args) {
|
dataProvider: function(args) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL("listNetworkOfferings&guestiptype=Virtual&page=" + args.page + "&pagesize=" + pageSize),
|
url: createURL("listNetworkOfferings&guestiptype=Isolated&supportedServices=sourceNat&page=" + args.page + "&pagesize=" + pageSize),
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
async: true,
|
async: true,
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
|
|||||||
@ -266,15 +266,19 @@
|
|||||||
if(selectedZoneObj.securitygroupsenabled == false) {
|
if(selectedZoneObj.securitygroupsenabled == false) {
|
||||||
if (networks != null && networks.length > 0) {
|
if (networks != null && networks.length > 0) {
|
||||||
for (var i = 0; i < networks.length; i++) {
|
for (var i = 0; i < networks.length; i++) {
|
||||||
if (networks[i].type == 'Virtual') {
|
if (networks[i].type == 'Isolated') {
|
||||||
virtualNetwork = networks[i];
|
//loop through
|
||||||
break;
|
var sourceNatObj = ipFindNetworkServiceByName("SourceNat", networkObj);
|
||||||
|
if(sourceNatObj != null) {
|
||||||
|
virtualNetwork = networks[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (virtualNetwork == null) { //if there is no virtualNetwork
|
if (virtualNetwork == null) { //if there is no isolatedNetwork
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL("listNetworkOfferings&guestiptype=Virtual"), //check DefaultVirtualizedNetworkOffering
|
url: createURL("listNetworkOfferings&guestiptype=Isolated&supportedServices=sourceNat&state=Enabled"), //check networkOffering for isolatedNetwork
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
async: false,
|
async: false,
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
@ -284,9 +288,9 @@
|
|||||||
if (networkOfferings[i].isdefault == true
|
if (networkOfferings[i].isdefault == true
|
||||||
&& (networkOfferings[i].availability == "Required" || networkOfferings[i].availability == "Optional")
|
&& (networkOfferings[i].availability == "Required" || networkOfferings[i].availability == "Optional")
|
||||||
) {
|
) {
|
||||||
// Create a virtual network
|
// Create a isolated network
|
||||||
var networkName = "Virtual Network";
|
var networkName = "Isolated Network";
|
||||||
var networkDesc = "A dedicated virtualized network for your account. The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.";
|
var networkDesc = "A dedicated isolated network for your account. The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.";
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL("createNetwork&networkOfferingId="+networkOfferings[i].id+"&name="+todb(networkName)+"&displayText="+todb(networkDesc)+"&zoneId="+args.currentData.zoneid),
|
url: createURL("createNetwork&networkOfferingId="+networkOfferings[i].id+"&name="+todb(networkName)+"&displayText="+todb(networkDesc)+"&zoneId="+args.currentData.zoneid),
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
|
|||||||
@ -283,6 +283,34 @@ cloudStack.converters = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//find service object in network object
|
||||||
|
function ipFindNetworkServiceByName(pName, networkObj) {
|
||||||
|
if(networkObj == null)
|
||||||
|
return null;
|
||||||
|
if(networkObj.service != null) {
|
||||||
|
for(var i=0; i<networkObj.service.length; i++) {
|
||||||
|
var networkServiceObj = networkObj.service[i];
|
||||||
|
if(networkServiceObj.name == pName)
|
||||||
|
return networkServiceObj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//find capability object in service object in network object
|
||||||
|
function ipFindCapabilityByName(pName, networkServiceObj) {
|
||||||
|
if(networkServiceObj == null)
|
||||||
|
return null;
|
||||||
|
if(networkServiceObj.capability != null) {
|
||||||
|
for(var i=0; i<networkServiceObj.capability.length; i++) {
|
||||||
|
var capabilityObj = networkServiceObj.capability[i];
|
||||||
|
if(capabilityObj.name == pName)
|
||||||
|
return capabilityObj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//VM Instance
|
//VM Instance
|
||||||
function getVmName(p_vmName, p_vmDisplayname) {
|
function getVmName(p_vmName, p_vmDisplayname) {
|
||||||
if(p_vmDisplayname == null)
|
if(p_vmDisplayname == null)
|
||||||
|
|||||||
@ -12,45 +12,117 @@
|
|||||||
'public': {
|
'public': {
|
||||||
detailView: {
|
detailView: {
|
||||||
actions: {
|
actions: {
|
||||||
|
/*
|
||||||
edit: {
|
edit: {
|
||||||
label: 'Edit network details',
|
label: 'Edit network details',
|
||||||
action: function(args) {
|
action: function(args) {
|
||||||
args.response.success();
|
args.response.success();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
},
|
},
|
||||||
tabs: {
|
tabs: {
|
||||||
details: {
|
details: {
|
||||||
title: 'Details',
|
title: 'Details',
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: { label: 'name' },
|
networkofferingdisplaytext: { label: "Network offering description" }
|
||||||
displaytext: { label: 'displaytext' }
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
broadcastdomaintype: { label: 'broadcastdomaintype' },
|
id: { label: "ID" },
|
||||||
traffictype: { label: 'traffictype' },
|
broadcastdomaintype: { label: 'Broadcast domain type' },
|
||||||
gateway: { label: 'gateway' },
|
traffictype: { label: 'Traffic type' },
|
||||||
netmask: { label: 'netmask' },
|
gateway: { label: 'Gateway' },
|
||||||
startip: { isEditable: true, label: 'startip' },
|
netmask: { label: 'Netmask' },
|
||||||
endip: { isEditable: true, label: 'endip' },
|
startip: { label: 'Start IP' },
|
||||||
zoneid: { label: 'zoneid' },
|
endip: { label: 'End IP' },
|
||||||
networkofferingid: { label: 'networkofferingid' },
|
zoneid: { label: 'Zone ID' },
|
||||||
networkofferingname: { label: 'networkofferingname' },
|
networkofferingid: { label: 'Network offering ID' },
|
||||||
networkofferingdisplaytext: { label: 'networkofferingdisplaytext' },
|
networkofferingname: { label: 'Network offering name' },
|
||||||
networkofferingavailability: { label: 'networkofferingavailability' },
|
networkofferingavailability: { label: 'network offering availability' },
|
||||||
isshared: { label: 'isshared' },
|
isshared: {
|
||||||
issystem: { label: 'issystem' },
|
label: 'Shared',
|
||||||
state: { label: 'state' },
|
converter: cloudStack.converters.toBooleanText
|
||||||
related: { label: 'related' },
|
},
|
||||||
broadcasturi: { label: 'broadcasturi' },
|
issystem: {
|
||||||
dns1: { label: 'dns1' },
|
label: 'System',
|
||||||
type: { label: 'type' }
|
converter: cloudStack.converters.toBooleanText
|
||||||
|
},
|
||||||
|
isdefault: {
|
||||||
|
label: 'Default',
|
||||||
|
converter: cloudStack.converters.toBooleanText
|
||||||
|
},
|
||||||
|
securitygroupenabled: {
|
||||||
|
label: 'Security group enabled',
|
||||||
|
converter: cloudStack.converters.toBooleanText
|
||||||
|
},
|
||||||
|
state: { label: 'State' },
|
||||||
|
related: { label: 'Related' },
|
||||||
|
dns1: { label: 'DNS 1' },
|
||||||
|
dns2: { label: 'DNS 2' },
|
||||||
|
vlan: { label: 'VLAN' },
|
||||||
|
domainid: { label: 'Domain ID' },
|
||||||
|
account: { label: 'Account' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataProvider: function(args) {
|
|
||||||
args.response.success({ data: testData.data.networks[0] });
|
//???
|
||||||
}
|
dataProvider: function(args) {
|
||||||
|
debugger;
|
||||||
|
var showPublicNetwork = true;
|
||||||
|
var zoneObj = args.context.zones[0];
|
||||||
|
if(zoneObj.networktype == "Basic") {
|
||||||
|
//$("#add_network_button").hide();
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listExternalFirewalls&zoneid=" + zoneObj.id),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listexternalfirewallsresponse.externalfirewall;
|
||||||
|
if(items != null && items.length > 0) {
|
||||||
|
showPublicNetwork = true;
|
||||||
|
//$("#add_iprange_button,#tab_ipallocation").show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
showPublicNetwork = false;
|
||||||
|
//$("#add_iprange_button,#tab_ipallocation").hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else { // Advanced zone
|
||||||
|
showPublicNetwork = true;
|
||||||
|
//$("#add_network_button,#add_iprange_button,#tab_ipallocation").show();
|
||||||
|
//listMidMenuItems2(("listNetworks&type=Direct&zoneId="+zoneObj.id), networkGetSearchParams, "listnetworksresponse", "network", directNetworkToMidmenu, directNetworkToRightPanel, directNetworkGetMidmenuId, false, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(showPublicNetwork == true && zoneObj.securitygroupsenabled == false) { //public network
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listNetworks&trafficType=Public&isSystem=true&zoneId="+zoneObj.id),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listnetworksresponse.network;
|
||||||
|
args.response.success({data: items});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (showPublicNetwork == true && zoneObj.securitygroupsenabled == true){
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listNetworks&type=Direct&trafficType=Guest&isSystem=true&zoneId="+zoneObj.id),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listnetworksresponse.network;
|
||||||
|
args.response.success({data: items});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
args.response.success({data: null});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//???
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,16 +146,60 @@
|
|||||||
},
|
},
|
||||||
'guest': {
|
'guest': {
|
||||||
detailView: {
|
detailView: {
|
||||||
|
actions: {
|
||||||
|
edit: {
|
||||||
|
label: 'Edit',
|
||||||
|
action: function(args) {
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("updatePhysicalNetwork&id=" + args.context.guest[0].id + "&state=Enabled&vlan=" + args.data.vlan),
|
||||||
|
dataType: "json",
|
||||||
|
success: function(json) {
|
||||||
|
var item = json.updatephysicalnetworkresponse.physicalnetwork;
|
||||||
|
args.response.success({data: item});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
tabs: {
|
tabs: {
|
||||||
details: {
|
details: {
|
||||||
title: 'Details',
|
title: 'Details',
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: { label: 'Name' }
|
name: { label: 'Name' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: { label: 'ID' },
|
||||||
|
state: { label: 'State' },
|
||||||
|
vlan: {
|
||||||
|
label: 'VLAN',
|
||||||
|
isEditable: true
|
||||||
|
},
|
||||||
|
broadcastdomainrange: { label: 'Broadcast domain range' },
|
||||||
|
zoneid: { label: 'Zone ID' },
|
||||||
|
guestcidraddress: { label: 'CIDR' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
dataProvider: function(args) {
|
dataProvider: function(args) {
|
||||||
args.response.success({ data: testData.data.networks[0] });
|
//var zoneId = args.context.zones[0].id;
|
||||||
|
var zoneId = 1; //hardcode it until Brian fixes the bug.
|
||||||
|
|
||||||
|
var physicalNetworkObj = [];
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listPhysicalNetworks&zoneId=" + zoneId),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listphysicalnetworksresponse.physicalnetwork;
|
||||||
|
physicalNetworkObj = items[0];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//physicalNetworkObj["guestcidraddress"] = args.context.zones[0].guestcidraddress;
|
||||||
|
physicalNetworkObj["guestcidraddress"] = "10.1.1.0/24"; //hardcode it until Brian fixes the bug.
|
||||||
|
|
||||||
|
args.response.success({data: physicalNetworkObj});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -368,6 +484,7 @@
|
|||||||
else { //args.data["isolation-mode"] == "vlan"
|
else { //args.data["isolation-mode"] == "vlan"
|
||||||
array1.push("&securitygroupenabled=false");
|
array1.push("&securitygroupenabled=false");
|
||||||
|
|
||||||
|
/*
|
||||||
var vlanStart = args.data["vlan-range-start"];
|
var vlanStart = args.data["vlan-range-start"];
|
||||||
if(vlanStart != null && vlanStart.length > 0) {
|
if(vlanStart != null && vlanStart.length > 0) {
|
||||||
var vlanEnd = args.data["vlan-range-end"];
|
var vlanEnd = args.data["vlan-range-end"];
|
||||||
@ -376,7 +493,8 @@
|
|||||||
else
|
else
|
||||||
array1.push("&vlan=" + todb(vlanStart));
|
array1.push("&vlan=" + todb(vlanStart));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
var guestcidraddress = args.data["guest-cidr"];
|
var guestcidraddress = args.data["guest-cidr"];
|
||||||
if(guestcidraddress != null && guestcidraddress.length > 0) {
|
if(guestcidraddress != null && guestcidraddress.length > 0) {
|
||||||
array1.push("&guestcidraddress="+todb(guestcidraddress));
|
array1.push("&guestcidraddress="+todb(guestcidraddress));
|
||||||
@ -397,7 +515,107 @@
|
|||||||
args.response.success({data:item});
|
args.response.success({data:item});
|
||||||
|
|
||||||
zoneId = item.id;
|
zoneId = item.id;
|
||||||
//$("#leftmenu_security_group_container").show();
|
|
||||||
|
//???
|
||||||
|
var physicalNetworkId;
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listPhysicalNetworks&zoneId=" + zoneId),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listphysicalnetworksresponse.physicalnetwork;
|
||||||
|
if(items != null && items.length > 0)
|
||||||
|
physicalNetworkId = items[0].id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(physicalNetworkId != null) {
|
||||||
|
/*
|
||||||
|
var array1 = [];
|
||||||
|
var vlanStart = args.data["vlan-range-start"];
|
||||||
|
if(vlanStart != null && vlanStart.length > 0) {
|
||||||
|
var vlanEnd = args.data["vlan-range-end"];
|
||||||
|
if (vlanEnd != null && vlanEnd.length > 0)
|
||||||
|
array1.push("&vlan=" + todb(vlanStart + "-" + vlanEnd));
|
||||||
|
else
|
||||||
|
array1.push("&vlan=" + todb(vlanStart));
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("updatePhysicalNetwork&id=" + physicalNetworkId + "&state=Enabled" + array1.join("")),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var jid = json.updatephysicalnetworkresponse.jobid;
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("queryAsyncJobResult&jobId=" + jid),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var result = json.queryasyncjobresultresponse;
|
||||||
|
if (result.jobstatus == 0) {
|
||||||
|
return; //Job has not completed
|
||||||
|
} else {
|
||||||
|
if (result.jobstatus == 1) { // Succeeded
|
||||||
|
args.complete();
|
||||||
|
}
|
||||||
|
else if (result.jobstatus == 2) { // Failed
|
||||||
|
args.error({message:result.jobresult.errortext});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(XMLHttpResponse) {
|
||||||
|
args.error();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
|
var networkServiceProviderId;
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("listNetworkServiceProviders&physicalNetworkId=" + physicalNetworkId),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
|
||||||
|
if(items != null && items.length > 0)
|
||||||
|
networkServiceProviderId = items[0].id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(networkServiceProviderId != null) {
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("updateNetworkServiceProvider&id=" + networkServiceProviderId + "&state=Enabled"),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var jid = json.updatephysicalnetworkresponse.jobid;
|
||||||
|
$.ajax({
|
||||||
|
url: createURL("queryAsyncJobResult&jobId=" + jid),
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function(json) {
|
||||||
|
var result = json.queryasyncjobresultresponse;
|
||||||
|
if (result.jobstatus == 0) {
|
||||||
|
return; //Job has not completed
|
||||||
|
} else {
|
||||||
|
if (result.jobstatus == 1) { // Succeeded
|
||||||
|
args.complete();
|
||||||
|
}
|
||||||
|
else if (result.jobstatus == 2) { // Failed
|
||||||
|
args.error({message:result.jobresult.errortext});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(XMLHttpResponse) {
|
||||||
|
args.error();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//???
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL("listCapabilities"),
|
url: createURL("listCapabilities"),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user