puppet 6.14.0-x64-mingw32 → 6.15.0-x64-mingw32

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: x64-mingw32
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
@@ -651,6 +651,7 @@ files:
651
651
  - lib/puppet/http.rb
652
652
  - lib/puppet/http/client.rb
653
653
  - lib/puppet/http/errors.rb
654
+ - lib/puppet/http/external_client.rb
654
655
  - lib/puppet/http/redirector.rb
655
656
  - lib/puppet/http/resolver.rb
656
657
  - lib/puppet/http/resolver/server_list.rb
@@ -1363,6 +1364,17 @@ files:
1363
1364
  - lib/puppet/util/network_device/transport.rb
1364
1365
  - lib/puppet/util/network_device/transport/base.rb
1365
1366
  - lib/puppet/util/package.rb
1367
+ - lib/puppet/util/package/version/debian.rb
1368
+ - lib/puppet/util/package/version/gem.rb
1369
+ - lib/puppet/util/package/version/pip.rb
1370
+ - lib/puppet/util/package/version/range.rb
1371
+ - lib/puppet/util/package/version/range/gt.rb
1372
+ - lib/puppet/util/package/version/range/gt_eq.rb
1373
+ - lib/puppet/util/package/version/range/lt.rb
1374
+ - lib/puppet/util/package/version/range/lt_eq.rb
1375
+ - lib/puppet/util/package/version/range/min_max.rb
1376
+ - lib/puppet/util/package/version/range/simple.rb
1377
+ - lib/puppet/util/package/version/rpm.rb
1366
1378
  - lib/puppet/util/pidlock.rb
1367
1379
  - lib/puppet/util/platform.rb
1368
1380
  - lib/puppet/util/plist.rb
@@ -1385,6 +1397,7 @@ files:
1385
1397
  - lib/puppet/util/reference.rb
1386
1398
  - lib/puppet/util/resource_template.rb
1387
1399
  - lib/puppet/util/retry_action.rb
1400
+ - lib/puppet/util/rpm_compare.rb
1388
1401
  - lib/puppet/util/rubygems.rb
1389
1402
  - lib/puppet/util/run_mode.rb
1390
1403
  - lib/puppet/util/selinux.rb
@@ -1527,6 +1540,10 @@ files:
1527
1540
  - spec/fixtures/ssl/signed.pem
1528
1541
  - spec/fixtures/ssl/tampered-cert.pem
1529
1542
  - spec/fixtures/ssl/tampered-csr.pem
1543
+ - spec/fixtures/ssl/unknown-127.0.0.1-key.pem
1544
+ - spec/fixtures/ssl/unknown-127.0.0.1.pem
1545
+ - spec/fixtures/ssl/unknown-ca-key.pem
1546
+ - spec/fixtures/ssl/unknown-ca.pem
1530
1547
  - spec/fixtures/stdlib.tgz
1531
1548
  - spec/fixtures/unit/application/environments/production/data/common.yaml
1532
1549
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -1796,7 +1813,7 @@ files:
1796
1813
  - spec/fixtures/unit/provider/cron/crontab/vixie_header.txt
1797
1814
  - spec/fixtures/unit/provider/cron/parsed/managed
1798
1815
  - spec/fixtures/unit/provider/cron/parsed/simple
1799
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt
1816
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
1800
1817
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
1801
1818
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
1802
1819
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -1824,6 +1841,7 @@ files:
1824
1841
  - spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt
1825
1842
  - spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt
1826
1843
  - spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt
1844
+ - spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt
1827
1845
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out
1828
1846
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out
1829
1847
  - spec/fixtures/unit/provider/parsedfile/aliases.txt
@@ -1858,9 +1876,12 @@ files:
1858
1876
  - spec/fixtures/yaml/report2.6.x.yaml
1859
1877
  - spec/fixtures/yaml/test.local.yaml
1860
1878
  - spec/integration/agent/logging_spec.rb
1879
+ - spec/integration/application/agent_spec.rb
1861
1880
  - spec/integration/application/apply_spec.rb
1862
1881
  - spec/integration/application/doc_spec.rb
1882
+ - spec/integration/application/filebucket_spec.rb
1863
1883
  - spec/integration/application/lookup_spec.rb
1884
+ - spec/integration/application/plugin_spec.rb
1864
1885
  - spec/integration/configurer_spec.rb
1865
1886
  - spec/integration/data_binding_spec.rb
1866
1887
  - spec/integration/defaults_spec.rb
@@ -1871,7 +1892,6 @@ files:
1871
1892
  - spec/integration/environments/settings_spec.rb
1872
1893
  - spec/integration/faces/config_spec.rb
1873
1894
  - spec/integration/faces/documentation_spec.rb
1874
- - spec/integration/faces/plugin_spec.rb
1875
1895
  - spec/integration/file_bucket/file_spec.rb
1876
1896
  - spec/integration/file_serving/content_spec.rb
