Autocorrect PDK validation warnings

This commit is contained in:
2019-05-09 23:41:09 +01:00
parent 998f1716f3
commit 939f795d37
26 changed files with 537 additions and 584 deletions

View File

@@ -1,16 +1,15 @@
Facter.add('entropy_repos') do Facter.add('entropy_repos') do
confine operatingsystem: :Sabayon
confine :operatingsystem => :Sabayon
setcode do setcode do
# Use the types/providers to do the heavy lifting here # Use the types/providers to do the heavy lifting here
repos = {} repos = {}
Puppet::Type.type(:entropy_repo).provider(:file).instances().each do |repo| Puppet::Type.type(:entropy_repo).provider(:file).instances.each do |repo|
Facter.debug(repo.enabled) Facter.debug(repo.enabled)
r = { r = {
:repo_type => repo.repo_type, repo_type: repo.repo_type,
:enabled => repo.enabled, enabled: repo.enabled,
} }
repos[repo.name] = r repos[repo.name] = r
@@ -18,5 +17,4 @@ Facter.add('entropy_repos') do
repos repos
end end
end end

View File

@@ -1,7 +1,6 @@
Facter.add(:locale) do Facter.add(:locale) do
confine :osfamily => :gentoo confine osfamily: :gentoo
setcode do setcode do
Facter::Core::Execution.exec('eselect --colour=no --brief locale show').strip Facter::Core::Execution.exec('eselect --colour=no --brief locale show').strip
end end
end end

View File

