Merge pull request #333 from wilman0/master
[puppet-modules/puppetlabs-apt.git] / spec / acceptance / apt_key_spec.rb
1 require 'spec_helper_acceptance'
2
3 describe 'apt::key', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
4   context 'apt::key' do
5     it 'should work with no errors' do
6       pp = <<-EOS
7       include '::apt'
8       apt::key { 'puppetlabs':
9         key        => '4BD6EC30',
10         key_server => 'pgp.mit.edu',
11       }
12
13       apt::key { 'jenkins':
14         key        => 'D50582E6',
15         key_source => 'http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key',
16       }
17       EOS
18
19       shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
20       shell('apt-key del D50582E6', :acceptable_exit_codes => [0,1,2])
21       apply_manifest(pp, :catch_failures => true)
22     end
23
24     describe 'keys should exist' do
25       it 'finds puppetlabs key' do
26         shell('apt-key list | grep 4BD6EC30')
27       end
28       it 'finds jenkins key' do
29         shell('apt-key list | grep D50582E6')
30       end
31     end
32   end
33   context 'ensure' do
34     context 'absent' do
35       it 'should work with no errors' do
36         pp = <<-EOS
37         include '::apt'
38         apt::key { 'puppetlabs':
39           ensure     => absent,
40           key        => '4BD6EC30',
41           key_server => 'pgp.mit.edu',
42         }
43
44         apt::key { 'jenkins':
45           ensure     => absent,
46           key        => 'D50582E6',
47           key_source => 'http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key',
48         }
49         EOS
50
51         apply_manifest(pp, :catch_failures => true)
52       end
53
54       describe 'keys shouldnt exist' do
55         it 'fails' do
56           shell('apt-key list | grep 4BD6EC30', :acceptable_exit_codes => [1])
57         end
58         it 'fails' do
59           shell('apt-key list | grep D50582E6', :acceptable_exit_codes => [1])
60         end
61       end
62     end
63   end
64
65   context 'reset' do
66     it 'clean up keys' do
67       shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
68       shell('apt-key del D50582E6', :acceptable_exit_codes => [0,1,2])
69     end
70   end
71
72   context 'key options' do
73     context 'key_content' do
74
75       it 'should work with no errors' do
76         pp = <<-EOS
77         include '::apt'
78         apt::key { 'puppetlabs':
79           key         => '4BD6EC30',
80           key_content => '-----BEGIN PGP PUBLIC KEY BLOCK-----
81           Version: GnuPG v1.4.12 (GNU/Linux)
82           Comment: GPGTools - http://gpgtools.org
83
84           mQINBEw3u0ABEAC1+aJQpU59fwZ4mxFjqNCgfZgDhONDSYQFMRnYC1dzBpJHzI6b
85           fUBQeaZ8rh6N4kZ+wq1eL86YDXkCt4sCvNTP0eF2XaOLbmxtV9bdpTIBep9bQiKg
86           5iZaz+brUZlFk/MyJ0Yz//VQ68N1uvXccmD6uxQsVO+gx7rnarg/BGuCNaVtGwy+
87             S98g8Begwxs9JmGa8pMCcSxtC7fAfAEZ02cYyrw5KfBvFI3cHDdBqrEJQKwKeLKY
88           GHK3+H1TM4ZMxPsLuR/XKCbvTyl+OCPxU2OxPjufAxLlr8BWUzgJv6ztPe9imqpH
89           Ppp3KuLFNorjPqWY5jSgKl94W/CO2x591e++a1PhwUn7iVUwVVe+mOEWnK5+Fd0v
90           VMQebYCXS+3dNf6gxSvhz8etpw20T9Ytg4EdhLvCJRV/pYlqhcq+E9le1jFOHOc0
91           Nc5FQweUtHGaNVyn8S1hvnvWJBMxpXq+Bezfk3X8PhPT/l9O2lLFOOO08jo0OYiI
92           wrjhMQQOOSZOb3vBRvBZNnnxPrcdjUUm/9cVB8VcgI5KFhG7hmMCwH70tpUWcZCN
93           NlI1wj/PJ7Tlxjy44f1o4CQ5FxuozkiITJvh9CTg+k3wEmiaGz65w9jRl9ny2gEl
94           f4CR5+ba+w2dpuDeMwiHJIs5JsGyJjmA5/0xytB7QvgMs2q25vWhygsmUQARAQAB
95           tEdQdXBwZXQgTGFicyBSZWxlYXNlIEtleSAoUHVwcGV0IExhYnMgUmVsZWFzZSBL
96           ZXkpIDxpbmZvQHB1cHBldGxhYnMuY29tPokCPgQTAQIAKAUCTDe7QAIbAwUJA8Jn
97           AAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQEFS3okvW7DAZaw//aLmE/eob
98           pXpIUVyCUWQxEvPtM/h/SAJsG3KoHN9u216ews+UHsL/7F91ceVXQQdD2e8CtYWF
99           eLNM0RSM9i/KM60g4CvIQlmNqdqhi1HsgGqInZ72/XLAXun0gabfC36rLww2kel+
100             aMpRf58SrSuskY321NnMEJl4OsHV2hfNtAIgw2e/zm9RhoMpGKxoHZCvFhnP7u2M
101           2wMq7iNDDWb6dVsLpzdlVf242zCbubPCxxQXOpA56rzkUPuJ85mdVw4i19oPIFIZ
102           VL5owit1SxCOxBg4b8oaMS36hEl3qtZG834rtLfcqAmqjhx6aJuJLOAYN84QjDEU
103           3NI5IfNRMvluIeTcD4Dt5FCYahN045tW1Rc6s5GAR8RW45GYwQDzG+kkkeeGxwEh
104           qCW7nOHuwZIoVJufNhd28UFn83KGJHCQt4NBBr3K5TcY6bDQEIrpSplWSDBbd3p1
105           IaoZY1WSDdP9OTVOSbsz0JiglWmUWGWCdd/CMSW/D7/3VUOJOYRDwptvtSYcjJc8
106           1UV+1zB+rt5La/OWe4UOORD+jU1ATijQEaFYxBbqBBkFboAEXq9btRQyegqk+eVp
107           HhzacP5NYFTMThvHuTapNytcCso5au/cMywqCgY1DfcMJyjocu4bCtrAd6w4kGKN
108           MUdwNDYQulHZDI+UjJInhramyngdzZLjdeGJARwEEAECAAYFAkw3wEYACgkQIVr+
109             UOQUcDKvEwgAoBuOPnPioBwYp8oHVPTo/69cJn1225kfraUYGebCcrRwuoKd8Iyh
110           R165nXYJmD8yrAFBk8ScUVKsQ/pSnqNrBCrlzQD6NQvuIWVFegIdjdasrWX6Szj+
111             N1OllbzIJbkE5eo0WjCMEKJVI/GTY2AnTWUAm36PLQC5HnSATykqwxeZDsJ/s8Rc
112           kd7+QN5sBVytG3qb45Q7jLJpLcJO6KYH4rz9ZgN7LzyyGbu9DypPrulADG9OrL7e
113           lUnsGDG4E1M8Pkgk9Xv9MRKao1KjYLD5zxOoVtdeoKEQdnM+lWMJin1XvoqJY7FT
114           DJk6o+cVqqHkdKL+sgsscFVQljgCEd0EgIkCHAQQAQgABgUCTPlA6QAKCRBcE9bb
115           kwUuAxdYD/40FxAeNCYByxkr/XRT0gFT+NCjPuqPWCM5tf2NIhSapXtb2+32WbAf
116           DzVfqWjC0G0RnQBve+vcjpY4/rJu4VKIDGIT8CtnKOIyEcXTNFOehi65xO4ypaei
117           BPSb3ip3P0of1iZZDQrNHMW5VcyL1c+PWT/6exXSGsePtO/89tc6mupqZtC05f5Z
118           XG4jswMF0U6Q5s3S0tG7Y+oQhKNFJS4sH4rHe1o5CxKwNRSzqccA0hptKy3MHUZ2
119           +zeHzuRdRWGjb2rUiVxnIvPPBGxF2JHhB4ERhGgbTxRZ6wZbdW06BOE8r7pGrUpU
120           fCw/WRT3gGXJHpGPOzFAvr3Xl7VcDUKTVmIajnpd3SoyD1t2XsvJlSQBOWbViucH
121           dvE4SIKQ77vBLRlZIoXXVb6Wu7Vq+eQs1ybjwGOhnnKjz8llXcMnLzzN86STpjN4
122           qGTXQy/E9+dyUP1sXn3RRwb+ZkdI77m1YY95QRNgG/hqh77IuWWg1MtTSgQnP+F2
123           7mfo0/522hObhdAe73VO3ttEPiriWy7tw3bS9daP2TAVbYyFqkvptkBb1OXRUSzq
124           UuWjBmZ35UlXjKQsGeUHlOiEh84aondF90A7gx0X/ktNIPRrfCGkHJcDu+HVnR7x
125           Kk+F0qb9+/pGLiT3rqeQTr8fYsb4xLHT7uEg1gVFB1g0kd+RQHzV74kCPgQTAQIA
126           KAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAk/x5PoFCQtIMjoACgkQEFS3
127           okvW7DAIKQ/9HvZyf+LHVSkCk92Kb6gckniin3+5ooz67hSr8miGBfK4eocqQ0H7
128           bdtWjAILzR/IBY0xj6OHKhYP2k8TLc7QhQjt0dRpNkX+Iton2AZryV7vUADreYz4
129           4B0bPmhiE+LL46ET5IThLKu/KfihzkEEBa9/t178+dO9zCM2xsXaiDhMOxVE32gX
130           vSZKP3hmvnK/FdylUY3nWtPedr+lHpBLoHGaPH7cjI+MEEugU3oAJ0jpq3V8n4w0
131           jIq2V77wfmbD9byIV7dXcxApzciK+ekwpQNQMSaceuxLlTZKcdSqo0/qmS2A863Y
132           ZQ0ZBe+Xyf5OI33+y+Mry+vl6Lre2VfPm3udgR10E4tWXJ9Q2CmG+zNPWt73U1FD
133           7xBI7PPvOlyzCX4QJhy2Fn/fvzaNjHp4/FSiCw0HvX01epcersyun3xxPkRIjwwR
134           M9m5MJ0o4hhPfa97zibXSh8XXBnosBQxeg6nEnb26eorVQbqGx0ruu/W2m5/JpUf
135           REsFmNOBUbi8xlKNS5CZypH3Zh88EZiTFolOMEh+hT6s0l6znBAGGZ4m/Unacm5y
136           DHmg7unCk4JyVopQ2KHMoqG886elu+rm0ASkhyqBAk9sWKptMl3NHiYTRE/m9VAk
137           ugVIB2pi+8u84f+an4Hml4xlyijgYu05pqNvnLRyJDLd61hviLC8GYU=
138             =a34C
139           -----END PGP PUBLIC KEY BLOCK-----
140           ',
141         }
142         EOS
143
144         shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
145         apply_manifest(pp, :catch_failures => true)
146       end
147     end
148     describe 'keys should exist' do
149       it 'finds puppetlabs key' do
150         shell('apt-key list | grep 4BD6EC30')
151       end
152     end
153
154     context 'key_source' do
155
156       it 'should work with no errors' do
157         pp = <<-EOS
158         include '::apt'
159         apt::key { 'puppetlabs':
160           key        => '4BD6EC30',
161           key_source => 'http://apt.puppetlabs.com/pubkey.gpg',
162         }
163         EOS
164
165         shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
166         apply_manifest(pp, :catch_failures => true)
167       end
168
169       describe 'keys should exist' do
170         it 'finds puppetlabs key' do
171           shell('apt-key list | grep 4BD6EC30')
172         end
173       end
174     end
175
176     context 'key_options' do
177
178       it 'should work with no errors' do
179         pp = <<-EOS
180         include '::apt'
181         apt::key { 'puppetlabs':
182           key        => '4BD6EC30',
183           key_source => 'http://apt.puppetlabs.com/pubkey.gpg',
184           key_options => 'debug'
185         }
186         EOS
187
188         shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
189         apply_manifest(pp, :catch_failures => true)
190       end
191
192       describe 'keys should exist' do
193         it 'finds puppetlabs key' do
194           shell('apt-key list | grep 4BD6EC30')
195         end
196       end
197     end
198   end
199
200 end