puppet 6.29.0-x64-mingw32 → 7.0.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 (811) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +5 -7
  5. data/Gemfile.lock +52 -143
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +2 -16
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/ext/solaris/pkginfo +6 -0
  87. data/ext/solaris/smf/puppetd.xml +77 -0
  88. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  89. data/ext/solaris/smf/svc-puppetd +71 -0
  90. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  91. data/ext/suse/puppet.spec +310 -0
  92. data/ext/suse/server.init +173 -0
  93. data/ext/windows/service/daemon.rb +6 -5
  94. data/ext/yaml_nodes.rb +105 -0
  95. data/install.rb +21 -17
  96. data/lib/puppet/agent.rb +11 -47
  97. data/lib/puppet/application/agent.rb +16 -18
  98. data/lib/puppet/application/apply.rb +4 -24
  99. data/lib/puppet/application/device.rb +100 -106
  100. data/lib/puppet/application/filebucket.rb +13 -10
  101. data/lib/puppet/application/lookup.rb +24 -74
  102. data/lib/puppet/application/resource.rb +16 -32
  103. data/lib/puppet/application/script.rb +0 -2
  104. data/lib/puppet/application/ssl.rb +1 -13
  105. data/lib/puppet/application.rb +178 -108
  106. data/lib/puppet/application_support.rb +0 -7
  107. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  108. data/lib/puppet/configurer/downloader.rb +1 -2
  109. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  110. data/lib/puppet/configurer.rb +86 -183
  111. data/lib/puppet/confine/variable.rb +1 -1
  112. data/lib/puppet/defaults.rb +130 -244
  113. data/lib/puppet/environments.rb +82 -146
  114. data/lib/puppet/face/facts.rb +5 -103
  115. data/lib/puppet/face/generate.rb +0 -2
  116. data/lib/puppet/face/help/action.erb +0 -1
  117. data/lib/puppet/face/help/face.erb +0 -1
  118. data/lib/puppet/face/help.rb +1 -1
  119. data/lib/puppet/face/node/clean.rb +0 -11
  120. data/lib/puppet/face/plugin.rb +5 -8
  121. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  122. data/lib/puppet/ffi/windows/constants.rb +404 -0
  123. data/lib/puppet/ffi/windows/functions.rb +628 -0
  124. data/lib/puppet/ffi/windows/structs.rb +338 -0
  125. data/lib/puppet/ffi/windows.rb +12 -0
  126. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  127. data/lib/puppet/file_serving/configuration.rb +0 -8
  128. data/lib/puppet/file_serving/fileset.rb +2 -14
  129. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  130. data/lib/puppet/file_serving/metadata.rb +0 -3
  131. data/lib/puppet/file_serving/mount/file.rb +4 -4
  132. data/lib/puppet/file_serving/mount.rb +1 -2
  133. data/lib/puppet/file_system/file_impl.rb +8 -10
  134. data/lib/puppet/file_system/jruby.rb +1 -1
  135. data/lib/puppet/file_system/memory_file.rb +1 -8
  136. data/lib/puppet/file_system/windows.rb +6 -8
  137. data/lib/puppet/file_system.rb +1 -1
  138. data/lib/puppet/forge/repository.rb +0 -1
  139. data/lib/puppet/forge.rb +4 -4
  140. data/lib/puppet/functions/all.rb +1 -1
  141. data/lib/puppet/functions/camelcase.rb +1 -1
  142. data/lib/puppet/functions/capitalize.rb +2 -2
  143. data/lib/puppet/functions/downcase.rb +2 -2
  144. data/lib/puppet/functions/empty.rb +0 -8
  145. data/lib/puppet/functions/find_template.rb +2 -2
  146. data/lib/puppet/functions/get.rb +5 -5
  147. data/lib/puppet/functions/group_by.rb +5 -13
  148. data/lib/puppet/functions/lest.rb +1 -1
  149. data/lib/puppet/functions/new.rb +100 -100
  150. data/lib/puppet/functions/next.rb +1 -18
  151. data/lib/puppet/functions/partition.rb +4 -12
  152. data/lib/puppet/functions/require.rb +5 -5
  153. data/lib/puppet/functions/sort.rb +3 -3
  154. data/lib/puppet/functions/strftime.rb +0 -1
  155. data/lib/puppet/functions/tree_each.rb +10 -7
  156. data/lib/puppet/functions/type.rb +4 -4
  157. data/lib/puppet/functions/unwrap.rb +2 -17
  158. data/lib/puppet/functions/upcase.rb +2 -2
  159. data/lib/puppet/functions/versioncmp.rb +2 -6
  160. data/lib/puppet/generate/models/type/type.rb +4 -1
  161. data/lib/puppet/generate/type.rb +0 -9
  162. data/lib/puppet/http/client.rb +167 -137
  163. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  164. data/lib/puppet/http/errors.rb +16 -0
  165. data/lib/puppet/http/external_client.rb +5 -7
  166. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  167. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  168. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  169. data/lib/puppet/http/proxy.rb +137 -0
  170. data/lib/puppet/http/redirector.rb +4 -17
  171. data/lib/puppet/http/resolver/server_list.rb +10 -25
  172. data/lib/puppet/http/resolver/settings.rb +4 -7
  173. data/lib/puppet/http/resolver/srv.rb +7 -11
  174. data/lib/puppet/http/resolver.rb +5 -15
  175. data/lib/puppet/http/response.rb +36 -54
  176. data/lib/puppet/http/response_converter.rb +24 -0
  177. data/lib/puppet/http/response_net_http.rb +42 -0
  178. data/lib/puppet/http/retry_after_handler.rb +4 -13
  179. data/lib/puppet/http/service/ca.rb +11 -22
  180. data/lib/puppet/http/service/compiler.rb +23 -144
  181. data/lib/puppet/http/service/file_server.rb +19 -29
  182. data/lib/puppet/http/service/puppetserver.rb +26 -12
  183. data/lib/puppet/http/service/report.rb +8 -10
  184. data/lib/puppet/http/service.rb +12 -26
  185. data/lib/puppet/http/session.rb +11 -20
  186. data/lib/puppet/{network/http → http}/site.rb +1 -2
  187. data/lib/puppet/http.rb +22 -13
  188. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  189. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  190. data/lib/puppet/indirector/facts/facter.rb +6 -6
  191. data/lib/puppet/indirector/facts/rest.rb +3 -22
  192. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  193. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  194. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  195. data/lib/puppet/indirector/file_server.rb +1 -8
  196. data/lib/puppet/indirector/generic_http.rb +0 -11
  197. data/lib/puppet/indirector/indirection.rb +1 -1
  198. data/lib/puppet/indirector/node/rest.rb +2 -4
  199. data/lib/puppet/indirector/report/rest.rb +3 -8
  200. data/lib/puppet/indirector/request.rb +0 -101
  201. data/lib/puppet/indirector/resource/ral.rb +1 -6
  202. data/lib/puppet/indirector/rest.rb +12 -263
  203. data/lib/puppet/indirector/terminus.rb +0 -4
  204. data/lib/puppet/interface/documentation.rb +0 -1
  205. data/lib/puppet/module/plan.rb +1 -0
  206. data/lib/puppet/module/task.rb +1 -1
  207. data/lib/puppet/module.rb +0 -1
  208. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  209. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  210. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  211. data/lib/puppet/module_tool/applications.rb +0 -1
  212. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  213. data/lib/puppet/network/authconfig.rb +2 -96
  214. data/lib/puppet/network/authorization.rb +13 -35
  215. data/lib/puppet/network/formats.rb +0 -67
  216. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  217. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  218. data/lib/puppet/network/http/connection.rb +247 -316
  219. data/lib/puppet/network/http/handler.rb +0 -1
  220. data/lib/puppet/network/http.rb +3 -3
  221. data/lib/puppet/network/http_pool.rb +16 -34
  222. data/lib/puppet/node/environment.rb +11 -10
  223. data/lib/puppet/node.rb +2 -31
  224. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  225. data/lib/puppet/pal/pal_impl.rb +4 -2
  226. data/lib/puppet/parser/ast/leaf.rb +2 -3
  227. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  228. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  229. data/lib/puppet/parser/compiler.rb +0 -198
  230. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  231. data/lib/puppet/parser/resource.rb +1 -70
  232. data/lib/puppet/parser/scope.rb +0 -1
  233. data/lib/puppet/parser/templatewrapper.rb +1 -2
  234. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  235. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  236. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  237. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  238. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  239. data/lib/puppet/pops/issues.rb +0 -5
  240. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  241. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  242. data/lib/puppet/pops/model/ast.pp +0 -42
  243. data/lib/puppet/pops/model/ast.rb +0 -291
  244. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  245. data/lib/puppet/pops/model/factory.rb +1 -47
  246. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  247. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  248. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  249. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  250. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  251. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  252. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  253. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  254. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  255. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  256. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  257. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  258. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  259. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  260. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  261. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  262. data/lib/puppet/pops/types/type_parser.rb +0 -4
  263. data/lib/puppet/pops/types/types.rb +1 -2
  264. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  265. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  266. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  267. data/lib/puppet/property/list.rb +1 -1
  268. data/lib/puppet/provider/aix_object.rb +1 -1
  269. data/lib/puppet/provider/exec/posix.rb +4 -16
  270. data/lib/puppet/provider/group/groupadd.rb +10 -18
  271. data/lib/puppet/provider/nameservice.rb +0 -18
  272. data/lib/puppet/provider/package/apt.rb +2 -34
  273. data/lib/puppet/provider/package/aptitude.rb +0 -6
  274. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  275. data/lib/puppet/provider/package/dpkg.rb +0 -10
  276. data/lib/puppet/provider/package/gem.rb +23 -3
  277. data/lib/puppet/provider/package/nim.rb +6 -11
  278. data/lib/puppet/provider/package/pip.rb +3 -16
  279. data/lib/puppet/provider/package/pkg.rb +2 -23
  280. data/lib/puppet/provider/package/portage.rb +1 -1
  281. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  282. data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
  283. data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
  284. data/lib/puppet/provider/package/windows/package.rb +1 -2
  285. data/lib/puppet/provider/package/windows.rb +1 -14
  286. data/lib/puppet/provider/package/yum.rb +1 -1
  287. data/lib/puppet/provider/parsedfile.rb +0 -3
  288. data/lib/puppet/provider/service/base.rb +1 -1
  289. data/lib/puppet/provider/service/debian.rb +0 -2
  290. data/lib/puppet/provider/service/init.rb +9 -10
  291. data/lib/puppet/provider/service/launchd.rb +2 -2
  292. data/lib/puppet/provider/service/redhat.rb +1 -1
  293. data/lib/puppet/provider/service/smf.rb +194 -76
  294. data/lib/puppet/provider/service/systemd.rb +6 -16
  295. data/lib/puppet/provider/service/upstart.rb +5 -5
  296. data/lib/puppet/provider/service/windows.rb +0 -38
  297. data/lib/puppet/provider/user/aix.rb +3 -46
  298. data/lib/puppet/provider/user/directoryservice.rb +11 -39
  299. data/lib/puppet/provider/user/useradd.rb +24 -134
  300. data/lib/puppet/provider.rb +1 -14
  301. data/lib/puppet/reference/configuration.rb +8 -7
  302. data/lib/puppet/reference/indirection.rb +1 -1
  303. data/lib/puppet/reference/providers.rb +2 -2
  304. data/lib/puppet/resource/catalog.rb +2 -15
  305. data/lib/puppet/resource/type.rb +3 -119
  306. data/lib/puppet/resource/type_collection.rb +3 -49
  307. data/lib/puppet/resource.rb +6 -127
  308. data/lib/puppet/runtime.rb +2 -13
  309. data/lib/puppet/settings/environment_conf.rb +0 -1
  310. data/lib/puppet/settings/integer_setting.rb +17 -0
  311. data/lib/puppet/settings/port_setting.rb +15 -0
  312. data/lib/puppet/settings/priority_setting.rb +5 -4
  313. data/lib/puppet/settings.rb +82 -98
  314. data/lib/puppet/ssl/base.rb +3 -5
  315. data/lib/puppet/ssl/certificate.rb +0 -6
  316. data/lib/puppet/ssl/certificate_request.rb +1 -12
  317. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  318. data/lib/puppet/ssl/oids.rb +3 -1
  319. data/lib/puppet/ssl/ssl_provider.rb +36 -75
  320. data/lib/puppet/ssl/state_machine.rb +20 -14
  321. data/lib/puppet/ssl/verifier.rb +2 -6
  322. data/lib/puppet/ssl.rb +10 -6
  323. data/lib/puppet/test/test_helper.rb +2 -7
  324. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  325. data/lib/puppet/transaction/persistence.rb +1 -21
  326. data/lib/puppet/transaction/report.rb +3 -19
  327. data/lib/puppet/transaction.rb +1 -7
  328. data/lib/puppet/type/exec.rb +6 -36
  329. data/lib/puppet/type/file/checksum.rb +1 -1
  330. data/lib/puppet/type/file/data_sync.rb +1 -1
  331. data/lib/puppet/type/file/mode.rb +0 -6
  332. data/lib/puppet/type/file/selcontext.rb +1 -1
  333. data/lib/puppet/type/file/source.rb +1 -1
  334. data/lib/puppet/type/file.rb +12 -32
  335. data/lib/puppet/type/filebucket.rb +4 -4
  336. data/lib/puppet/type/group.rb +1 -0
  337. data/lib/puppet/type/package.rb +8 -16
  338. data/lib/puppet/type/resources.rb +1 -1
  339. data/lib/puppet/type/service.rb +41 -26
  340. data/lib/puppet/type/tidy.rb +3 -22
  341. data/lib/puppet/type/user.rb +13 -35
  342. data/lib/puppet/type.rb +1 -77
  343. data/lib/puppet/util/autoload.rb +8 -1
  344. data/lib/puppet/util/command_line.rb +1 -1
  345. data/lib/puppet/util/execution.rb +0 -11
  346. data/lib/puppet/util/filetype.rb +2 -2
  347. data/lib/puppet/util/http_proxy.rb +2 -215
  348. data/lib/puppet/util/json.rb +0 -20
  349. data/lib/puppet/util/log.rb +4 -8
  350. data/lib/puppet/util/logging.rb +25 -1
  351. data/lib/puppet/util/monkey_patches.rb +2 -59
  352. data/lib/puppet/util/package.rb +16 -25
  353. data/lib/puppet/util/pidlock.rb +1 -1
  354. data/lib/puppet/util/posix.rb +5 -54
  355. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  356. data/lib/puppet/util/rdoc.rb +0 -7
  357. data/lib/puppet/util/retry_action.rb +1 -1
  358. data/lib/puppet/util/run_mode.rb +9 -1
  359. data/lib/puppet/util/selinux.rb +4 -30
  360. data/lib/puppet/util/suidmanager.rb +2 -1
  361. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  362. data/lib/puppet/util/tagging.rb +0 -1
  363. data/lib/puppet/util/windows/adsi.rb +0 -46
  364. data/lib/puppet/util/windows/daemon.rb +360 -0
  365. data/lib/puppet/util/windows/error.rb +1 -0
  366. data/lib/puppet/util/windows/eventlog.rb +4 -9
  367. data/lib/puppet/util/windows/file.rb +8 -242
  368. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  369. data/lib/puppet/util/windows/principal.rb +2 -9
  370. data/lib/puppet/util/windows/process.rb +4 -226
  371. data/lib/puppet/util/windows/service.rb +11 -457
  372. data/lib/puppet/util/windows/sid.rb +2 -6
  373. data/lib/puppet/util/windows/string.rb +12 -13
  374. data/lib/puppet/util/windows/user.rb +2 -0
  375. data/lib/puppet/util/windows.rb +3 -11
  376. data/lib/puppet/util/yaml.rb +1 -42
  377. data/lib/puppet/util.rb +5 -5
  378. data/lib/puppet/vendor/require_vendored.rb +0 -1
  379. data/lib/puppet/version.rb +1 -1
  380. data/lib/puppet/x509/cert_provider.rb +29 -1
  381. data/lib/puppet/x509.rb +5 -1
  382. data/lib/puppet.rb +34 -27
  383. data/locales/puppet.pot +9633 -5
  384. data/man/man5/puppet.conf.5 +286 -401
  385. data/man/man8/puppet-agent.8 +2 -5
  386. data/man/man8/puppet-apply.8 +2 -2
  387. data/man/man8/puppet-catalog.8 +9 -9
  388. data/man/man8/puppet-config.8 +1 -1
  389. data/man/man8/puppet-describe.8 +1 -1
  390. data/man/man8/puppet-device.8 +2 -2
  391. data/man/man8/puppet-doc.8 +1 -1
  392. data/man/man8/puppet-epp.8 +1 -1
  393. data/man/man8/puppet-facts.8 +8 -51
  394. data/man/man8/puppet-filebucket.8 +4 -4
  395. data/man/man8/puppet-generate.8 +1 -1
  396. data/man/man8/puppet-help.8 +1 -1
  397. data/man/man8/puppet-lookup.8 +6 -9
  398. data/man/man8/puppet-module.8 +3 -60
  399. data/man/man8/puppet-node.8 +5 -5
  400. data/man/man8/puppet-parser.8 +1 -1
  401. data/man/man8/puppet-plugin.8 +1 -1
  402. data/man/man8/puppet-report.8 +5 -5
  403. data/man/man8/puppet-resource.8 +1 -1
  404. data/man/man8/puppet-script.8 +2 -2
  405. data/man/man8/puppet-ssl.8 +1 -5
  406. data/man/man8/puppet.8 +2 -2
  407. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  408. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  409. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  410. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  411. data/spec/fixtures/ssl/ca.pem +35 -57
  412. data/spec/fixtures/ssl/crl.pem +18 -28
  413. data/spec/fixtures/ssl/ec-key.pem +11 -11
  414. data/spec/fixtures/ssl/ec.pem +24 -33
  415. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  416. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  417. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  418. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  419. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  420. data/spec/fixtures/ssl/intermediate.pem +36 -57
  421. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  422. data/spec/fixtures/ssl/pluto.pem +30 -52
  423. data/spec/fixtures/ssl/request-key.pem +57 -107
  424. data/spec/fixtures/ssl/request.pem +26 -47
  425. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  426. data/spec/fixtures/ssl/revoked.pem +30 -52
  427. data/spec/fixtures/ssl/signed-key.pem +57 -107
  428. data/spec/fixtures/ssl/signed.pem +30 -52
  429. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  430. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  431. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  432. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  433. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  434. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  435. data/spec/fixtures/unit/forge/bacula.json +1 -1
  436. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  437. data/spec/integration/application/agent_spec.rb +50 -406
  438. data/spec/integration/application/apply_spec.rb +1 -20
  439. data/spec/integration/application/filebucket_spec.rb +16 -32
  440. data/spec/integration/application/help_spec.rb +2 -0
  441. data/spec/integration/application/lookup_spec.rb +50 -81
  442. data/spec/integration/application/module_spec.rb +0 -21
  443. data/spec/integration/application/plugin_spec.rb +24 -2
  444. data/spec/integration/configurer_spec.rb +2 -18
  445. data/spec/integration/defaults_spec.rb +14 -3
  446. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  447. data/spec/integration/http/client_spec.rb +4 -63
  448. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  449. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  450. data/spec/integration/network/http_pool_spec.rb +3 -21
  451. data/spec/integration/parser/catalog_spec.rb +0 -38
  452. data/spec/integration/parser/node_spec.rb +0 -9
  453. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  454. data/spec/integration/resource/type_collection_spec.rb +6 -2
  455. data/spec/integration/transaction/report_spec.rb +1 -1
  456. data/spec/integration/transaction_spec.rb +9 -4
  457. data/spec/integration/type/exec_spec.rb +45 -70
  458. data/spec/integration/type/file_spec.rb +7 -6
  459. data/spec/integration/type/package_spec.rb +6 -6
  460. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  461. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  462. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  463. data/spec/integration/util/windows/principal_spec.rb +0 -21
  464. data/spec/integration/util/windows/process_spec.rb +9 -1
  465. data/spec/integration/util/windows/registry_spec.rb +10 -6
  466. data/spec/integration/util/windows/security_spec.rb +1 -1
  467. data/spec/lib/matchers/include.rb +27 -0
  468. data/spec/lib/matchers/include_spec.rb +32 -0
  469. data/spec/lib/puppet/test_ca.rb +2 -7
  470. data/spec/lib/puppet_spec/https.rb +1 -1
  471. data/spec/lib/puppet_spec/modules.rb +2 -13
  472. data/spec/lib/puppet_spec/puppetserver.rb +3 -55
  473. data/spec/lib/puppet_spec/settings.rb +1 -1
  474. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  475. data/spec/spec_helper.rb +17 -13
  476. data/spec/unit/agent_spec.rb +8 -38
  477. data/spec/unit/application/agent_spec.rb +19 -33
  478. data/spec/unit/application/apply_spec.rb +56 -76
  479. data/spec/unit/application/facts_spec.rb +12 -456
  480. data/spec/unit/application/filebucket_spec.rb +43 -39
  481. data/spec/unit/application/lookup_spec.rb +10 -131
  482. data/spec/unit/application/resource_spec.rb +0 -29
  483. data/spec/unit/application/ssl_spec.rb +2 -25
  484. data/spec/unit/application_spec.rb +9 -51
  485. data/spec/unit/certificate_factory_spec.rb +1 -1
  486. data/spec/unit/configurer/downloader_spec.rb +6 -8
  487. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  488. data/spec/unit/configurer_spec.rb +68 -327
  489. data/spec/unit/confine/feature_spec.rb +1 -1
  490. data/spec/unit/confine_spec.rb +2 -8
  491. data/spec/unit/context/trusted_information_spec.rb +2 -6
  492. data/spec/unit/daemon_spec.rb +11 -2
  493. data/spec/unit/defaults_spec.rb +68 -55
  494. data/spec/unit/environments_spec.rb +68 -408
  495. data/spec/unit/face/generate_spec.rb +0 -64
  496. data/spec/unit/face/node_spec.rb +11 -0
  497. data/spec/unit/face/plugin_spec.rb +73 -33
  498. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  499. data/spec/unit/file_bucket/file_spec.rb +1 -1
  500. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  501. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  502. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  503. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  504. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  505. data/spec/unit/file_system_spec.rb +4 -56
  506. data/spec/unit/forge/module_release_spec.rb +10 -5
  507. data/spec/unit/functions/assert_type_spec.rb +1 -1
  508. data/spec/unit/functions/camelcase_spec.rb +1 -1
  509. data/spec/unit/functions/capitalize_spec.rb +1 -1
  510. data/spec/unit/functions/downcase_spec.rb +1 -1
  511. data/spec/unit/functions/empty_spec.rb +0 -10
  512. data/spec/unit/functions/logging_spec.rb +0 -1
  513. data/spec/unit/functions/lookup_spec.rb +0 -64
  514. data/spec/unit/functions/unwrap_spec.rb +0 -8
  515. data/spec/unit/functions/upcase_spec.rb +1 -1
  516. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  517. data/spec/unit/functions4_spec.rb +2 -2
  518. data/spec/unit/gettext/config_spec.rb +0 -12
  519. data/spec/unit/http/client_spec.rb +8 -84
  520. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  521. data/spec/unit/http/external_client_spec.rb +4 -4
  522. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  523. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  524. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  525. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  526. data/spec/unit/http/resolver_spec.rb +13 -13
  527. data/spec/unit/http/service/compiler_spec.rb +0 -193
  528. data/spec/unit/http/service/file_server_spec.rb +3 -3
  529. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  530. data/spec/unit/http/service_spec.rb +0 -1
  531. data/spec/unit/http/session_spec.rb +16 -14
  532. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  533. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  534. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  535. data/spec/unit/indirector/face_spec.rb +1 -0
  536. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  537. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  538. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  539. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  540. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  541. data/spec/unit/indirector/file_server_spec.rb +1 -15
  542. data/spec/unit/indirector/indirection_spec.rb +15 -18
  543. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  544. data/spec/unit/indirector/request_spec.rb +0 -264
  545. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  546. data/spec/unit/indirector/rest_spec.rb +98 -752
  547. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  548. data/spec/unit/indirector_spec.rb +2 -2
  549. data/spec/unit/interface/action_spec.rb +9 -0
  550. data/spec/unit/module_spec.rb +1 -15
  551. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  552. data/spec/unit/network/authconfig_spec.rb +2 -129
  553. data/spec/unit/network/authorization_spec.rb +2 -55
  554. data/spec/unit/network/formats_spec.rb +4 -51
  555. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  556. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  557. data/spec/unit/network/http/api_spec.rb +10 -0
  558. data/spec/unit/network/http/connection_spec.rb +19 -41
  559. data/spec/unit/network/http/handler_spec.rb +0 -1
  560. data/spec/unit/network/http_pool_spec.rb +0 -4
  561. data/spec/unit/node/environment_spec.rb +33 -21
  562. data/spec/unit/node_spec.rb +2 -60
  563. data/spec/unit/parser/compiler_spec.rb +19 -3
  564. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  565. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  566. data/spec/unit/parser/resource_spec.rb +8 -14
  567. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  568. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  569. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  570. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  571. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  572. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  573. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  574. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  575. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  576. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  577. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  578. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  579. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  580. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  581. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  582. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  583. data/spec/unit/pops/visitor_spec.rb +1 -1
  584. data/spec/unit/property_spec.rb +0 -1
  585. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  586. data/spec/unit/provider/nameservice_spec.rb +64 -122
  587. data/spec/unit/provider/package/apt_spec.rb +23 -28
  588. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  589. data/spec/unit/provider/package/base_spec.rb +5 -6
  590. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  591. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  592. data/spec/unit/provider/package/gem_spec.rb +33 -1
  593. data/spec/unit/provider/package/nim_spec.rb +0 -42
  594. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  595. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  596. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  597. data/spec/unit/provider/package/pip_spec.rb +12 -44
  598. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  599. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  600. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  601. data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
  602. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
  603. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  604. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  605. data/spec/unit/provider/service/init_spec.rb +9 -16
  606. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  607. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  608. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  609. data/spec/unit/provider/service/smf_spec.rb +401 -165
  610. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  611. data/spec/unit/provider/service/windows_spec.rb +0 -203
  612. data/spec/unit/provider/user/aix_spec.rb +0 -105
  613. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  614. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  615. data/spec/unit/provider/user/pw_spec.rb +0 -2
  616. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  617. data/spec/unit/provider_spec.rb +12 -22
  618. data/spec/unit/puppet_spec.rb +4 -12
  619. data/spec/unit/resource/catalog_spec.rb +2 -15
  620. data/spec/unit/resource/type_collection_spec.rb +2 -22
  621. data/spec/unit/resource/type_spec.rb +1 -1
  622. data/spec/unit/resource_spec.rb +12 -125
  623. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  624. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  625. data/spec/unit/settings/port_setting_spec.rb +31 -0
  626. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  627. data/spec/unit/settings_spec.rb +79 -110
  628. data/spec/unit/ssl/base_spec.rb +37 -3
  629. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  630. data/spec/unit/ssl/certificate_spec.rb +2 -11
  631. data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
  632. data/spec/unit/ssl/state_machine_spec.rb +5 -21
  633. data/spec/unit/ssl/verifier_spec.rb +0 -21
  634. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  635. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  636. data/spec/unit/transaction/persistence_spec.rb +0 -51
  637. data/spec/unit/transaction/report_spec.rb +0 -2
  638. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  639. data/spec/unit/transaction_spec.rb +55 -96
  640. data/spec/unit/type/exec_spec.rb +29 -76
  641. data/spec/unit/type/file/checksum_spec.rb +6 -6
  642. data/spec/unit/type/file/content_spec.rb +2 -1
  643. data/spec/unit/type/file/ensure_spec.rb +1 -1
  644. data/spec/unit/type/file/mode_spec.rb +1 -1
  645. data/spec/unit/type/file/selinux_spec.rb +5 -3
  646. data/spec/unit/type/file/source_spec.rb +4 -5
  647. data/spec/unit/type/file_spec.rb +18 -6
  648. data/spec/unit/type/group_spec.rb +6 -13
  649. data/spec/unit/type/package_spec.rb +1 -1
  650. data/spec/unit/type/resources_spec.rb +7 -7
  651. data/spec/unit/type/service_spec.rb +189 -87
  652. data/spec/unit/type/tidy_spec.rb +8 -24
  653. data/spec/unit/type_spec.rb +24 -4
  654. data/spec/unit/util/at_fork_spec.rb +2 -2
  655. data/spec/unit/util/autoload_spec.rb +1 -5
  656. data/spec/unit/util/backups_spec.rb +2 -3
  657. data/spec/unit/util/execution_spec.rb +11 -44
  658. data/spec/unit/util/inifile_spec.rb +14 -6
  659. data/spec/unit/util/log_spec.rb +7 -8
  660. data/spec/unit/util/logging_spec.rb +3 -5
  661. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  662. data/spec/unit/util/posix_spec.rb +15 -363
  663. data/spec/unit/util/run_mode_spec.rb +21 -121
  664. data/spec/unit/util/selinux_spec.rb +68 -163
  665. data/spec/unit/util/storage_spec.rb +1 -3
  666. data/spec/unit/util/suidmanager_spec.rb +41 -44
  667. data/spec/unit/util/windows/sid_spec.rb +0 -41
  668. data/spec/unit/util/windows/string_spec.rb +1 -3
  669. data/spec/unit/util/yaml_spec.rb +13 -92
  670. data/spec/unit/util_spec.rb +6 -31
  671. data/tasks/generate_cert_fixtures.rake +7 -17
  672. data/tasks/parallel.rake +3 -3
  673. metadata +138 -301
  674. data/conf/auth.conf +0 -150
  675. data/ext/README.md +0 -13
  676. data/lib/puppet/application/cert.rb +0 -76
  677. data/lib/puppet/application/key.rb +0 -4
  678. data/lib/puppet/application/man.rb +0 -4
  679. data/lib/puppet/application/status.rb +0 -4
  680. data/lib/puppet/face/key.rb +0 -16
  681. data/lib/puppet/face/man.rb +0 -145
  682. data/lib/puppet/face/module/build.rb +0 -14
  683. data/lib/puppet/face/module/generate.rb +0 -14
  684. data/lib/puppet/face/module/search.rb +0 -103
  685. data/lib/puppet/face/status.rb +0 -51
  686. data/lib/puppet/facter_impl.rb +0 -96
  687. data/lib/puppet/ffi/posix/constants.rb +0 -14
  688. data/lib/puppet/ffi/posix/functions.rb +0 -24
  689. data/lib/puppet/ffi/posix.rb +0 -10
  690. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  691. data/lib/puppet/indirector/certificate/file.rb +0 -9
  692. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  693. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  694. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  695. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  696. data/lib/puppet/indirector/file_content/http.rb +0 -22
  697. data/lib/puppet/indirector/key/file.rb +0 -46
  698. data/lib/puppet/indirector/key/memory.rb +0 -7
  699. data/lib/puppet/indirector/ssl_file.rb +0 -162
  700. data/lib/puppet/indirector/status/local.rb +0 -12
  701. data/lib/puppet/indirector/status/rest.rb +0 -27
  702. data/lib/puppet/indirector/status.rb +0 -3
  703. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  704. data/lib/puppet/network/auth_config_parser.rb +0 -90
  705. data/lib/puppet/network/authstore.rb +0 -283
  706. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  707. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  708. data/lib/puppet/network/http/base_pool.rb +0 -36
  709. data/lib/puppet/network/http/compression.rb +0 -127
  710. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  711. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  712. data/lib/puppet/network/rest_controller.rb +0 -2
  713. data/lib/puppet/network/rights.rb +0 -210
  714. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  715. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  716. data/lib/puppet/parser/environment_compiler.rb +0 -202
  717. data/lib/puppet/pops/types/enumeration.rb +0 -16
  718. data/lib/puppet/resource/capability_finder.rb +0 -154
  719. data/lib/puppet/rest/errors.rb +0 -15
  720. data/lib/puppet/rest/response.rb +0 -35
  721. data/lib/puppet/rest/route.rb +0 -85
  722. data/lib/puppet/rest/routes.rb +0 -135
  723. data/lib/puppet/settings/alias_setting.rb +0 -37
  724. data/lib/puppet/ssl/host.rb +0 -505
  725. data/lib/puppet/ssl/key.rb +0 -61
  726. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  727. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  728. data/lib/puppet/ssl/validator.rb +0 -61
  729. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  730. data/lib/puppet/status.rb +0 -40
  731. data/lib/puppet/util/connection.rb +0 -88
  732. data/lib/puppet/util/fact_dif.rb +0 -81
  733. data/lib/puppet/util/ssl.rb +0 -83
  734. data/lib/puppet/util/windows/api_types.rb +0 -309
  735. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  736. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  737. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  738. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  739. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  740. data/lib/puppet/vendor/pathspec/README.md +0 -53
  741. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  742. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  743. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  744. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  745. data/man/man8/puppet-key.8 +0 -126
  746. data/man/man8/puppet-man.8 +0 -76
  747. data/man/man8/puppet-status.8 +0 -108
  748. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  749. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  750. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  751. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  752. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  753. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  754. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  755. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  756. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  757. data/spec/fixtures/ssl/oid-key.pem +0 -117
  758. data/spec/fixtures/ssl/oid.pem +0 -69
  759. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  760. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  761. data/spec/integration/application/resource_spec.rb +0 -68
  762. data/spec/integration/application/ssl_spec.rb +0 -20
  763. data/spec/integration/l10n/compiler_spec.rb +0 -37
  764. data/spec/integration/network/authconfig_spec.rb +0 -256
  765. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  766. data/spec/shared_contexts/l10n.rb +0 -32
  767. data/spec/unit/application/man_spec.rb +0 -52
  768. data/spec/unit/capability_spec.rb +0 -414
  769. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  770. data/spec/unit/face/key_spec.rb +0 -9
  771. data/spec/unit/face/module/search_spec.rb +0 -231
  772. data/spec/unit/face/status_spec.rb +0 -9
  773. data/spec/unit/facter_impl_spec.rb +0 -31
  774. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  775. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  776. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  777. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  778. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  779. data/spec/unit/indirector/key/file_spec.rb +0 -78
  780. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  781. data/spec/unit/indirector/status/local_spec.rb +0 -10
  782. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  783. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  784. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  785. data/spec/unit/network/authstore_spec.rb +0 -407
  786. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  787. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  788. data/spec/unit/network/http/compression_spec.rb +0 -240
  789. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  790. data/spec/unit/network/http_spec.rb +0 -9
  791. data/spec/unit/network/rights_spec.rb +0 -439
  792. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  793. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  794. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  795. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  796. data/spec/unit/rest/route_spec.rb +0 -132
  797. data/spec/unit/ssl/host_spec.rb +0 -645
  798. data/spec/unit/ssl/key_spec.rb +0 -173
  799. data/spec/unit/ssl/validator_spec.rb +0 -278
  800. data/spec/unit/status_spec.rb +0 -45
  801. data/spec/unit/util/json_spec.rb +0 -126
  802. data/spec/unit/util/ssl_spec.rb +0 -91
  803. data/spec/unit/util/windows_spec.rb +0 -23
  804. /data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  805. /data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  806. /data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  807. /data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  808. /data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  809. /data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  810. /data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  811. /data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
