mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-04 05:12:30 +00:00 
			
		
		
		
	fix bugs found in BBC cluster testing on nodes page and discovery page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11390 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		@@ -786,6 +786,19 @@ table a:hover {
 | 
			
		||||
.bladeInsertDiv{
 | 
			
		||||
	background: url(../images/nodes/blade.jpg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.xnodeDiv{
 | 
			
		||||
	font-size: 12px;
 | 
			
		||||
	height: 21px;
 | 
			
		||||
	line-height: 21px;
 | 
			
		||||
	width: 140px;
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	background: url(../images/nodes/2ufsp.jpg);
 | 
			
		||||
	border-style: solid;
 | 
			
		||||
	border-width: 1px;
 | 
			
		||||
	cursor: pointer;
 | 
			
		||||
	display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
/*--------------- Discovery section ---------------*/
 | 
			
		||||
.discoverstep {
 | 
			
		||||
	width: 960px;
 | 
			
		||||
 
 | 
			
		||||
@@ -38,14 +38,7 @@ function createDiscoverButtons(){
 | 
			
		||||
	var buttonDiv = $('<div style="text-align:center;padding:20px 0px 10px 0px;"></div>');
 | 
			
		||||
	var backButton = createBackButton();
 | 
			
		||||
	var nextButton = createNextButton();
 | 
			
		||||
	var cancelButton = createButton('Cancel');
 | 
			
		||||
	cancelButton.bind('click', function(){
 | 
			
		||||
		$('#discoverTab').empty();
 | 
			
		||||
		for (var name in discoverEnv){
 | 
			
		||||
			removeDiscoverEnv(name);
 | 
			
		||||
		}
 | 
			
		||||
		loadDiscoverPage();
 | 
			
		||||
	});
 | 
			
		||||
	var cancelButton = createCancelButton();
 | 
			
		||||
	
 | 
			
		||||
	if (backButton){
 | 
			
		||||
		buttonDiv.append(backButton);
 | 
			
		||||
@@ -54,11 +47,35 @@ function createDiscoverButtons(){
 | 
			
		||||
	if (nextButton){
 | 
			
		||||
		buttonDiv.append(nextButton);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	if (cancelButton){
 | 
			
		||||
		buttonDiv.append(cancelButton);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	buttonDiv.append(cancelButton);
 | 
			
		||||
	$('#discoverContentDiv').append(buttonDiv);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createCancelButton(){
 | 
			
		||||
	if (0 == currentStep){
 | 
			
		||||
		return undefined;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	if ((steps.length - 1) == currentStep){
 | 
			
		||||
		return undefined;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	var cancelbutton = createButton('Cancel');
 | 
			
		||||
	cancelbutton.bind('click', function(){
 | 
			
		||||
		$('#discoverTab').empty();
 | 
			
		||||
		for (var name in discoverEnv){
 | 
			
		||||
			removeDiscoverEnv(name);
 | 
			
		||||
		}
 | 
			
		||||
		loadDiscoverPage();
 | 
			
		||||
	});
 | 
			
		||||
	
 | 
			
		||||
	return cancelbutton;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * create the next button base on the currentStep, the last step does not need this button
 | 
			
		||||
 * 
 | 
			
		||||
 
 | 
			
		||||
@@ -1005,10 +1005,10 @@ function powerInitDiscoverFrames(){
 | 
			
		||||
    if (getDiscoverEnv('framemtmsmap')){
 | 
			
		||||
        $('#framedisc div').html('Mapping the frame name and mtms which discovered by lsslp.<br\>' + 
 | 
			
		||||
                             'Select the frame name, then select the mtms.');
 | 
			
		||||
        var mapArray = getDiscoverEnv('framemtmsmap').split(':');
 | 
			
		||||
        var mapArray = getDiscoverEnv('framemtmsmap').split(';');
 | 
			
		||||
        for(var i in mapArray){
 | 
			
		||||
            var tempArray = mapArray[i].split(',');
 | 
			
		||||
            showMap(tempArray[0], tempArray[1] + '-' + tempArray[2]);
 | 
			
		||||
            showMap(tempArray[0], tempArray[1]);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        createDiscoverButtons();
 | 
			
		||||
@@ -1137,11 +1137,12 @@ function checkFrameMtms(operType){
 | 
			
		||||
        var fname = $(this).children().eq(0).html();
 | 
			
		||||
        var mtms = $(this).children().eq(2).html();
 | 
			
		||||
        var pos = mtms.lastIndexOf('-');
 | 
			
		||||
        var startpos = mtms.indexOf(':');
 | 
			
		||||
 | 
			
		||||
        maps += (fname + ',' + mtms.substring(0, pos) + ',' + mtms.substring(pos + 1) + ':');
 | 
			
		||||
        maps += (fname + ',' + mtms + ';');
 | 
			
		||||
        vpdFileCon += fname + ':\n';
 | 
			
		||||
        vpdFileCon += '  objtype=node\n  serial=' + mtms.substring(pos + 1) + '\n';
 | 
			
		||||
        vpdFileCon += '  mtm=' + mtms.substring(0, pos) + '\n  side=A\n';
 | 
			
		||||
        vpdFileCon += '  mtm=' + mtms.substring(startpos + 1, pos) + '\n  side=A\n';
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    maps = maps.substr(0, maps.length - 1);
 | 
			
		||||
@@ -1318,7 +1319,9 @@ function powerInitUpdateDefinition(operType){
 | 
			
		||||
    showStr += '<li id="frameLine"><span class="ui-icon ' + iconClass + '"></span>Update Frames into xCAT database.</li>';
 | 
			
		||||
    showStr += '<li id="hmcLine1"><span class="ui-icon ' + iconClass + '"></span>Discover HMCs.</li>';
 | 
			
		||||
    showStr += '<li id="hmcLine2"><span class="ui-icon ' + iconClass + '"></span>Update HMCs into xCAT database.</li>';
 | 
			
		||||
    showStr += '<li id="frameLine2"><span class="ui-icon ' + iconClass + '"></span>Make hardware connections for Frames.</li>';
 | 
			
		||||
    showStr += '<li id="cecLine"><span class="ui-icon ' + iconClass + '"></span>Discover CECs and update into xCAT database.</li>';
 | 
			
		||||
    showStr += '<li id="cecLine2"><span class="ui-icon ' + iconClass + '"></span>Make hardware connections for CECs.</li>';
 | 
			
		||||
    showStr += '<li id="dhcpLine"><span class="ui-icon ' + iconClass + '"></span>Configured DHCP.</li>';
 | 
			
		||||
    showStr += '</ul></div>';
 | 
			
		||||
    
 | 
			
		||||
@@ -1405,11 +1408,12 @@ function lsslpWriteHMC(){
 | 
			
		||||
            //create the hmc and mtms pair string
 | 
			
		||||
            for (var i in hmcArray){
 | 
			
		||||
                var tPos = mtmsArray[i].lastIndexOf('-');
 | 
			
		||||
                var startPos= mtmsArray[i].indexOf(':');
 | 
			
		||||
                if ('' == tempPar){
 | 
			
		||||
                    tempPar += hmcArray[i] + ',' + mtmsArray[i].substring(0, tPos) + ',' +mtmsArray[i].substring(tPos + 1);
 | 
			
		||||
                    tempPar += hmcArray[i] + ',' + mtmsArray[i].substring(startPos + 1, tPos) + ',' +mtmsArray[i].substring(tPos + 1);
 | 
			
		||||
                }
 | 
			
		||||
                else{
 | 
			
		||||
                    tempPar += ':' + hmcArray[i] + ',' + mtmsArray[i].substring(0, tPos) + ',' +mtmsArray[i].substring(tPos + 1);
 | 
			
		||||
                    tempPar += ':' + hmcArray[i] + ',' + mtmsArray[i].substring(startPos + 1, tPos) + ',' +mtmsArray[i].substring(tPos + 1);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
@@ -1439,7 +1443,7 @@ function lsslpWriteHMC(){
 | 
			
		||||
                            var tempSpan = $('#hmcLine2').find('span');
 | 
			
		||||
                            tempSpan.removeClass('ui-icon-gear');
 | 
			
		||||
                            tempSpan.addClass('ui-icon-check');
 | 
			
		||||
                            lsslpWriteCec();
 | 
			
		||||
                            mkhwconnFrame();
 | 
			
		||||
                        }
 | 
			
		||||
                });
 | 
			
		||||
                }
 | 
			
		||||
@@ -1448,6 +1452,34 @@ function lsslpWriteHMC(){
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Step 8: make the hardware connection for frames.
 | 
			
		||||
 *          
 | 
			
		||||
 * @param 
 | 
			
		||||
 * 
 | 
			
		||||
 * @return
 | 
			
		||||
 */
 | 
			
		||||
function mkhwconnFrame(){
 | 
			
		||||
	$('#frameLine2').append(createLoader());
 | 
			
		||||
	$.ajax({
 | 
			
		||||
		url : 'lib/cmd.php',
 | 
			
		||||
        dataType : 'json',
 | 
			
		||||
        data : {
 | 
			
		||||
            cmd : 'mkhwconn',
 | 
			
		||||
            tgt : 'frame',
 | 
			
		||||
            args : '-t',
 | 
			
		||||
            msg : ''
 | 
			
		||||
        },
 | 
			
		||||
        success: function(){
 | 
			
		||||
            $('#frameLine2 img').remove();
 | 
			
		||||
            var tempSpan = $('#frameLine2').find('span');
 | 
			
		||||
            tempSpan.removeClass('ui-icon-gear');
 | 
			
		||||
            tempSpan.addClass('ui-icon-check');
 | 
			
		||||
            lsslpWriteCec();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Step 8: write all the lsslp -s cec info into database
 | 
			
		||||
 *          
 | 
			
		||||
@@ -1471,6 +1503,34 @@ function lsslpWriteCec(){
 | 
			
		||||
            var tempSpan = $('#cecLine').find('span');
 | 
			
		||||
            tempSpan.removeClass('ui-icon-gear');
 | 
			
		||||
            tempSpan.addClass('ui-icon-check');
 | 
			
		||||
            mkhwconnCec();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Step 8: make hardware connection for cecs
 | 
			
		||||
 *          
 | 
			
		||||
 * @param 
 | 
			
		||||
 * 
 | 
			
		||||
 * @return
 | 
			
		||||
 */
 | 
			
		||||
function mkhwconnCec(){
 | 
			
		||||
    $('#cecLine2').append(createLoader());
 | 
			
		||||
    $.ajax({
 | 
			
		||||
        url : 'lib/cmd.php',
 | 
			
		||||
        dataType : 'json',
 | 
			
		||||
        data : {
 | 
			
		||||
            cmd : 'mkhwconn',
 | 
			
		||||
            tgt : 'cec',
 | 
			
		||||
            args : '-t',
 | 
			
		||||
            msg : ''
 | 
			
		||||
        },
 | 
			
		||||
        success: function(){
 | 
			
		||||
            $('#cecLine2 img').remove();
 | 
			
		||||
            var tempSpan = $('#cecLine2').find('span');
 | 
			
		||||
            tempSpan.removeClass('ui-icon-gear');
 | 
			
		||||
            tempSpan.addClass('ui-icon-check');
 | 
			
		||||
            configDHCP();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -1,39 +1,39 @@
 | 
			
		||||
var hardwareInfo = {
 | 
			
		||||
	'7037-A50' : [ 'P5-185', '5' ],
 | 
			
		||||
	'9115-505' : [ 'P5-505', '1' ],
 | 
			
		||||
	'9110-510' : [ 'P5-510', '2' ],
 | 
			
		||||
	'9110-51A' : [ 'P5-510', '2' ],
 | 
			
		||||
	'9111-520' : [ 'P5-520', '4' ],
 | 
			
		||||
	'913A-52A' : [ 'P5-52A', '4' ],
 | 
			
		||||
	'9113-550' : [ 'P5-550', '4' ],
 | 
			
		||||
	'9133-55A' : [ 'P5-55A', '4' ],
 | 
			
		||||
	'9116-561' : [ 'P5-560Q', '4' ],
 | 
			
		||||
	'9117-570' : [ 'P5-570', '4' ],
 | 
			
		||||
	'9118-575' : [ 'P5-575', '42' ],
 | 
			
		||||
	'9119-590' : [ 'P5-590', '42' ],
 | 
			
		||||
	'9119-595' : [ 'P5-595', '42' ],
 | 
			
		||||
	'7037-A50' : [ 'P5-185', 5 ],
 | 
			
		||||
	'9115-505' : [ 'P5-505', 1 ],
 | 
			
		||||
	'9110-510' : [ 'P5-510', 2 ],
 | 
			
		||||
	'9110-51A' : [ 'P5-510', 2 ],
 | 
			
		||||
	'9111-520' : [ 'P5-520', 4 ],
 | 
			
		||||
	'913A-52A' : [ 'P5-52A', 4 ],
 | 
			
		||||
	'9113-550' : [ 'P5-550', 4 ],
 | 
			
		||||
	'9133-55A' : [ 'P5-55A', 4 ],
 | 
			
		||||
	'9116-561' : [ 'P5-560Q', 4 ],
 | 
			
		||||
	'9117-570' : [ 'P5-570', 4 ],
 | 
			
		||||
	'9118-575' : [ 'P5-575', 42 ],
 | 
			
		||||
	'9119-590' : [ 'P5-590', 42 ],
 | 
			
		||||
	'9119-595' : [ 'P5-595', 42 ],
 | 
			
		||||
 | 
			
		||||
	//P6
 | 
			
		||||
	'8203-E4A' : [ 'P6-520', '4' ],
 | 
			
		||||
	'9407-M15' : [ 'P6-520', '4' ],
 | 
			
		||||
	'9408-M25' : [ 'P6-520', '4' ],
 | 
			
		||||
	'8204-E8A' : [ 'P6-550', '4' ],
 | 
			
		||||
	'9409-M50' : [ 'P6-550', '4' ],
 | 
			
		||||
	'8234-EMA' : [ 'P6-560', '4' ],
 | 
			
		||||
	'9117-MMA' : [ 'P6-570', '4' ],
 | 
			
		||||
	'9125-F2A' : [ 'P6-575', '42' ],
 | 
			
		||||
	'9119-FHA' : [ 'P6-595', '42' ],
 | 
			
		||||
	'8203-E4A' : [ 'P6-520', 4 ],
 | 
			
		||||
	'9407-M15' : [ 'P6-520', 4 ],
 | 
			
		||||
	'9408-M25' : [ 'P6-520', 4 ],
 | 
			
		||||
	'8204-E8A' : [ 'P6-550', 4 ],
 | 
			
		||||
	'9409-M50' : [ 'P6-550', 4 ],
 | 
			
		||||
	'8234-EMA' : [ 'P6-560', 4 ],
 | 
			
		||||
	'9117-MMA' : [ 'P6-570', 4 ],
 | 
			
		||||
	'9125-F2A' : [ 'P6-575', 42 ],
 | 
			
		||||
	'9119-FHA' : [ 'P6-595', 42 ],
 | 
			
		||||
 | 
			
		||||
	//P7
 | 
			
		||||
	'8202-E4B' : [ 'P7-720', '4' ],
 | 
			
		||||
	'8205-E6B' : [ 'P7-740', '4' ],
 | 
			
		||||
	'8231-E2B' : [ 'P7-710/730', '2' ],
 | 
			
		||||
	'8233-E8B' : [ 'P7-750', '4' ],
 | 
			
		||||
	'8236-E8C' : [ 'P7-755', '4' ],
 | 
			
		||||
	'9117-MMB' : [ 'P7-770', '4' ],
 | 
			
		||||
	'9119-FHB' : [ 'P7-795', '4' ],
 | 
			
		||||
	'9179-MHB' : [ 'P7-780', '42' ],
 | 
			
		||||
	'8231-E2C' : [ 'P7 HE', '4' ],
 | 
			
		||||
	'9125-F2C' : [ 'Power 775', '2'], 
 | 
			
		||||
	'78AC-100' : [ 'Power 775', '2'] //fsp
 | 
			
		||||
	'8202-E4B' : [ 'P7-720', 4 ],
 | 
			
		||||
	'8205-E6B' : [ 'P7-740', 4 ],
 | 
			
		||||
	'8231-E2B' : [ 'P7-710/730', 2 ],
 | 
			
		||||
	'8233-E8B' : [ 'P7-750', 4 ],
 | 
			
		||||
	'8236-E8C' : [ 'P7-755', 4 ],
 | 
			
		||||
	'9117-MMB' : [ 'P7-770', 4 ],
 | 
			
		||||
	'9119-FHB' : [ 'P7-795', 4 ],
 | 
			
		||||
	'9179-MHB' : [ 'P7-780', 42 ],
 | 
			
		||||
	'8231-E2C' : [ 'P7 HE', 4 ],
 | 
			
		||||
	'9125-F2C' : [ 'Power 775', 2], 
 | 
			
		||||
	'78AC-100' : [ 'Power 775', 2] //fsp
 | 
			
		||||
};
 | 
			
		||||
@@ -776,7 +776,7 @@ function createFspDiv(fspName, mtm, fsp){
 | 
			
		||||
		}
 | 
			
		||||
		var lparName = fsp[fspName]['children'][lparIndex];
 | 
			
		||||
		var color = statusMap(lparList[lparName]);
 | 
			
		||||
		lparStatusRow += '<td class="lparStatus" style="background-image:url(images/nodes/' + color + '.gif);padding: 0px;" name="' + lparName + '"></td>';
 | 
			
		||||
		lparStatusRow += '<td class="lparStatus" style="background-image:url(images/nodes/' + color + '.gif);padding: 0px;" id="' + lparName + 'status"></td>';
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	//select the backgroud
 | 
			
		||||
@@ -854,6 +854,7 @@ function statusMap(status){
 | 
			
		||||
		case 'pbs':
 | 
			
		||||
		case 'sshd':
 | 
			
		||||
		case 'booting':
 | 
			
		||||
		case 'booted':
 | 
			
		||||
		case 'ping':{
 | 
			
		||||
			color = 'green';
 | 
			
		||||
		}
 | 
			
		||||
@@ -917,7 +918,7 @@ function changeNode(lparName, status){
 | 
			
		||||
		imgUrl = 'url(images/nodes/'+ statusMap(lparList[lparName]) + '.gif)';
 | 
			
		||||
		checkFlag = false;
 | 
			
		||||
	}
 | 
			
		||||
	$('#graphTable [name=' + lparName + ']').css('background-image', imgUrl);
 | 
			
		||||
	$('#' + lparName + 'status').css('background-image', imgUrl);
 | 
			
		||||
	$('.tooltip input[name="' + lparName + '"]').attr('checked', checkFlag);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -936,7 +937,7 @@ function coculateBlank(mtm){
 | 
			
		||||
		return 24;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	switch(hardwareInfo[mtm]){
 | 
			
		||||
	switch(hardwareInfo[mtm][1]){
 | 
			
		||||
		case 1:
 | 
			
		||||
		{
 | 
			
		||||
			return 13;
 | 
			
		||||
 
 | 
			
		||||
@@ -1130,7 +1130,7 @@ sub web_discover {
 | 
			
		||||
 | 
			
		||||
	my $retStr  = '';
 | 
			
		||||
	my $retInfo =
 | 
			
		||||
	  xCAT::Utils->runcmd( "lsslp -s -m $type 2>/dev/null | grep $type | awk '{print \$1\":\" \$2\"-\"\$3}'",
 | 
			
		||||
	  xCAT::Utils->runcmd( "lsslp -m -s $type 2>/dev/null | grep $type | awk '{print \$1\":\" \$2\"-\"\$3}'",
 | 
			
		||||
		-1, 1 );
 | 
			
		||||
	if ( scalar(@$retInfo) < 1 ) {
 | 
			
		||||
		$retStr = 'Error: Can not discover frames in cluster!';
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user