blob: 8dfc0fbf5ee701975db14dfd310dfc59637e249c [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
$:.unshift File.join(File.dirname(__FILE__))
require "test_helper.rb"
class MachineBehavior < CIMI::Test::Spec
RESOURCE_URI = "http://schemas.dmtf.org/cimi/1/Machine"
model :machine do |fmt|
mcoll_uri = cep(:accept => :json).json["machines"]["href"]
mcoll = get(mcoll_uri, :accept => :json).json
m_url = mcoll["machines"][0]["id"]
get m_url, :accept => fmt
end
it "should have the correct resourceURI", :only => :json do
machine.wont_be_nil # Make sure we talk to the server
last_response.json["resourceURI"].must_equal RESOURCE_URI
end
it "should be able to create new machineImage from Machine" do
#should have a running machine:
cep_json = cep(:accept => :json)
machine_id = get_a(cep_json, "machine")
machine = get(machine_id, :accept=>:json)
machine.wont_be_nil
#discover 'create image' URI
capture_uri = discover_uri_for("capture", "machines", machine.json["operations"])
#now create the image:
resp = post(capture_uri,
"<MachineImageCreate>"+
"<name>image_from_#{machine_id.split("/").last}</name>"+
"<description>my new machine image for machine_test.rb</description>"+
"<type>IMAGE</type>"+
"<imageLocation>#{machine_id}</imageLocation>"+
"</MachineImageCreate>", {:accept=> :json, :content_type => :xml})
#checks:
resp.code.must_equal 201
resp.headers[:location].must_be_uri
resp.json["id"].must_equal resp.headers[:location]
#retrieve new image:
image_id = resp.json["id"]
resp = get(image_id, :accept=>:json)
resp.code.must_equal 200
resp.json["resourceURI"].must_include "MachineImage"
resp.json["id"].must_equal image_id
#cleanup:
resp = delete(image_id)
resp.code.must_equal 200
end
end