From: David Lutterkort <[email protected]>
---
tests/cimi/rmd4_test.rb | 68 ++++++++++++++++++++++++++-----------------------
1 file changed, 36 insertions(+), 32 deletions(-)
diff --git a/tests/cimi/rmd4_test.rb b/tests/cimi/rmd4_test.rb
index 1d721fc..d08a24d 100644
--- a/tests/cimi/rmd4_test.rb
+++ b/tests/cimi/rmd4_test.rb
@@ -39,14 +39,18 @@ class MachinesRMDInitialStates < CIMI::Test::Spec
# 4.1: Query the ResourceMetadata entry
cep_json = cep(:accept => :json)
rmd_coll = get cep_json.json[ROOTS[1]]["href"], :accept => :json
- machine_index = rmd_coll.json["resourceMetadata"].index {|rmd|
rmd["typeUri"] == RESOURCE_URI}
- unless machine_index.nil?() ||
rmd_coll.json["resourceMetadata"][machine_index]["capabilities"].nil?()
- initial_states_index =
rmd_coll.json["resourceMetadata"][machine_index]["capabilities"].index {|rmd|
rmd["uri"] == INITIAL_STATES_CAPABILITY_URI}
- unless initial_states_index.nil?()
- initial_states_value =
rmd_coll.json["resourceMetadata"][machine_index]["capabilities"][initial_states_index]["value"]
+ machine_rmd = rmd_coll.json["resourceMetadata"].find do |rmd|
+ rmd["typeUri"] == RESOURCE_URI
+ end
+ if machine_rmd && machine_rmd["capabilities"]
+ initial_states_cap = machine_rmd["capabilities"].find do |rmd|
+ rmd["uri"] == INITIAL_STATES_CAPABILITY_URI
+ end
+ if initial_states_cap
+ initial_states_value = initial_states_cap["value"]
model :resource_metadata_machine do |fmt|
- get rmd_coll.json["resourceMetadata"][machine_index]["id"], :accept =>
fmt
+ get machine_rmd["id"], :accept => fmt
end
end
end
@@ -57,21 +61,23 @@ class MachinesRMDInitialStates < CIMI::Test::Spec
end
it "should return the InitialStates capability", :only => :json do
- resource_metadata_machine
- unless last_response.json["capabilities"].nil?()
- log.info("Testing resource metadata: " +
last_response.json["capabilities"].to_s())
- (last_response.json["capabilities"].any?{ |capability|
capability["name"].include? "InitialStates"}).must_equal true
+ md = resource_metadata_machine
+ if md.capabilities
+ log.info("Testing resource metadata: " + md.capabilities.to_s)
+ (md.capabilities.any? { |capability| capability["name"].include?
"InitialStates"} ).must_equal true
log.info(last_response.json["capabilities"])
end
end
# 4.2: Inspect the capability
it "should contain name, uri (unique), description, value(s)", :only =>
:json do
- resource_metadata_machine
-
- elements = ["name", "uri", "description", "value"]
- (elements.all? { |element|
last_response.json["capabilities"][initial_states_index].include?
element}).must_equal true
+ md = resource_metadata_machine
+ cap = md.capabilities.find { |c| c.uri == INITIAL_STATES_CAPABILITY_URI }
+ cap.wont_be_nil
+ cap.name.wont_be_nil
+ cap.description.wont_be_nil
+ cap.value.wont_be_nil
end
# 4.3 Put collection member in state to verify capability
@@ -84,27 +90,25 @@ class MachinesRMDInitialStates < CIMI::Test::Spec
# Specify a desired initial state which is different from
# the default value (see DefaultInitalState capability)
- unless
rmd_coll.json["resourceMetadata"][machine_index]["capabilities"].nil?()
- default_initial_state_value =
rmd_coll.json["resourceMetadata"][machine_index]["capabilities"].inject([]){|res,
cur| res = cur["value"] if cur["uri"] == DEFAULT_INITIAL_STATE_CAPABILITY_URI;
res}
+ if machine_rmd["capabilities"]
+ default_initial_state_value = machine_rmd["capabilities"].inject([]){|res,
cur| res = cur["value"] if cur["uri"] == DEFAULT_INITIAL_STATE_CAPABILITY_URI;
res}
end
- unless initial_states_value.nil?() || default_initial_state_value.nil?()
+ if initial_states_value && default_initial_state_value
@@rmd4_created_machines = {}
- (0..(initial_states_value.split(",").size() - 1)).each do |i|
- chosen_initial_state = initial_states_value.split(',')[i]
-
- if !chosen_initial_state.eql? default_initial_state_value
- puts "Testing initial state value: " + chosen_initial_state
+ initial_states_value.split(",").each do |state|
+ if state != default_initial_state_value
+ puts "Testing initial state value: " + state
else
puts "Testing initial state value - " +
- " equal to the default initial state: " + chosen_initial_state
+ " equal to the default initial state: " + state
end
resp = post(add_uri,
"<Machine>" +
- "<name>cimi_machine_" + i.to_s + "</name>" +
+ "<name>cimi_machine_initial:" + state + "</name>" +
"<machineTemplate>" +
- "<initialState>" + chosen_initial_state + "</initialState>" +
+ "<initialState>" + state + "</initialState>" +
"<machineConfig " +
"href=\"" + get_a(cep_json, "machineConfig")+ "\"/>" +
"<machineImage " +
@@ -112,7 +116,7 @@ class MachinesRMDInitialStates < CIMI::Test::Spec
"</machineTemplate>" +
"</Machine>", :accept => :json, :content_type => :xml)
- @@rmd4_created_machines.merge!(chosen_initial_state => resp.json["id"])
+ @@rmd4_created_machines[state] = resp.json["id"]
model :machine do |fmt|
get resp.json["id"], :accept => fmt
@@ -135,16 +139,16 @@ class MachinesRMDInitialStates < CIMI::Test::Spec
# Execute a GET /machines/new_machine_id operation to return the machine
# stable initial state
it "should have a state equal to the specified initial state" do
- machine = get(@@rmd4_created_machines[chosen_initial_state],
:accept=>:json)
+ machine = get(@@rmd4_created_machines[state], :accept=>:json)
5.times do |j|
- break if
machine.json["state"].upcase.eql?(chosen_initial_state.upcase)
+ break if machine.json["state"].upcase.eql?(state.upcase)
puts machine.json["state"]
- puts 'waiting for machine to be: ' + chosen_initial_state
+ puts 'waiting for machine to be: ' + state
sleep(5)
- machine = get(@@rmd4_created_machines[chosen_initial_state],
:accept=>:json)
- end unless
machine.json["state"].upcase.eql?(chosen_initial_state.upcase)
+ machine = get(@@rmd4_created_machines[state], :accept=>:json)
+ end unless machine.json["state"].upcase.eql?(state.upcase)
- machine.json["state"].upcase.must_equal chosen_initial_state
+ machine.json["state"].upcase.must_equal state
end
# 4.5: Cleanup
--
1.8.1.2