You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vi...@apache.org on 2012/06/07 04:02:27 UTC
svn commit: r1347295 - in /incubator/ambari/branches/ambari-186: CHANGES.txt
hmc/js/deployAddedNodesProgress.js
Author: vikram
Date: Thu Jun 7 02:02:26 2012
New Revision: 1347295
URL: http://svn.apache.org/viewvc?rev=1347295&view=rev
Log:
AMBARI-475. Add missing JS file for making post cluster install Add Nodes work (Contributed by Yusaku)
Added:
incubator/ambari/branches/ambari-186/hmc/js/deployAddedNodesProgress.js
Modified:
incubator/ambari/branches/ambari-186/CHANGES.txt
Modified: incubator/ambari/branches/ambari-186/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/ambari-186/CHANGES.txt?rev=1347295&r1=1347294&r2=1347295&view=diff
==============================================================================
--- incubator/ambari/branches/ambari-186/CHANGES.txt (original)
+++ incubator/ambari/branches/ambari-186/CHANGES.txt Thu Jun 7 02:02:26 2012
@@ -6,6 +6,8 @@ characters wide.
Release 0.1.x - unreleased
+ AMBARI-475. Add missing JS file for making post cluster install Add Nodes work (Yusaku via Vikram)
+
AMBARI-473. Secondary namenode checkpoint dir doesnt get created if its on the same host as NN. (Mahadev via Vikram)
AMBARI-471. hadoop-metrics2.properties not updated (Ramya via Vikram)
Added: incubator/ambari/branches/ambari-186/hmc/js/deployAddedNodesProgress.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/ambari-186/hmc/js/deployAddedNodesProgress.js?rev=1347295&view=auto
==============================================================================
--- incubator/ambari/branches/ambari-186/hmc/js/deployAddedNodesProgress.js (added)
+++ incubator/ambari/branches/ambari-186/hmc/js/deployAddedNodesProgress.js Thu Jun 7 02:02:26 2012
@@ -0,0 +1,112 @@
+function DeployAddedNodes() {
+
+ function generateLogsContent(errorInfoJson) {
+ return '<pre>' +
+ globalYui.JSON.stringify( errorInfoJson.logs, null, 4 ) +
+ '</pre>';
+ }
+
+ this.renderProgress = function(progressInfo) {
+
+ hideLoadingImg();
+
+ /* At this point, our users are done with the installation wizard
+ * and have asked for a deploy, so there's no going back - remove
+ * all traces of #installationWizardProgressBarDivId.
+ */
+ var installationWizardProgressBarDiv = globalYui.one('#installationWizardProgressBarDivId');
+
+ /* But be safe and perform this removal only if #installationWizardProgressBarDivId
+ * actually exists on the page - this .js file is now being used in more
+ * than one place, so this robustness is needed.
+ */
+ if (installationWizardProgressBarDiv) {
+ installationWizardProgressBarDiv.setStyle('display', 'none')
+ }
+
+ var progressStatusMessage = {
+
+ success:
+ '<p>' +
+ 'Successfully added new nodes to your cluster.<br><a href="index.php" id="addMoreNodesSuccessLink" style="margin-top:10px" class="btn btn-large">Continue</a>' +
+ '</p>',
+ failure:
+ '<p>' +
+ 'Failed to add new nodes to the cluster.<br>Take a look at the ' +
+ '<a href="javascript:void(null)" id="showDeployTxnLogsLinkId">deploy logs</a>' +
+ ' to find out what might have gone wrong.' +
+ '<a href="index.php" class="btn btn-large" style="margin-top:10px" id="addMoreNodesFailedLink">' +
+ 'Continue' +
+ '</a>' +
+ '</p>'
+ };
+
+ var postCompletionFixup = {
+
+ success: function(txnProgressWidget) {
+ },
+
+ failure: function(txnProgressWidget) {
+
+ /* Create the panel that'll display our error info. */
+ var errorInfoPanel =
+ createInformationalPanel( '#informationalPanelContainerDivId', 'Deploy 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!");
+ }
+ }
+ });
+
+ /* Register a click-handler for #showDeployTxnLogsLinkId to render
+ * the contents inside errorInfoPanel (and make it visible).
+ */
+ globalYui.one("#showDeployTxnLogsLinkId").on( "click", function(e) {
+ errorInfoPanel.set('bodyContent', errorInfoPanelBodyContent);
+ errorInfoPanel.show();
+
+ });
+ }
+ };
+
+ var progressWidget = new TxnProgressWidget(progressInfo, 'Add Nodes', progressStatusMessage, postCompletionFixup);
+
+ progressWidget.show();
+ }
+};