@@ -1,6 +1,5 @@
1
1
  # coding: utf-8
2
- require 'puppet/util/windows'
3
- require 'ffi'
2
+ require 'puppet/ffi/windows'
4
3
 
5
4
  module Puppet::Util::Windows
6
5
  # This module is designed to provide an API between the windows system and puppet for
@@ -8,309 +7,21 @@ module Puppet::Util::Windows
8
7
  #
9
8
  # for an overview of the service state transitions see: https://docs.microsoft.com/en-us/windows/desktop/Services/service-status-transitions
10
9
  module Service
11
- extend FFI::Library
12
10
  extend Puppet::Util::Windows::String
13
11
 
14
- FILE = Puppet::Util::Windows::File
12
+ include Puppet::FFI::Windows::Constants
13
+ extend Puppet::FFI::Windows::Constants
15
14
 
16
- # Service error codes
17
- # https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes--1000-1299-
18
- ERROR_SERVICE_DOES_NOT_EXIST = 0x00000424
15
+ include Puppet::FFI::Windows::Structs
16
+ extend Puppet::FFI::Windows::Structs
19
17
 
20
- # Service control codes
21
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-controlserviceexw
22
- SERVICE_CONTROL_STOP = 0x00000001
23
- SERVICE_CONTROL_PAUSE = 0x00000002
24
- SERVICE_CONTROL_CONTINUE = 0x00000003
25
- SERVICE_CONTROL_INTERROGATE = 0x00000004
26
- SERVICE_CONTROL_SHUTDOWN = 0x00000005
27
- SERVICE_CONTROL_PARAMCHANGE = 0x00000006
28
- SERVICE_CONTROL_NETBINDADD = 0x00000007
29
- SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
30
- SERVICE_CONTROL_NETBINDENABLE = 0x00000009
31
- SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
32
- SERVICE_CONTROL_DEVICEEVENT = 0x0000000B
33
- SERVICE_CONTROL_HARDWAREPROFILECHANGE = 0x0000000C
34
- SERVICE_CONTROL_POWEREVENT = 0x0000000D
35
- SERVICE_CONTROL_SESSIONCHANGE = 0x0000000E
36
- SERVICE_CONTROL_PRESHUTDOWN = 0x0000000F
37
- SERVICE_CONTROL_TIMECHANGE = 0x00000010
38
- SERVICE_CONTROL_TRIGGEREVENT = 0x00000020
39
- SERVICE_CONTROL_SIGNALS = {
40
- SERVICE_CONTROL_STOP => :SERVICE_CONTROL_STOP,
41
- SERVICE_CONTROL_PAUSE => :SERVICE_CONTROL_PAUSE,
42
- SERVICE_CONTROL_CONTINUE => :SERVICE_CONTROL_CONTINUE,
43
- SERVICE_CONTROL_INTERROGATE => :SERVICE_CONTROL_INTERROGATE,
44
- SERVICE_CONTROL_SHUTDOWN => :SERVICE_CONTROL_SHUTDOWN,
45
- SERVICE_CONTROL_PARAMCHANGE => :SERVICE_CONTROL_PARAMCHANGE,
46
- SERVICE_CONTROL_NETBINDADD => :SERVICE_CONTROL_NETBINDADD,
47
- SERVICE_CONTROL_NETBINDREMOVE => :SERVICE_CONTROL_NETBINDREMOVE,
48
- SERVICE_CONTROL_NETBINDENABLE => :SERVICE_CONTROL_NETBINDENABLE,
49
- SERVICE_CONTROL_NETBINDDISABLE => :SERVICE_CONTROL_NETBINDDISABLE,
50
- SERVICE_CONTROL_DEVICEEVENT => :SERVICE_CONTROL_DEVICEEVENT,
51
- SERVICE_CONTROL_HARDWAREPROFILECHANGE => :SERVICE_CONTROL_HARDWAREPROFILECHANGE,
52
- SERVICE_CONTROL_POWEREVENT => :SERVICE_CONTROL_POWEREVENT,
53
- SERVICE_CONTROL_SESSIONCHANGE => :SERVICE_CONTROL_SESSIONCHANGE,
54
- SERVICE_CONTROL_PRESHUTDOWN => :SERVICE_CONTROL_PRESHUTDOWN,
55
- SERVICE_CONTROL_TIMECHANGE => :SERVICE_CONTROL_TIMECHANGE,
56
- SERVICE_CONTROL_TRIGGEREVENT => :SERVICE_CONTROL_TRIGGEREVENT
57
- }
18
+ include Puppet::FFI::Windows::Functions
19
+ extend Puppet::FFI::Windows::Functions
58
20
 
