Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F11023603
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
13 KB
Subscribers
None
View Options
diff --git a/Gemfile b/Gemfile
index 605d99f..ce0c8f8 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,53 +1,53 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
group :test do
- gem 'puppetlabs_spec_helper', require: false
+ gem 'puppetlabs_spec_helper', '>= 2.11.0', require: false
gem 'rspec-puppet', require: false
gem 'rspec-puppet-facts', require: false
gem 'rspec-puppet-utils', require: false
gem 'puppet-lint-absolute_classname-check', require: false
gem 'puppet-lint-leading_zero-check', require: false
gem 'puppet-lint-trailing_comma-check', require: false
gem 'puppet-lint-version_comparison-check', require: false
gem 'puppet-lint-classes_and_types_beginning_with_digits-check', require: false
gem 'puppet-lint-unquoted_string-check', require: false
gem 'puppet-lint-variable_contains_upcase', require: false
gem 'metadata-json-lint', require: false
gem 'puppet-blacksmith', require: false
gem 'voxpupuli-release', require: false, git: 'https://github.com/voxpupuli/voxpupuli-release-gem.git'
gem 'puppet-strings', '~> 1.0', require: false
- gem 'rubocop-rspec', '~> 1.5', require: false if RUBY_VERSION >= '2.2.0'
- gem 'json_pure', '<= 2.0.1', require: false if RUBY_VERSION < '2.0.0'
+ gem 'rubocop', '~> 0.49.1', require: false
+ gem 'rubocop-rspec', require: false
gem 'rspec-its', require: false
end
group :development do
gem 'travis', require: false
gem 'travis-lint', require: false
gem 'guard-rake', require: false
end
group :system_tests do
if (beaker_version = ENV['BEAKER_VERSION'])
gem 'beaker', *location_for(beaker_version)
end
if (beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION'])
gem 'beaker-rspec', *location_for(beaker_rspec_version)
else
gem 'beaker-rspec', require: false
end
gem 'beaker-puppet_install_helper', require: false
end
if (facterversion = ENV['FACTER_GEM_VERSION'])
gem 'facter', facterversion.to_s, require: false, groups: [:test]
else
gem 'facter', require: false, groups: [:test]
end
ENV['PUPPET_VERSION'].nil? ? puppetversion = '~> 4.0' : puppetversion = ENV['PUPPET_VERSION'].to_s
gem 'puppet', puppetversion, require: false, groups: [:test]
# vim: syntax=ruby
diff --git a/spec/classes/resolv_conf_spec.rb b/spec/classes/resolv_conf_spec.rb
index 9fc40d7..58e9fe2 100644
--- a/spec/classes/resolv_conf_spec.rb
+++ b/spec/classes/resolv_conf_spec.rb
@@ -1,343 +1,345 @@
+# frozen_string_literal: true
+
require 'spec_helper'
on_supported_os.each_value do |f|
describe 'resolv_conf' do
let(:facts) { { domain: 'example.com' } }
let :default_params do
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1']
}
end
[
{
searchpath: 'example.com',
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
domainname: 'example.com'
},
{
searchpath: ['example.com', 'example.de'],
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
domainname: 'example.com',
options: ['timeout:2', 'attempts:3']
},
{
searchpath: 'example.com',
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
domainname: 'example.com',
options: ['timeout:2', 'attempts:3']
}
].each do |param_set|
describe 'when setting searchpath and domainname' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it 'fails to compile' do
expect { is_expected.to compile }.to raise_error(%r{domainname and searchpath are mutually exclusive parameters})
end
end
end
end
[
{
searchpath: 'example.com',
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1']
},
{
searchpath: ['example.com', 'example.de'],
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1']
},
{
searchpath: ['example.com', 'example.de', 'example.de'],
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1']
},
{
searchpath: 'example.com',
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
options: ['timeout:2', 'attempts:3']
}
].each do |param_set|
describe 'when setting searchpath without domainname' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it do
is_expected.to contain_file('/etc/resolv.conf').with(
'ensure' => 'file',
'owner' => 'root',
'group' => 0,
'mode' => '0644'
)
end
it 'compiles the template based on the class parameters' do
content = param_value(
catalogue,
'file',
'/etc/resolv.conf',
'content'
)
expected_lines = []
if param_hash[:searchpath].empty?
expected_lines.push("domain #{param_hash[:domainname]}")
elsif param_hash[:searchpath].is_a?(Array)
- expected_lines.push('search ' + param_hash[:searchpath].uniq().join(' '))
+ expected_lines.push('search ' + param_hash[:searchpath].uniq.join(' '))
else
expected_lines.push("search #{param_hash[:searchpath]}")
end
param_hash[:nameservers].each do |ns|
expected_lines.push("nameserver #{ns}")
end
if param_hash[:options] && !param_hash[:options].empty?
param_hash[:options].each do |option|
expected_lines.push("options #{option}")
end
end
(content.split("\n") & expected_lines).should =~ expected_lines
end
end
end
end
[
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
domainname: 'example.com'
},
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
domainname: 'example.com',
options: ['timeout:2', 'attempts:3']
}
].each do |param_set|
describe 'when setting domainname without searchpath' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it do
is_expected.to contain_file('/etc/resolv.conf').with(
'ensure' => 'file',
'owner' => 'root',
'group' => 0,
'mode' => '0644'
)
end
it 'compiles the template based on the class parameters' do
content = param_value(
catalogue,
'file',
'/etc/resolv.conf',
'content'
)
expected_lines = [
"domain #{param_hash[:domainname]}"
]
param_hash[:nameservers].each do |ns|
expected_lines.push("nameserver #{ns}")
end
if param_hash[:options] && !param_hash[:options].empty?
param_hash[:options].each do |option|
expected_lines.push("options #{option}")
end
end
(content.split("\n") & expected_lines).should =~ expected_lines
end
end
end
end
[
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1']
},
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
options: ['timeout:2', 'attempts:3']
},
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
options: ['timeout:2', 'attempts:3']
}
].each do |param_set|
describe 'when setting neither searchpath nor domainname' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it do
is_expected.to contain_file('/etc/resolv.conf').with(
'ensure' => 'file',
'owner' => 'root',
'group' => 0,
'mode' => '0644'
)
end
it 'compiles the template based on the class parameters' do
content = param_value(
catalogue,
'file',
'/etc/resolv.conf',
'content'
)
expected_lines = [
"domain #{facts[:domain]}"
]
param_hash[:nameservers].each do |ns|
expected_lines.push("nameserver #{ns}")
end
if param_hash[:options] && !param_hash[:options].empty?
param_hash[:options].each do |option|
expected_lines.push("options #{option}")
end
end
(content.split("\n") & expected_lines).should =~ expected_lines
end
end
end
end
[
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
use_resolvconf: true
}
].each do |param_set|
describe 'when setting neither searchpath nor domainname' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it do
is_expected.to contain_file('/etc/resolv.conf').with(
'ensure' => 'link',
'target' => '/run/resolvconf/resolv.conf'
)
end
it do
is_expected.to contain_file('/run/resolvconf/resolv.conf').with(
'ensure' => 'file',
'owner' => 'root',
'group' => 0,
'mode' => '0644'
)
end
it 'compiles the template based on the class parameters' do
content = param_value(
catalogue,
'file',
'/run/resolvconf/resolv.conf',
'content'
)
expected_lines = [
"domain #{facts[:domain]}"
]
param_hash[:nameservers].each do |ns|
expected_lines.push("nameserver #{ns}")
end
if param_hash[:options] && !param_hash[:options].empty?
param_hash[:options].each do |option|
expected_lines.push("options #{option}")
end
end
(content.split("\n") & expected_lines).should =~ expected_lines
end
end
end
end
[
{
nameservers: ['192.168.0.1', '192.168.1.1', '192.168.2.1'],
mode: '0444'
}
].each do |param_set|
describe 'when setting neither searchpath nor domainname' do
let :param_hash do
default_params.merge(param_set)
end
let :params do
param_set
end
let(:facts) do
f.merge(super())
end
describe "on #{f[:os]}" do
it do
is_expected.to contain_file('/etc/resolv.conf').with(
'ensure' => 'file',
'owner' => 'root',
'group' => 0,
'mode' => '0444'
)
end
end
end
end
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index e0c0dfb..99b506d 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,16 +1,18 @@
+# frozen_string_literal: true
+
require 'puppetlabs_spec_helper/module_spec_helper'
if Puppet::Util::Package.versioncmp(Puppet.version, '4.5.0') >= 0
RSpec.configure do |c|
c.before do
Puppet.settings[:strict] = :error
end
end
end
# put local configuration and setup into spec_helper_local
begin
require 'spec_helper_local'
rescue LoadError => loaderror
puts "Could not require spec_helper_local: #{loaderror.message}"
end
diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb
index 9ff7f23..35450f7 100644
--- a/spec/spec_helper_local.rb
+++ b/spec/spec_helper_local.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
require 'rspec-puppet-facts'
include RspecPuppetFacts
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Sep 18, 4:51 PM (20 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3313099
Attached To
rSPRESO Manage /etc/resolv.conf with puppet
Event Timeline
Log In to Comment