From 040f1acf02dc379e3fe577d900b96b47a38a714a Mon Sep 17 00:00:00 2001 From: Felix Bechstein Date: Wed, 27 Jan 2016 08:18:12 +0100 Subject: Shortcut for creating unit files / tmpfiles This change allows creating unit files and reloading systemd with just a single resource. It's fully compatible with the manual behavior. --- spec/defines/tmpfile_spec.rb | 48 ++++++++++++++++++++++++++++++++++++++++++ spec/defines/unit_file_spec.rb | 48 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 spec/defines/tmpfile_spec.rb create mode 100644 spec/defines/unit_file_spec.rb (limited to 'spec') diff --git a/spec/defines/tmpfile_spec.rb b/spec/defines/tmpfile_spec.rb new file mode 100644 index 0000000..4eb22ac --- /dev/null +++ b/spec/defines/tmpfile_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe 'systemd::tmpfile' do + + let(:facts) { { + :path => '/usr/bin', + } } + + context 'default params' do + + let(:title) { 'fancy.conf' } + + it 'creates the tmpfile' do + should contain_file('/etc/tmpfiles.d/fancy.conf').with({ + 'ensure' => 'file', + 'owner' => 'root', + 'group' => 'root', + 'mode' => '0444', + }) + end + + it 'triggers systemd daemon-reload' do + should contain_class('systemd') + should contain_file('/etc/tmpfiles.d/fancy.conf').with_notify("Exec[systemd-tmpfiles-create]") + end + end + + context 'with params' do + let(:title) { 'fancy.conf' } + + let(:params) { { + :ensure => 'absent', + :path => '/etc/tmpfiles.d/foo', + :content => 'some-content', + :source => 'some-source', + } } + + it 'creates the unit file' do + should contain_file('/etc/tmpfiles.d/foo/fancy.conf').with({ + 'ensure' => 'absent', + 'content' => 'some-content', + 'source' => 'some-source', + }) + end + + end + +end diff --git a/spec/defines/unit_file_spec.rb b/spec/defines/unit_file_spec.rb new file mode 100644 index 0000000..0eebbd3 --- /dev/null +++ b/spec/defines/unit_file_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe 'systemd::unit_file' do + + let(:facts) { { + :path => '/usr/bin', + } } + + context 'default params' do + + let(:title) { 'fancy.service' } + + it 'creates the unit file' do + should contain_file('/etc/systemd/system/fancy.service').with({ + 'ensure' => 'file', + 'owner' => 'root', + 'group' => 'root', + 'mode' => '0444', + }) + end + + it 'triggers systemd daemon-reload' do + should contain_class('systemd') + should contain_file('/etc/systemd/system/fancy.service').with_notify("Exec[systemctl-daemon-reload]") + end + end + + context 'with params' do + let(:title) { 'fancy.service' } + + let(:params) { { + :ensure => 'absent', + :path => '/usr/lib/systemd/system', + :content => 'some-content', + :source => 'some-source', + } } + + it 'creates the unit file' do + should contain_file('/usr/lib/systemd/system/fancy.service').with({ + 'ensure' => 'absent', + 'content' => 'some-content', + 'source' => 'some-source', + }) + end + + end + +end -- cgit v1.2.3 From c35dd1535b429d5432ee55b91884a6c76f17a075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Can=C3=A9vet?= Date: Wed, 4 May 2016 09:44:11 +0200 Subject: Update with modulesync --- spec/acceptance/nodesets/centos-5.yml | 15 +++++++++++++++ spec/acceptance/nodesets/centos-6.yml | 16 ++++++++++++++++ spec/acceptance/nodesets/centos-7.yml | 15 +++++++++++++++ spec/acceptance/nodesets/debian-6.yml | 15 +++++++++++++++ spec/acceptance/nodesets/debian-7.yml | 15 +++++++++++++++ spec/acceptance/nodesets/debian-8.yml | 16 ++++++++++++++++ spec/acceptance/nodesets/ubuntu-12.04.yml | 16 ++++++++++++++++ spec/acceptance/nodesets/ubuntu-14.04.yml | 18 ++++++++++++++++++ spec/acceptance/nodesets/ubuntu-14.10.yml | 18 ++++++++++++++++++ spec/acceptance/nodesets/ubuntu-15.04.yml | 16 ++++++++++++++++ spec/acceptance/nodesets/ubuntu-15.10.yml | 16 ++++++++++++++++ spec/acceptance/nodesets/ubuntu-16.04.yml | 16 ++++++++++++++++ 12 files changed, 192 insertions(+) create mode 100644 spec/acceptance/nodesets/centos-5.yml create mode 100644 spec/acceptance/nodesets/centos-6.yml create mode 100644 spec/acceptance/nodesets/centos-7.yml create mode 100644 spec/acceptance/nodesets/debian-6.yml create mode 100644 spec/acceptance/nodesets/debian-7.yml create mode 100644 spec/acceptance/nodesets/debian-8.yml create mode 100644 spec/acceptance/nodesets/ubuntu-12.04.yml create mode 100644 spec/acceptance/nodesets/ubuntu-14.04.yml create mode 100644 spec/acceptance/nodesets/ubuntu-14.10.yml create mode 100644 spec/acceptance/nodesets/ubuntu-15.04.yml create mode 100644 spec/acceptance/nodesets/ubuntu-15.10.yml create mode 100644 spec/acceptance/nodesets/ubuntu-16.04.yml (limited to 'spec') diff --git a/spec/acceptance/nodesets/centos-5.yml b/spec/acceptance/nodesets/centos-5.yml new file mode 100644 index 0000000..b7ed0e5 --- /dev/null +++ b/spec/acceptance/nodesets/centos-5.yml @@ -0,0 +1,15 @@ +HOSTS: + centos-5-x64: + default_apply_opts: + order: random + strict_variables: + platform: el-5-x86_64 + hypervisor : docker + image: tianon/centos:5.10 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'yum install -y crontabs tar wget which' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/centos-6.yml b/spec/acceptance/nodesets/centos-6.yml new file mode 100644 index 0000000..c82c10d --- /dev/null +++ b/spec/acceptance/nodesets/centos-6.yml @@ -0,0 +1,16 @@ +HOSTS: + centos-6-x64: + default_apply_opts: + order: random + strict_variables: + platform: el-6-x86_64 + hypervisor : docker + image: centos:6 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'rm -rf /var/run/network/*' + - 'yum install -y crontabs tar wget' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/centos-7.yml b/spec/acceptance/nodesets/centos-7.yml new file mode 100644 index 0000000..bc57539 --- /dev/null +++ b/spec/acceptance/nodesets/centos-7.yml @@ -0,0 +1,15 @@ +HOSTS: + centos-7-x64: + default_apply_opts: + order: random + strict_variables: + platform: el-7-x86_64 + hypervisor : docker + image: centos:7 + docker_preserve_image: true + docker_cmd: '["/usr/sbin/init"]' + docker_image_commands: + - 'yum install -y crontabs tar wget' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/debian-6.yml b/spec/acceptance/nodesets/debian-6.yml new file mode 100644 index 0000000..d7b0275 --- /dev/null +++ b/spec/acceptance/nodesets/debian-6.yml @@ -0,0 +1,15 @@ +HOSTS: + debian-6-x64: + default_apply_opts: + order: random + strict_variables: + platform: debian-6-amd64 + hypervisor : docker + image: debian/eol:squeeze + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y cron locales-all net-tools wget' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/debian-7.yml b/spec/acceptance/nodesets/debian-7.yml new file mode 100644 index 0000000..9591ea7 --- /dev/null +++ b/spec/acceptance/nodesets/debian-7.yml @@ -0,0 +1,15 @@ +HOSTS: + debian-7-x64: + default_apply_opts: + order: random + strict_variables: + platform: debian-7-amd64 + hypervisor : docker + image: debian:7 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y cron locales-all net-tools wget' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/debian-8.yml b/spec/acceptance/nodesets/debian-8.yml new file mode 100644 index 0000000..5fb24c6 --- /dev/null +++ b/spec/acceptance/nodesets/debian-8.yml @@ -0,0 +1,16 @@ +HOSTS: + debian-8-x64: + default_apply_opts: + order: random + strict_variables: + platform: debian-8-amd64 + hypervisor : docker + image: debian:8 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y cron locales-all net-tools wget' + - 'rm -f /usr/sbin/policy-rc.d' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-12.04.yml b/spec/acceptance/nodesets/ubuntu-12.04.yml new file mode 100644 index 0000000..594e177 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-12.04.yml @@ -0,0 +1,16 @@ +HOSTS: + ubuntu-1204-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-12.04-amd64 + hypervisor : docker + image: ubuntu:12.04 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-14.04.yml b/spec/acceptance/nodesets/ubuntu-14.04.yml new file mode 100644 index 0000000..2b293c9 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-14.04.yml @@ -0,0 +1,18 @@ +HOSTS: + ubuntu-1404-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-14.04-amd64 + hypervisor : docker + image: ubuntu:14.04 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'rm /usr/sbin/policy-rc.d' + - 'rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl' + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-14.10.yml b/spec/acceptance/nodesets/ubuntu-14.10.yml new file mode 100644 index 0000000..7ce09b2 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-14.10.yml @@ -0,0 +1,18 @@ +HOSTS: + ubuntu-1410-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-14.10-amd64 + hypervisor : docker + image: ubuntu:14.10 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'rm /usr/sbin/policy-rc.d' + - 'rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl' + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-15.04.yml b/spec/acceptance/nodesets/ubuntu-15.04.yml new file mode 100644 index 0000000..329f331 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-15.04.yml @@ -0,0 +1,16 @@ +HOSTS: + ubuntu-1504-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-15.04-amd64 + hypervisor : docker + image: ubuntu:15.04 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-15.10.yml b/spec/acceptance/nodesets/ubuntu-15.10.yml new file mode 100644 index 0000000..487795a --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-15.10.yml @@ -0,0 +1,16 @@ +HOSTS: + ubuntu-1510-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-15.10-amd64 + hypervisor : docker + image: ubuntu:15.10 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug diff --git a/spec/acceptance/nodesets/ubuntu-16.04.yml b/spec/acceptance/nodesets/ubuntu-16.04.yml new file mode 100644 index 0000000..6c32b96 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-16.04.yml @@ -0,0 +1,16 @@ +HOSTS: + ubuntu-1604-x64: + default_apply_opts: + order: random + strict_variables: + platform: ubuntu-16.04-amd64 + hypervisor : docker + image: ubuntu:16.04 + docker_preserve_image: true + docker_cmd: '["/sbin/init"]' + docker_image_commands: + - 'apt-get install -y net-tools wget' + - 'locale-gen en_US.UTF-8' +CONFIG: + type: aio + log_level: debug -- cgit v1.2.3 From 66115b15090f0c8be716cda29d376bcd8080714b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Mon, 11 Jul 2016 14:09:36 +0200 Subject: Deprecate Ruby 1.8 tests --- spec/acceptance/nodesets/centos-5.yml | 1 + spec/acceptance/nodesets/centos-6.yml | 1 + 2 files changed, 2 insertions(+) (limited to 'spec') diff --git a/spec/acceptance/nodesets/centos-5.yml b/spec/acceptance/nodesets/centos-5.yml index b7ed0e5..a26f27f 100644 --- a/spec/acceptance/nodesets/centos-5.yml +++ b/spec/acceptance/nodesets/centos-5.yml @@ -10,6 +10,7 @@ HOSTS: docker_cmd: '["/sbin/init"]' docker_image_commands: - 'yum install -y crontabs tar wget which' + - 'sed -i -e "/mingetty/d" /etc/inittab' CONFIG: type: aio log_level: debug diff --git a/spec/acceptance/nodesets/centos-6.yml b/spec/acceptance/nodesets/centos-6.yml index c82c10d..71e23cd 100644 --- a/spec/acceptance/nodesets/centos-6.yml +++ b/spec/acceptance/nodesets/centos-6.yml @@ -11,6 +11,7 @@ HOSTS: docker_image_commands: - 'rm -rf /var/run/network/*' - 'yum install -y crontabs tar wget' + - 'rm /etc/init/tty.conf' CONFIG: type: aio log_level: debug -- cgit v1.2.3 From 57283b23aafb47608501ae0ac68c1defa7f4065c Mon Sep 17 00:00:00 2001 From: Theo Chatzimichos Date: Tue, 16 Aug 2016 17:05:47 +0200 Subject: Add target param for the unit file (#10) This is useful in case the Unit file is a symlink to another one --- spec/defines/unit_file_spec.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'spec') diff --git a/spec/defines/unit_file_spec.rb b/spec/defines/unit_file_spec.rb index 0eebbd3..88a0122 100644 --- a/spec/defines/unit_file_spec.rb +++ b/spec/defines/unit_file_spec.rb @@ -33,6 +33,7 @@ describe 'systemd::unit_file' do :path => '/usr/lib/systemd/system', :content => 'some-content', :source => 'some-source', + :target => 'some-target', } } it 'creates the unit file' do @@ -40,6 +41,7 @@ describe 'systemd::unit_file' do 'ensure' => 'absent', 'content' => 'some-content', 'source' => 'some-source', + 'target' => 'some-target', }) end -- cgit v1.2.3 From b2f44d4832a771dde6ebea86f70811de8b4c1f26 Mon Sep 17 00:00:00 2001 From: Peter Souter Date: Wed, 24 Aug 2016 20:04:10 +0100 Subject: Refactor systemd facts (#12) * Use `Facter::Util::Resolution.exec`, which is backwards compatible with older Facter, calls the same method in modern facter * Adds basic unit testing for facts --- spec/unit/facter/systemd_spec.rb | 41 ++++++++++++++++++++++++++++++++ spec/unit/facter/systemd_version_spec.rb | 31 ++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 spec/unit/facter/systemd_spec.rb create mode 100644 spec/unit/facter/systemd_version_spec.rb (limited to 'spec') diff --git a/spec/unit/facter/systemd_spec.rb b/spec/unit/facter/systemd_spec.rb new file mode 100644 index 0000000..a7b6241 --- /dev/null +++ b/spec/unit/facter/systemd_spec.rb @@ -0,0 +1,41 @@ +require "spec_helper" + +describe Facter::Util::Fact do + before { + Facter.clear + } + + describe "systemd" do + context 'returns true when systemd present' do + before do + Facter.fact(:kernel).stubs(:value).returns(:linux) + end + let(:facts) { {:kernel => :linux} } + it do + Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').returns('systemd') + expect(Facter.value(:systemd)).to eq(true) + end + end + context 'returns false when systemd not present' do + before do + Facter.fact(:kernel).stubs(:value).returns(:linux) + end + let(:facts) { {:kernel => :linux} } + it do + Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').returns('init') + expect(Facter.value(:systemd)).to eq(false) + end + end + + context 'returns nil when kernel is not linux' do + before do + Facter.fact(:kernel).stubs(:value).returns(:windows) + end + let(:facts) { {:kernel => :windows} } + it do + Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').never + expect(Facter.value(:systemd)).to be_nil + end + end + end +end diff --git a/spec/unit/facter/systemd_version_spec.rb b/spec/unit/facter/systemd_version_spec.rb new file mode 100644 index 0000000..5007dc6 --- /dev/null +++ b/spec/unit/facter/systemd_version_spec.rb @@ -0,0 +1,31 @@ +require "spec_helper" + +describe Facter::Util::Fact do + before { + Facter.clear + } + + describe "systemd_version" do + context 'returns version when systemd fact present' do + before do + Facter.fact(:systemd).stubs(:value).returns(true) + end + let(:facts) { {:systemd => true} } + it do + Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").returns('229') + expect(Facter.value(:systemd_version)).to eq('229') + end + end + context 'returns nil when systemd fact not present' do + before do + Facter.fact(:systemd).stubs(:value).returns(false) + end + let(:facts) { {:systemd => false } } + it do + Facter::Util::Resolution.stubs(:exec) + Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").never + expect(Facter.value(:systemd_version)).to eq(nil) + end + end + end +end -- cgit v1.2.3 From a0321364514f52a4c110a15afbdad5109d768fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= Date: Thu, 5 Jan 2017 13:12:05 +0100 Subject: Modulesync: remove Puppet 3 tests --- spec/acceptance/nodesets/centos-7.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec') diff --git a/spec/acceptance/nodesets/centos-7.yml b/spec/acceptance/nodesets/centos-7.yml index bc57539..a8fa468 100644 --- a/spec/acceptance/nodesets/centos-7.yml +++ b/spec/acceptance/nodesets/centos-7.yml @@ -9,7 +9,7 @@ HOSTS: docker_preserve_image: true docker_cmd: '["/usr/sbin/init"]' docker_image_commands: - - 'yum install -y crontabs tar wget' + - 'yum install -y crontabs tar wget iproute' CONFIG: type: aio log_level: debug -- cgit v1.2.3