59
-
60
- # Service start type codes
61
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-changeserviceconfigw
62
- SERVICE_AUTO_START = 0x00000002
63
- SERVICE_BOOT_START = 0x00000000
64
- SERVICE_DEMAND_START = 0x00000003
65
- SERVICE_DISABLED = 0x00000004
66
- SERVICE_SYSTEM_START = 0x00000001
67
- SERVICE_START_TYPES = {
68
- SERVICE_AUTO_START => :SERVICE_AUTO_START,
69
- SERVICE_BOOT_START => :SERVICE_BOOT_START,
70
- SERVICE_DEMAND_START => :SERVICE_DEMAND_START,
71
- SERVICE_DISABLED => :SERVICE_DISABLED,
72
- SERVICE_SYSTEM_START => :SERVICE_SYSTEM_START,
73
- }
74
-
75
- # Service type codes
76
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-changeserviceconfigw
77
- SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
78
- SERVICE_KERNEL_DRIVER = 0x00000001
79
- SERVICE_WIN32_OWN_PROCESS = 0x00000010
80
- SERVICE_WIN32_SHARE_PROCESS = 0x00000020
81
- SERVICE_USER_OWN_PROCESS = 0x00000050
82
- SERVICE_USER_SHARE_PROCESS = 0x00000060
83
- # Available only if service is also SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS
84
- SERVICE_INTERACTIVE_PROCESS = 0x00000100
85
- ALL_SERVICE_TYPES =
86
- SERVICE_FILE_SYSTEM_DRIVER |
87
- SERVICE_KERNEL_DRIVER |
88
- SERVICE_WIN32_OWN_PROCESS |
89
- SERVICE_WIN32_SHARE_PROCESS
90
-
91
- # Current state codes
92
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
93
- SERVICE_CONTINUE_PENDING = 0x00000005
94
- SERVICE_PAUSE_PENDING = 0x00000006
95
- SERVICE_PAUSED = 0x00000007
96
- SERVICE_RUNNING = 0x00000004
97
- SERVICE_START_PENDING = 0x00000002
98
- SERVICE_STOP_PENDING = 0x00000003
99
- SERVICE_STOPPED = 0x00000001
100
- UNSAFE_PENDING_STATES = [SERVICE_START_PENDING, SERVICE_STOP_PENDING]
101
- FINAL_STATES = {
102
- SERVICE_CONTINUE_PENDING => SERVICE_RUNNING,
103
- SERVICE_PAUSE_PENDING => SERVICE_PAUSED,
104
- SERVICE_START_PENDING => SERVICE_RUNNING,
105
- SERVICE_STOP_PENDING => SERVICE_STOPPED
106
- }
107
- SERVICE_STATES = {
108
- SERVICE_CONTINUE_PENDING => :SERVICE_CONTINUE_PENDING,
109
- SERVICE_PAUSE_PENDING => :SERVICE_PAUSE_PENDING,
110
- SERVICE_PAUSED => :SERVICE_PAUSED,
111
- SERVICE_RUNNING => :SERVICE_RUNNING,
112
- SERVICE_START_PENDING => :SERVICE_START_PENDING,
113
- SERVICE_STOP_PENDING => :SERVICE_STOP_PENDING,
114
- SERVICE_STOPPED => :SERVICE_STOPPED,
115
- }
116
-
117
- # Service accepts control codes
118
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
119
- SERVICE_ACCEPT_STOP = 0x00000001
120
- SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
121
- SERVICE_ACCEPT_SHUTDOWN = 0x00000004
122
- SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
123
- SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
124
- SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
125
- SERVICE_ACCEPT_POWEREVENT = 0x00000040
126
- SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
127
- SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
128
- SERVICE_ACCEPT_TIMECHANGE = 0x00000200
129
- SERVICE_ACCEPT_TRIGGEREVENT = 0x00000400
130
- SERVICE_ACCEPT_USER_LOGOFF = 0x00000800
131
-
132
- # Service manager access codes
133
- # https://docs.microsoft.com/en-us/windows/desktop/Services/service-security-and-access-rights
134
- SC_MANAGER_CREATE_SERVICE = 0x00000002
135
- SC_MANAGER_CONNECT = 0x00000001
136
- SC_MANAGER_ENUMERATE_SERVICE = 0x00000004
137
- SC_MANAGER_LOCK = 0x00000008
138
- SC_MANAGER_MODIFY_BOOT_CONFIG = 0x00000020
139
- SC_MANAGER_QUERY_LOCK_STATUS = 0x00000010
140
- SC_MANAGER_ALL_ACCESS =
141
- FILE::STANDARD_RIGHTS_REQUIRED |
142
- SC_MANAGER_CREATE_SERVICE |
143
- SC_MANAGER_CONNECT |
144
- SC_MANAGER_ENUMERATE_SERVICE |
145
- SC_MANAGER_LOCK |
146
- SC_MANAGER_MODIFY_BOOT_CONFIG |
147
- SC_MANAGER_QUERY_LOCK_STATUS
148
-
149
-
150
- # Service access codes
151
- # https://docs.microsoft.com/en-us/windows/desktop/Services/service-security-and-access-rights
152
- SERVICE_CHANGE_CONFIG = 0x0002
153
- SERVICE_ENUMERATE_DEPENDENTS = 0x0008
154
- SERVICE_INTERROGATE = 0x0080
155
- SERVICE_PAUSE_CONTINUE = 0x0040
156
- SERVICE_QUERY_STATUS = 0x0004
157
- SERVICE_QUERY_CONFIG = 0x0001
158
- SERVICE_START = 0x0010
159
- SERVICE_STOP = 0x0020
160
- SERVICE_USER_DEFINED_CONTROL = 0x0100
161
- SERVICE_ALL_ACCESS =
162
- FILE::STANDARD_RIGHTS_REQUIRED |
163
- SERVICE_CHANGE_CONFIG |
164
- SERVICE_ENUMERATE_DEPENDENTS |
165
- SERVICE_INTERROGATE |
166
- SERVICE_PAUSE_CONTINUE |
167
- SERVICE_QUERY_STATUS |
168
- SERVICE_QUERY_CONFIG |
169
- SERVICE_START |
170
- SERVICE_STOP |
171
- SERVICE_USER_DEFINED_CONTROL
172
-
173
- # Service config codes
174
- # From the windows 10 SDK:
175
- # //
176
- # // Value to indicate no change to an optional parameter
177
- # //
178
- # #define SERVICE_NO_CHANGE 0xffffffff
179
- # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
180
- SERVICE_CONFIG_DESCRIPTION = 0x00000001
181
- SERVICE_CONFIG_FAILURE_ACTIONS = 0x00000002
182
- SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 0x00000003
183
- SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 0x00000004
184
- SERVICE_CONFIG_SERVICE_SID_INFO = 0x00000005
185
- SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 0x00000006
186
- SERVICE_CONFIG_PRESHUTDOWN_INFO = 0x00000007
187
- SERVICE_CONFIG_TRIGGER_INFO = 0x00000008
188
- SERVICE_CONFIG_PREFERRED_NODE = 0x00000009
189
- SERVICE_CONFIG_LAUNCH_PROTECTED = 0x0000000C
190
- SERVICE_NO_CHANGE = 0xffffffff
191
- SERVICE_CONFIG_TYPES = {
192
- SERVICE_CONFIG_DESCRIPTION => :SERVICE_CONFIG_DESCRIPTION,
193
- SERVICE_CONFIG_FAILURE_ACTIONS => :SERVICE_CONFIG_FAILURE_ACTIONS,
194
- SERVICE_CONFIG_DELAYED_AUTO_START_INFO => :SERVICE_CONFIG_DELAYED_AUTO_START_INFO,
195
- SERVICE_CONFIG_FAILURE_ACTIONS_FLAG => :SERVICE_CONFIG_FAILURE_ACTIONS_FLAG,
196
- SERVICE_CONFIG_SERVICE_SID_INFO => :SERVICE_CONFIG_SERVICE_SID_INFO,
197
- SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO => :SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO,
198
- SERVICE_CONFIG_PRESHUTDOWN_INFO => :SERVICE_CONFIG_PRESHUTDOWN_INFO,
199
- SERVICE_CONFIG_TRIGGER_INFO => :SERVICE_CONFIG_TRIGGER_INFO,
200
- SERVICE_CONFIG_PREFERRED_NODE => :SERVICE_CONFIG_PREFERRED_NODE,
201
- SERVICE_CONFIG_LAUNCH_PROTECTED => :SERVICE_CONFIG_LAUNCH_PROTECTED,
202
- }
203
-
204
- # Service enum codes
205
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexa
206
- SERVICE_ACTIVE = 0x00000001
207
- SERVICE_INACTIVE = 0x00000002
208
- SERVICE_STATE_ALL =
209
- SERVICE_ACTIVE |
210
- SERVICE_INACTIVE
211
-
212
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_enum_service_status_processw
213
- SERVICENAME_MAX = 256
214
-
215
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
216
- # typedef struct _SERVICE_STATUS_PROCESS {
217
- # DWORD dwServiceType;
218
- # DWORD dwCurrentState;
219
- # DWORD dwControlsAccepted;
220
- # DWORD dwWin32ExitCode;
221
- # DWORD dwServiceSpecificExitCode;
222
- # DWORD dwCheckPoint;
223
- # DWORD dwWaitHint;
224
- # DWORD dwProcessId;
225
- # DWORD dwServiceFlags;
226
- # } SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
227
- class SERVICE_STATUS_PROCESS < FFI::Struct
228
- layout(
229
- :dwServiceType, :dword,
230
- :dwCurrentState, :dword,
231
- :dwControlsAccepted, :dword,
232
- :dwWin32ExitCode, :dword,
233
- :dwServiceSpecificExitCode, :dword,
234
- :dwCheckPoint, :dword,
235
- :dwWaitHint, :dword,
236
- :dwProcessId, :dword,
237
- :dwServiceFlags, :dword
238
- )
239
- end
240
-
241
- # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/ns-winsvc-service_delayed_auto_start_info
242
- # typedef struct _SERVICE_DELAYED_AUTO_START_INFO {
243
- # BOOL fDelayedAutostart;
244
- # } SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO;
245
- class SERVICE_DELAYED_AUTO_START_INFO < FFI::Struct
246
- layout(:fDelayedAutostart, :int)
247
- alias aset []=
248
- # Intercept the accessor so that we can handle either true/false or 1/0.
249
- # Since there is only one member, there’s no need to check the key name.
250
- def []=(key, value)
251
- [0, false].include?(value) ? aset(key, 0) : aset(key, 1)
252
- end
253
- end
254
-
255
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_enum_service_status_processw
256
- # typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
257
- # LPWSTR lpServiceName;
258
- # LPWSTR lpDisplayName;
259
- # SERVICE_STATUS_PROCESS ServiceStatusProcess;
260
- # } ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW;
261
- class ENUM_SERVICE_STATUS_PROCESSW < FFI::Struct
262
- layout(
263
- :lpServiceName, :pointer,
264
- :lpDisplayName, :pointer,
265
- :ServiceStatusProcess, SERVICE_STATUS_PROCESS
266
- )
267
- end
268
-
269
- # typedef struct _SERVICE_STATUS {
270
- # DWORD dwServiceType;
271
- # DWORD dwCurrentState;
272
- # DWORD dwControlsAccepted;
273
- # DWORD dwWin32ExitCode;
274
- # DWORD dwServiceSpecificExitCode;
275
- # DWORD dwCheckPoint;
276
- # DWORD dwWaitHint;
277
- # } SERVICE_STATUS, *LPSERVICE_STATUS;
278
- class SERVICE_STATUS < FFI::Struct
279
- layout(
280
- :dwServiceType, :dword,
281
- :dwCurrentState, :dword,
282
- :dwControlsAccepted, :dword,
283
- :dwWin32ExitCode, :dword,
284
- :dwServiceSpecificExitCode, :dword,
285
- :dwCheckPoint, :dword,
286
- :dwWaitHint, :dword,
287
- )
288
- end
289
-
290
- # typedef struct _QUERY_SERVICE_CONFIGW {
291
- # DWORD dwServiceType;
292
- # DWORD dwStartType;
293
- # DWORD dwErrorControl;
294
- # LPWSTR lpBinaryPathName;
295
- # LPWSTR lpLoadOrderGroup;
296
- # DWORD dwTagId;
297
- # LPWSTR lpDependencies;
298
- # LPWSTR lpServiceStartName;
299
- # LPWSTR lpDisplayName;
300
- # } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
301
- class QUERY_SERVICE_CONFIGW < FFI::Struct
302
- layout(
303
- :dwServiceType, :dword,
304
- :dwStartType, :dword,
305
- :dwErrorControl, :dword,
306
- :lpBinaryPathName, :pointer,
307
- :lpLoadOrderGroup, :pointer,
308
- :dwTagId, :dword,
309
- :lpDependencies, :pointer,
310
- :lpServiceStartName, :pointer,
311
- :lpDisplayName, :pointer,
312
- )
313
- end
21
+ # integer value of the floor for timeouts when waiting for service pending states.
22
+ # puppet will wait the length of dwWaitHint if it is longer than this value, but
23
+ # no shorter
24
+ DEFAULT_TIMEOUT = 30
314
25
 
