puppet 6.14.0 → 6.15.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -15
  3. data/ext/windows/service/daemon.rb +3 -3
  4. data/lib/puppet.rb +1 -1
  5. data/lib/puppet/agent.rb +2 -10
  6. data/lib/puppet/application/agent.rb +2 -1
  7. data/lib/puppet/application/filebucket.rb +5 -14
  8. data/lib/puppet/application/ssl.rb +2 -2
  9. data/lib/puppet/configurer.rb +7 -3
  10. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  11. data/lib/puppet/defaults.rb +22 -2
  12. data/lib/puppet/environments.rb +4 -5
  13. data/lib/puppet/face/plugin.rb +1 -1
  14. data/lib/puppet/file_system/file_impl.rb +13 -9
  15. data/lib/puppet/forge/repository.rb +1 -1
  16. data/lib/puppet/functions/call.rb +1 -1
  17. data/lib/puppet/functions/reduce.rb +2 -4
  18. data/lib/puppet/http.rb +2 -0
  19. data/lib/puppet/http/client.rb +191 -52
  20. data/lib/puppet/http/external_client.rb +96 -0
  21. data/lib/puppet/http/redirector.rb +34 -0
  22. data/lib/puppet/http/resolver.rb +46 -3
  23. data/lib/puppet/http/resolver/server_list.rb +75 -15
  24. data/lib/puppet/http/resolver/settings.rb +22 -2
  25. data/lib/puppet/http/resolver/srv.rb +28 -2
  26. data/lib/puppet/http/response.rb +63 -1
  27. data/lib/puppet/http/retry_after_handler.rb +39 -0
  28. data/lib/puppet/http/service.rb +67 -1
  29. data/lib/puppet/http/service/ca.rb +71 -9
  30. data/lib/puppet/http/service/compiler.rb +213 -11
  31. data/lib/puppet/http/service/file_server.rb +105 -4
  32. data/lib/puppet/http/service/report.rb +36 -3
  33. data/lib/puppet/http/session.rb +59 -8
  34. data/lib/puppet/indirector/catalog/rest.rb +2 -1
  35. data/lib/puppet/indirector/facts/rest.rb +2 -1
  36. data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
  37. data/lib/puppet/indirector/file_metadata/rest.rb +4 -2
  38. data/lib/puppet/indirector/node/rest.rb +2 -1
  39. data/lib/puppet/indirector/report/yaml.rb +23 -0
  40. data/lib/puppet/indirector/status/rest.rb +2 -1
  41. data/lib/puppet/metatype/manager.rb +80 -80
  42. data/lib/puppet/network/http/base_pool.rb +6 -1
  43. data/lib/puppet/network/http/pool.rb +2 -4
  44. data/lib/puppet/network/http_pool.rb +1 -0
  45. data/lib/puppet/node/environment.rb +11 -1
  46. data/lib/puppet/pal/pal_impl.rb +1 -29
  47. data/lib/puppet/parser/compiler.rb +14 -7
  48. data/lib/puppet/parser/functions.rb +18 -13
  49. data/lib/puppet/pops/loaders.rb +7 -5
  50. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  51. data/lib/puppet/provider/package/apt.rb +61 -1
  52. data/lib/puppet/provider/package/dnfmodule.rb +39 -12
  53. data/lib/puppet/provider/package/gem.rb +41 -7
  54. data/lib/puppet/provider/package/pacman.rb +2 -5
  55. data/lib/puppet/provider/package/pip.rb +105 -33
  56. data/lib/puppet/provider/package/pip3.rb +0 -2
  57. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  58. data/lib/puppet/provider/package/pkgng.rb +16 -4
  59. data/lib/puppet/provider/package/puppet_gem.rb +6 -2
  60. data/lib/puppet/provider/package/rpm.rb +6 -213
  61. data/lib/puppet/provider/package/yum.rb +92 -19
  62. data/lib/puppet/provider/service/systemd.rb +2 -1
  63. data/lib/puppet/reports/http.rb +13 -11
  64. data/lib/puppet/resource/type_collection.rb +20 -16
  65. data/lib/puppet/ssl.rb +1 -0
  66. data/lib/puppet/ssl/host.rb +4 -4
  67. data/lib/puppet/ssl/oids.rb +1 -0
  68. data/lib/puppet/ssl/state_machine.rb +50 -33
  69. data/lib/puppet/transaction/report.rb +2 -2
  70. data/lib/puppet/type.rb +6 -1
  71. data/lib/puppet/type/file/source.rb +4 -2
  72. data/lib/puppet/type/package.rb +25 -2
  73. data/lib/puppet/type/user.rb +0 -19
  74. data/lib/puppet/util/at_fork.rb +1 -1
  75. data/lib/puppet/util/autoload.rb +3 -0
  76. data/lib/puppet/util/instance_loader.rb +14 -10
  77. data/lib/puppet/util/package/version/debian.rb +175 -0
  78. data/lib/puppet/util/package/version/gem.rb +15 -0
  79. data/lib/puppet/util/package/version/pip.rb +167 -0
  80. data/lib/puppet/util/package/version/range.rb +50 -0
  81. data/lib/puppet/util/package/version/range/gt.rb +14 -0
  82. data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
  83. data/lib/puppet/util/package/version/range/lt.rb +14 -0
  84. data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
  85. data/lib/puppet/util/package/version/range/min_max.rb +21 -0
  86. data/lib/puppet/util/package/version/range/simple.rb +11 -0
  87. data/lib/puppet/util/package/version/rpm.rb +73 -0
  88. data/lib/puppet/util/pidlock.rb +13 -7
  89. data/lib/puppet/util/platform.rb +5 -0
  90. data/lib/puppet/util/rpm_compare.rb +193 -0
  91. data/lib/puppet/util/windows/adsi.rb +2 -2
  92. data/lib/puppet/util/windows/process.rb +15 -14
  93. data/lib/puppet/util/windows/security.rb +1 -0
  94. data/lib/puppet/util/windows/sid.rb +3 -3
  95. data/lib/puppet/version.rb +1 -1
  96. data/locales/puppet.pot +207 -201
  97. data/man/man5/puppet.conf.5 +11 -3
  98. data/man/man8/puppet-agent.8 +1 -1
  99. data/man/man8/puppet-apply.8 +1 -1
  100. data/man/man8/puppet-catalog.8 +1 -1
  101. data/man/man8/puppet-config.8 +1 -1
  102. data/man/man8/puppet-describe.8 +1 -1
  103. data/man/man8/puppet-device.8 +1 -1
  104. data/man/man8/puppet-doc.8 +1 -1
  105. data/man/man8/puppet-epp.8 +1 -1
  106. data/man/man8/puppet-facts.8 +1 -1
  107. data/man/man8/puppet-filebucket.8 +1 -1
  108. data/man/man8/puppet-generate.8 +1 -1
  109. data/man/man8/puppet-help.8 +1 -1
  110. data/man/man8/puppet-key.8 +1 -1
  111. data/man/man8/puppet-lookup.8 +1 -1
  112. data/man/man8/puppet-man.8 +1 -1
  113. data/man/man8/puppet-module.8 +1 -1
  114. data/man/man8/puppet-node.8 +1 -1
  115. data/man/man8/puppet-parser.8 +1 -1
  116. data/man/man8/puppet-plugin.8 +1 -1
  117. data/man/man8/puppet-report.8 +1 -1
  118. data/man/man8/puppet-resource.8 +1 -1
  119. data/man/man8/puppet-script.8 +1 -1
  120. data/man/man8/puppet-ssl.8 +1 -1
  121. data/man/man8/puppet-status.8 +1 -1
  122. data/man/man8/puppet.8 +2 -2
  123. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +67 -0
  124. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
  125. data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
  126. data/spec/fixtures/ssl/unknown-ca.pem +59 -0
  127. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-installed.txt → dnf-module-list-enabled.txt} +2 -0
  128. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  129. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  130. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  131. data/spec/integration/application/agent_spec.rb +329 -0
  132. data/spec/integration/application/apply_spec.rb +132 -3
  133. data/spec/integration/application/filebucket_spec.rb +190 -0
  134. data/spec/integration/application/plugin_spec.rb +50 -0
  135. data/spec/integration/http/client_spec.rb +34 -40
  136. data/spec/integration/indirector/report/yaml.rb +83 -0
  137. data/spec/integration/module_tool/forge_spec.rb +2 -15
  138. data/spec/integration/network/http_pool_spec.rb +11 -19
  139. data/spec/integration/node/environment_spec.rb +15 -0
  140. data/spec/integration/util/windows/adsi_spec.rb +1 -1
  141. data/spec/lib/puppet/test_ca.rb +2 -2
  142. data/spec/lib/puppet_spec/https.rb +10 -7
  143. data/spec/lib/puppet_spec/puppetserver.rb +119 -0
  144. data/spec/shared_contexts/https.rb +29 -0
  145. data/spec/unit/agent_spec.rb +33 -25
  146. data/spec/unit/application/agent_spec.rb +5 -1
  147. data/spec/unit/application/device_spec.rb +2 -2
  148. data/spec/unit/application/filebucket_spec.rb +22 -2
  149. data/spec/unit/configurer_spec.rb +1 -1
  150. data/spec/unit/defaults_spec.rb +24 -1
  151. data/spec/unit/environments_spec.rb +8 -0
  152. data/spec/unit/file_system_spec.rb +10 -0
  153. data/spec/unit/http/client_spec.rb +105 -46
  154. data/spec/unit/http/external_client_spec.rb +201 -0
  155. data/spec/unit/http/resolver_spec.rb +20 -0
  156. data/spec/unit/http/service/ca_spec.rb +25 -2
  157. data/spec/unit/http/service/compiler_spec.rb +184 -6
  158. data/spec/unit/http/service/file_server_spec.rb +35 -3
  159. data/spec/unit/http/service/report_spec.rb +3 -1
  160. data/spec/unit/http/service_spec.rb +3 -3
  161. data/spec/unit/http/session_spec.rb +56 -7
  162. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
  163. data/spec/unit/network/http/pool_spec.rb +3 -3
  164. data/spec/unit/node/environment_spec.rb +16 -0
  165. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  166. data/spec/unit/provider/package/apt_spec.rb +30 -0
  167. data/spec/unit/provider/package/dnfmodule_spec.rb +33 -14
  168. data/spec/unit/provider/package/gem_spec.rb +40 -0
  169. data/spec/unit/provider/package/pacman_spec.rb +6 -21
  170. data/spec/unit/provider/package/pip_spec.rb +26 -3
  171. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  172. data/spec/unit/provider/package/pkgng_spec.rb +38 -0
  173. data/spec/unit/provider/package/puppet_gem_spec.rb +8 -0
  174. data/spec/unit/provider/package/rpm_spec.rb +0 -212
  175. data/spec/unit/provider/package/yum_spec.rb +235 -1
  176. data/spec/unit/provider/service/systemd_spec.rb +10 -1
  177. data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
  178. data/spec/unit/puppet_pal_2pec.rb +0 -29
  179. data/spec/unit/reports/http_spec.rb +70 -52
  180. data/spec/unit/ssl/host_spec.rb +4 -2
  181. data/spec/unit/ssl/oids_spec.rb +1 -0
  182. data/spec/unit/ssl/state_machine_spec.rb +38 -6
  183. data/spec/unit/transaction/report_spec.rb +4 -0
  184. data/spec/unit/util/at_fork_spec.rb +2 -2
  185. data/spec/unit/util/package/version/debian_spec.rb +83 -0
  186. data/spec/unit/util/package/version/pip_spec.rb +464 -0
  187. data/spec/unit/util/package/version/range_spec.rb +154 -0
  188. data/spec/unit/util/package/version/rpm_spec.rb +121 -0
  189. data/spec/unit/util/pidlock_spec.rb +83 -47
  190. data/spec/unit/util/rpm_compare_spec.rb +196 -0
  191. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  192. data/spec/unit/util/windows/sid_spec.rb +2 -2
  193. data/tasks/generate_cert_fixtures.rake +15 -1
  194. metadata +51 -6
  195. data/spec/integration/faces/plugin_spec.rb +0 -63
