puppet 6.19.0-x64-mingw32 → 6.22.1-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 (212) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +50 -39
  5. data/ext/project_data.yaml +2 -2
  6. data/lib/puppet/application.rb +10 -6
  7. data/lib/puppet/application/agent.rb +1 -0
  8. data/lib/puppet/application/apply.rb +3 -2
  9. data/lib/puppet/application/device.rb +1 -0
  10. data/lib/puppet/application/filebucket.rb +2 -2
  11. data/lib/puppet/application/script.rb +1 -0
  12. data/lib/puppet/application/ssl.rb +11 -0
  13. data/lib/puppet/application_support.rb +7 -0
  14. data/lib/puppet/configurer.rb +28 -18
  15. data/lib/puppet/defaults.rb +46 -20
  16. data/lib/puppet/environments.rb +54 -55
  17. data/lib/puppet/face/config.rb +10 -0
  18. data/lib/puppet/face/epp.rb +12 -2
  19. data/lib/puppet/face/facts.rb +158 -0
  20. data/lib/puppet/ffi/posix.rb +10 -0
  21. data/lib/puppet/ffi/posix/constants.rb +14 -0
  22. data/lib/puppet/ffi/posix/functions.rb +24 -0
  23. data/lib/puppet/file_system/memory_file.rb +8 -1
  24. data/lib/puppet/file_system/windows.rb +2 -0
  25. data/lib/puppet/functions/epp.rb +1 -0
  26. data/lib/puppet/functions/inline_epp.rb +1 -0
  27. data/lib/puppet/functions/partition.rb +8 -0
  28. data/lib/puppet/indirector/fact_search.rb +60 -0
  29. data/lib/puppet/indirector/facts/facter.rb +24 -3
  30. data/lib/puppet/indirector/facts/json.rb +27 -0
  31. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  32. data/lib/puppet/indirector/json.rb +5 -1
  33. data/lib/puppet/indirector/node/json.rb +8 -0
  34. data/lib/puppet/indirector/report/json.rb +34 -0
  35. data/lib/puppet/module_tool/applications/installer.rb +48 -2
  36. data/lib/puppet/module_tool/errors/shared.rb +17 -2
  37. data/lib/puppet/network/formats.rb +69 -1
  38. data/lib/puppet/network/http/factory.rb +4 -0
  39. data/lib/puppet/pal/pal_impl.rb +70 -17
  40. data/lib/puppet/parser/ast/leaf.rb +3 -2
  41. data/lib/puppet/parser/templatewrapper.rb +1 -1
  42. data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
  43. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
  44. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  45. data/lib/puppet/property/list.rb +1 -1
  46. data/lib/puppet/provider/group/groupadd.rb +13 -8
  47. data/lib/puppet/provider/package/apt.rb +34 -2
  48. data/lib/puppet/provider/package/aptitude.rb +6 -0
  49. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  50. data/lib/puppet/provider/service/debian.rb +2 -0
  51. data/lib/puppet/provider/service/systemd.rb +1 -1
  52. data/lib/puppet/provider/user/aix.rb +2 -2
  53. data/lib/puppet/provider/user/useradd.rb +62 -8
  54. data/lib/puppet/reference/configuration.rb +6 -5
  55. data/lib/puppet/settings.rb +43 -15
  56. data/lib/puppet/settings/alias_setting.rb +37 -0
  57. data/lib/puppet/settings/base_setting.rb +26 -2
  58. data/lib/puppet/settings/environment_conf.rb +1 -0
  59. data/lib/puppet/type/package.rb +3 -3
  60. data/lib/puppet/util/autoload.rb +1 -8
  61. data/lib/puppet/util/fact_dif.rb +81 -0
  62. data/lib/puppet/util/monkey_patches.rb +7 -0
  63. data/lib/puppet/util/posix.rb +54 -5
  64. data/lib/puppet/util/rubygems.rb +5 -1
  65. data/lib/puppet/util/windows/adsi.rb +46 -0
  66. data/lib/puppet/util/windows/api_types.rb +1 -1
  67. data/lib/puppet/util/windows/principal.rb +9 -2
  68. data/lib/puppet/util/windows/service.rb +1 -1
  69. data/lib/puppet/util/windows/sid.rb +4 -2
  70. data/lib/puppet/version.rb +1 -1
  71. data/locales/puppet.pot +295 -219
  72. data/man/man5/puppet.conf.5 +15 -7
  73. data/man/man8/puppet-agent.8 +2 -2
  74. data/man/man8/puppet-apply.8 +2 -2
  75. data/man/man8/puppet-catalog.8 +1 -1
  76. data/man/man8/puppet-config.8 +1 -1
  77. data/man/man8/puppet-describe.8 +1 -1
  78. data/man/man8/puppet-device.8 +2 -2
  79. data/man/man8/puppet-doc.8 +1 -1
  80. data/man/man8/puppet-epp.8 +1 -1
  81. data/man/man8/puppet-facts.8 +90 -1
  82. data/man/man8/puppet-filebucket.8 +3 -3
  83. data/man/man8/puppet-generate.8 +1 -1
  84. data/man/man8/puppet-help.8 +1 -1
  85. data/man/man8/puppet-key.8 +1 -1
  86. data/man/man8/puppet-lookup.8 +1 -1
  87. data/man/man8/puppet-man.8 +1 -1
  88. data/man/man8/puppet-module.8 +1 -1
  89. data/man/man8/puppet-node.8 +4 -1
  90. data/man/man8/puppet-parser.8 +1 -1
  91. data/man/man8/puppet-plugin.8 +1 -1
  92. data/man/man8/puppet-report.8 +4 -1
  93. data/man/man8/puppet-resource.8 +1 -1
  94. data/man/man8/puppet-script.8 +2 -2
  95. data/man/man8/puppet-ssl.8 +5 -1
  96. data/man/man8/puppet-status.8 +1 -1
  97. data/man/man8/puppet.8 +2 -2
  98. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
  99. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  100. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  101. data/spec/integration/application/agent_spec.rb +160 -3
  102. data/spec/integration/application/apply_spec.rb +19 -0
  103. data/spec/integration/application/plugin_spec.rb +1 -1
  104. data/spec/integration/defaults_spec.rb +0 -7
  105. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  106. data/spec/integration/http/client_spec.rb +12 -0
  107. data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
  108. data/spec/integration/resource/type_collection_spec.rb +2 -6
  109. data/spec/integration/transaction_spec.rb +4 -9
  110. data/spec/integration/util/windows/adsi_spec.rb +21 -1
  111. data/spec/integration/util/windows/principal_spec.rb +21 -0
  112. data/spec/integration/util/windows/registry_spec.rb +6 -10
  113. data/spec/lib/puppet_spec/settings.rb +6 -1
  114. data/spec/spec_helper.rb +12 -5
  115. data/spec/unit/agent_spec.rb +8 -6
  116. data/spec/unit/application/agent_spec.rb +0 -1
  117. data/spec/unit/application/config_spec.rb +224 -4
  118. data/spec/unit/application/facts_spec.rb +482 -3
  119. data/spec/unit/application/filebucket_spec.rb +0 -2
  120. data/spec/unit/application/ssl_spec.rb +23 -0
  121. data/spec/unit/application_spec.rb +51 -9
  122. data/spec/unit/confine/feature_spec.rb +1 -1
  123. data/spec/unit/confine_spec.rb +8 -2
  124. data/spec/unit/defaults_spec.rb +36 -1
  125. data/spec/unit/environments_spec.rb +221 -68
  126. data/spec/unit/face/config_spec.rb +27 -32
  127. data/spec/unit/face/facts_spec.rb +4 -0
  128. data/spec/unit/face/node_spec.rb +0 -11
  129. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
  130. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  131. data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
  132. data/spec/unit/file_system_spec.rb +9 -0
  133. data/spec/unit/forge/module_release_spec.rb +2 -7
  134. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  135. data/spec/unit/http/service/compiler_spec.rb +49 -0
  136. data/spec/unit/http/service_spec.rb +1 -1
  137. data/spec/unit/indirector/face_spec.rb +0 -1
  138. data/spec/unit/indirector/facts/facter_spec.rb +95 -1
  139. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  140. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
  141. data/spec/unit/indirector/indirection_spec.rb +8 -12
  142. data/spec/unit/indirector/key/file_spec.rb +0 -1
  143. data/spec/unit/indirector/node/json_spec.rb +33 -0
  144. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  145. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  146. data/spec/unit/indirector_spec.rb +2 -2
  147. data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
  148. data/spec/unit/network/authconfig_spec.rb +0 -3
  149. data/spec/unit/network/formats_spec.rb +41 -0
  150. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
  151. data/spec/unit/network/http/factory_spec.rb +19 -0
  152. data/spec/unit/network/http/handler_spec.rb +0 -5
  153. data/spec/unit/parser/compiler_spec.rb +3 -19
  154. data/spec/unit/parser/resource_spec.rb +14 -8
  155. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  156. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  157. data/spec/unit/property_spec.rb +1 -0
  158. data/spec/unit/provider/group/groupadd_spec.rb +5 -2
  159. data/spec/unit/provider/nameservice_spec.rb +66 -65
  160. data/spec/unit/provider/package/apt_spec.rb +28 -23
  161. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  162. data/spec/unit/provider/package/base_spec.rb +6 -5
  163. data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
  164. data/spec/unit/provider/package/pacman_spec.rb +18 -12
  165. data/spec/unit/provider/package/pip_spec.rb +6 -11
  166. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
  167. data/spec/unit/provider/service/systemd_spec.rb +11 -0
  168. data/spec/unit/provider/user/aix_spec.rb +5 -0
  169. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  170. data/spec/unit/provider/user/pw_spec.rb +2 -0
  171. data/spec/unit/provider/user/useradd_spec.rb +71 -3
  172. data/spec/unit/provider_spec.rb +8 -10
  173. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  174. data/spec/unit/resource/capability_finder_spec.rb +6 -1
  175. data/spec/unit/resource/catalog_spec.rb +1 -1
  176. data/spec/unit/resource/type_spec.rb +1 -1
  177. data/spec/unit/resource_spec.rb +11 -10
  178. data/spec/unit/settings_spec.rb +543 -228
  179. data/spec/unit/ssl/base_spec.rb +0 -1
  180. data/spec/unit/ssl/host_spec.rb +0 -5
  181. data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
  182. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
  183. data/spec/unit/transaction/event_manager_spec.rb +14 -11
  184. data/spec/unit/transaction_spec.rb +13 -4
  185. data/spec/unit/type/file/content_spec.rb +0 -1
  186. data/spec/unit/type/file/selinux_spec.rb +0 -2
  187. data/spec/unit/type/file_spec.rb +0 -6
  188. data/spec/unit/type/group_spec.rb +13 -6
  189. data/spec/unit/type/resources_spec.rb +7 -7
  190. data/spec/unit/type/service_spec.rb +1 -1
  191. data/spec/unit/type/tidy_spec.rb +0 -1
  192. data/spec/unit/type_spec.rb +2 -2
  193. data/spec/unit/util/at_fork_spec.rb +2 -2
  194. data/spec/unit/util/autoload_spec.rb +5 -1
  195. data/spec/unit/util/backups_spec.rb +1 -2
  196. data/spec/unit/util/execution_spec.rb +15 -11
  197. data/spec/unit/util/inifile_spec.rb +6 -14
  198. data/spec/unit/util/log_spec.rb +8 -7
  199. data/spec/unit/util/logging_spec.rb +3 -3
  200. data/spec/unit/util/posix_spec.rb +363 -15
  201. data/spec/unit/util/rubygems_spec.rb +2 -2
  202. data/spec/unit/util/selinux_spec.rb +76 -52
  203. data/spec/unit/util/storage_spec.rb +3 -1
  204. data/spec/unit/util/suidmanager_spec.rb +44 -41
  205. data/spec/unit/util/windows/sid_spec.rb +6 -0
  206. data/spec/unit/util_spec.rb +13 -6
  207. metadata +31 -16
  208. data/spec/integration/application/config_spec.rb +0 -74
  209. data/spec/lib/matchers/include.rb +0 -27
  210. data/spec/lib/matchers/include_spec.rb +0 -32
  211. data/spec/unit/face/catalog_spec.rb +0 -6
  212. data/spec/unit/face/module_spec.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2e4357cafdc23fb83474814b2ce8a4fbd4975980171e3f973bd5df8ef542bba
