blob: 9bb0b944688289f42abcef893466cbb3e9fd7954 [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 CreateNewMachine < CIMI::Test::Spec
RESOURCE_URI =
"http://schemas.dmtf.org/cimi/1/CloudEntryPoint"
ROOTS = ["machines", "machineImages", "machineConfigurations"]
MiniTest::Unit.after_tests { teardown(@@created_resources, api.basic_auth) }
# Ensure test executes in test plan order
i_suck_and_my_tests_are_order_dependent!
# 2.1: Query the CEP
model :subject, :cache => true do |fmt|
cep(:accept => fmt)
end
# This test must adhere to one of the "Query the CEP" test in the previous section.
query_the_cep(ROOTS)
# At least one MachineImage resource must appear in the collection
# At least one MachineConfiguration resource must appear in the collection
it "should contain one MachineImage resource and one MachineConfiguration resource" do
ROOTS.each do |root|
r = root.underscore.to_sym
unless r.eql?(:machines)
model = fetch(subject.send(r).href)
log.info(model.attribute_values[r][0])
assert_equal model.attribute_values[r][0].nil?(), false
end
end
end
# 2.4: Create a new CredentialResource
log.info("Create a new CredentialResource: credential_resources is not a supported collection.")
it "allows creation of a new machine (step 2.5)", :only => :json do
cep_json = cep(:accept => :json)
#discover the 'addURI' for creating Machine
add_uri = discover_uri_for("add", "machines")
resp = post(add_uri,
"<MachineCreate xmlns=\"#{CIMI::Test::CIMI_NAMESPACE}\">" +
"<name>cimi_machine_" + format.to_s + "</name>" +
"<machineTemplate>" +
"<machineConfig " +
"href=\"" + get_a(cep_json, "machineConfig")+ "\"/>" +
"<machineImage " +
"href=\"" + get_a(cep_json, "machineImage") + "\"/>" +
"</machineTemplate>" +
"</MachineCreate>", :content_type => :xml)
resp.headers[:location].must_be_uri
resp.code.must_be_one_of [201, 202]
if resp.code == 201
machine = fetch(resp.headers[:location])
machine.name.wont_be_empty
else
machine = CIMI::Model::Machinemachine.new(:id => resp.headers[:location])
end
@@created_resources[:machines] << machine[:id]
end
end