@@ -0,0 +1,196 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'puppet/util/rpm_compare'
5
+
6
+ describe Puppet::Util::RpmCompare do
7
+ class RpmTest
8
+ extend Puppet::Util::RpmCompare
9
+ end
10
+
11
+ describe '.rpmvercmp' do
12
+ # test cases munged directly from rpm's own
13
+ # tests/rpmvercmp.at
14
+ it { expect(RpmTest.rpmvercmp('1.0', '1.0')).to eq(0) }
15
+ it { expect(RpmTest.rpmvercmp('1.0', '2.0')).to eq(-1) }
16
+ it { expect(RpmTest.rpmvercmp('2.0', '1.0')).to eq(1) }
17
+ it { expect(RpmTest.rpmvercmp('2.0.1', '2.0.1')).to eq(0) }
18
+ it { expect(RpmTest.rpmvercmp('2.0', '2.0.1')).to eq(-1) }
19
+ it { expect(RpmTest.rpmvercmp('2.0.1', '2.0')).to eq(1) }
20
+ it { expect(RpmTest.rpmvercmp('2.0.1a', '2.0.1a')).to eq(0) }
21
+ it { expect(RpmTest.rpmvercmp('2.0.1a', '2.0.1')).to eq(1) }
22
+ it { expect(RpmTest.rpmvercmp('2.0.1', '2.0.1a')).to eq(-1) }
23
+ it { expect(RpmTest.rpmvercmp('5.5p1', '5.5p1')).to eq(0) }
24
+ it { expect(RpmTest.rpmvercmp('5.5p1', '5.5p2')).to eq(-1) }
25
+ it { expect(RpmTest.rpmvercmp('5.5p2', '5.5p1')).to eq(1) }
26
+ it { expect(RpmTest.rpmvercmp('5.5p10', '5.5p10')).to eq(0) }
27
+ it { expect(RpmTest.rpmvercmp('5.5p1', '5.5p10')).to eq(-1) }
28
+ it { expect(RpmTest.rpmvercmp('5.5p10', '5.5p1')).to eq(1) }
29
+ it { expect(RpmTest.rpmvercmp('10xyz', '10.1xyz')).to eq(-1) }
30
+ it { expect(RpmTest.rpmvercmp('10.1xyz', '10xyz')).to eq(1) }
31
+ it { expect(RpmTest.rpmvercmp('xyz10', 'xyz10')).to eq(0) }
32
+ it { expect(RpmTest.rpmvercmp('xyz10', 'xyz10.1')).to eq(-1) }
33
+ it { expect(RpmTest.rpmvercmp('xyz10.1', 'xyz10')).to eq(1) }
34
+ it { expect(RpmTest.rpmvercmp('xyz.4', 'xyz.4')).to eq(0) }
35
+ it { expect(RpmTest.rpmvercmp('xyz.4', '8')).to eq(-1) }
36
+ it { expect(RpmTest.rpmvercmp('8', 'xyz.4')).to eq(1) }
37
+ it { expect(RpmTest.rpmvercmp('xyz.4', '2')).to eq(-1) }
38
+ it { expect(RpmTest.rpmvercmp('2', 'xyz.4')).to eq(1) }
39
+ it { expect(RpmTest.rpmvercmp('5.5p2', '5.6p1')).to eq(-1) }
40
+ it { expect(RpmTest.rpmvercmp('5.6p1', '5.5p2')).to eq(1) }
41
+ it { expect(RpmTest.rpmvercmp('5.6p1', '6.5p1')).to eq(-1) }
42
+ it { expect(RpmTest.rpmvercmp('6.5p1', '5.6p1')).to eq(1) }
43
+ it { expect(RpmTest.rpmvercmp('6.0.rc1', '6.0')).to eq(1) }
44
+ it { expect(RpmTest.rpmvercmp('6.0', '6.0.rc1')).to eq(-1) }
45
+ it { expect(RpmTest.rpmvercmp('10b2', '10a1')).to eq(1) }
46
+ it { expect(RpmTest.rpmvercmp('10a2', '10b2')).to eq(-1) }
47
+ it { expect(RpmTest.rpmvercmp('1.0aa', '1.0aa')).to eq(0) }
48
+ it { expect(RpmTest.rpmvercmp('1.0a', '1.0aa')).to eq(-1) }
49
+ it { expect(RpmTest.rpmvercmp('1.0aa', '1.0a')).to eq(1) }
50
+ it { expect(RpmTest.rpmvercmp('10.0001', '10.0001')).to eq(0) }
51
+ it { expect(RpmTest.rpmvercmp('10.0001', '10.1')).to eq(0) }
52
+ it { expect(RpmTest.rpmvercmp('10.1', '10.0001')).to eq(0) }
53
+ it { expect(RpmTest.rpmvercmp('10.0001', '10.0039')).to eq(-1) }
54
+ it { expect(RpmTest.rpmvercmp('10.0039', '10.0001')).to eq(1) }
55
+ it { expect(RpmTest.rpmvercmp('4.999.9', '5.0')).to eq(-1) }
56
+ it { expect(RpmTest.rpmvercmp('5.0', '4.999.9')).to eq(1) }
57
+ it { expect(RpmTest.rpmvercmp('20101121', '20101121')).to eq(0) }
58
+ it { expect(RpmTest.rpmvercmp('20101121', '20101122')).to eq(-1) }
59
+ it { expect(RpmTest.rpmvercmp('20101122', '20101121')).to eq(1) }
60
+ it { expect(RpmTest.rpmvercmp('2_0', '2_0')).to eq(0) }
61
+ it { expect(RpmTest.rpmvercmp('2.0', '2_0')).to eq(0) }
62
+ it { expect(RpmTest.rpmvercmp('2_0', '2.0')).to eq(0) }
63
+ it { expect(RpmTest.rpmvercmp('a', 'a')).to eq(0) }
64
+ it { expect(RpmTest.rpmvercmp('a+', 'a+')).to eq(0) }
65
+ it { expect(RpmTest.rpmvercmp('a+', 'a_')).to eq(0) }
66
+ it { expect(RpmTest.rpmvercmp('a_', 'a+')).to eq(0) }
67
+ it { expect(RpmTest.rpmvercmp('+a', '+a')).to eq(0) }
68
+ it { expect(RpmTest.rpmvercmp('+a', '_a')).to eq(0) }
69
+ it { expect(RpmTest.rpmvercmp('_a', '+a')).to eq(0) }
70
+ it { expect(RpmTest.rpmvercmp('+_', '+_')).to eq(0) }
71
+ it { expect(RpmTest.rpmvercmp('_+', '+_')).to eq(0) }
72
+ it { expect(RpmTest.rpmvercmp('_+', '_+')).to eq(0) }
73
+ it { expect(RpmTest.rpmvercmp('+', '_')).to eq(0) }
74
+ it { expect(RpmTest.rpmvercmp('_', '+')).to eq(0) }
75
+ it { expect(RpmTest.rpmvercmp('1.0~rc1', '1.0~rc1')).to eq(0) }
76
+ it { expect(RpmTest.rpmvercmp('1.0~rc1', '1.0')).to eq(-1) }
77
+ it { expect(RpmTest.rpmvercmp('1.0', '1.0~rc1')).to eq(1) }
78
+ it { expect(RpmTest.rpmvercmp('1.0~rc1', '1.0~rc2')).to eq(-1) }
79
+ it { expect(RpmTest.rpmvercmp('1.0~rc2', '1.0~rc1')).to eq(1) }
80
+ it { expect(RpmTest.rpmvercmp('1.0~rc1~git123', '1.0~rc1~git123')).to eq(0) }
81
+ it { expect(RpmTest.rpmvercmp('1.0~rc1~git123', '1.0~rc1')).to eq(-1) }
82
+ it { expect(RpmTest.rpmvercmp('1.0~rc1', '1.0~rc1~git123')).to eq(1) }
83
+ it { expect(RpmTest.rpmvercmp('1.0~rc1', '1.0arc1')).to eq(-1) }
84
+ it { expect(RpmTest.rpmvercmp('', '~')).to eq(1) }
85
+ it { expect(RpmTest.rpmvercmp('~', '~~')).to eq(1) }
86
+ it { expect(RpmTest.rpmvercmp('~', '~+~')).to eq(1) }
87
+ it { expect(RpmTest.rpmvercmp('~', '~a')).to eq(-1) }
88
+
89
+ # non-upstream test cases
90
+ it { expect(RpmTest.rpmvercmp('405', '406')).to eq(-1) }
91
+ it { expect(RpmTest.rpmvercmp('1', '0')).to eq(1) }
92
+ end
93
+
94
+ describe '.rpm_compareEVR' do
95
+ it 'evaluates identical version-release as equal' do
96
+ expect(RpmTest.rpm_compareEVR('1.2.3-1.el5', '1.2.3-1.el5')).to eq(0)
97
+ end
98
+
99
+ it 'evaluates identical version as equal' do
100
+ expect(RpmTest.rpm_compareEVR('1.2.3', '1.2.3')).to eq(0)
101
+ end
102
+
103
+ it 'evaluates identical version but older release as less' do
104
+ expect(RpmTest.rpm_compareEVR('1.2.3-1.el5', '1.2.3-2.el5')).to eq(-1)
105
+ end
106
+
107
+ it 'evaluates identical version but newer release as greater' do
108
+ expect(RpmTest.rpm_compareEVR('1.2.3-3.el5', '1.2.3-2.el5')).to eq(1)
109
+ end
110
+
111
+ it 'evaluates a newer epoch as greater' do
112
+ expect(RpmTest.rpm_compareEVR('1:1.2.3-4.5', '1.2.3-4.5')).to eq(1)
113
+ end
114
+
115
+ # these tests describe PUP-1244 logic yet to be implemented
116
+ it 'evaluates any version as equal to the same version followed by release' do
117
+ expect(RpmTest.rpm_compareEVR('1.2.3', '1.2.3-2.el5')).to eq(0)
118
+ end
119
+
120
+ # test cases for PUP-682
121
+ it 'evaluates same-length numeric revisions numerically' do
122
+ expect(RpmTest.rpm_compareEVR('2.2-405', '2.2-406')).to eq(-1)
123
+ end
124
+ end
125
+
126
+ describe '.rpm_parse_evr' do
127
+ it 'parses full simple evr' do
128
+ version = RpmTest.rpm_parse_evr('0:1.2.3-4.el5')
129
+ expect([version[:epoch], version[:version], version[:release]]).to \
130
+ eq(['0', '1.2.3', '4.el5'])
131
+ end
132
+
133
+ it 'parses version only' do
134
+ version = RpmTest.rpm_parse_evr('1.2.3')
135
+ expect([version[:epoch], version[:version], version[:release]]).to \
136
+ eq([nil, '1.2.3', nil])
137
+ end
138
+
139
+ it 'parses version-release' do
140
+ version = RpmTest.rpm_parse_evr('1.2.3-4.5.el6')
141
+ expect([version[:epoch], version[:version], version[:release]]).to \
142
+ eq([nil, '1.2.3', '4.5.el6'])
143
+ end
144
+
145
+ it 'parses release with git hash' do
146
+ version = RpmTest.rpm_parse_evr('1.2.3-4.1234aefd')
147
+ expect([version[:epoch], version[:version], version[:release]]).to \
148
+ eq([nil, '1.2.3', '4.1234aefd'])
149
+ end
150
+
151
+ it 'parses single integer versions' do
152
+ version = RpmTest.rpm_parse_evr('12345')
153
+ expect([version[:epoch], version[:version], version[:release]]).to \
154
+ eq([nil, '12345', nil])
155
+ end
156
+
157
+ it 'parses text in the epoch to 0' do
158
+ version = RpmTest.rpm_parse_evr('foo0:1.2.3-4')
159
+ expect([version[:epoch], version[:version], version[:release]]).to \
160
+ eq([nil, '1.2.3', '4'])
161
+ end
162
+
163
+ it 'parses revisions with text' do
164
+ version = RpmTest.rpm_parse_evr('1.2.3-SNAPSHOT20140107')
165
+ expect([version[:epoch], version[:version], version[:release]]).to \
166
+ eq([nil, '1.2.3', 'SNAPSHOT20140107'])
167
+ end
168
+
169
+ # test cases for PUP-682
170
+ it 'parses revisions with text and numbers' do
171
+ version = RpmTest.rpm_parse_evr('2.2-SNAPSHOT20121119105647')
172
+ expect([version[:epoch], version[:version], version[:release]]).to \
173
+ eq([nil, '2.2', 'SNAPSHOT20121119105647'])
174
+ end
175
+ end
176
+
177
+ describe '.compare_values' do
178
+ it 'treats two nil values as equal' do
179
+ expect(RpmTest.compare_values(nil, nil)).to eq(0)
180
+ end
181
+
182
+ it 'treats a nil value as less than a non-nil value' do
183
+ expect(RpmTest.compare_values(nil, '0')).to eq(-1)
184
+ end
185
+
186
+ it 'treats a non-nil value as greater than a nil value' do
187
+ expect(RpmTest.compare_values('0', nil)).to eq(1)
188
+ end
189
+
190
+ it 'passes two non-nil values on to rpmvercmp' do
191
+ allow(RpmTest).to receive(:rpmvercmp).and_return(0)
192
+ expect(RpmTest).to receive(:rpmvercmp).with('s1', 's2')
193
+ RpmTest.compare_values('s1', 's2')
194
+ end
195
+ end
196
+ end
@@ -466,8 +466,8 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet::Util::Platform.windows? do
466
466
  expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