4
- data.tar.gz: '080c5f00f7ba8ea052e56b7619151344bed4eb316b54e0635046e6d56ffbc414'
3
+ metadata.gz: '049a5917d94b3ac0a7fd264febc60514f8994fd64470565a9c66ec6b003a935b'
4
+ data.tar.gz: 40d7545a3870dca5da3e4c631e6707dcb8db2ccb798fd39f7e4cfc0c7fdddcdb
5
5
  SHA512:
6
- metadata.gz: 7bf762c3a6772ddf89d3e4c2cb6b7b8167689a3a2b56e7008fff884d9fc8e7242b4f3087f3492faa400491c0725a676de8bc6c6860a644fa694497719d678b5e
7
- data.tar.gz: '095a9120765d79a27b6dab5f346574e046226a5ea949049f263aadc5b2f04a991e83fd67a1b1407befd4ed8319d7dd0db73498739f0ccf807adf905bf8e549a9'
6
+ metadata.gz: d02e151f5f7adfeae5627cb749d38e553bebddc58d8912d016d66cb17776b280dd127b31f457ac2e962e0a2563486323ef9c7f244c93cb5c30ec7008b4751db1
7
+ data.tar.gz: fcc93c47f9ed12b437efe595c9f8b34c38886fc4238286c23b55dd77e1fd212f037102e7b5275cb5db996073fb8f55ddf379c8fabebe0849cdc1b67d4ad49a2b
data/CODEOWNERS CHANGED
@@ -1,23 +1,9 @@
1
- # default to platform-core
2
- * @puppetlabs/platform-core @puppetlabs/puppetserver-maintainers
3
-
4
- # Night's Watch
5
- /lib/puppet/type/group @puppetlabs/night-s-watch
6
- /lib/puppet/type/package @puppetlabs/night-s-watch
7
- /lib/puppet/type/service @puppetlabs/night-s-watch
8
- /lib/puppet/type/user @puppetlabs/night-s-watch
9
- /lib/puppet/provider/group @puppetlabs/night-s-watch
10
- /lib/puppet/provider/package @puppetlabs/night-s-watch
11
- /lib/puppet/provider/service @puppetlabs/night-s-watch
12
- /lib/puppet/provider/user @puppetlabs/night-s-watch
1
+ # defaults
2
+ * @puppetlabs/platform-core @puppetlabs/puppetserver-maintainers @puppetlabs/night-s-watch
13
3
 
