65 lines
2.7 KiB
Ruby
65 lines
2.7 KiB
Ruby
# TODO(tobias-urdin): This is deprecated and should be removed in T release.
|
|
require 'puppet'
|
|
require 'puppet/provider/nova_network/nova'
|
|
require 'tempfile'
|
|
|
|
provider_class = Puppet::Type.type(:nova_network).provider(:nova)
|
|
|
|
describe provider_class do
|
|
|
|
let :net_attrs do
|
|
{
|
|
:network => '10.20.0.0/16',
|
|
:label => 'novanetwork',
|
|
:ensure => 'present',
|
|
}
|
|
end
|
|
|
|
let :resource do
|
|
Puppet::Type::Nova_network.new(net_attrs)
|
|
end
|
|
|
|
let :provider do
|
|
provider_class.new(resource)
|
|
end
|
|
|
|
shared_examples 'nova_network' do
|
|
describe '#exists?' do
|
|
it 'should check non-existing network' do
|
|
provider.expects(:auth_nova).with("network-list")
|
|
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.0.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
|
|
')
|
|
expect(provider.exists?).to be_falsey
|
|
end
|
|
|
|
it 'should check existing network' do
|
|
provider.expects(:auth_nova).with("network-list")
|
|
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
|
|
')
|
|
expect(provider.exists?).to be_truthy
|
|
end
|
|
end
|
|
|
|
describe '#create' do
|
|
it 'should create network' do
|
|
provider.expects(:auth_nova).with("network-create", ['novanetwork', '--fixed-range-v4', '10.20.0.0/16'] )
|
|
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-88sdfsdfsdfsd | nova-network | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
|
|
')
|
|
provider.create
|
|
end
|
|
end
|
|
|
|
describe '#destroy' do
|
|
it 'should destroy network' do
|
|
resource[:ensure] = :absent
|
|
provider.expects(:auth_nova).with("network-delete", "10.20.0.0/16")
|
|
.returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n
|
|
')
|
|
provider.destroy
|
|
end
|
|
end
|
|
end
|
|
|
|
it_behaves_like('nova_network')
|
|
end
|