Skip to content

Commit 706dd11

Browse files
authored
Merge pull request #832 from aboks/apt-task
Add support for dist-upgrade & autoremove action
2 parents 11a73f9 + d91bb71 commit 706dd11

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

spec/acceptance/init_task_spec.rb

+21-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
# run a test task
22
require 'spec_helper_acceptance'
33

4-
describe 'apt tasks' do
5-
describe 'update and upgrade', if: pe_install? && puppet_version =~ %r{(5\.\d\.\d)} && fact_on(master, 'osfamily') == 'Debian' do
6-
it 'execute arbitary sql' do
4+
describe 'apt tasks', if: pe_install? && puppet_version =~ %r{(5\.\d\.\d)} && fact_on(master, 'osfamily') == 'Debian' do
5+
describe 'update' do
6+
it 'updates package lists' do
77
result = run_task(task_name: 'apt', params: 'action=update')
88
expect_multiple_regexes(result: result, regexes: [%r{Reading package lists}, %r{Job completed. 1/1 nodes succeeded}])
99
end
1010
end
11+
describe 'upgrade' do
12+
it 'upgrades packages' do
13+
result = run_task(task_name: 'apt', params: 'action=upgrade')
14+
expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
15+
end
16+
end
17+
describe 'dist-upgrade' do
18+
it 'dist-upgrades packages' do
19+
result = run_task(task_name: 'apt', params: 'action=dist-upgrade')
20+
expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
21+
end
22+
end
23+
describe 'autoremove' do
24+
it 'autoremoves obsolete packages' do
25+
result = run_task(task_name: 'apt', params: 'action=autoremove')
26+
expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
27+
end
28+
end
1129
end

tasks/init.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"parameters": {
55
"action": {
66
"description": "Action to perform ",
7-
"type": "Enum[update, upgrade]"
7+
"type": "Enum[update, upgrade, dist-upgrade, autoremove]"
88
}
99
}
1010
}

tasks/init.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
def apt_get(action)
77
cmd = ['apt-get', action]
8-
cmd << '-y' if action == 'upgrade'
8+
cmd << '-y' if ['upgrade', 'dist-upgrade', 'autoremove'].include?(action)
99
stdout, stderr, status = Open3.capture3(*cmd)
1010
raise Puppet::Error, stderr if status != 0 # rubocop:disable GetText/DecorateFunctionMessage
1111
{ status: stdout.strip }

0 commit comments

Comments
 (0)