14
4
  # PAL
15
5
  /lib/puppet/pal @puppetlabs/bolt
16
6
 
17
- # puppet device
18
- /lib/puppet/application/device.rb @puppetlabs/networking
19
- /lib/puppet/util/network_device @puppetlabs/networking
20
-
21
7
  # puppet module
22
8
  /lib/puppet/application/module.rb @puppetlabs/pdk
23
9
  /lib/puppet/face/module @puppetlabs/pdk
data/Gemfile CHANGED
@@ -38,9 +38,11 @@ group(:features) do
38
38
  end
39
39
 
40
40
  group(:test) do
41
+ gem "ffi", require: false
41
42
  gem "json-schema", "~> 2.0", require: false
42
43
  gem "rake", *location_for(ENV['RAKE_LOCATION'] || '~> 12.2')
43
44
  gem "rspec", "~> 3.1", require: false
45
+ gem "rspec-expectations", ["~> 3.9", "!= 3.9.3"]
44
46
  gem "rspec-its", "~> 1.1", require: false
45
47
  gem 'vcr', '~> 5.0', require: false
46
48
  gem 'webmock', '~> 3.0', require: false
@@ -54,7 +56,7 @@ group(:development, optional: true) do
54
56
  gem 'memory_profiler', require: false, platforms: [:mri]
