Compare commits
1 Commits
master
...
executable
| Author | SHA1 | Date | |
|---|---|---|---|
| c3d62763c1 |
3
.bundle/config
Normal file
3
.bundle/config
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
BUNDLE_PATH: vendor/bundle
|
||||||
|
BUNDLE_DISABLE_SHARED_GEMS: true
|
||||||
5
.gitattributes
vendored
5
.gitattributes
vendored
@@ -1,5 +0,0 @@
|
|||||||
*.rb eol=lf
|
|
||||||
*.erb eol=lf
|
|
||||||
*.pp eol=lf
|
|
||||||
*.sh eol=lf
|
|
||||||
*.epp eol=lf
|
|
||||||
29
.gitignore
vendored
29
.gitignore
vendored
@@ -1,27 +1,2 @@
|
|||||||
.git/
|
# blacksmith output directory
|
||||||
.*.sw[op]
|
pkg
|
||||||
.metadata
|
|
||||||
.yardoc
|
|
||||||
.yardwarns
|
|
||||||
*.iml
|
|
||||||
/.bundle/
|
|
||||||
/.idea/
|
|
||||||
/.vagrant/
|
|
||||||
/coverage/
|
|
||||||
/bin/
|
|
||||||
/doc/
|
|
||||||
/Gemfile.local
|
|
||||||
/Gemfile.lock
|
|
||||||
/junit/
|
|
||||||
/log/
|
|
||||||
/pkg/
|
|
||||||
/spec/fixtures/manifests/
|
|
||||||
/spec/fixtures/modules/
|
|
||||||
/tmp/
|
|
||||||
/vendor/
|
|
||||||
/convert_report.txt
|
|
||||||
/update_report.txt
|
|
||||||
.DS_Store
|
|
||||||
.project
|
|
||||||
.envrc
|
|
||||||
/inventory.yaml
|
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
stages:
|
|
||||||
- syntax
|
|
||||||
- unit
|
|
||||||
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- vendor/bundle
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- bundle -v
|
|
||||||
- rm Gemfile.lock || true
|
|
||||||
- gem update --system $RUBYGEMS_VERSION
|
|
||||||
- gem --version
|
|
||||||
- bundle -v
|
|
||||||
- bundle install --without system_tests --path vendor/bundle --jobs $(nproc)
|
|
||||||
|
|
||||||
syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop-Ruby 2.5.3-Puppet ~> 6:
|
|
||||||
stage: syntax
|
|
||||||
image: ruby:2.5.3
|
|
||||||
script:
|
|
||||||
- bundle exec rake syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop
|
|
||||||
variables:
|
|
||||||
PUPPET_GEM_VERSION: '~> 6'
|
|
||||||
|
|
||||||
parallel_spec-Ruby 2.5.3-Puppet ~> 6:
|
|
||||||
stage: unit
|
|
||||||
image: ruby:2.5.3
|
|
||||||
script:
|
|
||||||
- bundle exec rake parallel_spec
|
|
||||||
variables:
|
|
||||||
PUPPET_GEM_VERSION: '~> 6'
|
|
||||||
|
|
||||||
parallel_spec-Ruby 2.4.5-Puppet ~> 5:
|
|
||||||
stage: unit
|
|
||||||
image: ruby:2.4.5
|
|
||||||
script:
|
|
||||||
- bundle exec rake parallel_spec
|
|
||||||
variables:
|
|
||||||
PUPPET_GEM_VERSION: '~> 5'
|
|
||||||
|
|
||||||
43
.pdkignore
43
.pdkignore
@@ -1,43 +0,0 @@
|
|||||||
.git/
|
|
||||||
.*.sw[op]
|
|
||||||
.metadata
|
|
||||||
.yardoc
|
|
||||||
.yardwarns
|
|
||||||
*.iml
|
|
||||||
/.bundle/
|
|
||||||
/.idea/
|
|
||||||
/.vagrant/
|
|
||||||
/coverage/
|
|
||||||
/bin/
|
|
||||||
/doc/
|
|
||||||
/Gemfile.local
|
|
||||||
/Gemfile.lock
|
|
||||||
/junit/
|
|
||||||
/log/
|
|
||||||
/pkg/
|
|
||||||
/spec/fixtures/manifests/
|
|
||||||
/spec/fixtures/modules/
|
|
||||||
/tmp/
|
|
||||||
/vendor/
|
|
||||||
/convert_report.txt
|
|
||||||
/update_report.txt
|
|
||||||
.DS_Store
|
|
||||||
.project
|
|
||||||
.envrc
|
|
||||||
/inventory.yaml
|
|
||||||
/appveyor.yml
|
|
||||||
/.fixtures.yml
|
|
||||||
/Gemfile
|
|
||||||
/.gitattributes
|
|
||||||
/.gitignore
|
|
||||||
/.gitlab-ci.yml
|
|
||||||
/.pdkignore
|
|
||||||
/Rakefile
|
|
||||||
/rakelib/
|
|
||||||
/.rspec
|
|
||||||
/.rubocop.yml
|
|
||||||
/.travis.yml
|
|
||||||
/.yardopts
|
|
||||||
/spec/
|
|
||||||
/.vscode/
|
|
||||||
/circle.yml
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
--relative
|
|
||||||
122
.rubocop.yml
122
.rubocop.yml
@@ -1,122 +0,0 @@
|
|||||||
---
|
|
||||||
require: rubocop-rspec
|
|
||||||
AllCops:
|
|
||||||
DisplayCopNames: true
|
|
||||||
TargetRubyVersion: '2.1'
|
|
||||||
Include:
|
|
||||||
- "./**/*.rb"
|
|
||||||
Exclude:
|
|
||||||
- bin/*
|
|
||||||
- ".vendor/**/*"
|
|
||||||
- "**/Gemfile"
|
|
||||||
- "**/Rakefile"
|
|
||||||
- pkg/**/*
|
|
||||||
- spec/fixtures/**/*
|
|
||||||
- vendor/**/*
|
|
||||||
- "**/Puppetfile"
|
|
||||||
- "**/Vagrantfile"
|
|
||||||
- "**/Guardfile"
|
|
||||||
Metrics/LineLength:
|
|
||||||
Description: People have wide screens, use them.
|
|
||||||
Max: 200
|
|
||||||
GetText/DecorateString:
|
|
||||||
Description: We don't want to decorate test output.
|
|
||||||
Exclude:
|
|
||||||
- spec/*
|
|
||||||
RSpec/BeforeAfterAll:
|
|
||||||
Description: Beware of using after(:all) as it may cause state to leak between tests.
|
|
||||||
A necessary evil in acceptance testing.
|
|
||||||
Exclude:
|
|
||||||
- spec/acceptance/**/*.rb
|
|
||||||
RSpec/HookArgument:
|
|
||||||
Description: Prefer explicit :each argument, matching existing module's style
|
|
||||||
EnforcedStyle: each
|
|
||||||
Style/BlockDelimiters:
|
|
||||||
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
|
|
||||||
be consistent then.
|
|
||||||
EnforcedStyle: braces_for_chaining
|
|
||||||
Style/ClassAndModuleChildren:
|
|
||||||
Description: Compact style reduces the required amount of indentation.
|
|
||||||
EnforcedStyle: compact
|
|
||||||
Style/EmptyElse:
|
|
||||||
Description: Enforce against empty else clauses, but allow `nil` for clarity.
|
|
||||||
EnforcedStyle: empty
|
|
||||||
Style/FormatString:
|
|
||||||
Description: Following the main puppet project's style, prefer the % format format.
|
|
||||||
EnforcedStyle: percent
|
|
||||||
Style/FormatStringToken:
|
|
||||||
Description: Following the main puppet project's style, prefer the simpler template
|
|
||||||
tokens over annotated ones.
|
|
||||||
EnforcedStyle: template
|
|
||||||
Style/Lambda:
|
|
||||||
Description: Prefer the keyword for easier discoverability.
|
|
||||||
EnforcedStyle: literal
|
|
||||||
Style/RegexpLiteral:
|
|
||||||
Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168
|
|
||||||
EnforcedStyle: percent_r
|
|
||||||
Style/TernaryParentheses:
|
|
||||||
Description: Checks for use of parentheses around ternary conditions. Enforce parentheses
|
|
||||||
on complex expressions for better readability, but seriously consider breaking
|
|
||||||
it up.
|
|
||||||
EnforcedStyle: require_parentheses_when_complex
|
|
||||||
Style/TrailingCommaInArguments:
|
|
||||||
Description: Prefer always trailing comma on multiline argument lists. This makes
|
|
||||||
diffs, and re-ordering nicer.
|
|
||||||
EnforcedStyleForMultiline: comma
|
|
||||||
Style/TrailingCommaInLiteral:
|
|
||||||
Description: Prefer always trailing comma on multiline literals. This makes diffs,
|
|
||||||
and re-ordering nicer.
|
|
||||||
EnforcedStyleForMultiline: comma
|
|
||||||
Style/SymbolArray:
|
|
||||||
Description: Using percent style obscures symbolic intent of array's contents.
|
|
||||||
EnforcedStyle: brackets
|
|
||||||
RSpec/MessageSpies:
|
|
||||||
EnforcedStyle: receive
|
|
||||||
Style/Documentation:
|
|
||||||
Exclude:
|
|
||||||
- lib/puppet/parser/functions/**/*
|
|
||||||
- spec/**/*
|
|
||||||
Style/WordArray:
|
|
||||||
EnforcedStyle: brackets
|
|
||||||
Style/CollectionMethods:
|
|
||||||
Enabled: true
|
|
||||||
Style/MethodCalledOnDoEndBlock:
|
|
||||||
Enabled: true
|
|
||||||
Style/StringMethods:
|
|
||||||
Enabled: true
|
|
||||||
Layout/EndOfLine:
|
|
||||||
Enabled: false
|
|
||||||
Layout/IndentHeredoc:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/AbcSize:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/BlockLength:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/ClassLength:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/CyclomaticComplexity:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/MethodLength:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/ModuleLength:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/ParameterLists:
|
|
||||||
Enabled: false
|
|
||||||
Metrics/PerceivedComplexity:
|
|
||||||
Enabled: false
|
|
||||||
RSpec/DescribeClass:
|
|
||||||
Enabled: false
|
|
||||||
RSpec/ExampleLength:
|
|
||||||
Enabled: false
|
|
||||||
RSpec/MessageExpectation:
|
|
||||||
Enabled: false
|
|
||||||
RSpec/MultipleExpectations:
|
|
||||||
Enabled: false
|
|
||||||
RSpec/NestedGroups:
|
|
||||||
Enabled: false
|
|
||||||
Style/AsciiComments:
|
|
||||||
Enabled: false
|
|
||||||
Style/IfUnlessModifier:
|
|
||||||
Enabled: false
|
|
||||||
Style/SymbolProc:
|
|
||||||
Enabled: false
|
|
||||||
54
.travis.yml
54
.travis.yml
@@ -1,54 +0,0 @@
|
|||||||
---
|
|
||||||
dist: trusty
|
|
||||||
language: ruby
|
|
||||||
cache: bundler
|
|
||||||
before_install:
|
|
||||||
- bundle -v
|
|
||||||
- rm -f Gemfile.lock
|
|
||||||
- gem update --system $RUBYGEMS_VERSION
|
|
||||||
- gem --version
|
|
||||||
- bundle -v
|
|
||||||
script:
|
|
||||||
- 'bundle exec rake $CHECK'
|
|
||||||
bundler_args: --without system_tests
|
|
||||||
rvm:
|
|
||||||
- 2.5.3
|
|
||||||
stages:
|
|
||||||
- static
|
|
||||||
- spec
|
|
||||||
- acceptance
|
|
||||||
-
|
|
||||||
if: tag =~ ^v\d
|
|
||||||
name: deploy
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
include:
|
|
||||||
-
|
|
||||||
env: CHECK="check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint"
|
|
||||||
stage: static
|
|
||||||
-
|
|
||||||
env: PUPPET_GEM_VERSION="~> 5.0" CHECK=parallel_spec
|
|
||||||
rvm: 2.4.5
|
|
||||||
stage: spec
|
|
||||||
-
|
|
||||||
env: PUPPET_GEM_VERSION="~> 6.0" CHECK=parallel_spec
|
|
||||||
rvm: 2.5.3
|
|
||||||
stage: spec
|
|
||||||
-
|
|
||||||
env: DEPLOY_TO_FORGE=yes
|
|
||||||
stage: deploy
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- /^v\d/
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
deploy:
|
|
||||||
provider: puppetforge
|
|
||||||
user: puppet
|
|
||||||
password:
|
|
||||||
secure: ""
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
all_branches: true
|
|
||||||
condition: "$DEPLOY_TO_FORGE = yes"
|
|
||||||
22
CHANGELOG.md
22
CHANGELOG.md
@@ -1,25 +1,3 @@
|
|||||||
## 2-10-12-08 Release 0.6.1
|
|
||||||
|
|
||||||
- Improve parsing of package versions with respect to PMS v7 spec
|
|
||||||
|
|
||||||
## 2019-05-10 Release 0.6.0
|
|
||||||
|
|
||||||
- Adds `cleanup` task
|
|
||||||
- Convert module to using PDK
|
|
||||||
|
|
||||||
|
|
||||||
## 2018-10-14 Release 0.5.0
|
|
||||||
|
|
||||||
- Update package install error handling for compatbility with
|
|
||||||
puppet 6
|
|
||||||
- Add support for `pre_pre` package versions
|
|
||||||
- Update build-time gems
|
|
||||||
|
|
||||||
## 2017-03-13 Release 0.4.0
|
|
||||||
|
|
||||||
- Replace operatingsystem.rb native fact with executable fact to workaround
|
|
||||||
[https://tickets.puppetlabs.com/browse/FACT-1528](FACT-1528) (ace13)
|
|
||||||
|
|
||||||
## 2016-10-16 Release 0.3.0
|
## 2016-10-16 Release 0.3.0
|
||||||
|
|
||||||
- Add `entropy_repo` type to enable/disable repositories
|
- Add `entropy_repo` type to enable/disable repositories
|
||||||
|
|||||||
82
Gemfile
82
Gemfile
@@ -1,71 +1,19 @@
|
|||||||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||||
|
|
||||||
def location_for(place_or_version, fake_version = nil)
|
puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3']
|
||||||
git_url_regex = %r{\A(?<url>(https?|git)[:@][^#]*)(#(?<branch>.*))?}
|
gem 'metadata-json-lint'
|
||||||
file_url_regex = %r{\Afile:\/\/(?<path>.*)}
|
gem 'puppet', puppetversion
|
||||||
|
gem 'puppetlabs_spec_helper', '>= 1.0.0'
|
||||||
|
gem 'puppet-lint', '>= 1.0.0'
|
||||||
|
gem 'facter', '>= 1.7.0'
|
||||||
|
gem 'rspec-puppet'
|
||||||
|
gem 'puppet-blacksmith'
|
||||||
|
|
||||||
if place_or_version && (git_url = place_or_version.match(git_url_regex))
|
# rspec must be v2 for ruby 1.8.7
|
||||||
[fake_version, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
|
if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9'
|
||||||
elsif place_or_version && (file_url = place_or_version.match(file_url_regex))
|
gem 'rspec', '~> 2.0'
|
||||||
['>= 0', { path: File.expand_path(file_url[:path]), require: false }]
|
gem 'rake', '~> 10.0'
|
||||||
else
|
else
|
||||||
[place_or_version, { require: false }]
|
# rubocop requires ruby >= 1.9
|
||||||
end
|
gem 'rubocop'
|
||||||
end
|
end
|
||||||
|
|
||||||
ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
|
|
||||||
minor_version = ruby_version_segments[0..1].join('.')
|
|
||||||
|
|
||||||
group :development do
|
|
||||||
gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
|
|
||||||
gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
|
|
||||||
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
|
|
||||||
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
|
|
||||||
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
|
||||||
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
|
|
||||||
gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby]
|
|
||||||
gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby]
|
|
||||||
gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
|
||||||
gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
|
||||||
end
|
|
||||||
|
|
||||||
puppet_version = ENV['PUPPET_GEM_VERSION']
|
|
||||||
facter_version = ENV['FACTER_GEM_VERSION']
|
|
||||||
hiera_version = ENV['HIERA_GEM_VERSION']
|
|
||||||
|
|
||||||
gems = {}
|
|
||||||
|
|
||||||
gems['puppet'] = location_for(puppet_version)
|
|
||||||
|
|
||||||
# If facter or hiera versions have been specified via the environment
|
|
||||||
# variables
|
|
||||||
|
|
||||||
gems['facter'] = location_for(facter_version) if facter_version
|
|
||||||
gems['hiera'] = location_for(hiera_version) if hiera_version
|
|
||||||
|
|
||||||
if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)}
|
|
||||||
# If we're using a Puppet gem on Windows which handles its own win32-xxx gem
|
|
||||||
# dependencies (>= 3.5.0), set the maximum versions (see PUP-6445).
|
|
||||||
gems['win32-dir'] = ['<= 0.4.9', require: false]
|
|
||||||
gems['win32-eventlog'] = ['<= 0.6.5', require: false]
|
|
||||||
gems['win32-process'] = ['<= 0.7.5', require: false]
|
|
||||||
gems['win32-security'] = ['<= 0.2.5', require: false]
|
|
||||||
gems['win32-service'] = ['0.8.8', require: false]
|
|
||||||
end
|
|
||||||
|
|
||||||
gems.each do |gem_name, gem_params|
|
|
||||||
gem gem_name, *gem_params
|
|
||||||
end
|
|
||||||
|
|
||||||
# Evaluate Gemfile.local and ~/.gemfile if they exist
|
|
||||||
extra_gemfiles = [
|
|
||||||
"#{__FILE__}.local",
|
|
||||||
File.join(Dir.home, '.gemfile'),
|
|
||||||
]
|
|
||||||
|
|
||||||
extra_gemfiles.each do |gemfile|
|
|
||||||
if File.file?(gemfile) && File.readable?(gemfile)
|
|
||||||
eval(File.read(gemfile), binding)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
# vim: syntax=ruby
|
|
||||||
|
|||||||
91
Gemfile.lock
Normal file
91
Gemfile.lock
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
CFPropertyList (2.2.8)
|
||||||
|
ast (2.3.0)
|
||||||
|
diff-lcs (1.2.5)
|
||||||
|
domain_name (0.5.20160826)
|
||||||
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
|
facter (2.4.6)
|
||||||
|
CFPropertyList (~> 2.2.6)
|
||||||
|
hiera (3.2.1)
|
||||||
|
http-cookie (1.0.3)
|
||||||
|
domain_name (~> 0.5)
|
||||||
|
json (2.0.2)
|
||||||
|
json_pure (1.8.3)
|
||||||
|
metaclass (0.0.4)
|
||||||
|
metadata-json-lint (0.0.11)
|
||||||
|
json
|
||||||
|
spdx-licenses (~> 1.0)
|
||||||
|
mime-types (2.99.3)
|
||||||
|
mocha (1.2.0)
|
||||||
|
metaclass (~> 0.0.1)
|
||||||
|
netrc (0.11.0)
|
||||||
|
parser (2.3.1.4)
|
||||||
|
ast (~> 2.2)
|
||||||
|
powerpack (0.1.1)
|
||||||
|
puppet (4.7.0)
|
||||||
|
CFPropertyList (~> 2.2.6)
|
||||||
|
facter (> 2.0, < 4)
|
||||||
|
hiera (>= 2.0, < 4)
|
||||||
|
json_pure (~> 1.8)
|
||||||
|
puppet-blacksmith (3.4.0)
|
||||||
|
puppet (>= 2.7.16)
|
||||||
|
rest-client (~> 1.8.0)
|
||||||
|
puppet-lint (2.0.2)
|
||||||
|
puppet-syntax (2.1.0)
|
||||||
|
rake
|
||||||
|
puppetlabs_spec_helper (1.2.2)
|
||||||
|
mocha (~> 1.0)
|
||||||
|
puppet-lint (~> 2.0)
|
||||||
|
puppet-syntax (~> 2.0)
|
||||||
|
rspec-puppet (~> 2.0)
|
||||||
|
rainbow (2.1.0)
|
||||||
|
rake (11.3.0)
|
||||||
|
rest-client (1.8.0)
|
||||||
|
http-cookie (>= 1.0.2, < 2.0)
|
||||||
|
mime-types (>= 1.16, < 3.0)
|
||||||
|
netrc (~> 0.7)
|
||||||
|
rspec (3.5.0)
|
||||||
|
rspec-core (~> 3.5.0)
|
||||||
|
rspec-expectations (~> 3.5.0)
|
||||||
|
rspec-mocks (~> 3.5.0)
|
||||||
|
rspec-core (3.5.4)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-expectations (3.5.0)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-mocks (3.5.0)
|
||||||
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
|
rspec-support (~> 3.5.0)
|
||||||
|
rspec-puppet (2.4.0)
|
||||||
|
rspec
|
||||||
|
rspec-support (3.5.0)
|
||||||
|
rubocop (0.43.0)
|
||||||
|
parser (>= 2.3.1.1, < 3.0)
|
||||||
|
powerpack (~> 0.1)
|
||||||
|
rainbow (>= 1.99.1, < 3.0)
|
||||||
|
ruby-progressbar (~> 1.7)
|
||||||
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||||
|
ruby-progressbar (1.8.1)
|
||||||
|
spdx-licenses (1.1.0)
|
||||||
|
unf (0.1.4)
|
||||||
|
unf_ext
|
||||||
|
unf_ext (0.0.7.2)
|
||||||
|
unicode-display_width (1.1.1)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
facter (>= 1.7.0)
|
||||||
|
metadata-json-lint
|
||||||
|
puppet (>= 3.3)
|
||||||
|
puppet-blacksmith
|
||||||
|
puppet-lint (>= 1.0.0)
|
||||||
|
puppetlabs_spec_helper (>= 1.0.0)
|
||||||
|
rspec-puppet
|
||||||
|
rubocop
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.12.5
|
||||||
14
README.md
14
README.md
@@ -314,16 +314,6 @@ using the correct locale.
|
|||||||
|
|
||||||
Overrides the detection of the operating system on Sabayon systems to `Sabayon`.
|
Overrides the detection of the operating system on Sabayon systems to `Sabayon`.
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
This module includes tasks for ad-hoc use with Puppet Bolt or Choria.
|
|
||||||
|
|
||||||
### `cleanup`
|
|
||||||
|
|
||||||
This task executes `equo cleanup` command on the target nodes, which frees up
|
|
||||||
disk space used by cached package downloads. It does not accept any parameters,
|
|
||||||
and does not support running noop mode.
|
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
This module is actively used by the developer against current Sabayon versions.
|
This module is actively used by the developer against current Sabayon versions.
|
||||||
@@ -335,7 +325,3 @@ best-efforts basis.
|
|||||||
|
|
||||||
Pull requests welcome!
|
Pull requests welcome!
|
||||||
|
|
||||||
## Contributors
|
|
||||||
|
|
||||||
* [https://github.com/ace13](ace13)
|
|
||||||
|
|
||||||
|
|||||||
91
Rakefile
91
Rakefile
@@ -1,76 +1,33 @@
|
|||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
require 'puppet-syntax/tasks/puppet-syntax'
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
|
require 'metadata-json-lint/rake_task'
|
||||||
require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any?
|
require 'puppet_blacksmith/rake_tasks'
|
||||||
require 'puppet-strings/tasks' if Bundler.rubygems.find_name('puppet-strings').any?
|
|
||||||
|
|
||||||
def changelog_user
|
if RUBY_VERSION >= '1.9'
|
||||||
return unless Rake.application.top_level_tasks.include? "changelog"
|
require 'rubocop/rake_task'
|
||||||
returnVal = nil || JSON.load(File.read('metadata.json'))['author']
|
RuboCop::RakeTask.new
|
||||||
raise "unable to find the changelog_user in .sync.yml, or the author in metadata.json" if returnVal.nil?
|
|
||||||
puts "GitHubChangelogGenerator user:#{returnVal}"
|
|
||||||
returnVal
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def changelog_project
|
PuppetLint.configuration.send('disable_80chars')
|
||||||
return unless Rake.application.top_level_tasks.include? "changelog"
|
PuppetLint.configuration.relative = true
|
||||||
returnVal = nil || JSON.load(File.read('metadata.json'))['name']
|
PuppetLint.configuration.ignore_paths = ['spec/**/*.pp', 'pkg/**/*.pp', 'vendor/**/*.pp']
|
||||||
raise "unable to find the changelog_project in .sync.yml or the name in metadata.json" if returnVal.nil?
|
|
||||||
puts "GitHubChangelogGenerator project:#{returnVal}"
|
|
||||||
returnVal
|
|
||||||
end
|
|
||||||
|
|
||||||
def changelog_future_release
|
desc 'Validate manifests, templates, and ruby files'
|
||||||
return unless Rake.application.top_level_tasks.include? "changelog"
|
task :validate do
|
||||||
returnVal = "v%s" % JSON.load(File.read('metadata.json'))['version']
|
Dir['manifests/**/*.pp'].each do |manifest|
|
||||||
raise "unable to find the future_release (version) in metadata.json" if returnVal.nil?
|
sh "puppet parser validate --noop #{manifest}"
|
||||||
puts "GitHubChangelogGenerator future_release:#{returnVal}"
|
|
||||||
returnVal
|
|
||||||
end
|
|
||||||
|
|
||||||
PuppetLint.configuration.send('disable_relative')
|
|
||||||
|
|
||||||
if Bundler.rubygems.find_name('github_changelog_generator').any?
|
|
||||||
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
||||||
raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil?
|
|
||||||
config.user = "#{changelog_user}"
|
|
||||||
config.project = "#{changelog_project}"
|
|
||||||
config.future_release = "#{changelog_future_release}"
|
|
||||||
config.exclude_labels = ['maintenance']
|
|
||||||
config.header = "# Change log\n\nAll notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org)."
|
|
||||||
config.add_pr_wo_labels = true
|
|
||||||
config.issues = false
|
|
||||||
config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM"
|
|
||||||
config.configure_sections = {
|
|
||||||
"Changed" => {
|
|
||||||
"prefix" => "### Changed",
|
|
||||||
"labels" => ["backwards-incompatible"],
|
|
||||||
},
|
|
||||||
"Added" => {
|
|
||||||
"prefix" => "### Added",
|
|
||||||
"labels" => ["feature", "enhancement"],
|
|
||||||
},
|
|
||||||
"Fixed" => {
|
|
||||||
"prefix" => "### Fixed",
|
|
||||||
"labels" => ["bugfix"],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
else
|
Dir['spec/**/*.rb', 'lib/**/*.rb'].each do |ruby_file|
|
||||||
desc 'Generate a Changelog from GitHub'
|
sh "ruby -c #{ruby_file}" unless ruby_file =~ %r{spec/fixtures}
|
||||||
task :changelog do
|
end
|
||||||
raise <<EOM
|
Dir['templates/**/*.erb'].each do |template|
|
||||||
The changelog tasks depends on unreleased features of the github_changelog_generator gem.
|
sh "erb -P -x -T '-' #{template} | ruby -c"
|
||||||
Please manually add it to your .sync.yml for now, and run `pdk update`:
|
|
||||||
---
|
|
||||||
Gemfile:
|
|
||||||
optional:
|
|
||||||
':development':
|
|
||||||
- gem: 'github_changelog_generator'
|
|
||||||
git: 'https://github.com/skywinder/github-changelog-generator'
|
|
||||||
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
|
|
||||||
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
|
|
||||||
EOM
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc 'Run metadata_lint, lint, validate, and spec tests.'
|
||||||
|
task :test do
|
||||||
|
[:metadata_lint, :lint, :validate, :spec].each do |test|
|
||||||
|
Rake::Task[test].invoke
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
55
appveyor.yml
55
appveyor.yml
@@ -1,55 +0,0 @@
|
|||||||
---
|
|
||||||
version: 1.1.x.{build}
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
skip_commits:
|
|
||||||
message: /^\(?doc\)?.*/
|
|
||||||
clone_depth: 10
|
|
||||||
init:
|
|
||||||
- SET
|
|
||||||
- 'mkdir C:\ProgramData\PuppetLabs\code && exit 0'
|
|
||||||
- 'mkdir C:\ProgramData\PuppetLabs\facter && exit 0'
|
|
||||||
- 'mkdir C:\ProgramData\PuppetLabs\hiera && exit 0'
|
|
||||||
- 'mkdir C:\ProgramData\PuppetLabs\puppet\var && exit 0'
|
|
||||||
environment:
|
|
||||||
matrix:
|
|
||||||
-
|
|
||||||
RUBY_VERSION: 24-x64
|
|
||||||
CHECK: syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop
|
|
||||||
-
|
|
||||||
PUPPET_GEM_VERSION: ~> 5.0
|
|
||||||
RUBY_VERSION: 24
|
|
||||||
CHECK: parallel_spec
|
|
||||||
-
|
|
||||||
PUPPET_GEM_VERSION: ~> 5.0
|
|
||||||
RUBY_VERSION: 24-x64
|
|
||||||
CHECK: parallel_spec
|
|
||||||
-
|
|
||||||
PUPPET_GEM_VERSION: ~> 6.0
|
|
||||||
RUBY_VERSION: 25
|
|
||||||
CHECK: parallel_spec
|
|
||||||
-
|
|
||||||
PUPPET_GEM_VERSION: ~> 6.0
|
|
||||||
RUBY_VERSION: 25-x64
|
|
||||||
CHECK: parallel_spec
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
install:
|
|
||||||
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
|
||||||
- bundle install --jobs 4 --retry 2 --without system_tests
|
|
||||||
- type Gemfile.lock
|
|
||||||
build: off
|
|
||||||
test_script:
|
|
||||||
- bundle exec puppet -V
|
|
||||||
- ruby -v
|
|
||||||
- gem -v
|
|
||||||
- bundle -v
|
|
||||||
- bundle exec rake %CHECK%
|
|
||||||
notifications:
|
|
||||||
- provider: Email
|
|
||||||
to:
|
|
||||||
- nobody@nowhere.com
|
|
||||||
on_build_success: false
|
|
||||||
on_build_failure: false
|
|
||||||
on_build_status_changed: false
|
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
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
|
||||||
@@ -17,4 +18,5 @@ Facter.add('entropy_repos') do
|
|||||||
|
|
||||||
repos
|
repos
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
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
|
||||||
|
|
||||||
|
|||||||
@@ -1,52 +1,54 @@
|
|||||||
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?
|
||||||
@property_hash[:ensure] == :present
|
@property_hash[:ensure] == :present
|
||||||
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.map do |available_repo|
|
all_available.collect 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 = instances
|
available_repos = self.instances()
|
||||||
|
|
||||||
resources.each do |name, _resource|
|
resources.each do |name, resource|
|
||||||
provider = available_repos.find { |r| r.name == name }
|
if provider = available_repos.find { |r| r.name == name }
|
||||||
if provider
|
|
||||||
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 :
|
||||||
|
|
||||||
|
|||||||
@@ -1,55 +1,41 @@
|
|||||||
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) do
|
:filetype => :flat
|
||||||
|
) 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: %r{^\s*$}
|
:match => /^\s*$/
|
||||||
|
|
||||||
text_line :comment,
|
text_line :comment,
|
||||||
match: %r{^\s*#}
|
:match => /^\s*#/
|
||||||
|
|
||||||
text_line :unmanaged,
|
text_line :unmanaged,
|
||||||
match: %r{
|
: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*$}
|
||||||
^(\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*$
|
|
||||||
}x
|
|
||||||
|
|
||||||
record_line :parsed,
|
record_line :parsed,
|
||||||
fields: ['keyword', 'operator', 'package', 'version', 'repo', 'name'],
|
:fields => %w{keyword operator package version repo name},
|
||||||
match: %r{
|
: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*$},
|
||||||
^(\S+)\s+([<>]?=)?
|
:to_line => proc { |record|
|
||||||
(?:
|
line = record[:keyword] + " "
|
||||||
((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?
|
line += record[:operator] if record[:operator]
|
||||||
(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?
|
line += record[:package] if record[:package]
|
||||||
)?
|
line += "-" + record[:version] if record[:version]
|
||||||
(?:\s*repo=([a-zA-Z0-9\._-]+))?
|
line += " " if record[:package] && record[:repo]
|
||||||
\s+\#+\s+Puppet\s+Name:\s+(.*)
|
line += "repo=" + record[:repo] if record[:repo]
|
||||||
\s*$
|
line += " ## Puppet Name: " + record[:name]
|
||||||
}x,
|
|
||||||
to_line: proc { |record|
|
line
|
||||||
line = record[:keyword] + ' '
|
}
|
||||||
line += record[:operator] if record[:operator]
|
|
||||||
line += record[:package] if record[:package]
|
|
||||||
line += '-' + record[:version] if record[:version]
|
|
||||||
line += ' ' if record[:package] && record[:repo]
|
|
||||||
line += 'repo=' + record[:repo] if record[:repo]
|
|
||||||
line += ' ## Puppet Name: ' + record[:name]
|
|
||||||
|
|
||||||
line
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 shiftwidth=2 expandtab :
|
# vim: set ts=2 shiftwidth=2 expandtab :
|
||||||
|
|
||||||
|
|||||||
@@ -1,57 +1,43 @@
|
|||||||
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) do
|
:filetype => :flat
|
||||||
|
) 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: %r{^\s*$}
|
:match => /^\s*$/
|
||||||
|
|
||||||
text_line :comment,
|
text_line :comment,
|
||||||
match: %r{^\s*#}
|
:match => /^\s*#/
|
||||||
|
|
||||||
text_line :unmanaged,
|
text_line :unmanaged,
|
||||||
match: %r{
|
: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*$}
|
||||||
^([<>]?=)?
|
|
||||||
((?:[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*$
|
|
||||||
}x
|
|
||||||
|
|
||||||
record_line :parsed,
|
record_line :parsed,
|
||||||
fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
|
:fields => %w{operator package version slot use tag repo name},
|
||||||
match: %r{
|
: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|
|
||||||
((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?
|
line = ""
|
||||||
(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?
|
line += record[:operator] if record[:operator]
|
||||||
(?::([a-zA-Z0-9._-]+))?
|
line += record[:package] if record[:package]
|
||||||
(?:\[([^\]]*)\])?
|
line += "-" + record[:version] if record[:version]
|
||||||
(?:\#([a-zA-Z0-9._-]+))?
|
line += ":" + record[:slot] if record[:slot]
|
||||||
(?:::([a-zA-Z0-9\._-]+))?
|
line += "[" + record[:use] + "]" if record[:use]
|
||||||
\s+\#+\s+Puppet\s+Name:\s+(.*)\s*$
|
line += "#" + record[:tag] if record[:tag]
|
||||||
}x,
|
line += "::" + record[:repo] if record[:repo]
|
||||||
to_line: proc { |record|
|
line += " ## Puppet Name: " + record[:name]
|
||||||
line = ''
|
|
||||||
line += record[:operator] if record[:operator]
|
line
|
||||||
line += record[:package] if record[:package]
|
}
|
||||||
line += '-' + record[:version] if record[:version]
|
|
||||||
line += ':' + record[:slot] if record[:slot]
|
|
||||||
line += '[' + record[:use] + ']' if record[:use]
|
|
||||||
line += '#' + record[:tag] if record[:tag]
|
|
||||||
line += '::' + record[:repo] if record[:repo]
|
|
||||||
line += ' ## Puppet Name: ' + record[:name]
|
|
||||||
|
|
||||||
line
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 shiftwidth=2 expandtab :
|
# vim: set ts=2 shiftwidth=2 expandtab :
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
@@ -17,55 +17,58 @@ Puppet::Type.type(:entropy_repo).provide(:file) do
|
|||||||
enabled_filename = "/etc/entropy/repositories.conf.d/entropy_#{type_prefix}#{@property_hash[:name]}"
|
enabled_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]}"
|
disabled_filename = "/etc/entropy/repositories.conf.d/_entropy_#{type_prefix}#{@property_hash[:name]}"
|
||||||
|
|
||||||
if ['true', :true].include?(value)
|
if value == 'true' || value == :true
|
||||||
if File.exist?(disabled_filename)
|
if File.exists?(disabled_filename)
|
||||||
File.rename(disabled_filename, enabled_filename)
|
File.rename(disabled_filename, enabled_filename)
|
||||||
end
|
end
|
||||||
elsif File.exist?(enabled_filename)
|
else
|
||||||
File.rename(enabled_filename, disabled_filename)
|
if File.exists?(enabled_filename)
|
||||||
|
File.rename(enabled_filename, disabled_filename)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@property_hash[:enabled] = value
|
@property_hash[:enabled] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.instances
|
def self.instances
|
||||||
repos = Dir.entries('/etc/entropy/repositories.conf.d/')
|
repos = Dir.entries('/etc/entropy/repositories.conf.d/')
|
||||||
|
|
||||||
repos.map { |r|
|
repos.collect do |r|
|
||||||
if ['.', '..'].include?(r)
|
if r == '.' || r == '..'
|
||||||
nil
|
nil
|
||||||
elsif r =~ %r{\.example$}
|
elsif r =~ /\.example$/
|
||||||
nil
|
nil
|
||||||
elsif r !~ %r{^_?entropy_}
|
elsif r !~ /^_?entropy_/
|
||||||
nil
|
nil
|
||||||
else
|
else
|
||||||
matches = %r{^(_)?entropy_(enman_)?(.*)$}.match(r)
|
matches = /^(_)?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
|
||||||
}.compact
|
end.compact
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.prefetch(resources)
|
def self.prefetch(resources)
|
||||||
repos = instances
|
repos = self.instances()
|
||||||
|
|
||||||
resources.each do |name, _resource|
|
resources.each do |name, resource|
|
||||||
provider = repos.find { |r| r.name == name }
|
if provider = repos.find { |r| r.name == name }
|
||||||
if provider
|
|
||||||
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 :
|
||||||
|
|
||||||
|
|||||||
@@ -1,59 +1,43 @@
|
|||||||
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) do
|
:filetype => :flat
|
||||||
|
) 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: %r{^\s*$}
|
:match => /^\s*$/
|
||||||
|
|
||||||
text_line :comment,
|
text_line :comment,
|
||||||
match: %r{^\s*#}
|
:match => /^\s*#/
|
||||||
|
|
||||||
text_line :unmanaged,
|
text_line :unmanaged,
|
||||||
match: %r{
|
: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*$}
|
||||||
^([<>]?=)?
|
|
||||||
((?:[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*$
|
|
||||||
}x
|
|
||||||
|
|
||||||
record_line :parsed,
|
record_line :parsed,
|
||||||
fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
|
:fields => %w{operator package version slot use tag repo name},
|
||||||
match: %r{
|
: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|
|
||||||
((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?
|
line = ""
|
||||||
(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?
|
line += record[:operator] if record[:operator]
|
||||||
(?::([a-zA-Z0-9\._-]+))?
|
line += record[:package] if record[:package]
|
||||||
(?:\[([^\]]*)\])?
|
line += "-" + record[:version] if record[:version]
|
||||||
(?:\#([a-zA-Z0-9\._-]+))?
|
line += ":" + record[:slot] if record[:slot]
|
||||||
(?:::([a-zA-Z0-9\._-]+))?
|
line += "[" + record[:use] + "]" if record[:use]
|
||||||
\s+\#+\s+Puppet\s+Name:\s+(.*)
|
line += "#" + record[:tag] if record[:tag]
|
||||||
\s*$
|
line += "::" + record[:repo] if record[:repo]
|
||||||
}x,
|
line += " ## Puppet Name: " + record[:name]
|
||||||
to_line: proc { |record|
|
|
||||||
line = ''
|
|
||||||
line += record[:operator] if record[:operator]
|
|
||||||
line += record[:package] if record[:package]
|
|
||||||
line += '-' + record[:version] if record[:version]
|
|
||||||
line += ':' + record[:slot] if record[:slot]
|
|
||||||
line += '[' + record[:use] + ']' if record[:use]
|
|
||||||
line += '#' + record[:tag] if record[:tag]
|
|
||||||
line += '::' + record[:repo] if record[:repo]
|
|
||||||
line += ' ## Puppet Name: ' + record[:name]
|
|
||||||
|
|
||||||
line
|
line
|
||||||
}
|
}
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 shiftwidth=2 expandtab :
|
# vim: set ts=2 shiftwidth=2 expandtab :
|
||||||
|
|
||||||
|
|||||||
@@ -1,58 +1,43 @@
|
|||||||
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) do
|
:filetype => :flat
|
||||||
|
) 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: %r{^\s*$}
|
:match => /^\s*$/
|
||||||
|
|
||||||
text_line :comment,
|
text_line :comment,
|
||||||
match: %r{^\s*#}
|
:match => /^\s*#/
|
||||||
|
|
||||||
text_line :unmanaged,
|
text_line :unmanaged,
|
||||||
match: %r{
|
: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*$}
|
||||||
^([<>]?=)?
|
|
||||||
((?:[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*$
|
|
||||||
}x
|
|
||||||
|
|
||||||
record_line :parsed,
|
record_line :parsed,
|
||||||
fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
|
:fields => %w{operator package version slot use tag repo name},
|
||||||
match: %r{
|
: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|
|
||||||
((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?
|
line = ""
|
||||||
(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?
|
line += record[:operator] if record[:operator]
|
||||||
(?::([a-zA-Z0-9._-]+))?(?:\[([^\]]*)\])?
|
line += record[:package] if record[:package]
|
||||||
(?:\#([a-zA-Z0-9._-]+))?
|
line += "-" + record[:version] if record[:version]
|
||||||
(?:::([a-zA-Z0-9._-]+))?
|
line += ":" + record[:slot] if record[:slot]
|
||||||
\s+\#+\s+Puppet\s+Name:\s+(.*)
|
line += "[" + record[:use] + "]" if record[:use]
|
||||||
\s*$
|
line += "#" + record[:tag] if record[:tag]
|
||||||
}x,
|
line += "::" + record[:repo] if record[:repo]
|
||||||
to_line: proc { |record|
|
line += " ## Puppet Name: " + record[:name]
|
||||||
line = ''
|
|
||||||
line += record[:operator] if record[:operator]
|
|
||||||
line += record[:package] if record[:package]
|
|
||||||
line += '-' + record[:version] if record[:version]
|
|
||||||
line += ':' + record[:slot] if record[:slot]
|
|
||||||
line += '[' + record[:use] + ']' if record[:use]
|
|
||||||
line += '#' + record[:tag] if record[:tag]
|
|
||||||
line += '::' + record[:repo] if record[:repo]
|
|
||||||
line += ' ## Puppet Name: ' + record[:name]
|
|
||||||
|
|
||||||
line
|
line
|
||||||
}
|
}
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 shiftwidth=2 expandtab :
|
# vim: set ts=2 shiftwidth=2 expandtab :
|
||||||
|
|
||||||
|
|||||||
@@ -1,59 +1,43 @@
|
|||||||
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) do
|
:filetype => :flat
|
||||||
|
) 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: %r{^\s*$}
|
:match => /^\s*$/
|
||||||
|
|
||||||
text_line :comment,
|
text_line :comment,
|
||||||
match: %r{^\s*#}
|
:match => /^\s*#/
|
||||||
|
|
||||||
text_line :unmanaged,
|
text_line :unmanaged,
|
||||||
match: %r{
|
: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*$}
|
||||||
^([<>]?=)?
|
|
||||||
((?:[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*$
|
|
||||||
}x
|
|
||||||
|
|
||||||
record_line :parsed,
|
record_line :parsed,
|
||||||
fields: ['operator', 'package', 'version', 'slot', 'use', 'tag', 'repo', 'name'],
|
:fields => %w{operator package version slot use tag repo name},
|
||||||
match: %r{
|
: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|
|
||||||
((?:[A-Za-z0-9+_.-]+/)?[a-zA-Z0-9+_-]+)?
|
line = ""
|
||||||
(?:-(\d+(?:\.\d+)*[a-z]*(?:_(?:alpha|beta|pre|p|rc)\d*)?(?:-r\d+)?))?
|
line += record[:operator] if record[:operator]
|
||||||
(?::([a-zA-Z0-9._-]+))?
|
line += record[:package] if record[:package]
|
||||||
(?:\[([^\]]*)\])?
|
line += "-" + record[:version] if record[:version]
|
||||||
(?:\#([a-zA-Z0-9._-]+))?
|
line += ":" + record[:slot] if record[:slot]
|
||||||
(?:::([a-zA-Z0-9._-]+))?
|
line += "[" + record[:use] + "]" if record[:use]
|
||||||
\s+\#+\s+Puppet\s+Name:\s+(.*)
|
line += "#" + record[:tag] if record[:tag]
|
||||||
\s*$
|
line += "::" + record[:repo] if record[:repo]
|
||||||
}x,
|
line += " ## Puppet Name: " + record[:name]
|
||||||
to_line: proc { |record|
|
|
||||||
line = ''
|
|
||||||
line += record[:operator] if record[:operator]
|
|
||||||
line += record[:package] if record[:package]
|
|
||||||
line += '-' + record[:version] if record[:version]
|
|
||||||
line += ':' + record[:slot] if record[:slot]
|
|
||||||
line += '[' + record[:use] + ']' if record[:use]
|
|
||||||
line += '#' + record[:tag] if record[:tag]
|
|
||||||
line += '::' + record[:repo] if record[:repo]
|
|
||||||
line += ' ## Puppet Name: ' + record[:name]
|
|
||||||
|
|
||||||
line
|
line
|
||||||
}
|
}
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 shiftwidth=2 expandtab :
|
# vim: set ts=2 shiftwidth=2 expandtab :
|
||||||
|
|
||||||
|
|||||||
@@ -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,61 +9,57 @@ Puppet::Type.type(:package).provide(:entropy, parent: Puppet::Provider::Package)
|
|||||||
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(LANG: locale,
|
environment({
|
||||||
LC_ALL: locale,
|
:LANG => locale,
|
||||||
LANGUAHE: locale)
|
:LC_ALL => 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 = %r{
|
result_format = /^(\S+)\/(\S+)-([\.\d]+(?:_?(?:a(?:lpha)?|b(?:eta)?|pre|rc|p)\d*)?(?:-r\d+)?)(?:#(\S+))?$/
|
||||||
^(\S+)\/(\S+)-([\.\d]+[a-z]?(?:_(?:alpha|beta|pre|pre_pre|rc|p)\d*)?
|
|
||||||
(?:-r\d+)?)(?:\#(\S+))?$
|
|
||||||
}x
|
|
||||||
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)
|
||||||
|
|
||||||
next unless match
|
if match
|
||||||
package = {}
|
package = {}
|
||||||
result_fields.zip(match.captures) do |field, value|
|
result_fields.zip(match.captures) do |field, value|
|
||||||
package[field] = value unless !value || value.empty?
|
package[field] = value unless !value or value.empty?
|
||||||
end
|
end
|
||||||
package[:provider] = :entropy
|
package[:provider] = :entropy
|
||||||
|
|
||||||
packages << new(package)
|
packages << new(package)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return packages
|
return packages
|
||||||
rescue Puppet::ExecutionFailure => detail
|
rescue Puppet::ExecutionFailure => detail
|
||||||
raise Puppet::Error, detail.message
|
raise Puppet::Error.new(detail)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def install
|
def install
|
||||||
should = @resource.should(:ensure)
|
should = @resource.should(:ensure)
|
||||||
name = package_name
|
name = package_name
|
||||||
unless [:present, :latest].include?(should)
|
unless should == :present or should == :latest
|
||||||
# We must install a specific version
|
# We must install a specific version
|
||||||
name = "=#{name}-#{should}"
|
name = "=#{name}-#{should}"
|
||||||
end
|
end
|
||||||
begin
|
equo "install", name
|
||||||
equo 'install', name
|
|
||||||
rescue Puppet::ExecutionFailure => detail
|
|
||||||
raise Puppet::Error, detail.message
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# The common package name format.
|
# The common package name format.
|
||||||
@@ -76,33 +72,29 @@ Puppet::Type.type(:package).provide(:entropy, parent: Puppet::Provider::Package)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def uninstall
|
def uninstall
|
||||||
equo 'remove', package_name
|
equo "remove", package_name
|
||||||
rescue Puppet::ExecutionFailure => detail
|
|
||||||
raise Puppet::Error, detail.message
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
install
|
self.install
|
||||||
end
|
end
|
||||||
|
|
||||||
def query
|
def query
|
||||||
result_format = %r{
|
result_format = /^(\S+)\/(\S+)-([\.\d]+(?:_(?:alpha|beta|pre|rc|p)\d+)?(?:-r\d+)?)(?::[^#]+)?(?:#(\S+))?$/
|
||||||
^(\S+)\/(\S+)-([\.\d]+[a-z]?(?:_(?:alpha|beta|pre_pre|pre|rc|p)\d*)?(?:-r\d+)?)
|
|
||||||
(?::[^\#]+)?(?:\#(\S+))?$
|
|
||||||
}x
|
|
||||||
result_fields = [:category, :name, :version_available]
|
result_fields = [:category, :name, :version_available]
|
||||||
|
|
||||||
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 || value.empty?
|
package[field] = value unless !value or 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,34 +114,38 @@ Puppet::Type.type(:package).provide(:entropy, parent: Puppet::Provider::Package)
|
|||||||
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)
|
||||||
next unless search_match
|
if 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 = {
|
||||||
|
:ensure => search_captures[2]
|
||||||
|
}
|
||||||
|
|
||||||
package = {
|
result_fields.zip(search_captures).each do |field, value|
|
||||||
ensure: search_captures[2],
|
package[field] = value unless !value or value.empty?
|
||||||
}
|
end
|
||||||
|
|
||||||
result_fields.zip(search_captures).each do |field, value|
|
return package
|
||||||
package[field] = value unless !value || value.empty?
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return package
|
|
||||||
end
|
end
|
||||||
|
|
||||||
raise Puppet::Error, "No package found with the specified name [#{package_name}]"
|
raise Puppet::Error.new("No package found with the specified name [#{package_name}]")
|
||||||
end
|
end
|
||||||
rescue Puppet::ExecutionFailure => detail
|
rescue Puppet::ExecutionFailure => detail
|
||||||
raise Puppet::Error, detail.message
|
raise Puppet::Error.new(detail)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def latest
|
def latest
|
||||||
query[:version_available]
|
self.query[:version_available]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
# 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
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
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 :
|
||||||
|
|
||||||
|
|||||||
@@ -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 do
|
defaultto {
|
||||||
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 do
|
defaultto {
|
||||||
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,3 +62,4 @@ Puppet::Type.newtype(:entropy_keywords) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 expandtab:
|
# vim: set ts=2 sw=2 expandtab:
|
||||||
|
|
||||||
|
|||||||
@@ -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 do
|
defaultto {
|
||||||
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,3 +61,4 @@ Puppet::Type.newtype(:entropy_mask) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 expandtab:
|
# vim: set ts=2 sw=2 expandtab:
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,22 @@
|
|||||||
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 :
|
||||||
|
|
||||||
|
|||||||
@@ -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 do
|
defaultto {
|
||||||
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,3 +61,4 @@ Puppet::Type.newtype(:entropy_splitdebug) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 expandtab:
|
# vim: set ts=2 sw=2 expandtab:
|
||||||
|
|
||||||
|
|||||||
@@ -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 do
|
defaultto {
|
||||||
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,3 +61,4 @@ Puppet::Type.newtype(:entropy_splitdebug_mask) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 expandtab:
|
# vim: set ts=2 sw=2 expandtab:
|
||||||
|
|
||||||
|
|||||||
@@ -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 do
|
defaultto {
|
||||||
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,3 +61,4 @@ Puppet::Type.newtype(:entropy_unmask) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 expandtab:
|
# vim: set ts=2 sw=2 expandtab:
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,27 @@
|
|||||||
{
|
{
|
||||||
"name": "optiz0r-sabayon",
|
"name": "optiz0r-sabayon",
|
||||||
"version": "0.6.1",
|
"version": "0.3.1",
|
||||||
"author": "Ben Roberts",
|
"author": "Ben Roberts",
|
||||||
"summary": "Extends Puppet with support for the Sabayon Linux distribution",
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"summary": "Extends Puppet with support for the Sabayon Linux distribution",
|
||||||
"source": "https://github.com/Sabayon/puppet-sabayon.git",
|
"source": "https://github.com/Sabayon/puppet-sabayon.git",
|
||||||
"project_page": "https://github.com/Sabayon/puppet-sabayon",
|
"project_page": "https://github.com/Sabayon/puppet-sabayon",
|
||||||
"issues_url": "https://github.com/Sabayon/puppet-sabayon/issues",
|
"issues_url": "https://github.com/Sabayon/puppet-sabayon/issues",
|
||||||
"dependencies": [
|
"tags": [
|
||||||
|
"sabayon",
|
||||||
|
"entropy"
|
||||||
],
|
],
|
||||||
"data_provider": "hiera",
|
|
||||||
"operatingsystem_support": [
|
"operatingsystem_support": [
|
||||||
{
|
{
|
||||||
"operatingsystem": "Sabayon",
|
"operatingsystem": "Sabayon",
|
||||||
"operatingsystemrelease": [
|
"operatingsystemrelease": [
|
||||||
"16.07",
|
"16.07",
|
||||||
"16.11",
|
"16.11"
|
||||||
"19.03",
|
|
||||||
"19.05",
|
|
||||||
"19.10"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"requirements": [
|
"dependencies": [
|
||||||
{
|
|
||||||
"name": "puppet",
|
|
||||||
"version_requirement": ">= 4.10.0 < 7.0.0"
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"tags": [
|
"data_provider": "hiera"
|
||||||
"sabayon",
|
|
||||||
"entropy"
|
|
||||||
],
|
|
||||||
"pdk-version": "1.10.0",
|
|
||||||
"template-url": "file:///opt/puppetlabs/pdk/share/cache/pdk-templates.git#1.10.0",
|
|
||||||
"template-ref": "1.10.0-0-gbba9ac3"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 { is_expected.to contain_class('sabayon') }
|
it { should contain_class('sabayon') }
|
||||||
it { is_expected.to contain_package('app-admin/enman') }
|
it { should contain_package('app-admin/enman') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# Use default_module_facts.yml for module specific facts.
|
|
||||||
#
|
|
||||||
# Facts specified here will override the values provided by rspec-puppet-facts.
|
|
||||||
---
|
|
||||||
ipaddress: "172.16.254.254"
|
|
||||||
is_pe: false
|
|
||||||
macaddress: "AA:AA:AA:AA:AA:AA"
|
|
||||||
@@ -1,48 +1 @@
|
|||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
require 'rspec-puppet-facts'
|
|
||||||
|
|
||||||
require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
|
|
||||||
|
|
||||||
include RspecPuppetFacts
|
|
||||||
|
|
||||||
default_facts = {
|
|
||||||
puppetversion: Puppet.version,
|
|
||||||
facterversion: Facter.version,
|
|
||||||
}
|
|
||||||
|
|
||||||
default_fact_files = [
|
|
||||||
File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml')),
|
|
||||||
File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml')),
|
|
||||||
]
|
|
||||||
|
|
||||||
default_fact_files.each do |f|
|
|
||||||
next unless File.exist?(f) && File.readable?(f) && File.size?(f)
|
|
||||||
|
|
||||||
begin
|
|
||||||
default_facts.merge!(YAML.safe_load(File.read(f), [], [], true))
|
|
||||||
rescue => e
|
|
||||||
RSpec.configuration.reporter.message "WARNING: Unable to load #{f}: #{e}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RSpec.configure do |c|
|
|
||||||
c.mock_with :mocha
|
|
||||||
c.default_facts = default_facts
|
|
||||||
c.before :each do
|
|
||||||
# set to strictest setting for testing
|
|
||||||
# by default Puppet runs at warning level
|
|
||||||
Puppet.settings[:strict] = :warning
|
|
||||||
end
|
|
||||||
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
|
|
||||||
c.after(:suite) do
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def ensure_module_defined(module_name)
|
|
||||||
module_name.split('::').reduce(Object) do |last_module, next_module|
|
|
||||||
last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module, false)
|
|
||||||
last_module.const_get(next_module, false)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# 'spec_overrides' from sync.yml will appear below this line
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
|
describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
|
||||||
let(:default_target) { described_class.default_target }
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'should have a default target of /etc/entropy/packages/package.keywords' do
|
describe 'should have a default target of /etc/entropy/packages/package.keywords' do
|
||||||
@@ -15,7 +14,7 @@ describe Puppet::Type.type(:entropy_keywords).provider(:parsed) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe 'when parsing' do
|
describe 'when parsing' do
|
||||||
it 'parses out the name' do
|
it 'should parse 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
|
||||||
@@ -24,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 'parses out the keyword' do
|
it 'should parse out the keyword' do
|
||||||
expect(parsed[:keyword]).to eq('**')
|
expect(parsed[:keyword]).to eq('**')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -43,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 'parses out the keyword' do
|
it 'should parse out the keyword' do
|
||||||
expect(parsed[:keyword]).to eq('**')
|
expect(parsed[:keyword]).to eq('**')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the version' do
|
it 'should parse 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 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -66,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 'parses out the keyword' do
|
it 'should parse out the keyword' do
|
||||||
expect(parsed[:keyword]).to eq('**')
|
expect(parsed[:keyword]).to eq('**')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the version' do
|
it 'should parse 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 'parses out the operator' do
|
it 'should parse out the operator' do
|
||||||
expect(parsed[:operator]).to eq('>=')
|
expect(parsed[:operator]).to eq('>=')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -93,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 'parses out the keyword' do
|
it 'should parse out the keyword' do
|
||||||
expect(parsed[:keyword]).to eq('**')
|
expect(parsed[:keyword]).to eq('**')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the repo' do
|
it 'should parse out the repo' do
|
||||||
expect(parsed[:repo]).to eq('community')
|
expect(parsed[:repo]).to eq('community')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -116,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 'parses out the keyword' do
|
it 'should parse out the keyword' do
|
||||||
expect(parsed[:keyword]).to eq('amd64')
|
expect(parsed[:keyword]).to eq('amd64')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the repo' do
|
it 'should parse out the repo' do
|
||||||
expect(parsed[:repo]).to eq('community')
|
expect(parsed[:repo]).to eq('community')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -136,99 +135,99 @@ 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 'parses out all parameters' do
|
it 'should parse 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
|
||||||
let(:ramfile) { Puppet::Util::FileType::FileTypeRam.new(:default_target) }
|
|
||||||
|
|
||||||
before :each do
|
before :each do
|
||||||
File.stubs(:exist?).with(:default_target).returns(true)
|
@ramfile = Puppet::Util::FileType::FileTypeRam.new(@default_target)
|
||||||
described_class.stubs(:target_object).returns(:ramfile)
|
File.stubs(:exist?).with(@default_target).returns(true)
|
||||||
|
described_class.any_instance.stubs(:target_object).returns(@ramfile)
|
||||||
end
|
end
|
||||||
|
|
||||||
after :each do
|
after :each do
|
||||||
described_class.clear
|
described_class.clear
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'outputs a single package entry' do
|
it 'should output 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 'outputs a versioned package entry' do
|
it 'should output 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 'outputs a ranged versioned package entry' do
|
it 'should output 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 'outputs a repo-specific package entry' do
|
it 'should output 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 'outputs a whole-repo entry' do
|
it 'should output 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 'outputs all fields for a package entry' do
|
it 'should output 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
|
||||||
|
|||||||
@@ -8,53 +8,53 @@ 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(:each) do
|
before 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 'identifies the correct number of repos' do
|
it 'should identify the correct number of repos' do
|
||||||
expect(instances.size).to eq(repos.size)
|
expect(instances.size).to eq(repos.size)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'identifies the correct repo name' do
|
it 'should identify 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 'identifies the correct enabled state' do
|
it 'should identify 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
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'when enabling a repository' do
|
describe 'when enabling a repository' do
|
||||||
it 'enables a disabled repository' do
|
it 'should enable a disabled repository' do
|
||||||
File.stubs(:exist?).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 'disables an enabled repository' do
|
it 'should disable an enabled repository' do
|
||||||
File.stubs(:exist?).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
|
||||||
|
|||||||
@@ -5,26 +5,25 @@ 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
|
||||||
let(:default_target) { described_class.default_target }
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "should have a default target of #{default_targets[type_name]}" do
|
describe "should have a default target of #{default_targets[type_name]}" do
|
||||||
@@ -34,7 +33,7 @@ types.each do |type_name, _type|
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe 'when parsing' do
|
describe 'when parsing' do
|
||||||
it 'parses out the name' do
|
it 'should parse 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
|
||||||
@@ -43,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -58,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the version' do
|
it 'should parse 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 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -77,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the version' do
|
it 'should parse 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 'parses out the operator' do
|
it 'should parse out the operator' do
|
||||||
expect(parsed[:operator]).to eq('>=')
|
expect(parsed[:operator]).to eq('>=')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -100,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the slot' do
|
it 'should parse out the slot' do
|
||||||
expect(parsed[:slot]).to eq('1.1')
|
expect(parsed[:slot]).to eq('1.1')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -119,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the use' do
|
it 'should parse out the use' do
|
||||||
expect(parsed[:use]).to eq('-foo,bar')
|
expect(parsed[:use]).to eq('-foo,bar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -138,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the tag' do
|
it 'should parse out the tag' do
|
||||||
expect(parsed[:tag]).to eq('server')
|
expect(parsed[:tag]).to eq('server')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -157,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 'parses out the package name' do
|
it 'should parse out the package name' do
|
||||||
expect(parsed[:package]).to eq('app-admin/foobar')
|
expect(parsed[:package]).to eq('app-admin/foobar')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses out the repo' do
|
it 'should parse out the repo' do
|
||||||
expect(parsed[:repo]).to eq('community')
|
expect(parsed[:repo]).to eq('community')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has all other parameters undefined' do
|
it 'should have 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
|
||||||
@@ -177,130 +176,128 @@ 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 'parses out all parameters' do
|
it 'should parse 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
|
||||||
let(:ramfile) do
|
|
||||||
Puppet::Util::FileType::FileTypeRam.new(:default_target)
|
|
||||||
end
|
|
||||||
|
|
||||||
before :each do
|
before :each do
|
||||||
|
@ramfile = Puppet::Util::FileType::FileTypeRam.new(@default_target)
|
||||||
File.stubs(:exist?).with(default_targets[type_name]).returns(true)
|
File.stubs(:exist?).with(default_targets[type_name]).returns(true)
|
||||||
described_class.stubs(:target_object).returns(:ramfile)
|
described_class.any_instance.stubs(:target_object).returns(@ramfile)
|
||||||
end
|
end
|
||||||
|
|
||||||
after :each do
|
after :each do
|
||||||
described_class.clear
|
described_class.clear
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'outputs a single package entry' do
|
it 'should output 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 'outputs a versioned package entry' do
|
it 'should output 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 'outputs a ranged versioned package entry' do
|
it 'should output 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 'outputs a use-restricted package entry' do
|
it 'should output 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 'outputs a slotted package entry' do
|
it 'should output 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 'outputs a tagged package entry' do
|
it 'should output 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 'outputs a repo-specific package entry' do
|
it 'should output 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 'outputs a whole-repo entry' do
|
it 'should output 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 'outputs all fields for a package entry' do
|
it 'should output 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
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe Puppet::Type.type(:enman_repo) do
|
describe Puppet::Type.type(:enman_repo) do
|
||||||
before(:each) do
|
before 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 'is an instance of Puppet::Type::Enman_repo' do
|
it "should be 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
|
||||||
@@ -21,7 +19,7 @@ describe Puppet::Type.type(:enman_repo) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has name as the namevar' do
|
it "should have 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
|
||||||
|
|||||||
@@ -1,19 +1,17 @@
|
|||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe Puppet::Type.type(:entropy_keywords) do
|
describe Puppet::Type.type(:entropy_keywords) do
|
||||||
before(:each) do
|
before 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 'is an instance of Puppet::Type::Entropy_keywords' do
|
it "should be 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]
|
||||||
|
|
||||||
@@ -28,36 +26,37 @@ 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 'has name as the namevar' do
|
it "should have 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 "defaults to the provider's default target" do
|
it "should default 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 'raises an error when a version is passed with no package' do
|
it "should raise 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, %r{Package is required})
|
}.to raise_error(Puppet::Error, /Package is required/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'raises an error when an operator is passed with no version' do
|
it "should raise 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, %r{Version is required})
|
}.to raise_error(Puppet::Error, /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 'has an autobefore relationship' do
|
it "should have 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
|
||||||
|
|||||||
@@ -1,17 +1,15 @@
|
|||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe Puppet::Type.type(:entropy_repo) do
|
describe Puppet::Type.type(:entropy_repo) do
|
||||||
before(:each) do
|
before 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 'is an instance of Puppet::Type::Entropy_repo' do
|
it "should be 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]
|
||||||
|
|
||||||
@@ -28,7 +26,7 @@ describe Puppet::Type.type(:entropy_repo) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'has name as the namevar' do
|
it "should have 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
|
||||||
|
|||||||
@@ -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(:each) do
|
before 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,31 +40,32 @@ 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 'has name as the namevar' do
|
it "should have 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 "defaults to the provider's default target" do
|
it "should default 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
|
||||||
@@ -78,28 +79,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 'raises an error when a version is passed with no package' do
|
it "should raise 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, %r{Package is required})
|
}.to raise_error(Puppet::Error, /Package is required/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'raises an error when an operator is passed with no version' do
|
it "should raise 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, %r{Version is required})
|
}.to raise_error(Puppet::Error, /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 'has an autobefore relationship' do
|
it "should have 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
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"puppet_task_version": 1,
|
|
||||||
"supports_noop": false,
|
|
||||||
"description": "Run `equo cleanup` on target nodes to free up disk space used by downloaded packages",
|
|
||||||
"parameters": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
/usr/bin/equo cleanup
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"puppet_task_version": 1,
|
|
||||||
"supports_noop": false,
|
|
||||||
"description": "Run `equo update` on target nodes to refresh repository definitions",
|
|
||||||
"parameters": {
|
|
||||||
"repo": {
|
|
||||||
"description": "Restrict update to only this named repository",
|
|
||||||
"type": "Optional[Pattern[/^[a-zA-Z0-9._-]+$/]]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ ! -z "${PT_repo}" ]; then
|
|
||||||
/usr/bin/equo update "${PT_repo}"
|
|
||||||
else
|
|
||||||
/usr/bin/equo update
|
|
||||||
fi
|
|
||||||
1
vendor/.gitignore
vendored
Normal file
1
vendor/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
bundle
|
||||||
Reference in New Issue
Block a user