315
26
  # Returns true if the service exists, false otherwise.
316
27
  #
@@ -986,162 +697,5 @@ module Puppet::Util::Windows
986
697
  end
987
698
  private :milliseconds_to_seconds
988
699
  end
989
-
990
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openscmanagerw
991
- # SC_HANDLE OpenSCManagerW(
992
- # LPCWSTR lpMachineName,
993
- # LPCWSTR lpDatabaseName,
994
- # DWORD dwDesiredAccess
995
- # );
996
- ffi_lib :advapi32
997
- attach_function_private :OpenSCManagerW,
998
- [:lpcwstr, :lpcwstr, :dword], :handle
999
-
1000
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openservicew
1001
- # SC_HANDLE OpenServiceW(
1002
- # SC_HANDLE hSCManager,
1003
- # LPCWSTR lpServiceName,
1004
- # DWORD dwDesiredAccess
1005
- # );
1006
- ffi_lib :advapi32
1007
- attach_function_private :OpenServiceW,
1008
- [:handle, :lpcwstr, :dword], :handle
1009
-
1010
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-closeservicehandle
1011
- # BOOL CloseServiceHandle(
1012
- # SC_HANDLE hSCObject
1013
- # );
1014
- ffi_lib :advapi32
1015
- attach_function_private :CloseServiceHandle,
1016
- [:handle], :win32_bool
1017
-
1018
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-queryservicestatusex
1019
- # BOOL QueryServiceStatusEx(
1020
- # SC_HANDLE hService,
1021
- # SC_STATUS_TYPE InfoLevel,
1022
- # LPBYTE lpBuffer,
1023
- # DWORD cbBufSize,
1024
- # LPDWORD pcbBytesNeeded
1025
- # );
1026
- SC_STATUS_TYPE = enum(
1027
- :SC_STATUS_PROCESS_INFO, 0,
1028
- )
1029
- ffi_lib :advapi32
1030
- attach_function_private :QueryServiceStatusEx,
1031
- [:handle, SC_STATUS_TYPE, :lpbyte, :dword, :lpdword], :win32_bool
1032
-
1033
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-queryserviceconfigw
1034
- # BOOL QueryServiceConfigW(
1035
- # SC_HANDLE hService,
1036
- # LPQUERY_SERVICE_CONFIGW lpServiceConfig,
1037
- # DWORD cbBufSize,
1038
- # LPDWORD pcbBytesNeeded
1039
- # );
1040
- ffi_lib :advapi32
1041
- attach_function_private :QueryServiceConfigW,
1042
- [:handle, :lpbyte, :dword, :lpdword], :win32_bool
1043
-
1044
- # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-queryserviceconfig2w
1045
- # BOOL QueryServiceConfig2W(
1046
- # SC_HANDLE hService,
1047
- # DWORD dwInfoLevel,
1048
- # LPBYTE lpBuffer,
1049
- # DWORD cbBufSize,
1050
- # LPDWORD pcbBytesNeeded
1051
- # );
1052
- ffi_lib :advapi32
1053
- attach_function_private :QueryServiceConfig2W,
1054
- [:handle, :dword, :lpbyte, :dword, :lpdword], :win32_bool
1055
-
1056
- # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-startservicew
1057
- # BOOL StartServiceW(
1058
- # SC_HANDLE hService,
1059
- # DWORD dwNumServiceArgs,
1060
- # LPCWSTR *lpServiceArgVectors
1061
- # );
1062
- ffi_lib :advapi32
1063
- attach_function_private :StartServiceW,
1064
- [:handle, :dword, :pointer], :win32_bool
1065
-
1066
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-controlservice
1067
- # BOOL ControlService(
1068
- # SC_HANDLE hService,
1069
- # DWORD dwControl,
1070
- # LPSERVICE_STATUS lpServiceStatus
1071
- # );
1072
- ffi_lib :advapi32
1073
- attach_function_private :ControlService,
1074
- [:handle, :dword, :pointer], :win32_bool
1075
-
1076
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-changeserviceconfigw
1077
- # BOOL ChangeServiceConfigW(
1078
- # SC_HANDLE hService,
1079
- # DWORD dwServiceType,
1080
- # DWORD dwStartType,
1081
- # DWORD dwErrorControl,
1082
- # LPCWSTR lpBinaryPathName,
1083
- # LPCWSTR lpLoadOrderGroup,
1084
- # LPDWORD lpdwTagId,
1085
- # LPCWSTR lpDependencies,
1086
- # LPCWSTR lpServiceStartName,
1087
- # LPCWSTR lpPassword,
1088
- # LPCWSTR lpDisplayName
1089
- # );
1090
- ffi_lib :advapi32
1091
- attach_function_private :ChangeServiceConfigW,
1092
- [
1093
- :handle,
1094
- :dword,
1095
- :dword,
1096
- :dword,
1097
- :lpcwstr,
1098
- :lpcwstr,
1099
- :lpdword,
1100
- :lpcwstr,
1101
- :lpcwstr,
1102
- :lpcwstr,
1103
- :lpcwstr
1104
- ], :win32_bool
1105
-
1106
- # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
1107
- # BOOL ChangeServiceConfig2W(
1108
- # SC_HANDLE hService,
1109
- # DWORD dwInfoLevel,
1110
- # LPVOID lpInfo
1111
- # );
1112
- ffi_lib :advapi32
1113
- attach_function_private :ChangeServiceConfig2W,
1114
- [:handle, :dword, :lpvoid], :win32_bool
1115
-
1116
- # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexw
1117
- # BOOL EnumServicesStatusExW(
1118
- # SC_HANDLE hSCManager,
1119
- # SC_ENUM_TYPE InfoLevel,
1120
- # DWORD dwServiceType,
1121
- # DWORD dwServiceState,
1122
- # LPBYTE lpServices,
1123
- # DWORD cbBufSize,
1124
- # LPDWORD pcbBytesNeeded,
1125
- # LPDWORD lpServicesReturned,
1126
- # LPDWORD lpResumeHandle,
1127
- # LPCWSTR pszGroupName
1128
- # );
1129
- SC_ENUM_TYPE = enum(
1130
- :SC_ENUM_PROCESS_INFO, 0,
1131
- )
1132
- ffi_lib :advapi32
1133
- attach_function_private :EnumServicesStatusExW,
1134
- [
1135
- :handle,
1136
- SC_ENUM_TYPE,
1137
- :dword,
1138
- :dword,
1139
- :lpbyte,
1140
- :dword,
1141
- :lpdword,
1142
- :lpdword,
1143
- :lpdword,
1144
- :lpcwstr
1145
- ], :win32_bool
1146
700
  end