55
57
  gem 'pry', require: false, platforms: [:ruby]
56
58
  gem "racc", "1.4.9", require: false, platforms: [:ruby]
57
- if RUBY_PLATFORM != 'java'
59
+ if RUBY_PLATFORM != 'java' && RUBY_VERSION.to_f >= 2.5
58
60
  gem 'ruby-prof', '>= 0.16.0', require: false
59
61
  end
60
62
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,18 @@
1
+ GIT
2
+ remote: git://github.com/ciprianbadescu/packaging
3
+ revision: 5f8d2bda941abfeeb8fb1731c9b1dd4d108f5d33
4
+ branch: maint/windows-signing
5
+ specs:
6
+ packaging (0.99.49.171.g5f8d2bd)
7
+ artifactory (~> 2)
8
+ csv (= 3.1.5)
9
+ rake (>= 12.3)
10
+ release-metrics
11
+
1
12
  PATH
2
13
  remote: .
3
14
  specs:
4
- puppet (6.19.0)
15
+ puppet (6.22.1)
5
16
  CFPropertyList (~> 2.2)
6
17
  concurrent-ruby (~> 1.0)
7
18
  deep_merge (~> 1.0)
@@ -20,18 +31,20 @@ GEM
20
31
  addressable (2.7.0)
21
32
  public_suffix (>= 2.0.2, < 5.0)
22
33
  artifactory (2.8.2)
