$(document).ready(function(){
// Include utility scripts
});
/**
* Constructor
*
* @return Nothing
*/
var hmcPlugin = function() {
};
/**
* Load node inventory
*
* @param data
* Data from HTTP request
* @return Nothing
*/
hmcPlugin.prototype.loadInventory = function(data) {
var args = data.msg.split(',');
// Get tab ID
var tabId = args[0].replace('out=', '');
// Get node
var node = args[1].replace('node=', '');
// Get node inventory
var inv = data.rsp;
// Remove loader
var loaderId = node + 'TabLoader';
$('#' + loaderId).remove();
// Create division to hold inventory
var invDivId = node + 'Inventory';
var invDiv = $('
');
var fieldSet = $('');
var legend = $('');
fieldSet.append(legend);
var oList = $('');
var item, label, input, args;
// Loop through each property
for ( var k = 0; k < inv.length; k++) {
// Create a list item for each property
item = $('');
item.append(inv[k].replace(node + ': ', ''));
oList.append(item);
}
// Append to inventory form
fieldSet.append(oList);
invDiv.append(fieldSet);
$('#' + tabId).append(invDiv);
};
/**
* Load clone page
*
* @param node
* Source node to clone
* @return Nothing
*/
hmcPlugin.prototype.loadClonePage = function(node) {
};
/**
* Load provision page
*
* @param tabId
* The provision tab ID
* @return Nothing
*/
hmcPlugin.prototype.loadProvisionPage = function(tabId) {
var errMsg;
// Get the OS image names
$.ajax( {
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'tabdump',
tgt : '',
args : 'osimage',
msg : ''
},
success : setOSImageCookies
});
// Get groups
$.ajax( {
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'extnoderange',
tgt : '/.*',
args : 'subgroups',
msg : ''
},
success : setGroupsCookies
});
// Generate new tab ID
var inst = tabId.replace('hmcProvisionTab', '');
// Open new tab
// Create provision form
var provForm = $('');
// Create status bar
var barId = 'hmcProvisionStatBar' + inst;
var statBar = createStatusBar(barId);
statBar.hide();
provForm.append(statBar);
// Create loader
var loader = createLoader('hmcProvisionLoader' + inst);
loader.hide();
statBar.append(loader);
// Create info bar
var infoBar = createInfoBar('Provision a HMC node');
provForm.append(infoBar);
// Append to provision tab
$('#' + tabId).append(provForm);
// Node name
var nodeName = $('');
provForm.append(nodeName);
// Group
var group = $('');
var groupLabel = $('');
var groupInput = $('');
// Get the groups on-focus
groupInput.focus(function() {
var groupNames = $.cookie('Groups');
// If there are groups, turn on auto-complete
if (groupNames) {
$(this).autocomplete(groupNames.split(','));
}
});
group.append(groupLabel);
group.append(groupInput);
provForm.append(group);
// Boot method (boot, install, stat, iscsiboot, netboot, statelite)
var method = $('');
var methodLabel = $('');
var methodSelect = $('');
methodSelect.append('');
methodSelect.append('');
methodSelect.append('');
methodSelect.append('');
methodSelect.append('');
method.append(methodLabel);
method.append(methodSelect);
provForm.append(method);
// Boot type (zvm, pxe, yaboot)
var type = $('');
var typeLabel = $('');
var typeSelect = $('');
typeSelect.append('');
typeSelect.append('');
typeSelect.append('');
type.append(typeLabel);
type.append(typeSelect);
provForm.append(type);
// Operating system
var os = $('');
var osLabel = $('');
var osInput = $('');
// Get the OS versions on-focus
var tmp;
osInput.focus(function() {
tmp = $.cookie('OSVers');
// If there are any, turn on auto-complete
if (tmp) {
$(this).autocomplete(tmp.split(','));
}
});
os.append(osLabel);
os.append(osInput);
provForm.append(os);
// Architecture
var arch = $('');
var archLabel = $('');
var archInput = $('');
// Get the OS architectures on-focus
archInput.focus(function() {
tmp = $.cookie('OSArchs');
// If there are any, turn on auto-complete
if (tmp) {
$(this).autocomplete(tmp.split(','));
}
});
arch.append(archLabel);
arch.append(archInput);
provForm.append(arch);
// Profiles
var profile = $('');
var profileLabel = $('');
var profileInput = $('');
// Get the profiles on-focus
profileInput.focus(function() {
tmp = $.cookie('Profiles');
// If there are any, turn on auto-complete
if (tmp) {
$(this).autocomplete(tmp.split(','));
}
});
profile.append(profileLabel);
profile.append(profileInput);
provForm.append(profile);
/**
* Provision
*/
var provisionBtn = createButton('Provision');
provisionBtn.bind('click', function(event) {
// Insert provision code here
});
provForm.append(provisionBtn);
};
/**
* Load resources
*
* @return Nothing
*/
hmcPlugin.prototype.loadResources = function() {
};