/** * Load netboot page * * @param tgtNodes * Targets to run rnetboot against * @return Nothing */ function loadNetbootPage(tgtNodes) { // Get nodes tab var tab = getNodesTab(); // Generate new tab ID var inst = 0; var newTabId = 'netbootTab' + inst; while ($('#' + newTabId).length) { // If one already exists, generate another one inst = inst + 1; newTabId = 'netbootTab' + inst; } // Create netboot form var netbootForm = $('
'); // Create status bar var barId = 'netbootStatusBar' + inst; var statusBar = createStatusBar(barId); statusBar.hide(); netbootForm.append(statusBar); // Create loader var loader = createLoader('netbootLoader'); statusBar.append(loader); // Create info bar var infoBar = createInfoBar('Cause the range of nodes to boot to network'); netbootForm.append(infoBar); // Create target node or group input var target = $('
'); netbootForm.append(target); // Create options var optsDIV = $('
'); var optsLabel = $(''); var optsList = $(''); var opt = $('
  • '); optsList.append(opt); optsDIV.append(optsLabel); optsDIV.append(optsList); netbootForm.append(optsDIV); // Create boot order checkbox var bootOrderChkBox = $(''); opt.append(bootOrderChkBox); opt.append('Set the boot device order'); // Create boot order input var bootOrder = $('
  • '); bootOrder.hide(); optsList.append(bootOrder); // Create force reboot checkbox optsList.append('
  • Force reboot
  • '); // Create force shutdown checkbox optsList.append('
  • Force immediate shutdown of the partition
  • '); // Create iscsi dump checkbox optsList.append('
  • Do a iscsi dump on AIX
  • '); // Show boot order when checkbox is checked bootOrderChkBox.bind('click', function(event) { if ($(this).is(':checked')) { bootOrder.show(); } else { bootOrder.hide(); } }); // Determine plugin var tmp = tgtNodes.split(','); for ( var i = 0; i < tmp.length; i++) { var mgt = getNodeMgt(tmp[i]); // If it is zvm if (mgt == 'zvm') { // Add IPL input netbootForm.append('
    '); break; } } /** * Ok */ var okBtn = createButton('Ok'); okBtn.bind('click', function(event) { // Check inputs var ready = true; var inputs = $("#" + newTabId + " input[type='text']:visible"); for ( var i = 0; i < inputs.length; i++) { if (!inputs.eq(i).val()) { inputs.eq(i).css('border', 'solid #FF0000 1px'); ready = false; } else { inputs.eq(i).css('border', 'solid #BDBDBD 1px'); } } // Generate arguments var chkBoxes = $("#" + newTabId + " input[type='checkbox']:checked"); var optStr = ''; var opt; for ( var i = 0; i < chkBoxes.length; i++) { opt = chkBoxes.eq(i).attr('name'); optStr += '-' + opt; // If it is the boot order if (opt == 's') { // Get the boot order optStr += ';' + $('#' + newTabId + ' input[name=bootOrder]').val(); } // Append ; to end of string if (i < (chkBoxes.length - 1)) { optStr += ';'; } } // If no inputs are empty if (ready) { // Get nodes var tgts = $('#' + newTabId + ' input[name=target]').val(); // Get IPL address var ipl = $('#' + newTabId + ' input[name=ipl]'); if (ipl) { optStr += 'ipl=' + ipl.val(); } // Disable Ok button $(this).unbind(event); $(this).css( { 'background-color' : '#F2F2F2', 'color' : '#424242' }); /** * (1) Boot to network */ $.ajax( { url : 'lib/cmd.php', dataType : 'json', data : { cmd : 'rnetboot', tgt : tgts, args : optStr, msg : 'out=' + barId + ';cmd=rnetboot;tgt=' + tgts }, success : updateStatusBar }); // Show status bar statusBar.show(); } else { alert('You are missing some values'); } }); netbootForm.append(okBtn); // Append to discover tab tab.add(newTabId, 'Netboot', netbootForm); // Select new tab tab.select(newTabId); }