23
- ast (2.4.1)
34
+ ast (2.4.2)
24
35
  coderay (1.1.3)
25
- concurrent-ruby (1.1.7)
26
- crack (0.4.4)
36
+ concurrent-ruby (1.1.8)
37
+ crack (0.4.5)
38
+ rexml
27
39
  csv (3.1.5)
28
40
  deep_merge (1.2.1)
29
41
  diff-lcs (1.4.4)
30
42
  docopt (0.6.1)
31
- facter (4.0.43)
43
+ facter (4.1.1)
32
44
  hocon (~> 1.3)
33
45
  thor (>= 1.0.1, < 2.0)
34
46
  fast_gettext (1.1.2)
47
+ ffi (1.15.0)
35
48
  gettext (3.2.9)
36
49
  locale (>= 2.0.5)
37
50
  text (>= 1.3.0)
@@ -40,70 +53,66 @@ GEM
40
53
  gettext (>= 3.0.2, < 3.3.0)
41
54
  locale
42
55
  hashdiff (1.0.1)
43
- hiera (3.6.0)
44
- hiera-eyaml (3.2.0)
45
- highline (~> 1.6.19)
56
+ hiera (3.7.0)
57
+ hiera-eyaml (3.2.1)
58
+ highline
46
59
  optimist
47
- highline (1.6.21)
60
+ highline (2.0.3)
48
61
  hocon (1.3.1)
49
62
  hpricot (0.8.6)
50
63
  httpclient (2.8.3)
51
64
  json-schema (2.8.1)
52
65
  addressable (>= 2.4)
53
66
  locale (2.1.3)
54
- memory_profiler (0.9.14)
67
+ memory_profiler (1.0.0)
55
68
  method_source (1.0.0)
56
69
  minitar (0.9)
57
- msgpack (1.3.3)
70
+ msgpack (1.4.2)
58
71
  multi_json (1.15.0)
59
72
  mustache (1.1.1)
60
73
  optimist (3.0.1)
61
- packaging (0.99.71)
62
- artifactory (~> 2)
63
- csv (= 3.1.5)
64
- rake (>= 12.3)
65
- release-metrics
66
- parallel (1.19.2)
74
+ parallel (1.20.1)
67
75
  parser (2.7.2.0)
68
76
  ast (~> 2.4.1)
69
- powerpack (0.1.2)
70
- pry (0.13.1)
77
+ powerpack (0.1.3)
78
+ pry (0.14.1)
71
79
  coderay (~> 1.1)
72
80
  method_source (~> 1.0)
73
81
  public_suffix (4.0.6)
74
82
  puppet-resource_api (1.8.13)
75
83
  hocon (>= 1.0)
76
- puppetserver-ca (1.8.0)
84
+ puppetserver-ca (1.9.4)
77
85
  facter (>= 2.0.1, < 5)
78
86
  racc (1.4.9)
79
87
  rainbow (2.2.2)
80
88
  rake
81
89
  rake (12.3.3)
82
90
  rdiscount (2.2.0.2)
83
- rdoc (6.2.1)
91
+ rdoc (6.3.0)
84
92
  release-metrics (1.1.0)
85
93
  csv
86
94
  docopt
95
+ rexml (3.2.5)
87
96
  ronn (0.7.3)
88
97
  hpricot (>= 0.8.2)
89
98
  mustache (>= 0.7.0)
90
99
  rdiscount (>= 1.5.8)
91
- rspec (3.9.0)
92
- rspec-core (~> 3.9.0)
93
- rspec-expectations (~> 3.9.0)
94
- rspec-mocks (~> 3.9.0)
95
- rspec-core (3.9.3)
96
- rspec-support (~> 3.9.3)
97
- rspec-expectations (3.9.2)
100
+ rspec (3.10.0)
101
+ rspec-core (~> 3.10.0)
102
+ rspec-expectations (~> 3.10.0)
103
+ rspec-mocks (~> 3.10.0)
104
+ rspec-core (3.10.1)
105
+ rspec-support (~> 3.10.0)
106
+ rspec-expectations (3.10.1)
98
107
  diff-lcs (>= 1.2.0, < 2.0)
99
- rspec-support (~> 3.9.0)
108
+ rspec-support (~> 3.10.0)
100
109
  rspec-its (1.3.0)
101
110
  rspec-core (>= 3.0.0)
102
111
  rspec-expectations (>= 3.0.0)
