123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
- function renderManageServicesProgress( manageServicesProgressInfo ) {
- var manageServicesProgressStatusMessage = {
- success:
- '<p>' +
- 'Successfully completed the operation. ' +
- '<a href="javascript:void(null)" id=closeManageServicesProgressWidgetLinkId>' +
- 'Continue' +
- '</a>' +
- '</p>',
- failure:
- '<p>' +
- 'Failed to complete the operation. Please ' +
- '<a href="javascript:void(null)" id=showManageServicesTxnLogsLinkId>take a look at Operation Logs</a>' +
- ' to see what might have gone wrong.' +
- '</p>'
- };
- var manageServicesProgressPostCompletionFixup = {
- success: function( txnProgressWidget ) {
- /* Register a click-handler for the just-rendered
- * #closeManageServicesProgressWidgetLinkId.
- *
- * Don't worry about this being a double-registration - although
- * it looks that way, it's not, because (an identical, but that's
- * irrelevant, really) manageServicesProgressStatusMessage.success
- * is re-rendered afresh each time through, and thus this
- * click-handler must also be re-registered each time 'round.
- */
- globalYui.one("#closeManageServicesProgressWidgetLinkId").on( "click", function(e) {
- var manageServicesUriPath = '/hmc/html/manageServices.php';
- var manageServicesUriPathRegEx = new RegExp(manageServicesUriPath);
- /* If we're already on manageServicesUriPath, just close the txnProgressWidget. */
- if( window.location.pathname.match(manageServicesUriPathRegEx) ) {
- txnProgressWidget.hide();
- }
- /* If not, redirect to manageServicesUriPath. */
- else {
- document.location.href = generateHMCUrl
- ( manageServicesUriPath + '?clusterName=' + txnProgressWidget.txnProgressContext.clusterName );
- }
- });
- /* Resume polling for information about the cluster's services. */
- if( typeof fetchClusterServicesPoller != 'undefined' ) {
- fetchClusterServicesPoller.start();
- }
- },
- failure: function( txnProgressWidget ) {
- /* <-------------------- REZXXX BEGIN -----------------------> */
- /* Create the panel that'll display our error info. */
- var errorInfoPanel =
- createInformationalPanel( '#informationalPanelContainerDivId', 'Operation 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 =
- '<pre>' +
- globalYui.JSON.stringify( errorInfoJson.logs, null, 4 ) +
- '</pre>';
- /* 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!");
- }
- }
- });
- var firstTimeShowingErrorInfoPanel = true;
- /* Register a click-handler for #showManageServicesTxnLogsLinkId
- * to render the contents inside errorInfoPanel (and make it visible).
- */
- globalYui.one("#showManageServicesTxnLogsLinkId").on( "click", function(e) {
- errorInfoPanel.set( 'centered', true );
- errorInfoPanel.set( 'bodyContent', errorInfoPanelBodyContent );
- errorInfoPanel.show();
- if( firstTimeShowingErrorInfoPanel ) {
- globalYui.one('#txnProgressStatusActionsDivId').setContent(
- '<a href="javascript:void(null)" id=closeManageServicesProgressWidgetLinkId>' +
- 'Close' +
- '</a>' );
- globalYui.one("#closeManageServicesProgressWidgetLinkId").on( "click", function(e) {
- txnProgressWidget.hide();
- });
- firstTimeShowingErrorInfoPanel = false;
- }
- });
- /* <--------------------- REZXXX END ------------------------> */
- if( typeof fetchClusterServicesPoller != 'undefined' ) {
- /* Resume polling for information about the cluster's services. */
- fetchClusterServicesPoller.start();
- }
- }
- };
- var manageServicesProgressWidget = new TxnProgressWidget
- ( manageServicesProgressInfo, 'Manage Services', manageServicesProgressStatusMessage, manageServicesProgressPostCompletionFixup );
- manageServicesProgressWidget.show();
- }
|