467
467
  expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
468
468
 
469
- expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2').and_return(sids[1])
470
- expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3').and_return(sids[2])
469
+ expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2', false).and_return(sids[1])
470
+ expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3', false).and_return(sids[2])
471
471
 
472
472
  expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[0]).and_return("WinNT://DOMAIN/user1,user")
473
473
  expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[2]).and_return("WinNT://DOMAIN2/user3,user")
@@ -493,8 +493,8 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet::Util::Platform.windows? do
493
493
  expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
494
494
  expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
495
495
 
496
- expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2').and_return(sids[1])
497
- expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3').and_return(sids[2])
496
+ expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2', any_args).and_return(sids[1])
497
+ expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3', any_args).and_return(sids[2])
498
498
 
499
499
  expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[2]).and_return("WinNT://DOMAIN2/user3,user")
500
500
 
@@ -201,9 +201,9 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
201
201
  principal = subject.ads_to_principal(unresolvable_user)
202
202
 
203
203
  expect(principal).to be_an_instance_of(Puppet::Util::Windows::SID::Principal)
204
- expect(principal.account).to eq('S-1-1-1 (unresolvable)')
204
+ expect(principal.account).to eq('S-1-1-1')
205
205
  expect(principal.domain).to eq(nil)
