You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by je...@apache.org on 2013/06/19 01:01:29 UTC
[1/2] git commit: updated refs/heads/master to a16af43
Updated Branches:
refs/heads/master 643447e78 -> a16af4380
CLOUDSTACK-2770: UI - Infrastructure menu - physical netework - network service providers - add Baremetal DHCP, Baremetal PXE.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/236dc12d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/236dc12d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/236dc12d
Branch: refs/heads/master
Commit: 236dc12d8a384be545d7823470f3a93286477b12
Parents: 643447e
Author: Jessica Wang <je...@apache.org>
Authored: Tue Jun 18 15:56:21 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Jun 18 15:56:21 2013 -0700
----------------------------------------------------------------------
ui/scripts/system.js | 646 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 645 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/236dc12d/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index df37f31..bcd555d 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -4019,6 +4019,328 @@
}
},
+ //Baremetal DHCP provider detail view
+ BaremetalDhcpProvider: {
+ type: 'detailView',
+ id: 'BaremetalDhcpProvider',
+ label: 'Baremetal DHCP Provider',
+ viewAll: { label: 'label.devices', path: '_zone.BaremetalDhcpDevices' },
+ tabs: {
+ details: {
+ title: 'label.details',
+ fields: [
+ {
+ name: { label: 'label.name' }
+ },
+ {
+ state: { label: 'label.state' }
+ }
+ ],
+ dataProvider: function(args) {
+ refreshNspData("BaremetalDhcpProvider");
+ var providerObj;
+ $(nspHardcodingArray).each(function(){
+ if(this.id == "BaremetalDhcpProvider") {
+ providerObj = this;
+ return false; //break each loop
+ }
+ });
+ args.response.success({
+ data: providerObj,
+ actionFilter: networkProviderActionFilter('BaremetalDhcpProvider')
+ });
+ }
+ }
+ },
+ actions: {
+ add: {
+ label: 'Add Baremetal DHCP Device',
+ createForm: {
+ title: 'Add Baremetal DHCP Device',
+ fields: {
+ url: {
+ label: 'label.url',
+ validation: { required: true }
+ },
+ username: {
+ label: 'label.username',
+ validation: { required: true }
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true,
+ validation: { required: true }
+ }
+ }
+ },
+ action: function(args) {
+ addBaremetalDhcpDeviceFn(args);
+ },
+ messages: {
+ notification: function(args) {
+ return 'Add Baremetal DHCP Device';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ },
+ enable: {
+ label: 'label.enable.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id + "&state=Enabled"),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.updatenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ }
+ }
+ );
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.enable.provider';
+ },
+ notification: function() {
+ return 'label.enable.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ },
+ disable: {
+ label: 'label.disable.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id + "&state=Disabled"),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.updatenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ }
+ }
+ );
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.disable.provider';
+ },
+ notification: function() {
+ return 'label.disable.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ },
+ destroy: {
+ label: 'label.shutdown.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("deleteNetworkServiceProvider&id=" + nspMap["BaremetalDhcpProvider"].id),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.deletenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid
+ }
+ }
+ );
+
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.shutdown.provider';
+ },
+ notification: function(args) {
+ return 'label.shutdown.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ }
+ }
+ },
+
+ //Baremetal PXE provider detail view
+ BaremetalPxeProvider: {
+ type: 'detailView',
+ id: 'BaremetalPxeProvider',
+ label: 'Baremetal PXE Provider',
+ viewAll: { label: 'label.devices', path: '_zone.BaremetalPxeDevices' },
+ tabs: {
+ details: {
+ title: 'label.details',
+ fields: [
+ {
+ name: { label: 'label.name' }
+ },
+ {
+ state: { label: 'label.state' }
+ }
+ ],
+ dataProvider: function(args) {
+ refreshNspData("BaremetalPxeProvider");
+ var providerObj;
+ $(nspHardcodingArray).each(function(){
+ if(this.id == "BaremetalPxeProvider") {
+ providerObj = this;
+ return false; //break each loop
+ }
+ });
+ args.response.success({
+ data: providerObj,
+ actionFilter: networkProviderActionFilter('BaremetalPxeProvider')
+ });
+ }
+ }
+ },
+ actions: {
+ add: {
+ label: 'Add Baremetal PXE Device',
+ createForm: {
+ title: 'Add Baremetal PXE Device',
+ fields: {
+ url: {
+ label: 'label.url',
+ validation: { required: true }
+ },
+ username: {
+ label: 'label.username',
+ validation: { required: true }
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true,
+ validation: { required: true }
+ }
+ }
+ },
+ action: function(args) {
+ addBaremetalPxeDeviceFn(args);
+ },
+ messages: {
+ notification: function(args) {
+ return 'Add Baremetal PXE Device';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ },
+ enable: {
+ label: 'label.enable.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id + "&state=Enabled"),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.updatenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ }
+ }
+ );
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.enable.provider';
+ },
+ notification: function() {
+ return 'label.enable.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ },
+ disable: {
+ label: 'label.disable.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("updateNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id + "&state=Disabled"),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.updatenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ }
+ }
+ );
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.disable.provider';
+ },
+ notification: function() {
+ return 'label.disable.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ },
+ destroy: {
+ label: 'label.shutdown.provider',
+ action: function(args) {
+ $.ajax({
+ url: createURL("deleteNetworkServiceProvider&id=" + nspMap["BaremetalPxeProvider"].id),
+ dataType: "json",
+ success: function(json) {
+ var jid = json.deletenetworkserviceproviderresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid
+ }
+ }
+ );
+
+ $(window).trigger('cloudStack.fullRefresh');
+ }
+ });
+ },
+ messages: {
+ confirm: function(args) {
+ return 'message.confirm.shutdown.provider';
+ },
+ notification: function(args) {
+ return 'label.shutdown.provider';
+ }
+ },
+ notification: { poll: pollAsyncJobResult }
+ }
+ }
+ },
+
//f5 provider detail view
f5: {
type: 'detailView',
@@ -7925,6 +8247,134 @@
}
},
+ // Baremetal DHCP devices listView
+ BaremetalDhcpDevices: {
+ id: 'BaremetalDhcpDevices',
+ title: 'Baremetal DHCP Devices',
+ listView: {
+ id: 'BaremetalDhcpDevices',
+ fields: {
+ url: { label: 'label.url' }
+ },
+ actions: {
+ add: {
+ label: 'Add Baremetal DHCP Device',
+ createForm: {
+ title: 'Add Baremetal DHCP Device',
+ fields: {
+ url: {
+ label: 'label.url',
+ validation: { required: true }
+ },
+ username: {
+ label: 'label.username',
+ validation: { required: true }
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true,
+ validation: { required: true }
+ }
+ }
+ },
+ action: function(args) {
+ addBaremetalDhcpDeviceFn(args);
+ },
+ messages: {
+ notification: function(args) {
+ return 'Add Baremetal DHCP Device';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ },
+ },
+ dataProvider: function(args) {
+ $.ajax({
+ url: createURL('listBaremetalDhcp'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ page: args.page,
+ pageSize: pageSize
+ },
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listexternaldhcpresponse.baremetaldhcp;
+ args.response.success({data: items});
+ }
+ });
+ }
+ }
+ },
+
+ // Baremetal PXE devices listView
+ BaremetalPxeDevices: {
+ id: 'BaremetalPxeDevices',
+ title: 'Baremetal PXE Devices',
+ listView: {
+ id: 'BaremetalPxeDevices',
+ fields: {
+ url: { label: 'label.url' }
+ },
+ actions: {
+ add: {
+ label: 'Add Baremetal PXE Device',
+ createForm: {
+ title: 'Add Baremetal PXE Device',
+ fields: {
+ url: {
+ label: 'label.url',
+ validation: { required: true }
+ },
+ username: {
+ label: 'label.username',
+ validation: { required: true }
+ },
+ password: {
+ label: 'label.password',
+ isPassword: true,
+ validation: { required: true }
+ },
+ tftpdir: {
+ label: 'Tftp root directory',
+ validation: { required: true }
+ }
+ }
+ },
+ action: function(args) {
+ addBaremetalPxeDeviceFn(args);
+ },
+ messages: {
+ notification: function(args) {
+ return 'Add Baremetal PXE Device';
+ }
+ },
+ notification: {
+ poll: pollAsyncJobResult
+ }
+ },
+ },
+ dataProvider: function(args) {
+ $.ajax({
+ url: createURL('listBaremetalPxePingServer'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ page: args.page,
+ pageSize: pageSize
+ },
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var items = json.listpingpxeserverresponse.pingpxeserver;
+ args.response.success({data: items});
+ }
+ });
+ }
+ }
+ },
+
// F5 devices listView
f5Devices: {
id: 'f5Devices',
@@ -12675,6 +13125,184 @@
}
};
+ function addBaremetalDhcpDeviceFn(args) {
+ if(nspMap["BaremetalDhcpProvider"] == null) {
+ $.ajax({
+ url: createURL("addNetworkServiceProvider&name=BaremetalDhcpProvider&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var jobId = json.addnetworkserviceproviderresponse.jobid;
+ var addBaremetalDhcpProviderIntervalID = setInterval(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 {
+ clearInterval(addBaremetalDhcpProviderIntervalID);
+ if (result.jobstatus == 1) {
+ nspMap["BaremetalDhcpProvider"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+
+ $.ajax({
+ url: createURL('addBaremetalDhcp'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ dhcpservertype: 'DHCPD',
+ url: args.data.url,
+ username: args.data.username,
+ password: args.data.password
+ },
+ success: function(json) {
+ var jid = json.addexternaldhcpresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ var item = json.queryasyncjobresultresponse.jobresult.baremetaldhcp;
+ return item;
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert(_s(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ alert(parseXMLHttpResponse(XMLHttpResponse));
+ }
+ });
+ }, g_queryAsyncJobResultInterval);
+ }
+ });
+ }
+ else {
+ $.ajax({
+ url: createURL('addBaremetalDhcp'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ dhcpservertype: 'DHCPD',
+ url: args.data.url,
+ username: args.data.username,
+ password: args.data.password
+ },
+ success: function(json) {
+ var jid = json.addexternaldhcpresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ var item = json.queryasyncjobresultresponse.jobresult.baremetaldhcp;
+ return item;
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+ }
+
+ function addBaremetalPxeDeviceFn(args) {
+ if(nspMap["BaremetalPxeProvider"] == null) {
+ $.ajax({
+ url: createURL("addNetworkServiceProvider&name=BaremetalPxeProvider&physicalnetworkid=" + selectedPhysicalNetworkObj.id),
+ dataType: "json",
+ async: true,
+ success: function(json) {
+ var jobId = json.addnetworkserviceproviderresponse.jobid;
+ var addBaremetalPxeProviderIntervalID = setInterval(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 {
+ clearInterval(addBaremetalPxeProviderIntervalID);
+ if (result.jobstatus == 1) {
+ nspMap["BaremetalPxeProvider"] = json.queryasyncjobresultresponse.jobresult.networkserviceprovider;
+
+ $.ajax({
+ url: createURL('addBaremetalPxeKickStartServer'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ pxeservertype: 'KICK_START',
+ url: args.data.url,
+ username: args.data.username,
+ password: args.data.password,
+ tftpdir: args.data.tftpdir
+ },
+ success: function(json) {
+ var jid = json.addexternalpxeresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ var item = json.queryasyncjobresultresponse.jobresult.externalpxe;
+ return item;
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+ else if (result.jobstatus == 2) {
+ alert(_s(result.jobresult.errortext));
+ }
+ }
+ },
+ error: function(XMLHttpResponse) {
+ alert(parseXMLHttpResponse(XMLHttpResponse));
+ }
+ });
+ }, g_queryAsyncJobResultInterval);
+ }
+ });
+ }
+ else {
+ $.ajax({
+ url: createURL('addBaremetalPxeKickStartServer'),
+ data: {
+ physicalnetworkid: selectedPhysicalNetworkObj.id,
+ pxeservertype: 'KICK_START',
+ url: args.data.url,
+ username: args.data.username,
+ password: args.data.password,
+ tftpdir: args.data.tftpdir
+ },
+ success: function(json) {
+ var jid = json.addexternalpxeresponse.jobid;
+ args.response.success(
+ {_custom:
+ {
+ jobId: jid,
+ getUpdatedItem: function(json) {
+ var item = json.queryasyncjobresultresponse.jobresult.externalpxe;
+ return item;
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+ }
+
function addExternalLoadBalancer(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
var array1 = [];
array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
@@ -13626,6 +14254,12 @@
case "MidoNet":
nspMap["midoNet"] = items[i];
break;
+ case "BaremetalDhcpProvider":
+ nspMap["BaremetalDhcpProvider"] = items[i];
+ break;
+ case "BaremetalPxeProvider":
+ nspMap["BaremetalPxeProvider"] = items[i];
+ break;
case "F5BigIp":
nspMap["f5"] = items[i];
break;
@@ -13667,7 +14301,17 @@
id: 'bigswitchVns',
name: 'BigSwitch Vns',
state: nspMap.bigswitchVns ? nspMap.bigswitchVns.state : 'Disabled'
- }
+ },
+ {
+ id: 'BaremetalDhcpProvider',
+ name: 'Baremetal DHCP',
+ state: nspMap.BaremetalDhcpProvider ? nspMap.BaremetalDhcpProvider.state : 'Disabled'
+ },
+ {
+ id: 'BaremetalPxeProvider',
+ name: 'Baremetal PXE',
+ state: nspMap.BaremetalPxeProvider ? nspMap.BaremetalPxeProvider.state : 'Disabled'
+ }
];
$(window).trigger('cloudStack.system.serviceProviders.makeHarcodedArray', {
[2/2] git commit: updated refs/heads/master to a16af43
Posted by je...@apache.org.
CLOUDSTACK-2770: UI - Infrastructure menu - physical netework - network service providers - Baremetal PXE - Add Baremetal PXE Device dialog - add Tftp Root Diectory field.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a16af438
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a16af438
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a16af438
Branch: refs/heads/master
Commit: a16af4380b5a5e9c80c9d65c86e36d7184b4d9fa
Parents: 236dc12
Author: Jessica Wang <je...@apache.org>
Authored: Tue Jun 18 15:57:11 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Jun 18 15:57:11 2013 -0700
----------------------------------------------------------------------
ui/scripts/system.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a16af438/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index bcd555d..452249a 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -4231,7 +4231,11 @@
label: 'label.password',
isPassword: true,
validation: { required: true }
- }
+ },
+ tftpdir: {
+ label: 'Tftp root directory',
+ validation: { required: true }
+ }
}
},
action: function(args) {