1147
701
  end
@@ -74,15 +74,11 @@ module Puppet::Util::Windows
74
74
  string_to_sid_ptr(name) do |sid_ptr|
75
75
  raw_sid_bytes = sid_ptr.read_array_of_uchar(get_length_sid(sid_ptr))
76
76
  end
77
- rescue => e
78
- # Avoid debug logs pollution with valid account names
79
- # https://docs.microsoft.com/en-us/windows/win32/api/sddl/nf-sddl-convertstringsidtosidw#return-value
80
- Puppet.debug("Could not retrieve raw SID bytes from '#{name}': #{e.message}") unless e.code == ERROR_INVALID_SID_STRUCTURE
77
+ rescue
81
78
  end
82
79
 
83
80
  raw_sid_bytes ? Principal.lookup_account_sid(raw_sid_bytes) : Principal.lookup_account_name(name)
84
- rescue => e
85
- Puppet.debug("#{e.message}")
81
+ rescue
86
82
  (allow_unresolved && raw_sid_bytes) ? unresolved_principal(name, raw_sid_bytes) : nil
87
83
  end
88
84
  module_function :name_to_principal
@@ -1,16 +1,15 @@
1
- require 'puppet/util/windows'
1
+ module Puppet
2
+ module Util
3
+ module Windows
4
+ module String
5
+ def wide_string(str)
6
+ # if given a nil string, assume caller wants to pass a nil pointer to win32
7
+ return nil if str.nil?
2
8
 