@@ -1,20 +1,20 @@
Puppet::Type.type(:enman_repo).provide(:enman) do Puppet::Type.type(:enman_repo).provide(:enman) do
desc "Enman provider for Enman Repositories" desc 'Enman provider for Enman Repositories'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
commands({:enman => "enman"}) commands(enman: 'enman')
mk_resource_methods mk_resource_methods
def create def create
enman("add", resource[:name]) enman('add', resource[:name])
@property_hash[:ensure] = :present @property_hash[:ensure] = :present
end end
def destroy def destroy
enman("remove", resource[:name]) enman('remove', resource[:name])
@property_hash[:ensure] = :absent @property_hash[:ensure] = :absent
end end
def exists? def exists?
@@ -22,33 +22,30 @@ Puppet::Type.type(:enman_repo).provide(:enman) do
end end
def self.instances def self.instances
all_installed = enman("list", "--quiet", "--installed").chomp.split all_installed = enman('list', '--quiet', '--installed').chomp.split
all_available = enman("list", "--quiet", "--available").chomp.split all_available = enman('list', '--quiet', '--available').chomp.split
all_available.collect do |available_repo| all_available.map do |available_repo|
repo = { repo = {
:name => available_repo, name: available_repo,
:ensure => all_installed.include?(available_repo) ? :present : :absent, ensure: all_installed.include?(available_repo) ? :present : :absent,
:provider => :enman_repo, provider: :enman_repo,
} }
Puppet.debug(repo) Puppet.debug(repo)
new(repo) new(repo)
end end
end end
def self.prefetch(resources) def self.prefetch(resources)
available_repos = self.instances() available_repos = instances
resources.each do |name, resource| resources.each do |name, _resource|
if provider = available_repos.find { |r| r.name == name } if provider = available_repos.find { |r| r.name == name }
resources[name].provider = provider resources[name].provider = provider
end end
end end
end end
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,41 +1,38 @@
require 'puppet/provider/parsedfile' require 'puppet/provider/parsedfile'
file = "/etc/entropy/packages/package.keywords" file = '/etc/entropy/packages/package.keywords'
Puppet::Type.type(:entropy_keywords).provide(:parsed, Puppet::Type.type(:entropy_keywords).provide(:parsed,
:parent => Puppet::Provider::ParsedFile, parent: Puppet::Provider::ParsedFile,
:default_target => file, default_target: file,
:filetype => :flat filetype: :flat) do
) do
desc "Override keywords for entropy packages" desc 'Override keywords for entropy packages'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
text_line :blank, text_line :blank,
:match => /^\s*$/ match: %r{^\s*$}
text_line :comment, text_line :comment,
:match => /^\s*#/ match: %r{^\s*#}
text_line :unmanaged, text_line :unmanaged,
:match => %r{^(\S+)\s+([<>]?=)?(?:((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?)?(?:\s*repo=([a-zA-Z0-9\._-]+))?\s*$} match: %r{^(\S+)\s+([<>]?=)?(?:((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?)?(?:\s*repo=([a-zA-Z0-9\._-]+))?\s*$}
record_line :parsed, record_line :parsed,
:fields => %w{keyword operator package version repo name}, fields: ['keyword', 'operator', 'package', 'version', 'repo', 'name'],
:match => %r{^(\S+)\s+([<>]?=)?(?:((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?)?(?:\s*repo=([a-zA-Z0-9\._-]+))?\s+## Puppet Name: (.*)\s*$}, match: %r{^(\S+)\s+([<>]?=)?(?:((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?)?(?:\s*repo=([a-zA-Z0-9\._-]+))?\s+## Puppet Name: (.*)\s*$},
:to_line => proc { |record| to_line: proc { |record|
line = record[:keyword] + " " line = record[:keyword] + ' '
line += record[:operator] if record[:operator] line += record[:operator] if record[:operator]
line += record[:package] if record[:package] line += record[:package] if record[:package]
line += "-" + record[:version] if record[:version] line += '-' + record[:version] if record[:version]
line += " " if record[:package] && record[:repo] line += ' ' if record[:package] && record[:repo]
line += "repo=" + record[:repo] if record[:repo] line += 'repo=' + record[:repo] if record[:repo]
line += " ## Puppet Name: " + record[:name] line += ' ## Puppet Name: ' + record[:name]
line
}
line
}
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,43 +1,40 @@
require 'puppet/provider/parsedfile' require 'puppet/provider/parsedfile'
masks = "/etc/entropy/packages/package.mask" masks = '/etc/entropy/packages/package.mask'
Puppet::Type.type(:entropy_mask).provide(:parsed, Puppet::Type.type(:entropy_mask).provide(:parsed,
:parent => Puppet::Provider::ParsedFile, parent: Puppet::Provider::ParsedFile,
:default_target => masks, default_target: masks,
:filetype => :flat filetype: :flat) do
) do
desc "File mask provider for entropy packages" desc 'File mask provider for entropy packages'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
text_line :blank, text_line :blank,
:match => /^\s*$/ match: %r{^\s*$}
text_line :comment, text_line :comment,
:match => /^\s*#/ match: %r{^\s*#}
text_line :unmanaged, text_line :unmanaged,
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s*$} match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s*$}
record_line :parsed, record_line :parsed,
:fields => %w{operator package version slot use tag repo name}, fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s+#+ Puppet Name: (.*)\s*$}, match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s+#+ Puppet Name: (.*)\s*$},
:to_line => proc { |record| to_line: proc { |record|
line = "" line = ''
line += record[:operator] if record[:operator] line += record[:operator] if record[:operator]
line += record[:package] if record[:package] line += record[:package] if record[:package]
line += "-" + record[:version] if record[:version] line += '-' + record[:version] if record[:version]
line += ":" + record[:slot] if record[:slot] line += ':' + record[:slot] if record[:slot]
line += "[" + record[:use] + "]" if record[:use] line += '[' + record[:use] + ']' if record[:use]
line += "#" + record[:tag] if record[:tag] line += '#' + record[:tag] if record[:tag]
line += "::" + record[:repo] if record[:repo] line += '::' + record[:repo] if record[:repo]
line += " ## Puppet Name: " + record[:name] line += ' ## Puppet Name: ' + record[:name]
line
}
line
}
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,7 +1,7 @@
Puppet::Type.type(:entropy_repo).provide(:file) do Puppet::Type.type(:entropy_repo).provide(:file) do
desc "File provider for Entropy Repositories" desc 'File provider for Entropy Repositories'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
mk_resource_methods mk_resource_methods
@@ -18,11 +18,11 @@ Puppet::Type.type(:entropy_repo).provide(:file) do
disabled_filename = "/etc/entropy/repositories.conf.d/_entropy_#{type_prefix}#{@property_hash[:name]}" disabled_filename = "/etc/entropy/repositories.conf.d/_entropy_#{type_prefix}#{@property_hash[:name]}"
if value == 'true' || value == :true if value == 'true' || value == :true
if File.exists?(disabled_filename) if File.exist?(disabled_filename)
File.rename(disabled_filename, enabled_filename) File.rename(disabled_filename, enabled_filename)
end end
else else
if File.exists?(enabled_filename) if File.exist?(enabled_filename)
File.rename(enabled_filename, disabled_filename) File.rename(enabled_filename, disabled_filename)
end end
end end
@@ -33,42 +33,40 @@ Puppet::Type.type(:entropy_repo).provide(:file) do
def self.instances def self.instances
repos = Dir.entries('/etc/entropy/repositories.conf.d/') repos = Dir.entries('/etc/entropy/repositories.conf.d/')
repos.collect do |r| repos.map { |r|
if r == '.' || r == '..' if r == '.' || r == '..'
nil nil
elsif r =~ /\.example$/ elsif r =~ %r{\.example$}
nil nil
elsif r !~ /^_?entropy_/ elsif r !~ %r{^_?entropy_}
nil nil
else else
matches = /^(_)?entropy_(enman_)?(.*)$/.match(r) matches = %r{^(_)?entropy_(enman_)?(.*)$}.match(r)
enabled = matches[1].nil? ? 'true' : 'false' enabled = matches[1].nil? ? 'true' : 'false'
type = matches[2] == 'enman_' ? 'enman' : 'entropy' type = (matches[2] == 'enman_') ? 'enman' : 'entropy'
name = matches[3] name = matches[3]
repo = { repo = {
:name => name, name: name,
:repo_type => type, repo_type: type,
:enabled => enabled, enabled: enabled,
:provider => :entropy_repo, provider: :entropy_repo,
} }
new(repo) new(repo)
end end
end.compact }.compact
end end
def self.prefetch(resources) def self.prefetch(resources)
repos = self.instances() repos = instances
resources.each do |name, resource| resources.each do |name, _resource|
if provider = repos.find { |r| r.name == name } if provider = repos.find { |r| r.name == name }
resources[name].provider = provider resources[name].provider = provider
end end
end end
end end
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,43 +1,40 @@
require 'puppet/provider/parsedfile' require 'puppet/provider/parsedfile'
file = "/etc/entropy/packages/package.splitdebug" file = '/etc/entropy/packages/package.splitdebug'
Puppet::Type.type(:entropy_splitdebug).provide(:parsed, Puppet::Type.type(:entropy_splitdebug).provide(:parsed,
:parent => Puppet::Provider::ParsedFile, parent: Puppet::Provider::ParsedFile,
:default_target => file, default_target: file,
:filetype => :flat filetype: :flat) do
) do
desc "File splitdebug provider for entropy packages" desc 'File splitdebug provider for entropy packages'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
text_line :blank, text_line :blank,
:match => /^\s*$/ match: %r{^\s*$}
text_line :comment, text_line :comment,
:match => /^\s*#/ match: %r{^\s*#}
text_line :unmanaged, text_line :unmanaged,
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9\._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s*$} match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9\._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s*$}
record_line :parsed, record_line :parsed,
:fields => %w{operator package version slot use tag repo name}, fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9\._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s+#+ Puppet Name: (.*)\s*$}, match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9\._-]+))?(?:::([a-zA-Z0-9\._-]+))?\s+#+ Puppet Name: (.*)\s*$},
:to_line => proc { |record| to_line: proc { |record|
line = "" line = ''
line += record[:operator] if record[:operator] line += record[:operator] if record[:operator]
line += record[:package] if record[:package] line += record[:package] if record[:package]
line += "-" + record[:version] if record[:version] line += '-' + record[:version] if record[:version]
line += ":" + record[:slot] if record[:slot] line += ':' + record[:slot] if record[:slot]
line += "[" + record[:use] + "]" if record[:use] line += '[' + record[:use] + ']' if record[:use]
line += "#" + record[:tag] if record[:tag] line += '#' + record[:tag] if record[:tag]
line += "::" + record[:repo] if record[:repo] line += '::' + record[:repo] if record[:repo]
line += " ## Puppet Name: " + record[:name] line += ' ## Puppet Name: ' + record[:name]
line
}
line
}
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,43 +1,40 @@
require 'puppet/provider/parsedfile' require 'puppet/provider/parsedfile'
file = "/etc/entropy/packages/package.splitdebug.mask" file = '/etc/entropy/packages/package.splitdebug.mask'
Puppet::Type.type(:entropy_splitdebug_mask).provide(:parsed, Puppet::Type.type(:entropy_splitdebug_mask).provide(:parsed,
:parent => Puppet::Provider::ParsedFile, parent: Puppet::Provider::ParsedFile,
:default_target => file, default_target: file,
:filetype => :flat filetype: :flat) do
) do
desc "File splitdebug mask provider for entropy packages" desc 'File splitdebug mask provider for entropy packages'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
text_line :blank, text_line :blank,
:match => /^\s*$/ match: %r{^\s*$}
text_line :comment, text_line :comment,
:match => /^\s*#/ match: %r{^\s*#}
text_line :unmanaged, text_line :unmanaged,
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s*$} match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9\._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s*$}
record_line :parsed, record_line :parsed,
:fields => %w{operator package version slot use tag repo name}, fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s+#+ Puppet Name: (.*)\s*$}, match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s+#+ Puppet Name: (.*)\s*$},
:to_line => proc { |record| to_line: proc { |record|
line = "" line = ''
line += record[:operator] if record[:operator] line += record[:operator] if record[:operator]
line += record[:package] if record[:package] line += record[:package] if record[:package]
line += "-" + record[:version] if record[:version] line += '-' + record[:version] if record[:version]
line += ":" + record[:slot] if record[:slot] line += ':' + record[:slot] if record[:slot]
line += "[" + record[:use] + "]" if record[:use] line += '[' + record[:use] + ']' if record[:use]
line += "#" + record[:tag] if record[:tag] line += '#' + record[:tag] if record[:tag]
line += "::" + record[:repo] if record[:repo] line += '::' + record[:repo] if record[:repo]
line += " ## Puppet Name: " + record[:name] line += ' ## Puppet Name: ' + record[:name]
line
}
line
}
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,43 +1,40 @@
require 'puppet/provider/parsedfile' require 'puppet/provider/parsedfile'
unmasks = "/etc/entropy/packages/package.unmask" unmasks = '/etc/entropy/packages/package.unmask'
Puppet::Type.type(:entropy_unmask).provide(:parsed, Puppet::Type.type(:entropy_unmask).provide(:parsed,
:parent => Puppet::Provider::ParsedFile, parent: Puppet::Provider::ParsedFile,
:default_target => unmasks, default_target: unmasks,
:filetype => :flat filetype: :flat) do
) do
desc "File unmask provider for entropy packages" desc 'File unmask provider for entropy packages'
defaultfor :operatingsystem => :sabayon defaultfor operatingsystem: :sabayon
text_line :blank, text_line :blank,
:match => /^\s*$/ match: %r{^\s*$}
text_line :comment, text_line :comment,
:match => /^\s*#/ match: %r{^\s*#}
text_line :unmanaged, text_line :unmanaged,
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s*$} match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s*$}
record_line :parsed, record_line :parsed,
:fields => %w{operator package version slot use tag repo name}, fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
:match => %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s+#+ Puppet Name: (.*)\s*$}, match: %r{^([<>]?=)?((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?(?:#([a-zA-Z0-9._-]+))?(?:::([a-zA-Z0-9._-]+))?\s+#+ Puppet Name: (.*)\s*$},
:to_line => proc { |record| to_line: proc { |record|
line = "" line = ''
line += record[:operator] if record[:operator] line += record[:operator] if record[:operator]
line += record[:package] if record[:package] line += record[:package] if record[:package]
line += "-" + record[:version] if record[:version] line += '-' + record[:version] if record[:version]
line += ":" + record[:slot] if record[:slot] line += ':' + record[:slot] if record[:slot]
line += "[" + record[:use] + "]" if record[:use] line += '[' + record[:use] + ']' if record[:use]
line += "#" + record[:tag] if record[:tag] line += '#' + record[:tag] if record[:tag]
line += "::" + record[:repo] if record[:repo] line += '::' + record[:repo] if record[:repo]
line += " ## Puppet Name: " + record[:name] line += ' ## Puppet Name: ' + record[:name]
line
}
line
}
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,7 +1,7 @@
require 'puppet/provider/package' require 'puppet/provider/package'
require 'fileutils' require 'fileutils'
Puppet::Type.type(:package).provide(:entropy, :parent => Puppet::Provider::Package) do Puppet::Type.type(:package).provide(:entropy, parent: Puppet::Provider::Package) do
desc "Provides packaging support for Sabayon's entropy system." desc "Provides packaging support for Sabayon's entropy system."
has_feature :versionable has_feature :versionable
@@ -9,60 +9,57 @@ Puppet::Type.type(:package).provide(:entropy, :parent => Puppet::Provider::Packa
has_feature :uninstallable has_feature :uninstallable
has_feature :upgradeable has_feature :upgradeable
has_command(:equo, "equo") do has_command(:equo, 'equo') do
locale = Facter.value(:locale) locale = Facter.value(:locale)
environment({ environment(LANG: locale,
:LANG => locale, LC_ALL: locale,
:LC_ALL => locale, LANGUAHE: locale)
:LANGUAHE => locale,
})
end end
# Require the locale fact exist # Require the locale fact exist
confine :false => Facter.value(:locale).nil? confine false: Facter.value(:locale).nil?
confine :osfamily => :Gentoo confine osfamily: :Gentoo
defaultfor :operatingsystem => :Sabayon defaultfor operatingsystem: :Sabayon
def self.instances def self.instances
result_format = /^(\S+)\/(\S+)-([\.\d]+(?:_?(?:a(?:lpha)?|b(?:eta)?|pre|pre_pre|rc|p)\d*)?(?:-r\d+)?)(?:#(\S+))?$/ result_format = /^(\S+)\/(\S+)-([\.\d]+(?:_?(?:a(?:lpha)?|b(?:eta)?|pre|pre_pre|rc|p)\d*)?(?:-r\d+)?)(?:#(\S+))?$/
result_fields = [:category, :name, :ensure] result_fields = [:category, :name, :ensure]
begin begin
search_output = equo("query", "list", "installed", "--quiet", "--verbose").chomp search_output = equo('query', 'list', 'installed', '--quiet', '--verbose').chomp
packages = [] packages = []
search_output.each_line do |search_result| search_output.each_line do |search_result|
match = result_format.match(search_result) match = result_format.match(search_result)
if match next unless match
package = {} package = {}
result_fields.zip(match.captures) do |field, value| result_fields.zip(match.captures) do |field, value|
package[field] = value unless !value or value.empty? package[field] = value unless !value || value.empty?
end
package[:provider] = :entropy
packages << new(package)
end end
package[:provider] = :entropy
packages << new(package)
end end
return packages return packages
rescue Puppet::ExecutionFailure => detail rescue Puppet::ExecutionFailure => detail
raise Puppet::Error.new(detail.message) raise Puppet::Error, detail.message
end end
end end
def install def install
should = @resource.should(:ensure) should = @resource.should(:ensure)
name = package_name name = package_name
unless should == :present or should == :latest unless should == :present || should == :latest
# We must install a specific version # We must install a specific version
name = "=#{name}-#{should}" name = "=#{name}-#{should}"
end end
begin begin
equo "install", name equo 'install', name
rescue Puppet::ExecutionFailure => detail rescue Puppet::ExecutionFailure => detail
raise Puppet::Error.new(detail.message) raise Puppet::Error, detail.message
end end
end end
@@ -76,15 +73,13 @@ Puppet::Type.type(:package).provide(:entropy, :parent => Puppet::Provider::Packa
end end
def uninstall def uninstall
begin equo 'remove', package_name
equo "remove", package_name rescue Puppet::ExecutionFailure => detail
rescue Puppet::ExecutionFailure => detail raise Puppet::Error, detail.message
raise Puppet::Error.new(detail.message)
end
end end
def update def update
self.install install
end end
def query def query
@@ -93,16 +88,15 @@ Puppet::Type.type(:package).provide(:entropy, :parent => Puppet::Provider::Packa
begin begin
# Look for an installed package from a known repository # Look for an installed package from a known repository
search_output = equo("match", "--quiet", "--verbose", package_name).chomp search_output = equo('match', '--quiet', '--verbose', package_name).chomp
search_match = search_output.match(result_format) search_match = search_output.match(result_format)
if search_match if search_match
package = {} package = {}
result_fields.zip(search_match.captures).each do |field, value| result_fields.zip(search_match.captures).each do |field, value|
package[field] = value unless !value or value.empty? package[field] = value unless !value || value.empty?
end end
begin begin
installed_output = equo('match', '--quiet', '--verbose', '--installed', package_name).chomp installed_output = equo('match', '--quiet', '--verbose', '--installed', package_name).chomp
installed_match = installed_output.match(result_format) installed_match = installed_output.match(result_format)
@@ -122,38 +116,34 @@ Puppet::Type.type(:package).provide(:entropy, :parent => Puppet::Provider::Packa
else else
# List all installed packages and try and find if it's installed from outside a repository # List all installed packages and try and find if it's installed from outside a repository
# If so, assume the installed version is the latest available # If so, assume the installed version is the latest available
all_installed = equo("query", "list", "installed", "--quiet", "--verbose").chomp all_installed = equo('query', 'list', 'installed', '--quiet', '--verbose').chomp
all_installed.split("\n").each do |installed_package| all_installed.split("\n").each do |installed_package|
search_match = installed_package.match(result_format) search_match = installed_package.match(result_format)
if search_match next unless search_match
search_captures = search_match.captures search_captures = search_match.captures
if (search_captures[0] == @resource[:category] and search_captures[1] == @resource[:name]) or "#{search_captures[0]}/#{search_captures[1]}" == package_name next unless (search_captures[0] == (@resource[:category]) && search_captures[1] == (@resource[:name])) || package_name == "#{search_captures[0]}/#{search_captures[1]}"
package = { package = {
:ensure => search_captures[2] ensure: search_captures[2],
} }
result_fields.zip(search_captures).each do |field, value| result_fields.zip(search_captures).each do |field, value|
package[field] = value unless !value or value.empty? package[field] = value unless !value || value.empty?
end
return package
end
end end
return package
end end
raise Puppet::Error.new("No package found with the specified name [#{package_name}]") raise Puppet::Error, "No package found with the specified name [#{package_name}]"
end end
rescue Puppet::ExecutionFailure => detail rescue Puppet::ExecutionFailure => detail
raise Puppet::Error.new(detail.message) raise Puppet::Error, detail.message
end end
end end
def latest def latest
self.query[:version_available] query[:version_available]
end end
end end

View File

@@ -1,8 +1,7 @@
# Manage systemd services using /bin/systemctl # Manage systemd services using /bin/systemctl
Puppet::Type.type(:service).provide :sabayon, :parent => :systemd do Puppet::Type.type(:service).provide :sabayon, parent: :systemd do
desc "Manages `systemd` services using `systemctl`." desc 'Manages `systemd` services using `systemctl`.'
defaultfor :operatingsystem => :sabayon
defaultfor operatingsystem: :sabayon
end end

View File

@@ -1,18 +1,16 @@
Puppet::Type.newtype(:enman_repo) do Puppet::Type.newtype(:enman_repo) do
@desc = "Manages Sabayon Community Repositories" @desc = 'Manages Sabayon Community Repositories'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Name of the Enman Repository" desc 'Name of the Enman Repository'
isnamevar isnamevar
end end
autorequire(:package) do autorequire(:package) do
['enman'] ['enman']
end end
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,23 +1,23 @@
Puppet::Type.newtype(:entropy_keywords) do Puppet::Type.newtype(:entropy_keywords) do
@desc = "Override keywords for Entropy packages" @desc = 'Override keywords for Entropy packages'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Unique name for this keyword entry" desc 'Unique name for this keyword entry'
end end
newproperty(:keyword) do newproperty(:keyword) do
desc "Keyword to be applied to matching packages" desc 'Keyword to be applied to matching packages'
defaultto { defaultto do
os = Facter.value(:os) os = Facter.value(:os)
if os.key?('architecture') if os.key?('architecture')
os['architecture'] os['architecture']
else else
'**' '**'
end end
} end
end end
newproperty(:operator) do newproperty(:operator) do
@@ -25,35 +25,35 @@ Puppet::Type.newtype(:entropy_keywords) do
end end
newproperty(:package) do newproperty(:package) do
desc "Name of the package being keyworded" desc 'Name of the package being keyworded'
newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$}) newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$})
end end
newproperty(:version) do newproperty(:version) do
desc "Version of the package" desc 'Version of the package'
newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$}) newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$})
end end
newproperty(:repo) do newproperty(:repo) do
desc "Repo for the package" desc 'Repo for the package'
end end
newproperty(:target) do newproperty(:target) do
desc "Location of the package.keywords file being managed" desc 'Location of the package.keywords file being managed'
defaultto { defaultto do
if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile) if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
@resource.class.defaultprovider.default_target @resource.class.defaultprovider.default_target
else else
nil nil
end end
} end
end end
validate do validate do
raise(ArgumentError, "Package is required when a version is specified") if self[:package].nil? && !self[:version].nil? raise(ArgumentError, 'Package is required when a version is specified') if self[:package].nil? && !self[:version].nil?
raise(ArgumentError, "Version is required when an operator is specified") if self[:version].nil? && !self[:operator].nil? raise(ArgumentError, 'Version is required when an operator is specified') if self[:version].nil? && !self[:operator].nil?
end end
autobefore(:package) do autobefore(:package) do
@@ -62,4 +62,3 @@ Puppet::Type.newtype(:entropy_keywords) do
end end
# vim: set ts=2 sw=2 expandtab: # vim: set ts=2 sw=2 expandtab:

