puppet-neutron/spec/classes/neutron_plugins_ovs_opendaylight_spec.rb
Tim Rozet 45954a106a Adds configuration support for OpenDaylight SDN Controller
In order to use OpenDaylight with Neutron, ML2 must be configured to
point to the OpenDaylight controller instance.  It also requires the
networking-odl python library to drive communication with ODL.
Additionally each Open vSwitch instance must be configured to set the ODL
Controller as it's manager.

Change-Id: If067e1057bec2d48f700838d86077a550bd27bd2
Signed-off-by: Tim Rozet <trozet@redhat.com>
2015-12-16 08:37:12 +11:00

91 lines
2.4 KiB
Ruby

require 'spec_helper'
describe 'neutron::plugins::ovs::opendaylight' do
let :pre_condition do
"class { 'neutron::server': auth_password => 'password'}
class { 'neutron':
rabbit_password => 'passw0rd',
core_plugin => 'neutron.plugins.ml2.plugin.Ml2Plugin' }"
end
let :default_params do
{
:odl_username => 'admin',
:odl_password => 'admin',
:odl_check_url => 'http://127.0.0.1:8080/restconf/operational/network-topology:network-topology/topology/netvirt:1',
:odl_ovsdb_iface => 'tcp:127.0.0.1:6640',
:provider_mappings => false,
:retry_interval => 60,
:retry_count => 20,
}
end
let :params do
{
:tunnel_ip => '127.0.0.1',
}
end
let :test_facts do
{
:operatingsystem => 'default',
:operatingsystemrelease => 'default',
}
end
shared_examples_for 'neutron plugin opendaylight ovs' do
before do
params.merge!(default_params)
end
context 'with provider mappings' do
before do
params.merge!({ :provider_mappings => true })
end
it_configures 'with provider mappings'
end
it_configures 'with default parameters'
end
shared_examples_for 'with default parameters' do
it 'configures OVS for ODL' do
is_expected.to contain_exec('Wait for NetVirt OVSDB to come up')
is_expected.to contain_exec('Set OVS Manager to OpenDaylight')
is_expected.to contain_exec('Set local_ip Other Option')
is_expected.not_to contain_exec('Set provider_mappings Other Option')
end
end
shared_examples_for 'with provider mappings' do
it 'configures OVS for ODL' do
is_expected.to contain_exec('Wait for NetVirt OVSDB to come up')
is_expected.to contain_exec('Set OVS Manager to OpenDaylight')
is_expected.to contain_exec('Set local_ip Other Option')
is_expected.to contain_exec('Set provider_mappings Other Option')
end
end
context 'on RedHat platforms' do
let :facts do
@default_facts.merge(test_facts.merge({
:osfamily => 'RedHat',
:operatingsystemrelease => '7'
}))
end
it_configures 'neutron plugin opendaylight ovs'
end
context 'on Debian platforms' do
let :facts do
@default_facts.merge(test_facts.merge({
:osfamily => 'Debian'
}))
end
it_configures 'neutron plugin opendaylight ovs'
end
end