[ARVADOS] created: dcf5e0cef46e3aa3baba27da3f922b1c357ba3f3

git at public.curoverse.com git at public.curoverse.com
Fri Sep 12 16:32:09 EDT 2014


        at  dcf5e0cef46e3aa3baba27da3f922b1c357ba3f3 (commit)


commit dcf5e0cef46e3aa3baba27da3f922b1c357ba3f3
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Sep 12 16:32:01 2014 -0400

    Working on recent pipelines/collections tables

diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index f147207..a0ed2ea 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -694,7 +694,22 @@ class ApplicationController < ActionController::Base
 
   helper_method :running_pipelines
   def running_pipelines
-    PipelineInstance.where(state: "RunningOnServer").sort_by { |x| x.started_at }.reverse
+    PipelineInstance.filter([["state", "=", "RunningOnServer"]]).sort_by { |x| (x.started_at rescue x.modified_at) }
+  end
+
+  helper_method :finished_pipelines
+  def finished_pipelines lim
+    PipelineInstance.limit(lim).filter([["state", "in", ["Completed", "Failed", "Cancelled"]]]).sort_by { |x| (x.finished_at rescue x.modified_at) }.reverse
+  end
+
+  helper_method :recent_collections
+  def recent_collections lim
+    c = Collection.limit(lim).filter([["owner_uuid", "is_a", "arvados#group"]]).sort_by { |x| x.modified_at }.reverse
+    own = {}
+    Group.filter([["uuid", "in", c.map(&:owner_uuid)]]).each do |g|
+      own[g[:uuid]] = g
+    end
+    {collections: c, owners: own}
   end
 
   helper_method :my_project_tree
diff --git a/apps/workbench/app/views/projects/_compute_node_status.html.erb b/apps/workbench/app/views/projects/_compute_node_status.html.erb
index 5342a17..db7326e 100644
--- a/apps/workbench/app/views/projects/_compute_node_status.html.erb
+++ b/apps/workbench/app/views/projects/_compute_node_status.html.erb
@@ -2,7 +2,7 @@
 
   <% nodes = Node.all %>
 
-  <div class="col-sm-4 compute-summary-numbers">
+  <div class="col-sm-3 compute-summary-numbers">
     <div class="panel panel-default">
     <table>
       <colgroup>
@@ -26,7 +26,7 @@
     </table>
     </div>
   </div>
-  <div class="col-sm-8">
+  <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"] %>
diff --git a/apps/workbench/app/views/projects/index.html.erb b/apps/workbench/app/views/projects/index.html.erb
index 92ec186..4288c69 100644
--- a/apps/workbench/app/views/projects/index.html.erb
+++ b/apps/workbench/app/views/projects/index.html.erb
@@ -53,12 +53,17 @@
   <%= render partial: 'compute_node_status' %>
 
   <div class="row">
-    <div class="col-md-4">
+    <div class="col-md-3">
       <div class="panel panel-default">
         <div class="panel-heading">Pipelines running</div>
         <div class="panel-body">
           <% running_pipelines.each do |p| %>
-            <%= p %>
+            <div>
+            <%= link_to_if_arvados_object p, friendly_name: true %>
+            </div>
+            <div>
+              [Progress] <span class="pull-right"><%= p[:modified_at] %></span>
+            </div>
           <% end %>
         </div>
       </div>
@@ -67,13 +72,28 @@
       <div class="panel panel-default">
         <div class="panel-heading">Recently finished pipelines</div>
         <div class="panel-body">
+          <% finished_pipelines(8).each do |p| %>
+            <div>
+              <%= link_to_if_arvados_object p, friendly_name: true %>
+            </div>
+          <% end %>
         </div>
       </div>
     </div>
-    <div class="col-md-4">
+    <div class="col-md-5">
       <div class="panel panel-default">
         <div class="panel-heading">Recent collections</div>
-        <div class="panel-body">
+        <div class="panel-body" style="overflow-x: scroll;">
+          <% r = recent_collections(8) %>
+          <% r[:collections].each do |p| %>
+            <div>
+              <i class="fa fa-fw fa-folder-o"></i><%= link_to_if_arvados_object r[:owners][p[:owner_uuid]], friendly_name: true %>/
+              <span class="pull-right"><%= p[:modified_at] %></span>
+            </div>
+            <div style="margin-left: 1em">
+              <i class="fa fa-fw fa-archive"></i><%= link_to_if_arvados_object p, friendly_name: true %>
+            </div>
+          <% end %>
         </div>
       </div>
     </div>

