From f1eee124575f2ccb33338759126f4d8315034715 Mon Sep 17 00:00:00 2001
From: Martin Magr <mmagr@redhat.com>
Date: Thu, 27 Mar 2014 14:01:44 +0100
Subject: [PATCH 1/3] Fix network_vlan_ranges parameter for OVS plugin
Class neutron::plugins::ovs expects string value in network_vlan_ranges parameter,
but validate_network_vlan_ranges will fail when value is comma separated list
of valid values. This patch is fixing this problem
Change-Id: If5b8ef59a600b3204415853ad796fb0537fefe4a
(cherry picked from commit 3d8d9fafec004b0debb2af8a70f4cd77d67ce04d)
---
manifests/plugins/ovs.pp | 10 ++++++++--
spec/classes/neutron_plugins_ovs_spec.rb | 14 ++++++++++++++
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/manifests/plugins/ovs.pp b/manifests/plugins/ovs.pp
index 349e316..fea6d0f 100644
--- a/manifests/plugins/ovs.pp
+++ b/manifests/plugins/ovs.pp
@@ -83,9 +83,15 @@ class neutron::plugins::ovs (
} else {
# This might be set by the user for the gre or vxlan case where
# provider networks are in use
- validate_network_vlan_ranges($network_vlan_ranges)
+ if !is_array($network_vlan_ranges) {
+ $arr_network_vlan_ranges = strip(split($network_vlan_ranges, ','))
+ } else {
+ $arr_network_vlan_ranges = $network_vlan_ranges
+ }
+
+ validate_network_vlan_ranges($arr_network_vlan_ranges)
neutron_plugin_ovs {
- 'OVS/network_vlan_ranges': value => $network_vlan_ranges
+ 'OVS/network_vlan_ranges': value => join($arr_network_vlan_ranges, ',');
}
}
diff --git a/spec/classes/neutron_plugins_ovs_spec.rb b/spec/classes/neutron_plugins_ovs_spec.rb
index 36efd04..f9cfa3f 100644
--- a/spec/classes/neutron_plugins_ovs_spec.rb
+++ b/spec/classes/neutron_plugins_ovs_spec.rb
@@ -160,6 +160,20 @@ describe 'neutron::plugins::ovs' do
end
it { should contain_neutron_plugin_ovs('OVS/network_vlan_ranges').with_value(params[:network_vlan_ranges]) }
end
+
+ context 'with comma separated vlan ranges' do
+ let :params do
+ { :network_vlan_ranges => 'physint1:1000:2000,physext1:100:200' }
+ end
+ it { should contain_neutron_plugin_ovs('OVS/network_vlan_ranges').with_value(params[:network_vlan_ranges]) }
+ end
+
+ context 'with vlan ranges in array' do
+ let :params do
+ { :network_vlan_ranges => ['physint1:1000:2000', 'physext1:100:200'] }
+ end
+ it { should contain_neutron_plugin_ovs('OVS/network_vlan_ranges').with_value(params[:network_vlan_ranges].join(',')) }
+ end
end
context 'on Debian platforms' do
--
1.8.5.3