103
- rspec-mocks (3.9.1)
112
+ rspec-mocks (3.10.2)
104
113
  diff-lcs (>= 1.2.0, < 2.0)
105
- rspec-support (~> 3.9.0)
106
- rspec-support (3.9.3)
114
+ rspec-support (~> 3.10.0)
115
+ rspec-support (3.10.2)
107
116
  rubocop (0.49.1)
108
117
  parallel (~> 1.10)
109
118
  parser (>= 2.3.3.1, < 3.0)
@@ -113,24 +122,25 @@ GEM
113
122
  unicode-display_width (~> 1.0, >= 1.0.1)
114
123
  rubocop-i18n (1.2.0)
115
124
  rubocop (~> 0.49.0)
116
- ruby-prof (1.4.1)
117
- ruby-progressbar (1.10.1)
118
- semantic_puppet (1.0.2)
125
+ ruby-prof (1.4.3)
126
+ ruby-progressbar (1.11.0)
127
+ semantic_puppet (1.0.3)
119
128
  text (1.3.1)
120
- thor (1.0.1)
129
+ thor (1.1.0)
121
130
  unicode-display_width (1.7.0)
122
131
  vcr (5.1.0)
123
- webmock (3.9.3)
132
+ webmock (3.12.2)
124
133
  addressable (>= 2.3.6)
125
134
  crack (>= 0.3.2)
126
135
  hashdiff (>= 0.4.0, < 2.0.0)
127
- yard (0.9.25)
136
+ yard (0.9.26)
128
137
 
129
138
  PLATFORMS
130
139
  ruby
131
140
 
132
141
  DEPENDENCIES
133
142
  diff-lcs (~> 1.3)
143
+ ffi
134
144
  gettext-setup (~> 0.28)
135
145
  hiera-eyaml
136
146
  hocon (~> 1.0)
@@ -138,7 +148,7 @@ DEPENDENCIES
138
148
  memory_profiler
139
149
  minitar (~> 0.9)
140
150
  msgpack (~> 1.2)
141
- packaging (~> 0.99)
151
+ packaging!
142
152
  pry
143
153
  puppet!
144
154
  puppet-resource_api (~> 1.5)
@@ -148,6 +158,7 @@ DEPENDENCIES
148
158
  rdoc (~> 6.0)
149
159
  ronn (~> 0.7.3)
150
160
  rspec (~> 3.1)
161
+ rspec-expectations (~> 3.9, != 3.9.3)
151
162
  rspec-its (~> 1.1)
152
163
  rubocop (~> 0.49)
153
164
  rubocop-i18n (~> 1.2.0)
@@ -41,7 +41,7 @@ gem_platform_dependencies:
41
41
  gem_runtime_dependencies:
42
42
  ffi: ['> 1.9.24', '< 2']
43
43
  # win32-xxxx gems are pinned due to PUP-6445
44
- win32-dir: '= 0.4.9'
44
+ win32-dir: ['>= 0.4.9', '<= 0.7.2']
45
45
  win32-process: '= 0.7.5'
46
46
  # Use of win32-security is deprecated
47
47
  win32-security: '= 0.2.5'
@@ -51,7 +51,7 @@ gem_platform_dependencies:
51
51
  gem_runtime_dependencies:
52
52
  ffi: ['> 1.9.24', '< 2']
53
53
  # win32-xxxx gems are pinned due to PUP-6445
54
- win32-dir: '= 0.4.9'
54
+ win32-dir: ['>= 0.4.9', '<= 0.7.2']
55
55
  win32-process: '= 0.7.5'
56
56
  # Use of win32-security is deprecated
57
57
  win32-security: '= 0.2.5'
@@ -420,12 +420,16 @@ class Application
420
420
  def handle_logdest_arg(arg)
421
421
  return if arg.nil?
422
422
 
423
- begin
424
- Puppet[:logdest] = arg
425
- Puppet::Util::Log.newdestination(arg)
426
- options[:setdest] = true
427
- rescue => detail
428
- Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
423
+ logdest = arg.split(',').map!(&:strip)
424
+ Puppet[:logdest] = arg
425
+
426
+ logdest.each do |dest|
427
+ begin
428
+ Puppet::Util::Log.newdestination(dest)
429
+ options[:setdest] = true
430
+ rescue => detail
431
+ Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
432
+ end
429
433
  end
430
434
  end
431
435
 
@@ -267,6 +267,7 @@ generated by running puppet agent with '--genconfig'.
267
267
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
268
268
  file. If debugging or verbosity is enabled, this defaults to 'console'.