1877
1897
  - spec/integration/file_serving/fileset_spec.rb
@@ -1884,6 +1904,7 @@ files:
1884
1904
  - spec/integration/indirector/facts/facter_spec.rb
1885
1905
  - spec/integration/indirector/file_content/file_server_spec.rb
1886
1906
  - spec/integration/indirector/file_metadata/file_server_spec.rb
1907
+ - spec/integration/indirector/report/yaml.rb
1887
1908
  - spec/integration/module_tool/forge_spec.rb
1888
1909
  - spec/integration/module_tool/tar/mini_spec.rb
1889
1910
  - spec/integration/network/authconfig_spec.rb
@@ -1972,6 +1993,7 @@ files:
1972
1993
  - spec/lib/puppet_spec/modules.rb
1973
1994
  - spec/lib/puppet_spec/network.rb
1974
1995
  - spec/lib/puppet_spec/pops.rb
1996
+ - spec/lib/puppet_spec/puppetserver.rb
1975
1997
  - spec/lib/puppet_spec/scope.rb
1976
1998
  - spec/lib/puppet_spec/settings.rb
1977
1999
  - spec/lib/puppet_spec/ssl.rb
@@ -1991,6 +2013,7 @@ files:
1991
2013
  - spec/shared_behaviours/things_that_declare_options.rb
1992
2014
  - spec/shared_contexts/checksum.rb
1993
2015
  - spec/shared_contexts/digests.rb
2016
+ - spec/shared_contexts/https.rb
1994
2017
  - spec/shared_contexts/types_setup.rb
1995
2018
  - spec/shared_examples/rhel_package_provider.rb
1996
2019
  - spec/spec_helper.rb
@@ -2168,6 +2191,7 @@ files:
2168
2191
  - spec/unit/hiera/scope_spec.rb
2169
2192
  - spec/unit/hiera_puppet_spec.rb
2170
2193
  - spec/unit/http/client_spec.rb
2194
+ - spec/unit/http/external_client_spec.rb
2171
2195
  - spec/unit/http/resolver_spec.rb
2172
2196
  - spec/unit/http/response_spec.rb
2173
2197
  - spec/unit/http/service/ca_spec.rb
@@ -2644,6 +2668,10 @@ files:
2644
2668
  - spec/unit/util/network_device/config_spec.rb
2645
2669
  - spec/unit/util/network_device/transport/base_spec.rb
2646
2670
  - spec/unit/util/network_device_spec.rb
2671
+ - spec/unit/util/package/version/debian_spec.rb
2672
+ - spec/unit/util/package/version/pip_spec.rb
2673
+ - spec/unit/util/package/version/range_spec.rb
2674
+ - spec/unit/util/package/version/rpm_spec.rb
2647
2675
  - spec/unit/util/package_spec.rb
2648
2676
  - spec/unit/util/pidlock_spec.rb
2649
2677
  - spec/unit/util/plist_spec.rb
@@ -2658,6 +2686,7 @@ files:
2658
2686
  - spec/unit/util/reference_spec.rb
2659
2687
  - spec/unit/util/resource_template_spec.rb
2660
2688
  - spec/unit/util/retry_action_spec.rb
2689
+ - spec/unit/util/rpm_compare_spec.rb
2661
2690
  - spec/unit/util/rubygems_spec.rb
2662
2691
  - spec/unit/util/run_mode_spec.rb
2663
2692
  - spec/unit/util/selinux_spec.rb
@@ -2786,6 +2815,10 @@ test_files:
2786
2815
  - spec/fixtures/ssl/signed.pem
2787
2816
  - spec/fixtures/ssl/tampered-cert.pem
2788
2817
  - spec/fixtures/ssl/tampered-csr.pem
2818
+ - spec/fixtures/ssl/unknown-127.0.0.1-key.pem
2819
+ - spec/fixtures/ssl/unknown-127.0.0.1.pem
2820
+ - spec/fixtures/ssl/unknown-ca-key.pem
2821
+ - spec/fixtures/ssl/unknown-ca.pem
2789
2822
  - spec/fixtures/stdlib.tgz
2790
2823
  - spec/fixtures/unit/application/environments/production/data/common.yaml
2791
2824
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -3055,7 +3088,7 @@ test_files:
3055
3088
  - spec/fixtures/unit/provider/cron/crontab/vixie_header.txt
3056
3089
  - spec/fixtures/unit/provider/cron/parsed/managed
3057
3090
  - spec/fixtures/unit/provider/cron/parsed/simple
3058
- - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt
3091
+ - spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-enabled.txt
3059
3092
  - spec/fixtures/unit/provider/package/gem/gem-list-single-package
3060
3093
  - spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning
3061
3094
  - spec/fixtures/unit/provider/package/openbsd/pkginfo.detail
@@ -3083,6 +3116,7 @@ test_files:
3083
3116
  - spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt
3084
3117
  - spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt
3085
3118
  - spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt
