summary.hbs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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. {{!components}}
  22. <div class="box">
  23. <div class="box-header">
  24. <h4>{{t common.components}}</h4>
  25. </div>
  26. <div class="host-components">
  27. {{#if view.sortedComponents.length}}
  28. {{#each component in view.sortedComponents}}
  29. <div class="row-fluid">
  30. {{#view view.ComponentView contentBinding="component" decommissionDataNodeHostNamesBinding="view.decommissionDataNodeHostNames"}}
  31. <div class="span7">
  32. {{#if view.isUpgradeFailed}}
  33. {{#if App.isAdmin}}
  34. <a href="#" {{action "upgradeComponent" view.content target="controller"}} >
  35. <i title="Component upgrade failed" class="components-health icon-arrow-up"></i>
  36. </a>
  37. {{/if}}
  38. {{else}}
  39. <span {{bindAttr class="view.statusClass :components-health"}}></span>&nbsp;
  40. {{/if}}
  41. {{#if component.displayNameAdvanced}}
  42. {{component.displayNameAdvanced}}
  43. {{else}}
  44. {{component.displayName}}
  45. {{/if}}
  46. &nbsp;/&nbsp;
  47. <a href="#" {{action routeToService component.service target="controller" }}>{{component.service.displayName}}</a>
  48. </div>
  49. <div class="span5">
  50. {{#if App.isAdmin}}
  51. <div class="btn-group">
  52. <a {{ bindAttr class="view.disabled :btn :dropdown-toggle"}} data-toggle="dropdown">
  53. {{t common.action}}
  54. <span class="caret pull-right"></span>
  55. </a>
  56. <ul class="dropdown-menu">
  57. <li>
  58. <div class="component-text-status">
  59. {{view.componentTextStatus}}
  60. </div>
  61. </li>
  62. {{#if view.isDataNode}}
  63. {{#if view.isDataNodeDecommissionAvailable}}
  64. <li {{bindAttr class="view.noActionAvailable"}}>
  65. <a href="javascript:void(null)" data-toggle="modal" {{action "decommission" view.content target="controller"}}>
  66. {{t common.decommission}}
  67. </a>
  68. </li>
  69. {{/if}}
  70. {{#if view.isDataNodeRecommissionAvailable}}
  71. <li {{bindAttr class="view.noActionAvailable"}}>
  72. <a href="javascript:void(null)" data-toggle="modal" {{action "recommission" view.content target="controller"}}>
  73. {{t common.recommission}}
  74. </a>
  75. </li>
  76. {{/if}}
  77. {{/if}}
  78. {{#unless view.isInstalling}}
  79. {{#if view.isStart}}
  80. <li {{bindAttr class=" view.isDecommissioning:hidden view.noActionAvailable"}}>
  81. <a href="javascript:void(null)" data-toggle="modal" {{action "stopComponent" view.content target="controller"}}>
  82. {{t common.stop}}
  83. </a>
  84. </li>
  85. {{/if}}
  86. {{#unless view.isStart}}
  87. <li {{bindAttr class="view.isUpgradeFailed:hidden view.isInstallFailed:hidden view.isDecommissioning:hidden view.noActionAvailable"}}>
  88. <a href="javascript:void(null)" data-toggle="modal" {{action "startComponent" view.content target="controller"}}>
  89. {{t common.start}}
  90. </a>
  91. </li>
  92. {{/unless}}
  93. {{#if view.isUpgradeFailed}}
  94. <li {{bindAttr class="view.noActionAvailable"}}>
  95. <a href="javascript:void(null)" data-toggle="modal" {{action "upgradeComponent" view.content target="controller"}}>
  96. {{t common.reUpgrade}}
  97. </a>
  98. </li>
  99. {{/if}}
  100. {{#if view.isInstallFailed}}
  101. <li {{bindAttr class="view.noActionAvailable"}}>
  102. <a href="javascript:void(null)" data-toggle="modal" {{action "installComponent" view.content target="controller"}}>
  103. {{t common.reinstall}}
  104. </a>
  105. </li>
  106. {{/if}}
  107. {{/unless}}
  108. </ul>
  109. </div>
  110. {{/if}}
  111. </div>
  112. {{/view}}
  113. </div>
  114. {{/each}}
  115. {{/if}}
  116. {{!clients and add component button}}
  117. <div class="clients row-fluid">
  118. <div class="span7 row">
  119. {{#if view.clients.length}}
  120. <div class="span3 align-right">{{t common.clients}}&nbsp;/</div>
  121. <div class="span8">
  122. {{#each component in view.clients}}
  123. {{#if component.isLast}}
  124. {{component.displayName}}
  125. {{else}}
  126. {{component.displayName}},
  127. {{/if}}
  128. {{/each}}
  129. </div>
  130. {{/if}}
  131. </div>
  132. <div class="span5 row">
  133. {{#if App.isAdmin}}
  134. {{#if view.isAddComponent}}
  135. {{#if view.addableComponents.length}}
  136. <div class="btn-group">
  137. <button id="add_component" class="btn btn-info dropdown-toggle" data-toggle="dropdown">
  138. {{t common.addComponent}}
  139. <span class="caret pull-right"></span>
  140. </button>
  141. <ul class="dropdown-menu">
  142. {{#each component in view.addableComponents}}
  143. <li>
  144. <a href="javascript:void(null)" data-toggle="modal" {{action addComponent component target="controller"}}>
  145. {{component.displayName}}
  146. </a>
  147. </li>
  148. {{/each}}
  149. </ul>
  150. </div>
  151. {{/if}}
  152. {{/if}}
  153. {{/if}}
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. <div class="host-configuration">
  159. <div class="box">
  160. <div class="box-header">
  161. <h4>{{t hosts.host.summary.header}}</h4>
  162. </div>
  163. <div class="host-summary-content">
  164. <dl class="dl-horizontal">
  165. <dt>{{t hosts.host.summary.hostname}}:</dt><dd>&nbsp;{{view.content.publicHostName}}</dd>
  166. <dt>{{t common.ipAddress}}:</dt><dd>&nbsp;{{view.content.ip}}</dd>
  167. <dt>{{t common.os}}:</dt><dd>&nbsp;{{view.content.osType}}&nbsp;({{view.content.osArch}})</dd>
  168. <dt>{{t common.cpu}}:</dt><dd>&nbsp;{{view.content.cpu}}</dd>
  169. <dt>{{t common.disk}}:</dt><dd>&nbsp;{{view.content.diskInfoBar}}</dd>
  170. <dt>{{t common.memory}}:</dt><dd>&nbsp;{{view.content.memoryFormatted}}</dd>
  171. <dt>{{t common.loadAvg}}:</dt><dd>&nbsp;{{view.content.loadAvg}}</dd>
  172. <dt>{{t hosts.host.summary.agentHeartbeat}}:</dt><dd>{{view.timeSinceHeartBeat}}</dd>
  173. </dl>
  174. </div>
  175. </div>
  176. </div>
  177. </div>
  178. {{!metrics}}
  179. <div class="span6">
  180. <div class="box">
  181. <div class="box-header">
  182. <h4>{{t hosts.host.summary.hostMetrics}}</h4>
  183. <div class="btn-group">
  184. <a class="btn" rel="tooltip" title="Go to Ganglia" {{action "showGangliaCharts" target="view"}}><i class="icon-link"></i></a>
  185. </div>
  186. </div>
  187. <div>
  188. {{view App.MainHostMetricsView contentBinding="view.content"}}
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </div>