blob: 022f40a5de7fe28a5b9075fad1de994fd4209f68 [file] [log] [blame]
# get_class.rb
# Tests an openwsman 2.2 extension: Intrinsic WBEM operations via 'invoke'
#
require 'test/unit'
require 'rexml/document'
require File.join(File.dirname(__FILE__),'_loadpath')
require 'openwsman'
require '_client'
def show_fault result
fault = Openwsman::Fault.new result
STDERR.puts "Fault code #{fault.code}, subcode #{fault.subcode}"
STDERR.puts "\treason #{fault.reason}"
STDERR.puts "\tdetail #{fault.detail}"
end
def show_error client
STDERR.puts "Client failed"
STDERR.puts "\tResult code #{client.response_code}, Fault: #{client.fault_string}"
end
def fault? client, result
if result
if result.fault?
show_fault result
true
end
else
show_error client
true
end
end
class WsmanTest < Test::Unit::TestCase
def test_get_class
Openwsman::debug = 1
client = Client.open
assert client
options = Openwsman::ClientOptions.new
# options.set_dump_request
method = Openwsman::CIM_ACTION_GET_CLASS
uri = Openwsman::XML_NS_CIM_INTRINSIC + "/CIM_ComputerSystem"
# uri = Openwsman::CIM_ALL_AVAILABLE_CLASSES
# options.properties = { "Prefix" => "Linux" }
result = client.invoke( options, uri, method )
fault? client, result
assert result
# print result
unless result.fault?
node = result.body[method]
name = node["name"]
qualifiers = node["qualifiers"]
properties = node["properties"]
puts "Class #{name} with #{qualifiers.size} Qualifiers and #{properties.size} Properties"
puts result.to_xml
qualifiers.each { |q| puts q.to_xml }
properties.each { |p| puts p.to_xml }
else
puts "--Fault--"
end
end
end