class RuboCop::Cop::Chef::Deprecations::DeprecatedSudoActions

The ‘sudo` resource in the sudo cookbook 5.0 (2018) or Chef Infra Client 14 and later have replaced the existing `:install` and `:remove` actions with `:create` and `:delete` actions to better match other resources in Chef Infra.

@example

#### incorrect
sudo 'admins' do
  users 'bob'
  groups 'sysadmins, superusers'
  action :remove
end

#### correct
sudo 'admins' do
  users 'bob'
  groups 'sysadmins, superusers'
  action :delete
end

Constants

MSG

Public Instance Methods

on_block(node) click to toggle source
# File lib/rubocop/cop/chef/deprecation/deprecated_sudo_actions.rb, line 49
def on_block(node)
  match_property_in_resource?(:sudo, 'action', node) do |prop_node|
    next unless prop_node.arguments.first.sym_type?
    next unless [s(:sym, :install), s(:sym, :remove)].include?(prop_node.arguments.first)

    add_offense(prop_node, severity: :warning) do |corrector|
      corrector.replace(prop_node, prop_node.source
        .gsub('install', 'create')
        .gsub('remove', 'delete'))
    end
  end
end