| {{! |
| * 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 class="row-fluid service-block"> |
| <div class="span6"> |
| {{#if view.service.quickLinks.length}} |
| {{#view App.QuickViewLinks contentBinding="view.service"}} |
| <ul class="nav nav-pills move"> |
| <li class="dropdown"> |
| <a class="dropdown-toggle" data-toggle="dropdown" href="#">Quick Links<b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| {{#each view.quickLinks}} |
| <a {{bindAttr href="url"}} {{bindAttr target="view.linkTarget"}}>{{label}}</a> |
| {{/each}} |
| </ul> |
| </li> |
| </ul> |
| {{/view}} |
| {{/if}} |
| |
| <div class="box"> |
| <div class="box-header"> |
| <h4>{{controller.content.label}} Summary</h4> |
| </div> |
| <div class="service-content"> |
| <table id="summary-info" class="table no-borders table-condensed"> |
| <tbody> |
| {{#unless view.serviceStatus.oozie}} |
| {{#unless view.serviceStatus.hive}} |
| {{#unless view.serviceStatus.zookeeper}} |
| {{#unless view.serviceStatus.hdfs}} |
| {{#unless view.serviceStatus.mapreduce}} |
| {{#unless view.serviceStatus.hbase}} |
| {{#each component in controller.content.components}} |
| <tr> |
| {{#if component.isMaster}} |
| <td class="summary-label">{{component.displayName}}</td> |
| <td><a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a></td> |
| {{else}} |
| <td class="summary-label">{{component.displayName}}s</td> |
| <td><a {{action filterHosts component}} href="javascript:void(null)">{{component.displayName}}s</a></td> |
| {{/if}} |
| </tr> |
| {{/each}} |
| {{#if view.serviceStatus.ganglia}} |
| <tr> |
| <td class="summary-label">Ganglia Web UI</td> |
| <td><a target=_blank href="http://{{unbound view.gangliaServer}}/ganglia">{{view.gangliaServer}}/ganglia</a></td> |
| </tr> |
| {{/if}} |
| {{#if view.serviceStatus.nagios}} |
| <tr> |
| <td class="summary-label">Nagios Web UI</td> |
| <td><a target=_blank href="http://{{unbound view.nagiosServer}}/nagios">{{view.nagiosServer}}/nagios</a></td> |
| </tr> |
| {{/if}} |
| {{/unless}} |
| {{/unless}} |
| {{/unless}} |
| {{/unless}} |
| {{/unless}} |
| {{/unless}} |
| {{#if view.serviceStatus.hdfs}} |
| {{view App.MainDashboardServiceHdfsView showOnlyRows=true serviceBinding="view.service"}} |
| {{/if}} |
| {{#if view.serviceStatus.mapreduce}} |
| {{view App.MainDashboardServiceMapreduceView showOnlyRows=true serviceBinding="view.service"}} |
| {{/if}} |
| {{#if view.serviceStatus.hbase}} |
| {{view App.MainDashboardServiceHbaseView showOnlyRows=true serviceBinding="view.service"}} |
| {{/if}} |
| {{#if view.serviceStatus.zookeeper}} |
| <tr> |
| <td class="summary-label">Hosts</td> |
| <td> |
| {{#each component in controller.content.components}} |
| <a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a> |
| {{/each}} |
| </td> |
| </tr> |
| {{/if}} |
| {{#if view.serviceStatus.oozie}} |
| <tr> |
| <td class="summary-label">Hosts</td> |
| <td> |
| {{#each component in controller.content.components}} |
| <a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a> |
| {{/each}} |
| </td> |
| </tr> |
| {{/if}} |
| {{#if view.serviceStatus.hive}} |
| <tr> |
| <td class="summary-label">Host</td> |
| <td> |
| {{#each component in controller.content.components}} |
| <a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a> |
| {{/each}} |
| </td> |
| </tr> |
| <tr> |
| <td>Database</td> |
| <td>{{view.data.hive.database}}</td> |
| </tr> |
| <tr> |
| <td>Database Name</td> |
| <td>{{view.data.hive.databaseName}}</td> |
| </tr> |
| <tr> |
| <td>User</td> |
| <td>{{view.data.hive.user}}</td> |
| </tr> |
| {{/if}} |
| </tbody> |
| </table> |
| {{!view view.moreStatsView}} |
| </div> |
| {{! |
| <div class="box-footer"> |
| </div> |
| }} |
| </div> |
| </div> |
| <div class="span6"> |
| {{#if view.hasAlertsBox }} |
| <div class="box"> |
| <div class="box-header"> |
| <h4>Alerts and Health Checks</h4> |
| <div class="btn-group"> |
| <a class="btn" target="_blank" rel="tooltip" title="Go to Nagios" {{bindAttr href="controller.nagiosUrl"}}><i class="icon-link"></i></a> |
| </div> |
| </div> |
| <ul id='summary-alerts-list' class="alerts"> |
| {{#if controller.alerts.length}} |
| {{#each controller.alerts}} |
| {{view view.alertItemView contentBinding="this"}} |
| {{/each}} |
| {{else}} |
| {{#if controller.isNagiosInstalled}} |
| <div class="alert alert-info"> |
| No alerts |
| </div> |
| {{else}} |
| <div class="alert"> |
| Nagios service required for viewing alerts |
| </div> |
| {{/if}} |
| {{/if}} |
| </ul> |
| </div> |
| {{/if}} |
| </div> |
| </div> |
| {{#if view.serviceMetricGraphs.length}} |
| <div class="row-fluid"> |
| <div class="span12"> |
| <div class="box"> |
| <div class="box-header"> |
| <h4>{{controller.content.label}} Metrics</h4> |
| <div class="btn-group"> |
| <a class="btn" target="_blank" rel="tooltip" title="Go to Ganglia" {{bindAttr href="view.gangliaUrl"}}><i class="icon-link"></i></a> |
| </div> |
| </div> |
| |
| <div class="summary-metric-graphs row-fluid"> |
| {{#each graph in view.serviceMetricGraphs}} |
| <div class="span3"> |
| {{view graph}} |
| </div> |
| {{/each}} |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| {{/if}} |