Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 0 additions & 40 deletions lib/puppet/provider/default_printer/cups.rb

This file was deleted.

13 changes: 0 additions & 13 deletions lib/puppet/type/default_printer.rb

This file was deleted.

20 changes: 10 additions & 10 deletions manifests/config.pp
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
class cups::config (
) {
if $cups::cups_lpd_enable {
file { '/etc/xinetd.d/cups-lpd':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => $cups::config_file,
}
# Configures various aspects of CUPS
class cups::config {
if $::cups::cups_lpd_enable {
file { '/etc/xinetd.d/cups-lpd':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => $::cups::config_file,
}
}
}
8 changes: 4 additions & 4 deletions manifests/devel.pp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# Installs the development packages
class cups::devel {
package { $cups::package_devel:
ensure => $cups::ensure,
}
package { $::cups::package_devel:
ensure => $::cups::ensure,
}
}
54 changes: 37 additions & 17 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,26 +1,46 @@
# Manages the Common UNIX Printing System (CUPS)
class cups (
$package_ensure = $cups::params::package_ensure,
$package_name = $cups::params::package_name,

$devel_package_ensure = $cups::params::devel_package_ensure,
$devel_package_name = $cups::params::devel_package_name,

$service_ensure = $cups::params::service_ensure,
$service_enabled = $cups::params::service_enabled,
$service_name = $cups::params::service_name,

$cups_lpd_enable = $cups::params::cups_lpd_enable,
$package_cups_lpd = $cups::params::package_cups_lpd,
$config_file = $cups::params::config_file,
$default_printer = undef,
$package_ensure = $::cups::params::package_ensure,
$package_name = $::cups::params::package_name,
$devel_package_ensure = $::cups::params::devel_package_ensure,
$devel_package_name = $::cups::params::devel_package_name,
$service_ensure = $::cups::params::service_ensure,
$service_enabled = $::cups::params::service_enabled,
$service_name = $::cups::params::service_name,
$cups_lpd_enable = $::cups::params::cups_lpd_enable,
$package_cups_lpd = $::cups::params::package_cups_lpd,
$config_file = $::cups::params::config_file,
) inherits cups::params {

include '::cups::install'
include '::cups::service'

$printers_default = { ensure => present }
create_resources('printer', hiera_hash(cups::printers), $printers_default)
$printer_defaults_def = { ensure => present }
$printer_defaults = hiera_hash('cups::printer_defaults', {})
create_resources('printer_defaults', $printer_defaults, $printer_defaults_def)

$printers_def = {
ensure => present,
before => Exec['default_printer'],
require => Class['::cups::service'],
}
$printers = hiera_hash('cups::printers', {})
create_resources('printer', $printers, $printers_def)

if $cups_lpd_enable {
include '::cups::config'
}

if $default_printer {
validate_string($default_printer)
validate_re($default_printer, '^[^[:blank:]/#]+$')

if $cups::cups_lpd_enable {
include '::cups::config'
exec { 'default_printer':
command => "lpoptions -d ${default_printer}",
unless => "grep -q \'^Default ${default_printer}$\' /etc/cups/lpoptions",
path => ['/usr/local/bin', '/usr/bin', '/bin'],
require => Class['::cups::service'],
}
}
}
24 changes: 12 additions & 12 deletions manifests/install.pp
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
class cups::install (
) {
package { 'cups':
name => $cups::package_name,
ensure => $cups::package_ensure,
}

if $cups::cups_lpd_enable {
package { 'cups-lpd':
name => $cups::package_cups_lpd,
ensure => $cups::package_ensure,
}
# Installs CUPS and related components
class cups::install {
package { 'cups':
ensure => $::cups::package_ensure,
name => $::cups::package_name,
}

if $::cups::cups_lpd_enable {
package { 'cups-lpd':
ensure => $::cups::package_ensure,
name => $::cups::package_cups_lpd,
}
}
}
21 changes: 11 additions & 10 deletions manifests/params.pp
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
# Various default parmeters
class cups::params {
$package_ensure = present
$package_name = 'cups'
$package_ensure = present
$package_name = 'cups'

$devel_package_ensure = undef
$devel_package_name = "${package_name}-devel"
$devel_package_name = "${package_name}-devel"

$service_ensure = 'running'
$service_enabled = true
$service_name = 'cups'
$service_ensure = 'running'
$service_enabled = true
$service_name = 'cups'

$cups_lpd_enable = false
$cups_lpd_ensure = 'running'
$package_cups_lpd = 'cups-lpd'
$config_file = 'puppet:///modules/cups/cups-lpd'
$cups_lpd_enable = false
$cups_lpd_ensure = 'running'
$package_cups_lpd = 'cups-lpd'
$config_file = 'puppet:///modules/cups/cups-lpd'
}
33 changes: 17 additions & 16 deletions manifests/service.pp
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
class cups::service () {
# Manages the CUPS service
class cups::service {

service { 'cups':
ensure => $cups::service_ensure,
enable => $cups::service_enabled,
hasstatus => true,
hasrestart => true,
require => Class['cups::install'],
}
service { 'cups':
ensure => $::cups::service_ensure,
enable => $::cups::service_enabled,
hasstatus => true,
hasrestart => true,
require => Class['cups::install'],
}

if $cups::cups_lpd_enable {
service { 'xinetd':
ensure => $cups::cups_lpd_ensure,
enable => $cups::cups_lpd_enable,
hasstatus => true,
hasrestart => true,
subscribe => File['/etc/xinetd.d/cups-lpd'],
}
if $::cups::cups_lpd_enable {
service { 'xinetd':
ensure => $::cups::cups_lpd_ensure,
enable => $::cups::cups_lpd_enable,
hasstatus => true,
hasrestart => true,
subscribe => File['/etc/xinetd.d/cups-lpd'],
}
}
}
4 changes: 4 additions & 0 deletions metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
"issues_url": "https://github.com/mosen/puppet-cups/issues",
"tags": ["cups", "printer"],
"dependencies": [
{
"name": "puppetlabs/stdlib",
"version_requirement": ">= 2.0.0"
},
],
"operatingsystem_support": [
{
Expand Down
6 changes: 3 additions & 3 deletions spec/acceptance/default_printer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
describe 'setting the default printer' do
let(:manifest) {
<<-EOS
default_printer { 'default_printer_fixture': ensure => present, }
class { 'cups': default_printer => 'default_printer_fixture' }
EOS
}

Expand All @@ -26,8 +26,8 @@
end

it 'should output the name of the fixture when calling puppet resource' do
expect(shell("puppet resource default_printer").stdout).to include('default_printer_fixture')
expect(shell('lpstat -d').stdout).to include('default_printer_fixture')
end
end

end
end