diff --git a/CHANGELOG.md b/CHANGELOG.md index 97abe3c3..19f89286 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 2019-06-16 - Release 2.2.2 + +Published at [Puppet Forge](https://forge.puppet.com/leoarnold/cups/2.2.2) +and [GitHub](https://github.com/leoarnold/puppet-cups/releases/tag/2.2.2). + +### Summary + +This release drops the use of encryption while talking to localhost via IPP. +On localhost, HTTPS technically isn't necessary and since some users experienced +CUPS SSL errors, we stop using it. + ## 2019-06-13 - Release 2.2.1 Published at [Puppet Forge](https://forge.puppet.com/leoarnold/cups/2.2.1) diff --git a/lib/puppet/provider/cups_queue/cups.rb b/lib/puppet/provider/cups_queue/cups.rb index 27d21d47..e525ea8e 100644 --- a/lib/puppet/provider/cups_queue/cups.rb +++ b/lib/puppet/provider/cups_queue/cups.rb @@ -56,7 +56,7 @@ def create_class destroy resource.should(:members).each do |member| - lpadmin('-E', '-p', member, '-c', name) + lpadmin('-p', member, '-c', name) end run_property_setter(:access, :description, :location, :options, :shared, @@ -68,7 +68,7 @@ def create_printer destroy # Create a minimal raw queue first, then adapt it - lpadmin('-E', '-p', name, '-v', 'file:///dev/null') + lpadmin('-p', name, '-v', 'file:///dev/null') run_parameter_setter(:model, :ppd) @@ -99,7 +99,7 @@ def run_attribute_setter(attribute, target_value) private :run_attribute_setter def destroy - lpadmin('-E', '-x', name) if queue_exists? + lpadmin('-x', name) if queue_exists? end ### Property getters and setters @@ -114,9 +114,9 @@ def accepting def accepting=(value) if value == :true - cupsaccept('-E', name) + cupsaccept(name) else - cupsreject('-E', name) + cupsreject(name) end end @@ -127,7 +127,7 @@ def access end def access=(value) - lpadmin('-E', '-p', name, '-u', value['policy'] + ':' + value['users'].join(',')) + lpadmin('-p', name, '-u', value['policy'] + ':' + value['users'].join(',')) end def description @@ -135,7 +135,7 @@ def description end def description=(value) - lpadmin('-E', '-p', name, '-D', value) + lpadmin('-p', name, '-D', value) end def enabled @@ -144,9 +144,9 @@ def enabled def enabled=(value) if value == :true - while_root_allowed { cupsenable('-E', name) } + while_root_allowed { cupsenable(name) } else - cupsdisable('-E', name) + cupsdisable(name) end end @@ -156,9 +156,9 @@ def held def held=(value) if value == :true - cupsdisable('-E', '--hold', name) + cupsdisable('--hold', name) else - cupsenable('-E', '--release', name) + cupsenable('--release', name) end end @@ -167,7 +167,7 @@ def location end def location=(value) - lpadmin('-E', '-p', name, '-L', value) + lpadmin('-p', name, '-L', value) end def make_and_model @@ -180,7 +180,7 @@ def make_and_model=(_value) end def model=(value) - lpadmin('-E', '-p', name, '-m', value) + lpadmin('-p', name, '-m', value) end def members @@ -198,12 +198,12 @@ def options def options=(options_should) options_should.each do |key, value| - lpadmin('-E', '-p', name, '-o', "#{key}=#{value}") + lpadmin('-p', name, '-o', "#{key}=#{value}") end end def ppd=(value) - lpadmin('-E', '-p', name, '-P', value) + lpadmin('-p', name, '-P', value) end def shared @@ -211,7 +211,7 @@ def shared end def shared=(value) - lpadmin('-E', '-p', name, '-o', "printer-is-shared=#{value}") + lpadmin('-p', name, '-o', "printer-is-shared=#{value}") end def uri @@ -219,7 +219,7 @@ def uri end def uri=(value) - lpadmin('-E', '-p', name, '-v', value) + lpadmin('-p', name, '-v', value) end private @@ -310,7 +310,7 @@ def query_native_option(option) def vendor_options_is answer = {} - lpoptions('-E', '-p', name, '-l').each_line do |line| + lpoptions('-p', name, '-l').each_line do |line| result = %r{\A(?\w+)/(.*):(.*)\*(?\w+)}.match(line) answer[result[:key]] = result[:value] if result end diff --git a/manifests/queues/default.pp b/manifests/queues/default.pp index 7c628469..df170b7c 100644 --- a/manifests/queues/default.pp +++ b/manifests/queues/default.pp @@ -18,7 +18,7 @@ if ($::cups::default_queue) { exec { 'cups::queues::default': - command => "lpadmin -E -d '${::cups::default_queue}'", + command => "lpadmin -d '${::cups::default_queue}'", unless => "lpstat -d | grep -w '${::cups::default_queue}'", path => ['/usr/sbin/', '/usr/bin/', '/sbin/', '/bin/'], require => Cups_queue[$::cups::default_queue] diff --git a/metadata.json b/metadata.json index e1415bf8..1a5f0689 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "leoarnold-cups", - "version": "2.2.1", + "version": "2.2.2", "author": "Leo Arnold", "summary": "Puppet module for the Common Unix Printing System (CUPS)", "license": "MIT", diff --git a/spec/acceptance/puppet/cups_issue_4781_spec.rb b/spec/acceptance/puppet/cups_issue_4781_spec.rb index a5b0ca8e..15698452 100644 --- a/spec/acceptance/puppet/cups_issue_4781_spec.rb +++ b/spec/acceptance/puppet/cups_issue_4781_spec.rb @@ -126,8 +126,8 @@ context "when the queue is present, disabled and restricted to user 'sshd'" do context 'without specifying an ACL' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:manifest) do @@ -150,8 +150,8 @@ context 'when admitting everybody' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'allow', users => ['all'] }" } @@ -167,8 +167,8 @@ context 'when admitting just one specific user' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'allow', users => ['sshd'] }" } @@ -184,8 +184,8 @@ context 'when denying several users' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'deny', users => ['root', 'sshd'] }" } @@ -201,8 +201,8 @@ context 'when denying just one specific user' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'deny', users => ['sshd'] }" } @@ -218,8 +218,8 @@ context 'when denying several users' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'deny', users => ['root', 'sshd'] }" } @@ -235,8 +235,8 @@ context 'when denying everybody' do before(:all) do - shell('lpadmin -E -p Office -v /dev/null -u allow:sshd') - shell('cupsdisable -E Office') + shell('lpadmin -p Office -v /dev/null -u allow:sshd') + shell('cupsdisable Office') end let(:access) { "{ 'policy' => 'deny', users => ['all'] }" } diff --git a/spec/acceptance/puppet/cups_queue_properties_spec.rb b/spec/acceptance/puppet/cups_queue_properties_spec.rb index 6f545334..b53bd67e 100644 --- a/spec/acceptance/puppet/cups_queue_properties_spec.rb +++ b/spec/acceptance/puppet/cups_queue_properties_spec.rb @@ -18,7 +18,7 @@ context 'when changing only the property' do describe 'access' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)} -u allow:all") + shell("lpadmin -p #{Shellwords.escape(name)} -u allow:all") end context 'with policy => allow' do @@ -134,7 +134,7 @@ describe 'accepting' do before(:all) do - shell("cupsreject -E #{Shellwords.escape(name)}") + shell("cupsreject #{Shellwords.escape(name)}") end context 'when set to true' do @@ -186,7 +186,7 @@ describe 'description' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)} -D 'color'") + shell("lpadmin -p #{Shellwords.escape(name)} -D 'color'") end let(:manifest) do @@ -213,7 +213,7 @@ describe 'enabled' do before(:all) do - shell("cupsdisable -E #{Shellwords.escape(name)}") + shell("cupsdisable #{Shellwords.escape(name)}") end context 'when set to true' do @@ -265,7 +265,7 @@ describe 'held' do before(:all) do - shell("cupsenable -E --release #{Shellwords.escape(name)}") + shell("cupsenable --release #{Shellwords.escape(name)}") end context 'when set to true' do @@ -317,7 +317,7 @@ describe 'location' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)} -L 'Room 451'") + shell("lpadmin -p #{Shellwords.escape(name)} -L 'Room 451'") end let(:manifest) do @@ -345,7 +345,7 @@ describe 'options' do context 'when using native options' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)}" \ + shell("lpadmin -p #{Shellwords.escape(name)}" \ ' -o auth-info-required=negotiate' \ ' -o job-sheets-default=banner,banner' \ ' -o printer-error-policy=retry-current-job') @@ -375,7 +375,7 @@ context 'when using vendor options' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)} -o Duplex=None") + shell("lpadmin -p #{Shellwords.escape(name)} -o Duplex=None") end let(:manifest) do @@ -407,7 +407,7 @@ describe 'shared' do before(:all) do - shell("lpadmin -E -p #{Shellwords.escape(name)} -o printer-is-shared=false") + shell("lpadmin -p #{Shellwords.escape(name)} -o printer-is-shared=false") end context 'when set to true' do diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index 15068d27..c060ed46 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -176,7 +176,7 @@ context "when the catalog contains the corresponding 'cups_queue' resource" do let(:pre_condition) { "cups_queue { 'Office': ensure => 'printer' }" } - it { is_expected.to contain_exec('cups::queues::default').with(command: "lpadmin -E -d 'Office'") } + it { is_expected.to contain_exec('cups::queues::default').with(command: "lpadmin -d 'Office'") } it { is_expected.to contain_exec('cups::queues::default').with(unless: "lpstat -d | grep -w 'Office'") } diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index 207f68cd..838b702c 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -29,7 +29,7 @@ def ensure_cups_is_running def add_printers(*names) names.each do |name| - shell("lpadmin -E -p #{Shellwords.escape(name)} -m drv:///sample.drv/generic.ppd -o printer-is-shared=false") + shell("lpadmin -p #{Shellwords.escape(name)} -m drv:///sample.drv/generic.ppd -o printer-is-shared=false") end end @@ -39,16 +39,16 @@ def add_printers_to_classes(class_members) members = class_members[classname] members = %w[Dummy] if members.empty? members.each do |printername| - shell("lpadmin -E -p #{Shellwords.escape(printername)} -c #{Shellwords.escape(classname)}") + shell("lpadmin -p #{Shellwords.escape(printername)} -c #{Shellwords.escape(classname)}") end - shell("lpadmin -E -p #{Shellwords.escape(classname)} -o printer-is-shared=false") + shell("lpadmin -p #{Shellwords.escape(classname)} -o printer-is-shared=false") end remove_queues('Dummy') end def remove_queues(*names) names.flatten.each do |name| - shell("lpadmin -E -x #{Shellwords.escape(name)}", acceptable_exit_codes: [0, 1]) + shell("lpadmin -x #{Shellwords.escape(name)}", acceptable_exit_codes: [0, 1]) end end diff --git a/spec/unit/puppet/provider/cups_queue/cups_spec.rb b/spec/unit/puppet/provider/cups_queue/cups_spec.rb index 544d61c7..0f6e3ba0 100644 --- a/spec/unit/puppet/provider/cups_queue/cups_spec.rb +++ b/spec/unit/puppet/provider/cups_queue/cups_spec.rb @@ -108,13 +108,13 @@ it 'adds the first printer to the class' do provider.create_class - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-c', 'GroundFloor') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-c', 'GroundFloor') end it 'adds the second printer to the class' do provider.create_class - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Warehouse', '-c', 'GroundFloor') + expect(provider).to have_received(:lpadmin).with('-p', 'Warehouse', '-c', 'GroundFloor') end end end @@ -126,7 +126,7 @@ provider.destroy - expect(provider).to have_received(:lpadmin).with('-E', '-x', 'GroundFloor') + expect(provider).to have_received(:lpadmin).with('-x', 'GroundFloor') end end end @@ -148,13 +148,13 @@ it 'installs a print queue' do provider.create_printer - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-v', 'file:///dev/null') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-v', 'file:///dev/null') end it 'sets the driver' do provider.create_printer - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', switch[method], manifest[method]) if method + expect(provider).to have_received(:lpadmin).with('-p', 'Office', switch[method], manifest[method]) if method end it 'checks for correct make and model' do @@ -171,7 +171,7 @@ provider.destroy - expect(provider).to have_received(:lpadmin).with('-E', '-x', 'Office') + expect(provider).to have_received(:lpadmin).with('-x', 'Office') end end end @@ -227,7 +227,7 @@ provider.accepting = :true - expect(provider).to have_received(:cupsaccept).with('-E', 'Office') + expect(provider).to have_received(:cupsaccept).with('Office') end end @@ -237,7 +237,7 @@ provider.accepting = :false - expect(provider).to have_received(:cupsreject).with('-E', 'Office') + expect(provider).to have_received(:cupsreject).with('Office') end end end @@ -278,7 +278,7 @@ provider.access = { 'policy' => 'allow', 'users' => ['@council', 'lumbergh', 'nina'] } - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-u', 'allow:@council,lumbergh,nina') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-u', 'allow:@council,lumbergh,nina') end end @@ -288,7 +288,7 @@ provider.access = { 'policy' => 'deny', 'users' => ['@council', 'lumbergh', 'nina'] } - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-u', 'deny:@council,lumbergh,nina') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-u', 'deny:@council,lumbergh,nina') end end end @@ -307,7 +307,7 @@ provider.description = 'color / duplex / stapling' - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-D', 'color / duplex / stapling') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-D', 'color / duplex / stapling') end end @@ -349,7 +349,7 @@ provider.enabled = :true - expect(provider).to have_received(:cupsenable).with('-E', 'Office') + expect(provider).to have_received(:cupsenable).with('Office') end end @@ -359,7 +359,7 @@ provider.enabled = :false - expect(provider).to have_received(:cupsdisable).with('-E', 'Office') + expect(provider).to have_received(:cupsdisable).with('Office') end end end @@ -389,7 +389,7 @@ provider.held = :true - expect(provider).to have_received(:cupsdisable).with('-E', '--hold', 'Office') + expect(provider).to have_received(:cupsdisable).with('--hold', 'Office') end end @@ -399,7 +399,7 @@ provider.held = :false - expect(provider).to have_received(:cupsenable).with('-E', '--release', 'Office') + expect(provider).to have_received(:cupsenable).with('--release', 'Office') end end end @@ -418,7 +418,7 @@ provider.location = 'Room 101' - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-L', 'Room 101') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-L', 'Room 101') end end @@ -522,7 +522,7 @@ provider.options = options - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-o', 'PageSize=A4') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-o', 'PageSize=A4') end it 'sets the duplex mode' do @@ -530,7 +530,7 @@ provider.options = options - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-o', 'Duplex=None') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-o', 'Duplex=None') end end end @@ -562,7 +562,7 @@ provider.shared = :true - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-o', 'printer-is-shared=true') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-o', 'printer-is-shared=true') end end @@ -583,7 +583,7 @@ provider.uri = 'file:///dev/null' - expect(provider).to have_received(:lpadmin).with('-E', '-p', 'Office', '-v', 'file:///dev/null') + expect(provider).to have_received(:lpadmin).with('-p', 'Office', '-v', 'file:///dev/null') end end end @@ -707,7 +707,7 @@ it 'returns an empty hash' do input = "lpoptions: Unable to get PPD file for Raw: Not Found\n" - allow(provider).to receive(:lpoptions).with('-E', '-p', 'Office', '-l').and_return(input) + allow(provider).to receive(:lpoptions).with('-p', 'Office', '-l').and_return(input) expect(provider.send(:vendor_options_is)).to eq({}) end @@ -733,7 +733,7 @@ end it 'returns a hash of vendor options and their current values' do - allow(provider).to receive(:lpoptions).with('-E', '-p', 'Office', '-l').and_return(input) + allow(provider).to receive(:lpoptions).with('-p', 'Office', '-l').and_return(input) expect(provider.send(:vendor_options_is)).to eq(expected) end