blob: bee7cc37d31330f9ddb46760d27ba0353ecf3326 [file] [log] [blame]
function generateLogsContent(errorInfoJson) {
/*
content = '<div id=\"ProgressLogsContainer\">'
for (i=0; i < errorInfoJson['progress'].length; i++) {
var subTxnId = errorInfoJson['progress'][i]['subTxnId'];
var state = errorInfoJson['progress'][i]['state'];
var desc = errorInfoJson['progress'][i]['description'];
var stateClass = 'ProgressLogsSubTxnState' + state;
var subTxnDiv = '<div id=\"'
+ 'ProgressLogsSubTxnContainer' + subTxnId + 'Id\"'
+ ' class=\"ProgressLogsSubTxnContainer ' + stateClass + ' \" name=\"' + desc + '\">';
for (hostName in errorInfoJson['logs'][subTxnId]['nodeLogs']) {
var nodeReport = errorInfoJson['logs'][subTxnId]['nodeLogs'][hostName];
var hostState = nodeReport['overall'];
var hostStateClass = 'ProgressLogsSubTxnNodeState' + hostState;
var reportContainer = '<div id=\"ProgressLogsSubTxnNodeContainer' + subTxnId + hostName + 'Id\"'
+ ' class=\"ProgressLogsSubTxnNodeContainer ' + hostStateClass + '\"' + ' name=\"' + hostName + '\">'
+ '<div class=\"ProgressLogsSubTxnNodeContainerLogs\">'
+ globalYui.JSON.stringify(nodeReport.message)
+ '</div>'
+ '</div>' + '<br/>'
subTxnDiv += reportContainer;
}
subTxnDiv += '</div>' + '<br/>';
content += subTxnDiv;
}
content += '</div>';
return content;
*/
return '<pre>' +
globalYui.JSON.stringify( errorInfoJson.logs, null, 4 ) +
'</pre>';
}
function renderUninstallProgress (uninstallProgressInfo) {
hideLoadingImg();
var uninstallProgressStatusMessage = {
success:
'<p>' +
'Uninstalled the cluster successfully.' +
'<a href="javascript:void(null)" style="margin-left:20px" class="btn btn-large" id="clustersListLinkId">' +
'Continue' +
'</a>' +
'</p>',
failure:
'<p>' +
'There was a problem with uninstall.<br />Take a look at ' +
'<a href="javascript:void(null)" id="showUninstallTxnLogsLinkId">Uninstall Logs</a>' +
' to see what might have happened.<br>' +
'<a href="javascript:void(null)" class="btn btn-large" style="margin-top:10px" id="clustersListLinkId">' +
'Close' +
'</a>' +
'</p>'
};
var uninstallProgressPostCompletionFixup = {
success: function( txnProgressWidget ) {
globalYui.one("#clustersListLinkId").on( "click", function(e) {
document.location.href = generateHMCUrl();
});
},
failure: function( txnProgressWidget ) {
globalYui.one("#clustersListLinkId").on( "click", function(e) {
document.location.href = generateHMCUrl();
});
/* Create the panel that'll display our error info. */
var errorInfoPanel =
createInformationalPanel( '#informationalPanelContainerDivId', 'Uninstall Logs' );
/* Prime the panel to start off showing our stock loading image. */
var errorInfoPanelBodyContent =
'<img id=errorInfoPanelLoadingImgId class=loadingImg src=../images/loading.gif />';
/* Make the call to our backend to fetch the report for this txnId. */
globalYui.io('../php/frontend/fetchTxnLogs.php?clusterName=' +
txnProgressWidget.txnProgressContext.clusterName + '&txnId=' + txnProgressWidget.txnProgressContext.txnId, {
timeout: 10000,
on: {
success: function (x,o) {
globalYui.log("RAW JSON DATA: " + o.responseText);
var errorInfoJson = null;
// Process the JSON data returned from the server
try {
errorInfoJson = globalYui.JSON.parse(o.responseText);
}
catch (e) {
alert("JSON Parse failed!");
return;
}
/* TODO XXX Remove some of the noise from this to allow
* for better corelation - for now, just dump a
* pretty-printed version of the returned JSON.
*/
errorInfoPanelBodyContent = generateLogsContent(errorInfoJson);
/* Update the contents of errorInfoPanel (which was, till
* now, showing the loading image).
*/
errorInfoPanel.set( 'bodyContent', errorInfoPanelBodyContent );
},
failure: function (x,o) {
alert("Async call failed!");
}
}
});
globalYui.one("#showUninstallTxnLogsLinkId").on( "click", function(e) {
errorInfoPanel.set( 'centered', true);
errorInfoPanel.set( 'bodyContent', errorInfoPanelBodyContent );
errorInfoPanel.show();
});
}
};
var uninstallProgressWidget = new TxnProgressWidget
( uninstallProgressInfo, 'Uninstall Cluster', uninstallProgressStatusMessage, uninstallProgressPostCompletionFixup );
uninstallProgressWidget.show();
}