3119
+ - spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt
3086
3120
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out
3087
3121
  - spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out
3088
3122
  - spec/fixtures/unit/provider/parsedfile/aliases.txt
@@ -3117,9 +3151,12 @@ test_files:
3117
3151
  - spec/fixtures/yaml/report2.6.x.yaml
3118
3152
  - spec/fixtures/yaml/test.local.yaml
3119
3153
  - spec/integration/agent/logging_spec.rb
3154
+ - spec/integration/application/agent_spec.rb
3120
3155
  - spec/integration/application/apply_spec.rb
3121
3156
  - spec/integration/application/doc_spec.rb
3157
+ - spec/integration/application/filebucket_spec.rb
3122
3158
  - spec/integration/application/lookup_spec.rb
3159
+ - spec/integration/application/plugin_spec.rb
3123
3160
  - spec/integration/configurer_spec.rb
3124
3161
  - spec/integration/data_binding_spec.rb
3125
3162
  - spec/integration/defaults_spec.rb
@@ -3130,7 +3167,6 @@ test_files:
3130
3167
  - spec/integration/environments/settings_spec.rb
3131
3168
  - spec/integration/faces/config_spec.rb
3132
3169
  - spec/integration/faces/documentation_spec.rb
3133
- - spec/integration/faces/plugin_spec.rb
3134
3170
  - spec/integration/file_bucket/file_spec.rb
3135
3171
  - spec/integration/file_serving/content_spec.rb
3136
3172
  - spec/integration/file_serving/fileset_spec.rb
@@ -3143,6 +3179,7 @@ test_files:
3143
3179
  - spec/integration/indirector/facts/facter_spec.rb
3144
3180
  - spec/integration/indirector/file_content/file_server_spec.rb
3145
3181
  - spec/integration/indirector/file_metadata/file_server_spec.rb
3182
+ - spec/integration/indirector/report/yaml.rb
3146
3183
  - spec/integration/module_tool/forge_spec.rb
3147
3184
  - spec/integration/module_tool/tar/mini_spec.rb
3148
3185
  - spec/integration/network/authconfig_spec.rb
@@ -3231,6 +3268,7 @@ test_files:
3231
3268
  - spec/lib/puppet_spec/modules.rb
3232
3269
  - spec/lib/puppet_spec/network.rb
3233
3270
  - spec/lib/puppet_spec/pops.rb
3271
+ - spec/lib/puppet_spec/puppetserver.rb
3234
3272
  - spec/lib/puppet_spec/scope.rb
3235
3273
  - spec/lib/puppet_spec/settings.rb
3236
3274
  - spec/lib/puppet_spec/ssl.rb
@@ -3250,6 +3288,7 @@ test_files:
3250
3288
  - spec/shared_behaviours/things_that_declare_options.rb
3251
3289
  - spec/shared_contexts/checksum.rb
3252
3290
  - spec/shared_contexts/digests.rb
3291
+ - spec/shared_contexts/https.rb
3253
3292
  - spec/shared_contexts/types_setup.rb
3254
3293
  - spec/shared_examples/rhel_package_provider.rb
3255
3294
  - spec/spec_helper.rb
@@ -3427,6 +3466,7 @@ test_files:
3427
3466
  - spec/unit/hiera/scope_spec.rb
3428
3467
  - spec/unit/hiera_puppet_spec.rb
3429
3468
  - spec/unit/http/client_spec.rb
3469
+ - spec/unit/http/external_client_spec.rb
3430
3470
  - spec/unit/http/resolver_spec.rb
3431
3471
  - spec/unit/http/response_spec.rb
3432
3472
  - spec/unit/http/service/ca_spec.rb
@@ -3903,6 +3943,10 @@ test_files:
3903
3943
  - spec/unit/util/network_device/config_spec.rb
3904
3944
  - spec/unit/util/network_device/transport/base_spec.rb
3905
3945
  - spec/unit/util/network_device_spec.rb
3946
+ - spec/unit/util/package/version/debian_spec.rb
3947
+ - spec/unit/util/package/version/pip_spec.rb
3948
+ - spec/unit/util/package/version/range_spec.rb
3949
+ - spec/unit/util/package/version/rpm_spec.rb
3906
3950
  - spec/unit/util/package_spec.rb
3907
3951
  - spec/unit/util/pidlock_spec.rb
3908
3952
  - spec/unit/util/plist_spec.rb
@@ -3917,6 +3961,7 @@ test_files:
3917
3961
  - spec/unit/util/reference_spec.rb
3918
3962
  - spec/unit/util/resource_template_spec.rb
3919
3963
  - spec/unit/util/retry_action_spec.rb
3964
+ - spec/unit/util/rpm_compare_spec.rb
3920
3965
  - spec/unit/util/rubygems_spec.rb
3921
3966
  - spec/unit/util/run_mode_spec.rb
3922
3967
  - spec/unit/util/selinux_spec.rb