3
- module Puppet::Util::Windows::String
4
- def wide_string(str)
5
- # if given a nil string, assume caller wants to pass a nil pointer to win32
6
- return nil if str.nil?
7
- # ruby (< 2.1) does not respect multibyte terminators, so it is possible
8
- # for a string to contain a single trailing null byte, followed by garbage
9
- # causing buffer overruns.
10
- #
11
- # See http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=41920&view=revision
12
- newstr = str + "\0".encode(str.encoding)
13
- newstr.encode!('UTF-16LE')
9
+ str.encode('UTF-16LE')
10
+ end
11
+ module_function :wide_string
12
+ end
13
+ end
14
14
  end
15
- module_function :wide_string
16
15
  end
@@ -1,4 +1,6 @@
1
1
  require 'puppet/util/windows'
2
+
3
+ require 'facter'
2
4
  require 'ffi'
3
5
 
4
6
  module Puppet::Util::Windows::User
@@ -1,4 +1,5 @@
1
1
  require 'puppet/util/platform'
2
+
2
3
  module Puppet::Util::Windows
3
4
  module ADSI
4
5
  class ADSIObject; end
@@ -9,17 +10,12 @@ module Puppet::Util::Windows
9
10
  module File; end
10
11
  module Registry
11
12
  end
12
- module Service
13
- DEFAULT_TIMEOUT = 30
14
- end
15
13
  module SID
