Puppet Class: cups

Inherits:
cups::params
Defined in:
manifests/init.pp

Overview

Class: cups

String

confdir

String

default_queue

String

hiera

String/Array

packages

String

papersize

String/Array

services

Hash

resources

boolean

webinterface

Parameters:

  • confdir (Any) (defaults to: $::cups::params::confdir)
  • default_queue (Any) (defaults to: undef)
  • hiera (Any) (defaults to: undef)
  • packages (Any) (defaults to: $::cups::params::packages)
  • papersize (Any) (defaults to: undef)
  • purge_unmanaged_queues (Any) (defaults to: false)
  • services (Any) (defaults to: $::cups::params::services)
  • resources (Any) (defaults to: undef)
  • webinterface (Any) (defaults to: undef)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'manifests/init.pp', line 12

class cups (
  $confdir = $::cups::params::confdir,
  $default_queue = undef,
  $hiera = undef,
  $packages = $::cups::params::packages,
  $papersize = undef,
  $purge_unmanaged_queues = false,
  $services = $::cups::params::services,
  $resources = undef,
  $webinterface = undef,
) inherits cups::params {

  if ($packages == undef) {
    fail('Please provide the name(s) of the CUPS package(s) for your operating system to Class[::cups] or set `packages => []` to disable CUPS package management.')
  } else {
    validate_array($packages)

    package { $packages :
      ensure  => 'present',
    }
  }

  if ($services == undef) {
    fail('Please provide the name(s) of the CUPS service(s) for your operating system to Class[::cups] or set `services => []` to disable CUPS service management.')
  } else {
    validate_array($services)

    service { $services :
      ensure  => 'running',
      enable  => true,
      require => Package[$packages],
    }
  }

  unless ($confdir == undef) {
    validate_absolute_path($confdir)

    file { 'lpoptions' :
      ensure  => 'absent',
      path    => "${confdir}/lpoptions",
      require => Service[$services],
    }
  }

  unless ($hiera == undef) {
    validate_string($hiera)

    case $hiera {
      'priority': { create_resources('cups_queue', hiera('cups_queue')) }
      'merge': { create_resources('cups_queue', hiera_hash('cups_queue')) }
      default: { fail("Unsupported value 'hiera => ${hiera}'.") }
    }
  }

  unless ($resources == undef) {
    validate_hash($resources)

    create_resources('cups_queue', $resources)
  }

  unless ($default_queue == undef) {
    class { '::cups::default_queue' :
      queue   => $default_queue,
      require => File['lpoptions'],
    }
  }

  unless ($papersize == undef) {
    class { '::cups::papersize':
      papersize => $papersize,
      require   => Package[$packages],
      notify    => Service[$services],
    }
  }

  unless ($webinterface == undef) {
    validate_bool($webinterface)

    cups::ctl { 'WebInterface' :
      ensure  => bool2str($webinterface, 'Yes', 'No'),
      require => Service[$services],
    }
  }

  validate_bool($purge_unmanaged_queues)
  resources { 'cups_queue':
    purge => $purge_unmanaged_queues,
  }
}