On 24/02/10 13:14 +0100, mfojtik(a)redhat.com wrote:
Oh sorry for:
+ $stderr.puts opts.inspect
This will be removed in final patch.
---
client/bin/deltacloudc | 2 ++
.../lib/deltacloud/drivers/ec2/ec2_driver.rb | 2 ++
.../lib/deltacloud/drivers/mock/mock_driver.rb | 2 ++
.../drivers/opennebula/opennebula_driver.rb | 2 ++
.../drivers/rackspace/rackspace_driver.rb | 1 +
.../lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 2 ++
.../deltacloud/drivers/rimu/rimu_hosting_driver.rb | 1 +
server/libexec/server.rb | 4 +++-
8 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/client/bin/deltacloudc b/client/bin/deltacloudc
index 8058eac..7546107 100755
--- a/client/bin/deltacloudc
+++ b/client/bin/deltacloudc
@@ -39,6 +39,7 @@ BANNER
opts.on( nil, '--arch ARCH', 'Architecture (x86, x86_64)') { |id|
options[:architecture] = id }
opts.on( nil, '--flavor_id FLAVOR', 'Flavor') { |id|
options[:flavor_id] = id }
opts.on( nil, '--name NAME', 'Name (for instance eg.)') { |name|
options[:name] = name }
+ opts.on( '-s STATE', '--state STATE', 'Instance state (RUNNING,
STOPPED)') { |state| options[:state] = state }
opts.on( '-u', '--url URL', 'API url ($API_URL variable)') {
|url| options[:api_url] = url }
opts.on( '-l', '--list', 'List collections/operations') { |id|
options[:list] = true }
opts.on( '-h', '--help', 'Display this screen' ) { puts opts ;
exit }
@@ -101,6 +102,7 @@ if options[:collection] and ( options[:operation].nil? or
options[:operation].eq
params = {}
params.merge!(:architecture => options[:architecture]) if options[:architecture]
params.merge!(:id => options[:id]) if options[:id]
+ params.merge!(:state => options[:state]) if options[:state]
client.send(options[:collection].to_s, params).each do |model|
puts model.to_plain
end
diff --git a/server/libexec/lib/deltacloud/drivers/ec2/ec2_driver.rb
b/server/libexec/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 08c6c7c..dc280fa 100644
--- a/server/libexec/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -179,6 +179,8 @@ class EC2Driver < Deltacloud::BaseDriver
instances << convert_instance( ec2_instance )
end
end
+ instances = filter_on( instances, :id, opts )
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/lib/deltacloud/drivers/mock/mock_driver.rb
b/server/libexec/lib/deltacloud/drivers/mock/mock_driver.rb
index 73cdcc4..bdd1224 100644
--- a/server/libexec/lib/deltacloud/drivers/mock/mock_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/mock/mock_driver.rb
@@ -135,6 +135,7 @@ class MockDriver < Deltacloud::BaseDriver
#
def instances(credentials, opts=nil)
+ $stderr.puts opts.inspect
check_credentials( credentials )
instances = []
Dir[ "#{STORAGE_ROOT}/instances/*.yml" ].each do |instance_file|
@@ -146,6 +147,7 @@ class MockDriver < Deltacloud::BaseDriver
end
end
instances = filter_on( instances, :id, opts )
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/lib/deltacloud/drivers/opennebula/opennebula_driver.rb
b/server/libexec/lib/deltacloud/drivers/opennebula/opennebula_driver.rb
index e88131a..e49c662 100644
--- a/server/libexec/lib/deltacloud/drivers/opennebula/opennebula_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/opennebula/opennebula_driver.rb
@@ -141,6 +141,8 @@ class OpennebulaDriver < Deltacloud::BaseDriver
instances << convert_instance(computexml.to_s(), credentials)
end
+ instances = filter_on( instances, :id, opts )
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
b/server/libexec/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
index a71d722..d1aa03a 100644
--- a/server/libexec/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/rackspace/rackspace_driver.rb
@@ -106,6 +106,7 @@ class RackspaceDriver < Deltacloud::BaseDriver
instances << convert_srv_to_instance(racks.load_server_details(opts[:id]))
end
instances = filter_on( instances, :id, opts )
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
b/server/libexec/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index d026852..a9fbcc4 100644
--- a/server/libexec/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -190,6 +190,8 @@ class RHEVMDriver < Deltacloud::BaseDriver
vms.each do |vm|
instances << vm_to_instance(vm)
end
+ instances = filter_on( instances, :id, opts )
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/lib/deltacloud/drivers/rimu/rimu_hosting_driver.rb
b/server/libexec/lib/deltacloud/drivers/rimu/rimu_hosting_driver.rb
index 7cb7a7d..ad1eb04 100755
--- a/server/libexec/lib/deltacloud/drivers/rimu/rimu_hosting_driver.rb
+++ b/server/libexec/lib/deltacloud/drivers/rimu/rimu_hosting_driver.rb
@@ -68,6 +68,7 @@ class RimuHostingDriver < Deltacloud::BaseDriver
convert_srv_to_instance(inst)
end
instances = filter_on( instances, :id, opts)
+ instances = filter_on( instances, :state, opts )
instances
end
diff --git a/server/libexec/server.rb b/server/libexec/server.rb
index 58bccaa..95c532e 100644
--- a/server/libexec/server.rb
+++ b/server/libexec/server.rb
@@ -40,6 +40,7 @@ def filter_all(model)
filter.merge!(:id => params[:id]) if params[:id]
filter.merge!(:architecture => params[:architecture]) if params[:architecture]
filter.merge!(:owner_id => params[:owner_id]) if params[:owner_id]
+ filter.merge!(:state => params[:state]) if params[:state]
filter = nil if filter.keys.size.eql?(0)
safely do
singular = model.to_s.singularize.to_sym
@@ -201,7 +202,8 @@ collection :instances do
operation :index do
description "List all instances"
- param :id, :string
+ param :id, :string, :optional
+ param :state, :string, :optional
control { filter_all(:instances) }
end
--
1.6.6.2
--
--------------------------------------------------------
Michal Fojtik, mfojtik(a)redhat.com, +420 532 294 4307
Ruby / Ruby On Rails Developer
Deltacloud API:
http://deltacloud.org
--------------------------------------------------------