summary.hbs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. {{!
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. }}
  18. <div class="row-fluid">
  19. <div class="span12">
  20. <div class="span6">
  21. <div class="host-configuration">
  22. <div class="box">
  23. <div class="box-header">
  24. <h4>{{t hosts.host.summary.header}}</h4>
  25. </div>
  26. <div class="host-summary-content">
  27. <dl class="dl-horizontal">
  28. <dt>{{t hosts.host.summary.hostname}}:</dt><dd>&nbsp;{{view.content.publicHostName}}</dd>
  29. <dt>{{t common.ipAddress}}:</dt><dd>&nbsp;{{view.content.ip}}</dd>
  30. <dt>{{t common.os}}:</dt><dd>&nbsp;{{view.content.osType}}&nbsp;({{view.content.osArch}})</dd>
  31. <dt>{{t common.cpu}}:</dt><dd>&nbsp;{{view.content.cpu}}</dd>
  32. <dt>{{t common.disk}}:</dt><dd>&nbsp;{{view.content.diskInfoBar}}</dd>
  33. <dt>{{t common.memory}}:</dt><dd>&nbsp;{{view.content.memoryFormatted}}</dd>
  34. <dt>{{t common.loadAvg}}:</dt><dd>&nbsp;{{view.content.loadAvg}}</dd>
  35. <dt>{{t hosts.host.summary.agentHeartbeat}}:</dt><dd>{{view.timeSinceHeartBeat}}</dd>
  36. </dl>
  37. </div>
  38. </div>
  39. </div>
  40. {{!components}}
  41. <div class="box">
  42. <div class="box-header">
  43. <h4>Components</h4>
  44. </div>
  45. {{#if view.sortedComponents.length}}
  46. <div class="host-components">
  47. {{#each component in view.sortedComponents}}
  48. <div class="row-fluid">
  49. {{#view view.ComponentView contentBinding="component" decommissionDataNodeHostNamesBinding="view.decommissionDataNodeHostNames"}}
  50. <div class="span7">
  51. {{#if view.isUpgradeFailed}}
  52. {{#if App.isAdmin}}
  53. <a href="#" {{action "upgradeComponent" view.content target="controller"}} >
  54. <i title="Component upgrade failed" class="components-health icon-arrow-up"></i>
  55. </a>
  56. {{/if}}
  57. {{else}}
  58. <span {{bindAttr class="view.statusClass :components-health"}}></span>&nbsp;
  59. {{/if}}
  60. {{component.displayName}}&nbsp;/&nbsp;
  61. <a href="#" {{action routeToService component.service target="controller" }}>{{component.service.displayName}}</a>
  62. </div>
  63. <div class="span5">
  64. {{#if App.isAdmin}}
  65. <div class="btn-group">
  66. <a {{ bindAttr class=":btn :dropdown-toggle view.disabledClass"}} data-toggle="dropdown">
  67. {{t common.action}}
  68. <span class="caret pull-right"></span>
  69. </a>
  70. <ul class="dropdown-menu">
  71. {{#if view.isDataNode}}
  72. <li {{bindAttr class="view.isDataNodeDecommissionAvailable::hidden"}}>
  73. <a href="javascript:void(null)" data-toggle="modal" {{action "decommission" view.content target="controller"}}>
  74. {{t common.decommission}}
  75. </a>
  76. </li>
  77. <li {{bindAttr class="view.isDataNodeRecommissionAvailable::hidden"}}>
  78. <a href="javascript:void(null)" data-toggle="modal" {{action "recommission" view.content target="controller"}}>
  79. {{t common.recommission}}
  80. </a>
  81. </li>
  82. {{/if}}
  83. <li {{bindAttr class="view.isStart::hidden"}}>
  84. <a href="javascript:void(null)" data-toggle="modal" {{action "stopComponent" view.content target="controller"}}>
  85. {{t common.stop}}
  86. </a>
  87. </li>
  88. <li {{bindAttr class="view.isStart:hidden: view.isInstallFailed:hidden"}}>
  89. <a href="javascript:void(null)" data-toggle="modal" {{action "startComponent" view.content target="controller"}}>
  90. {{t common.start}}
  91. </a>
  92. </li>
  93. <li {{bindAttr class="view.isUpgradeFailed::hidden"}}>
  94. <a href="javascript:void(null)" data-toggle="modal" {{action "upgradeComponent" view.content target="controller"}}>
  95. {{t common.upgrade}}
  96. </a>
  97. </li>
  98. <li {{bindAttr class="view.isInstallFailed::hidden"}}>
  99. <a href="javascript:void(null)" data-toggle="modal" {{action "installComponent" view.content target="controller"}}>
  100. {{t common.install}}
  101. </a>
  102. </li>
  103. </ul>
  104. </div>
  105. {{/if}}
  106. </div>
  107. {{/view}}
  108. </div>
  109. {{/each}}
  110. {{!clients and add component button}}
  111. <div class="clients row-fluid">
  112. <div class="span7 row">
  113. {{#if view.clients.length}}
  114. <div class="span2">{{t common.clients}}&nbsp;/&nbsp;</div>
  115. <div class="span8">
  116. {{#each component in view.clients}}
  117. {{#if component.isLast}}
  118. {{component.displayName}}
  119. {{else}}
  120. {{component.displayName}},
  121. {{/if}}
  122. {{/each}}
  123. </div>
  124. {{/if}}
  125. </div>
  126. <div class="span5 row">
  127. {{#if view.isAddComponent}}
  128. {{#if view.addableComponents.length}}
  129. <div class="btn-group">
  130. <button id="add_component" class="btn btn-info dropdown-toggle" data-toggle="dropdown">
  131. {{t common.addComponent}}
  132. <span class="caret pull-right"></span>
  133. </button>
  134. <ul class="dropdown-menu">
  135. {{#each component in view.addableComponents}}
  136. <li>
  137. <a href="javascript:void(null)" data-toggle="modal" {{action addComponent component target="controller"}}>
  138. {{component.displayName}}
  139. </a>
  140. </li>
  141. {{/each}}
  142. </ul>
  143. </div>
  144. {{/if}}
  145. {{/if}}
  146. </div>
  147. </div>
  148. </div>
  149. {{/if}}
  150. </div>
  151. </div>
  152. {{!metrics}}
  153. <div class="span6">
  154. <div class="box">
  155. <div class="box-header">
  156. <h4>{{t hosts.host.summary.hostMetrics}}</h4>
  157. <div class="btn-group">
  158. <a class="btn" rel="tooltip" title="Go to Ganglia" {{action "showGangliaCharts" target="view"}}><i class="icon-link"></i></a>
  159. </div>
  160. </div>
  161. <div>
  162. {{view App.MainHostMetricsView contentBinding="view.content"}}
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>