#
# has_interface_with
#
-
module Puppet::Parser::Functions
- newfunction(:has_interface_with, :type => :rvalue, :doc => <<-EOS
-Returns boolean based on kind and value:
- * macaddress
- * netmask
- * ipaddress
- * network
+ newfunction(:has_interface_with, :type => :rvalue, :doc => <<-DOC
+ @summary
+ Returns boolean based on kind and value.
+
+ @return
+ boolean values `true` or `false`
+
+ Valid kinds are `macaddress`, `netmask`, `ipaddress` and `network`.
-has_interface_with("macaddress", "x:x:x:x:x:x")
-has_interface_with("ipaddress", "127.0.0.1") => true
-etc.
+ @example **Usage**
+ has_interface_with("macaddress", "x:x:x:x:x:x") # Returns `false`
+ has_interface_with("ipaddress", "127.0.0.1") # Returns `true`
-If no "kind" is given, then the presence of the interface is checked:
-has_interface_with("lo") => true
- EOS
- ) do |args|
+ @example If no "kind" is given, then the presence of the interface is checked:
+ has_interface_with("lo") # Returns `true`
+ DOC
+ ) do |args|
- raise(Puppet::ParseError, "has_interface_with(): Wrong number of arguments given (#{args.size} for 1 or 2)") if args.size < 1 or args.size > 2
+ raise(Puppet::ParseError, "has_interface_with(): Wrong number of arguments given (#{args.size} for 1 or 2)") if args.empty? || args.size > 2
interfaces = lookupvar('interfaces')
# If we do not have any interfaces, then there are no requested attributes
- return false if (interfaces == :undefined || interfaces.nil?)
+ return false if interfaces == :undefined || interfaces.nil?
interfaces = interfaces.split(',')
catch :undefined_variable do
factval = lookupvar(kind)
end
- rescue Puppet::ParseError # Eat the exception if strict_variables = true is set
+ rescue Puppet::ParseError # rubocop:disable Lint/HandleExceptions : Eat the exception if strict_variables = true is set
end
if factval == value
return true
catch :undefined_variable do
factval = lookupvar("#{kind}_#{iface}")
end
- rescue Puppet::ParseError # Eat the exception if strict_variables = true is set
+ rescue Puppet::ParseError # rubocop:disable Lint/HandleExceptions : Eat the exception if strict_variables = true is set
end
if value == factval
result = true