206
- expect(principal.domain_account).to eq('S-1-1-1 (unresolvable)')
206
+ expect(principal.domain_account).to eq('S-1-1-1')
207
207
  expect(principal.sid).to eq('S-1-1-1')
208
208
  expect(principal.sid_bytes).to eq(valid_octet_invalid_user)
209
209
  expect(principal.account_type).to eq(:SidTypeUnknown)
@@ -49,6 +49,10 @@ task(:gen_cert_fixtures) do
49
49
  #
50
50
  # bad-basic-constraints.pem /CN=Test CA (bad isCA constraint)
51
51
  #
52
+ # unknown-ca.pemm /CN=Unknown CA
53
+ # |
54
+ # unknown-127.0.0.1.pem +- /CN=127.0.0.1
55
+ #
52
56
  # Keys
53
57
  # ====
54
58
  #
@@ -61,10 +65,20 @@ task(:gen_cert_fixtures) do
61
65
  # `request.pem` contains a valid CSR for /CN=pending, while `tampered_csr.pem`
62
66
  # is the same as `request.pem`, but it's public key has been replaced.
63
67
  #
64
- ca = Puppet::TestCa.new
65
68
  dir = File.join(RAKE_ROOT, 'spec/fixtures/ssl')
66
69
 
70
+ # Create self-signed CA & key
71
+ unknown_ca = Puppet::TestCa.new('Unknown CA')
72
+ save(dir, 'unknown-ca.pem', unknown_ca.ca_cert)
73
+ save(dir, 'unknown-ca-key.pem', unknown_ca.key)
74
+
75
+ # Create an SSL cert for 127.0.0.1
76
+ signed = unknown_ca.create_cert('127.0.0.1', unknown_ca.ca_cert, unknown_ca.key, subject_alt_names: 'DNS:127.0.0.1,DNS:127.0.0.2')
77
+ save(dir, 'unknown-127.0.0.1.pem', signed[:cert])
78
+ save(dir, 'unknown-127.0.0.1-key.pem', signed[:private_key])
79
+
67
80
  # Create Test CA & CRL
