| {{! |
| * 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. |
| }} |
| |
| {{#unless view.showOnlyRows}} |
| <div class="clearfix like_pointer" {{action toggleInfoView target="view"}}> |
| <div class="name span2"> |
| {{#if view.isCollapsed}} |
| <i class="icon-caret-down pull-left"></i> |
| {{else}} |
| <i class="icon-caret-right pull-left"></i> |
| {{/if}} |
| {{view App.MainDashboardServiceHealthView serviceBinding="view.service"}} |
| <a {{action selectService view.service href=true}}>{{view.service.displayName}}</a> |
| {{#if view.criticalAlertsCount}} |
| <a href="#" class="label label-important" {{action "showAlertsPopup" view.service target="view.parentView"}}> |
| {{view.criticalAlertsCount}} |
| </a> |
| {{/if}} |
| </div> |
| <div class="summary span"> |
| {{view.summaryHeader}} |
| </div> |
| </div> |
| <div class="service-body"> |
| <div class="span4"> |
| <table class="table no-borders"> |
| <tbody> |
| {{/unless}} |
| |
| <!-- NameNode --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.nanmenode}}</td> |
| <td><a href="#" {{action showDetails view.service.nameNode}}>{{view.service.nameNode.publicHostName}}</a></td> |
| </tr> |
| <!-- SecondaryNameNode --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.snanmenode}}</td> |
| <td><a href="#" {{action showDetails view.service.snameNode}}>{{view.service.snameNode.publicHostName}}</a></td> |
| </tr> |
| <!-- Data Nodes --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.datanodes}}</td> |
| <td> |
| <a href="#" {{action filterHosts view.dataNodeComponent}}>{{view.service.dataNodes.length}} {{t dashboard.services.hdfs.datanodes}}</a> |
| </td> |
| </tr> |
| <!-- Version --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.version}}</td> |
| <td>{{view.version}}</td> |
| </tr> |
| <!-- NameNode Web UI --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.nameNodeWebUI}}</td> |
| <td><a {{bindAttr href="view.nodeWebUrl"}} target="_blank">{{view.service.nameNode.publicHostName}}:50070</a> |
| </td> |
| </tr> |
| <!-- NameNode Uptime --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.nodes.uptime}}</td> |
| <td>{{view.nodeUptime}}</td> |
| </tr> |
| <!-- NameNode Heap --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.nodes.heap}}</td> |
| <td>{{view.nodeHeap}}</td> |
| </tr> |
| <!-- Data Node Counts --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.datanodecounts}}</td> |
| <td> |
| {{view.service.liveDataNodes.length}} {{t dashboard.services.hdfs.nodes.live}} / |
| {{view.service.deadDataNodes.length}} {{t dashboard.services.hdfs.nodes.dead}} / |
| {{view.service.decommissionDataNodes.length}} {{t dashboard.services.hdfs.nodes.decom}} |
| </td> |
| </tr> |
| <!-- HDFS Capacity --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.capacity}}</td> |
| <td>{{view.capacity}}</td> |
| </tr> |
| <!-- Blocks Total --> |
| <tr> |
| <td>{{t services.service.summary.blocksTotal}}</td> |
| <td>{{view.dfsTotalBlocks}}</td> |
| </tr> |
| <!-- Block Errors --> |
| <tr> |
| <td>{{t services.service.summary.blockErrors}}</td> |
| <td> |
| {{view.blockErrorsMessage}} |
| </td> |
| </tr> |
| <!-- Total Files And Directories --> |
| <tr> |
| <td>{{t dashboard.services.hdfs.totalFilesAndDirs}}</td> |
| <td>{{view.dfsTotalFiles}}</td> |
| </tr> |
| <!-- Upgrade Status --> |
| <tr> |
| <td>{{t services.service.summary.pendingUpgradeStatus}}</td> |
| <td> |
| {{#if view.service.upgradeStatus}} |
| {{t services.service.summary.pendingUpgradeStatus.notPending}} |
| {{else}} |
| {{t services.service.summary.pendingUpgradeStatus.pending}} |
| {{/if}} |
| </td> |
| </tr> |
| <!-- Safe Mode Status --> |
| <tr> |
| <td>{{t services.service.summary.safeModeStatus}}</td> |
| <td> |
| {{#if view.isSafeMode}} |
| {{t services.service.summary.safeModeStatus.inSafeMode}} |
| {{else}} |
| {{t services.service.summary.safeModeStatus.notInSafeMode}} |
| {{/if}} |
| </td> |
| </tr> |
| |
| {{#unless view.showOnlyRows}} |
| </tbody> |
| </table> |
| </div> |
| <div class="dashboard-mini-chart span2"> |
| <div {{bindAttr title="view.capacity"}}> |
| {{view view.Chart serviceBinding="view.service"}} |
| </div> |
| <div class="chartLabel">{{t dashboard.services.hdfs.chart.label}}</div> |
| {{#if view.service.quickLinks.length}} |
| {{#view App.QuickViewLinks contentBinding="view.service"}} |
| <div class="btn-group"> |
| <a class="btn btn-mini dropdown-toggle" data-toggle="dropdown" href="#"> |
| {{t common.quickLinks}} |
| <span class="caret"></span> |
| </a> |
| <ul class="dropdown-menu"> |
| {{#each view.quickLinks}} |
| <li><a {{bindAttr href="url"}} target="_blank">{{label}}</a></li> |
| {{/each}} |
| </ul> |
| </div> |
| {{/view}} |
| {{/if}} |
| </div> |
| </div> |
| {{/unless}} |