View File

@@ -1,10 +1,10 @@
Puppet::Type.newtype(:entropy_mask) do Puppet::Type.newtype(:entropy_mask) do
@desc = "Mask packages in Entropy" @desc = 'Mask packages in Entropy'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Unique name for this mask" desc 'Unique name for this mask'
end end
newproperty(:operator) do newproperty(:operator) do
@@ -12,47 +12,47 @@ Puppet::Type.newtype(:entropy_mask) do
end end
newproperty(:package) do newproperty(:package) do
desc "Name of the package being masked" desc 'Name of the package being masked'
newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$}) newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$})
end end
newproperty(:version) do newproperty(:version) do
desc "Version of the package" desc 'Version of the package'
newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$}) newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$})
end end
newproperty(:slot) do newproperty(:slot) do
desc "Slot the package is in" desc 'Slot the package is in'
end end
newproperty(:use) do newproperty(:use) do
desc "Useflags for the package" desc 'Useflags for the package'
end end
newproperty(:tag) do newproperty(:tag) do
desc "Tag for the package" desc 'Tag for the package'
end end
newproperty(:repo) do newproperty(:repo) do
desc "Repo for the package" desc 'Repo for the package'
end end
newproperty(:target) do newproperty(:target) do
desc "Location of the package.mask file being managed" desc 'Location of the package.mask file being managed'
defaultto { defaultto do
if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile) if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
@resource.class.defaultprovider.default_target @resource.class.defaultprovider.default_target
else else
nil nil
end end
} end
end end
validate do validate do
raise(ArgumentError, "Package is required when a version is specified") if self[:package].nil? && !self[:version].nil? raise(ArgumentError, 'Package is required when a version is specified') if self[:package].nil? && !self[:version].nil?
raise(ArgumentError, "Version is required when an operator is specified") if self[:version].nil? && !self[:operator].nil? raise(ArgumentError, 'Version is required when an operator is specified') if self[:version].nil? && !self[:operator].nil?
end end
autobefore(:package) do autobefore(:package) do
@@ -61,4 +61,3 @@ Puppet::Type.newtype(:entropy_mask) do
end end
# vim: set ts=2 sw=2 expandtab: # vim: set ts=2 sw=2 expandtab:

