blob: 4b832f0dff021f861e53bbb493313294f006d0e4 [file] [log] [blame]
{{!
* 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="hosts" class="container-wrap-table">
<div class="row">
<h2 class="table-title col-sm-1">{{t common.hosts}}</h2>
<div class="table-controls row col-sm-10 pull-right">
<div class="col-sm-12">
{{#havePermissions "HOST.ADD_DELETE_COMPONENTS, HOST.TOGGLE_MAINTENANCE, HOST.ADD_DELETE_HOSTS"}}
{{view App.HostTableMenuView}}
{{/havePermissions}}
<div class="VS-open-box pull-right">
<button class="btn btn-default">
<i class="icon-filter"></i>
</button>
<div class="popup-arrow-up hide"></div>
</div>
</div>
</div>
</div>
<div class="row search-box-row hide">
{{view App.MainHostComboSearchBoxView}}
</div>
<table class="table advanced-header-table table-hover" id="hosts-table">
<thead>
{{#view view.sortView classNames="label-row" contentBinding="view.filteredContent"}}
<th>
<div class="ember-view view-wrapper">
{{view App.CheckboxView classNames="host-select-all" checkedBinding="view.parentView.selectAllHosts"}}
</div>
</th>
<th> </th>
{{view view.parentView.nameSort}}
<th> </th>
<th> </th>
{{view view.parentView.ipSort}}
{{view view.parentView.rackSort}}
{{view view.parentView.cpuSort}}
{{view view.parentView.memorySort}}
{{view view.parentView.diskUsageSort}}
{{view view.parentView.loadAvgSort}}
<th {{bindAttr class="App.stackVersionsAvailable::hidden :sort-view-11"}}>
{{t hosts.host.menu.stackVersions}}
</th>
<th class="sort-view-6">{{t common.components}}</th>
{{/view}}
</thead>
<tbody>
{{#if view.pageContent}}
{{#each host in view.pageContent}}
{{#view view.HostView contentBinding="host"}}
<td>{{view App.CheckboxView checkedBinding="host.selected"}}</td>
<td class="health">
<span rel="HealthTooltip" {{bindAttr class="host.healthClass host.healthIconClass"}} {{bindAttr data-original-title="host.healthToolTip" }}></span>
</td>
<td class="name">
<span class="trim_hostname">
<a rel="UsageTooltip" data-original-title="{{unbound host.hostName}}" href="#" {{action "showDetails" host}}>{{unbound host.hostName}}</a>
</span>
{{#if host.criticalWarningAlertsCount}}
{{#if host.alertsSummary.CRITICAL}}
<span class="label alerts-crit-count" {{action "goToHostAlerts" host target="controller"}}>{{host.criticalWarningAlertsCount}}</span>
{{else}}
<span class="label alerts-warn-count" {{action "goToHostAlerts" host target="controller"}}>{{host.criticalWarningAlertsCount}}</span>
{{/if}}
{{/if}}
</td>
<td class="restart">
{{#if host.componentsWithStaleConfigsCount}}
<span class="muted glyphicon glyphicon-refresh" rel="ComponentsTooltip" {{bindAttr title="view.restartRequiredComponentsMessage"}}></span>
{{/if}}
</td>
<td class="passive-state">
<span rel="ComponentsTooltip" {{bindAttr data-original-title="view.componentsInPassiveStateMessage" class="host.componentsInPassiveStateCount:icon-medkit"}}></span>
</td>
<td class="host-ip">{{host.ip}}</td>
<td class="rack-id">
<span rel="UsageTooltip" {{bindAttr data-original-title="host.rack"}}>{{host.rack}}</span>
</td>
<td class="cores-formatted">{{host.coresFormatted}}</td>
<td class="memory-formatted">{{host.memoryFormatted}}</td>
<td class="disk-info">
<div class="progress" {{bindAttr data-original-title="host.diskInfoBar"}} rel="UsageTooltip">
<div class="progress-bar progress-bar-info" {{bindAttr style="view.usageStyle"}}></div>
</div>
</td>
<td class="load-avg">{{host.loadAvg}}</td>
<td {{bindAttr class="App.stackVersionsAvailable::hidden view.hasSingleVersion:not-active-link :host-table-versions"}}>
<a href="#" class="black" {{action displayVersions target="view"}}>
{{view.currentVersion}}
</a>
</td>
<td {{bindAttr class="view.hasNoComponents:not-active-link :host-table-components"}}>
<a href="#" class="black" {{action displayComponents target="view"}}>
{{view.content.hostComponents.length}} {{pluralize view.content.hostComponents.length singular="t:common.component" plural="t:common.components"}}
</a>
</td>
{{/view}}
{{/each}}
{{else}}
<tr>
<td class="first"></td>
<td colspan="12">
{{t hosts.table.noHosts}}
</td>
</tr>
{{/if}}
</tbody>
<tfoot>
<tr>
<td colspan="13">
{{#if view.showSelectedFilter}}
<div class="display-inline-block">
<a {{action filterSelected target="view"}} {{QAAttr "selected-hosts-count"}} href="#">
{{view.selectedHosts.length}}
{{pluralize view.selectedHostsCount singular="t:hosts.filters.selectedHostInfo" plural="t:hosts.filters.selectedHostsInfo"}}
</a>
- <a {{action clearSelection target="view"}} {{QAAttr "clear-hosts-selection"}} href="#">{{t hosts.filters.clearSelection}}</a>
</div>
{{/if}}
{{view App.PaginationView isDataLoadedBinding="view.filteringComplete" rowsPerPageSelectViewBinding="view.rowsPerPageSelectView"}}
</td>
</tr>
</tfoot>
</table>
<div {{bindAttr class="view.filteringComplete:hidden :table-overlay"}}>
{{view App.SpinnerView}}
</div>
</div>