{{!
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.
}}{{#raw}}{{{.}}}{{/raw}}{{^raw}}

<h1>Maintenance Manager state</h1>

<h3>Running operations</h3>
<table data-toggle="table" data-pagination="true" data-search="true" class="table table-striped">
  <thead>
    <tr>
      <th>Name</th>
      <th>Instances running</th>
    </tr>
  </thead>
  <tbody>
   {{#running_operations}}
    <tr>
      <td>{{name}}</td>
      <td>{{instances_running}}</td>
    </tr>
   {{/running_operations}}
  </tbody>
</table>

<h3>Recent completed operations</h3>
<table data-toggle="table" data-pagination="true" data-search="true" class="table table-striped">
  <thead>
    <tr>
      <th>Name</th>
      <th>Duration</th>
      <th>Time since op started</th>
    </tr>
  </thead>
  <tbody>
   {{#completed_operations}}
    <tr>
      <td>{{name}}</td>
      <td>{{duration}}</td>
      <td>{{time_since_start}}</td>
    </tr>
   {{/completed_operations}}
  </tbody>
</table>

<h3>Non-running operations</h3>
<table data-toggle="table" data-pagination="true" data-search="true" class="table table-striped">
  <thead>
    <tr>
      <th>Name</th>
      <th>Runnable</th>
      <th data-sorter="bytesSorter" data-sortable="true">RAM anchored</th>
      <th data-sorter="bytesSorter" data-sortable="true">Logs retained</th>
      <th data-sortable="true">Perf</th>
      <th data-sortable="true">Workload score</th>
    </tr>
  </thead>
  <tbody>
   {{#registered_operations}}
    <tr>
      <td>{{name}}</td>
      <td>{{runnable}}</td>
      <td>{{ram_anchored}}</td>
      <td>{{logs_retained}}</td>
      <td>{{perf}}</td>
      <td>{{workload_score}}</td>
    </tr>
   {{/registered_operations}}
  </tbody>
</table>

{{/raw}}
