49 lines
1.7 KiB
Ruby
49 lines
1.7 KiB
Ruby
require 'puppet'
|
|
require 'puppet/provider/nova_security_rule/nova'
|
|
require 'tempfile'
|
|
|
|
provider_class = Puppet::Type.type(:nova_security_rule).provider(:nova)
|
|
|
|
describe provider_class do
|
|
|
|
let :secrule_attrs do
|
|
{
|
|
:name => "scr0",
|
|
:ip_protocol => "tcp",
|
|
:from_port => '22',
|
|
:to_port => '23',
|
|
:ip_range => '0.0.0.0/0',
|
|
:security_group => 'scg0'
|
|
}
|
|
end
|
|
|
|
let :resource do
|
|
Puppet::Type::Nova_security_rule.new(secrule_attrs)
|
|
end
|
|
|
|
let :provider do
|
|
provider_class.new(resource)
|
|
end
|
|
|
|
shared_examples "nova_security_rule" do
|
|
describe "#create" do
|
|
it 'should create security rule' do
|
|
provider.expects(:auth_nova).with('secgroup-add-rule', ['scg0', 'tcp', '22', '23', '0.0.0.0/0']).returns('+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| tcp | 22 | 23 | 0.0.0.0/0 | |\n+-------------+-----------+---------+-----------+--------------+')
|
|
|
|
provider.create
|
|
end
|
|
end
|
|
|
|
|
|
describe "#destroy" do
|
|
it 'should destroy security rule' do
|
|
provider.expects(:auth_nova).with('secgroup-delete-rule', ['scg0', 'tcp', '22', '23', '0.0.0.0/0']).returns('+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| tcp | 22 | 23 | 0.0.0.0/0 | |\n+-------------+-----------+---------+-----------+--------------+')
|
|
|
|
provider.destroy
|
|
end
|
|
end
|
|
end
|
|
|
|
it_behaves_like('nova_security_rule')
|
|
end
|