Merge branch 'master' into 4232-slow-pipes-n-jobs
[arvados.git] / apps / workbench / app / views / projects / _compute_node_status.html.erb
index db7326eb8848202fd669008a7737ce9ada42c0ff..527dc643e545123b8f1194ac254015882d29fd26 100644 (file)
@@ -1,48 +1,61 @@
-<div class="row">
+<h4>Queue</h4>
+<% queue = Job.queue %>
+<% if queue.any? %>
 
-  <% nodes = Node.all %>
-
-  <div class="col-sm-3 compute-summary-numbers">
-    <div class="panel panel-default">
-    <table>
-      <colgroup>
-        <col width="25%">
-        <col width="25%">
-        <col width="25%">
-        <col width="25%">
-      </colgroup>
-      <tr>
-        <td>0</td>
-        <td><%= nodes.select {|n| n.crunch_worker_state.in? ["busy", "idle"] }.size %></td>
-        <td><%= nodes.select {|n| n.crunch_worker_state == "busy" }.size %></td>
-        <td><%= nodes.select {|n| n.crunch_worker_state == "idle" }.size %></td>
-      </tr>
-      <tr>
-        <th>Queue</th>
-        <th>Nodes</th>
-        <th>Busy</th>
-        <th>Idle</th>
-      </tr>
-    </table>
+<% queue.each do |j| %>
+  <div class="row">
+    <div class="col-md-3 text-overflow-ellipsis">
+      <%= link_to_if_arvados_object j, friendly_name: true %>
+    </div>
+    <div class="col-md-4">
+      <%= render_localized_date(j[:created_at]) %>
+    </div>
+    <div class="col-md-3">
+      <%= render_runtime(Time.now - j[:created_at], false) %>
+    </div>
+    <div class="col-md-2">
+      <%= j[:priority] %>
     </div>
   </div>
-  <div class="col-sm-9">
-    <div class="clearfix" style="margin-top:0.5em; margin-bottom:0.5em">
-      <% nodes.sort_by { |n| n.hostname || "" }.each do |n| %>
-        <% if n.crunch_worker_state.in? ["busy", "idle"] %>
-          <div class="pull-left compute-summary">
-            <a data-toggle="collapse" href="#detail_<%= n.hostname %>" class="compute-summary-head label label-<%= if n.crunch_worker_state == 'busy' then 'primary' else 'default' end %>">
-              <%= n.hostname %>
-            </a>
-            <div id="detail_<%= n.hostname %>" class="collapse compute-detail">
-              state: <%= n.crunch_worker_state %><br>
-              <% [:total_cpu_cores, :total_ram_mb, :total_scratch_mb].each do |i| %>
-                <%= i.to_s.gsub '_', ' ' %>: <%= n.info[i] %><br>
-              <% end %>
-            </div>
-          </div>
-        <% end %>
-      <% end %>
+<% end %>
+  <div class="row">
+    <div class="col-md-3">
+      <b>Job</b>
+    </div>
+    <div class="col-md-4">
+      <b>Submitted</b>
     </div>
+    <div class="col-md-3">
+      <b>Queued</b>
+    </div>
+    <div class="col-md-2">
+      <b>Priority</b>
+    </div>
+  </div>
+  <% if Job.queue_size > queue.size %>
+    <i>Note: some items in the queue are not visible to you.</i>
+  <% end %>
+  <div>    
   </div>
+<% else %>
+  There are currently no jobs in your queue.
+<% end %>
+
+<h4>Node status</h4>
+<div class="compute-summary-nodelist">
+    <% nodes.sort_by { |n| n.hostname || "" }.each do |n| %>
+      <% if n.crunch_worker_state.in? ["busy", "idle"] and (Time.now - n[:last_ping_at]) < 3600 %>
+        <div class="compute-summary">
+          <a data-toggle="collapse" href="#detail_<%= n.hostname %>" class="compute-summary-head label label-<%= if n.crunch_worker_state == 'busy' then 'primary' else 'default' end %>">
+            <%= n.hostname %>
+          </a>
+          <div id="detail_<%= n.hostname %>" class="collapse compute-detail">
+            state: <%= n.crunch_worker_state %><br>
+            <% [:total_cpu_cores, :total_ram_mb, :total_scratch_mb].each do |i| %>
+              <%= i.to_s.gsub '_', ' ' %>: <%= n.info[i] %><br>
+            <% end %>
+          </div>
+        </div>
+      <% end %>
+    <% end %>
 </div>