81
+ ca = Puppet::TestCa.new
68
82
  save(dir, 'ca.pem', ca.ca_cert)
69
83
  save(dir, 'crl.pem', ca.ca_crl)
70
84
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.14.0
4
+ version: 6.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-07 00:00:00.000000000 Z
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -561,6 +561,7 @@ files:
561
561
  - lib/puppet/http.rb
562
562
  - lib/puppet/http/client.rb
563
563
  - lib/puppet/http/errors.rb
564
+ - lib/puppet/http/external_client.rb
564
565
  - lib/puppet/http/redirector.rb
565
566
  - lib/puppet/http/resolver.rb
566
567
  - lib/puppet/http/resolver/server_list.rb
@@ -1273,6 +1274,17 @@ files:
1273
1274
  - lib/puppet/util/network_device/transport.rb
1274
1275
  - lib/puppet/util/network_device/transport/base.rb
1275
1276
  - lib/puppet/util/package.rb
1277
+ - lib/puppet/util/package/version/debian.rb
1278
+ - lib/puppet/util/package/version/gem.rb
1279
+ - lib/puppet/util/package/version/pip.rb
1280
+ - lib/puppet/util/package/version/range.rb
1281
+ - lib/puppet/util/package/version/range/gt.rb
1282
+ - lib/puppet/util/package/version/range/gt_eq.rb
1283
+ - lib/puppet/util/package/version/range/lt.rb
1284
+ - lib/puppet/util/package/version/range/lt_eq.rb
1285
+ - lib/puppet/util/package/version/range/min_max.rb
1286
+ - lib/puppet/util/package/version/range/simple.rb
1287
+ - lib/puppet/util/package/version/rpm.rb
1276
1288
  - lib/puppet/util/pidlock.rb