View File

@@ -1,22 +1,20 @@
require 'puppet/property/boolean' require 'puppet/property/boolean'
Puppet::Type.newtype(:entropy_repo) do Puppet::Type.newtype(:entropy_repo) do
@desc = "Manages Entropy Repositories" @desc = 'Manages Entropy Repositories'
newparam(:name) do newparam(:name) do
desc "Name of the Entropy Repository" desc 'Name of the Entropy Repository'
end end
newproperty(:repo_type, :readonly => true) do newproperty(:repo_type, readonly: true) do
desc "What type of repository this is (enman or entropy)" desc 'What type of repository this is (enman or entropy)'
end end
newproperty(:enabled) do newproperty(:enabled) do
desc "Whether the repository is enabled or not" desc 'Whether the repository is enabled or not'
newvalues('true', 'false') newvalues('true', 'false')
end end
end end
# vim: set ts=2 shiftwidth=2 expandtab : # vim: set ts=2 shiftwidth=2 expandtab :

View File

@@ -1,10 +1,10 @@
Puppet::Type.newtype(:entropy_splitdebug) do Puppet::Type.newtype(:entropy_splitdebug) do
@desc = "Manages splitdebug for packages in Entropy" @desc = 'Manages splitdebug for packages in Entropy'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Unique name for this splitdebug specification" desc 'Unique name for this splitdebug specification'
end end
newproperty(:operator) do newproperty(:operator) do
@@ -12,47 +12,47 @@ Puppet::Type.newtype(:entropy_splitdebug) do
end end
newproperty(:package) do newproperty(:package) do
desc "Name of the package with splitdebug" desc 'Name of the package with splitdebug'
newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$}) newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$})
end end
newproperty(:version) do newproperty(:version) do
desc "Version of the package" desc 'Version of the package'
newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$}) newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$})
end end
newproperty(:slot) do newproperty(:slot) do
desc "Slot the package is in" desc 'Slot the package is in'
end end
newproperty(:use) do newproperty(:use) do
desc "Useflags for the package" desc 'Useflags for the package'
end end
newproperty(:tag) do newproperty(:tag) do
desc "Tag for the package" desc 'Tag for the package'
end end
newproperty(:repo) do newproperty(:repo) do
desc "Repo for the package" desc 'Repo for the package'
end end
newproperty(:target) do newproperty(:target) do
desc "Location of the package.splitdebug file being managed" desc 'Location of the package.splitdebug file being managed'
defaultto { defaultto do
if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile) if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
@resource.class.defaultprovider.default_target @resource.class.defaultprovider.default_target
else else
nil nil
end end
} end
end end
validate do validate do
raise(ArgumentError, "Package is required when a version is specified") if self[:package].nil? && !self[:version].nil? raise(ArgumentError, 'Package is required when a version is specified') if self[:package].nil? && !self[:version].nil?
raise(ArgumentError, "Version is required when an operator is specified") if self[:version].nil? && !self[:operator].nil? raise(ArgumentError, 'Version is required when an operator is specified') if self[:version].nil? && !self[:operator].nil?
end end
autobefore(:package) do autobefore(:package) do
@@ -61,4 +61,3 @@ Puppet::Type.newtype(:entropy_splitdebug) do
end end
# vim: set ts=2 sw=2 expandtab: # vim: set ts=2 sw=2 expandtab:

View File

@@ -1,10 +1,10 @@
Puppet::Type.newtype(:entropy_splitdebug_mask) do Puppet::Type.newtype(:entropy_splitdebug_mask) do
@desc = "Manages splitdebug masks for packages in Entropy" @desc = 'Manages splitdebug masks for packages in Entropy'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Unique name for this splitdebug mask specification" desc 'Unique name for this splitdebug mask specification'
end end
newproperty(:operator) do newproperty(:operator) do
@@ -12,47 +12,47 @@ Puppet::Type.newtype(:entropy_splitdebug_mask) do
end end
newproperty(:package) do newproperty(:package) do
desc "Name of the package with splitdebug mask" desc 'Name of the package with splitdebug mask'
newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$}) newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$})
end end
newproperty(:version) do newproperty(:version) do
desc "Version of the package" desc 'Version of the package'
newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$}) newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$})
end end
newproperty(:slot) do newproperty(:slot) do
desc "Slot the package is in" desc 'Slot the package is in'
end end
newproperty(:use) do newproperty(:use) do
desc "Useflags for the package" desc 'Useflags for the package'
end end
newproperty(:tag) do newproperty(:tag) do
desc "Tag for the package" desc 'Tag for the package'
end end
newproperty(:repo) do newproperty(:repo) do
desc "Repo for the package" desc 'Repo for the package'
end end
newproperty(:target) do newproperty(:target) do
desc "Location of the package.splitdebug.mask file being managed" desc 'Location of the package.splitdebug.mask file being managed'
defaultto { defaultto do
if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile) if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
@resource.class.defaultprovider.default_target @resource.class.defaultprovider.default_target
else else
nil nil
end end
} end
end end
validate do validate do
raise(ArgumentError, "Package is required when a version is specified") if self[:package].nil? && !self[:version].nil? raise(ArgumentError, 'Package is required when a version is specified') if self[:package].nil? && !self[:version].nil?
raise(ArgumentError, "Version is required when an operator is specified") if self[:version].nil? && !self[:operator].nil? raise(ArgumentError, 'Version is required when an operator is specified') if self[:version].nil? && !self[:operator].nil?
end end
autobefore(:package) do autobefore(:package) do
@@ -61,4 +61,3 @@ Puppet::Type.newtype(:entropy_splitdebug_mask) do
end end
# vim: set ts=2 sw=2 expandtab: # vim: set ts=2 sw=2 expandtab:

