puppet 6.29.0 → 7.0.0

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

Potentially problematic release.


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

Files changed (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/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/agent.rb +11 -47
  104. data/lib/puppet/application/agent.rb +16 -18
  105. data/lib/puppet/application/apply.rb +4 -24
  106. data/lib/puppet/application/device.rb +100 -106
  107. data/lib/puppet/application/filebucket.rb +13 -10
  108. data/lib/puppet/application/lookup.rb +24 -74
  109. data/lib/puppet/application/resource.rb +16 -32
  110. data/lib/puppet/application/script.rb +0 -2
  111. data/lib/puppet/application/ssl.rb +1 -13
  112. data/lib/puppet/application.rb +178 -108
  113. data/lib/puppet/application_support.rb +0 -7
  114. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  115. data/lib/puppet/configurer/downloader.rb +1 -2
  116. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  117. data/lib/puppet/configurer.rb +86 -183
  118. data/lib/puppet/confine/variable.rb +1 -1
  119. data/lib/puppet/defaults.rb +130 -244
  120. data/lib/puppet/environments.rb +82 -146
  121. data/lib/puppet/face/facts.rb +5 -103
  122. data/lib/puppet/face/generate.rb +0 -2
  123. data/lib/puppet/face/help/action.erb +0 -1
  124. data/lib/puppet/face/help/face.erb +0 -1
  125. data/lib/puppet/face/help.rb +1 -1
  126. data/lib/puppet/face/node/clean.rb +0 -11
  127. data/lib/puppet/face/plugin.rb +5 -8
  128. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  129. data/lib/puppet/ffi/windows/constants.rb +404 -0
  130. data/lib/puppet/ffi/windows/functions.rb +628 -0
  131. data/lib/puppet/ffi/windows/structs.rb +338 -0
  132. data/lib/puppet/ffi/windows.rb +12 -0
  133. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  134. data/lib/puppet/file_serving/configuration.rb +0 -8
  135. data/lib/puppet/file_serving/fileset.rb +2 -14
  136. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  137. data/lib/puppet/file_serving/metadata.rb +0 -3
  138. data/lib/puppet/file_serving/mount/file.rb +4 -4
  139. data/lib/puppet/file_serving/mount.rb +1 -2
  140. data/lib/puppet/file_system/file_impl.rb +8 -10
  141. data/lib/puppet/file_system/jruby.rb +1 -1
  142. data/lib/puppet/file_system/memory_file.rb +1 -8
  143. data/lib/puppet/file_system/windows.rb +6 -8
  144. data/lib/puppet/file_system.rb +1 -1
  145. data/lib/puppet/forge/repository.rb +0 -1
  146. data/lib/puppet/forge.rb +4 -4
  147. data/lib/puppet/functions/all.rb +1 -1
  148. data/lib/puppet/functions/camelcase.rb +1 -1
  149. data/lib/puppet/functions/capitalize.rb +2 -2
  150. data/lib/puppet/functions/downcase.rb +2 -2
  151. data/lib/puppet/functions/empty.rb +0 -8
  152. data/lib/puppet/functions/find_template.rb +2 -2
  153. data/lib/puppet/functions/get.rb +5 -5
  154. data/lib/puppet/functions/group_by.rb +5 -13
  155. data/lib/puppet/functions/lest.rb +1 -1
  156. data/lib/puppet/functions/new.rb +100 -100
  157. data/lib/puppet/functions/next.rb +1 -18
  158. data/lib/puppet/functions/partition.rb +4 -12
  159. data/lib/puppet/functions/require.rb +5 -5
  160. data/lib/puppet/functions/sort.rb +3 -3
  161. data/lib/puppet/functions/strftime.rb +0 -1
  162. data/lib/puppet/functions/tree_each.rb +10 -7
  163. data/lib/puppet/functions/type.rb +4 -4
  164. data/lib/puppet/functions/unwrap.rb +2 -17
  165. data/lib/puppet/functions/upcase.rb +2 -2
  166. data/lib/puppet/functions/versioncmp.rb +2 -6
  167. data/lib/puppet/generate/models/type/type.rb +4 -1
  168. data/lib/puppet/generate/type.rb +0 -9
  169. data/lib/puppet/http/client.rb +167 -137
  170. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  171. data/lib/puppet/http/errors.rb +16 -0
  172. data/lib/puppet/http/external_client.rb +5 -7
  173. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  174. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  175. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  176. data/lib/puppet/http/proxy.rb +137 -0
  177. data/lib/puppet/http/redirector.rb +4 -17
  178. data/lib/puppet/http/resolver/server_list.rb +10 -25
  179. data/lib/puppet/http/resolver/settings.rb +4 -7
  180. data/lib/puppet/http/resolver/srv.rb +7 -11
  181. data/lib/puppet/http/resolver.rb +5 -15
  182. data/lib/puppet/http/response.rb +36 -54
  183. data/lib/puppet/http/response_converter.rb +24 -0
  184. data/lib/puppet/http/response_net_http.rb +42 -0
  185. data/lib/puppet/http/retry_after_handler.rb +4 -13
  186. data/lib/puppet/http/service/ca.rb +11 -22
  187. data/lib/puppet/http/service/compiler.rb +23 -144
  188. data/lib/puppet/http/service/file_server.rb +19 -29
  189. data/lib/puppet/http/service/puppetserver.rb +26 -12
  190. data/lib/puppet/http/service/report.rb +8 -10
  191. data/lib/puppet/http/service.rb +12 -26
  192. data/lib/puppet/http/session.rb +11 -20
  193. data/lib/puppet/{network/http → http}/site.rb +1 -2
  194. data/lib/puppet/http.rb +22 -13
  195. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  196. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  197. data/lib/puppet/indirector/facts/facter.rb +6 -6
  198. data/lib/puppet/indirector/facts/rest.rb +3 -22
  199. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  200. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  201. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  202. data/lib/puppet/indirector/file_server.rb +1 -8
  203. data/lib/puppet/indirector/generic_http.rb +0 -11
  204. data/lib/puppet/indirector/indirection.rb +1 -1
  205. data/lib/puppet/indirector/node/rest.rb +2 -4
  206. data/lib/puppet/indirector/report/rest.rb +3 -8
  207. data/lib/puppet/indirector/request.rb +0 -101
  208. data/lib/puppet/indirector/resource/ral.rb +1 -6
  209. data/lib/puppet/indirector/rest.rb +12 -263
  210. data/lib/puppet/indirector/terminus.rb +0 -4
  211. data/lib/puppet/interface/documentation.rb +0 -1
  212. data/lib/puppet/module/plan.rb +1 -0
  213. data/lib/puppet/module/task.rb +1 -1
  214. data/lib/puppet/module.rb +0 -1
  215. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  216. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  217. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  218. data/lib/puppet/module_tool/applications.rb +0 -1
  219. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  220. data/lib/puppet/network/authconfig.rb +2 -96
  221. data/lib/puppet/network/authorization.rb +13 -35
  222. data/lib/puppet/network/formats.rb +0 -67
  223. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  224. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  225. data/lib/puppet/network/http/connection.rb +247 -316
  226. data/lib/puppet/network/http/handler.rb +0 -1
  227. data/lib/puppet/network/http.rb +3 -3
  228. data/lib/puppet/network/http_pool.rb +16 -34
  229. data/lib/puppet/node/environment.rb +11 -10
  230. data/lib/puppet/node.rb +2 -31
  231. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  232. data/lib/puppet/pal/pal_impl.rb +4 -2
  233. data/lib/puppet/parser/ast/leaf.rb +2 -3
  234. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  235. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  236. data/lib/puppet/parser/compiler.rb +0 -198
  237. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  238. data/lib/puppet/parser/resource.rb +1 -70
  239. data/lib/puppet/parser/scope.rb +0 -1
  240. data/lib/puppet/parser/templatewrapper.rb +1 -2
  241. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  242. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  243. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  244. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  245. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  246. data/lib/puppet/pops/issues.rb +0 -5
  247. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  248. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  249. data/lib/puppet/pops/model/ast.pp +0 -42
  250. data/lib/puppet/pops/model/ast.rb +0 -291
  251. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  252. data/lib/puppet/pops/model/factory.rb +1 -47
  253. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  254. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  255. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  256. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  257. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  258. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  259. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  260. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  261. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  262. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  263. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  264. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  265. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  266. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  267. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  268. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  269. data/lib/puppet/pops/types/type_parser.rb +0 -4
  270. data/lib/puppet/pops/types/types.rb +1 -2
  271. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  272. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  273. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  274. data/lib/puppet/property/list.rb +1 -1
  275. data/lib/puppet/provider/aix_object.rb +1 -1
  276. data/lib/puppet/provider/exec/posix.rb +4 -16
  277. data/lib/puppet/provider/group/groupadd.rb +10 -18
  278. data/lib/puppet/provider/nameservice.rb +0 -18
  279. data/lib/puppet/provider/package/apt.rb +2 -34
  280. data/lib/puppet/provider/package/aptitude.rb +0 -6
  281. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  282. data/lib/puppet/provider/package/dpkg.rb +0 -10
  283. data/lib/puppet/provider/package/gem.rb +23 -3
  284. data/lib/puppet/provider/package/nim.rb +6 -11
  285. data/lib/puppet/provider/package/pip.rb +3 -16
  286. data/lib/puppet/provider/package/pkg.rb +2 -23
  287. data/lib/puppet/provider/package/portage.rb +1 -1
  288. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  289. data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
  290. data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
  291. data/lib/puppet/provider/package/windows/package.rb +1 -2
  292. data/lib/puppet/provider/package/windows.rb +1 -14
  293. data/lib/puppet/provider/package/yum.rb +1 -1
  294. data/lib/puppet/provider/parsedfile.rb +0 -3
  295. data/lib/puppet/provider/service/base.rb +1 -1
  296. data/lib/puppet/provider/service/debian.rb +0 -2
  297. data/lib/puppet/provider/service/init.rb +9 -10
  298. data/lib/puppet/provider/service/launchd.rb +2 -2
  299. data/lib/puppet/provider/service/redhat.rb +1 -1
  300. data/lib/puppet/provider/service/smf.rb +194 -76
  301. data/lib/puppet/provider/service/systemd.rb +6 -16
  302. data/lib/puppet/provider/service/upstart.rb +5 -5
  303. data/lib/puppet/provider/service/windows.rb +0 -38
  304. data/lib/puppet/provider/user/aix.rb +3 -46
  305. data/lib/puppet/provider/user/directoryservice.rb +11 -39
  306. data/lib/puppet/provider/user/useradd.rb +24 -134
  307. data/lib/puppet/provider.rb +1 -14
  308. data/lib/puppet/reference/configuration.rb +8 -7
  309. data/lib/puppet/reference/indirection.rb +1 -1
  310. data/lib/puppet/reference/providers.rb +2 -2
  311. data/lib/puppet/resource/catalog.rb +2 -15
  312. data/lib/puppet/resource/type.rb +3 -119
  313. data/lib/puppet/resource/type_collection.rb +3 -49
  314. data/lib/puppet/resource.rb +6 -127
  315. data/lib/puppet/runtime.rb +2 -13
  316. data/lib/puppet/settings/environment_conf.rb +0 -1
  317. data/lib/puppet/settings/integer_setting.rb +17 -0
  318. data/lib/puppet/settings/port_setting.rb +15 -0
  319. data/lib/puppet/settings/priority_setting.rb +5 -4
  320. data/lib/puppet/settings.rb +82 -98
  321. data/lib/puppet/ssl/base.rb +3 -5
  322. data/lib/puppet/ssl/certificate.rb +0 -6
  323. data/lib/puppet/ssl/certificate_request.rb +1 -12
  324. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  325. data/lib/puppet/ssl/oids.rb +3 -1
  326. data/lib/puppet/ssl/ssl_provider.rb +36 -75
  327. data/lib/puppet/ssl/state_machine.rb +20 -14
  328. data/lib/puppet/ssl/verifier.rb +2 -6
  329. data/lib/puppet/ssl.rb +10 -6
  330. data/lib/puppet/test/test_helper.rb +2 -7
  331. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  332. data/lib/puppet/transaction/persistence.rb +1 -21
  333. data/lib/puppet/transaction/report.rb +3 -19
  334. data/lib/puppet/transaction.rb +1 -7
  335. data/lib/puppet/type/exec.rb +6 -36
  336. data/lib/puppet/type/file/checksum.rb +1 -1
  337. data/lib/puppet/type/file/data_sync.rb +1 -1
  338. data/lib/puppet/type/file/mode.rb +0 -6
  339. data/lib/puppet/type/file/selcontext.rb +1 -1
  340. data/lib/puppet/type/file/source.rb +1 -1
  341. data/lib/puppet/type/file.rb +12 -32
  342. data/lib/puppet/type/filebucket.rb +4 -4
  343. data/lib/puppet/type/group.rb +1 -0
  344. data/lib/puppet/type/package.rb +8 -16
  345. data/lib/puppet/type/resources.rb +1 -1
  346. data/lib/puppet/type/service.rb +41 -26
  347. data/lib/puppet/type/tidy.rb +3 -22
  348. data/lib/puppet/type/user.rb +13 -35
  349. data/lib/puppet/type.rb +1 -77
  350. data/lib/puppet/util/autoload.rb +8 -1
  351. data/lib/puppet/util/command_line.rb +1 -1
  352. data/lib/puppet/util/execution.rb +0 -11
  353. data/lib/puppet/util/filetype.rb +2 -2
  354. data/lib/puppet/util/http_proxy.rb +2 -215
  355. data/lib/puppet/util/json.rb +0 -20
  356. data/lib/puppet/util/log.rb +4 -8
  357. data/lib/puppet/util/logging.rb +25 -1
  358. data/lib/puppet/util/monkey_patches.rb +2 -59
  359. data/lib/puppet/util/package.rb +16 -25
  360. data/lib/puppet/util/pidlock.rb +1 -1
  361. data/lib/puppet/util/posix.rb +5 -54
  362. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  363. data/lib/puppet/util/rdoc.rb +0 -7
  364. data/lib/puppet/util/retry_action.rb +1 -1
  365. data/lib/puppet/util/run_mode.rb +9 -1
  366. data/lib/puppet/util/selinux.rb +4 -30
  367. data/lib/puppet/util/suidmanager.rb +2 -1
  368. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  369. data/lib/puppet/util/tagging.rb +0 -1
  370. data/lib/puppet/util/windows/adsi.rb +0 -46
  371. data/lib/puppet/util/windows/daemon.rb +360 -0
  372. data/lib/puppet/util/windows/error.rb +1 -0
  373. data/lib/puppet/util/windows/eventlog.rb +4 -9
  374. data/lib/puppet/util/windows/file.rb +8 -242
  375. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  376. data/lib/puppet/util/windows/principal.rb +2 -9
  377. data/lib/puppet/util/windows/process.rb +4 -226
  378. data/lib/puppet/util/windows/service.rb +11 -457
  379. data/lib/puppet/util/windows/sid.rb +2 -6
  380. data/lib/puppet/util/windows/string.rb +12 -13
  381. data/lib/puppet/util/windows/user.rb +2 -0
  382. data/lib/puppet/util/windows.rb +3 -11
  383. data/lib/puppet/util/yaml.rb +1 -42
  384. data/lib/puppet/util.rb +5 -5
  385. data/lib/puppet/vendor/require_vendored.rb +0 -1
  386. data/lib/puppet/version.rb +1 -1
  387. data/lib/puppet/x509/cert_provider.rb +29 -1
  388. data/lib/puppet/x509.rb +5 -1
  389. data/lib/puppet.rb +34 -27
  390. data/locales/puppet.pot +9633 -5
  391. data/man/man5/puppet.conf.5 +286 -401
  392. data/man/man8/puppet-agent.8 +2 -5
  393. data/man/man8/puppet-apply.8 +2 -2
  394. data/man/man8/puppet-catalog.8 +9 -9
  395. data/man/man8/puppet-config.8 +1 -1
  396. data/man/man8/puppet-describe.8 +1 -1
  397. data/man/man8/puppet-device.8 +2 -2
  398. data/man/man8/puppet-doc.8 +1 -1
  399. data/man/man8/puppet-epp.8 +1 -1
  400. data/man/man8/puppet-facts.8 +8 -51
  401. data/man/man8/puppet-filebucket.8 +4 -4
  402. data/man/man8/puppet-generate.8 +1 -1
  403. data/man/man8/puppet-help.8 +1 -1
  404. data/man/man8/puppet-lookup.8 +6 -9
  405. data/man/man8/puppet-module.8 +3 -60
  406. data/man/man8/puppet-node.8 +5 -5
  407. data/man/man8/puppet-parser.8 +1 -1
  408. data/man/man8/puppet-plugin.8 +1 -1
  409. data/man/man8/puppet-report.8 +5 -5
  410. data/man/man8/puppet-resource.8 +1 -1
  411. data/man/man8/puppet-script.8 +2 -2
  412. data/man/man8/puppet-ssl.8 +1 -5
  413. data/man/man8/puppet.8 +2 -2
  414. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  415. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  416. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  417. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  418. data/spec/fixtures/ssl/ca.pem +35 -57
  419. data/spec/fixtures/ssl/crl.pem +18 -28
  420. data/spec/fixtures/ssl/ec-key.pem +11 -11
  421. data/spec/fixtures/ssl/ec.pem +24 -33
  422. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  423. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  424. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  425. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  426. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  427. data/spec/fixtures/ssl/intermediate.pem +36 -57
  428. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  429. data/spec/fixtures/ssl/pluto.pem +30 -52
  430. data/spec/fixtures/ssl/request-key.pem +57 -107
  431. data/spec/fixtures/ssl/request.pem +26 -47
  432. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  433. data/spec/fixtures/ssl/revoked.pem +30 -52
  434. data/spec/fixtures/ssl/signed-key.pem +57 -107
  435. data/spec/fixtures/ssl/signed.pem +30 -52
  436. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  437. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  438. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  439. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  440. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  441. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  442. data/spec/fixtures/unit/forge/bacula.json +1 -1
  443. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  444. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  445. data/spec/integration/application/agent_spec.rb +50 -406
  446. data/spec/integration/application/apply_spec.rb +1 -20
  447. data/spec/integration/application/filebucket_spec.rb +16 -32
  448. data/spec/integration/application/help_spec.rb +2 -0
  449. data/spec/integration/application/lookup_spec.rb +50 -81
  450. data/spec/integration/application/module_spec.rb +0 -21
  451. data/spec/integration/application/plugin_spec.rb +24 -2
  452. data/spec/integration/configurer_spec.rb +2 -18
  453. data/spec/integration/defaults_spec.rb +14 -3
  454. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  455. data/spec/integration/http/client_spec.rb +4 -63
  456. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  457. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  458. data/spec/integration/network/http_pool_spec.rb +3 -21
  459. data/spec/integration/parser/catalog_spec.rb +0 -38
  460. data/spec/integration/parser/node_spec.rb +0 -9
  461. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  462. data/spec/integration/resource/type_collection_spec.rb +6 -2
  463. data/spec/integration/transaction/report_spec.rb +1 -1
  464. data/spec/integration/transaction_spec.rb +9 -4
  465. data/spec/integration/type/exec_spec.rb +45 -70
  466. data/spec/integration/type/file_spec.rb +7 -6
  467. data/spec/integration/type/package_spec.rb +6 -6
  468. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  469. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  470. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  471. data/spec/integration/util/windows/principal_spec.rb +0 -21
  472. data/spec/integration/util/windows/process_spec.rb +9 -1
  473. data/spec/integration/util/windows/registry_spec.rb +10 -6
  474. data/spec/integration/util/windows/security_spec.rb +1 -1
  475. data/spec/lib/matchers/include.rb +27 -0
  476. data/spec/lib/matchers/include_spec.rb +32 -0
  477. data/spec/lib/puppet/test_ca.rb +2 -7
  478. data/spec/lib/puppet_spec/https.rb +1 -1
  479. data/spec/lib/puppet_spec/modules.rb +2 -13
  480. data/spec/lib/puppet_spec/puppetserver.rb +3 -55
  481. data/spec/lib/puppet_spec/settings.rb +1 -1
  482. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  483. data/spec/spec_helper.rb +17 -13
  484. data/spec/unit/agent_spec.rb +8 -38
  485. data/spec/unit/application/agent_spec.rb +19 -33
  486. data/spec/unit/application/apply_spec.rb +56 -76
  487. data/spec/unit/application/facts_spec.rb +12 -456
  488. data/spec/unit/application/filebucket_spec.rb +43 -39
  489. data/spec/unit/application/lookup_spec.rb +10 -131
  490. data/spec/unit/application/resource_spec.rb +0 -29
  491. data/spec/unit/application/ssl_spec.rb +2 -25
  492. data/spec/unit/application_spec.rb +9 -51
  493. data/spec/unit/certificate_factory_spec.rb +1 -1
  494. data/spec/unit/configurer/downloader_spec.rb +6 -8
  495. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  496. data/spec/unit/configurer_spec.rb +68 -327
  497. data/spec/unit/confine/feature_spec.rb +1 -1
  498. data/spec/unit/confine_spec.rb +2 -8
  499. data/spec/unit/context/trusted_information_spec.rb +2 -6
  500. data/spec/unit/daemon_spec.rb +11 -2
  501. data/spec/unit/defaults_spec.rb +68 -55
  502. data/spec/unit/environments_spec.rb +68 -408
  503. data/spec/unit/face/generate_spec.rb +0 -64
  504. data/spec/unit/face/node_spec.rb +11 -0
  505. data/spec/unit/face/plugin_spec.rb +73 -33
  506. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  507. data/spec/unit/file_bucket/file_spec.rb +1 -1
  508. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  509. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  510. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  511. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  512. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  513. data/spec/unit/file_system_spec.rb +4 -56
  514. data/spec/unit/forge/module_release_spec.rb +10 -5
  515. data/spec/unit/functions/assert_type_spec.rb +1 -1
  516. data/spec/unit/functions/camelcase_spec.rb +1 -1
  517. data/spec/unit/functions/capitalize_spec.rb +1 -1
  518. data/spec/unit/functions/downcase_spec.rb +1 -1
  519. data/spec/unit/functions/empty_spec.rb +0 -10
  520. data/spec/unit/functions/logging_spec.rb +0 -1
  521. data/spec/unit/functions/lookup_spec.rb +0 -64
  522. data/spec/unit/functions/unwrap_spec.rb +0 -8
  523. data/spec/unit/functions/upcase_spec.rb +1 -1
  524. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  525. data/spec/unit/functions4_spec.rb +2 -2
  526. data/spec/unit/gettext/config_spec.rb +0 -12
  527. data/spec/unit/http/client_spec.rb +8 -84
  528. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  529. data/spec/unit/http/external_client_spec.rb +4 -4
  530. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  531. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  532. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  533. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  534. data/spec/unit/http/resolver_spec.rb +13 -13
  535. data/spec/unit/http/service/compiler_spec.rb +0 -193
  536. data/spec/unit/http/service/file_server_spec.rb +3 -3
  537. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  538. data/spec/unit/http/service_spec.rb +0 -1
  539. data/spec/unit/http/session_spec.rb +16 -14
  540. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  541. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  542. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  543. data/spec/unit/indirector/face_spec.rb +1 -0
  544. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  545. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  546. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  547. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  548. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  549. data/spec/unit/indirector/file_server_spec.rb +1 -15
  550. data/spec/unit/indirector/indirection_spec.rb +15 -18
  551. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  552. data/spec/unit/indirector/request_spec.rb +0 -264
  553. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  554. data/spec/unit/indirector/rest_spec.rb +98 -752
  555. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  556. data/spec/unit/indirector_spec.rb +2 -2
  557. data/spec/unit/interface/action_spec.rb +9 -0
  558. data/spec/unit/module_spec.rb +1 -15
  559. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  560. data/spec/unit/network/authconfig_spec.rb +2 -129
  561. data/spec/unit/network/authorization_spec.rb +2 -55
  562. data/spec/unit/network/formats_spec.rb +4 -51
  563. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  564. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  565. data/spec/unit/network/http/api_spec.rb +10 -0
  566. data/spec/unit/network/http/connection_spec.rb +19 -41
  567. data/spec/unit/network/http/handler_spec.rb +0 -1
  568. data/spec/unit/network/http_pool_spec.rb +0 -4
  569. data/spec/unit/node/environment_spec.rb +33 -21
  570. data/spec/unit/node_spec.rb +2 -60
  571. data/spec/unit/parser/compiler_spec.rb +19 -3
  572. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  573. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  574. data/spec/unit/parser/resource_spec.rb +8 -14
  575. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  576. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  577. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  578. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  579. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  580. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  581. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  582. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  583. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  584. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  585. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  586. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  587. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  588. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  589. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  590. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  591. data/spec/unit/pops/visitor_spec.rb +1 -1
  592. data/spec/unit/property_spec.rb +0 -1
  593. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  594. data/spec/unit/provider/nameservice_spec.rb +64 -122
  595. data/spec/unit/provider/package/apt_spec.rb +23 -28
  596. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  597. data/spec/unit/provider/package/base_spec.rb +5 -6
  598. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  599. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  600. data/spec/unit/provider/package/gem_spec.rb +33 -1
  601. data/spec/unit/provider/package/nim_spec.rb +0 -42
  602. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  603. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  604. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  605. data/spec/unit/provider/package/pip_spec.rb +12 -44
  606. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  607. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  608. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  609. data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
  610. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
  611. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  612. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  613. data/spec/unit/provider/service/init_spec.rb +9 -16
  614. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  615. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  616. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  617. data/spec/unit/provider/service/smf_spec.rb +401 -165
  618. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  619. data/spec/unit/provider/service/windows_spec.rb +0 -203
  620. data/spec/unit/provider/user/aix_spec.rb +0 -105
  621. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  622. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  623. data/spec/unit/provider/user/pw_spec.rb +0 -2
  624. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  625. data/spec/unit/provider_spec.rb +12 -22
  626. data/spec/unit/puppet_spec.rb +4 -12
  627. data/spec/unit/resource/catalog_spec.rb +2 -15
  628. data/spec/unit/resource/type_collection_spec.rb +2 -22
  629. data/spec/unit/resource/type_spec.rb +1 -1
  630. data/spec/unit/resource_spec.rb +12 -125
  631. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  632. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  633. data/spec/unit/settings/port_setting_spec.rb +31 -0
  634. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  635. data/spec/unit/settings_spec.rb +79 -110
  636. data/spec/unit/ssl/base_spec.rb +37 -3
  637. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  638. data/spec/unit/ssl/certificate_spec.rb +2 -11
  639. data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
  640. data/spec/unit/ssl/state_machine_spec.rb +5 -21
  641. data/spec/unit/ssl/verifier_spec.rb +0 -21
  642. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  643. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  644. data/spec/unit/transaction/persistence_spec.rb +0 -51
  645. data/spec/unit/transaction/report_spec.rb +0 -2
  646. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  647. data/spec/unit/transaction_spec.rb +55 -96
  648. data/spec/unit/type/exec_spec.rb +29 -76
  649. data/spec/unit/type/file/checksum_spec.rb +6 -6
  650. data/spec/unit/type/file/content_spec.rb +2 -1
  651. data/spec/unit/type/file/ensure_spec.rb +1 -1
  652. data/spec/unit/type/file/mode_spec.rb +1 -1
  653. data/spec/unit/type/file/selinux_spec.rb +5 -3
  654. data/spec/unit/type/file/source_spec.rb +4 -5
  655. data/spec/unit/type/file_spec.rb +18 -6
  656. data/spec/unit/type/group_spec.rb +6 -13
  657. data/spec/unit/type/package_spec.rb +1 -1
  658. data/spec/unit/type/resources_spec.rb +7 -7
  659. data/spec/unit/type/service_spec.rb +189 -87
  660. data/spec/unit/type/tidy_spec.rb +8 -24
  661. data/spec/unit/type_spec.rb +24 -4
  662. data/spec/unit/util/at_fork_spec.rb +2 -2
  663. data/spec/unit/util/autoload_spec.rb +1 -5
  664. data/spec/unit/util/backups_spec.rb +2 -3
  665. data/spec/unit/util/execution_spec.rb +11 -44
  666. data/spec/unit/util/inifile_spec.rb +14 -6
  667. data/spec/unit/util/log_spec.rb +7 -8
  668. data/spec/unit/util/logging_spec.rb +3 -5
  669. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  670. data/spec/unit/util/posix_spec.rb +15 -363
  671. data/spec/unit/util/run_mode_spec.rb +21 -121
  672. data/spec/unit/util/selinux_spec.rb +68 -163
  673. data/spec/unit/util/storage_spec.rb +1 -3
  674. data/spec/unit/util/suidmanager_spec.rb +41 -44
  675. data/spec/unit/util/windows/sid_spec.rb +0 -41
  676. data/spec/unit/util/windows/string_spec.rb +1 -3
  677. data/spec/unit/util/yaml_spec.rb +13 -92
  678. data/spec/unit/util_spec.rb +6 -31
  679. data/tasks/generate_cert_fixtures.rake +7 -17
  680. data/tasks/parallel.rake +3 -3
  681. metadata +138 -239
  682. data/conf/auth.conf +0 -150
  683. data/ext/README.md +0 -13
  684. data/lib/puppet/application/cert.rb +0 -76
  685. data/lib/puppet/application/key.rb +0 -4
  686. data/lib/puppet/application/man.rb +0 -4
  687. data/lib/puppet/application/status.rb +0 -4
  688. data/lib/puppet/face/key.rb +0 -16
  689. data/lib/puppet/face/man.rb +0 -145
  690. data/lib/puppet/face/module/build.rb +0 -14
  691. data/lib/puppet/face/module/generate.rb +0 -14
  692. data/lib/puppet/face/module/search.rb +0 -103
  693. data/lib/puppet/face/status.rb +0 -51
  694. data/lib/puppet/facter_impl.rb +0 -96
  695. data/lib/puppet/ffi/posix/constants.rb +0 -14
  696. data/lib/puppet/ffi/posix/functions.rb +0 -24
  697. data/lib/puppet/ffi/posix.rb +0 -10
  698. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  699. data/lib/puppet/indirector/certificate/file.rb +0 -9
  700. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  701. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  702. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  703. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  704. data/lib/puppet/indirector/file_content/http.rb +0 -22
  705. data/lib/puppet/indirector/key/file.rb +0 -46
  706. data/lib/puppet/indirector/key/memory.rb +0 -7
  707. data/lib/puppet/indirector/ssl_file.rb +0 -162
  708. data/lib/puppet/indirector/status/local.rb +0 -12
  709. data/lib/puppet/indirector/status/rest.rb +0 -27
  710. data/lib/puppet/indirector/status.rb +0 -3
  711. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  712. data/lib/puppet/network/auth_config_parser.rb +0 -90
  713. data/lib/puppet/network/authstore.rb +0 -283
  714. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  715. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  716. data/lib/puppet/network/http/base_pool.rb +0 -36
  717. data/lib/puppet/network/http/compression.rb +0 -127
  718. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  719. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  720. data/lib/puppet/network/rest_controller.rb +0 -2
  721. data/lib/puppet/network/rights.rb +0 -210
  722. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  723. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  724. data/lib/puppet/parser/environment_compiler.rb +0 -202
  725. data/lib/puppet/pops/types/enumeration.rb +0 -16
  726. data/lib/puppet/resource/capability_finder.rb +0 -154
  727. data/lib/puppet/rest/errors.rb +0 -15
  728. data/lib/puppet/rest/response.rb +0 -35
  729. data/lib/puppet/rest/route.rb +0 -85
  730. data/lib/puppet/rest/routes.rb +0 -135
  731. data/lib/puppet/settings/alias_setting.rb +0 -37
  732. data/lib/puppet/ssl/host.rb +0 -505
  733. data/lib/puppet/ssl/key.rb +0 -61
  734. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  735. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  736. data/lib/puppet/ssl/validator.rb +0 -61
  737. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  738. data/lib/puppet/status.rb +0 -40
  739. data/lib/puppet/util/connection.rb +0 -88
  740. data/lib/puppet/util/fact_dif.rb +0 -81
  741. data/lib/puppet/util/ssl.rb +0 -83
  742. data/lib/puppet/util/windows/api_types.rb +0 -309
  743. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  744. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  745. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  746. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  747. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  748. data/lib/puppet/vendor/pathspec/README.md +0 -53
  749. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  750. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  751. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  752. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  753. data/man/man8/puppet-key.8 +0 -126
  754. data/man/man8/puppet-man.8 +0 -76
  755. data/man/man8/puppet-status.8 +0 -108
  756. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  757. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  758. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  759. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  760. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  761. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  762. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  763. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  764. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  765. data/spec/fixtures/ssl/oid-key.pem +0 -117
  766. data/spec/fixtures/ssl/oid.pem +0 -69
  767. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  768. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  769. data/spec/integration/application/resource_spec.rb +0 -68
  770. data/spec/integration/application/ssl_spec.rb +0 -20
  771. data/spec/integration/l10n/compiler_spec.rb +0 -37
  772. data/spec/integration/network/authconfig_spec.rb +0 -256
  773. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  774. data/spec/shared_contexts/l10n.rb +0 -32
  775. data/spec/unit/application/man_spec.rb +0 -52
  776. data/spec/unit/capability_spec.rb +0 -414
  777. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  778. data/spec/unit/face/key_spec.rb +0 -9
  779. data/spec/unit/face/module/search_spec.rb +0 -231
  780. data/spec/unit/face/status_spec.rb +0 -9
  781. data/spec/unit/facter_impl_spec.rb +0 -31
  782. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  783. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  784. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  785. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  786. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  787. data/spec/unit/indirector/key/file_spec.rb +0 -78
  788. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  789. data/spec/unit/indirector/status/local_spec.rb +0 -10
  790. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  791. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  792. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  793. data/spec/unit/network/authstore_spec.rb +0 -407
  794. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  795. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  796. data/spec/unit/network/http/compression_spec.rb +0 -240
  797. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  798. data/spec/unit/network/http_spec.rb +0 -9
  799. data/spec/unit/network/rights_spec.rb +0 -439
  800. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  801. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  802. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  803. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  804. data/spec/unit/rest/route_spec.rb +0 -132
  805. data/spec/unit/ssl/host_spec.rb +0 -645
  806. data/spec/unit/ssl/key_spec.rb +0 -173
  807. data/spec/unit/ssl/validator_spec.rb +0 -278
  808. data/spec/unit/status_spec.rb +0 -45
  809. data/spec/unit/util/json_spec.rb +0 -126
  810. data/spec/unit/util/ssl_spec.rb +0 -91
  811. data/spec/unit/util/windows_spec.rb +0 -23
@@ -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.