commit 90ecfcca3bcfd82b91d396c271e19698ae970715
Merge: 63b52a3 c78412e
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Sep 12 15:52:30 2014 -0400

    Merge branch 'master' into 3605-improved-dashboard


commit 63b52a3a8d2fb55bd6aa0386e7d86851915be5af
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Sep 12 15:52:03 2014 -0400

    3605: Dashboard compute node and pipeline status work in progress

diff --git a/apps/workbench/app/assets/javascripts/application.js b/apps/workbench/app/assets/javascripts/application.js
index cf0812a..950ee50 100644
--- a/apps/workbench/app/assets/javascripts/application.js
+++ b/apps/workbench/app/assets/javascripts/application.js
@@ -205,4 +205,9 @@ jQuery(function($){
         });
     });
 
+    $(document).on('click', '.compute-detail', function(e) {
+        console.log("woble");
+        $(e.target).collapse('hide');
+    });
+
 });
diff --git a/apps/workbench/app/assets/stylesheets/projects.css.scss b/apps/workbench/app/assets/stylesheets/projects.css.scss
index 53b352d..724c40a 100644
--- a/apps/workbench/app/assets/stylesheets/projects.css.scss
+++ b/apps/workbench/app/assets/stylesheets/projects.css.scss
@@ -10,3 +10,28 @@ div.scroll-20em {
     height: 20em;
     overflow-y: scroll;
 }
+
+.compute-summary {
+    margin: 0.1em;
+}
+
+.compute-summary-head {
+    margin-left: 0.3em;
+}
+
+.compute-detail {
+    border: 1px solid;
+    border-color: #DDD;
+    border-radius: 3px;
+    padding: 0.2em;
+    position: absolute;
+    z-index: 1;
+    background: white;
+}
+
+.compute-summary-numbers table {
+  width: 100%;
+  td,th {
+    text-align: center;
+  }
+}
\ No newline at end of file
diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index 8acaa60..f147207 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -692,6 +692,11 @@ class ApplicationController < ActionController::Base
     end.reverse
   end
 
+  helper_method :running_pipelines
+  def running_pipelines
+    PipelineInstance.where(state: "RunningOnServer").sort_by { |x| x.started_at }.reverse
+  end
+
   helper_method :my_project_tree
   def my_project_tree
     build_project_trees
diff --git a/apps/workbench/app/views/projects/_compute_node_status.html.erb b/apps/workbench/app/views/projects/_compute_node_status.html.erb
new file mode 100644
index 0000000..5342a17
--- /dev/null
+++ b/apps/workbench/app/views/projects/_compute_node_status.html.erb
@@ -0,0 +1,48 @@
+<div class="row">
+
+  <% nodes = Node.all %>
+
+  <div class="col-sm-4 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>
+    </div>
+  </div>
+  <div class="col-sm-8">
+    <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 %>
+    </div>
+  </div>
+</div>
diff --git a/apps/workbench/app/views/projects/index.html.erb b/apps/workbench/app/views/projects/index.html.erb
index 219bad2..92ec186 100644
--- a/apps/workbench/app/views/projects/index.html.erb
+++ b/apps/workbench/app/views/projects/index.html.erb
@@ -49,6 +49,36 @@
       </div>
     </div>
   </div>
+
+  <%= render partial: 'compute_node_status' %>
+
+  <div class="row">
+    <div class="col-md-4">
+      <div class="panel panel-default">
+        <div class="panel-heading">Pipelines running</div>
+        <div class="panel-body">
+          <% running_pipelines.each do |p| %>
+            <%= p %>
+          <% end %>
+        </div>
+      </div>
+    </div>
+    <div class="col-md-4">
+      <div class="panel panel-default">
+        <div class="panel-heading">Recently finished pipelines</div>
+        <div class="panel-body">
+        </div>
+      </div>
+    </div>
+    <div class="col-md-4">
+      <div class="panel panel-default">
+        <div class="panel-heading">Recent collections</div>
+        <div class="panel-body">
+        </div>
+      </div>
+    </div>
+  </div>
+
   <div class="row">
     <div class="col-sm-12">
       <div class="panel panel-default">

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list