diff --git a/lib/puppet/provider/neutron_network/neutron.rb b/lib/puppet/provider/neutron_network/neutron.rb index 5587dfd55..e5a0c39bf 100644 --- a/lib/puppet/provider/neutron_network/neutron.rb +++ b/lib/puppet/provider/neutron_network/neutron.rb @@ -80,8 +80,8 @@ Puppet::Type.type(:neutron_network).provide( "--provider:segmentation_id=#{@resource[:provider_segmentation_id]}" end - if @resource[:router_external] - network_opts << "--router:external=#{@resource[:router_external]}" + if @resource[:router_external] == 'True' + network_opts << '--router:external' end results = auth_neutron('net-create', '--format=shell', @@ -120,7 +120,11 @@ Puppet::Type.type(:neutron_network).provide( end def router_external=(value) - auth_neutron('net-update', "--router:external=#{value}", name) + if value == 'False' + auth_neutron('net-update', "--router:external=#{value}", name) + else + auth_neutron('net-update', "--router:external", name) + end end [ diff --git a/spec/unit/provider/neutron_network/neutron_spec.rb b/spec/unit/provider/neutron_network/neutron_spec.rb index 619a29c1c..974a7057b 100644 --- a/spec/unit/provider/neutron_network/neutron_spec.rb +++ b/spec/unit/provider/neutron_network/neutron_spec.rb @@ -46,7 +46,14 @@ describe provider_class do it 'should call net-update to change router_external' do provider.expects(:auth_neutron).with('net-update', - '--router:external=True', + '--router:external=False', + net_name) + provider.router_external=('False') + end + + it 'should call net-update to change router_external' do + provider.expects(:auth_neutron).with('net-update', + '--router:external', net_name) provider.router_external=('True') end