Class: Chef::Platform
- Inherits:
-
Object
- Object
- Chef::Platform
- Defined in:
- lib/chef/platform.rb,
lib/chef/platform/rebooter.rb,
lib/chef/platform/priority_map.rb,
lib/chef/platform/query_helpers.rb,
lib/chef/platform/service_helpers.rb,
lib/chef/platform/provider_mapping.rb,
lib/chef/platform/provider_handler_map.rb,
lib/chef/platform/resource_handler_map.rb,
lib/chef/platform/provider_priority_map.rb,
lib/chef/platform/resource_priority_map.rb
Defined Under Namespace
Modules: Rebooter, ServiceHelpers Classes: PriorityMap, ProviderHandlerMap, ProviderPriorityMap, ResourceHandlerMap, ResourcePriorityMap
Class Method Summary collapse
- .dsc_refresh_mode_disabled?(node) ⇒ Boolean
- .find_platform_and_version(node) ⇒ Object
- .supported_powershell_version?(node, version_string) ⇒ Boolean
- .supports_dsc?(node) ⇒ Boolean
- .supports_dsc_invoke_resource?(node) ⇒ Boolean
-
.supports_msi? ⇒ Boolean
deprecated
Deprecated.
we added this method due to Windows Server Nano, which is no longer a platform
-
.supports_powershell_execution_bypass?(node) ⇒ Boolean
deprecated
Deprecated.
we don't support any release of Windows that isn't PS 3+
- .supports_refresh_mode_enabled?(node) ⇒ Boolean
- .windows? ⇒ Boolean
-
.windows_nano_server? ⇒ Boolean
deprecated
Deprecated.
Windows Nano is not a thing anymore so this check shouldn't be used
Class Method Details
.dsc_refresh_mode_disabled?(node) ⇒ Boolean
60 61 62 63 64 65 |
# File 'lib/chef/platform/query_helpers.rb', line 60 def dsc_refresh_mode_disabled?(node) require_relative "../powershell" exec = Chef::PowerShell.new("Get-DscLocalConfigurationManager") exec.error! exec.result["RefreshMode"] == "Disabled" end |
.find_platform_and_version(node) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/chef/platform/provider_mapping.rb', line 29 def find_platform_and_version(node) platform = nil version = nil if node[:platform] platform = node[:platform] elsif node.attribute?("os") platform = node[:os] end raise ArgumentError, "Cannot find a platform for #{node}" unless platform if node[:platform_version] version = node[:platform_version] elsif node[:os_version] version = node[:os_version] elsif node[:os_release] version = node[:os_release] end raise ArgumentError, "Cannot find a version for #{node}" unless version [platform, version] end |
.supported_powershell_version?(node, version_string) ⇒ Boolean
67 68 69 70 71 72 73 |
# File 'lib/chef/platform/query_helpers.rb', line 67 def supported_powershell_version?(node, version_string) return false unless node[:languages] && node[:languages][:powershell] require "rubygems" unless defined?(Gem) Gem::Version.new(node[:languages][:powershell][:version]) >= Gem::Version.new(version_string) end |
.supports_dsc?(node) ⇒ Boolean
46 47 48 49 |
# File 'lib/chef/platform/query_helpers.rb', line 46 def supports_dsc?(node) node[:languages] && node[:languages][:powershell] && node[:languages][:powershell][:version].to_i >= 4 end |
.supports_dsc_invoke_resource?(node) ⇒ Boolean
51 52 53 54 |
# File 'lib/chef/platform/query_helpers.rb', line 51 def supports_dsc_invoke_resource?(node) supports_dsc?(node) && supported_powershell_version?(node, "5.0.10018.0") end |
.supports_msi? ⇒ Boolean
Deprecated.
we added this method due to Windows Server Nano, which is no longer a platform
35 36 37 38 39 |
# File 'lib/chef/platform/query_helpers.rb', line 35 def supports_msi? return false unless windows? true end |
.supports_powershell_execution_bypass?(node) ⇒ Boolean
Deprecated.
we don't support any release of Windows that isn't PS 3+
42 43 44 |
# File 'lib/chef/platform/query_helpers.rb', line 42 def supports_powershell_execution_bypass?(node) true end |
.supports_refresh_mode_enabled?(node) ⇒ Boolean
56 57 58 |
# File 'lib/chef/platform/query_helpers.rb', line 56 def supports_refresh_mode_enabled?(node) supported_powershell_version?(node, "5.0.10586.0") end |
.windows? ⇒ Boolean
25 26 27 |
# File 'lib/chef/platform/query_helpers.rb', line 25 def windows? ChefUtils.windows? end |
.windows_nano_server? ⇒ Boolean
Deprecated.
Windows Nano is not a thing anymore so this check shouldn't be used
30 31 32 |
# File 'lib/chef/platform/query_helpers.rb', line 30 def windows_nano_server? false end |