269
269
  Otherwise, it defaults to 'syslog' on POSIX systems and 'eventlog' on Windows.
270
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
270
271
 
271
272
  A path ending with '.json' will receive structured output in JSON format. The
272
273
  log file will not have an ending ']' automatically written to it due to the
@@ -113,6 +113,7 @@ configuration options by running puppet with
113
113
  Where to send log messages. Choose between 'syslog' (the POSIX syslog
114
114
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
115
115
  file. Defaults to 'console'.
116
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
116
117
 
117
118
  A path ending with '.json' will receive structured output in JSON format. The
118
119
  log file will not have an ending ']' automatically written to it due to the
@@ -236,7 +237,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
236
237
  end
237
238
 
238
239
  # Resolve all deferred values and replace them / mutate the catalog
239
- Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog)
240
+ Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog, apply_environment)
240
241
 
241
242
  # Translate it to a RAL catalog
242
243
  catalog = catalog.to_ral
@@ -330,7 +331,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
330
331
  raise Puppet::Error, _("Could not deserialize catalog from %{format}: %{detail}") % { format: format, detail: detail }, detail.backtrace
331
332
  end
332
333
  # Resolve all deferred values and replace them / mutate the catalog
333
- Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog)
334
+ Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog, configured_environment)
334
335
 
335
336
  catalog.to_ral
336
337
  end
@@ -155,6 +155,7 @@ you can specify '--server <servername>' as an argument.
155
155
  Where to send log messages. Choose between 'syslog' (the POSIX syslog
156
156
  service), 'console', or the path to a log file. If debugging or verbosity is
157
157
  enabled, this defaults to 'console'. Otherwise, it defaults to 'syslog'.
158
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
158
159
 
159
160
  A path ending with '.json' will receive structured output in JSON format. The
160
161
  log file will not have an ending ']' automatically written to it due to the
@@ -186,8 +186,8 @@ EXAMPLES
186
186
  $ puppet filebucket -b /tmp/TestBucket list
187
187
  d41d8cd98f00b204e9800998ecf8427e 2015-05-11 09:33:22 /tmp/TestFile2
188
188
 
189
- ## From a Puppet master, list files in the master bucketdir
190
- $ puppet filebucket -b $(puppet config print bucketdir --section master) list
189
+ ## From a Puppet Server, list files in the server bucketdir
190
+ $ puppet filebucket -b $(puppet config print bucketdir --section server) list
191
191
  d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
192
192
  7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
193
193
 