1277
1289
  - lib/puppet/util/platform.rb
1278
1290
  - lib/puppet/util/plist.rb
@@ -1295,6 +1307,7 @@ files:
1295
1307
  - lib/puppet/util/reference.rb
1296
1308
  - lib/puppet/util/resource_template.rb
1297
1309
  - lib/puppet/util/retry_action.rb
1310
+ - lib/puppet/util/rpm_compare.rb
1298
1311
  - lib/puppet/util/rubygems.rb
1299
1312
  - lib/puppet/util/run_mode.rb
1300
1313
  - lib/puppet/util/selinux.rb
@@ -1437,6 +1450,10 @@ files:
1437
1450
  - spec/fixtures/ssl/signed.pem
1438
1451
  - spec/fixtures/ssl/tampered-cert.pem
1439
1452
  - spec/fixtures/ssl/tampered-csr.pem
1453
+ - spec/fixtures/ssl/unknown-127.0.0.1-key.pem
1454
+ - spec/fixtures/ssl/unknown-127.0.0.1.pem
1455
+ - spec/fixtures/ssl/unknown-ca-key.pem
1456
+ - spec/fixtures/ssl/unknown-ca.pem
1440
1457
  - spec/fixtures/stdlib.tgz
1441
1458
  - spec/fixtures/unit/application/environments/production/data/common.yaml
1442
1459
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -1706,7 +1723,7 @@ files:
1706
1723
  - spec/fixtures/unit/provider/cron/crontab/vixie_header.txt
1707
1724
  - spec/fixtures/unit/provider/cron/parsed/managed
1708
1725
  - spec/fixtures/unit/provider/cron/parsed/simple
1709
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt
1726
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
1710
1727
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
1711
1728
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
1712
1729
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -1734,6 +1751,7 @@ files:
1734
1751
  - spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt
1735
1752
  - spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt
1736
1753
  - spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt
