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 2010/08/11 10:24:42 UTC
svn commit: r984327 - in /incubator/deltacloud/trunk/client: bin/deltacloudc
lib/deltacloud.rb lib/plain_formatter.rb
Author: mfojtik
Date: Wed Aug 11 08:24:42 2010
New Revision: 984327
URL: http://svn.apache.org/viewvc?rev=984327&view=rev
Log:
Fixed command line client
Modified:
incubator/deltacloud/trunk/client/bin/deltacloudc
incubator/deltacloud/trunk/client/lib/deltacloud.rb
incubator/deltacloud/trunk/client/lib/plain_formatter.rb
Modified: incubator/deltacloud/trunk/client/bin/deltacloudc
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/bin/deltacloudc?rev=984327&r1=984326&r2=984327&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/bin/deltacloudc (original)
+++ incubator/deltacloud/trunk/client/bin/deltacloudc Wed Aug 11 08:24:42 2010
@@ -20,8 +20,8 @@
require 'rubygems'
require 'optparse'
require 'uri'
-require 'lib/deltacloud'
-require 'lib/plain_formatter'
+require 'lib/deltacloud.rb'
+require 'lib/plain_formatter.rb'
include DeltaCloud::PlainFormatter
@@ -80,8 +80,7 @@ collections.delete(:instance_states)
# with API documentation
if options[:list] and options[:collection].nil?
collections.each do |c|
- doc = client.fetch_documentation(c.to_s)
- puts sprintf("%-22s: %s", c.to_s[0, 22], doc[:description])
+ puts sprintf("%-22s", c.to_s[0, 22])
end
exit(0)
end
@@ -89,9 +88,9 @@ end
# If collection parameter is present and user requested list
# print all operation defined for collection with API documentation
if options[:list] and options[:collection]
- doc = client.fetch_documentation(options[:collection])
- doc[:operations].each do |c|
- puts sprintf("%-20s: %s", c[:name][0, 20], c[:description])
+ doc = client.documentation(options[:collection])
+ doc.operations.each do |c|
+ puts sprintf("%-20s: %s", c.operation, c.description)
end
exit(0)
end
Modified: incubator/deltacloud/trunk/client/lib/deltacloud.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/deltacloud.rb?rev=984327&r1=984326&r2=984327&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/deltacloud.rb (original)
+++ incubator/deltacloud/trunk/client/lib/deltacloud.rb Wed Aug 11 08:24:42 2010
@@ -328,7 +328,7 @@ module DeltaCloud
# Check if specified collection have wanted feature
def feature?(collection, name)
- @feature.has_key?(collection) && @feature[collection].include?(name)
+ @features.has_key?(collection) && @features[collection].include?(name)
end
# List available instance states and transitions between them
@@ -364,7 +364,8 @@ module DeltaCloud
request(:get, "/docs/#{collection}") do |body|
document = Nokogiri::XML(body)
if operation
- data[:description] = document.xpath('/docs/collection/operations/operation[@name = "'+operation+'"]/description').first
+ data[:operation] = operation
+ data[:description] = document.xpath('/docs/collection/operations/operation[@name = "'+operation+'"]/description').first.text.strip
return false unless data[:description]
data[:params] = []
(document/"/docs/collection/operations/operation[@name='#{operation}']/parameter").each do |param|
@@ -376,9 +377,11 @@ module DeltaCloud
end
else
data[:description] = (document/'/docs/collection/description').text
+ data[:collection] = collection
+ data[:operations] = (document/"/docs/collection/operations/operation").collect{ |o| o['name'] }
end
end
- return Documentation.new(data)
+ return Documentation.new(self, data)
end
private
@@ -393,15 +396,23 @@ module DeltaCloud
end
class Documentation
- attr_reader :description
- attr_reader :params
- def initialize(opts={})
- @description = opts[:description]
+ attr_reader :api, :description, :params, :collection_operations
+ attr_reader :collection, :operation
+
+ def initialize(api, opts={})
+ @description, @api = opts[:description], api
@params = parse_parameters(opts[:params]) if opts[:params]
+ @collection_operations = opts[:operations] if opts[:operations]
+ @collection = opts[:collection]
+ @operation = opts[:operation]
self
end
+ def operations
+ @collection_operations.collect { |o| api.documentation(@collection, o) }
+ end
+
class OperationParameter
attr_reader :name
attr_reader :type
Modified: incubator/deltacloud/trunk/client/lib/plain_formatter.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/plain_formatter.rb?rev=984327&r1=984326&r2=984327&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/plain_formatter.rb (original)
+++ incubator/deltacloud/trunk/client/lib/plain_formatter.rb Wed Aug 11 08:24:42 2010
@@ -77,7 +77,7 @@ module DeltaCloud
end
def format(obj)
- object_name = obj.class.name.classify.gsub(/^DeltaCloud::/, '')
+ object_name = obj.class.name.classify.gsub(/^DeltaCloud::API::/, '')
format_class = DeltaCloud::PlainFormatter::FormatObject.const_get(object_name)
format_class.new(obj).format
end