mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
112 lines
4.2 KiB
Ruby
112 lines
4.2 KiB
Ruby
Shindo.tests('Fog::Compute[:aws] | network acl requests', ['aws']) do
|
|
|
|
@network_acl_format = {
|
|
'networkAclId' => String,
|
|
'vpcId' => String,
|
|
'default' => Fog::Boolean,
|
|
'entrySet' => [{
|
|
'ruleNumber' => Integer,
|
|
'protocol' => Integer,
|
|
'ruleAction' => String,
|
|
'egress' => Fog::Boolean,
|
|
'cidrBlock' => String,
|
|
'icmpTypeCode' => {
|
|
'code' => Fog::Nullable::Integer,
|
|
'type' => Fog::Nullable::Integer
|
|
},
|
|
'portRange' => {
|
|
'from' => Fog::Nullable::Integer,
|
|
'to' => Fog::Nullable::Integer
|
|
}
|
|
}],
|
|
'associationSet' => Array,
|
|
'tagSet' => Hash
|
|
}
|
|
|
|
@network_acls_format = {
|
|
'requestId' => String,
|
|
'networkAclSet' => [ @network_acl_format ]
|
|
}
|
|
|
|
@network_acl_replace_association = {
|
|
'requestId' => String,
|
|
'newAssociationId' => String
|
|
}
|
|
|
|
tests('success') do
|
|
Fog::Compute::AWS::Mock.reset if Fog.mocking?
|
|
|
|
@vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
|
|
@subnet = Fog::Compute[:aws].subnets.create('vpc_id' => @vpc.id, 'cidr_block' => '10.0.10.16/28')
|
|
@network_acl = nil
|
|
|
|
# Describe network interfaces
|
|
tests('#describe_network_acls').formats(@network_acls_format) do
|
|
Fog::Compute[:aws].describe_network_acls.body
|
|
end
|
|
|
|
tests('#create_network_acl').formats(@network_acl_format) do
|
|
data = Fog::Compute[:aws].create_network_acl(@vpc.id).body
|
|
|
|
@network_acl = data['networkAcl']
|
|
data['networkAcl']
|
|
end
|
|
|
|
tests("#create_network_acl_entry").formats(AWS::Compute::Formats::BASIC) do
|
|
Fog::Compute[:aws].create_network_acl_entry(@network_acl['networkAclId'], 100, 6, 'allow', '0.0.0.0/8', false, 'PortRange.From' => 22, 'PortRange.To' => 22).body
|
|
end
|
|
|
|
tests("#replace_network_acl_entry").formats(AWS::Compute::Formats::BASIC) do
|
|
Fog::Compute[:aws].replace_network_acl_entry(@network_acl['networkAclId'], 100, 6, 'deny', '0.0.0.0/8', false, 'PortRange.From' => 22, 'PortRange.To' => 22).body
|
|
end
|
|
|
|
tests("#delete_network_acl_entry").formats(AWS::Compute::Formats::BASIC) do
|
|
Fog::Compute[:aws].delete_network_acl_entry(@network_acl['networkAclId'], 100, false).body
|
|
end
|
|
|
|
default_acl = Fog::Compute[:aws].describe_network_acls('vpc-id' => @vpc.id, 'default' => true).body['networkAclSet'].first
|
|
@assoc_id = default_acl['associationSet'].first['networkAclAssociationId']
|
|
|
|
tests("#replace_network_acl_association").formats(@network_acl_replace_association) do
|
|
data = Fog::Compute[:aws].replace_network_acl_association(@assoc_id, @network_acl['networkAclId']).body
|
|
@assoc_id = data['newAssociationId']
|
|
data
|
|
end
|
|
|
|
tests("#replace_network_acl_association").formats(@network_acl_replace_association) do
|
|
Fog::Compute[:aws].replace_network_acl_association(@assoc_id, default_acl['networkAclId']).body
|
|
end
|
|
|
|
# Create another network acl to test tag filters
|
|
test_tags = {'foo' => 'bar'}
|
|
@another_acl = Fog::Compute[:aws].network_acls.create :vpc_id => @vpc.id, :tags => test_tags
|
|
tests("#describe_network_acls('tag-key' => 'foo')").formats(@network_acls_format) do
|
|
body = Fog::Compute[:aws].describe_network_acls('tag-key' => 'foo').body
|
|
tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
|
|
body
|
|
end
|
|
|
|
tests("#describe_network_acls('tag-value' => 'bar')").formats(@network_acls_format) do
|
|
body = Fog::Compute[:aws].describe_network_acls('tag-value' => 'bar').body
|
|
tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
|
|
body
|
|
end
|
|
|
|
tests("#describe_network_acls('tag:foo' => 'bar')").formats(@network_acls_format) do
|
|
body = Fog::Compute[:aws].describe_network_acls('tag:foo' => 'bar').body
|
|
tests("returns 1 acl").returns(1) { body['networkAclSet'].size }
|
|
body
|
|
end
|
|
|
|
tests('#delete_network_acl').formats(AWS::Compute::Formats::BASIC) do
|
|
Fog::Compute[:aws].delete_network_acl(@network_acl['networkAclId']).body
|
|
end
|
|
|
|
# Clean up
|
|
Fog::Compute[:aws].delete_tags(@another_acl.identity, test_tags)
|
|
@another_acl.destroy
|
|
@subnet.destroy
|
|
@vpc.destroy
|
|
Fog::Compute::AWS::Mock.reset if Fog.mocking?
|
|
end
|
|
end
|