').addClass('empty').append(
- $('| ').html(_l('No data to show'))
+ $(' | ').html(_l('label.no.data'))
).appendTo($tbody)
];
}
@@ -800,10 +800,10 @@
$.each(reorder, function(actionName, action) {
var fnLabel = {
- moveTop: 'Move to top',
- moveUp: 'Move up one row',
- moveDown: 'Move down one row',
- moveDrag: 'Drag to new position'
+ moveTop: _l('label.move.to.top'),
+ moveUp: _l('label.move.up.row'),
+ moveDown: _l('label.move.down.row'),
+ moveDrag: _l('label.drag.new.position')
};
$('')
@@ -997,7 +997,7 @@
if (sectionPreFilter && sectionPreFilter.length == 1) {
$switcher.find('select').hide();
$switcher.find('label').html(
- _l('Viewing') + ' ' + _l(sections[sectionPreFilter[0]].title)
+ _l('label.viewing') + ' ' + _l(sections[sectionPreFilter[0]].title)
);
}
diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js
index 1df259a7d70..3c073ab6b80 100644
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -118,7 +118,7 @@
_medit.vmList($multi,
options.listView,
options.context,
- options.multipleAdd, 'Add VMs',
+ options.multipleAdd, _l('label.add.vms'),
addItemAction,
{
multiRule: multiRule
@@ -200,7 +200,7 @@
$(' ').addClass('action')
.addClass(actionID)
.append($(' ').addClass('icon'))
- .attr({ title: action.label })
+ .attr({ title: _l(action.label) })
.click(function() {
var $target = $(this);
var $dataItem = $target.closest('.data-item');
@@ -208,7 +208,7 @@
var isDestroy = $target.hasClass('destroy');
if (isDestroy) {
- var $loading = _medit.loadingItem($multi, 'Removing...');
+ var $loading = _medit.loadingItem($multi, _l('label.removing') + '...');
if ($expandable.is(':visible')) {
$expandable.slideToggle(function() {
@@ -340,11 +340,11 @@
title: label,
buttons: [
{
- text: 'Apply',
+ text: _l('label.apply'),
'class': 'ok',
click: function() {
if (!$listView.find('input[type=radio]:checked, input[type=checkbox]:checked').size()) {
- cloudStack.dialog.notice({ message: 'Please select an instance '});
+ cloudStack.dialog.notice({ message: _l('message.select.item')});
return false;
}
@@ -369,7 +369,7 @@
}
},
{
- text: 'Cancel',
+ text: _l('label.cancel'),
'class': 'cancel',
click: function() {
$dataList.fadeOut(function() {
@@ -463,7 +463,7 @@
// Show list view of selected VMs
$browser.cloudBrowser('addPanel', {
- title: 'Load Balanced VMs',
+ title: _l('label.item.listing'),
data: '',
noSelectPanel: true,
maximizeIfSelected: true,
@@ -668,7 +668,7 @@
$td.data('multi-custom-data', args.data);
}
}
- })
+ });
}).appendTo($td);
} else if (field.addButton) {
$addVM = $('').addClass('button add-vm').html(
@@ -678,7 +678,7 @@
});
if (args.actions && !args.noHeaderActionsColumn) {
- $thead.append($(' Actions | ').addClass('multi-actions'));
+ $thead.append($(' | ').html(_l('label.actions')).addClass('multi-actions'));
$inputForm.append($(' | ').addClass('multi-actions'));
}
@@ -714,7 +714,7 @@
});
// Loading appearance
- var $loading = _medit.loadingItem($multi, 'Adding...');
+ var $loading = _medit.loadingItem($multi, _l('label.adding') + '...');
$dataBody.prepend($loading);
// Clear out fields
@@ -785,7 +785,7 @@
_medit.vmList($multi,
args.listView,
args.context,
- multipleAdd, 'Add VMs',
+ multipleAdd, _l('label.add.vms'),
addItem);
return true;
diff --git a/ui/scripts/ui/widgets/notifications.js b/ui/scripts/ui/widgets/notifications.js
index 09db85f42f1..e44fc654702 100644
--- a/ui/scripts/ui/widgets/notifications.js
+++ b/ui/scripts/ui/widgets/notifications.js
@@ -14,7 +14,7 @@
.append(
$(' ').addClass('title').append(
$(' ').html(
- options.error ? options.error : _l('Task completed')
+ options.error ? options.error : _l('label.task.completed')
)
)
)
@@ -159,7 +159,7 @@
.addClass('notification-box')
.append(
// Header
- $('').html(_l('Notifications'))
+ $('').html(_l('label.notifications'))
)
.append(
// Container
@@ -176,13 +176,13 @@
// Clear list
$('').addClass('button clear-list')
.append(
- $(' ').html(_l('Clear List'))
+ $('').html(_l('label.clear.list'))
)
)
.append(
$('').addClass('button close')
.append(
- $(' ').html(_l('Close'))
+ $('').html(_l('label.close'))
)
)
)
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index 2114a8d6ddb..670711350af 100644
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -1,11 +1,10 @@
(function(cloudStack, $) {
-
var networkOfferingObjs = [];
- var selectedNetworkOfferingHavingSG = false;
- var selectedNetworkOfferingHavingEIP = false;
- var selectedNetworkOfferingHavingELB = false;
- var returnedPublicVlanIpRanges = []; //public VlanIpRanges returned by API
-
+ var selectedNetworkOfferingHavingSG = false;
+ var selectedNetworkOfferingHavingEIP = false;
+ var selectedNetworkOfferingHavingELB = false;
+ var returnedPublicVlanIpRanges = []; //public VlanIpRanges returned by API
+
cloudStack.zoneWizard = {
customUI: {
publicTrafficIPRange: function(args) {
@@ -39,7 +38,51 @@
label: 'Remove Rule',
action: function(args) {
multiEditData = $.grep(multiEditData, function(item) {
- return item.index != args.context.multiRule[0].index
+ return item.index != args.context.multiRule[0].index;
+ });
+ args.response.success();
+ }
+ }
+ },
+ dataProvider: function(args) {
+ args.response.success({
+ data: multiEditData
+ });
+ }
+ });
+ },
+
+ storageTrafficIPRange: function(args) {
+ var multiEditData = [];
+ var totalIndex = 0;
+
+ return $('').multiEdit({
+ context: args.context,
+ noSelect: true,
+ fields: {
+ 'netmask': { edit: true, label: 'Netmask' },
+ 'vlanid': { edit: true, label: 'VLAN', isOptional: true },
+ 'startip': { edit: true, label: 'Start IP' },
+ 'endip': { edit: true, label: 'End IP' },
+ 'add-rule': { label: 'Add', addButton: true }
+ },
+ add: {
+ label: 'Add',
+ action: function(args) {
+ multiEditData.push($.extend(args.data, {
+ index: totalIndex
+ }));
+
+ totalIndex++;
+ args.response.success();
+ }
+ },
+ actions: {
+ destroy: {
+ label: 'Remove Rule',
+ action: function(args) {
+ multiEditData = $.grep(multiEditData, function(item) {
+ return item.index != args.context.multiRule[0].index;
});
args.response.success();
}
@@ -53,37 +96,37 @@
});
}
},
-
+
preFilters: {
- addPublicNetwork: function(args) {
- var isShown;
- if(args.data['network-model'] == 'Basic') {
- if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) {
+ addPublicNetwork: function(args) {
+ var isShown;
+ if(args.data['network-model'] == 'Basic') {
+ if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) {
$('.conditional.elb').show();
isShown = true;
- }
+ }
else {
$('.conditional.elb').hide();
isShown = false;
- }
- }
- else { //args.data['network-model'] == 'Advanced'
+ }
+ }
+ else { //args.data['network-model'] == 'Advanced'
$('.conditional.elb').hide();
- isShown = true;
- }
- return isShown;
+ isShown = true;
+ }
+ return isShown;
},
addNetscalerDevice: function(args) { //add Netscaler
- var isShown;
- if(args.data['network-model'] == 'Basic' && (selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true)) {
- isShown = true;
+ var isShown;
+ if(args.data['network-model'] == 'Basic' && (selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true)) {
+ isShown = true;
$('.conditional.elb').show();
} else {
- isShown= false;
+ isShown= false;
$('.conditional.elb').hide();
}
- return isShown;
+ return isShown;
},
setupPhysicalNetwork: function(args) {
@@ -96,25 +139,32 @@
return $.inArray('guest', network.trafficTypes) > -1;
}).length;
},
-
- addHost: function(args) {
- return (args.groupedData.cluster.hypervisor != "VMware");
- }
+
+ configureStorageTraffic: function(args) {
+ return args.data['network-model'] == 'Advanced' &&
+ $.grep(args.groupedData.physicalNetworks, function(network) {
+ return $.inArray('storage', network.trafficTypes) > -1;
+ }).length;
+ },
+
+ addHost: function(args) {
+ return (args.groupedData.cluster.hypervisor != "VMware");
+ }
},
-
+
forms: {
zone: {
preFilter: function(args) {
var $form = args.$form;
-
- if (args.data['network-model'] == 'Basic') {
- args.$form.find('[rel=networkOfferingId]').show();
- args.$form.find('[rel=guestcidraddress]').hide();
- }
- else { //args.data['network-model'] == 'Advanced'
- args.$form.find('[rel=networkOfferingId]').hide();
- args.$form.find('[rel=guestcidraddress]').show();
- }
+
+ if (args.data['network-model'] == 'Basic') {
+ args.$form.find('[rel=networkOfferingId]').show();
+ args.$form.find('[rel=guestcidraddress]').hide();
+ }
+ else { //args.data['network-model'] == 'Advanced'
+ args.$form.find('[rel=networkOfferingId]').hide();
+ args.$form.find('[rel=guestcidraddress]').show();
+ }
setTimeout(function() {
if ($form.find('input[name=ispublic]').is(':checked')) {
@@ -142,10 +192,10 @@
internaldns2: {
label: 'Internal DNS 2',
desc: 'Name of a DNS server for use by CloudStack\'s internal system VMs in the zone. The private IP address for the pods must have a route to this server.'
- },
- networkOfferingId: {
- label: 'Network Offering',
- select: function(args) {
+ },
+ networkOfferingId: {
+ label: 'Network Offering',
+ select: function(args) {
$.ajax({
url: createURL("listNetworkOfferings&state=Enabled&guestiptype=Shared"),
dataType: "json",
@@ -162,60 +212,60 @@
});
}
});
- args.$select.change(function(){
- //reset when different network offering is selected
- selectedNetworkOfferingHavingSG = false;
- selectedNetworkOfferingHavingEIP = false;
- selectedNetworkOfferingHavingELB = false;
-
- var selectedNetworkOfferingId = $(this).val();
-
- $(networkOfferingObjs).each(function(){
- if(this.id == selectedNetworkOfferingId) {
- selectedNetworkOfferingObj = this;
- return false; //break $.each() loop
- }
- });
-
- $(selectedNetworkOfferingObj.service).each(function(){
- var thisService = this;
- if(thisService.name == "SecurityGroup") {
- selectedNetworkOfferingHavingSG = true;
- }
- else if(thisService.name == "StaticNat") {
- $(thisService.capability).each(function(){
- if(this.name == "ElasticIp" && this.value == "true") {
- selectedNetworkOfferingHavingEIP = true;
- return false; //break $.each() loop
- }
- });
- }
- else if(thisService.name == "Lb") {
- $(thisService.capability).each(function(){
- if(this.name == "ElasticLb" && this.value == "true") {
- selectedNetworkOfferingHavingELB = true;
- return false; //break $.each() loop
- }
- });
- }
- });
- });
+ args.$select.change(function(){
+ //reset when different network offering is selected
+ selectedNetworkOfferingHavingSG = false;
+ selectedNetworkOfferingHavingEIP = false;
+ selectedNetworkOfferingHavingELB = false;
+
+ var selectedNetworkOfferingId = $(this).val();
+
+ $(networkOfferingObjs).each(function(){
+ if(this.id == selectedNetworkOfferingId) {
+ selectedNetworkOfferingObj = this;
+ return false; //break $.each() loop
+ }
+ });
+
+ $(selectedNetworkOfferingObj.service).each(function(){
+ var thisService = this;
+ if(thisService.name == "SecurityGroup") {
+ selectedNetworkOfferingHavingSG = true;
+ }
+ else if(thisService.name == "StaticNat") {
+ $(thisService.capability).each(function(){
+ if(this.name == "ElasticIp" && this.value == "true") {
+ selectedNetworkOfferingHavingEIP = true;
+ return false; //break $.each() loop
+ }
+ });
+ }
+ else if(thisService.name == "Lb") {
+ $(thisService.capability).each(function(){
+ if(this.name == "ElasticLb" && this.value == "true") {
+ selectedNetworkOfferingHavingELB = true;
+ return false; //break $.each() loop
+ }
+ });
+ }
+ });
+ });
}
- },
+ },
networkdomain: {
label: 'Network Domain',
desc: 'A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.'
},
- guestcidraddress: {
- label: 'Guest CIDR',
- defaultValue: '10.1.1.0/24',
- validation: { required: false }
- },
+ guestcidraddress: {
+ label: 'Guest CIDR',
+ defaultValue: '10.1.1.0/24',
+ validation: { required: false }
+ },
ispublic: {
isReverse: true,
isBoolean: true,
label: 'Public',
- isChecked: true //checked by default (public zone)
+ isChecked: true //checked by default (public zone)
},
domain: {
label: 'Domain',
@@ -240,7 +290,7 @@
}
});
}
- }
+ }
}
},
@@ -272,56 +322,56 @@
}
},
- basicPhysicalNetwork: { //"Netscaler" now
- fields: {
+ basicPhysicalNetwork: { //"Netscaler" now
+ fields: {
ip: {
- label: 'IP address'
- },
- username: {
- label: 'Username'
- },
- password: {
- label: 'Password',
- isPassword: true
- },
- networkdevicetype: {
- label: 'Type',
- select: function(args) {
- var items = [];
- items.push({id: "NetscalerMPXLoadBalancer", description: "NetScaler MPX LoadBalancer"});
- items.push({id: "NetscalerVPXLoadBalancer", description: "NetScaler VPX LoadBalancer"});
- items.push({id: "NetscalerSDXLoadBalancer", description: "NetScaler SDX LoadBalancer"});
- args.response.success({data: items});
- }
- },
- publicinterface: {
- label: 'Public interface'
- },
- privateinterface: {
- label: 'Private interface'
- },
- numretries: {
- label: 'Number of retries',
- defaultValue: '2'
- },
- inline: {
- label: 'Mode',
- select: function(args) {
- var items = [];
- items.push({id: "false", description: "side by side"});
- items.push({id: "true", description: "inline"});
- args.response.success({data: items});
- }
- },
- capacity: {
- label: 'Capacity',
- validation: { required: false, number: true }
- },
- dedicated: {
- label: 'Dedicated',
- isBoolean: true,
- isChecked: false
- }
+ label: 'IP address'
+ },
+ username: {
+ label: 'Username'
+ },
+ password: {
+ label: 'Password',
+ isPassword: true
+ },
+ networkdevicetype: {
+ label: 'Type',
+ select: function(args) {
+ var items = [];
+ items.push({id: "NetscalerMPXLoadBalancer", description: "NetScaler MPX LoadBalancer"});
+ items.push({id: "NetscalerVPXLoadBalancer", description: "NetScaler VPX LoadBalancer"});
+ items.push({id: "NetscalerSDXLoadBalancer", description: "NetScaler SDX LoadBalancer"});
+ args.response.success({data: items});
+ }
+ },
+ publicinterface: {
+ label: 'Public interface'
+ },
+ privateinterface: {
+ label: 'Private interface'
+ },
+ numretries: {
+ label: 'Number of retries',
+ defaultValue: '2'
+ },
+ inline: {
+ label: 'Mode',
+ select: function(args) {
+ var items = [];
+ items.push({id: "false", description: "side by side"});
+ items.push({id: "true", description: "inline"});
+ args.response.success({data: items});
+ }
+ },
+ capacity: {
+ label: 'Capacity',
+ validation: { required: false, number: true }
+ },
+ dedicated: {
+ label: 'Dedicated',
+ isBoolean: true,
+ isChecked: false
+ }
}
},
@@ -331,17 +381,17 @@
networktype: args.data['network-model']
};
- var advancedFields = ['vlanRange'];
+ var advancedFields = ['vlanRange'];
$(advancedFields).each(function() {
if (selectedZoneObj.networktype == 'Advanced') {
args.$form.find('[rel=' + this + ']').show();
- }
- else {
+ }
+ else {
args.$form.find('[rel=' + this + ']').hide();
}
});
- var basicFields = [
+ var basicFields = [
'guestGateway',
'guestNetmask',
'guestStartIp',
@@ -349,29 +399,29 @@
];
$(basicFields).each(function() {
if (selectedZoneObj.networktype == 'Basic') {
- args.$form.find('[rel=' + this + ']').show();
- }
- else {
+ args.$form.find('[rel=' + this + ']').show();
+ }
+ else {
args.$form.find('[rel=' + this + ']').hide();
- }
+ }
});
},
- fields: {
- //Basic (start)
+ fields: {
+ //Basic (start)
guestGateway: { label: 'Guest gateway' },
guestNetmask: { label: 'Guest netmask' },
guestStartIp: { label: 'Guest start IP' },
- guestEndIp: { label: 'Guest end IP' },
- //Basic (end)
-
- //Advanced (start)
+ guestEndIp: { label: 'Guest end IP' },
+ //Basic (end)
+
+ //Advanced (start)
vlanRange: {
label: 'VLAN Range',
range: ['vlanRangeStart', 'vlanRangeEnd'],
validation: { required: false, digits: true } //Bug 13517 - AddZone wizard->Configure guest traffic: Vlan is optional
}
- //Advanced (end)
+ //Advanced (end)
}
},
cluster: {
@@ -604,7 +654,7 @@
},
primaryStorage: {
preFilter: function(args) {},
-
+
fields: {
name: {
label: 'Name',
@@ -626,7 +676,7 @@
var items = [];
items.push({id: "nfs", description: "nfs"});
items.push({id: "SharedMountPoint", description: "SharedMountPoint"});
- items.push({id: "clvm", description: "CLVM"});
+ items.push({id: "clvm", description: "CLVM"});
args.response.success({data: items});
}
else if(selectedClusterObj.hypervisortype == "XenServer") {
@@ -674,9 +724,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
@@ -696,9 +746,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
@@ -718,9 +768,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
@@ -738,33 +788,33 @@
$form.find('[rel=iqn]').css('display', 'block');
$form.find('[rel=lun]').css('display', 'block');
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
- }
- else if($(this).val() == "clvm") {
- //$("#add_pool_server_container", $dialogAddPool).hide();
- $form.find('[rel=server]').hide();
- //$dialogAddPool.find("#add_pool_nfs_server").val("localhost");
- $form.find('[rel=server]').find(".value").find("input").val("localhost");
-
- //$('li[input_group="nfs"]', $dialogAddPool).hide();
- $form.find('[rel=path]').hide();
-
- //$('li[input_group="iscsi"]', $dialogAddPool).hide();
- $form.find('[rel=iqn]').hide();
- $form.find('[rel=lun]').hide();
-
- //$('li[input_group="clvm"]', $dialogAddPool).show();
- $form.find('[rel=volumegroup]').css('display', 'inline-block');
-
- //$('li[input_group="vmfs"]', $dialogAddPool).hide();
- $form.find('[rel=vCenterDataCenter]').hide();
- $form.find('[rel=vCenterDataStore]').hide();
- }
+ }
+ else if($(this).val() == "clvm") {
+ //$("#add_pool_server_container", $dialogAddPool).hide();
+ $form.find('[rel=server]').hide();
+ //$dialogAddPool.find("#add_pool_nfs_server").val("localhost");
+ $form.find('[rel=server]').find(".value").find("input").val("localhost");
+
+ //$('li[input_group="nfs"]', $dialogAddPool).hide();
+ $form.find('[rel=path]').hide();
+
+ //$('li[input_group="iscsi"]', $dialogAddPool).hide();
+ $form.find('[rel=iqn]').hide();
+ $form.find('[rel=lun]').hide();
+
+ //$('li[input_group="clvm"]', $dialogAddPool).show();
+ $form.find('[rel=volumegroup]').css('display', 'inline-block');
+
+ //$('li[input_group="vmfs"]', $dialogAddPool).hide();
+ $form.find('[rel=vCenterDataCenter]').hide();
+ $form.find('[rel=vCenterDataStore]').hide();
+ }
else if(protocol == "vmfs") {
//$dialogAddPool.find("#add_pool_server_container").show();
$form.find('[rel=server]').css('display', 'block');
@@ -778,9 +828,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).show();
$form.find('[rel=vCenterDataCenter]').css('display', 'block');
$form.find('[rel=vCenterDataStore]').css('display', 'block');
@@ -799,9 +849,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
@@ -816,9 +866,9 @@
$form.find('[rel=iqn]').hide();
$form.find('[rel=lun]').hide();
- //$('li[input_group="clvm"]', $dialogAddPool).hide();
- $form.find('[rel=volumegroup]').hide();
-
+ //$('li[input_group="clvm"]', $dialogAddPool).hide();
+ $form.find('[rel=volumegroup]').hide();
+
//$('li[input_group="vmfs"]', $dialogAddPool).hide();
$form.find('[rel=vCenterDataCenter]').hide();
$form.find('[rel=vCenterDataStore]').hide();
@@ -853,13 +903,13 @@
isHidden: true
},
- //clvm
- volumegroup: {
- label: 'Volume Group',
- validation: { required: false }, // Primary storage is not required. User can use local storage instead of primary storage.
- isHidden: true
- },
-
+ //clvm
+ volumegroup: {
+ label: 'Volume Group',
+ validation: { required: false }, // Primary storage is not required. User can use local storage instead of primary storage.
+ isHidden: true
+ },
+
//vmfs
vCenterDataCenter: {
label: 'vCenter Datacenter',
@@ -894,1427 +944,1517 @@
}
},
- action: function(args) {
- //debugger;
- var advZoneConfiguredPhysicalNetworkCount = 0; //for multiple physical networks in advanced zone
-
+ action: function(args) {
+ var advZoneConfiguredPhysicalNetworkCount = 0; //for multiple physical networks in advanced zone
+
var success = args.response.success;
var error = args.response.error;
var message = args.response.message;
- //var data = args.data;
+ //var data = args.data;
var startFn = args.startFn;
var data = args.data;
-
+
var stepFns = {
addZone: function() {
message('Creating zone');
-
- var array1 = [];
- var networkType = args.data.zone.networkType; //"Basic", "Advanced"
- array1.push("&networktype=" + todb(networkType));
- if(networkType == "Advanced") {
- if(args.data.zone.guestcidraddress != null && args.data.zone.guestcidraddress.length > 0)
- array1.push("&guestcidraddress=" + todb(args.data.zone.guestcidraddress));
+
+ var array1 = [];
+ var networkType = args.data.zone.networkType; //"Basic", "Advanced"
+ array1.push("&networktype=" + todb(networkType));
+ if(networkType == "Advanced") {
+ if(args.data.zone.guestcidraddress != null && args.data.zone.guestcidraddress.length > 0)
+ array1.push("&guestcidraddress=" + todb(args.data.zone.guestcidraddress));
}
-
- array1.push("&name=" + todb(args.data.zone.name));
- array1.push("&dns1=" + todb(args.data.zone.dns1));
+ array1.push("&name=" + todb(args.data.zone.name));
- var dns2 = args.data.zone.dns2;
- if (dns2 != null && dns2.length > 0)
- array1.push("&dns2=" + todb(dns2));
+ array1.push("&dns1=" + todb(args.data.zone.dns1));
- array1.push("&internaldns1="+todb(args.data.zone.internaldns1));
+ var dns2 = args.data.zone.dns2;
+ if (dns2 != null && dns2.length > 0)
+ array1.push("&dns2=" + todb(dns2));
- var internaldns2 = args.data.zone.internaldns2;
- if (internaldns2 != null && internaldns2.length > 0)
- array1.push("&internaldns2=" + todb(internaldns2));
-
- if(args.data.zone.ispublic == null) //public checkbox is unchecked
- array1.push("&domainid=" + args.data.zone.domain);
-
- if(args.data.zone.networkdomain != null && args.data.zone.networkdomain.length > 0)
- array1.push("&domain=" + todb(args.data.zone.networkdomain));
-
- $.ajax({
- url: createURL("createZone" + array1.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- stepFns.addPhysicalNetworks({
- data: $.extend(args.data, {
- returnedZone: json.createzoneresponse.zone
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addZone', errorMsg, { fn: 'addZone', args: args });
- }
- });
+ array1.push("&internaldns1="+todb(args.data.zone.internaldns1));
+
+ var internaldns2 = args.data.zone.internaldns2;
+ if (internaldns2 != null && internaldns2.length > 0)
+ array1.push("&internaldns2=" + todb(internaldns2));
+
+ if(args.data.zone.ispublic == null) //public checkbox is unchecked
+ array1.push("&domainid=" + args.data.zone.domain);
+
+ if(args.data.zone.networkdomain != null && args.data.zone.networkdomain.length > 0)
+ array1.push("&domain=" + todb(args.data.zone.networkdomain));
+
+ $.ajax({
+ url: createURL("createZone" + array1.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ stepFns.addPhysicalNetworks({
+ data: $.extend(args.data, {
+ returnedZone: json.createzoneresponse.zone
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addZone', errorMsg, { fn: 'addZone', args: args });
+ }
+ });
},
-
+
addPhysicalNetworks: function(args) {
message('Creating physical network(s)');
-
+
var returnedPhysicalNetworks = [];
-
- if(args.data.zone.networkType == "Basic") {
- var requestedTrafficTypeCount = 2; //request guest traffic type, management traffic type
- if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true)
- requestedTrafficTypeCount++; //request public traffic type
-
- $.ajax({
- url: createURL("createPhysicalNetwork&zoneid=" + args.data.returnedZone.id + "&name=PhysicalNetworkInBasicZone"),
- dataType: "json",
- success: function(json) {
- var jobId = json.createphysicalnetworkresponse.jobid;
- var timerKey = "createPhysicalNetworkJob_" + jobId;
- $("body").everyTime(2000, timerKey, function(){
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- var returnedBasicPhysicalNetwork = result.jobresult.physicalnetwork;
-
- var returnedTrafficTypes = [];
-
- $.ajax({
- url: createURL("addTrafficType&trafficType=Guest&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
- dataType: "json",
- success: function(json) {
- var jobId = json.addtraffictyperesponse.jobid;
- var timerKey = "addTrafficTypeJob_" + jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- returnedTrafficTypes.push(result.jobresult.traffictype);
-
- if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
- returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
-
- stepFns.configurePhysicalNetwork({
- data: $.extend(args.data, {
- returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
- })
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("Failed to add Guest traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("Failed to add Guest traffic type to basic zone. Error: " + errorMsg);
- }
- });
- });
- }
- });
-
+
+ if(args.data.zone.networkType == "Basic") {
+ var requestedTrafficTypeCount = 2; //request guest traffic type, management traffic type
+ if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true)
+ requestedTrafficTypeCount++; //request public traffic type
+
+ $.ajax({
+ url: createURL("createPhysicalNetwork&zoneid=" + args.data.returnedZone.id + "&name=PhysicalNetworkInBasicZone"),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.createphysicalnetworkresponse.jobid;
+ var timerKey = "createPhysicalNetworkJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function(){
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ var returnedBasicPhysicalNetwork = result.jobresult.physicalnetwork;
+
+ var returnedTrafficTypes = [];
+
$.ajax({
- url: createURL("addTrafficType&trafficType=Management&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
- dataType: "json",
- success: function(json) {
- var jobId = json.addtraffictyperesponse.jobid;
- var timerKey = "addTrafficTypeJob_" + jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- returnedTrafficTypes.push(result.jobresult.traffictype);
-
- if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
- returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
-
- stepFns.configurePhysicalNetwork({
- data: $.extend(args.data, {
- returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
- })
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("Failed to add Management traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg);
- }
- });
- });
- }
- });
-
- if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) {
- $.ajax({
- url: createURL("addTrafficType&trafficType=Public&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
- dataType: "json",
- success: function(json) {
- var jobId = json.addtraffictyperesponse.jobid;
- var timerKey = "addTrafficTypeJob_" + jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- returnedTrafficTypes.push(result.jobresult.traffictype);
-
- if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
- returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
-
- stepFns.configurePhysicalNetwork({
- data: $.extend(args.data, {
- returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
- })
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("Failed to add Public traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("Failed to add Public traffic type to basic zone. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("createPhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("createPhysicalNetwork failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if(args.data.zone.networkType == "Advanced") {
- $(args.data.physicalNetworks).each(function(){
- var thisPhysicalNetwork = this;
- $.ajax({
- url: createURL("createPhysicalNetwork&zoneid=" + args.data.returnedZone.id + "&name=" + todb(thisPhysicalNetwork.name)),
- dataType: "json",
- success: function(json) {
- var jobId = json.createphysicalnetworkresponse.jobid;
- var timerKey = "createPhysicalNetworkJob_" + jobId;
- $("body").everyTime(2000, timerKey, function(){
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- var returnedPhysicalNetwork = result.jobresult.physicalnetwork;
- returnedPhysicalNetwork.originalId = thisPhysicalNetwork.id;
-
- var returnedTrafficTypes = [];
- $(thisPhysicalNetwork.trafficTypes).each(function(){
- var thisTrafficType = this;
- var apiCmd = "addTrafficType&physicalnetworkid=" + returnedPhysicalNetwork.id;
- if(thisTrafficType == "public")
- apiCmd += "&trafficType=Public";
- else if(thisTrafficType == "management")
- apiCmd += "&trafficType=Management";
- else if(thisTrafficType == "guest")
- apiCmd += "&trafficType=Guest";
- else if(thisTrafficType == "storage")
- apiCmd += "&trafficType=Storage";
-
- $.ajax({
- url: createURL(apiCmd),
- dataType: "json",
- success: function(json) {
- var jobId = json.addtraffictyperesponse.jobid;
- var timerKey = "addTrafficTypeJob_" + jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- returnedTrafficTypes.push(result.jobresult.traffictype);
+ url: createURL("addTrafficType&trafficType=Guest&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.addtraffictyperesponse.jobid;
+ var timerKey = "addTrafficTypeJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ returnedTrafficTypes.push(result.jobresult.traffictype);
- if(returnedTrafficTypes.length == thisPhysicalNetwork.trafficTypes.length) { //this physical network is complete (specified traffic types are added)
- returnedPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
- returnedPhysicalNetworks.push(returnedPhysicalNetwork);
-
- if(returnedPhysicalNetworks.length == args.data.physicalNetworks.length) { //all physical networks are complete
- stepFns.configurePhysicalNetwork({
- data: $.extend(args.data, {
- returnedPhysicalNetworks: returnedPhysicalNetworks
- })
- });
- }
- }
- }
- else if (result.jobstatus == 2) {
- alert(apiCmd + " failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert(apiCmd + " failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- });
- }
- else if (result.jobstatus == 2) {
- alert("createPhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("createPhysicalNetwork failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- });
- }
+ if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
+ returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
+
+ stepFns.configurePhysicalNetwork({
+ data: $.extend(args.data, {
+ returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
+ })
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("Failed to add Guest traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("Failed to add Guest traffic type to basic zone. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+
+ $.ajax({
+ url: createURL("addTrafficType&trafficType=Management&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.addtraffictyperesponse.jobid;
+ var timerKey = "addTrafficTypeJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ returnedTrafficTypes.push(result.jobresult.traffictype);
+
+ if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
+ returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
+
+ stepFns.configurePhysicalNetwork({
+ data: $.extend(args.data, {
+ returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
+ })
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("Failed to add Management traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("Failed to add Management traffic type to basic zone. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+
+ if(selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) {
+ $.ajax({
+ url: createURL("addTrafficType&trafficType=Public&physicalnetworkid=" + returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.addtraffictyperesponse.jobid;
+ var timerKey = "addTrafficTypeJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ returnedTrafficTypes.push(result.jobresult.traffictype);
+
+ if(returnedTrafficTypes.length == requestedTrafficTypeCount) { //all requested traffic types have been added
+ returnedBasicPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
+
+ stepFns.configurePhysicalNetwork({
+ data: $.extend(args.data, {
+ returnedBasicPhysicalNetwork: returnedBasicPhysicalNetwork
+ })
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("Failed to add Public traffic type to basic zone. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("Failed to add Public traffic type to basic zone. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("createPhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("createPhysicalNetwork failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if(args.data.zone.networkType == "Advanced") {
+ $(args.data.physicalNetworks).each(function(){
+ var thisPhysicalNetwork = this;
+ $.ajax({
+ url: createURL("createPhysicalNetwork&zoneid=" + args.data.returnedZone.id + "&name=" + todb(thisPhysicalNetwork.name)),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.createphysicalnetworkresponse.jobid;
+ var timerKey = "createPhysicalNetworkJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function(){
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ var returnedPhysicalNetwork = result.jobresult.physicalnetwork;
+ returnedPhysicalNetwork.originalId = thisPhysicalNetwork.id;
+
+ var returnedTrafficTypes = [];
+ $(thisPhysicalNetwork.trafficTypes).each(function(){
+ var thisTrafficType = this;
+ var apiCmd = "addTrafficType&physicalnetworkid=" + returnedPhysicalNetwork.id;
+ if(thisTrafficType == "public")
+ apiCmd += "&trafficType=Public";
+ else if(thisTrafficType == "management")
+ apiCmd += "&trafficType=Management";
+ else if(thisTrafficType == "guest")
+ apiCmd += "&trafficType=Guest";
+ else if(thisTrafficType == "storage")
+ apiCmd += "&trafficType=Storage";
+
+ $.ajax({
+ url: createURL(apiCmd),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.addtraffictyperesponse.jobid;
+ var timerKey = "addTrafficTypeJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ returnedTrafficTypes.push(result.jobresult.traffictype);
+
+ if(returnedTrafficTypes.length == thisPhysicalNetwork.trafficTypes.length) { //this physical network is complete (specified traffic types are added)
+ returnedPhysicalNetwork.returnedTrafficTypes = returnedTrafficTypes;
+ returnedPhysicalNetworks.push(returnedPhysicalNetwork);
+
+ if(returnedPhysicalNetworks.length == args.data.physicalNetworks.length) { //all physical networks are complete
+ stepFns.configurePhysicalNetwork({
+ data: $.extend(args.data, {
+ returnedPhysicalNetworks: returnedPhysicalNetworks
+ })
+ });
+ }
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert(apiCmd + " failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert(apiCmd + " failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("createPhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("createPhysicalNetwork failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ });
+ }
},
-
- //afterCreateZonePhysicalNetworkTrafficTypes: enable physical network, enable virtual router element, enable network service provider
- configurePhysicalNetwork: function(args) {
- message('Configuring physical network(s)');
-
- if(args.data.zone.networkType == "Basic") {
- $.ajax({
- url: createURL("updatePhysicalNetwork&state=Enabled&id=" + args.data.returnedBasicPhysicalNetwork.id),
- dataType: "json",
- success: function(json) {
- //var jobId = json.updatephysicalnetworkresponse.jobid;
- var updatePhysicalNetworkTimer = "updatePhysicalNetworkJob_" + json.updatephysicalnetworkresponse.jobid;
- $("body").everyTime(2000, updatePhysicalNetworkTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId=" + json.updatephysicalnetworkresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(updatePhysicalNetworkTimer);
- if (result.jobstatus == 1) {
- //alert("updatePhysicalNetwork succeeded.");
- // get network service provider ID of Virtual Router
- var virtualRouterProviderId;
- $.ajax({
- url: createURL("listNetworkServiceProviders&name=VirtualRouter&physicalNetworkId=" + args.data.returnedBasicPhysicalNetwork.id),
- dataType: "json",
- async: false,
- success: function(json) {
- var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
- if(items != null && items.length > 0) {
- virtualRouterProviderId = items[0].id;
- }
- }
- });
- if(virtualRouterProviderId == null) {
- alert("error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID");
- return;
- }
+ //afterCreateZonePhysicalNetworkTrafficTypes: enable physical network, enable virtual router element, enable network service provider
+ configurePhysicalNetwork: function(args) {
+ message('Configuring physical network(s)');
- var virtualRouterElementId;
- $.ajax({
- url: createURL("listVirtualRouterElements&nspid=" + virtualRouterProviderId),
- dataType: "json",
- async: false,
- success: function(json) {
- var items = json.listvirtualrouterelementsresponse.virtualrouterelement;
- if(items != null && items.length > 0) {
- virtualRouterElementId = items[0].id;
- }
- }
- });
- if(virtualRouterElementId == null) {
- alert("error: listVirtualRouterElements API doesn't return Virtual Router Element Id");
- return;
- }
+ if(args.data.zone.networkType == "Basic") {
+ $.ajax({
+ url: createURL("updatePhysicalNetwork&state=Enabled&id=" + args.data.returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ success: function(json) {
+ //var jobId = json.updatephysicalnetworkresponse.jobid;
+ var updatePhysicalNetworkTimer = "updatePhysicalNetworkJob_" + json.updatephysicalnetworkresponse.jobid;
+ $("body").everyTime(2000, updatePhysicalNetworkTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId=" + json.updatephysicalnetworkresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(updatePhysicalNetworkTimer);
+ if (result.jobstatus == 1) {
+ //alert("updatePhysicalNetwork succeeded.");
- $.ajax({
- url: createURL("configureVirtualRouterElement&enabled=true&id=" + virtualRouterElementId),
- dataType: "json",
- async: false,
- success: function(json) {
- //var jobId = json.configurevirtualrouterelementresponse.jobid;
- var configureVirtualRouterElementTimer = "configureVirtualRouterElementJob_" + json.configurevirtualrouterelementresponse.jobid;
- $("body").everyTime(2000, configureVirtualRouterElementTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId=" + json.configurevirtualrouterelementresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(configureVirtualRouterElementTimer);
- if (result.jobstatus == 1) {
- //alert("configureVirtualRouterElement succeeded.");
+ // get network service provider ID of Virtual Router
+ var virtualRouterProviderId;
+ $.ajax({
+ url: createURL("listNetworkServiceProviders&name=VirtualRouter&physicalNetworkId=" + args.data.returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
+ if(items != null && items.length > 0) {
+ virtualRouterProviderId = items[0].id;
+ }
+ }
+ });
+ if(virtualRouterProviderId == null) {
+ alert("error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID");
+ return;
+ }
- $.ajax({
- url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId),
- dataType: "json",
- async: false,
- success: function(json) {
- //var jobId = json.updatenetworkserviceproviderresponse.jobid;
- var updateNetworkServiceProviderTimer = "updateNetworkServiceProviderJob_" + json.updatenetworkserviceproviderresponse.jobid;
- $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(updateNetworkServiceProviderTimer);
- if (result.jobstatus == 1) {
- //alert("Virtual Router Provider is enabled");
-
- if(selectedNetworkOfferingHavingSG == true) { //need to Enable security group provider first
- // get network service provider ID of Security Group
- var securityGroupProviderId;
- $.ajax({
- url: createURL("listNetworkServiceProviders&name=SecurityGroupProvider&physicalNetworkId=" + args.data.returnedBasicPhysicalNetwork.id),
- dataType: "json",
- async: false,
- success: function(json) {
- var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
- if(items != null && items.length > 0) {
- securityGroupProviderId = items[0].id;
- }
- }
- });
- if(securityGroupProviderId == null) {
- alert("error: listNetworkServiceProviders API doesn't return security group provider ID");
- return;
- }
-
- $.ajax({
- url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + securityGroupProviderId),
- dataType: "json",
- async: false,
- success: function(json) {
- var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid;
- $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(updateNetworkServiceProviderTimer);
- if (result.jobstatus == 1) { //Security group provider has been enabled successfully
- //"ElasticIP + ElasticLB"
- if(selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) { //inside "selectedNetworkOfferingHavingSG == true" section
- //add netscaler provider (start)
- $.ajax({
- url: createURL("addNetworkServiceProvider&name=Netscaler&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id),
- dataType: "json",
- async: false,
- success: function(json) {
- var addNetworkServiceProviderTimer = "asyncJob_" + json.addnetworkserviceproviderresponse.jobid;
- $("body").everyTime(2000, addNetworkServiceProviderTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId=" + json.addnetworkserviceproviderresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(addNetworkServiceProviderTimer);
- if (result.jobstatus == 1) {
- args.data.returnedNetscalerProvider = result.jobresult.networkserviceprovider;
-
- stepFns.addNetscalerDevice({
- data: args.data
- });
- }
- else if (result.jobstatus == 2) {
- alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- //add netscaler provider (end)
- }
- else { //no "ElasticIP + ElasticLB"
- //create a guest network for basic zone
- var array2 = [];
- array2.push("&zoneid=" + args.data.returnedZone.id);
- array2.push("&name=guestNetworkForBasicZone");
- array2.push("&displaytext=guestNetworkForBasicZone");
- array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
- $.ajax({
- url: createURL("createNetwork" + array2.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
- stepFns.addPod({
- data: $.extend(args.data, {
- returnedGuestNetwork: json.createnetworkresponse.network
- })
- });
- }
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("failed to enable security group provider. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("failed to enable security group provider. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else { //selectedNetworkOfferingHavingSG == false
- //create a guest network for basic zone
- var array2 = [];
- array2.push("&zoneid=" + args.data.returnedZone.id);
- array2.push("&name=guestNetworkForBasicZone");
- array2.push("&displaytext=guestNetworkForBasicZone");
- array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
- $.ajax({
- url: createURL("createNetwork" + array2.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
- stepFns.addPod({
- data: $.extend(args.data, {
- returnedGuestNetwork: json.createnetworkresponse.network
- })
- });
- }
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("failed to enable Virtual Router Provider. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("failed to enable Virtual Router Provider. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if (result.jobstatus == 2) {
- alert("configureVirtualRouterElement failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("configureVirtualRouterElement failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if (result.jobstatus == 2) {
- alert("updatePhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("updatePhysicalNetwork failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if(args.data.zone.networkType == "Advanced") {
- $(args.data.returnedPhysicalNetworks).each(function(){
- var thisPhysicalNetwork = this;
- $.ajax({
- url: createURL("updatePhysicalNetwork&state=Enabled&id=" + thisPhysicalNetwork.id),
- dataType: "json",
- success: function(json) {
- var jobId = json.updatephysicalnetworkresponse.jobid;
- var timerKey = "updatePhysicalNetworkJob_"+jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId="+jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) {
- //alert("updatePhysicalNetwork succeeded.");
+ var virtualRouterElementId;
+ $.ajax({
+ url: createURL("listVirtualRouterElements&nspid=" + virtualRouterProviderId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listvirtualrouterelementsresponse.virtualrouterelement;
+ if(items != null && items.length > 0) {
+ virtualRouterElementId = items[0].id;
+ }
+ }
+ });
+ if(virtualRouterElementId == null) {
+ alert("error: listVirtualRouterElements API doesn't return Virtual Router Element Id");
+ return;
+ }
- // get network service provider ID of Virtual Router
- var virtualRouterProviderId;
- $.ajax({
- url: createURL("listNetworkServiceProviders&name=VirtualRouter&physicalNetworkId=" + thisPhysicalNetwork.id),
- dataType: "json",
- async: false,
- success: function(json) {
- var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
- if(items != null && items.length > 0) {
- virtualRouterProviderId = items[0].id;
- }
- }
- });
- if(virtualRouterProviderId == null) {
- alert("error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID");
- return;
- }
+ $.ajax({
+ url: createURL("configureVirtualRouterElement&enabled=true&id=" + virtualRouterElementId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ //var jobId = json.configurevirtualrouterelementresponse.jobid;
+ var configureVirtualRouterElementTimer = "configureVirtualRouterElementJob_" + json.configurevirtualrouterelementresponse.jobid;
+ $("body").everyTime(2000, configureVirtualRouterElementTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId=" + json.configurevirtualrouterelementresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(configureVirtualRouterElementTimer);
+ if (result.jobstatus == 1) {
+ //alert("configureVirtualRouterElement succeeded.");
- var virtualRouterElementId;
- $.ajax({
- url: createURL("listVirtualRouterElements&nspid=" + virtualRouterProviderId),
- dataType: "json",
- async: false,
- success: function(json) {
- var items = json.listvirtualrouterelementsresponse.virtualrouterelement;
- if(items != null && items.length > 0) {
- virtualRouterElementId = items[0].id;
- }
- }
- });
- if(virtualRouterElementId == null) {
- alert("error: listVirtualRouterElements API doesn't return Virtual Router Element Id");
- return;
- }
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ //var jobId = json.updatenetworkserviceproviderresponse.jobid;
+ var updateNetworkServiceProviderTimer = "updateNetworkServiceProviderJob_" + json.updatenetworkserviceproviderresponse.jobid;
+ $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(updateNetworkServiceProviderTimer);
+ if (result.jobstatus == 1) {
+ //alert("Virtual Router Provider is enabled");
- $.ajax({
- url: createURL("configureVirtualRouterElement&enabled=true&id=" + virtualRouterElementId),
- dataType: "json",
- async: false,
- success: function(json) {
- var jobId = json.configurevirtualrouterelementresponse.jobid;
- var timerKey = "configureVirtualRouterElementJob_"+jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId="+jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) { //configureVirtualRouterElement succeeded
- $.ajax({
- url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId),
- dataType: "json",
- async: false,
- success: function(json) {
- var jobId = json.updatenetworkserviceproviderresponse.jobid;
- var timerKey = "updateNetworkServiceProviderJob_"+jobId;
- $("body").everyTime(2000, timerKey, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobId="+jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if (result.jobstatus == 0) {
- return; //Job has not completed
- }
- else {
- $("body").stopTime(timerKey);
- if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully
- advZoneConfiguredPhysicalNetworkCount++;
- if(advZoneConfiguredPhysicalNetworkCount == args.data.returnedPhysicalNetworks.length) { //not call addPod() until all physical networks get configured
- stepFns.addPod({
- data: args.data
- });
- }
- }
- else if (result.jobstatus == 2) {
- alert("failed to enable Virtual Router Provider. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if (result.jobstatus == 2) {
- alert("configureVirtualRouterElement failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("configureVirtualRouterElement failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- }
- else if (result.jobstatus == 2) {
- alert("updatePhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("updatePhysicalNetwork failed. Error: " + errorMsg);
- }
- });
- });
- }
- });
- });
- }
- },
-
- addNetscalerDevice: function(args) {
- message('Adding Netscaler device');
-
- var array1 = [];
- array1.push("&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id);
- array1.push("&username=" + todb(args.data.basicPhysicalNetwork.username));
- array1.push("&password=" + todb(args.data.basicPhysicalNetwork.password));
- array1.push("&networkdevicetype=" + todb(args.data.basicPhysicalNetwork.networkdevicetype));
+ if(selectedNetworkOfferingHavingSG == true) { //need to Enable security group provider first
+ // get network service provider ID of Security Group
+ var securityGroupProviderId;
+ $.ajax({
+ url: createURL("listNetworkServiceProviders&name=SecurityGroupProvider&physicalNetworkId=" + args.data.returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
+ if(items != null && items.length > 0) {
+ securityGroupProviderId = items[0].id;
+ }
+ }
+ });
+ if(securityGroupProviderId == null) {
+ alert("error: listNetworkServiceProviders API doesn't return security group provider ID");
+ return;
+ }
- //construct URL starts here
- var url = [];
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + securityGroupProviderId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid;
+ $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(updateNetworkServiceProviderTimer);
+ if (result.jobstatus == 1) { //Security group provider has been enabled successfully
+ //"ElasticIP + ElasticLB"
+ if(selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true) { //inside "selectedNetworkOfferingHavingSG == true" section
+ //add netscaler provider (start)
+ $.ajax({
+ url: createURL("addNetworkServiceProvider&name=Netscaler&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var addNetworkServiceProviderTimer = "asyncJob_" + json.addnetworkserviceproviderresponse.jobid;
+ $("body").everyTime(2000, addNetworkServiceProviderTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId=" + json.addnetworkserviceproviderresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(addNetworkServiceProviderTimer);
+ if (result.jobstatus == 1) {
+ args.data.returnedNetscalerProvider = result.jobresult.networkserviceprovider;
- var ip = args.data.basicPhysicalNetwork.ip;
- url.push("https://" + ip);
+ stepFns.addNetscalerDevice({
+ data: args.data
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ //add netscaler provider (end)
+ }
+ else { //no "ElasticIP + ElasticLB"
+ //create a guest network for basic zone
+ var array2 = [];
+ array2.push("&zoneid=" + args.data.returnedZone.id);
+ array2.push("&name=guestNetworkForBasicZone");
+ array2.push("&displaytext=guestNetworkForBasicZone");
+ array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
+ $.ajax({
+ url: createURL("createNetwork" + array2.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
+ stepFns.addPod({
+ data: $.extend(args.data, {
+ returnedGuestNetwork: json.createnetworkresponse.network
+ })
+ });
+ }
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("failed to enable security group provider. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("failed to enable security group provider. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else { //selectedNetworkOfferingHavingSG == false
+ //create a guest network for basic zone
+ var array2 = [];
+ array2.push("&zoneid=" + args.data.returnedZone.id);
+ array2.push("&name=guestNetworkForBasicZone");
+ array2.push("&displaytext=guestNetworkForBasicZone");
+ array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
+ $.ajax({
+ url: createURL("createNetwork" + array2.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
+ stepFns.addPod({
+ data: $.extend(args.data, {
+ returnedGuestNetwork: json.createnetworkresponse.network
+ })
+ });
+ }
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("failed to enable Virtual Router Provider. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("failed to enable Virtual Router Provider. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("configureVirtualRouterElement failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("configureVirtualRouterElement failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("updatePhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("updatePhysicalNetwork failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if(args.data.zone.networkType == "Advanced") {
+ $(args.data.returnedPhysicalNetworks).each(function(){
+ var thisPhysicalNetwork = this;
+ $.ajax({
+ url: createURL("updatePhysicalNetwork&state=Enabled&id=" + thisPhysicalNetwork.id),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.updatephysicalnetworkresponse.jobid;
+ var timerKey = "updatePhysicalNetworkJob_"+jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId="+jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) {
+ //alert("updatePhysicalNetwork succeeded.");
- var isQuestionMarkAdded = false;
+ // get network service provider ID of Virtual Router
+ var virtualRouterProviderId;
+ $.ajax({
+ url: createURL("listNetworkServiceProviders&name=VirtualRouter&physicalNetworkId=" + thisPhysicalNetwork.id),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
+ if(items != null && items.length > 0) {
+ virtualRouterProviderId = items[0].id;
+ }
+ }
+ });
+ if(virtualRouterProviderId == null) {
+ alert("error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID");
+ return;
+ }
- var publicInterface = args.data.basicPhysicalNetwork.publicinterface;
- if(publicInterface != null && publicInterface.length > 0) {
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("publicinterface=" + publicInterface);
- }
+ var virtualRouterElementId;
+ $.ajax({
+ url: createURL("listVirtualRouterElements&nspid=" + virtualRouterProviderId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listvirtualrouterelementsresponse.virtualrouterelement;
+ if(items != null && items.length > 0) {
+ virtualRouterElementId = items[0].id;
+ }
+ }
+ });
+ if(virtualRouterElementId == null) {
+ alert("error: listVirtualRouterElements API doesn't return Virtual Router Element Id");
+ return;
+ }
- var privateInterface = args.data.basicPhysicalNetwork.privateinterface;
- if(privateInterface != null && privateInterface.length > 0) {
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("privateinterface=" + privateInterface);
- }
+ $.ajax({
+ url: createURL("configureVirtualRouterElement&enabled=true&id=" + virtualRouterElementId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var jobId = json.configurevirtualrouterelementresponse.jobid;
+ var timerKey = "configureVirtualRouterElementJob_"+jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId="+jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) { //configureVirtualRouterElement succeeded
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + virtualRouterProviderId),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var jobId = json.updatenetworkserviceproviderresponse.jobid;
+ var timerKey = "updateNetworkServiceProviderJob_"+jobId;
+ $("body").everyTime(2000, timerKey, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobId="+jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if (result.jobstatus == 0) {
+ return; //Job has not completed
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully
+ advZoneConfiguredPhysicalNetworkCount++;
+ if(advZoneConfiguredPhysicalNetworkCount == args.data.returnedPhysicalNetworks.length) { //not call addPod() until all physical networks get configured
+ stepFns.addPod({
+ data: args.data
+ });
+ }
+ }
+ else if (result.jobstatus == 2) {
+ alert("failed to enable Virtual Router Provider. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("configureVirtualRouterElement failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("configureVirtualRouterElement failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert("updatePhysicalNetwork failed. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("updatePhysicalNetwork failed. Error: " + errorMsg);
+ }
+ });
+ });
+ }
+ });
+ });
+ }
+ },
- var numretries = args.data.basicPhysicalNetwork.numretries;
- if(numretries != null && numretries.length > 0) {
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("numretries=" + numretries);
- }
+ addNetscalerDevice: function(args) {
+ message('Adding Netscaler device');
- var isInline = args.data.basicPhysicalNetwork.inline;
- if(isInline != null && isInline.length > 0) {
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("inline=" + isInline);
- }
+ var array1 = [];
+ array1.push("&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id);
+ array1.push("&username=" + todb(args.data.basicPhysicalNetwork.username));
+ array1.push("&password=" + todb(args.data.basicPhysicalNetwork.password));
+ array1.push("&networkdevicetype=" + todb(args.data.basicPhysicalNetwork.networkdevicetype));
- var capacity = args.data.basicPhysicalNetwork.capacity;
- if(capacity != null && capacity.length > 0) {
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("lbdevicecapacity=" + capacity);
- }
+ //construct URL starts here
+ var url = [];
- var dedicated = (args.data.basicPhysicalNetwork.dedicated == "on"); //boolean (true/false)
- if(isQuestionMarkAdded == false) {
- url.push("?");
- isQuestionMarkAdded = true;
- }
- else {
- url.push("&");
- }
- url.push("lbdevicededicated=" + dedicated.toString());
+ var ip = args.data.basicPhysicalNetwork.ip;
+ url.push("https://" + ip);
+
+ var isQuestionMarkAdded = false;
+
+ var publicInterface = args.data.basicPhysicalNetwork.publicinterface;
+ if(publicInterface != null && publicInterface.length > 0) {
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("publicinterface=" + publicInterface);
+ }
+
+ var privateInterface = args.data.basicPhysicalNetwork.privateinterface;
+ if(privateInterface != null && privateInterface.length > 0) {
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("privateinterface=" + privateInterface);
+ }
+
+ var numretries = args.data.basicPhysicalNetwork.numretries;
+ if(numretries != null && numretries.length > 0) {
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("numretries=" + numretries);
+ }
+
+ var isInline = args.data.basicPhysicalNetwork.inline;
+ if(isInline != null && isInline.length > 0) {
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("inline=" + isInline);
+ }
+
+ var capacity = args.data.basicPhysicalNetwork.capacity;
+ if(capacity != null && capacity.length > 0) {
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("lbdevicecapacity=" + capacity);
+ }
+
+ var dedicated = (args.data.basicPhysicalNetwork.dedicated == "on"); //boolean (true/false)
+ if(isQuestionMarkAdded == false) {
+ url.push("?");
+ isQuestionMarkAdded = true;
+ }
+ else {
+ url.push("&");
+ }
+ url.push("lbdevicededicated=" + dedicated.toString());
- array1.push("&url=" + todb(url.join("")));
- //construct URL ends here
+ array1.push("&url=" + todb(url.join("")));
+ //construct URL ends here
- $.ajax({
- url: createURL("addNetscalerLoadBalancer" + array1.join("")),
- dataType: "json",
- success: function(json) {
- var addNetscalerLoadBalancerTimer = "asyncJob_" + json.addnetscalerloadbalancerresponse.jobid;
- $("body").everyTime(2000, addNetscalerLoadBalancerTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + json.addnetscalerloadbalancerresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if(result.jobstatus == 0) {
- return;
- }
- else {
- $("body").stopTime(addNetscalerLoadBalancerTimer);
- if(result.jobstatus == 1) {
- args.data.returnedNetscalerProvider.returnedNetscalerloadbalancer = result.jobresult.netscalerloadbalancer;
-
- $.ajax({
- url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + args.data.returnedNetscalerProvider.id),
- dataType: "json",
- success: function(json) {
- var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid;
-
- $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + json.updatenetworkserviceproviderresponse.jobid),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if(result.jobstatus == 0) {
- return;
- }
- else {
- $("body").stopTime(updateNetworkServiceProviderTimer);
- if(result.jobstatus == 1) {
- //create a guest network for basic zone
- var array2 = [];
- array2.push("&zoneid=" + args.data.returnedZone.id);
- array2.push("&name=guestNetworkForBasicZone");
- array2.push("&displaytext=guestNetworkForBasicZone");
- array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
- $.ajax({
- url: createURL("createNetwork" + array2.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
- stepFns.addPod({
- data: $.extend(args.data, {
- returnedGuestNetwork: json.createnetworkresponse.network
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("failed to create a guest network for basic zone. Error: " + errorMsg);
- }
- });
- }
- else if(result.jobstatus == 2) {
- alert("failed to enable Netscaler provider. Error: " + fromdb(result.jobresult.errortext));
- }
- }
- }
- });
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- alert("failed to enable Netscaler provider. Error: " + errorMsg);
- }
- });
- }
- else if(result.jobstatus == 2) { //addNetscalerLoadBalancer failed
- error('addNetscalerDevice', fromdb(result.jobresult.errortext), { fn: 'addNetscalerDevice', args: args });
- }
- }
- }
- });
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addNetscalerDevice', errorMsg, { fn: 'addNetscalerDevice', args: args });
- }
- });
- },
-
- addPod: function(args) {
+ $.ajax({
+ url: createURL("addNetscalerLoadBalancer" + array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ var addNetscalerLoadBalancerTimer = "asyncJob_" + json.addnetscalerloadbalancerresponse.jobid;
+ $("body").everyTime(2000, addNetscalerLoadBalancerTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + json.addnetscalerloadbalancerresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if(result.jobstatus == 0) {
+ return;
+ }
+ else {
+ $("body").stopTime(addNetscalerLoadBalancerTimer);
+ if(result.jobstatus == 1) {
+ args.data.returnedNetscalerProvider.returnedNetscalerloadbalancer = result.jobresult.netscalerloadbalancer;
+
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + args.data.returnedNetscalerProvider.id),
+ dataType: "json",
+ success: function(json) {
+ var updateNetworkServiceProviderTimer = "asyncJob_" + json.updatenetworkserviceproviderresponse.jobid;
+
+ $("body").everyTime(2000, updateNetworkServiceProviderTimer, function() {
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + json.updatenetworkserviceproviderresponse.jobid),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if(result.jobstatus == 0) {
+ return;
+ }
+ else {
+ $("body").stopTime(updateNetworkServiceProviderTimer);
+ if(result.jobstatus == 1) {
+ //create a guest network for basic zone
+ var array2 = [];
+ array2.push("&zoneid=" + args.data.returnedZone.id);
+ array2.push("&name=guestNetworkForBasicZone");
+ array2.push("&displaytext=guestNetworkForBasicZone");
+ array2.push("&networkofferingid=" + args.data.zone.networkOfferingId);
+ $.ajax({
+ url: createURL("createNetwork" + array2.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ //basic zone has only one physical network => addPod() will be called only once => so don't need to double-check before calling addPod()
+ stepFns.addPod({
+ data: $.extend(args.data, {
+ returnedGuestNetwork: json.createnetworkresponse.network
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("failed to create a guest network for basic zone. Error: " + errorMsg);
+ }
+ });
+ }
+ else if(result.jobstatus == 2) {
+ alert("failed to enable Netscaler provider. Error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ }
+ });
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ alert("failed to enable Netscaler provider. Error: " + errorMsg);
+ }
+ });
+ }
+ else if(result.jobstatus == 2) { //addNetscalerLoadBalancer failed
+ error('addNetscalerDevice', fromdb(result.jobresult.errortext), { fn: 'addNetscalerDevice', args: args });
+ }
+ }
+ }
+ });
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addNetscalerDevice', errorMsg, { fn: 'addNetscalerDevice', args: args });
+ }
+ });
+ },
+
+ addPod: function(args) {
message('Creating pod');
-
- var array3 = [];
- array3.push("&zoneId=" + args.data.returnedZone.id);
- array3.push("&name=" + todb(args.data.pod.name));
- array3.push("&gateway=" + todb(args.data.pod.reservedSystemGateway));
- array3.push("&netmask=" + todb(args.data.pod.reservedSystemNetmask));
- array3.push("&startIp=" + todb(args.data.pod.reservedSystemStartIp));
- var endip = args.data.pod.reservedSystemEndIp; //optional
- if (endip != null && endip.length > 0)
- array3.push("&endIp=" + todb(endip));
+ var array3 = [];
+ array3.push("&zoneId=" + args.data.returnedZone.id);
+ array3.push("&name=" + todb(args.data.pod.name));
+ array3.push("&gateway=" + todb(args.data.pod.reservedSystemGateway));
+ array3.push("&netmask=" + todb(args.data.pod.reservedSystemNetmask));
+ array3.push("&startIp=" + todb(args.data.pod.reservedSystemStartIp));
+
+ var endip = args.data.pod.reservedSystemEndIp; //optional
+ if (endip != null && endip.length > 0)
+ array3.push("&endIp=" + todb(endip));
+
+ $.ajax({
+ url: createURL("createPod" + array3.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ stepFns.configurePublicTraffic({
+ data: $.extend(args.data, {
+ returnedPod: json.createpodresponse.pod
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addPod', errorMsg, { fn: 'addPod', args: args });
+ }
+ });
+ },
+
+ configurePublicTraffic: function(args) {
+ if((args.data.zone.networkType == "Basic" && (selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true))
+ ||(args.data.zone.networkType == "Advanced")) {
+ message('Configuring public traffic');
+
+ var stopNow = false;
+
+ $(args.data.publicTraffic).each(function(){
+ var thisPublicVlanIpRange = this;
- $.ajax({
- url: createURL("createPod" + array3.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- stepFns.configurePublicTraffic({
- data: $.extend(args.data, {
- returnedPod: json.createpodresponse.pod
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addPod', errorMsg, { fn: 'addPod', args: args });
- }
- });
- },
-
- configurePublicTraffic: function(args) {
- if((args.data.zone.networkType == "Basic" && (selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true))
- ||(args.data.zone.networkType == "Advanced")) {
-
- message('Configuring public traffic');
-
- var stopNow = false;
-
- $(args.data.publicTraffic).each(function(){
- var thisPublicVlanIpRange = this;
-
//check whether the VlanIpRange exists or not (begin)
- var isExisting = false;
- $(returnedPublicVlanIpRanges).each(function() {
- if(this.vlan == thisPublicVlanIpRange.vlanid && this.startip == thisPublicVlanIpRange.startip && this.netmask == thisPublicVlanIpRange.netmask && this.gateway == thisPublicVlanIpRange.gateway) {
- isExisting = true;
- return false; //break each loop
- }
- });
- if(isExisting == true)
- return; //skip current item to next item (continue each loop)
-
- //check whether the VlanIpRange exists or not (end)
-
- var array1 = [];
- array1.push("&zoneId=" + args.data.returnedZone.id);
+ var isExisting = false;
+ $(returnedPublicVlanIpRanges).each(function() {
+ if(this.vlan == thisPublicVlanIpRange.vlanid && this.startip == thisPublicVlanIpRange.startip && this.netmask == thisPublicVlanIpRange.netmask && this.gateway == thisPublicVlanIpRange.gateway) {
+ isExisting = true;
+ return false; //break each loop
+ }
+ });
+ if(isExisting == true)
+ return; //skip current item to next item (continue each loop)
- if (this.vlanid != null && this.vlanid.length > 0)
- array1.push("&vlan=" + todb(this.vlanid));
- else
- array1.push("&vlan=untagged");
+ //check whether the VlanIpRange exists or not (end)
- array1.push("&gateway=" + this.gateway);
- array1.push("&netmask=" + this.netmask);
- array1.push("&startip=" + this.startip);
- if(this.endip != null && this.endip.length > 0)
- array1.push("&endip=" + this.endip);
+ var array1 = [];
+ array1.push("&zoneId=" + args.data.returnedZone.id);
- array1.push("&forVirtualNetwork=true");
-
- $.ajax({
- url: createURL("createVlanIpRange" + array1.join("")),
- dataType: "json",
- async: false,
- success: function(json) {
- var item = json.createvlaniprangeresponse.vlan;
- returnedPublicVlanIpRanges.push(item);
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('configurePublicTraffic', errorMsg, { fn: 'configurePublicTraffic', args: args });
- stopNow = true;
- }
- });
+ if (this.vlanid != null && this.vlanid.length > 0)
+ array1.push("&vlan=" + todb(this.vlanid));
+ else
+ array1.push("&vlan=untagged");
+
+ array1.push("&gateway=" + this.gateway);
+ array1.push("&netmask=" + this.netmask);
+ array1.push("&startip=" + this.startip);
+ if(this.endip != null && this.endip.length > 0)
+ array1.push("&endip=" + this.endip);
+
+ array1.push("&forVirtualNetwork=true");
+
+ $.ajax({
+ url: createURL("createVlanIpRange" + array1.join("")),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var item = json.createvlaniprangeresponse.vlan;
+ returnedPublicVlanIpRanges.push(item);
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('configurePublicTraffic', errorMsg, { fn: 'configurePublicTraffic', args: args });
+ stopNow = true;
+ }
+ });
+
+ if(stopNow == true)
+ return false; //break each loop, don't create next VlanIpRange
+ });
- if(stopNow == true)
- return false; //break each loop, don't create next VlanIpRange
-
- });
-
if(stopNow == true)
- return; //stop the whole process
-
- stepFns.configureGuestTraffic({
- data: $.extend(args.data, {
- returnedPublicTraffic: returnedPublicVlanIpRanges
- })
- });
- }
- else { //basic zone without public traffic type , skip to next step
- stepFns.configureGuestTraffic({
- data: args.data
- });
- }
- },
-
+ return; //stop the whole process
+
+ stepFns.configureStorageTraffic({
+ data: $.extend(args.data, {
+ returnedPublicTraffic: returnedPublicVlanIpRanges
+ })
+ });
+ }
+ else { //basic zone without public traffic type , skip to next step
+ stepFns.configureGuestTraffic({
+ data: args.data
+ });
+ }
+ },
+
+ configureStorageTraffic: function(args) {
+ var complete = function(data) {
+ stepFns.configureGuestTraffic({
+ data: $.extend(args.data, data)
+ });
+ };
+
+ var targetNetwork = $.grep(args.data.physicalNetworks, function(net) {
+ return $.inArray('storage', net.trafficTypes) > -1; });
+
+ if (args.data.zone.networkType == 'Basic' ||
+ !targetNetwork.length) {
+ return complete({});
+ }
+
+ message('Configuring storage traffic');
+
+ var storageIPRanges = args.data.storageTraffic;
+ var tasks = [];
+ var taskTimer;
+
+ $(storageIPRanges).each(function() {
+ var item = this;
+
+ $.ajax({
+ url: createURL('createStorageNetworkIpRange'),
+ data: $.extend(true, {}, item, {
+ zoneid: args.data.returnedZone.id,
+ podid: args.data.returnedPod.id
+ }),
+ success: function(json) {
+ tasks.push({
+ jobid: json.createstoragenetworkiprangeresponse.jobid,
+ complete: false
+ });
+ },
+ error: function(json) {
+ tasks.push({
+ error: true,
+ message: parseXMLHttpResponse(json)
+ });
+ }
+ });
+ });
+
+ taskTimer = setInterval(function() {
+ var completedTasks = $.grep(tasks, function(task) {
+ return task.complete || task.error;
+ });
+
+ var errorTasks = $.grep(tasks, function(task) {
+ return task.error;
+ });
+
+ if (completedTasks.length == storageIPRanges.length) {
+ clearInterval(taskTimer);
+
+ if (errorTasks.length) {
+ return error('configureStorageTraffic', errorTasks[0].message, {
+ fn: 'configureStorageTraffic', args: args
+ });
+ }
+
+ return complete({});
+ }
+
+ if (tasks.length == storageIPRanges.length) {
+ $(tasks).each(function() {
+ var task = this;
+
+ if (task.error) return true;
+
+ pollAsyncJobResult({
+ _custom: { jobId: task.jobid },
+ complete: function() {
+ task.complete = true;
+ },
+ error: function(args) {
+ task.error = true;
+ task.message = args.message;
+ }
+ });
+
+ return true;
+ });
+ }
+
+ return true;
+ }, 1000);
+
+ return true;
+ },
+
configureGuestTraffic: function(args) {
message('Configuring guest traffic');
-
- if(args.data.returnedZone.networktype == "Basic") { //create an VlanIpRange for guest network in basic zone
- var array1 = [];
- array1.push("&podid=" + args.data.returnedPod.id);
- array1.push("&networkid=" + args.data.returnedGuestNetwork.id);
- array1.push("&gateway=" + args.data.guestTraffic.guestGateway);
- array1.push("&netmask=" + args.data.guestTraffic.guestNetmask);
- array1.push("&startip=" + args.data.guestTraffic.guestStartIp);
- if(args.data.guestTraffic.guestEndIp != null && args.data.guestTraffic.guestEndIp.length > 0)
- array1.push("&endip=" + args.data.guestTraffic.guestEndIp);
- array1.push("&forVirtualNetwork=false"); //indicates this new IP range is for guest network, not public network
-
- $.ajax({
- url: createURL("createVlanIpRange" + array1.join("")),
- dataType: "json",
- success: function(json) {
- args.data.returnedGuestNetwork.returnedVlanIpRange = json.createvlaniprangeresponse.vlan;
+
+ if(args.data.returnedZone.networktype == "Basic") { //create an VlanIpRange for guest network in basic zone
+ var array1 = [];
+ array1.push("&podid=" + args.data.returnedPod.id);
+ array1.push("&networkid=" + args.data.returnedGuestNetwork.id);
+ array1.push("&gateway=" + args.data.guestTraffic.guestGateway);
+ array1.push("&netmask=" + args.data.guestTraffic.guestNetmask);
+ array1.push("&startip=" + args.data.guestTraffic.guestStartIp);
+ if(args.data.guestTraffic.guestEndIp != null && args.data.guestTraffic.guestEndIp.length > 0)
+ array1.push("&endip=" + args.data.guestTraffic.guestEndIp);
+ array1.push("&forVirtualNetwork=false"); //indicates this new IP range is for guest network, not public network
+
+ $.ajax({
+ url: createURL("createVlanIpRange" + array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ args.data.returnedGuestNetwork.returnedVlanIpRange = json.createvlaniprangeresponse.vlan;
stepFns.addCluster({
- data: args.data
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args });
- }
- });
- }
- else if(args.data.returnedZone.networktype == "Advanced") { //update VLAN in physical network(s) in advanced zone
- var physicalNetworksHavingGuestIncludingVlan = [];
- $(args.data.physicalNetworks).each(function(){
- if(this.guestConfiguration != null && this.guestConfiguration.vlanRangeStart != null && this.guestConfiguration.vlanRangeStart.length > 0) {
- physicalNetworksHavingGuestIncludingVlan.push(this);
- }
- });
-
- if(physicalNetworksHavingGuestIncludingVlan.length == 0) {
- stepFns.addCluster({
- data: args.data
- });
- }
- else {
- var updatedCount = 0;
- $(physicalNetworksHavingGuestIncludingVlan).each(function(){
- var vlan;
- if(this.guestConfiguration.vlanRangeEnd == null || this.guestConfiguration.vlanRangeEnd.length == 0)
- vlan = this.guestConfiguration.vlanRangeStart;
- else
- vlan = this.guestConfiguration.vlanRangeStart + "-" + this.guestConfiguration.vlanRangeEnd;
-
- var originalId = this.id;
- var returnedId;
- $(args.data.returnedPhysicalNetworks).each(function(){
- if(this.originalId == originalId) {
- returnedId = this.id;
- return false; //break the loop
- }
- });
-
- $.ajax({
- url: createURL("updatePhysicalNetwork&id=" + returnedId + "&vlan=" + todb(vlan)),
- dataType: "json",
- success: function(json) {
- var jobId = json.updatephysicalnetworkresponse.jobid;
- var timerKey = "asyncJob_" + jobId;
- $("body").everyTime(2000, timerKey, function(){
- $.ajax({
- url: createURL("queryAsyncJobResult&jobid=" + jobId),
- dataType: "json",
- success: function(json) {
- var result = json.queryasyncjobresultresponse;
- if(result.jobstatus == 0) {
- return;
- }
- else {
- $("body").stopTime(timerKey);
- if(result.jobstatus == 1) {
- updatedCount++;
- if(updatedCount == physicalNetworksHavingGuestIncludingVlan.length) {
- stepFns.addCluster({
- data: args.data
- });
- }
- }
- else if(result.jobstatus == 2){
- alert("error: " + fromdb(result.jobresult.errortext));
- }
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args });
- }
- });
- });
- }
- });
- });
- }
- }
+ data: args.data
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args });
+ }
+ });
+ }
+ else if(args.data.returnedZone.networktype == "Advanced") { //update VLAN in physical network(s) in advanced zone
+ var physicalNetworksHavingGuestIncludingVlan = [];
+ $(args.data.physicalNetworks).each(function(){
+ if(this.guestConfiguration != null && this.guestConfiguration.vlanRangeStart != null && this.guestConfiguration.vlanRangeStart.length > 0) {
+ physicalNetworksHavingGuestIncludingVlan.push(this);
+ }
+ });
+
+ if(physicalNetworksHavingGuestIncludingVlan.length == 0) {
+ stepFns.addCluster({
+ data: args.data
+ });
+ }
+ else {
+ var updatedCount = 0;
+ $(physicalNetworksHavingGuestIncludingVlan).each(function(){
+ var vlan;
+ if(this.guestConfiguration.vlanRangeEnd == null || this.guestConfiguration.vlanRangeEnd.length == 0)
+ vlan = this.guestConfiguration.vlanRangeStart;
+ else
+ vlan = this.guestConfiguration.vlanRangeStart + "-" + this.guestConfiguration.vlanRangeEnd;
+
+ var originalId = this.id;
+ var returnedId;
+ $(args.data.returnedPhysicalNetworks).each(function(){
+ if(this.originalId == originalId) {
+ returnedId = this.id;
+ return false; //break the loop
+ }
+ });
+
+ $.ajax({
+ url: createURL("updatePhysicalNetwork&id=" + returnedId + "&vlan=" + todb(vlan)),
+ dataType: "json",
+ success: function(json) {
+ var jobId = json.updatephysicalnetworkresponse.jobid;
+ var timerKey = "asyncJob_" + jobId;
+ $("body").everyTime(2000, timerKey, function(){
+ $.ajax({
+ url: createURL("queryAsyncJobResult&jobid=" + jobId),
+ dataType: "json",
+ success: function(json) {
+ var result = json.queryasyncjobresultresponse;
+ if(result.jobstatus == 0) {
+ return;
+ }
+ else {
+ $("body").stopTime(timerKey);
+ if(result.jobstatus == 1) {
+ updatedCount++;
+ if(updatedCount == physicalNetworksHavingGuestIncludingVlan.length) {
+ stepFns.addCluster({
+ data: args.data
+ });
+ }
+ }
+ else if(result.jobstatus == 2){
+ alert("error: " + fromdb(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('configureGuestTraffic', errorMsg, { fn: 'configureGuestTraffic', args: args });
+ }
+ });
+ });
+ }
+ });
+ });
+ }
+ }
},
-
+
addCluster: function(args) {
message('Creating cluster');
-
- var array1 = [];
- array1.push("&zoneId=" + args.data.returnedZone.id);
- array1.push("&hypervisor=" + args.data.cluster.hypervisor);
- var clusterType;
- if(args.data.cluster.hypervisor == "VMware")
- clusterType="ExternalManaged";
- else
- clusterType="CloudManaged";
- array1.push("&clustertype=" + clusterType);
+ var array1 = [];
+ array1.push("&zoneId=" + args.data.returnedZone.id);
+ array1.push("&hypervisor=" + args.data.cluster.hypervisor);
- array1.push("&podId=" + args.data.returnedPod.id);
+ var clusterType;
+ if(args.data.cluster.hypervisor == "VMware")
+ clusterType="ExternalManaged";
+ else
+ clusterType="CloudManaged";
+ array1.push("&clustertype=" + clusterType);
- var clusterName = args.data.cluster.name;
-
- if(args.data.cluster.hypervisor == "VMware") {
- array1.push("&username=" + todb(args.data.cluster.vCenterUsername));
- array1.push("&password=" + todb(args.data.cluster.vCenterPassword));
+ array1.push("&podId=" + args.data.returnedPod.id);
- var hostname = args.data.cluster.vCenterHost;
- var dcName = args.data.cluster.vCenterDatacenter;
+ var clusterName = args.data.cluster.name;
- var url;
- if(hostname.indexOf("http://") == -1)
- url = "http://" + hostname;
- else
- url = hostname;
- url += "/" + dcName + "/" + clusterName;
- array1.push("&url=" + todb(url));
+ if(args.data.cluster.hypervisor == "VMware") {
+ array1.push("&username=" + todb(args.data.cluster.vCenterUsername));
+ array1.push("&password=" + todb(args.data.cluster.vCenterPassword));
- clusterName = hostname + "/" + dcName + "/" + clusterName; //override clusterName
- }
- array1.push("&clustername=" + todb(clusterName));
+ var hostname = args.data.cluster.vCenterHost;
+ var dcName = args.data.cluster.vCenterDatacenter;
- $.ajax({
- url: createURL("addCluster" + array1.join("")),
- dataType: "json",
- async: true,
- success: function(json) {
- if(args.data.cluster.hypervisor != "VMware") {
- stepFns.addHost({
- data: $.extend(args.data, {
- returnedCluster: json.addclusterresponse.cluster[0]
- })
- });
- }
- else { //args.groupedData.cluster.hypervisor == "VMware", skip add host step
- stepFns.addPrimaryStorage({
- data: $.extend(args.data, {
- returnedCluster: json.addclusterresponse.cluster[0]
- })
- });
- }
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addCluster', errorMsg, { fn: 'addCluster', args: args });
- }
- });
+ var url;
+ if(hostname.indexOf("http://") == -1)
+ url = "http://" + hostname;
+ else
+ url = hostname;
+ url += "/" + dcName + "/" + clusterName;
+ array1.push("&url=" + todb(url));
+
+ clusterName = hostname + "/" + dcName + "/" + clusterName; //override clusterName
+ }
+ array1.push("&clustername=" + todb(clusterName));
+
+ $.ajax({
+ url: createURL("addCluster" + array1.join("")),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ if(args.data.cluster.hypervisor != "VMware") {
+ stepFns.addHost({
+ data: $.extend(args.data, {
+ returnedCluster: json.addclusterresponse.cluster[0]
+ })
+ });
+ }
+ else { //args.groupedData.cluster.hypervisor == "VMware", skip add host step
+ stepFns.addPrimaryStorage({
+ data: $.extend(args.data, {
+ returnedCluster: json.addclusterresponse.cluster[0]
+ })
+ });
+ }
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addCluster', errorMsg, { fn: 'addCluster', args: args });
+ }
+ });
},
-
+
addHost: function(args) {
message('Adding host');
-
- var array1 = [];
- array1.push("&zoneid=" + args.data.returnedZone.id);
- array1.push("&podid=" + args.data.returnedPod.id);
- array1.push("&clusterid=" + args.data.returnedCluster.id);
- array1.push("&hypervisor=" + todb(args.data.cluster.hypervisor));
- var clustertype = args.data.returnedCluster.clustertype;
- array1.push("&clustertype=" + todb(clustertype));
- array1.push("&hosttags=" + todb(args.data.host.hosttags));
- if(args.data.cluster.hypervisor == "VMware") {
- array1.push("&username=");
- array1.push("&password=");
- var hostname = args.data.host.vcenterHost;
- var url;
- if(hostname.indexOf("http://")==-1)
- url = "http://" + hostname;
- else
- url = hostname;
- array1.push("&url=" + todb(url));
- }
- else {
- array1.push("&username=" + todb(args.data.host.username));
- array1.push("&password=" + todb(args.data.host.password));
+ var array1 = [];
+ array1.push("&zoneid=" + args.data.returnedZone.id);
+ array1.push("&podid=" + args.data.returnedPod.id);
+ array1.push("&clusterid=" + args.data.returnedCluster.id);
+ array1.push("&hypervisor=" + todb(args.data.cluster.hypervisor));
+ var clustertype = args.data.returnedCluster.clustertype;
+ array1.push("&clustertype=" + todb(clustertype));
+ array1.push("&hosttags=" + todb(args.data.host.hosttags));
- var hostname = args.data.host.hostname;
+ if(args.data.cluster.hypervisor == "VMware") {
+ array1.push("&username=");
+ array1.push("&password=");
+ var hostname = args.data.host.vcenterHost;
+ var url;
+ if(hostname.indexOf("http://")==-1)
+ url = "http://" + hostname;
+ else
+ url = hostname;
+ array1.push("&url=" + todb(url));
+ }
+ else {
+ array1.push("&username=" + todb(args.data.host.username));
+ array1.push("&password=" + todb(args.data.host.password));
- var url;
- if(hostname.indexOf("http://")==-1)
- url = "http://" + hostname;
- else
- url = hostname;
- array1.push("&url="+todb(url));
+ var hostname = args.data.host.hostname;
- if (args.data.cluster.hypervisor == "BareMetal") {
- array1.push("&cpunumber=" + todb(args.data.host.baremetalCpuCores));
- array1.push("&cpuspeed=" + todb(args.data.host.baremetalCpu));
- array1.push("&memory=" + todb(args.data.host.baremetalMemory));
- array1.push("&hostmac=" + todb(args.data.host.baremetalMAC));
- }
- else if(args.data.cluster.hypervisor == "Ovm") {
- array1.push("&agentusername=" + todb(args.data.host.agentUsername));
- array1.push("&agentpassword=" + todb(args.data.host.agentPassword));
- }
- }
+ var url;
+ if(hostname.indexOf("http://")==-1)
+ url = "http://" + hostname;
+ else
+ url = hostname;
+ array1.push("&url="+todb(url));
- $.ajax({
- url: createURL("addHost" + array1.join("")),
- dataType: "json",
- success: function(json) {
- stepFns.addPrimaryStorage({
- data: $.extend(args.data, {
- returnedHost: json.addhostresponse.host[0]
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addHost', errorMsg, { fn: 'addHost', args: args });
- }
- });
+ if (args.data.cluster.hypervisor == "BareMetal") {
+ array1.push("&cpunumber=" + todb(args.data.host.baremetalCpuCores));
+ array1.push("&cpuspeed=" + todb(args.data.host.baremetalCpu));
+ array1.push("&memory=" + todb(args.data.host.baremetalMemory));
+ array1.push("&hostmac=" + todb(args.data.host.baremetalMAC));
+ }
+ else if(args.data.cluster.hypervisor == "Ovm") {
+ array1.push("&agentusername=" + todb(args.data.host.agentUsername));
+ array1.push("&agentpassword=" + todb(args.data.host.agentPassword));
+ }
+ }
+
+ $.ajax({
+ url: createURL("addHost" + array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ stepFns.addPrimaryStorage({
+ data: $.extend(args.data, {
+ returnedHost: json.addhostresponse.host[0]
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addHost', errorMsg, { fn: 'addHost', args: args });
+ }
+ });
},
-
+
addPrimaryStorage: function(args) {
- var server = args.data.primaryStorage.server;
- if(server == null || server.length == 0) {
- stepFns.addSecondaryStorage({
- data: args.data
- });
- return;
- }
-
+ var server = args.data.primaryStorage.server;
+ if(server == null || server.length == 0) {
+ stepFns.addSecondaryStorage({
+ data: args.data
+ });
+ return;
+ }
+
message('Creating primary storage');
-
- var array1 = [];
- array1.push("&zoneid=" + args.data.returnedZone.id);
- array1.push("&podId=" + args.data.returnedPod.id);
- array1.push("&clusterid=" + args.data.returnedCluster.id);
- array1.push("&name=" + todb(args.data.primaryStorage.name));
-
- var url = null;
- if (args.data.primaryStorage.protocol == "nfs") {
- //var path = trim($thisDialog.find("#add_pool_path").val());
- var path = args.data.primaryStorage.path;
- if(path.substring(0,1) != "/")
- path = "/" + path;
- url = nfsURL(server, path);
- }
- else if (args.data.primaryStorage.protocol == "PreSetup") {
- //var path = trim($thisDialog.find("#add_pool_path").val());
- var path = args.data.primaryStorage.path;
+ var array1 = [];
+ array1.push("&zoneid=" + args.data.returnedZone.id);
+ array1.push("&podId=" + args.data.returnedPod.id);
+ array1.push("&clusterid=" + args.data.returnedCluster.id);
+ array1.push("&name=" + todb(args.data.primaryStorage.name));
- if(path.substring(0,1) != "/")
- path = "/" + path;
- url = presetupURL(server, path);
- }
- else if (args.data.primaryStorage.protocol == "ocfs2") {
- //var path = trim($thisDialog.find("#add_pool_path").val());
- var path = args.data.primaryStorage.path;
+ var url = null;
+ if (args.data.primaryStorage.protocol == "nfs") {
+ //var path = trim($thisDialog.find("#add_pool_path").val());
+ var path = args.data.primaryStorage.path;
- if(path.substring(0,1) != "/")
- path = "/" + path;
- url = ocfs2URL(server, path);
- }
- else if (args.data.primaryStorage.protocol == "SharedMountPoint") {
- //var path = trim($thisDialog.find("#add_pool_path").val());
- var path = args.data.primaryStorage.path;
+ if(path.substring(0,1) != "/")
+ path = "/" + path;
+ url = nfsURL(server, path);
+ }
+ else if (args.data.primaryStorage.protocol == "PreSetup") {
+ //var path = trim($thisDialog.find("#add_pool_path").val());
+ var path = args.data.primaryStorage.path;
- if(path.substring(0,1) != "/")
- path = "/" + path;
- url = SharedMountPointURL(server, path);
- }
- else if (args.data.primaryStorage.protocol == "clvm") {
- //var vg = trim($thisDialog.find("#add_pool_clvm_vg").val());
- var vg = args.data.primaryStorage.volumegroup;
-
- if(vg.substring(0,1) != "/")
- vg = "/" + vg;
- url = clvmURL(vg);
- }
- else if (args.data.primaryStorage.protocol == "vmfs") {
- //var path = trim($thisDialog.find("#add_pool_vmfs_dc").val());
- var path = args.data.primaryStorage.vCenterDataCenter;
+ if(path.substring(0,1) != "/")
+ path = "/" + path;
+ url = presetupURL(server, path);
+ }
+ else if (args.data.primaryStorage.protocol == "ocfs2") {
+ //var path = trim($thisDialog.find("#add_pool_path").val());
+ var path = args.data.primaryStorage.path;
- if(path.substring(0,1) != "/")
- path = "/" + path;
- path += "/" + args.data.primaryStorage.vCenterDataStore;
- url = vmfsURL("dummy", path);
- }
- else {
- //var iqn = trim($thisDialog.find("#add_pool_iqn").val());
- var iqn = args.data.primaryStorage.iqn;
+ if(path.substring(0,1) != "/")
+ path = "/" + path;
+ url = ocfs2URL(server, path);
+ }
+ else if (args.data.primaryStorage.protocol == "SharedMountPoint") {
+ //var path = trim($thisDialog.find("#add_pool_path").val());
+ var path = args.data.primaryStorage.path;
- if(iqn.substring(0,1) != "/")
- iqn = "/" + iqn;
- var lun = args.data.primaryStorage.lun;
- url = iscsiURL(server, iqn, lun);
- }
- array1.push("&url=" + todb(url));
+ if(path.substring(0,1) != "/")
+ path = "/" + path;
+ url = SharedMountPointURL(server, path);
+ }
+ else if (args.data.primaryStorage.protocol == "clvm") {
+ //var vg = trim($thisDialog.find("#add_pool_clvm_vg").val());
+ var vg = args.data.primaryStorage.volumegroup;
- if(args.data.primaryStorage.storageTags != null && args.data.primaryStorage.storageTags.length > 0)
- array1.push("&tags=" + todb(args.data.primaryStorage.storageTags));
+ if(vg.substring(0,1) != "/")
+ vg = "/" + vg;
+ url = clvmURL(vg);
+ }
+ else if (args.data.primaryStorage.protocol == "vmfs") {
+ //var path = trim($thisDialog.find("#add_pool_vmfs_dc").val());
+ var path = args.data.primaryStorage.vCenterDataCenter;
- $.ajax({
- url: createURL("createStoragePool" + array1.join("")),
- dataType: "json",
- success: function(json) {
- stepFns.addSecondaryStorage({
- data: $.extend(args.data, {
- returnedPrimaryStorage: json.createstoragepoolresponse.storagepool
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addPrimaryStorage', errorMsg, { fn: 'addPrimaryStorage', args: args });
- }
- });
+ if(path.substring(0,1) != "/")
+ path = "/" + path;
+ path += "/" + args.data.primaryStorage.vCenterDataStore;
+ url = vmfsURL("dummy", path);
+ }
+ else {
+ //var iqn = trim($thisDialog.find("#add_pool_iqn").val());
+ var iqn = args.data.primaryStorage.iqn;
+
+ if(iqn.substring(0,1) != "/")
+ iqn = "/" + iqn;
+ var lun = args.data.primaryStorage.lun;
+ url = iscsiURL(server, iqn, lun);
+ }
+ array1.push("&url=" + todb(url));
+
+ if(args.data.primaryStorage.storageTags != null && args.data.primaryStorage.storageTags.length > 0)
+ array1.push("&tags=" + todb(args.data.primaryStorage.storageTags));
+
+ $.ajax({
+ url: createURL("createStoragePool" + array1.join("")),
+ dataType: "json",
+ success: function(json) {
+ stepFns.addSecondaryStorage({
+ data: $.extend(args.data, {
+ returnedPrimaryStorage: json.createstoragepoolresponse.storagepool
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addPrimaryStorage', errorMsg, { fn: 'addPrimaryStorage', args: args });
+ }
+ });
},
-
+
addSecondaryStorage: function(args) {
message('Creating secondary storage');
-
- var nfs_server = args.data.secondaryStorage.nfsServer;
- var path = args.data.secondaryStorage.path;
- var url = nfsURL(nfs_server, path);
- $.ajax({
- url: createURL("addSecondaryStorage&zoneId=" + args.data.returnedZone.id + "&url=" + todb(url)),
- dataType: "json",
- success: function(json) {
- complete({
- data: $.extend(args.data, {
- returnedSecondaryStorage: json.addsecondarystorageresponse.secondarystorage
- })
- });
- },
- error: function(XMLHttpResponse) {
- var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
- error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
- }
- });
+ var nfs_server = args.data.secondaryStorage.nfsServer;
+ var path = args.data.secondaryStorage.path;
+ var url = nfsURL(nfs_server, path);
+
+ $.ajax({
+ url: createURL("addSecondaryStorage&zoneId=" + args.data.returnedZone.id + "&url=" + todb(url)),
+ dataType: "json",
+ success: function(json) {
+ complete({
+ data: $.extend(args.data, {
+ returnedSecondaryStorage: json.addsecondarystorageresponse.secondarystorage
+ })
+ });
+ },
+ error: function(XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ error('addSecondaryStorage', errorMsg, { fn: 'addSecondaryStorage', args: args });
+ }
+ });
}
};
- var complete = function(args) {
+ var complete = function(args) {
message('Zone creation complete!');
success(args);
};
-
+
if (startFn) {
stepFns[startFn.fn]({
data: $.extend(startFn.args.data, data)
@@ -2324,15 +2464,15 @@
}
},
- enableZoneAction: function(args) {
- $.ajax({
- url: createURL("updateZone&allocationstate=Enabled&id=" + args.launchData.returnedZone.id),
- dataType: "json",
- success: function(json) {
- args.formData.returnedZone = json.updatezoneresponse.zone;
- args.response.success();
- }
- });
+ enableZoneAction: function(args) {
+ $.ajax({
+ url: createURL("updateZone&allocationstate=Enabled&id=" + args.launchData.returnedZone.id),
+ dataType: "json",
+ success: function(json) {
+ args.formData.returnedZone = json.updatezoneresponse.zone;
+ args.response.success();
+ }
+ });
}
};
}(cloudStack, jQuery));
|