@@ -71,6 +71,7 @@ configuration options can also be generated by running puppet with
71
71
  Where to send log messages. Choose between 'syslog' (the POSIX syslog
72
72
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
73
73
  file. Defaults to 'console'.
74
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
74
75
 
75
76
  A path ending with '.json' will receive structured output in JSON format. The
76
77
  log file will not have an ending ']' automatically written to it due to the
@@ -74,6 +74,9 @@ ACTIONS
74
74
  `--localca` is specified, then also remove this host's local copy of the
75
75
  CA certificate(s) and CRL bundle. if `--target CERTNAME` is specified, then
76
76
  remove the files for the specified device on this host instead of this host.
77
+
78
+ * show:
79
+ Print the full-text version of this host's certificate.
77
80
  HELP
78
81
  end
79
82
 
@@ -142,11 +145,19 @@ HELP
142
145
  end
143
146
  @machine.ensure_client_certificate
144
147
  Puppet.notice(_("Completed SSL initialization"))
148
+ when 'show'
149
+ show(certname)
145
150
  else
146
151
  raise Puppet::Error, _("Unknown action '%{action}'") % { action: action }
147
152
  end
148
153
  end
149
154
 
155
+ def show(certname)
156
+ password = @cert_provider.load_private_key_password
157
+ ssl_context = @ssl_provider.load_context(certname: certname, password: password)
158
+ puts ssl_context.client_cert.to_text
159
+ end
160
+
150
161
  def submit_request(ssl_context)
151
162
  key = @cert_provider.load_private_key(Puppet[:certname])
152
163
  unless key
@@ -53,6 +53,13 @@ module Puppet
53
53
  route_file = Puppet[:route_file]
54
54
  if Puppet::FileSystem.exist?(route_file)
55
55
  routes = Puppet::Util::Yaml.safe_load_file(route_file, [Symbol])
56
+ if routes["server"] && routes["master"]
57
+ Puppet.warning("Route file #{route_file} contains both server and master route settings.")
58
+ elsif routes["server"] && !routes["master"]
59
+ routes["master"] = routes["server"]
60
+ elsif routes["master"] && !routes["server"]
61
+ routes["server"] = routes["master"]
62
+ end
56
63
  application_routes = routes[application_name]
57
64
  Puppet::Indirector.configure_routes(application_routes) if application_routes
58
65
  end
@@ -112,7 +112,7 @@ class Puppet::Configurer
112
112
  catalog_conversion_time = thinmark do
113
113
  # Will mutate the result and replace all Deferred values with resolved values
114
114
  if facts
115
- Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(facts, result)
115
+ Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(facts, result, Puppet.lookup(:current_environment))
116
116
  end
117
117
 
118
118
  catalog = result.to_ral
@@ -223,26 +223,23 @@ class Puppet::Configurer
223
223
  # mode. We shouldn't try to do any failover in that case.
224
224
  if options[:catalog].nil? && do_failover
225
225
  server, port = find_functional_server
226
- begin
227
- if server.nil?
228
- raise Puppet::Error, _("Could not select a functional puppet server from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
229
- else
230
- #TRANSLATORS 'server_list' is the name of a setting and should not be translated
231
- Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
232
- report.server_used = "#{server}:#{port}"
233
- end
234
- rescue Puppet::Error => detail
226
+ if server.nil?
227
+ detail = _("Could not select a functional puppet server from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
235
228
  if Puppet[:usecacheonfailure]
236
229
  options[:pluginsync] = false
237
230
  @running_failure = true
238
- if server.nil?
239
- server = Puppet[:server_list].first[0]
240
- port = Puppet[:server_list].first[1] || Puppet[:serverport]
241
- end
242
- Puppet.log_exception(detail)
231
+
232
+ server = Puppet[:server_list].first[0]
233
+ port = Puppet[:server_list].first[1] || Puppet[:serverport]
234
+
235
+ Puppet.err(detail)
243
236
  else
244
- raise detail
237
+ raise Puppet::Error, detail
245
238
  end
239
+ else
240
+ #TRANSLATORS 'server_list' is the name of a setting and should not be translated
241
+ Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
242
+ report.server_used = "#{server}:#{port}"
246
243
  end
247
244
  Puppet.override(server: server, serverport: port) do
248
245
  completed = run_internal(options)
@@ -400,16 +397,29 @@ class Puppet::Configurer
400
397
  if !cached_catalog && options[:catalog]
401
398
  ral_catalog = options[:catalog]
402
399
  else
400
+ # Ordering here matters. We have to resolve deferred resources in the
401
+ # resource catalog, convert the resource catalog to a RAL catalog (which
402
+ # triggers type/provider validation), and only if that is successful,
403
+ # should we cache the *original* resource catalog. However, deferred
404
+ # evaluation mutates the resource catalog, so we need to make a copy of
405
+ # it here. If PUP-9323 is ever implemented so that we resolve deferred
406
+ # resources in the RAL catalog as they are needed, then we could eliminate
407
+ # this step.
408
+ catalog_to_cache = Puppet.override(:rich_data => Puppet[:rich_data]) do
409
+ Puppet::Resource::Catalog.from_data_hash(catalog.to_data_hash)
410
+ end
411
+
403
412
  # REMIND @duration is the time spent loading the last catalog, and doesn't
404
413
  # account for things like we failed to download and fell back to the cache
405
414
  ral_catalog = convert_catalog(catalog, @duration, facts, options)
406
415
 
407
- # If not noop, commit the cached resource catalog (not ral catalog). Ideally
416
+ # Validation succeeded, so commit the `catalog_to_cache` for non-noop runs. Don't
417
+ # commit `catalog` since it contains the result of deferred evaluation. Ideally
408
418
  # we'd just copy the downloaded response body, instead of serializing the
409
419
  # in-memory catalog, but that's hard due to the indirector.
410
420
  indirection = Puppet::Resource::Catalog.indirection
411
421
  if !Puppet[:noop] && indirection.cache?
412
- request = indirection.request(:save, nil, catalog, environment: Puppet::Node::Environment.remote(catalog.environment))
422
+ request = indirection.request(:save, nil, catalog_to_cache, environment: Puppet::Node::Environment.remote(catalog_to_cache.environment))
413
423
  Puppet.info("Caching catalog for #{request.key}")
414
424
  indirection.cache.save(request)
415
425
  end