Class: RuboCop::Cop::Chef::Deprecations::WindowsVersionHelpers

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector, TargetChefVersion
Defined in:
lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb

Overview

Use node and node data instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook.

Examples:


### incorrect
Windows::VersionHelper.nt_version
Windows::VersionHelper.server_version?
Windows::VersionHelper.core_version?
Windows::VersionHelper.workstation_version?

### correct
node['platform_version'].to_f
node['kernel']['product_type'] == 'Server'
node['kernel']['server_core']
node['kernel']['product_type'] == 'Workstation'

Constant Summary collapse

MSG =
"Use node['platform_version'] and node['kernel'] data introduced in Chef Infra Client 14 instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook."
RESTRICT_ON_SEND =
[:nt_version, :server_version?, :core_version?, :workstation_version?].freeze

Instance Method Summary collapse

Methods included from TargetChefVersion

minimum_target_chef_version, required_minimum_chef_version, support_target_chef_version?

Methods inherited from Base

#target_chef_version

Instance Method Details

#on_send(node) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb', line 51

def on_send(node)
  windows_helper?(node) do |method|
    add_offense(node, severity: :refactor) do |corrector|
      case method
      when :nt_version
        corrector.replace(node, 'node[\'platform_version\'].to_f')
      when :server_version?
        corrector.replace(node, 'node[\'kernel\'][\'product_type\'] == \'Server\'')
      when :core_version?
        corrector.replace(node, 'node[\'kernel\'][\'server_core\']')
      when :workstation_version?
        corrector.replace(node, 'node[\'kernel\'][\'product_type\'] == \'Workstation\'')
      end
    end
  end
end