16
14
  class Principal; end
17
15
  end
18
16
  class EventLog; end
19
17
 
20
18
  if Puppet::Util::Platform.windows?
21
- require 'Win32API' # case matters in this require!
22
-
23
19
  # Note: Setting codepage here globally ensures all strings returned via
24
20
  # WIN32OLE (Ruby's late-bound COM support) are encoded in Encoding::UTF_8
25
21
  #
@@ -27,14 +23,9 @@ module Puppet::Util::Windows
27
23
  # to 2048 (at least on US English Windows) and is not listed in the MS
28
24
  # locales table, here: https://msdn.microsoft.com/en-us/library/ms912047(v=winembedded.10).aspx
29
25
  require 'win32ole' ; WIN32OLE.codepage = WIN32OLE::CP_UTF8
30
- # gems
31
- require 'win32/process'
32
- require 'puppet/util/windows/monkey_patches/dir'
33
- require 'win32/dir'
34
- require 'win32/service'
35
26
 
36
27
  # these reference platform specific gems
37
- require 'puppet/util/windows/api_types'
28
+ require 'puppet/ffi/windows'
38
29
  require 'puppet/util/windows/string'
39
30
  require 'puppet/util/windows/error'
40
31
  require 'puppet/util/windows/com'
@@ -52,5 +43,6 @@ module Puppet::Util::Windows
52
43
  require 'puppet/util/windows/registry'