1754
+ - spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt
1737
1755
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out
1738
1756
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out
1739
1757
  - spec/fixtures/unit/provider/parsedfile/aliases.txt
@@ -1768,9 +1786,12 @@ files:
1768
1786
  - spec/fixtures/yaml/report2.6.x.yaml
1769
1787
  - spec/fixtures/yaml/test.local.yaml
1770
1788
  - spec/integration/agent/logging_spec.rb
1789
+ - spec/integration/application/agent_spec.rb
1771
1790
  - spec/integration/application/apply_spec.rb
1772
1791
  - spec/integration/application/doc_spec.rb
1792
+ - spec/integration/application/filebucket_spec.rb
1773
1793
  - spec/integration/application/lookup_spec.rb
1794
+ - spec/integration/application/plugin_spec.rb
1774
1795
  - spec/integration/configurer_spec.rb
1775
1796
  - spec/integration/data_binding_spec.rb
1776
1797
  - spec/integration/defaults_spec.rb
@@ -1781,7 +1802,6 @@ files:
1781
1802
  - spec/integration/environments/settings_spec.rb
1782
1803
  - spec/integration/faces/config_spec.rb
1783
1804
  - spec/integration/faces/documentation_spec.rb
1784
- - spec/integration/faces/plugin_spec.rb
1785
1805
  - spec/integration/file_bucket/file_spec.rb
1786
1806
  - spec/integration/file_serving/content_spec.rb
1787
1807
  - spec/integration/file_serving/fileset_spec.rb
@@ -1794,6 +1814,7 @@ files:
1794
1814
  - spec/integration/indirector/facts/facter_spec.rb
1795
1815
  - spec/integration/indirector/file_content/file_server_spec.rb
1796
1816
  - spec/integration/indirector/file_metadata/file_server_spec.rb
1817
+ - spec/integration/indirector/report/yaml.rb
1797
1818
  - spec/integration/module_tool/forge_spec.rb
1798
1819
  - spec/integration/module_tool/tar/mini_spec.rb
1799
1820
  - spec/integration/network/authconfig_spec.rb
@@ -1882,6 +1903,7 @@ files:
1882
1903
  - spec/lib/puppet_spec/modules.rb
1883
1904
  - spec/lib/puppet_spec/network.rb
1884
1905
  - spec/lib/puppet_spec/pops.rb
1906
+ - spec/lib/puppet_spec/puppetserver.rb
1885
1907
  - spec/lib/puppet_spec/scope.rb
1886
1908
  - spec/lib/puppet_spec/settings.rb
1887
1909
  - spec/lib/puppet_spec/ssl.rb
@@ -1901,6 +1923,7 @@ files:
1901
1923
  - spec/shared_behaviours/things_that_declare_options.rb
1902
1924
  - spec/shared_contexts/checksum.rb
1903
1925
  - spec/shared_contexts/digests.rb
1926
+ - spec/shared_contexts/https.rb
1904
1927
  - spec/shared_contexts/types_setup.rb
1905
1928
  - spec/shared_examples/rhel_package_provider.rb
1906
1929
  - spec/spec_helper.rb
@@ -2078,6 +2101,7 @@ files:
2078
2101
  - spec/unit/hiera/scope_spec.rb
2079
2102
  - spec/unit/hiera_puppet_spec.rb
2080
2103
  - spec/unit/http/client_spec.rb
2104
+ - spec/unit/http/external_client_spec.rb
2081
2105
  - spec/unit/http/resolver_spec.rb
2082
2106
  - spec/unit/http/response_spec.rb
2083
2107
  - spec/unit/http/service/ca_spec.rb
@@ -2554,6 +2578,10 @@ files:
2554
2578
  - spec/unit/util/network_device/config_spec.rb
2555
2579
  - spec/unit/util/network_device/transport/base_spec.rb
2556
2580
  - spec/unit/util/network_device_spec.rb
2581
+ - spec/unit/util/package/version/debian_spec.rb
2582
+ - spec/unit/util/package/version/pip_spec.rb
2583
+ - spec/unit/util/package/version/range_spec.rb
2584
+ - spec/unit/util/package/version/rpm_spec.rb
2557
2585
  - spec/unit/util/package_spec.rb
2558
2586
  - spec/unit/util/pidlock_spec.rb
2559
2587
  - spec/unit/util/plist_spec.rb
@@ -2568,6 +2596,7 @@ files:
2568
2596
  - spec/unit/util/reference_spec.rb
2569
2597
  - spec/unit/util/resource_template_spec.rb
2570
2598
  - spec/unit/util/retry_action_spec.rb
2599
+ - spec/unit/util/rpm_compare_spec.rb
2571
2600
  - spec/unit/util/rubygems_spec.rb
2572
2601
  - spec/unit/util/run_mode_spec.rb
2573
2602
  - spec/unit/util/selinux_spec.rb
@@ -2696,6 +2725,10 @@ test_files:
2696
2725
  - spec/fixtures/ssl/signed.pem
2697
2726
  - spec/fixtures/ssl/tampered-cert.pem
2698
2727
  - spec/fixtures/ssl/tampered-csr.pem
2728
+ - spec/fixtures/ssl/unknown-127.0.0.1-key.pem
2729
+ - spec/fixtures/ssl/unknown-127.0.0.1.pem
2730
+ - spec/fixtures/ssl/unknown-ca-key.pem
2731
+ - spec/fixtures/ssl/unknown-ca.pem
2699
2732
  - spec/fixtures/stdlib.tgz
