From f4a0f2aa66bd04a930b02e2c2b3f9f0377a451e7 Mon Sep 17 00:00:00 2001 From: Sergey Kolekonov Date: Tue, 21 Jul 2015 19:17:20 +0300 Subject: [PATCH] Fix 'shared' parameter check in neutron_network provider Use stricter check for 'shared' parameter Change-Id: I36149b42943238dc342f8c6e71c1261f00e01c4a Closes-bug: #1476680 --- .../provider/neutron_network/neutron.rb | 2 +- .../provider/neutron_network/neutron_spec.rb | 28 ++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/puppet/provider/neutron_network/neutron.rb b/lib/puppet/provider/neutron_network/neutron.rb index b1ef75331..b13ec003c 100644 --- a/lib/puppet/provider/neutron_network/neutron.rb +++ b/lib/puppet/provider/neutron_network/neutron.rb @@ -53,7 +53,7 @@ Puppet::Type.type(:neutron_network).provide( def create network_opts = Array.new - if @resource[:shared] + if @resource[:shared] =~ /true/i network_opts << '--shared' end diff --git a/spec/unit/provider/neutron_network/neutron_spec.rb b/spec/unit/provider/neutron_network/neutron_spec.rb index d01a009bc..b3b939ed0 100644 --- a/spec/unit/provider/neutron_network/neutron_spec.rb +++ b/spec/unit/provider/neutron_network/neutron_spec.rb @@ -31,7 +31,33 @@ describe provider_class do shared_examples 'neutron_network' do - describe 'when creating a network' do + describe 'when creating a non-shared network' do + + it 'should call net-create with appropriate command line options' do + provider.class.stubs(:get_tenant_id).returns(net_attrs[:tenant_id]) + + output = 'Created a new network: +admin_state_up="True" +id="d9ac3494-20ea-406c-a4ba-145923dfadc9" +name="net1" +shared="False" +status="ACTIVE" +subnets="" +tenant_id="60f9544eb94c42a6b7e8e98c2be981b1"' + + provider.expects(:auth_neutron).with('net-create', + '--format=shell', ["--tenant_id=#{net_attrs[:tenant_id]}"], + net_name).returns(output) + + provider.create + end + end + + describe 'when creating a shared network' do + + let :local_attrs do + attrs = net_attrs.merge({:shared => 'True'}) + end it 'should call net-create with appropriate command line options' do provider.class.stubs(:get_tenant_id).returns(net_attrs[:tenant_id])