53
44
  require 'puppet/util/windows/eventlog'
54
45
  require 'puppet/util/windows/service'
46
+ require 'puppet/util/windows/monkey_patches/process'
55
47
  end
56
48
  end
@@ -24,11 +24,7 @@ module Puppet::Util::Yaml
24
24
  # @raise [YamlLoadException] If deserialization fails.
25
25
  # @return The parsed YAML, which can be Hash, Array or scalar types.
26
26
  def self.safe_load(yaml, allowed_classes = [], filename = nil)
27
- if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.1.0')
28
- data = YAML.safe_load(yaml, permitted_classes: allowed_classes, aliases: true, filename: filename)
29
- else
30
- data = YAML.safe_load(yaml, allowed_classes, [], true, filename)
31
- end
27
+ data = YAML.safe_load(yaml, allowed_classes, [], true, filename)
32
28
  data = false if data.nil?
33
29
  data
34
30
  rescue ::Psych::DisallowedClass => detail
@@ -46,43 +42,6 @@ module Puppet::Util::Yaml
46
42
  safe_load(yaml, allowed_classes, filename)
47
43
  end
48
44
 
49
- # Safely load the content from a file as YAML if
50
- # contents are in valid format. This method does not
51
- # raise error but returns `nil` when invalid file is
52
- # given.
53
- def self.safe_load_file_if_valid(filename, allowed_classes = [])
54
- safe_load_file(filename, allowed_classes)
55
- rescue YamlLoadError, ArgumentError, Errno::ENOENT => detail
56
- Puppet.debug("Could not retrieve YAML content from '#{filename}': #{detail.message}")
57
- nil
58
- end
59
-
60
- # @deprecated Use {#safe_load_file} instead.
61
- def self.load_file(filename, default_value = false, strip_classes = false)
62
- Puppet.deprecation_warning(_("Puppet::Util::Yaml.load_file is deprecated. Use safe_load_file instead."))
63
-
64
- if(strip_classes) then
65
- data = YAML::parse_file(filename)
66
- data.root.each do |o|
67
- if o.respond_to?(:tag=) and
68
- o.tag != nil and
69
- o.tag.start_with?("!ruby")
70
- o.tag = nil
71
- end
72
- end
73
- data.to_ruby || default_value
74
- else
75
- if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.3.2')
76
- yaml = YAML.unsafe_load_file(filename)
77
- else
78
- yaml = YAML.load_file(filename)
79
- end
80
- yaml || default_value
81
- end
82
- rescue *YamlLoadExceptions => detail
83
- raise YamlLoadError.new(detail.message, detail)
84
- end
85
-
86
45
  def self.dump(structure, filename)
87
46
  Puppet::FileSystem.replace_file(filename, 0660) do |fh|
88
47
  YAML.dump(structure, fh)
data/lib/puppet/util.rb CHANGED
@@ -7,7 +7,6 @@ require 'uri'
7
7
  require 'pathname'
8
8
  require 'ostruct'
9
9
  require 'puppet/util/platform'
10
- require 'puppet/util/windows'
11
10
  require 'puppet/util/symbolic_file_mode'
12
11
  require 'puppet/file_system/uniquefile'
13
12
  require 'securerandom'
@@ -23,6 +22,8 @@ module Util
23
22
  require 'puppet/util/posix'
24
23
  extend Puppet::Util::POSIX
25
24
 
25
+ require 'puppet/util/windows/process' if Puppet::Util::Platform.windows?
26
+
26
27
  extend Puppet::Util::SymbolicFileMode
27
28
 
28
29
  def default_env
@@ -762,13 +763,12 @@ module Util
762
763
  # Executes a block of code, wrapped around Facter.load_external(false) and
763
764
  # Facter.load_external(true) which will cause Facter to not evaluate external facts.
764
765
  def skip_external_facts
765
- return yield unless Puppet.runtime[:facter].load_external?
766
-
766
+ return yield unless Facter.respond_to? :load_external
767
767
  begin
768
- Puppet.runtime[:facter].load_external(false)
768
+ Facter.load_external(false)
769
769
  yield
770
770
  ensure
771
- Puppet.runtime[:facter].load_external(true)
771
+ Facter.load_external(true)
772
772
  end
773
773
  end
774
774
  module_function :skip_external_facts
@@ -2,4 +2,3 @@
2
2
  # Add one requirement per vendored package (or a comment if it is loaded on demand).
3
3
 
4
4
  # The vendored library 'rgen' is loaded on demand.
5
- # The vendored library 'pathspec' is loaded on demand.