123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- {{!
- * 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.
- }}
- <div id="stack-upgrade-dialog">
- <div {{bindAttr class=":upgrade-options-link controller.isDowngrade:disabled"}} {{action openUpgradeOptions target="controller"}}>
- <i class="icon-cogs"></i><a>{{t common.options}}</a>
- </div>
- <div {{bindAttr class="view.isLoaded::hidden :row-fluid"}}>
- <div class="span3 task-list-main-warp">{{statusIcon controller.requestStatus}}
- {{view.upgradeStatusLabel}}</div>
- <div class="span8">
- {{view App.ProgressBarView
- progressBinding="view.overallProgress"
- statusBinding="controller.requestStatus"
- }}
- </div>
- <div class="span1">
- {{view.overallProgress}}%
- </div>
- </div>
- <div class="task-list scrollable-block task-list-main-warp">
- {{#if view.isLoaded}}
- <div>
- {{#if view.runningItem}}
- <div class="box details-box">
- <div class="row-fluid">
- <div class="pull-left">{{t admin.stackUpgrade.dialog.inProgress}} {{view.runningItem.text}}</div>
- {{#if view.isDetailsOpened}}
- <a href="#" class="pull-right" {{action toggleDetails target="view"}}>{{t admin.stackUpgrade.dialog.details.hide}}</a>
- {{#if view.runningItem.isTasksLoaded}}
- <div class="clear">
- {{view App.upgradeTaskView contentBinding="view.taskDetails" outsideViewBinding="view.outsideView"}}
- </div>
- {{else}}
- {{view App.SpinnerView classNames="clear"}}
- {{/if}}
- {{else}}
- <a href="#" class="pull-right" {{action toggleDetails target="view"}}>{{t admin.stackUpgrade.dialog.details.open}}</a>
- {{/if}}
- </div>
- </div>
- {{/if}}
- {{#if view.failedItem}}
- {{#unless view.isSlaveComponentFailuresItem}}
- <div class="box details-box">
- <div class="row-fluid">
- <div class="pull-left">{{t admin.stackUpgrade.dialog.failed}} {{view.failedItem.text}}</div>
- {{#if view.isDetailsOpened}}
- <a href="#" class="pull-right" {{action toggleDetails target="view"}}>{{t admin.stackUpgrade.dialog.details.hide}}</a>
- {{#if view.failedItem.isTasksLoaded}}
- <div class="clear">
- {{view App.upgradeTaskView contentBinding="view.taskDetails" outsideViewBinding="view.outsideView"}}
- </div>
- {{else}}
- {{view App.SpinnerView classNames="clear"}}
- {{/if}}
- {{else}}
- <a href="#" class="pull-right" {{action toggleDetails target="view"}}>{{t admin.stackUpgrade.dialog.details.open}}</a>
- {{/if}}
- </div>
- {{#if view.isHoldingState}}
- <div class="button-row">
- {{#if view.isDowngradeAvailable}}
- <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.failedItem target="controller"}}>{{t common.downgrade}}</button>
- {{/if}}
- {{#if isDowngrade}}
- <button class="btn" {{action confirmPauseDowngrade target="view"}}>{{t admin.stackUpgrade.pauseDowngrade}}</button>
- {{else}}
- <button class="btn" {{action confirmPauseUpgrade target="view"}}>{{t admin.stackUpgrade.pauseUpgrade}}</button>
- {{/if}}
- {{#if view.failedItem.skippable}}
- <button class="btn btn-warning" {{bindAttr disabled="controller.requestInProgress"}} {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button>
- {{/if}}
- <button class="btn" {{bindAttr disabled="controller.requestInProgress"}} {{action retry view.failedItem target="view"}}>{{t common.retry}}</button>
- </div>
- {{/if}}
- </div>
- {{/unless}}
- {{/if}}
- {{#if view.plainManualItem}}
- <div class="box details-box">
- <p class="manual-steps-title"><strong>{{t admin.stackUpgrade.dialog.manual}}</strong></p>
- {{#each message in view.manualItem.messages}}
- <p class="manual-steps-content">{{message}}</p>
- {{/each}}
- <label class="message">
- {{view Em.Checkbox checkedBinding="view.isManualDone"}}
- {{t admin.stackUpgrade.dialog.manualDone}}
- </label>
- <div class="button-row">
- {{#if view.isDowngradeAvailable}}
- <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
- {{/if}}
- {{#if isDowngrade}}
- <button class="btn" {{action confirmPauseDowngrade target="view"}}>{{t admin.stackUpgrade.pauseDowngrade}}</button>
- {{else}}
- <button class="btn" {{action confirmPauseUpgrade target="view"}}>{{t admin.stackUpgrade.pauseUpgrade}}</button>
- {{/if}}
- <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>
- {{t common.proceed}}
- </button>
- </div>
- </div>
- {{/if}}
- {{#if view.isFinalizeItem}}
- <div class="box details-box">
- <p class="manual-steps-title"><strong>{{t admin.stackUpgrade.dialog.manual}}</strong></p>
- {{#if isDowngrade}}
- <p class="manual-steps-content">{{t admin.stackUpgrade.finalize.message.downgrade}}</p>
- {{else}}
- <p class="manual-steps-content">{{t admin.stackUpgrade.finalize.message.upgrade}}</p>
- {{/if}}
- {{#if areSkippedServiceChecksLoaded}}
- {{#if skippedServiceChecks.length}}
- <div>{{t admin.stackUpgrade.finalize.message.skippedServiceChecks}}</div>
- <ul>
- {{#each serviceName in skippedServiceChecks}}
- <li>{{serviceName}}</li>
- {{/each}}
- </ul>
- <div>{{t admin.stackUpgrade.finalize.message.testServices}}</div>
- {{/if}}
- {{else}}
- {{view App.SpinnerView}}
- {{/if}}
- <label class="message">
- {{view Em.Checkbox checkedBinding="view.isManualDone"}}
- {{t admin.stackUpgrade.dialog.manualDone}}
- </label>
- <div class="button-row">
- {{#if view.isDowngradeAvailable}}
- <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
- {{/if}}
- <button class="btn" {{action confirmPauseUpgrade target="view"}}>{{t admin.stackUpgrade.finalize.later}}</button>
- <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>
- {{t common.finalize}}
- </button>
- </div>
- </div>
- {{/if}}
- {{#if view.isSlaveComponentFailuresItem}}
- <div class="box details-box">
- <p class="manual-steps-title"><strong>{{t admin.stackUpgrade.dialog.manual}}</strong></p>
- <div class="slave-failures-info">
- <p>
- {{#if areSlaveComponentFailuresHostsLoaded}}
- {{t admin.stackUpgrade.failedHosts.message}}
- <a href="#" {{action showFailedHosts target="view"}}>{{view.failedHostsMessage}}</a>
- {{else}}
- {{view App.SpinnerView}}
- {{/if}}
- </p>
- <p>
- {{t admin.stackUpgrade.failedHosts.options}}
- <ul>
- <li>{{t admin.stackUpgrade.failedHosts.options.first}}</li>
- {{#if view.isDowngradeAvailable}}
- <li>{{t admin.stackUpgrade.failedHosts.options.second}}</li>
- {{/if}}
- </ul>
- </p>
- </div>
- {{#unless view.isHoldingState}}
- <label class="message">
- {{view Em.Checkbox checkedBinding="view.isManualDone"}}
- {{t admin.stackUpgrade.dialog.manualDone}}
- </label>
- {{/unless}}
- <div class="button-row">
- {{#if view.isDowngradeAvailable}}
- <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
- {{/if}}
- {{#if isDowngrade}}
- <button class="btn" {{action confirmPauseDowngrade target="view"}}>{{t admin.stackUpgrade.pauseDowngrade}}</button>
- {{else}}
- <button class="btn" {{action confirmPauseUpgrade target="view"}}>{{t admin.stackUpgrade.pauseUpgrade}}</button>
- {{/if}}
- {{#if view.isHoldingState}}
- <button class="btn" {{bindAttr disabled="controller.requestInProgress"}} {{action retry view.failedItem target="view"}}>{{t common.retry}}</button>
- {{else}}
- <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>
- {{t common.proceed}}
- </button>
- {{/if}}
- </div>
- </div>
- {{/if}}
- {{#if view.isServiceCheckFailuresItem}}
- <div class="box details-box">
- <p class="manual-steps-title"><strong>{{t admin.stackUpgrade.dialog.manual}}</strong></p>
- {{#if areServiceCheckFailuresServicenamesLoaded}}
- {{#if serviceCheckFailuresServicenames.length}}
- <div class="service-check-failures-info">
- <p class="service-check-failures-title"><strong>{{t admin.stackUpgrade.dialog.manual.serviceCheckFailures.title}}</strong></p>
- <div>{{t admin.stackUpgrade.dialog.manual.serviceCheckFailures.msg1}}</div>
- <ul class="failed-info-list">
- {{#each serviceName in serviceCheckFailuresServicenames}}
- <li>{{serviceName}}</li>
- {{/each}}
- </ul>
- <div>{{t admin.stackUpgrade.dialog.manual.serviceCheckFailures.msg2}}</div>
- </div>
- {{/if}}
- {{#if slaveComponentStructuredInfo.hosts.length}}
- <div class="slave-failures-info">
- <p class="slave-failures-title"><strong>{{t admin.stackUpgrade.dialog.manual.slaveComponentFailures.title}}</strong></p>
- <p>
- {{t admin.stackUpgrade.failedHosts.message}}
- <a href="#" {{action showFailedHosts target="view"}}>{{view.failedHostsMessage}}</a>
- </p>
- <p>
- {{t admin.stackUpgrade.failedHosts.options}}
- <ul>
- <li>{{t admin.stackUpgrade.failedHosts.options.first}}</li>
- <li>{{t admin.stackUpgrade.failedHosts.options.third}}</li>
- {{#if view.isDowngradeAvailable}}
- <li>{{t admin.stackUpgrade.failedHosts.options.second}}</li>
- {{/if}}
- </ul>
- </p>
- </div>
- {{/if}}
- {{else}}
- {{view App.SpinnerView}}
- {{/if}}
- <label class="message">
- {{view Em.Checkbox checkedBinding="view.isManualDone"}}
- {{t admin.stackUpgrade.dialog.manualDone}}
- </label>
- <div class="button-row">
- {{#if view.isDowngradeAvailable}}
- <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
- {{/if}}
- {{#if isDowngrade}}
- <button class="btn" {{action confirmPauseDowngrade target="view"}}>{{t admin.stackUpgrade.pauseDowngrade}}</button>
- {{else}}
- <button class="btn" {{action confirmPauseUpgrade target="view"}}>{{t admin.stackUpgrade.pauseUpgrade}}</button>
- {{/if}}
- <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>
- {{t common.proceed}}
- </button>
- </div>
- </div>
- {{/if}}
- {{#if view.noActiveItem}}
- <div class="box details-box">
- <div>
- {{t admin.stackUpgrade.dialog.notActive}}
- </div>
- </div>
- {{/if}}
- {{#if App.upgradeSuspended}}
- <div class="box details-box">
- <label class="message">
- {{#if isDowngrade}}
- {{t admin.stackUpgrade.dialog.suspended.downgrade}}
- {{else}}
- {{t admin.stackUpgrade.dialog.suspended}}
- {{/if}}
- </label>
- <div class="button-row">
- {{#if isDowngrade}}
- <button class="btn btn-primary" {{action resumeUpgrade target="controller"}}>
- {{t admin.stackUpgrade.dialog.resume.downgrade}}
- </button>
- {{else}}
- <button class="btn btn-primary" {{action resumeUpgrade target="controller"}}>
- {{t admin.stackUpgrade.dialog.resume}}
- </button>
- {{/if}}
- </div>
- </div>
- {{/if}}
- </div>
- {{#each group in view.upgradeGroups}}
- {{#if group.isVisible}}
- {{view App.upgradeGroupView contentBinding="group"}}
- {{/if}}
- {{/each}}
- {{/if}}
- </div>
- {{#unless view.isLoaded}}
- {{view App.SpinnerView}}
- {{/unless}}
- </div>
|