Class: Chef::Platform
- Inherits:
-
Object
- Object
- Chef::Platform
- Extended by:
- Mixin::PowershellExec
- 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
63 64 65 66 67 |
# File 'lib/chef/platform/query_helpers.rb', line 63 def dsc_refresh_mode_disabled?(node) exec = powershell_exec!("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
69 70 71 72 73 74 75 |
# File 'lib/chef/platform/query_helpers.rb', line 69 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
49 50 51 52 |
# File 'lib/chef/platform/query_helpers.rb', line 49 def supports_dsc?(node) node[:languages] && node[:languages][:powershell] && node[:languages][:powershell][:version].to_i >= 4 end |
.supports_dsc_invoke_resource?(node) ⇒ Boolean
54 55 56 57 |
# File 'lib/chef/platform/query_helpers.rb', line 54 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
38 39 40 41 42 |
# File 'lib/chef/platform/query_helpers.rb', line 38 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+
45 46 47 |
# File 'lib/chef/platform/query_helpers.rb', line 45 def supports_powershell_execution_bypass?(node) true end |
.supports_refresh_mode_enabled?(node) ⇒ Boolean
59 60 61 |
# File 'lib/chef/platform/query_helpers.rb', line 59 def supports_refresh_mode_enabled?(node) supported_powershell_version?(node, "5.0.10586.0") end |
.windows? ⇒ Boolean
28 29 30 |
# File 'lib/chef/platform/query_helpers.rb', line 28 def windows? ChefUtils.windows? end |
.windows_nano_server? ⇒ Boolean
Deprecated.
Windows Nano is not a thing anymore so this check shouldn't be used
33 34 35 |
# File 'lib/chef/platform/query_helpers.rb', line 33 def windows_nano_server? false end |