2700
2733
  - spec/fixtures/unit/application/environments/production/data/common.yaml
2701
2734
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -2965,7 +2998,7 @@ test_files:
2965
2998
  - spec/fixtures/unit/provider/cron/crontab/vixie_header.txt
2966
2999
  - spec/fixtures/unit/provider/cron/parsed/managed
2967
3000
  - spec/fixtures/unit/provider/cron/parsed/simple
2968
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt
3001
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
2969
3002
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
2970
3003
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
2971
3004
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -2993,6 +3026,7 @@ test_files:
2993
3026
  - spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt
2994
3027
  - spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt
2995
3028
  - spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt
3029
+ - spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt
2996
3030
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out
2997
3031
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out
2998
3032
  - spec/fixtures/unit/provider/parsedfile/aliases.txt
@@ -3027,9 +3061,12 @@ test_files:
3027
3061
  - spec/fixtures/yaml/report2.6.x.yaml
3028
3062
  - spec/fixtures/yaml/test.local.yaml
3029
3063
  - spec/integration/agent/logging_spec.rb
3064
+ - spec/integration/application/agent_spec.rb
3030
3065
  - spec/integration/application/apply_spec.rb
3031
3066
  - spec/integration/application/doc_spec.rb
3067
+ - spec/integration/application/filebucket_spec.rb
3032
3068
  - spec/integration/application/lookup_spec.rb
3069
+ - spec/integration/application/plugin_spec.rb
3033
3070
  - spec/integration/configurer_spec.rb
3034
3071
  - spec/integration/data_binding_spec.rb
3035
3072
  - spec/integration/defaults_spec.rb
@@ -3040,7 +3077,6 @@ test_files:
3040
3077
  - spec/integration/environments/settings_spec.rb
3041
3078
  - spec/integration/faces/config_spec.rb
3042
3079
  - spec/integration/faces/documentation_spec.rb
3043
- - spec/integration/faces/plugin_spec.rb
3044
3080
  - spec/integration/file_bucket/file_spec.rb
3045
3081
  - spec/integration/file_serving/content_spec.rb
3046
3082
  - spec/integration/file_serving/fileset_spec.rb
@@ -3053,6 +3089,7 @@ test_files:
3053
3089
  - spec/integration/indirector/facts/facter_spec.rb
3054
3090
  - spec/integration/indirector/file_content/file_server_spec.rb
3055
3091
  - spec/integration/indirector/file_metadata/file_server_spec.rb
3092
+ - spec/integration/indirector/report/yaml.rb
3056
3093
  - spec/integration/module_tool/forge_spec.rb
3057
3094
  - spec/integration/module_tool/tar/mini_spec.rb
3058
3095
  - spec/integration/network/authconfig_spec.rb
@@ -3141,6 +3178,7 @@ test_files:
3141
3178
  - spec/lib/puppet_spec/modules.rb
3142
3179
  - spec/lib/puppet_spec/network.rb
3143
3180
  - spec/lib/puppet_spec/pops.rb
3181
+ - spec/lib/puppet_spec/puppetserver.rb
3144
3182
  - spec/lib/puppet_spec/scope.rb
3145
3183
  - spec/lib/puppet_spec/settings.rb
3146
3184
  - spec/lib/puppet_spec/ssl.rb
@@ -3160,6 +3198,7 @@ test_files:
3160
3198
  - spec/shared_behaviours/things_that_declare_options.rb
3161
3199
  - spec/shared_contexts/checksum.rb
3162
3200
  - spec/shared_contexts/digests.rb
3201
+ - spec/shared_contexts/https.rb
3163
3202
  - spec/shared_contexts/types_setup.rb
3164
3203
  - spec/shared_examples/rhel_package_provider.rb
3165
3204
  - spec/spec_helper.rb
@@ -3337,6 +3376,7 @@ test_files:
3337
3376
  - spec/unit/hiera/scope_spec.rb
3338
3377
  - spec/unit/hiera_puppet_spec.rb
3339
3378
  - spec/unit/http/client_spec.rb
3379
+ - spec/unit/http/external_client_spec.rb
3340
3380
  - spec/unit/http/resolver_spec.rb
3341
3381
  - spec/unit/http/response_spec.rb
3342
3382
  - spec/unit/http/service/ca_spec.rb
@@ -3813,6 +3853,10 @@ test_files:
3813
3853
  - spec/unit/util/network_device/config_spec.rb
3814
3854
  - spec/unit/util/network_device/transport/base_spec.rb
3815
3855
  - spec/unit/util/network_device_spec.rb
3856
+ - spec/unit/util/package/version/debian_spec.rb
3857
+ - spec/unit/util/package/version/pip_spec.rb
3858
+ - spec/unit/util/package/version/range_spec.rb
3859
+ - spec/unit/util/package/version/rpm_spec.rb
3816
3860
  - spec/unit/util/package_spec.rb
3817
3861
  - spec/unit/util/pidlock_spec.rb
3818
3862
  - spec/unit/util/plist_spec.rb
@@ -3827,6 +3871,7 @@ test_files:
3827
3871
  - spec/unit/util/reference_spec.rb
3828
3872
  - spec/unit/util/resource_template_spec.rb
3829
3873
  - spec/unit/util/retry_action_spec.rb
3874
+ - spec/unit/util/rpm_compare_spec.rb
3830
3875
  - spec/unit/util/rubygems_spec.rb
3831
3876
  - spec/unit/util/run_mode_spec.rb
3832
3877
  - spec/unit/util/selinux_spec.rb