Removal of compat types and validate_legacy calls
[puppet-modules/puppetlabs-apt.git] / manifests / key.pp
1 # == Define: apt::key
2 define apt::key (
3     String $id                           = $title,
4     Enum['present', 'absent'] $ensure    = present,
5     Optional[String] $content            = undef,
6     Optional[String] $source             = undef,
7     String $server                       = $::apt::keyserver,
8     Optional[String] $options            = undef,
9     Optional[Variant[String, Hash]] $key = undef,
10     Optional[String] $key_content        = undef,
11     Optional[String] $key_source         = undef,
12     Optional[String] $key_server         = undef,
13     Optional[String] $key_options        = undef,
14     ) {
15
16   if $key != undef {
17     deprecation('apt $key', '$key is deprecated and will be removed in the next major release. Please use $id instead.')
18     $_id = $key
19   } else {
20     $_id = $id
21   }
22
23   if $key_content != undef {
24     deprecation('apt $key_content', '$key_content is deprecated and will be removed in the next major release. Please use $content instead.')
25     $_content = $key_content
26   } else {
27     $_content = $content
28   }
29
30   if $key_source != undef {
31     deprecation('apt $key_source', '$key_source is deprecated and will be removed in the next major release. Please use $source instead.')
32     $_source = $key_source
33   } else {
34     $_source = $source
35   }
36
37   if $key_server != undef {
38     deprecation('apt $key_server', '$key_server is deprecated and will be removed in the next major release. Please use $server instead.')
39     $_server = $key_server
40   } else {
41     $_server = $server
42   }
43
44   if $key_options != undef {
45     deprecation('apt $key_options', '$key_options is deprecated and will be removed in the next major release. Please use $options instead.')
46     $_options = $key_options
47   } else {
48     $_options = $options
49   }
50
51   validate_re($_id, ['\A(0x)?[0-9a-fA-F]{8}\Z', '\A(0x)?[0-9a-fA-F]{16}\Z', '\A(0x)?[0-9a-fA-F]{40}\Z'])
52
53   if $_source {
54     validate_re($_source, ['\Ahttps?:\/\/', '\Aftp:\/\/', '\A\/\w+'])
55   }
56
57   if $_server {
58     validate_re($_server,['\A((hkp|http|https):\/\/)?([a-z\d])([a-z\d-]{0,61}\.)+[a-z\d]+(:\d{2,5})?$'])
59   }
60
61   case $ensure {
62     present: {
63       if defined(Anchor["apt_key ${_id} absent"]){
64         fail("key with id ${_id} already ensured as absent")
65       }
66
67       if !defined(Anchor["apt_key ${_id} present"]) {
68         apt_key { $title:
69           ensure  => $ensure,
70           id      => $_id,
71           source  => $_source,
72           content => $_content,
73           server  => $_server,
74           options => $_options,
75         } -> anchor { "apt_key ${_id} present": }
76       }
77     }
78
79     absent: {
80       if defined(Anchor["apt_key ${_id} present"]){
81         fail("key with id ${_id} already ensured as present")
82       }
83
84       if !defined(Anchor["apt_key ${_id} absent"]){
85         apt_key { $title:
86           ensure  => $ensure,
87           id      => $_id,
88           source  => $_source,
89           content => $_content,
90           server  => $_server,
91           options => $_options,
92         } -> anchor { "apt_key ${_id} absent": }
93       }
94     }
95
96     default: {
97       fail "Invalid 'ensure' value '${ensure}' for apt::key"
98     }
99   }
100 }