View File

@@ -1,10 +1,10 @@
Puppet::Type.newtype(:entropy_unmask) do Puppet::Type.newtype(:entropy_unmask) do
@desc = "Unmask packages in Entropy" @desc = 'Unmask packages in Entropy'
ensurable ensurable
newparam(:name) do newparam(:name) do
desc "Unique name for this unmask" desc 'Unique name for this unmask'
end end
newproperty(:operator) do newproperty(:operator) do
@@ -12,47 +12,47 @@ Puppet::Type.newtype(:entropy_unmask) do
end end
newproperty(:package) do newproperty(:package) do
desc "Name of the package being masked" desc 'Name of the package being masked'
newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$}) newvalues(%r{^(?:[A-Za-z0-9+_.-]+\/)?[a-zA-Z0-9+_-]+$})
end end
newproperty(:version) do newproperty(:version) do
desc "Version of the package" desc 'Version of the package'
newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$}) newvalues(%r{^(\d*(?:\.\d+[a-zA-Z]*)*)(?:_((?:alpha|beta|pre|rc)\d*))?(-r\d+)?$})
end end
newproperty(:slot) do newproperty(:slot) do
desc "Slot the package is in" desc 'Slot the package is in'
end end
newproperty(:use) do newproperty(:use) do
desc "Useflags for the package" desc 'Useflags for the package'
end end
newproperty(:tag) do newproperty(:tag) do
desc "Tag for the package" desc 'Tag for the package'
end end
newproperty(:repo) do newproperty(:repo) do
desc "Repo for the package" desc 'Repo for the package'
end end
newproperty(:target) do newproperty(:target) do
desc "Location of the package.unmask file being managed" desc 'Location of the package.unmask file being managed'
defaultto { defaultto do
if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile) if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
@resource.class.defaultprovider.default_target @resource.class.defaultprovider.default_target
else else
nil nil
end end
} end
end end
validate do validate do
raise(ArgumentError, "Package is required when a version is specified") if self[:package].nil? && !self[:version].nil? raise(ArgumentError, 'Package is required when a version is specified') if self[:package].nil? && !self[:version].nil?
raise(ArgumentError, "Version is required when an operator is specified") if self[:version].nil? && !self[:operator].nil? raise(ArgumentError, 'Version is required when an operator is specified') if self[:version].nil? && !self[:operator].nil?
end end
autobefore(:package) do autobefore(:package) do
@@ -61,4 +61,3 @@ Puppet::Type.newtype(:entropy_unmask) do
end end
# vim: set ts=2 sw=2 expandtab: # vim: set ts=2 sw=2 expandtab:

View File

@@ -1,7 +1,7 @@
require 'spec_helper' require 'spec_helper'
describe 'sabayon' do describe 'sabayon' do
context 'with default values for all parameters' do context 'with default values for all parameters' do
it { should contain_class('sabayon') } it { is_expected.to contain_class('sabayon') }
it { should contain_package('app-admin/enman') } it { is_expected.to contain_package('app-admin/enman') }
end end
end end

View File

