mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Specify tests to come from Living Spec.
This commit is contained in:
parent
f2979a6a56
commit
061dcada21
2 changed files with 38 additions and 45 deletions
|
@ -21,17 +21,19 @@ def compute_providers
|
||||||
},
|
},
|
||||||
:ecloud => {
|
:ecloud => {
|
||||||
:server_attributes => {
|
:server_attributes => {
|
||||||
:name => "eugene",
|
:name => "VM4",
|
||||||
:row => "eugene1",
|
:row => "Layout Row 1",
|
||||||
:group => "eugene-104",
|
:group => "Layout Group 1",
|
||||||
:catalog_network_name => "bridged",
|
:catalog_network_name => "bridged",
|
||||||
:description => "blarg",
|
:description => "blarg",
|
||||||
:operating_system => {
|
:operating_system => {
|
||||||
:name => "Red Hat Enterprise Linux 5 (64-bit)",
|
:name => "Red Hat Enterprise Linux 5 (64-bit)",
|
||||||
:href => "/cloudapi/ecloud/operatingsystems/rhel5_64guest/computepools/963",
|
:href => "/cloudapi/ecloud/operatingsystems/rhel5_64guest/computepools/963",
|
||||||
},
|
},
|
||||||
|
:organization_uri => 'organizations/2'
|
||||||
}.tap do |hash|
|
}.tap do |hash|
|
||||||
[:template_href, :network_uri, :environment_name].each do |k|
|
[:template_href, :network_uri,
|
||||||
|
:environment_name, :organization_uri].each do |k|
|
||||||
key = "ecloud_#{k}".to_sym
|
key = "ecloud_#{k}".to_sym
|
||||||
if Fog.credentials[key]
|
if Fog.credentials[key]
|
||||||
hash[k]= Fog.credentials[key]
|
hash[k]= Fog.credentials[key]
|
||||||
|
|
|
@ -3,12 +3,12 @@ provider, config = :ecloud, compute_providers[:ecloud]
|
||||||
Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations"]) do
|
Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations"]) do
|
||||||
connection = Fog::Compute[provider]
|
connection = Fog::Compute[provider]
|
||||||
connection.base_path = '/cloudapi/spec'
|
connection.base_path = '/cloudapi/spec'
|
||||||
organization = connection.organizations.first
|
config[:server_attributes][:organization_uri] ? organization = connection.organizations.get("#{connection.base_path}#{config[:server_attributes][:organization_uri]}") : organization = connection.organizations.first
|
||||||
environment = organization.environments.find{|e| e.name == config[:server_attributes][:environment_name]} || organization.environments.first
|
environment = organization.environments.find{|e| e.name == config[:server_attributes][:environment_name]} || organization.environments.first
|
||||||
public_ip = environment.public_ips.first
|
public_ip = environment.public_ips.first
|
||||||
compute_pool = environment.compute_pools.first
|
compute_pool = environment.compute_pools.first
|
||||||
image_href = Fog.credentials[:ecloud_image_href] || compute_pool.templates.first.href
|
image_href = Fog.credentials[:ecloud_image_href] || compute_pool.templates.first.href
|
||||||
ssh_key = organization.admin.ssh_keys.detect { |key| key.name == "root" }
|
ssh_key = organization.admin.ssh_keys.detect { |key| key.name == "root" } || organization.admin.ssh_keys.first
|
||||||
|
|
||||||
@network = environment.networks.first
|
@network = environment.networks.first
|
||||||
options = config[:server_attributes].merge(:network_uri => @network.href, :ssh_key_uri => ssh_key.href)
|
options = config[:server_attributes].merge(:network_uri => @network.href, :ssh_key_uri => ssh_key.href)
|
||||||
|
@ -16,53 +16,45 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
|
||||||
# options = options.merge(:ssh_key_uri => "/cloudapi/ecloud/admin/sshkeys/#{Fog.credentials[:ecloud_ssh_key_id]}")
|
# options = options.merge(:ssh_key_uri => "/cloudapi/ecloud/admin/sshkeys/#{Fog.credentials[:ecloud_ssh_key_id]}")
|
||||||
#end
|
#end
|
||||||
|
|
||||||
@server = compute_pool.servers.create(image_href, options)
|
|
||||||
|
|
||||||
tests('#create_server').succeeds do
|
tests('#create_server').succeeds do
|
||||||
@server.wait_for { ready? } # server
|
compute_pool.servers.create(image_href, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Use the Living Specification, VM2 has valid power state to delete disks
|
||||||
|
vm_uri = "#{connection.base_path}/virtualMachines/2"
|
||||||
|
@server = compute_pool.servers.get(vm_uri)
|
||||||
|
|
||||||
tests('#environment_has_a_row_and_group_with_the_right_names').succeeds do
|
tests('#environment_has_a_row_and_group_with_the_right_names').succeeds do
|
||||||
row = environment.rows.detect { |r| r.name == options[:row] }
|
row = environment.rows.detect { |r| r.name == options[:row] }
|
||||||
returns(false, "row is not nil") { row.nil? }
|
returns(false, "row is not nil") { row.nil? }
|
||||||
group = row.groups.detect { |g| g.name == options[:group] }
|
group = row.groups.detect { |g| g.name == options[:group] }
|
||||||
returns(false, "group is not nil") { group.nil? }
|
returns(false, "group is not nil") { group.nil? }
|
||||||
server = group.servers.detect { |s| s.name == @server.name }
|
server = group.servers.detect { |s| s.name == options[:name] }
|
||||||
returns(false, "group has server") { server.nil? }
|
returns(false, "group has server") { server.nil? }
|
||||||
end
|
end
|
||||||
|
|
||||||
tests('#get_server_flavor').succeeds do
|
tests('#get_server_flavor').succeeds do
|
||||||
@server.flavor_id == {:ram => 512, :cpus => 1}
|
@server.flavor_id == {:ram => 1024, :cpus => 2}
|
||||||
end
|
end
|
||||||
|
|
||||||
@hwc = @server.hardware_configuration
|
@hwc = @server.hardware_configuration
|
||||||
tests('#add_disk_to_server').succeeds do
|
tests('#add_disk_to_server').succeeds do
|
||||||
disk_count = @hwc.storage.is_a?(Hash) ? [@hwc.storage].count : @hwc.storage.count
|
@server.add_disk(25)
|
||||||
@server.add_disk(25).wait_for { ready? }
|
|
||||||
@server.reload.wait_for { ready? }
|
|
||||||
returns(true, "disk count increased by 1") { @server.reload.hardware_configuration.storage.count == disk_count + 1 }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
tests('#detach_disk_from_server').succeeds do
|
tests('#detach_disk_from_server').succeeds do
|
||||||
disk_count = @hwc.reload.storage.is_a?(Hash) ? [@hwc.storage].count : @hwc.storage.count
|
server = connection.servers.get("#{connection.base_path}/virtualMachines/1")
|
||||||
@server.detach_disk(1).wait_for { ready? }
|
server.detach_disk(1)
|
||||||
@server.reload.wait_for { ready? }
|
|
||||||
returns(true, "disk count decreased by 1") { @server.reload.hardware_configuration.storage.count == disk_count - 1 }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@detached_disk = compute_pool.reload.detached_disks.detect { |d| d.name == @server.name }
|
@detached_disk = compute_pool.reload.detached_disks.first
|
||||||
tests('#attach_disk_to_server').succeeds do
|
tests('#attach_disk_to_server').succeeds do
|
||||||
disk_count = @hwc.reload.storage.is_a?(Hash) ? [@hwc.storage].count : @hwc.storage.count
|
server = connection.servers.get("#{connection.base_path}/virtualMachines/1")
|
||||||
@server.attach_disk(@detached_disk).wait_for { ready? }
|
server.attach_disk(@detached_disk)
|
||||||
@server.reload.wait_for { ready? }
|
|
||||||
returns(true, "disk count increased by 1") { @server.reload.hardware_configuration.storage.count == disk_count + 1 }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
tests('#delete_disk').succeeds do
|
tests('#delete_disk').succeeds do
|
||||||
disk_count = @hwc.reload.storage.is_a?(Hash) ? [@hwc.storage].count : @hwc.storage.count
|
@server.delete_disk(1)
|
||||||
@server.delete_disk(1).wait_for { ready? }
|
|
||||||
@server.reload.wait_for { ready? }
|
|
||||||
returns(true, "disk count decreased by 1") { @server.reload.hardware_configuration.storage.count == disk_count - 1 }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@ip = @network.ips.reload.detect { |i| i.host.nil? && i.detected_on.nil? }
|
@ip = @network.ips.reload.detect { |i| i.host.nil? && i.detected_on.nil? }
|
||||||
|
@ -73,38 +65,37 @@ Shindo.tests("Fog::Compute[:#{provider}] | servers", [provider.to_s, "operations
|
||||||
service_name = Fog.credentials[:ecloud_internet_service_name] || Fog::Mock.random_letters(6)
|
service_name = Fog.credentials[:ecloud_internet_service_name] || Fog::Mock.random_letters(6)
|
||||||
service_port = Fog.credentials[:ecloud_internet_service_port] || Fog::Mock.random_numbers(3).to_i
|
service_port = Fog.credentials[:ecloud_internet_service_port] || Fog::Mock.random_numbers(3).to_i
|
||||||
service_protocol = Fog.credentials[:ecloud_internet_service_protocol]
|
service_protocol = Fog.credentials[:ecloud_internet_service_protocol]
|
||||||
@service = public_ip.internet_services.create(:name => service_name, :port => service_port, :protocol => service_protocol, :description => "", :enabled => true)
|
|
||||||
|
|
||||||
tests('#create_internet_service').succeeds do
|
tests('#create_internet_service').succeeds do
|
||||||
@service.wait_for { ready? }
|
@service = public_ip.internet_services.create(:name => service_name, :port => service_port, :protocol => service_protocol, :description => "", :enabled => true)
|
||||||
returns(true, "is an internet service") { @service.is_a?(Fog::Compute::Ecloud::InternetService) }
|
returns(true, "is an internet service") { @service.is_a?(Fog::Compute::Ecloud::InternetService) }
|
||||||
end
|
end
|
||||||
|
|
||||||
unless @server.ips.empty?
|
@service = public_ip.internet_services.first
|
||||||
|
|
||||||
@ip_address = @server.ips.first
|
@ip_address = @server.ips.first
|
||||||
@ip = @server.ips.first.network.ips.detect { |i| i.name == @ip_address.address.name }
|
@ip = @server.ips.first.network.ips.detect { |i| i.name == @ip_address.address.name }
|
||||||
@node = @service.nodes.create(:name => @server.name, :port => service_port, :ip_address => @ip.href, :description => "", :enabled => true)
|
@node = @service.nodes.create(:name => @server.name, :port => service_port, :ip_address => @ip.href, :description => "", :enabled => true)
|
||||||
tests('#create_node_service').succeeds do
|
tests('#create_node_service').succeeds do
|
||||||
@node.wait_for { ready? }
|
|
||||||
returns(true, "is a node server") { @node.is_a?(Fog::Compute::Ecloud::Node) }
|
returns(true, "is a node server") { @node.is_a?(Fog::Compute::Ecloud::Node) }
|
||||||
end
|
end
|
||||||
|
|
||||||
tests('#destroy_node_service').succeeds do
|
tests('#destroy_node_service').succeeds do
|
||||||
@node.destroy.wait_for { ready? }
|
@node.destroy
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#tests('#delete_ip_from_server').succeeds do
|
#tests('#delete_ip_from_server').succeeds do
|
||||||
# @server.delete_ip(:href => @network.href, :network_name => @network.name, :ip => @ip.name)
|
# @server.delete_ip(:href => @network.href, :network_name => @network.name, :ip => @ip.name)
|
||||||
#end
|
#end
|
||||||
|
|
||||||
tests('#destroy_internet_service').succeeds do
|
# NOTE(xtoddx): the Living Specification doesn't have any empty services
|
||||||
@service.destroy.wait_for { ready? }
|
#tests('#destroy_internet_service').succeeds do
|
||||||
end
|
# @service.destroy
|
||||||
|
#end
|
||||||
|
|
||||||
@server_count = environment.servers.count
|
@server_count = environment.servers.count
|
||||||
tests('#destroy_server').succeeds do
|
tests('#destroy_server').succeeds do
|
||||||
@server.destroy.wait_for { ready? } # task
|
@server.destroy
|
||||||
end
|
end
|
||||||
@new_server_count = environment.servers.reload.count
|
@new_server_count = environment.servers.reload.count
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue