module Chef::DSL::PlatformIntrospection

Chef::DSL::PlatformIntrospection

Provides the DSL for platform-dependent switch logic, such as value_for_platform.

Public Instance Methods

older_than_win_2012_or_8?(node = run_context.nil? ? nil : run_context.node) click to toggle source

a simple helper to determine if we're on a windows release pre-2012 / 8

@deprecated Windows releases before Windows 2012 and 8 are no longer supported @return [Boolean] Is the system older than Windows 8 / 2012

# File lib/chef/dsl/platform_introspection.rb, line 256
def older_than_win_2012_or_8?(node = run_context.nil? ? nil : run_context.node)
  false # we don't support platforms that would be true
end
platform?(*args) click to toggle source

Given a list of platforms, returns true if the current recipe is being run on a node with that platform, false otherwise.

Parameters

args

A list of platforms. Each platform can be in string or symbol format.

Returns

true

If the current platform is in the list

false

If the current platform is not in the list

# File lib/chef/dsl/platform_introspection.rb, line 163
def platform?(*args)
  has_platform = false

  args.flatten.each do |platform|
    has_platform = true if platform.to_s == node[:platform]
  end

  has_platform
end
platform_family?(*args) click to toggle source

Given a list of platform families, returns true if the current recipe is being run on a node within that platform family, false otherwise.

Parameters

args

A list of platform families. Each platform family can be in string or symbol format.

Returns

true

if the current node platform family is in the list.

false

if the current node platform family is not in the list.

# File lib/chef/dsl/platform_introspection.rb, line 246
def platform_family?(*args)
  args.flatten.any? do |platform_family|
    platform_family.to_s == node[:platform_family]
  end
end
value_for_platform(platform_hash) click to toggle source

Given a hash similar to the one we use for Platforms, select a value from the hash. Supports per platform defaults, along with a single base default. Arrays may be passed as hash keys and will be expanded.

Parameters

platform_hash

A platform-style hash.

Returns

value

Whatever the most specific value of the hash is.

# File lib/chef/dsl/platform_introspection.rb, line 150
def value_for_platform(platform_hash)
  PlatformDependentValue.new(platform_hash).value_for_node(node)
end
value_for_platform_family(platform_family_hash) click to toggle source

Given a hash mapping platform families to values, select a value from the hash. Supports a single base default if platform family is not in the map. Arrays may be passed as hash keys and will be expanded

Parameters

platform_family_hash

A hash in the form { platform_family_name => value }

Returns

value

Whatever the most specific value of the hash is.

# File lib/chef/dsl/platform_introspection.rb, line 233
def value_for_platform_family(platform_family_hash)
  PlatformFamilyDependentValue.new(platform_family_hash).value_for_node(node)
end