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:18:47 UTC
svn commit: r962040 - in /incubator/deltacloud/trunk/framework:
app/controllers/ app/models/ app/views/api/ app/views/flavors/
app/views/images/ app/views/instances/ lib/converters/ lib/deltacloud/
Author: lutter
Date: Thu Jul 8 23:18:46 2010
New Revision: 962040
URL: http://svn.apache.org/viewvc?rev=962040&view=rev
Log:
Use app/models/**
Added:
incubator/deltacloud/trunk/framework/app/models/base_model.rb
incubator/deltacloud/trunk/framework/app/models/flavor.rb
incubator/deltacloud/trunk/framework/app/models/image.rb
incubator/deltacloud/trunk/framework/app/models/instance.rb
incubator/deltacloud/trunk/framework/app/views/api/show.xml.haml
Removed:
incubator/deltacloud/trunk/framework/app/views/api/show.xml.erb
Modified:
incubator/deltacloud/trunk/framework/app/controllers/instances_controller.rb
incubator/deltacloud/trunk/framework/app/views/flavors/index.html.erb
incubator/deltacloud/trunk/framework/app/views/flavors/show.html.erb
incubator/deltacloud/trunk/framework/app/views/images/index.html.erb
incubator/deltacloud/trunk/framework/app/views/images/show.html.erb
incubator/deltacloud/trunk/framework/app/views/instances/index.html.erb
incubator/deltacloud/trunk/framework/app/views/instances/new.html.erb
incubator/deltacloud/trunk/framework/app/views/instances/show.html.erb
incubator/deltacloud/trunk/framework/lib/converters/xml_converter.rb
incubator/deltacloud/trunk/framework/lib/deltacloud/base_driver.rb
Modified: incubator/deltacloud/trunk/framework/app/controllers/instances_controller.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/controllers/instances_controller.rb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/controllers/instances_controller.rb (original)
+++ incubator/deltacloud/trunk/framework/app/controllers/instances_controller.rb Thu Jul 8 23:18:46 2010
@@ -19,7 +19,7 @@ class InstancesController < ApplicationC
end
def show
- @instance = driver.instance( credentials, :id => params[:id] )
+ @instance = driver.instance( credentials, :id=>params[:id] )
respond_to do |format|
format.html {
@@ -34,39 +34,39 @@ class InstancesController < ApplicationC
end
def destroy
- driver.delete_instance( credentials, :id=> params[:id] )
+ driver.delete_instance( credentials, params[:id] )
redirect_to :action=>:show
end
def new
- @instance = {
+ @instance = Instance.new( {
:id=>params[:id],
:image_id=>params[:image_id],
- }
+ } )
@image = driver.image( credentials, :id => params[:image_id] )
- puts "ARCH #{@image[:architecture]}"
- @flavors = driver.flavors( credentials, { :architecture=>@image[:architecture] } )
+ @flavors = driver.flavors( credentials, { :architecture=>@image.architecture } )
end
def create
-
- @image = driver.image( credentials, :id => params[:image_id] )
+ @image = driver.image( credentials, :id=>params[:image_id] )
+ puts @image.inspect
respond_to do |format|
format.html {
if ( params[:flavor_id].nil? )
- @flavors = driver.flavors_by_architecture( credentials, @image[:architecture] )
- @instance = {
+ @flavors = driver.flavors_by_architecture( credentials, @image.architecture )
+ @instance = Instance.new( {
:id=>params[:id],
:image_id=>params[:image_id],
- }
+ } )
render :action=>:new and return
end
- instance = driver.create_instance( credentials, @image[:id], params[:flavor_id] )
- redirect_to instance_url( instance[:id] )
+ instance = driver.create_instance( credentials, @image.resource_id, params[:flavor_id] )
+ redirect_to instance_url( instance.resource_id )
}
format.xml {
- instance = driver.create_instance( credentials, @image[:id], params[:flavor_id] )
- render :xml=>convert_to_xml( :instance, instance), :status=>:created, :location=>instance_url( instance[:id] )
+ instance = driver.create_instance( credentials, @image.resource_id, params[:flavor_id] )
+ puts "RESULT #{instance.inspect}"
+ render :xml=>convert_to_xml( :instance, instance), :status=>:created, :location=>instance_url( instance.resource_id )
}
end
end
Added: incubator/deltacloud/trunk/framework/app/models/base_model.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/models/base_model.rb?rev=962040&view=auto
==============================================================================
--- incubator/deltacloud/trunk/framework/app/models/base_model.rb (added)
+++ incubator/deltacloud/trunk/framework/app/models/base_model.rb Thu Jul 8 23:18:46 2010
@@ -0,0 +1,11 @@
+
+class BaseModel
+ def initialize(init=nil)
+ if ( init )
+ self.resource_id=init[:id]
+ init.each{|k,v|
+ self.send( "#{k}=", v ) if ( self.respond_to?( "#{k}=" ) )
+ }
+ end
+ end
+end
Added: incubator/deltacloud/trunk/framework/app/models/flavor.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/models/flavor.rb?rev=962040&view=auto
==============================================================================
--- incubator/deltacloud/trunk/framework/app/models/flavor.rb (added)
+++ incubator/deltacloud/trunk/framework/app/models/flavor.rb Thu Jul 8 23:18:46 2010
@@ -0,0 +1,7 @@
+
+class Flavor < BaseModel
+ attr_accessor :resource_id
+ attr_accessor :architecture
+ attr_accessor :memory
+ attr_accessor :storage
+end
Added: incubator/deltacloud/trunk/framework/app/models/image.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/models/image.rb?rev=962040&view=auto
==============================================================================
--- incubator/deltacloud/trunk/framework/app/models/image.rb (added)
+++ incubator/deltacloud/trunk/framework/app/models/image.rb Thu Jul 8 23:18:46 2010
@@ -0,0 +1,7 @@
+
+class Image < BaseModel
+ attr_accessor :resource_id
+ attr_accessor :owner_id
+ attr_accessor :description
+ attr_accessor :architecture
+end
Added: incubator/deltacloud/trunk/framework/app/models/instance.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/models/instance.rb?rev=962040&view=auto
==============================================================================
--- incubator/deltacloud/trunk/framework/app/models/instance.rb (added)
+++ incubator/deltacloud/trunk/framework/app/models/instance.rb Thu Jul 8 23:18:46 2010
@@ -0,0 +1,13 @@
+
+class Instance < BaseModel
+
+ attr_accessor :resource_id
+ attr_accessor :owner_id
+ attr_accessor :image_id
+ attr_accessor :flavor_id
+ attr_accessor :state
+ attr_accessor :actions
+ attr_accessor :public_addresses
+ attr_accessor :private_addresses
+
+end
Added: incubator/deltacloud/trunk/framework/app/views/api/show.xml.haml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/api/show.xml.haml?rev=962040&view=auto
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/api/show.xml.haml (added)
+++ incubator/deltacloud/trunk/framework/app/views/api/show.xml.haml Thu Jul 8 23:18:46 2010
@@ -0,0 +1,3 @@
+%api{ :version=>@version }
+ - for entry_point in @entry_points
+ %link{ :rel=>entry_point[0], :href=>entry_point[1] }
Modified: incubator/deltacloud/trunk/framework/app/views/flavors/index.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/flavors/index.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/flavors/index.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/flavors/index.html.erb Thu Jul 8 23:18:46 2010
@@ -19,16 +19,16 @@
<% for flavor in @flavors %>
<tr>
<td>
- <%= link_to flavor[:id], flavor_url( flavor[:id] ) %>
+ <%= link_to flavor.resource_id, flavor_url( flavor.resource_id ) %>
</td>
<td>
- <%= flavor[:architecture] %>
+ <%= flavor.architecture %>
</td>
<td>
- <%= flavor[:memory] %> GB
+ <%= flavor.memory %> GB
</td>
<td>
- <%= flavor[:storage] %> GB
+ <%= flavor.storage %> GB
</td>
</tr>
<% end %>
Modified: incubator/deltacloud/trunk/framework/app/views/flavors/show.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/flavors/show.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/flavors/show.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/flavors/show.html.erb Thu Jul 8 23:18:46 2010
@@ -1,4 +1,4 @@
-<h1><%= @flavor[:id] %></h1>
+<h1><%= @flavor.resource_id %></h1>
<dl>
<di>
@@ -6,7 +6,7 @@
Architecture
</dt>
<dd>
- <%= @flavor[:architecture] %>
+ <%= @flavor.architecture %>
</dd>
</di>
<di>
@@ -14,7 +14,7 @@
Memory
</dt>
<dd>
- <%= @flavor[:memory] %> GB
+ <%= @flavor.memory %> GB
</dd>
</di>
<di>
@@ -22,7 +22,7 @@
Storage
</dt>
<dd>
- <%= @flavor[:storage] %> GB
+ <%= @flavor.storage %> GB
</dd>
</di>
</dl>
Modified: incubator/deltacloud/trunk/framework/app/views/images/index.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/images/index.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/images/index.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/images/index.html.erb Thu Jul 8 23:18:46 2010
@@ -19,16 +19,16 @@
<% for image in @images %>
<tr>
<td>
- <%= link_to image[:id], image_url( image[:id] ) %>
+ <%= link_to image.resource_id, image_url( image.resource_id ) %>
</td>
<td>
- <%= link_to image[:owner_id], images_url( :owner=>image[:owner_id] ) %>
+ <%= link_to image.owner_id, images_url( :owner=>image.owner_id ) %>
</td>
<td>
- <%= image[:architecture] %>
+ <%= image.architecture %>
</td>
<td>
- <%= image[:description] %>
+ <%= image.description %>
</td>
</tr>
<% end %>
Modified: incubator/deltacloud/trunk/framework/app/views/images/show.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/images/show.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/images/show.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/images/show.html.erb Thu Jul 8 23:18:46 2010
@@ -1,6 +1,6 @@
<h1>Image</h1>
-<h2><%= @image[:id] %></h2>
+<h2><%= @image.resource_id %></h2>
<dl>
<di>
@@ -8,7 +8,7 @@
Owner
</dt>
<dd>
- <%= link_to @image[:owner_id], images_url( :owner=>@image[:owner_id] ) %>
+ <%= link_to @image.owner_id, images_url( :owner=>@image.owner_id ) %>
</dd>
</di>
<di>
@@ -16,7 +16,7 @@
Architecture
</dt>
<dd>
- <%= @image[:architecture] %>
+ <%= @image.architecture %>
</dd>
</di>
<di>
@@ -24,11 +24,11 @@
Description
</dt>
<dd>
- <%= @image[:description] %>
+ <%= @image.description %>
</dd>
</di>
</dl>
<div>
- <%= link_to 'launch', new_instance_url( :image_id=>@image[:id] ) %>
+ <%= link_to 'launch', new_instance_url( :image_id=>@image.resource_id ) %>
</div>
Modified: incubator/deltacloud/trunk/framework/app/views/instances/index.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/instances/index.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/instances/index.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/instances/index.html.erb Thu Jul 8 23:18:46 2010
@@ -24,24 +24,24 @@
<% for instance in @instances %>
<tr>
<td>
- <%= link_to instance[:id], instance_url( instance[:id] ) %>
+ <%= link_to instance.resource_id, instance_url( instance.resource_id ) %>
</td>
<td>
- <%= link_to instance[:owner_id], images_url( :owner=>instance[:owner_id] ) %>
+ <%= link_to instance.owner_id, images_url( :owner=>instance.owner_id ) %>
</td>
<td>
- <%= link_to instance[:image_id], image_url( instance[:image_id] ) %>
+ <%= link_to instance.image_id, image_url( instance.image_id ) %>
</td>
<td>
- <%= link_to instance[:flavor_id], flavor_url( instance[:flavor_id] ) %>
+ <%= link_to instance.flavor_id, flavor_url( instance.flavor_id ) %>
</td>
<td>
- <%= instance[:state] %>
+ <%= instance.state %>
</td>
<td>
- <%# instance.class.actions.each do |action| %>
- <%#= link_to action, polymorphic_url( instance, :action=>action ), :method=>:post %>
- <%# end %>
+ <% instance.actions.each do |action| %>
+ <%= link_to action, self.send( "#{action}_instance_url", instance.resource_id ), :method=>:post %>
+ <% end %>
</td>
</tr>
<% end %>
Modified: incubator/deltacloud/trunk/framework/app/views/instances/new.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/instances/new.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/instances/new.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/instances/new.html.erb Thu Jul 8 23:18:46 2010
@@ -1,17 +1,17 @@
<h1>New Instance</h1>
-<h2><%= @image[:id] %></h2>
-<h3><%= @image[:description] %></h3>
+<h2><%= @image.resource_id %></h2>
+<h3><%= @image.description %></h3>
<% form_tag instances_url do %>
- <%= hidden_field_tag :image_id, @instance[:image_id] %>
+ <%= hidden_field_tag :image_id, @instance.image_id %>
<% for flavor in @flavors %>
<div class="radio-group">
- <label for="flavor_id_<%=flavor[:id]%>">
- <%= radio_button_tag 'flavor_id', flavor[:id] %>
- <%= flavor[:id] %><br/>
+ <label for="flavor_id_<%=flavor.resource_id%>">
+ <%= radio_button_tag 'flavor_id', flavor.resource_id %>
+ <%= flavor.resource_id %><br/>
<span class="radio-group-details">
- <%= flavor[:architecture] %>, <%= flavor[:memory] %> GB, <%= flavor[:storage] %> GB
+ <%= flavor.architecture %>, <%= flavor.memory %> GB, <%= flavor.storage %> GB
</span>
</label>
</div>
Modified: incubator/deltacloud/trunk/framework/app/views/instances/show.html.erb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/app/views/instances/show.html.erb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/app/views/instances/show.html.erb (original)
+++ incubator/deltacloud/trunk/framework/app/views/instances/show.html.erb Thu Jul 8 23:18:46 2010
@@ -1,5 +1,5 @@
-<h1><%= @instance[:id] %></h1>
+<h1><%= @instance.resource_id %></h1>
<dl>
<di>
@@ -7,7 +7,7 @@
Image
</dt>
<dd>
- <%= link_to @instance[:image_id], image_url( @instance[:image_id] ) %>
+ <%= link_to @instance.image_id, image_url( @instance.image_id ) %>
</dd>
</di>
<di>
@@ -15,7 +15,7 @@
Owner
</dt>
<dd>
- <%= @instance[:owner_id] %>
+ <%= @instance.owner_id %>
</dd>
</di>
<di>
@@ -23,7 +23,7 @@
Flavor
</dt>
<dd>
- <%= link_to @instance[:flavor_id], flavor_url( @instance[:flavor_id] ) %>
+ <%= link_to @instance.flavor_id, flavor_url( @instance.flavor_id ) %>
</dd>
</di>
<di>
@@ -31,30 +31,34 @@
State
</dt>
<dd>
- <%= @instance[:state] %>
+ <%= @instance.state %>
</dd>
</di>
<di>
<dt>
- Public Address
+ Public Addresses
</dt>
<dd>
- <%= @instance[:public_address] %>
+ <% for address in @instance.public_addresses %>
+ <div><%= address %></div>
+ <% end %>
</dd>
</di>
<di>
<dt>
- Private Address
+ Private Addresses
</dt>
<dd>
- <%= @instance[:private_address] %>
+ <% for address in @instance.private_addresses %>
+ <div><%= address %></div>
+ <% end %>
</dd>
</di>
</dl>
<div>
- <%# @instance.class.actions.each do |action| %>
- <%#= link_to action, polymorphic_url( @instance, :action=>action ), :method=>:post %>
- <%# end %>
- <%= link_to 'delete', instance_url( @instance[:id] ), :method=>:delete %>
+ <% @instance.actions.each do |action| %>
+ <%= link_to action, send( "#{action}_instance_url", @instance.resource_id ), :method=>:post %>
+ <% end %>
+ <%= link_to 'delete', instance_url( @instance.resource_id ), :method=>:delete %>
</div>
Modified: incubator/deltacloud/trunk/framework/lib/converters/xml_converter.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/lib/converters/xml_converter.rb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/lib/converters/xml_converter.rb (original)
+++ incubator/deltacloud/trunk/framework/lib/converters/xml_converter.rb Thu Jul 8 23:18:46 2010
@@ -1,3 +1,4 @@
+require 'flavor'
module Converters
@@ -31,39 +32,48 @@ module Converters
convert( e, builder )
end
end
- elsif ( obj.is_a?( Hash ) )
- obj = obj.dup
- obj_id = obj.delete(:id)
- builder.__send__( Converters.tag_name( @type ), :href=>@link_builder.send( "#{@type}_url", obj_id ) ) do
- builder.id( obj_id )
- obj.each do |k,v|
- if ( k.to_s =~ /^(.*)_ids$/ )
- type = $1
- builder.__send__( type.pluralize ) do
- v.each do |each_id|
- builder.__send__( type, @link_builder.send( "#{type}_url", each_id ) )
+ else
+ puts "dump #{obj.inspect} #{obj.is_a?( Flavor )}"
+ case ( obj )
+ when Flavor
+ builder.flavor( :href=>@link_builder.send( :flavor_url, obj.resource_id ) ) {
+ builder.id( obj.resource_id )
+ builder.architecture( obj.architecture )
+ builder.memory( obj.memory )
+ builder.storage( obj.storage )
+ }
+ when Image
+ builder.image( :href=>@link_builder.send( :image_url, obj.resource_id ) ) {
+ builder.id( obj.resource_id )
+ builder.owner_id( obj.owner_id )
+ builder.description( obj.description )
+ builder.architecture( obj.architecture )
+ }
+ when Instance
+ builder.instance( :href=>@link_builder.send( :instance_url, obj.resource_id ) ) {
+ builder.id( obj.resource_id )
+ builder.owner_id( obj.owner_id )
+ builder.image( :href=>@link_builder.send( :image_url, obj.image_id ) )
+ builder.flavor( :href=>@link_builder.send( :flavor_url, obj.flavor_id ) )
+ builder.state( obj.state )
+ builder.actions {
+ if ( obj.actions )
+ obj.actions.each do |action|
+ builder.link( :rel=>action, :href=>@link_builder.send( "#{action}_instance_url", obj.resource_id ) )
+ end
end
- end
- elsif ( k.to_s =~/^(.*)_id$/ )
- type = $1
- url_type = Converters.url_type( $1 )
- unless ( url_type.nil? )
- if ( v.nil? )
- builder.__send__( type )
- else
- builder.__send__( type, @link_builder.send( "#{url_type}_url", v ) )
- end
- else
- if ( v.nil? )
- builder.__send__( "#{type}_id" )
- else
- builder.__send__( "#{type}_id", v )
- end
- end
- else
- builder.__send__( Converters.tag_name( k ), v )
- end
- end
+ }
+ builder.__send__( 'public-addresses' ) {
+ obj.public_addresses.each do |address|
+ builder.address( address )
+ end
+ }
+ builder.__send__( 'private-addresses' ) {
+ obj.private_addresses.each do |address|
+ builder.address( address )
+ end
+ }
+ }
end
end
return builder.target!
Modified: incubator/deltacloud/trunk/framework/lib/deltacloud/base_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/framework/lib/deltacloud/base_driver.rb?rev=962040&r1=962039&r2=962040&view=diff
==============================================================================
--- incubator/deltacloud/trunk/framework/lib/deltacloud/base_driver.rb (original)
+++ incubator/deltacloud/trunk/framework/lib/deltacloud/base_driver.rb Thu Jul 8 23:18:46 2010
@@ -45,10 +45,11 @@ module DeltaCloud
return collection if opts.nil?
return collection if opts[attribute].nil?
filter = opts[attribute]
+ method = ( attribute == :id ? :resource_id : attribute )
if ( filter.is_a?( Array ) )
- return collection.select{|e| filter.include?( e[attribute] ) }
+ return collection.select{|e| filter.include?( e.send(method) ) }
else
- return collection.select{|e| filter == e[attribute] }
+ return collection.select{|e| puts e.send( method ) ; filter == e.send(method) }
end
end
end