You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2010/07/09 01:29:48 UTC

svn commit: r962161 - in /incubator/deltacloud/trunk/server: app/controllers/ app/views/instance_states/ config/initializers/ public/stylesheets/ public/stylesheets/sass/

Author: lutter
Date: Thu Jul  8 23:29:47 2010
New Revision: 962161

URL: http://svn.apache.org/viewvc?rev=962161&view=rev
Log:
Integrate FSM picture.

Added:
    incubator/deltacloud/trunk/server/app/views/instance_states/show.gv.erb
Modified:
    incubator/deltacloud/trunk/server/app/controllers/instance_states_controller.rb
    incubator/deltacloud/trunk/server/app/views/instance_states/show.html.erb
    incubator/deltacloud/trunk/server/config/initializers/mime_types.rb
    incubator/deltacloud/trunk/server/public/stylesheets/application.css
    incubator/deltacloud/trunk/server/public/stylesheets/sass/application.sass

Modified: incubator/deltacloud/trunk/server/app/controllers/instance_states_controller.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/app/controllers/instance_states_controller.rb?rev=962161&r1=962160&r2=962161&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/app/controllers/instance_states_controller.rb (original)
+++ incubator/deltacloud/trunk/server/app/controllers/instance_states_controller.rb Thu Jul  8 23:29:47 2010
@@ -15,6 +15,8 @@
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
+require 'open3'
+
 class InstanceStatesController < ApplicationController
 
   include DriverHelper
@@ -29,6 +31,18 @@ class InstanceStatesController < Applica
       format.html
       format.json
       format.xml
+      format.gv
+      format.png {
+        gv = render_to_string( :file=>'instance_states/show.gv.erb' )
+        png =  ''
+        cmd = 'dot -Gsize="7.7,7" -Tpng'
+        Open3.popen3( cmd ) do |stdin, stdout, stderr|
+          stdin.write( gv )
+          stdin.close()
+          png = stdout.read
+        end
+        render :text=>png, :content_type=>'image/png'
+      }
     end
   end
 

Added: incubator/deltacloud/trunk/server/app/views/instance_states/show.gv.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/app/views/instance_states/show.gv.erb?rev=962161&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/app/views/instance_states/show.gv.erb (added)
+++ incubator/deltacloud/trunk/server/app/views/instance_states/show.gv.erb Thu Jul  8 23:29:47 2010
@@ -0,0 +1,37 @@
+digraph instance_states {
+  rankdir=LR;
+  <% for state in @machine.states do %>
+    <%= state -%> 
+      [
+        label="<%= state %>",
+        labelloc="t",
+        <% if ( state.name == :start || state.name == :finish ) %>
+          fontname="Liberation Sans Bold",
+          color="<%= state.name == :start ? 'darkgreen' : 'red' %>",
+          style="bold",
+          fontsize="15.0",
+        <% else %>
+          fontname="Liberation Sans",
+          shape="rectangle",
+          fontsize="20.0",
+        <% end %>
+      ]
+  <% end %>
+
+  <% for state in @machine.states do %>
+    <% for transition in state.transitions do %>
+      <%= state %> -> <%= transition.destination %> 
+        [ 
+          label="<%= transition.automatically? ? 'auto' : transition.action %>",
+          fontsize="20",
+          labelloc="t",
+          <% if transition.automatically? %>
+          fontcolor="darkgreen",
+          fontname="Liberation Sans Bold Italic",
+          <% else %>
+          fontname="Liberation Sans Bold",
+          <% end %>
+        ];
+    <% end %>
+  <% end %>
+}

Modified: incubator/deltacloud/trunk/server/app/views/instance_states/show.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/app/views/instance_states/show.html.erb?rev=962161&r1=962160&r2=962161&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/app/views/instance_states/show.html.erb (original)
+++ incubator/deltacloud/trunk/server/app/views/instance_states/show.html.erb Thu Jul  8 23:29:47 2010
@@ -1,6 +1,10 @@
 
 <h1>States</h1>
 
+<div id="state_graph">
+  <%= image_tag url_for( :format=>:png ) %>
+</div>
+
 <table class="states">
   <tr>
     <th>
@@ -46,3 +50,4 @@
     <% end %>
   <% end %>
 </table>
+

Modified: incubator/deltacloud/trunk/server/config/initializers/mime_types.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/config/initializers/mime_types.rb?rev=962161&r1=962160&r2=962161&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/config/initializers/mime_types.rb (original)
+++ incubator/deltacloud/trunk/server/config/initializers/mime_types.rb Thu Jul  8 23:29:47 2010
@@ -3,3 +3,8 @@
 # Add new mime types for use in respond_to blocks:
 # Mime::Type.register "text/richtext", :rtf
 # Mime::Type.register_alias "text/html", :iphone
+
+#Mime::Type.register 'text/vnd.graphviz', :gv
+Mime::Type.register_alias 'text/plain', :gv
+
+Mime::Type.register 'image/png', :png

Modified: incubator/deltacloud/trunk/server/public/stylesheets/application.css
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/public/stylesheets/application.css?rev=962161&r1=962160&r2=962161&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/public/stylesheets/application.css (original)
+++ incubator/deltacloud/trunk/server/public/stylesheets/application.css Thu Jul  8 23:29:47 2010
@@ -89,3 +89,8 @@ input[type='radio'] {
   margin-top: 1ex;
   margin-left: 1ex;
   margin-bottom: 1ex; }
+
+#state_graph {
+  display: block;
+  margin-bottom: 2em;
+  text-align: center; }

Modified: incubator/deltacloud/trunk/server/public/stylesheets/sass/application.sass
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/public/stylesheets/sass/application.sass?rev=962161&r1=962160&r2=962161&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/public/stylesheets/sass/application.sass (original)
+++ incubator/deltacloud/trunk/server/public/stylesheets/sass/application.sass Thu Jul  8 23:29:47 2010
@@ -101,3 +101,9 @@ input[type='radio']
   :margin-top 1ex
   :margin-left 1ex
   :margin-bottom 1ex
+
+#state_graph
+  :display block
+  :margin-bottom 2em
+  :text-align center
+