Merge "Fix parsing of network gateway id for router"
This commit is contained in:
@@ -119,7 +119,7 @@ EOT
|
|||||||
end
|
end
|
||||||
|
|
||||||
def parse_gateway_network_id(external_gateway_info_)
|
def parse_gateway_network_id(external_gateway_info_)
|
||||||
match_data = /\{"network_id": "(.*?)"/.match(external_gateway_info_)
|
match_data = /\{"network_id": "(.*?)"/.match(external_gateway_info_.gsub(/\\"/,'"'))
|
||||||
if match_data
|
if match_data
|
||||||
match_data[1]
|
match_data[1]
|
||||||
else
|
else
|
||||||
|
@@ -3,6 +3,7 @@ require 'spec_helper'
|
|||||||
require 'puppet/provider/neutron_router/neutron'
|
require 'puppet/provider/neutron_router/neutron'
|
||||||
|
|
||||||
provider_class = Puppet::Type.type(:neutron_router).provider(:neutron)
|
provider_class = Puppet::Type.type(:neutron_router).provider(:neutron)
|
||||||
|
klass = Puppet::Provider::Neutron
|
||||||
|
|
||||||
describe provider_class do
|
describe provider_class do
|
||||||
|
|
||||||
@@ -72,4 +73,33 @@ tenant_id="60f9544eb94c42a6b7e8e98c2be981b1"'
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'when parsing an external gateway info' do
|
||||||
|
let :resource do
|
||||||
|
Puppet::Type::Neutron_router.new(router_attrs)
|
||||||
|
end
|
||||||
|
|
||||||
|
let :provider do
|
||||||
|
provider_class.new(resource)
|
||||||
|
end
|
||||||
|
|
||||||
|
after :each do
|
||||||
|
klass.reset
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should detect a gateway net id' do
|
||||||
|
klass.stubs(:auth_neutron).returns(
|
||||||
|
'external_gateway_info="{\"network_id\": \"1b-b1\", \"enable_snat\": true, \"external_fixed_ips\": [{\"subnet_id\": \"1b-b1\", \"ip_address\": \"1.1.1.1\"}]}"'
|
||||||
|
)
|
||||||
|
result = klass.get_neutron_resource_attrs 'foo', nil
|
||||||
|
expect(provider.parse_gateway_network_id(result['external_gateway_info'])).to eql('1b-b1')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return empty value, if there is no net id found' do
|
||||||
|
klass.stubs(:auth_neutron).returns('external_gateway_info="{}"')
|
||||||
|
result = klass.get_neutron_resource_attrs 'foo', nil
|
||||||
|
expect(provider.parse_gateway_network_id(result['external_gateway_info'])).to eql('')
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user