1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/openstack/requests/compute/security_group_tests.rb
Eric Hodel e85428dcf0 OpenStack servers can now retrieve security groups
Added default security group to the OpenStack compute mocks.

OpenStack server creation mock now stores the security groups for the
created server.

OpenStack security group mock deletion now deletes created security
groups.

OpenStack security group mock list now accepts a server id like the real
implementation.
2012-12-08 14:03:13 -08:00

59 lines
2.3 KiB
Ruby

Shindo.tests('Fog::Compute[:openstack] | security group requests', ['openstack']) do
@security_group = Hash.new
@security_group_rule = Hash.new
@security_group_format = {
"id" => Integer,
"rules" => Array,
"tenant_id" => String,
"name" => String,
"description" => String
}
@security_group_rule_format = {
"id" => Integer,
"from_port" => Integer,
"to_port" => Integer,
"ip_protocol" => String,
"group" => Hash,
"ip_range" => Hash,
"parent_group_id" => Integer
}
tests('success') do
tests('#create_security_group(name, description)').formats({"security_group" => @security_group_format}) do
Fog::Compute[:openstack].create_security_group('from_shindo_test', 'this is from the shindo test').body
end
tests('#create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id=nil)').formats({"security_group_rule" => @security_group_rule_format}) do
parent_group_id = Fog::Compute[:openstack].list_security_groups.body['security_groups'].last['id']
Fog::Compute[:openstack].create_security_group_rule(parent_group_id, "tcp", 2222, 3333, "20.20.20.20/24").body
end
tests('#list_security_groups').formats({"security_groups" => [@security_group_format]}) do
Fog::Compute[:openstack].list_security_groups.body
end
tests('#get_security_group(security_group_id)').formats({"security_group" => @security_group_format}) do
group_id = Fog::Compute[:openstack].list_security_groups.body['security_groups'].last['id']
Fog::Compute[:openstack].get_security_group(group_id).body
end
tests('#delete_security_group_rule(security_group_rule_id)').succeeds do
security_group_rule_id = Fog::Compute[:openstack].list_security_groups.body['security_groups'].last['rules'].last['id']
Fog::Compute[:openstack].delete_security_group_rule(security_group_rule_id)
end
tests('#delete_security_group(security_group_id)').succeeds do
compute = Fog::Compute[:openstack]
group_id = compute.list_security_groups.body['security_groups'].last['id']
compute.delete_security_group(group_id)
returns(false) {
groups = compute.list_security_groups.body['security_groups']
groups.any? { |group| group['id'] == group_id }
}
end
end # tests('success')
end