@@ -1,7 +1,7 @@
require 'spec_helper' require 'spec_helper'
describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
before do before(:each) do
described_class.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam) described_class.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam)
described_class.stubs(:filetype=) described_class.stubs(:filetype=)
@default_target = described_class.default_target @default_target = described_class.default_target
@@ -14,7 +14,7 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
end end
describe 'when parsing' do describe 'when parsing' do
it 'should parse out the name' do it 'parses out the name' do
line = '** app-admin/foobar ## Puppet Name: foobar' line = '** app-admin/foobar ## Puppet Name: foobar'
expect(described_class.parse_line(line)[:name]).to eq('foobar') expect(described_class.parse_line(line)[:name]).to eq('foobar')
end end
@@ -23,15 +23,15 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
line = '** app-admin/foobar ## Puppet Name: foobar' line = '** app-admin/foobar ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the keyword' do it 'parses out the keyword' do
expect(parsed[:keyword]).to eq('**') expect(parsed[:keyword]).to eq('**')
end end
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :repo].each do |param| [:operator, :version, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -42,19 +42,19 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
line = '** app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar' line = '** app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the keyword' do it 'parses out the keyword' do
expect(parsed[:keyword]).to eq('**') expect(parsed[:keyword]).to eq('**')
end end
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the version' do it 'parses out the version' do
expect(parsed[:version]).to eq('1.2.3_alpha1-r1') expect(parsed[:version]).to eq('1.2.3_alpha1-r1')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :repo].each do |param| [:operator, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -65,23 +65,23 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
line = '** >=app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar' line = '** >=app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the keyword' do it 'parses out the keyword' do
expect(parsed[:keyword]).to eq('**') expect(parsed[:keyword]).to eq('**')
end end
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the version' do it 'parses out the version' do
expect(parsed[:version]).to eq('1.2.3_alpha1-r1') expect(parsed[:version]).to eq('1.2.3_alpha1-r1')
end end
it 'should parse out the operator' do it 'parses out the operator' do
expect(parsed[:operator]).to eq('>=') expect(parsed[:operator]).to eq('>=')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:repo].each do |param| [:repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -92,19 +92,19 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
line = '** app-admin/foobar repo=community ## Puppet Name: foobar' line = '** app-admin/foobar repo=community ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the keyword' do it 'parses out the keyword' do
expect(parsed[:keyword]).to eq('**') expect(parsed[:keyword]).to eq('**')
end end
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the repo' do it 'parses out the repo' do
expect(parsed[:repo]).to eq('community') expect(parsed[:repo]).to eq('community')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version].each do |param| [:operator, :version].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -115,15 +115,15 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
line = 'amd64 repo=community ## Puppet Name: foobar' line = 'amd64 repo=community ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the keyword' do it 'parses out the keyword' do
expect(parsed[:keyword]).to eq('amd64') expect(parsed[:keyword]).to eq('amd64')
end end
it 'should parse out the repo' do it 'parses out the repo' do
expect(parsed[:repo]).to eq('community') expect(parsed[:repo]).to eq('community')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:package, :operator, :version].each do |param| [:package, :operator, :version].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -135,21 +135,20 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
expected = { expected = {
:name => 'foobar', name: 'foobar',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:operator => '>=', operator: '>=',
:version => '1.2.3a_alpha1-r1', version: '1.2.3a_alpha1-r1',
:repo => 'community', repo: 'community',
} }
it 'should parse out all parameters' do it 'parses out all parameters' do
expected.each do |param, value| expected.each do |param, value|
expect(parsed[param]).to eq(value) expect(parsed[param]).to eq(value)
end end
end end
end end
end end
describe 'when flushing' do describe 'when flushing' do
@@ -163,71 +162,71 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
described_class.clear described_class.clear
end end
it 'should output a single package entry' do it 'outputs a single package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
} }
expect(described_class.to_line(resource)).to eq ('** app-admin/foobar ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** app-admin/foobar ## Puppet Name: test'
end end
it 'should output a versioned package entry' do it 'outputs a versioned package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:version => '1.2.3', version: '1.2.3',
} }
expect(described_class.to_line(resource)).to eq ('** app-admin/foobar-1.2.3 ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** app-admin/foobar-1.2.3 ## Puppet Name: test'
end end
it 'should output a ranged versioned package entry' do it 'outputs a ranged versioned package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:version => '1.2.3', version: '1.2.3',
:operator => '>=', operator: '>=',
} }
expect(described_class.to_line(resource)).to eq ('** >=app-admin/foobar-1.2.3 ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** >=app-admin/foobar-1.2.3 ## Puppet Name: test'
end end
it 'should output a repo-specific package entry' do it 'outputs a repo-specific package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('** app-admin/foobar repo=community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** app-admin/foobar repo=community ## Puppet Name: test'
end end
it 'should output a whole-repo entry' do it 'outputs a whole-repo entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('** repo=community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** repo=community ## Puppet Name: test'
end end
it 'should output all fields for a package entry' do it 'outputs all fields for a package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:keyword => '**', keyword: '**',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:operator => '>=', operator: '>=',
:version => '1.2.3', version: '1.2.3',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('** >=app-admin/foobar-1.2.3 repo=community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '** >=app-admin/foobar-1.2.3 repo=community ## Puppet Name: test'
end end
end end
end end

View File

@@ -8,33 +8,33 @@ describe Puppet::Type.type(:entropy_repo).provider(:file) do
let(:repos) do let(:repos) do
[ [
{:name => 'sabayonlinux.org', :type => 'entropy', :enabled => 'true'}, { name: 'sabayonlinux.org', type: 'entropy', enabled: 'true' },
{:name => 'sabayon-limbo', :type => 'entropy', :enabled => 'false'}, { name: 'sabayon-limbo', type: 'entropy', enabled: 'false' },
{:name => 'community', :type => 'enman', :enabled => 'true'}, { name: 'community', type: 'enman', enabled: 'true' },
] ]
end end
before do before(:each) do
Dir.stubs(:entries).with('/etc/entropy/repositories.conf.d/').returns([ Dir.stubs(:entries).with('/etc/entropy/repositories.conf.d/').returns([
'.', '..', 'README', '.', '..', 'README',
'entropy_sabayonlinux.org', 'entropy_sabayonlinux.org',
'_entropy_sabayon-limbo', '_entropy_sabayon-limbo',
'entropy_enman_community', 'entropy_enman_community',
'entropy_foobar.example', 'entropy_foobar.example'
]) ])
end end
it 'should identify the correct number of repos' do it 'identifies the correct number of repos' do
expect(instances.size).to eq(repos.size) expect(instances.size).to eq(repos.size)
end end
it 'should identify the correct repo name' do it 'identifies the correct repo name' do
repos.each_with_index do |repo, index| repos.each_with_index do |repo, index|
expect(instances[index].name).to eq(repo[:name]) expect(instances[index].name).to eq(repo[:name])
end end
end end
it 'should identify the correct enabled state' do it 'identifies the correct enabled state' do
repos.each_with_index do |repo, index| repos.each_with_index do |repo, index|
expect(instances[index].enabled).to eq(repo[:enabled]) expect(instances[index].enabled).to eq(repo[:enabled])
end end
@@ -42,19 +42,19 @@ describe Puppet::Type.type(:entropy_repo).provider(:file) do
end end
describe 'when enabling a repository' do describe 'when enabling a repository' do
it 'should enable a disabled repository' do it 'enables a disabled repository' do
File.stubs(:exists?).with('/etc/entropy/repositories.conf.d/entropy_sabayonlinux.org').returns(true).once File.stubs(:exists?).with('/etc/entropy/repositories.conf.d/entropy_sabayonlinux.org').returns(true).once
File.stubs(:rename).with('/etc/entropy/repositories.conf.d/entropy_sabayonlinux.org', '/etc/entropy/repositories.conf.d/_entropy_sabayonlinux.org').once File.stubs(:rename).with('/etc/entropy/repositories.conf.d/entropy_sabayonlinux.org', '/etc/entropy/repositories.conf.d/_entropy_sabayonlinux.org').once
instance = described_class.new(:name => 'sabayonlinux.org', :enabled => 'true', :type => 'entropy') instance = described_class.new(name: 'sabayonlinux.org', enabled: 'true', type: 'entropy')
instance.enabled = 'false' instance.enabled = 'false'
end end
end end
describe 'when disabling a repository' do describe 'when disabling a repository' do
it 'should disable an enabled repository' do it 'disables an enabled repository' do
File.stubs(:exists?).with('/etc/entropy/repositories.conf.d/_entropy_sabayon-limbo').returns(true).once File.stubs(:exists?).with('/etc/entropy/repositories.conf.d/_entropy_sabayon-limbo').returns(true).once
File.stubs(:rename).with('/etc/entropy/repositories.conf.d/_entropy_sabayon-limbo', '/etc/entropy/repositories.conf.d/entropy_sabayon-limbo').once File.stubs(:rename).with('/etc/entropy/repositories.conf.d/_entropy_sabayon-limbo', '/etc/entropy/repositories.conf.d/entropy_sabayon-limbo').once
instance = described_class.new(:name => 'sabayon-limbo', :enabled => 'false', :type => 'entropy') instance = described_class.new(name: 'sabayon-limbo', enabled: 'false', type: 'entropy')
instance.enabled = 'true' instance.enabled = 'true'
end end
end end

View File

@@ -5,22 +5,22 @@ require 'puppet/type/entropy_splitdebug'
require 'puppet/type/entropy_splitdebug_mask' require 'puppet/type/entropy_splitdebug_mask'
types = { types = {
:entropy_mask => Puppet::Type::Entropy_mask, entropy_mask: Puppet::Type::Entropy_mask,
:entropy_unmask => Puppet::Type::Entropy_unmask, entropy_unmask: Puppet::Type::Entropy_unmask,
:entropy_splitdebug => Puppet::Type::Entropy_splitdebug, entropy_splitdebug: Puppet::Type::Entropy_splitdebug,
:entropy_splitdebug_mask => Puppet::Type::Entropy_splitdebug_mask, entropy_splitdebug_mask: Puppet::Type::Entropy_splitdebug_mask,
} }
default_targets = { default_targets = {
:entropy_mask => '/etc/entropy/packages/package.mask', entropy_mask: '/etc/entropy/packages/package.mask',
:entropy_unmask => '/etc/entropy/packages/package.unmask', entropy_unmask: '/etc/entropy/packages/package.unmask',
:entropy_splitdebug => '/etc/entropy/packages/package.splitdebug', entropy_splitdebug: '/etc/entropy/packages/package.splitdebug',
:entropy_splitdebug_mask => '/etc/entropy/packages/package.splitdebug.mask', entropy_splitdebug_mask: '/etc/entropy/packages/package.splitdebug.mask',
} }
types.each do |type_name, type| types.each do |type_name, _type|
describe Puppet::Type.type(type_name).provider(:parsed) do describe Puppet::Type.type(type_name).provider(:parsed) do
before do before(:each) do
described_class.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam) described_class.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam)
described_class.stubs(:filetype=) described_class.stubs(:filetype=)
@default_target = described_class.default_target @default_target = described_class.default_target
@@ -33,7 +33,7 @@ types.each do |type_name, type|
end end
describe 'when parsing' do describe 'when parsing' do
it 'should parse out the name' do it 'parses out the name' do
line = 'app-admin/foobar ## Puppet Name: foobar' line = 'app-admin/foobar ## Puppet Name: foobar'
expect(described_class.parse_line(line)[:name]).to eq('foobar') expect(described_class.parse_line(line)[:name]).to eq('foobar')
end end
@@ -42,11 +42,11 @@ types.each do |type_name, type|
line = 'app-admin/foobar ## Puppet Name: foobar' line = 'app-admin/foobar ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :slot, :use, :tag, :repo].each do |param| [:operator, :version, :slot, :use, :tag, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -57,15 +57,15 @@ types.each do |type_name, type|
line = 'app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar' line = 'app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the version' do it 'parses out the version' do
expect(parsed[:version]).to eq('1.2.3_alpha1-r1') expect(parsed[:version]).to eq('1.2.3_alpha1-r1')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :slot, :use, :tag, :repo].each do |param| [:operator, :slot, :use, :tag, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -76,19 +76,19 @@ types.each do |type_name, type|
line = '>=app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar' line = '>=app-admin/foobar-1.2.3_alpha1-r1 ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the version' do it 'parses out the version' do
expect(parsed[:version]).to eq('1.2.3_alpha1-r1') expect(parsed[:version]).to eq('1.2.3_alpha1-r1')
end end
it 'should parse out the operator' do it 'parses out the operator' do
expect(parsed[:operator]).to eq('>=') expect(parsed[:operator]).to eq('>=')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:slot, :use, :tag, :repo].each do |param| [:slot, :use, :tag, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -99,15 +99,15 @@ types.each do |type_name, type|
line = 'app-admin/foobar:1.1 ## Puppet Name: foobar' line = 'app-admin/foobar:1.1 ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the slot' do it 'parses out the slot' do
expect(parsed[:slot]).to eq('1.1') expect(parsed[:slot]).to eq('1.1')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :use, :tag, :repo].each do |param| [:operator, :version, :use, :tag, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -118,15 +118,15 @@ types.each do |type_name, type|
line = 'app-admin/foobar[-foo,bar] ## Puppet Name: foobar' line = 'app-admin/foobar[-foo,bar] ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the use' do it 'parses out the use' do
expect(parsed[:use]).to eq('-foo,bar') expect(parsed[:use]).to eq('-foo,bar')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :slot, :tag, :repo].each do |param| [:operator, :version, :slot, :tag, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -137,15 +137,15 @@ types.each do |type_name, type|
line = 'app-admin/foobar#server ## Puppet Name: foobar' line = 'app-admin/foobar#server ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the tag' do it 'parses out the tag' do
expect(parsed[:tag]).to eq('server') expect(parsed[:tag]).to eq('server')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :slot, :use, :repo].each do |param| [:operator, :version, :slot, :use, :repo].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -156,15 +156,15 @@ types.each do |type_name, type|
line = 'app-admin/foobar::community ## Puppet Name: foobar' line = 'app-admin/foobar::community ## Puppet Name: foobar'
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
it 'should parse out the package name' do it 'parses out the package name' do
expect(parsed[:package]).to eq('app-admin/foobar') expect(parsed[:package]).to eq('app-admin/foobar')
end end
it 'should parse out the repo' do it 'parses out the repo' do
expect(parsed[:repo]).to eq('community') expect(parsed[:repo]).to eq('community')
end end
it 'should have all other parameters undefined' do it 'has all other parameters undefined' do
[:operator, :version, :slot, :use, :tag].each do |param| [:operator, :version, :slot, :use, :tag].each do |param|
expect(parsed[param]).to be_nil expect(parsed[param]).to be_nil
end end
@@ -176,23 +176,22 @@ types.each do |type_name, type|
parsed = described_class.parse_line(line) parsed = described_class.parse_line(line)
expected = { expected = {
:name => 'foobar', name: 'foobar',
:operator => '>=', operator: '>=',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:version => '1.2.3a_alpha1-r1', version: '1.2.3a_alpha1-r1',
:slot => '1', slot: '1',
:use => '-foo', use: '-foo',
:tag => 'server', tag: 'server',
:repo => 'community', repo: 'community',
} }
it 'should parse out all parameters' do it 'parses out all parameters' do
expected.each do |param, value| expected.each do |param, value|
expect(parsed[param]).to eq(value) expect(parsed[param]).to eq(value)
end end
end end
end end
end end
describe 'when flushing' do describe 'when flushing' do
@@ -206,98 +205,98 @@ types.each do |type_name, type|
described_class.clear described_class.clear
end end
it 'should output a single package entry' do it 'outputs a single package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar ## Puppet Name: test'
end end
it 'should output a versioned package entry' do it 'outputs a versioned package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:version => '1.2.3', version: '1.2.3',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar-1.2.3 ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar-1.2.3 ## Puppet Name: test'
end end
it 'should output a ranged versioned package entry' do it 'outputs a ranged versioned package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:version => '1.2.3', version: '1.2.3',
:operator => '>=', operator: '>=',
} }
expect(described_class.to_line(resource)).to eq ('>=app-admin/foobar-1.2.3 ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '>=app-admin/foobar-1.2.3 ## Puppet Name: test'
end end
it 'should output a use-restricted package entry' do it 'outputs a use-restricted package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:use => '-foo,bar', use: '-foo,bar',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar[-foo,bar] ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar[-foo,bar] ## Puppet Name: test'
end end
it 'should output a slotted package entry' do it 'outputs a slotted package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:slot => '1.1', slot: '1.1',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar:1.1 ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar:1.1 ## Puppet Name: test'
end end
it 'should output a tagged package entry' do it 'outputs a tagged package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:tag => 'server', tag: 'server',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar#server ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar#server ## Puppet Name: test'
end end
it 'should output a repo-specific package entry' do it 'outputs a repo-specific package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('app-admin/foobar::community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq 'app-admin/foobar::community ## Puppet Name: test'
end end
it 'should output a whole-repo entry' do it 'outputs a whole-repo entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('::community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '::community ## Puppet Name: test'
end end
it 'should output all fields for a package entry' do it 'outputs all fields for a package entry' do
resource = { resource = {
:record_type => :parsed, record_type: :parsed,
:name => 'test', name: 'test',
:package => 'app-admin/foobar', package: 'app-admin/foobar',
:operator => '>=', operator: '>=',
:version => '1.2.3', version: '1.2.3',
:slot => '1.1', slot: '1.1',
:use => '-foo,bar', use: '-foo,bar',
:tag => 'server', tag: 'server',
:repo => 'community', repo: 'community',
} }
expect(described_class.to_line(resource)).to eq ('>=app-admin/foobar-1.2.3:1.1[-foo,bar]#server::community ## Puppet Name: test') expect(described_class.to_line(resource)).to eq '>=app-admin/foobar-1.2.3:1.1[-foo,bar]#server::community ## Puppet Name: test'
end end
end end
end end

View File

@@ -1,16 +1,16 @@
describe Puppet::Type.type(:enman_repo) do describe Puppet::Type.type(:enman_repo) do
before do before(:each) do
@provider = stub 'provider' @provider = stub 'provider'
@provider.stubs(:name).returns(:enman) @provider.stubs(:name).returns(:enman)
described_class.stubs(:defaultprovider).returns(@provider) described_class.stubs(:defaultprovider).returns(@provider)
end end
it "should be an instance of Puppet::Type::Enman_repo" do it 'is an instance of Puppet::Type::Enman_repo' do
expect(described_class.new(:name => "test")).to be_an_instance_of Puppet::Type::Enman_repo expect(described_class.new(name: 'test')).to be_an_instance_of Puppet::Type::Enman_repo
end end
describe "when validating attributes" do describe 'when validating attributes' do
params = [:name] params = [:name]
params.each do |param| params.each do |param|
it "should have the #{param} param" do it "should have the #{param} param" do
@@ -19,7 +19,7 @@ describe Puppet::Type.type(:enman_repo) do
end end
end end
it "should have name as the namevar" do it 'has name as the namevar' do
expect(described_class.key_attributes).to eq [:name] expect(described_class.key_attributes).to eq [:name]
end end
end end

View File

@@ -1,17 +1,17 @@
describe Puppet::Type.type(:entropy_keywords) do describe Puppet::Type.type(:entropy_keywords) do
before do before(:each) do
@provider = stub 'provider' @provider = stub 'provider'
@provider.stubs(:name).returns(:parsed) @provider.stubs(:name).returns(:parsed)
@provider.stubs(:ancestors).returns([Puppet::Provider::ParsedFile]) @provider.stubs(:ancestors).returns([Puppet::Provider::ParsedFile])
@provider.stubs(:default_target).returns("defaulttarget") @provider.stubs(:default_target).returns('defaulttarget')
described_class.stubs(:defaultprovider).returns(@provider) described_class.stubs(:defaultprovider).returns(@provider)
end end
it "should be an instance of Puppet::Type::Entropy_keywords" do it 'is an instance of Puppet::Type::Entropy_keywords' do
expect(described_class.new(:name => "test", :package => "app-admin/dummy")).to be_an_instance_of Puppet::Type::Entropy_keywords expect(described_class.new(name: 'test', package: 'app-admin/dummy')).to be_an_instance_of Puppet::Type::Entropy_keywords
end end
describe "when validating attributes" do describe 'when validating attributes' do
params = [:name] params = [:name]
properties = [:package, :operator, :version, :repo, :target] properties = [:package, :operator, :version, :repo, :target]
@@ -26,37 +26,36 @@ describe Puppet::Type.type(:entropy_keywords) do
expect(described_class.attrtype(property)).to eq :property expect(described_class.attrtype(property)).to eq :property
end end
end end
end end
it "should have name as the namevar" do it 'has name as the namevar' do
expect(described_class.key_attributes).to eq [:name] expect(described_class.key_attributes).to eq [:name]
end end
describe "when validating the target property" do describe 'when validating the target property' do
it "should default to the provider's default target" do it "defaults to the provider's default target" do
expect(described_class.new(:name => "test", :package => "app-admin/dummy").should(:target)).to eq "defaulttarget" expect(described_class.new(name: 'test', package: 'app-admin/dummy').should(:target)).to eq 'defaulttarget'
end end
end end
describe "when validating required properties" do describe 'when validating required properties' do
it "should raise an error when a version is passed with no package" do it 'raises an error when a version is passed with no package' do
expect { expect {
described_class.new(:name => "test", :repo => "test", :version => "1.2.3") described_class.new(name: 'test', repo: 'test', version: '1.2.3')
}.to raise_error(Puppet::Error, /Package is required/) }.to raise_error(Puppet::Error, %r{Package is required})
end end
it "should raise an error when an operator is passed with no version" do it 'raises an error when an operator is passed with no version' do
expect { expect {
described_class.new(:name => "test", :package => "app-admin/dummy", :operator => "<=") described_class.new(name: 'test', package: 'app-admin/dummy', operator: '<=')
}.to raise_error(Puppet::Error, /Version is required/) }.to raise_error(Puppet::Error, %r{Version is required})
end end
end end
describe "when the catalog includes a matching package" do describe 'when the catalog includes a matching package' do
it "should have an autobefore relationship" do it 'has an autobefore relationship' do
resource = described_class.new(:name => "test", :package => "app-admin/dummy") resource = described_class.new(name: 'test', package: 'app-admin/dummy')
package = Puppet::Type.type(:package).new(:title => 'app-admin/dummy') package = Puppet::Type.type(:package).new(title: 'app-admin/dummy')
catalog = Puppet::Resource::Catalog.new catalog = Puppet::Resource::Catalog.new
catalog.add_resource package catalog.add_resource package

View File

@@ -1,15 +1,15 @@
describe Puppet::Type.type(:entropy_repo) do describe Puppet::Type.type(:entropy_repo) do
before do before(:each) do
@provider = stub 'provider' @provider = stub 'provider'
@provider.stubs(:name).returns(:file) @provider.stubs(:name).returns(:file)
described_class.stubs(:defaultprovider).returns(@provider) described_class.stubs(:defaultprovider).returns(@provider)
end end
it "should be an instance of Puppet::Type::Entropy_repo" do it 'is an instance of Puppet::Type::Entropy_repo' do
expect(described_class.new(:name => "test")).to be_an_instance_of Puppet::Type::Entropy_repo expect(described_class.new(name: 'test')).to be_an_instance_of Puppet::Type::Entropy_repo
end end
describe "when validating attributes" do describe 'when validating attributes' do
params = [:name] params = [:name]
properties = [:repo_type, :enabled] properties = [:repo_type, :enabled]
@@ -26,7 +26,7 @@ describe Puppet::Type.type(:entropy_repo) do
end end
end end
it "should have name as the namevar" do it 'has name as the namevar' do
expect(described_class.key_attributes).to eq [:name] expect(described_class.key_attributes).to eq [:name]
end end
end end

View File

@@ -5,27 +5,27 @@ require 'puppet/type/entropy_splitdebug'
require 'puppet/type/entropy_splitdebug_mask' require 'puppet/type/entropy_splitdebug_mask'
types = { types = {
:entropy_mask => Puppet::Type::Entropy_mask, entropy_mask: Puppet::Type::Entropy_mask,
:entropy_unmask => Puppet::Type::Entropy_unmask, entropy_unmask: Puppet::Type::Entropy_unmask,
:entropy_splitdebug => Puppet::Type::Entropy_splitdebug, entropy_splitdebug: Puppet::Type::Entropy_splitdebug,
:entropy_splitdebug_mask => Puppet::Type::Entropy_splitdebug_mask, entropy_splitdebug_mask: Puppet::Type::Entropy_splitdebug_mask,
} }
types.each do |type_name, type| types.each do |type_name, type|
describe Puppet::Type.type(type_name) do describe Puppet::Type.type(type_name) do
before do before(:each) do
@provider = stub 'provider' @provider = stub 'provider'
@provider.stubs(:name).returns(:parsed) @provider.stubs(:name).returns(:parsed)
@provider.stubs(:ancestors).returns([Puppet::Provider::ParsedFile]) @provider.stubs(:ancestors).returns([Puppet::Provider::ParsedFile])
@provider.stubs(:default_target).returns("defaulttarget") @provider.stubs(:default_target).returns('defaulttarget')
described_class.stubs(:defaultprovider).returns(@provider) described_class.stubs(:defaultprovider).returns(@provider)
end end
it "should be an instance of #{type.class.name}" do it "should be an instance of #{type.class.name}" do
expect(described_class.new(:name => "test", :package => "app-admin/dummy")).to be_an_instance_of type expect(described_class.new(name: 'test', package: 'app-admin/dummy')).to be_an_instance_of type
end end
describe "when validating attributes" do describe 'when validating attributes' do
params = [:name] params = [:name]
properties = [:package, :operator, :version, :slot, :use, :tag, :repo, :target] properties = [:package, :operator, :version, :slot, :use, :tag, :repo, :target]
@@ -40,32 +40,31 @@ types.each do |type_name, type|
expect(described_class.attrtype(property)).to eq :property expect(described_class.attrtype(property)).to eq :property
end end
end end
end end
it "should have name as the namevar" do it 'has name as the namevar' do
expect(described_class.key_attributes).to eq [:name] expect(described_class.key_attributes).to eq [:name]
end end
describe "when validating the target property" do describe 'when validating the target property' do
it "should default to the provider's default target" do it "defaults to the provider's default target" do
expect(described_class.new(:name => "test", :package => "app-admin/dummy").should(:target)).to eq "defaulttarget" expect(described_class.new(name: 'test', package: 'app-admin/dummy').should(:target)).to eq 'defaulttarget'
end end
end end
describe "when validating required properties" do describe 'when validating required properties' do
packages = [ packages = [
'virtual/package', 'virtual/package',
'package', 'package',
'package-with-dash', 'package-with-dash',
'package_with_underscores', 'package_with_underscores',
'category-123/package2', 'category-123/package2',
'category.with.dots/package' 'category.with.dots/package',
] ]
packages.each do |package| packages.each do |package|
it "should accept valid package name #{package}" do it "should accept valid package name #{package}" do
expect { expect {
described_class.new(:name => 'test', :package => package) described_class.new(name: 'test', package: package)
}.not_to raise_error }.not_to raise_error
end end
end end
@@ -79,28 +78,28 @@ types.each do |type_name, type|
packages.each do |package| packages.each do |package|
it "should reject invalid package name #{package}" do it "should reject invalid package name #{package}" do
expect { expect {
described_class.new(:name => 'test', :package => package) described_class.new(name: 'test', package: package)
}.to raise_error(Puppet::Error) }.to raise_error(Puppet::Error)
end end
end end
it "should raise an error when a version is passed with no package" do it 'raises an error when a version is passed with no package' do
expect { expect {
described_class.new(:name => "test", :repo => "test", :version => "1.2.3") described_class.new(name: 'test', repo: 'test', version: '1.2.3')
}.to raise_error(Puppet::Error, /Package is required/) }.to raise_error(Puppet::Error, %r{Package is required})
end end
it "should raise an error when an operator is passed with no version" do it 'raises an error when an operator is passed with no version' do
expect { expect {
described_class.new(:name => "test", :package => "app-admin/dummy", :operator => "<=") described_class.new(name: 'test', package: 'app-admin/dummy', operator: '<=')
}.to raise_error(Puppet::Error, /Version is required/) }.to raise_error(Puppet::Error, %r{Version is required})
end end
end end
describe "when the catalog includes a matching package" do describe 'when the catalog includes a matching package' do
it "should have an autobefore relationship" do it 'has an autobefore relationship' do
resource = described_class.new(:name => "test", :package => "app-admin/dummy") resource = described_class.new(name: 'test', package: 'app-admin/dummy')
package = Puppet::Type.type(:package).new(:title => 'app-admin/dummy') package = Puppet::Type.type(:package).new(title: 'app-admin/dummy')
catalog = Puppet::Resource::Catalog.new catalog = Puppet::Resource::Catalog.new
catalog.add_resource package catalog.add_resource package