aboutsummaryrefslogtreecommitdiff
path: root/lib/puppet/provider
diff options
context:
space:
mode:
authorJorie Tappa <jorie@jorietappa.com>2018-07-31 17:01:34 -0500
committerJorie Tappa <jorie@jorietappa.com>2018-08-01 10:30:53 -0500
commit90216d84f8a2da1f77107dc5f0e3d76a3d72aacc (patch)
tree6c8b98d86ed8ea12c20a6e4234b595d99c922ad4 /lib/puppet/provider
parenta2af7dd0b9713f279724d2c7e6f17bfd8ce2d95b (diff)
downloadpuppet-cron_core-90216d84f8a2da1f77107dc5f0e3d76a3d72aacc.tar.gz
puppet-cron_core-90216d84f8a2da1f77107dc5f0e3d76a3d72aacc.tar.bz2
Apply automatic pdk validate fixes
Diffstat (limited to 'lib/puppet/provider')
-rw-r--r--lib/puppet/provider/cron/crontab.rb141
1 files changed, 69 insertions, 72 deletions
diff --git a/lib/puppet/provider/cron/crontab.rb b/lib/puppet/provider/cron/crontab.rb
index b24ed14..a664629 100644
--- a/lib/puppet/provider/cron/crontab.rb
+++ b/lib/puppet/provider/cron/crontab.rb
@@ -1,99 +1,99 @@
require 'puppet/provider/parsedfile'
-Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFile, :default_target => ENV["USER"] || "root") do
- commands :crontab => "crontab"
+Puppet::Type.type(:cron).provide(:crontab, parent: Puppet::Provider::ParsedFile, default_target: ENV['USER'] || 'root') do
+ commands crontab: 'crontab'
- text_line :comment, :match => %r{^\s*#}, :post_parse => proc { |record|
- record[:name] = $1 if record[:line] =~ /Puppet Name: (.+)\s*$/
+ text_line :comment, match: %r{^\s*#}, post_parse: proc { |record|
+ record[:name] = Regexp.last_match(1) if record[:line] =~ %r{Puppet Name: (.+)\s*$}
}
- text_line :blank, :match => %r{^\s*$}
+ text_line :blank, match: %r{^\s*$}
- text_line :environment, :match => %r{^\s*\w+\s*=}
+ text_line :environment, match: %r{^\s*\w+\s*=}
def self.filetype
- tabname = case Facter.value(:osfamily)
- when "Solaris"
- :suntab
- when "AIX"
- :aixtab
- else
- :crontab
- end
+ tabname = case Facter.value(:osfamily)
+ when 'Solaris'
+ :suntab
+ when 'AIX'
+ :aixtab
+ else
+ :crontab
+ end
Puppet::Util::FileType.filetype(tabname)
end
- self::TIME_FIELDS = [:minute, :hour, :monthday, :month, :weekday]
+ self::TIME_FIELDS = [:minute, :hour, :monthday, :month, :weekday].freeze
record_line :crontab,
- :fields => %w{time command},
- :match => %r{^\s*(@\w+|\S+\s+\S+\s+\S+\s+\S+\s+\S+)\s+(.+)$},
- :absent => '*',
- :block_eval => :instance do
+ fields: ['time', 'command'],
+ match: %r{^\s*(@\w+|\S+\s+\S+\s+\S+\s+\S+\s+\S+)\s+(.+)$},
+ absent: '*',
+ block_eval: :instance do
def post_parse(record)
time = record.delete(:time)
- if match = /@(\S+)/.match(time)
+ if match = %r{@(\S+)}.match(time)
# is there another way to access the constant?
Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS.each { |f| record[f] = :absent }
record[:special] = match.captures[0]
- elsif match = /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/.match(time)
+ elsif match = %r{(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)}.match(time)
record[:special] = :absent
- Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS.zip(match.captures).each do |field,value|
- if value == self.absent
- record[field] = :absent
- else
- record[field] = value.split(",")
- end
+ Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS.zip(match.captures).each do |field, value|
+ record[field] = if value == absent
+ :absent
+ else
+ value.split(',')
+ end
end
else
- raise Puppet::Error, _("Line got parsed as a crontab entry but cannot be handled. Please file a bug with the contents of your crontab")
+ raise Puppet::Error, _('Line got parsed as a crontab entry but cannot be handled. Please file a bug with the contents of your crontab')
end
record
end
def pre_gen(record)
- if record[:special] and record[:special] != :absent
+ if record[:special] && record[:special] != :absent
record[:special] = "@#{record[:special]}"
end
Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS.each do |field|
- if vals = record[field] and vals.is_a?(Array)
- record[field] = vals.join(",")
+ if (vals = record[field]) && vals.is_a?(Array)
+ record[field] = vals.join(',')
end
end
record
end
def to_line(record)
- str = ""
+ str = ''
record[:name] = nil if record[:unmanaged]
str = "# Puppet Name: #{record[:name]}\n" if record[:name]
- if record[:environment] and record[:environment] != :absent
- str += record[:environment].map {|line| "#{line}\n"}.join('')
+ if record[:environment] && record[:environment] != :absent
+ str += record[:environment].map { |line| "#{line}\n" }.join('')
end
- if record[:special] and record[:special] != :absent
- fields = [:special, :command]
- else
- fields = Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS + [:command]
- end
- str += record.values_at(*fields).map do |field|
- if field.nil? or field == :absent
- self.absent
+ fields = if record[:special] && record[:special] != :absent
+ [:special, :command]
+ else
+ Puppet::Type::Cron::ProviderCrontab::TIME_FIELDS + [:command]
+ end
+ str += record.values_at(*fields).map { |field|
+ if field.nil? || field == :absent
+ absent
else
field
end
- end.join(self.joiner)
+ }.join(joiner)
str
end
end
def create
- if resource.should(:command) then
+ if resource.should(:command)
super
else
- resource.err _("no command specified, cannot create")
+ resource.err _('no command specified, cannot create')
end
end
@@ -124,15 +124,15 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
# Return the header placed at the top of each generated file, warning
# users that modifying this file manually is probably a bad idea.
def self.header
-%{# HEADER: This file was autogenerated at #{Time.now} by puppet.
+ %(# HEADER: This file was autogenerated at #{Time.now} by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
-# HEADER: not be deleted, as doing so could cause duplicate cron jobs.\n}
+# HEADER: not be deleted, as doing so could cause duplicate cron jobs.\n)
end
# Regex for finding one vixie cron header.
def self.native_header_regex
- /# DO NOT EDIT THIS FILE.*?Cron version.*?vixie.*?\n/m
+ %r{# DO NOT EDIT THIS FILE.*?Cron version.*?vixie.*?\n}m
end
# If a vixie cron header is found, it should be dropped, cron will insert
@@ -145,8 +145,8 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
def self.match(record, resources)
# if the record is named, do not even bother (#19876)
# except the resource name was implicitly generated (#3220)
- return false if record[:name] and !record[:unmanaged]
- resources.each do |name, resource|
+ return false if record[:name] && !record[:unmanaged]
+ resources.each do |_name, resource|
# Match the command first, since it's the most important one.
next unless record[:target] == resource[:target]
next unless record[:command] == resource.value(:command)
@@ -166,13 +166,13 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
break
end
- if record_value = record[field] and resource_value = resource.value(field)
+ if (record_value = record[field]) && (resource_value = resource.value(field))
# The record translates '*' into absent in the post_parse hook and
# the resource type does exactly the opposite (alias :absent to *)
- next if resource_value == '*' and record_value == :absent
+ next if resource_value == '*' && record_value == :absent
next if resource_value == record_value
end
- matched =false
+ matched = false
break
end
return resource if matched
@@ -210,12 +210,12 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
record[:name] = name
name = nil
else
- cmd_string = record[:command].gsub(/\s+/, "_")
- index = ( @name_index += 1 )
- record[:name] = "unmanaged:#{cmd_string}-#{ index.to_s }"
+ cmd_string = record[:command].gsub(%r{\s+}, '_')
+ index = (@name_index += 1)
+ record[:name] = "unmanaged:#{cmd_string}-#{index}"
record[:unmanaged] = true
end
- if envs.nil? or envs.empty?
+ if envs.nil? || envs.empty?
record[:environment] = :absent
else
# Collect all of the environment lines, and mark the records to be skipped,
@@ -236,8 +236,8 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
# single cron line, but not in all cases (e.g., it doesn't do it
# on my machine). This is my attempt to fix it so the TZ lines don't
# multiply.
- if text =~ /(^TZ=.+\n)/
- tz = $1
+ if text =~ %r{(^TZ=.+\n)}
+ tz = Regexp.last_match(1)
text.sub!(tz, '')
text = tz + text
end
@@ -257,15 +257,15 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
@property_hash[:user] || @property_hash[:target]
end
- CRONTAB_DIR = case Facter.value("osfamily")
- when "Debian", "HP-UX"
- "/var/spool/cron/crontabs"
- when /BSD/
- "/var/cron/tabs"
- when "Darwin"
- "/usr/lib/cron/tabs/"
- else
- "/var/spool/cron"
+ CRONTAB_DIR = case Facter.value('osfamily')
+ when 'Debian', 'HP-UX'
+ '/var/spool/cron/crontabs'
+ when %r{BSD}
+ '/var/cron/tabs'
+ when 'Darwin'
+ '/usr/lib/cron/tabs/'
+ else
+ '/var/spool/cron'
end
# Yield the names of all crontab files stored on the local system.
@@ -278,11 +278,10 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
return unless File.readable?(CRONTAB_DIR)
Dir.foreach(CRONTAB_DIR) do |file|
path = "#{CRONTAB_DIR}/#{file}"
- yield(file) if File.file?(path) and File.writable?(path)
+ yield(file) if File.file?(path) && File.writable?(path)
end
end
-
# Include all plausible crontab files on the system
# in the list of targets (#11383 / PUP-1381)
def self.targets(resources = nil)
@@ -292,6 +291,4 @@ Puppet::Type.type(:cron).provide(:crontab, :parent => Puppet::Provider::ParsedFi
end
targets.uniq
end
-
end
-