You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/05/24 16:05:09 UTC
git commit: Core: Fixed run_on_instance view and wrong capability
checking
Updated Branches:
refs/heads/master aa7c79be7 -> 4954fb82b
Core: Fixed run_on_instance view and wrong capability checking
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/4954fb82
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/4954fb82
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/4954fb82
Branch: refs/heads/master
Commit: 4954fb82bd99f994a2d4c0fe4227f52f519221b9
Parents: aa7c79b
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu May 24 16:05:03 2012 +0200
Committer: Michal fojtik <mf...@redhat.com>
Committed: Thu May 24 16:05:03 2012 +0200
----------------------------------------------------------------------
server/lib/deltacloud/collections/instances.rb | 10 +++-
server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 8 ++-
server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb | 2 +-
server/views/instances/run_command.html.haml | 48 ++++++++--------
4 files changed, 40 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4954fb82/server/lib/deltacloud/collections/instances.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/instances.rb b/server/lib/deltacloud/collections/instances.rb
index 27e0c80..933ecaf 100644
--- a/server/lib/deltacloud/collections/instances.rb
+++ b/server/lib/deltacloud/collections/instances.rb
@@ -31,6 +31,13 @@ module Deltacloud::Collections
@keys = driver.keys(credentials) if driver.class.has_feature? :instances, :authentication_key
end
+ get route_for('/instances/:id/run') do
+ respond_to do |format|
+ @instance = driver.instances(credentials, :id => params[:id]).first
+ format.html {haml :"instances/run_command" }
+ end
+ end
+
collection :instances do
standard_show_operation
@@ -86,8 +93,7 @@ module Deltacloud::Collections
control { instance_action(:destroy) }
end
- action :run, :with_capability => :run_instance do
- param :id, :string, :required
+ action :run, :with_capability => :run_on_instance do
param :cmd, :string, :required, [], "Shell command to run on instance"
param :private_key, :string, :optional, [], "Private key in PEM format for authentication"
param :password, :string, :optional, [], "Password used for authentication"
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4954fb82/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 0ef0395..856f159 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -16,6 +16,8 @@
require 'aws'
+require_relative '../../runner'
+
class Instance
attr_accessor :keyname
attr_accessor :authn_error
@@ -768,7 +770,11 @@ module Deltacloud
when :s3 then Aws::S3
when :mon then Aws::Mon
end
- klass.new(credentials.user, credentials.password, {:server => endpoint_for_service(type), :connection_mode => :per_thread})
+ klass.new(credentials.user, credentials.password, {
+ :server => endpoint_for_service(type),
+ :connection_mode => :per_thread,
+ :logger => ENV['RACK_ENV'] == 'test' ? Logger.new('/dev/null') : Logger.new(STDOUT)
+ })
end
def default_image_owner
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4954fb82/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb b/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
index 62af399..0b73317 100644
--- a/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
+++ b/server/lib/deltacloud/drivers/fgcp/fgcp_driver.rb
@@ -16,6 +16,7 @@
# Author: Dies Koper <di...@fast.au.fujitsu.com>
require_relative 'fgcp_client'
+require_relative '../../runner'
require 'openssl'
require 'xmlsimple'
@@ -381,7 +382,6 @@ class FgcpDriver < Deltacloud::BaseDriver
end
def run_on_instance(credentials, opts={})
-p opts
target = instance(credentials, opts)
safely do
param = {}
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/4954fb82/server/views/instances/run_command.html.haml
----------------------------------------------------------------------
diff --git a/server/views/instances/run_command.html.haml b/server/views/instances/run_command.html.haml
index d42fc04..73a267a 100644
--- a/server/views/instances/run_command.html.haml
+++ b/server/views/instances/run_command.html.haml
@@ -1,25 +1,25 @@
-%h1
- Run command on
- = @instance.name || @instance.id
+=header "Run a command on #{@instance.name}"
+=subheader "#{@instance.id}"
-%form{ :action => run_instance_url(@instance.id), :method => :post }
- %p
- %label{ :for => :cmd } Desired command:
- %input{ :name => :cmd, :value => "", :type => :text}
- %p
- %fieldset{ :'data-role' => :fieldcontain}
- %legend Target instance IP address:
- - (@instance.public_addresses | @instance.private_addresses).each_with_index do |ip, idx|
- %label{ :for => ip.address }= "#{ip.address}"
- %input{ :name => :ip, :value => ip.address, :id => ip.address, :type => :radio, :'data-theme' => 'b', :checked => idx == 0 || nil}/
- %p
- %label{ :for => :port } Target port:
- %input{ :name => "port", :size => 5, :value => "22", :type => :text}
- %p
- %label{ :for => :private_key } Private key:
- %p
- %small Leave private key blank if using password authentication method
- %p
- %textarea{ :name => :private_key, :cols => 65, :rows => 20 }
- %p
- %input{ :type => :submit, :value => "Execute" }
+%div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'}
+ %form{ :action => api_url_for('/instances/%s/run' % @instance.id), :method => :post }
+ %p
+ %label{ :for => :cmd } Desired command:
+ %input{ :name => :cmd, :value => "", :type => :text}
+ %p
+ %fieldset{ :'data-role' => :fieldcontain}
+ %legend Target instance IP address:
+ - (@instance.public_addresses | @instance.private_addresses).each_with_index do |ip, idx|
+ %label{ :for => ip.address }= "#{ip.address}"
+ %input{ :name => :ip, :value => ip.address, :id => ip.address, :type => :radio, :'data-theme' => 'b', :checked => idx == 0 || nil}/
+ %p
+ %label{ :for => :port } Target port:
+ %input{ :name => "port", :size => 5, :value => "22", :type => :text}
+ %p
+ %label{ :for => :private_key } Private key:
+ %p
+ %small Leave private key blank if using password authentication method
+ %p
+ %textarea{ :name => :private_key, :cols => 65, :rows => 20 }
+ %p
+ %input{ :type => :submit, :value => "Execute" }