Use puppet4 functions-api
Change-Id: I0877c6b94787ee2dd5c52c3b5e7ee2d525f660f0
This commit is contained in:
parent
3d60f890b4
commit
28e745c40f
9
lib/puppet/functions/get_ext_net_name.rb
Normal file
9
lib/puppet/functions/get_ext_net_name.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Puppet::Functions.create_function(:get_ext_net_name) do
|
||||||
|
def get_ext_net_name(*args)
|
||||||
|
networks = args.first
|
||||||
|
raise(Puppet::ParseError, 'get_ext_net_name(): No network data provided!') unless networks.is_a? Hash
|
||||||
|
ext_net_array = networks.find { |_, value| value.fetch('L2', {})['router_ext'] }
|
||||||
|
return nil unless ext_net_array
|
||||||
|
ext_net_array.first
|
||||||
|
end
|
||||||
|
end
|
@ -1,9 +0,0 @@
|
|||||||
module Puppet::Parser::Functions
|
|
||||||
newfunction(:get_ext_net_name, :type => :rvalue) do |args|
|
|
||||||
networks = args.first
|
|
||||||
fail 'No network data provided!' unless networks.is_a? Hash
|
|
||||||
ext_net_array = networks.find { |_, value| value.fetch('L2', {})['router_ext'] }
|
|
||||||
break unless ext_net_array
|
|
||||||
ext_net_array.first
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,85 +1,63 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'get_ext_net_name' do
|
describe 'get_ext_net_name' do
|
||||||
let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
|
it 'exists' do
|
||||||
|
is_expected.not_to eq(nil)
|
||||||
|
end
|
||||||
|
|
||||||
it 'should exist' do
|
it 'fails with no arguments' do
|
||||||
expect(Puppet::Parser::Functions.function('get_ext_net_name')).to eq('function_get_ext_net_name')
|
is_expected.to run.with_params.and_raise_error(Puppet::ParseError)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should return the network name that has router_ext enabled' do
|
it 'should return the network name that has router_ext enabled' do
|
||||||
expect(scope.function_get_ext_net_name(
|
param = {
|
||||||
[
|
"net04" => {
|
||||||
{
|
"L2" => {
|
||||||
"net04" =>
|
"router_ext" => false,
|
||||||
{
|
|
||||||
"L2" =>
|
|
||||||
{
|
|
||||||
"router_ext" => false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"net04_ext" =>
|
|
||||||
{
|
|
||||||
"L2" =>
|
|
||||||
{
|
|
||||||
"router_ext" => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
)).to eq 'net04_ext'
|
"net04_ext" => {
|
||||||
|
"L2" => {
|
||||||
|
"router_ext" => true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is_expected.to run.with_params(param).and_return('net04_ext')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should return nil if router_ext is not enabled' do
|
it 'should return nil if router_ext is not enabled' do
|
||||||
expect(scope.function_get_ext_net_name(
|
param = {
|
||||||
[
|
"net04" => {
|
||||||
{
|
"L2" => {
|
||||||
"net04" =>
|
"router_ext" => false,
|
||||||
{
|
|
||||||
"L2" =>
|
|
||||||
{
|
|
||||||
"router_ext" => false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"net04_ext" =>
|
|
||||||
{
|
|
||||||
"L2" =>
|
|
||||||
{
|
|
||||||
"router_ext" => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
},
|
||||||
)).to be_nil
|
"net04_ext" => {
|
||||||
|
"L2" => {
|
||||||
|
"router_ext" => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is_expected.to run.with_params(param).and_return(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should return nil if there is no router_ext' do
|
it 'should return nil if there is no router_ext' do
|
||||||
expect(scope.function_get_ext_net_name(
|
param = {
|
||||||
[
|
"net04" => {
|
||||||
{
|
"L2" => {}
|
||||||
"net04" =>
|
},
|
||||||
{
|
"net04_ext" => {
|
||||||
"L2" =>
|
"L2" => {}
|
||||||
{
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"net04_ext" =>
|
is_expected.to run.with_params(param).and_return(nil)
|
||||||
{
|
|
||||||
"L2" =>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)).to be_nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should return nil with empty network data' do
|
it 'should return nil with empty network data' do
|
||||||
expect(scope.function_get_ext_net_name(
|
param = {}
|
||||||
[
|
is_expected.to run.with_params(param).and_return(nil)
|
||||||
{}
|
|
||||||
]
|
|
||||||
)).to be_nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user