puppet 6.25.1-universal-darwin → 7.0.0-universal-darwin

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 (784) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +3 -5
  5. data/Gemfile.lock +39 -51
  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 +1 -15
  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/application/agent.rb +4 -16
  104. data/lib/puppet/application/apply.rb +4 -24
  105. data/lib/puppet/application/device.rb +100 -106
  106. data/lib/puppet/application/filebucket.rb +13 -10
  107. data/lib/puppet/application/resource.rb +16 -32
  108. data/lib/puppet/application/script.rb +0 -2
  109. data/lib/puppet/application/ssl.rb +1 -13
  110. data/lib/puppet/application.rb +178 -108
  111. data/lib/puppet/application_support.rb +0 -7
  112. data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
  113. data/lib/puppet/configurer/downloader.rb +1 -2
  114. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  115. data/lib/puppet/configurer.rb +86 -189
  116. data/lib/puppet/confine/variable.rb +1 -1
  117. data/lib/puppet/defaults.rb +128 -232
  118. data/lib/puppet/environments.rb +82 -146
  119. data/lib/puppet/face/facts.rb +5 -103
  120. data/lib/puppet/face/help/action.erb +0 -1
  121. data/lib/puppet/face/help/face.erb +0 -1
  122. data/lib/puppet/face/help.rb +1 -1
  123. data/lib/puppet/face/node/clean.rb +0 -11
  124. data/lib/puppet/face/plugin.rb +5 -8
  125. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  126. data/lib/puppet/ffi/windows/constants.rb +404 -0
  127. data/lib/puppet/ffi/windows/functions.rb +628 -0
  128. data/lib/puppet/ffi/windows/structs.rb +338 -0
  129. data/lib/puppet/ffi/windows.rb +12 -0
  130. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  131. data/lib/puppet/file_serving/configuration.rb +0 -8
  132. data/lib/puppet/file_serving/fileset.rb +2 -14
  133. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  134. data/lib/puppet/file_serving/mount/file.rb +4 -4
  135. data/lib/puppet/file_serving/mount.rb +1 -2
  136. data/lib/puppet/file_system/file_impl.rb +1 -3
  137. data/lib/puppet/file_system/memory_file.rb +1 -8
  138. data/lib/puppet/file_system/windows.rb +2 -4
  139. data/lib/puppet/forge/repository.rb +0 -1
  140. data/lib/puppet/forge.rb +4 -4
  141. data/lib/puppet/functions/all.rb +1 -1
  142. data/lib/puppet/functions/camelcase.rb +1 -1
  143. data/lib/puppet/functions/capitalize.rb +2 -2
  144. data/lib/puppet/functions/downcase.rb +2 -2
  145. data/lib/puppet/functions/empty.rb +0 -8
  146. data/lib/puppet/functions/find_template.rb +2 -2
  147. data/lib/puppet/functions/get.rb +5 -5
  148. data/lib/puppet/functions/group_by.rb +5 -13
  149. data/lib/puppet/functions/lest.rb +1 -1
  150. data/lib/puppet/functions/new.rb +100 -100
  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 +9 -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/generate/models/type/type.rb +4 -1
  160. data/lib/puppet/http/client.rb +165 -115
  161. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  162. data/lib/puppet/http/errors.rb +16 -0
  163. data/lib/puppet/http/external_client.rb +5 -7
  164. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  165. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  166. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  167. data/lib/puppet/http/proxy.rb +137 -0
  168. data/lib/puppet/http/redirector.rb +4 -17
  169. data/lib/puppet/http/resolver/server_list.rb +10 -25
  170. data/lib/puppet/http/resolver/settings.rb +4 -7
  171. data/lib/puppet/http/resolver/srv.rb +7 -11
  172. data/lib/puppet/http/resolver.rb +5 -15
  173. data/lib/puppet/http/response.rb +36 -54
  174. data/lib/puppet/http/response_converter.rb +24 -0
  175. data/lib/puppet/http/response_net_http.rb +42 -0
  176. data/lib/puppet/http/retry_after_handler.rb +4 -13
  177. data/lib/puppet/http/service/ca.rb +11 -22
  178. data/lib/puppet/http/service/compiler.rb +23 -144
  179. data/lib/puppet/http/service/file_server.rb +19 -29
  180. data/lib/puppet/http/service/puppetserver.rb +26 -12
  181. data/lib/puppet/http/service/report.rb +8 -10
  182. data/lib/puppet/http/service.rb +12 -26
  183. data/lib/puppet/http/session.rb +11 -20
  184. data/lib/puppet/{network/http → http}/site.rb +1 -2
  185. data/lib/puppet/http.rb +22 -13
  186. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  187. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  188. data/lib/puppet/indirector/facts/facter.rb +6 -6
  189. data/lib/puppet/indirector/facts/rest.rb +3 -22
  190. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  191. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  192. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  193. data/lib/puppet/indirector/file_server.rb +1 -8
  194. data/lib/puppet/indirector/generic_http.rb +0 -11
  195. data/lib/puppet/indirector/indirection.rb +1 -1
  196. data/lib/puppet/indirector/node/rest.rb +2 -4
  197. data/lib/puppet/indirector/report/rest.rb +3 -8
  198. data/lib/puppet/indirector/request.rb +0 -101
  199. data/lib/puppet/indirector/resource/ral.rb +1 -6
  200. data/lib/puppet/indirector/rest.rb +12 -263
  201. data/lib/puppet/indirector/terminus.rb +0 -4
  202. data/lib/puppet/interface/documentation.rb +0 -1
  203. data/lib/puppet/module/plan.rb +1 -0
  204. data/lib/puppet/module/task.rb +1 -1
  205. data/lib/puppet/module.rb +0 -1
  206. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  207. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  208. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  209. data/lib/puppet/module_tool/applications.rb +0 -1
  210. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  211. data/lib/puppet/network/authconfig.rb +2 -96
  212. data/lib/puppet/network/authorization.rb +13 -35
  213. data/lib/puppet/network/formats.rb +0 -67
  214. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  215. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  216. data/lib/puppet/network/http/connection.rb +247 -316
  217. data/lib/puppet/network/http/handler.rb +0 -1
  218. data/lib/puppet/network/http.rb +3 -3
  219. data/lib/puppet/network/http_pool.rb +16 -34
  220. data/lib/puppet/node/environment.rb +11 -10
  221. data/lib/puppet/node.rb +1 -30
  222. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  223. data/lib/puppet/pal/pal_impl.rb +4 -2
  224. data/lib/puppet/parser/ast/leaf.rb +2 -3
  225. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  226. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  227. data/lib/puppet/parser/compiler.rb +0 -198
  228. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  229. data/lib/puppet/parser/resource.rb +1 -70
  230. data/lib/puppet/parser/scope.rb +0 -1
  231. data/lib/puppet/parser/templatewrapper.rb +1 -2
  232. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  233. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  234. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  235. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  236. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  237. data/lib/puppet/pops/issues.rb +0 -5
  238. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  240. data/lib/puppet/pops/model/ast.pp +0 -42
  241. data/lib/puppet/pops/model/ast.rb +0 -291
  242. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  243. data/lib/puppet/pops/model/factory.rb +1 -47
  244. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  245. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  246. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  247. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  248. data/lib/puppet/pops/parser/eparser.rb +1691 -1883
  249. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  250. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  251. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  252. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  253. data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
  254. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  255. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  256. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  257. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  258. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  259. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  260. data/lib/puppet/pops/types/type_parser.rb +0 -4
  261. data/lib/puppet/pops/types/types.rb +1 -2
  262. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  263. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  264. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  265. data/lib/puppet/property/list.rb +1 -1
  266. data/lib/puppet/provider/aix_object.rb +1 -1
  267. data/lib/puppet/provider/exec/posix.rb +4 -16
  268. data/lib/puppet/provider/group/groupadd.rb +10 -18
  269. data/lib/puppet/provider/nameservice.rb +0 -18
  270. data/lib/puppet/provider/package/apt.rb +2 -34
  271. data/lib/puppet/provider/package/aptitude.rb +0 -6
  272. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  273. data/lib/puppet/provider/package/dpkg.rb +0 -10
  274. data/lib/puppet/provider/package/gem.rb +23 -3
  275. data/lib/puppet/provider/package/nim.rb +6 -11
  276. data/lib/puppet/provider/package/pip.rb +3 -16
  277. data/lib/puppet/provider/package/pkg.rb +2 -23
  278. data/lib/puppet/provider/package/portage.rb +1 -1
  279. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  280. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  281. data/lib/puppet/provider/package/yum.rb +1 -1
  282. data/lib/puppet/provider/parsedfile.rb +0 -3
  283. data/lib/puppet/provider/service/base.rb +1 -1
  284. data/lib/puppet/provider/service/debian.rb +0 -2
  285. data/lib/puppet/provider/service/init.rb +5 -5
  286. data/lib/puppet/provider/service/launchd.rb +2 -2
  287. data/lib/puppet/provider/service/redhat.rb +1 -1
  288. data/lib/puppet/provider/service/smf.rb +194 -76
  289. data/lib/puppet/provider/service/systemd.rb +6 -16
  290. data/lib/puppet/provider/service/upstart.rb +5 -5
  291. data/lib/puppet/provider/service/windows.rb +0 -38
  292. data/lib/puppet/provider/user/aix.rb +3 -46
  293. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  294. data/lib/puppet/provider/user/useradd.rb +24 -134
  295. data/lib/puppet/provider.rb +1 -14
  296. data/lib/puppet/reference/configuration.rb +8 -7
  297. data/lib/puppet/reference/indirection.rb +1 -1
  298. data/lib/puppet/reference/providers.rb +2 -2
  299. data/lib/puppet/resource/catalog.rb +2 -15
  300. data/lib/puppet/resource/type.rb +3 -119
  301. data/lib/puppet/resource/type_collection.rb +3 -49
  302. data/lib/puppet/resource.rb +6 -127
  303. data/lib/puppet/runtime.rb +2 -13
  304. data/lib/puppet/settings/environment_conf.rb +0 -1
  305. data/lib/puppet/settings/integer_setting.rb +17 -0
  306. data/lib/puppet/settings/port_setting.rb +15 -0
  307. data/lib/puppet/settings/priority_setting.rb +5 -4
  308. data/lib/puppet/settings.rb +82 -98
  309. data/lib/puppet/ssl/base.rb +3 -5
  310. data/lib/puppet/ssl/certificate.rb +0 -6
  311. data/lib/puppet/ssl/certificate_request.rb +1 -12
  312. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  313. data/lib/puppet/ssl/oids.rb +3 -1
  314. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  315. data/lib/puppet/ssl/state_machine.rb +3 -1
  316. data/lib/puppet/ssl/verifier.rb +2 -0
  317. data/lib/puppet/ssl.rb +10 -6
  318. data/lib/puppet/test/test_helper.rb +2 -7
  319. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  320. data/lib/puppet/transaction/persistence.rb +1 -11
  321. data/lib/puppet/transaction/report.rb +3 -19
  322. data/lib/puppet/transaction.rb +1 -7
  323. data/lib/puppet/type/exec.rb +5 -35
  324. data/lib/puppet/type/file/checksum.rb +1 -1
  325. data/lib/puppet/type/file/mode.rb +0 -6
  326. data/lib/puppet/type/file/selcontext.rb +1 -1
  327. data/lib/puppet/type/file/source.rb +1 -1
  328. data/lib/puppet/type/file.rb +12 -32
  329. data/lib/puppet/type/filebucket.rb +4 -4
  330. data/lib/puppet/type/group.rb +1 -0
  331. data/lib/puppet/type/package.rb +8 -16
  332. data/lib/puppet/type/resources.rb +1 -1
  333. data/lib/puppet/type/service.rb +41 -26
  334. data/lib/puppet/type/tidy.rb +3 -22
  335. data/lib/puppet/type/user.rb +21 -38
  336. data/lib/puppet/type.rb +1 -77
  337. data/lib/puppet/util/autoload.rb +8 -1
  338. data/lib/puppet/util/command_line.rb +1 -1
  339. data/lib/puppet/util/execution.rb +0 -11
  340. data/lib/puppet/util/filetype.rb +2 -2
  341. data/lib/puppet/util/http_proxy.rb +2 -215
  342. data/lib/puppet/util/json.rb +0 -3
  343. data/lib/puppet/util/log.rb +2 -1
  344. data/lib/puppet/util/logging.rb +25 -1
  345. data/lib/puppet/util/monkey_patches.rb +0 -53
  346. data/lib/puppet/util/pidlock.rb +1 -1
  347. data/lib/puppet/util/posix.rb +5 -54
  348. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  349. data/lib/puppet/util/rdoc.rb +0 -7
  350. data/lib/puppet/util/retry_action.rb +1 -1
  351. data/lib/puppet/util/run_mode.rb +9 -1
  352. data/lib/puppet/util/selinux.rb +4 -30
  353. data/lib/puppet/util/suidmanager.rb +2 -1
  354. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  355. data/lib/puppet/util/tagging.rb +0 -1
  356. data/lib/puppet/util/windows/adsi.rb +0 -46
  357. data/lib/puppet/util/windows/daemon.rb +360 -0
  358. data/lib/puppet/util/windows/error.rb +1 -0
  359. data/lib/puppet/util/windows/eventlog.rb +4 -9
  360. data/lib/puppet/util/windows/file.rb +8 -242
  361. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  362. data/lib/puppet/util/windows/principal.rb +2 -9
  363. data/lib/puppet/util/windows/process.rb +4 -226
  364. data/lib/puppet/util/windows/service.rb +11 -457
  365. data/lib/puppet/util/windows/sid.rb +2 -6
  366. data/lib/puppet/util/windows/string.rb +12 -13
  367. data/lib/puppet/util/windows/user.rb +2 -0
  368. data/lib/puppet/util/windows.rb +3 -11
  369. data/lib/puppet/util/yaml.rb +0 -22
  370. data/lib/puppet/util.rb +3 -4
  371. data/lib/puppet/vendor/require_vendored.rb +0 -1
  372. data/lib/puppet/version.rb +1 -1
  373. data/lib/puppet/x509/cert_provider.rb +29 -1
  374. data/lib/puppet/x509.rb +5 -1
  375. data/lib/puppet.rb +20 -25
  376. data/locales/puppet.pot +816 -1637
  377. data/man/man5/puppet.conf.5 +286 -382
  378. data/man/man8/puppet-agent.8 +2 -5
  379. data/man/man8/puppet-apply.8 +2 -2
  380. data/man/man8/puppet-catalog.8 +9 -9
  381. data/man/man8/puppet-config.8 +1 -1
  382. data/man/man8/puppet-describe.8 +1 -1
  383. data/man/man8/puppet-device.8 +2 -2
  384. data/man/man8/puppet-doc.8 +1 -1
  385. data/man/man8/puppet-epp.8 +1 -1
  386. data/man/man8/puppet-facts.8 +8 -51
  387. data/man/man8/puppet-filebucket.8 +4 -4
  388. data/man/man8/puppet-generate.8 +1 -1
  389. data/man/man8/puppet-help.8 +1 -1
  390. data/man/man8/puppet-lookup.8 +1 -1
  391. data/man/man8/puppet-module.8 +3 -60
  392. data/man/man8/puppet-node.8 +5 -5
  393. data/man/man8/puppet-parser.8 +1 -1
  394. data/man/man8/puppet-plugin.8 +1 -1
  395. data/man/man8/puppet-report.8 +5 -5
  396. data/man/man8/puppet-resource.8 +1 -1
  397. data/man/man8/puppet-script.8 +2 -2
  398. data/man/man8/puppet-ssl.8 +1 -5
  399. data/man/man8/puppet.8 +2 -2
  400. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  401. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  402. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  403. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  404. data/spec/fixtures/ssl/ca.pem +35 -57
  405. data/spec/fixtures/ssl/crl.pem +18 -28
  406. data/spec/fixtures/ssl/ec-key.pem +11 -11
  407. data/spec/fixtures/ssl/ec.pem +24 -33
  408. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  409. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  410. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  411. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  412. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  413. data/spec/fixtures/ssl/intermediate.pem +36 -57
  414. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  415. data/spec/fixtures/ssl/pluto.pem +30 -52
  416. data/spec/fixtures/ssl/request-key.pem +57 -107
  417. data/spec/fixtures/ssl/request.pem +26 -47
  418. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  419. data/spec/fixtures/ssl/revoked.pem +30 -52
  420. data/spec/fixtures/ssl/signed-key.pem +57 -107
  421. data/spec/fixtures/ssl/signed.pem +30 -52
  422. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  423. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  424. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  425. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  426. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  427. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  428. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  429. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  430. data/spec/integration/application/agent_spec.rb +51 -299
  431. data/spec/integration/application/apply_spec.rb +1 -20
  432. data/spec/integration/application/filebucket_spec.rb +16 -32
  433. data/spec/integration/application/help_spec.rb +2 -0
  434. data/spec/integration/application/module_spec.rb +0 -21
  435. data/spec/integration/application/plugin_spec.rb +24 -2
  436. data/spec/integration/configurer_spec.rb +2 -18
  437. data/spec/integration/defaults_spec.rb +14 -3
  438. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  439. data/spec/integration/http/client_spec.rb +0 -12
  440. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  441. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  442. data/spec/integration/network/http_pool_spec.rb +3 -21
  443. data/spec/integration/parser/catalog_spec.rb +0 -38
  444. data/spec/integration/parser/node_spec.rb +0 -9
  445. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  446. data/spec/integration/resource/type_collection_spec.rb +6 -2
  447. data/spec/integration/transaction/report_spec.rb +1 -1
  448. data/spec/integration/transaction_spec.rb +9 -4
  449. data/spec/integration/type/exec_spec.rb +45 -70
  450. data/spec/integration/type/file_spec.rb +7 -6
  451. data/spec/integration/type/package_spec.rb +6 -6
  452. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  453. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  454. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  455. data/spec/integration/util/windows/principal_spec.rb +0 -21
  456. data/spec/integration/util/windows/process_spec.rb +9 -1
  457. data/spec/integration/util/windows/registry_spec.rb +10 -6
  458. data/spec/integration/util/windows/security_spec.rb +1 -1
  459. data/spec/lib/matchers/include.rb +27 -0
  460. data/spec/lib/matchers/include_spec.rb +32 -0
  461. data/spec/lib/puppet/test_ca.rb +2 -7
  462. data/spec/lib/puppet_spec/modules.rb +2 -13
  463. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  464. data/spec/lib/puppet_spec/settings.rb +1 -1
  465. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  466. data/spec/spec_helper.rb +17 -13
  467. data/spec/unit/agent_spec.rb +6 -10
  468. data/spec/unit/application/agent_spec.rb +3 -7
  469. data/spec/unit/application/apply_spec.rb +56 -76
  470. data/spec/unit/application/facts_spec.rb +12 -456
  471. data/spec/unit/application/filebucket_spec.rb +43 -39
  472. data/spec/unit/application/resource_spec.rb +0 -29
  473. data/spec/unit/application/ssl_spec.rb +2 -25
  474. data/spec/unit/application_spec.rb +9 -51
  475. data/spec/unit/certificate_factory_spec.rb +1 -1
  476. data/spec/unit/configurer/downloader_spec.rb +6 -8
  477. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  478. data/spec/unit/configurer_spec.rb +68 -264
  479. data/spec/unit/confine/feature_spec.rb +1 -1
  480. data/spec/unit/confine_spec.rb +2 -8
  481. data/spec/unit/context/trusted_information_spec.rb +2 -6
  482. data/spec/unit/defaults_spec.rb +68 -55
  483. data/spec/unit/environments_spec.rb +68 -408
  484. data/spec/unit/face/node_spec.rb +11 -0
  485. data/spec/unit/face/plugin_spec.rb +73 -33
  486. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  487. data/spec/unit/file_bucket/file_spec.rb +1 -1
  488. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  489. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  490. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  491. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  492. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  493. data/spec/unit/file_system_spec.rb +0 -22
  494. data/spec/unit/forge/module_release_spec.rb +7 -2
  495. data/spec/unit/functions/assert_type_spec.rb +1 -1
  496. data/spec/unit/functions/camelcase_spec.rb +1 -1
  497. data/spec/unit/functions/capitalize_spec.rb +1 -1
  498. data/spec/unit/functions/downcase_spec.rb +1 -1
  499. data/spec/unit/functions/empty_spec.rb +0 -10
  500. data/spec/unit/functions/logging_spec.rb +0 -1
  501. data/spec/unit/functions/lookup_spec.rb +0 -64
  502. data/spec/unit/functions/unwrap_spec.rb +0 -8
  503. data/spec/unit/functions/upcase_spec.rb +1 -1
  504. data/spec/unit/functions4_spec.rb +2 -2
  505. data/spec/unit/gettext/config_spec.rb +0 -12
  506. data/spec/unit/http/client_spec.rb +8 -66
  507. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  508. data/spec/unit/http/external_client_spec.rb +4 -4
  509. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  510. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  511. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  512. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  513. data/spec/unit/http/resolver_spec.rb +13 -13
  514. data/spec/unit/http/service/compiler_spec.rb +0 -193
  515. data/spec/unit/http/service/file_server_spec.rb +3 -3
  516. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  517. data/spec/unit/http/service_spec.rb +0 -1
  518. data/spec/unit/http/session_spec.rb +16 -14
  519. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  520. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  521. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  522. data/spec/unit/indirector/face_spec.rb +1 -0
  523. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  524. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  525. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  526. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  527. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  528. data/spec/unit/indirector/file_server_spec.rb +1 -15
  529. data/spec/unit/indirector/indirection_spec.rb +15 -18
  530. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  531. data/spec/unit/indirector/request_spec.rb +0 -264
  532. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  533. data/spec/unit/indirector/rest_spec.rb +98 -752
  534. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  535. data/spec/unit/indirector_spec.rb +2 -2
  536. data/spec/unit/interface/action_spec.rb +9 -0
  537. data/spec/unit/module_spec.rb +1 -15
  538. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  539. data/spec/unit/network/authconfig_spec.rb +2 -129
  540. data/spec/unit/network/authorization_spec.rb +2 -55
  541. data/spec/unit/network/formats_spec.rb +4 -51
  542. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  543. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  544. data/spec/unit/network/http/api_spec.rb +10 -0
  545. data/spec/unit/network/http/connection_spec.rb +19 -41
  546. data/spec/unit/network/http/handler_spec.rb +0 -1
  547. data/spec/unit/network/http_pool_spec.rb +0 -4
  548. data/spec/unit/node/environment_spec.rb +33 -21
  549. data/spec/unit/node_spec.rb +2 -54
  550. data/spec/unit/parser/compiler_spec.rb +19 -3
  551. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  552. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  553. data/spec/unit/parser/resource_spec.rb +8 -14
  554. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  555. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  556. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  557. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  558. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  559. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  560. data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
  561. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  562. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  563. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
  564. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  565. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  566. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  567. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  568. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  569. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  570. data/spec/unit/pops/visitor_spec.rb +1 -1
  571. data/spec/unit/property_spec.rb +0 -1
  572. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  573. data/spec/unit/provider/nameservice_spec.rb +64 -122
  574. data/spec/unit/provider/package/apt_spec.rb +23 -28
  575. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  576. data/spec/unit/provider/package/base_spec.rb +5 -6
  577. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  578. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  579. data/spec/unit/provider/package/gem_spec.rb +33 -1
  580. data/spec/unit/provider/package/nim_spec.rb +0 -42
  581. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  582. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  583. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  584. data/spec/unit/provider/package/pip_spec.rb +12 -44
  585. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  586. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  587. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  588. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  589. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  590. data/spec/unit/provider/service/init_spec.rb +0 -1
  591. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  592. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  593. data/spec/unit/provider/service/smf_spec.rb +401 -165
  594. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  595. data/spec/unit/provider/service/windows_spec.rb +0 -203
  596. data/spec/unit/provider/user/aix_spec.rb +0 -105
  597. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  598. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  599. data/spec/unit/provider/user/pw_spec.rb +0 -2
  600. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  601. data/spec/unit/provider_spec.rb +12 -22
  602. data/spec/unit/puppet_spec.rb +4 -12
  603. data/spec/unit/resource/catalog_spec.rb +2 -15
  604. data/spec/unit/resource/type_collection_spec.rb +2 -22
  605. data/spec/unit/resource/type_spec.rb +1 -1
  606. data/spec/unit/resource_spec.rb +12 -125
  607. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  608. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  609. data/spec/unit/settings/port_setting_spec.rb +31 -0
  610. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  611. data/spec/unit/settings_spec.rb +79 -110
  612. data/spec/unit/ssl/base_spec.rb +37 -3
  613. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  614. data/spec/unit/ssl/certificate_spec.rb +2 -11
  615. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  616. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  617. data/spec/unit/ssl/verifier_spec.rb +0 -21
  618. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  619. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  620. data/spec/unit/transaction/report_spec.rb +0 -2
  621. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  622. data/spec/unit/transaction_spec.rb +55 -96
  623. data/spec/unit/type/exec_spec.rb +29 -76
  624. data/spec/unit/type/file/checksum_spec.rb +6 -6
  625. data/spec/unit/type/file/content_spec.rb +2 -1
  626. data/spec/unit/type/file/ensure_spec.rb +1 -1
  627. data/spec/unit/type/file/mode_spec.rb +1 -1
  628. data/spec/unit/type/file/selinux_spec.rb +5 -3
  629. data/spec/unit/type/file/source_spec.rb +4 -5
  630. data/spec/unit/type/file_spec.rb +18 -6
  631. data/spec/unit/type/group_spec.rb +6 -13
  632. data/spec/unit/type/package_spec.rb +1 -1
  633. data/spec/unit/type/resources_spec.rb +7 -7
  634. data/spec/unit/type/service_spec.rb +189 -87
  635. data/spec/unit/type/tidy_spec.rb +8 -24
  636. data/spec/unit/type/user_spec.rb +0 -45
  637. data/spec/unit/type_spec.rb +24 -4
  638. data/spec/unit/util/at_fork_spec.rb +2 -2
  639. data/spec/unit/util/autoload_spec.rb +1 -5
  640. data/spec/unit/util/backups_spec.rb +2 -3
  641. data/spec/unit/util/execution_spec.rb +11 -44
  642. data/spec/unit/util/inifile_spec.rb +14 -6
  643. data/spec/unit/util/log_spec.rb +7 -8
  644. data/spec/unit/util/logging_spec.rb +3 -5
  645. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  646. data/spec/unit/util/posix_spec.rb +15 -363
  647. data/spec/unit/util/run_mode_spec.rb +21 -121
  648. data/spec/unit/util/selinux_spec.rb +68 -163
  649. data/spec/unit/util/storage_spec.rb +1 -3
  650. data/spec/unit/util/suidmanager_spec.rb +41 -44
  651. data/spec/unit/util/windows/sid_spec.rb +0 -41
  652. data/spec/unit/util/windows/string_spec.rb +1 -3
  653. data/spec/unit/util/yaml_spec.rb +0 -54
  654. data/spec/unit/util_spec.rb +6 -31
  655. data/tasks/generate_cert_fixtures.rake +3 -12
  656. data/tasks/parallel.rake +3 -3
  657. metadata +137 -226
  658. data/conf/auth.conf +0 -150
  659. data/ext/README.md +0 -13
  660. data/lib/puppet/application/cert.rb +0 -76
  661. data/lib/puppet/application/key.rb +0 -4
  662. data/lib/puppet/application/man.rb +0 -4
  663. data/lib/puppet/application/status.rb +0 -4
  664. data/lib/puppet/face/key.rb +0 -16
  665. data/lib/puppet/face/man.rb +0 -145
  666. data/lib/puppet/face/module/build.rb +0 -14
  667. data/lib/puppet/face/module/generate.rb +0 -14
  668. data/lib/puppet/face/module/search.rb +0 -103
  669. data/lib/puppet/face/status.rb +0 -51
  670. data/lib/puppet/facter_impl.rb +0 -96
  671. data/lib/puppet/ffi/posix/constants.rb +0 -14
  672. data/lib/puppet/ffi/posix/functions.rb +0 -24
  673. data/lib/puppet/ffi/posix.rb +0 -10
  674. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  675. data/lib/puppet/indirector/certificate/file.rb +0 -9
  676. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  677. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  678. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  679. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  680. data/lib/puppet/indirector/file_content/http.rb +0 -22
  681. data/lib/puppet/indirector/key/file.rb +0 -46
  682. data/lib/puppet/indirector/key/memory.rb +0 -7
  683. data/lib/puppet/indirector/ssl_file.rb +0 -162
  684. data/lib/puppet/indirector/status/local.rb +0 -12
  685. data/lib/puppet/indirector/status/rest.rb +0 -27
  686. data/lib/puppet/indirector/status.rb +0 -3
  687. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  688. data/lib/puppet/network/auth_config_parser.rb +0 -90
  689. data/lib/puppet/network/authstore.rb +0 -283
  690. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  691. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  692. data/lib/puppet/network/http/base_pool.rb +0 -36
  693. data/lib/puppet/network/http/compression.rb +0 -127
  694. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  695. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  696. data/lib/puppet/network/rest_controller.rb +0 -2
  697. data/lib/puppet/network/rights.rb +0 -210
  698. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  699. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  700. data/lib/puppet/parser/environment_compiler.rb +0 -202
  701. data/lib/puppet/pops/types/enumeration.rb +0 -16
  702. data/lib/puppet/resource/capability_finder.rb +0 -154
  703. data/lib/puppet/rest/errors.rb +0 -15
  704. data/lib/puppet/rest/response.rb +0 -35
  705. data/lib/puppet/rest/route.rb +0 -85
  706. data/lib/puppet/rest/routes.rb +0 -135
  707. data/lib/puppet/settings/alias_setting.rb +0 -37
  708. data/lib/puppet/ssl/host.rb +0 -505
  709. data/lib/puppet/ssl/key.rb +0 -61
  710. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  711. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  712. data/lib/puppet/ssl/validator.rb +0 -61
  713. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  714. data/lib/puppet/status.rb +0 -40
  715. data/lib/puppet/util/connection.rb +0 -88
  716. data/lib/puppet/util/fact_dif.rb +0 -81
  717. data/lib/puppet/util/ssl.rb +0 -83
  718. data/lib/puppet/util/windows/api_types.rb +0 -309
  719. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  720. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  721. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  722. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  723. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  724. data/lib/puppet/vendor/pathspec/README.md +0 -53
  725. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  726. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  727. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  728. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  729. data/man/man8/puppet-key.8 +0 -126
  730. data/man/man8/puppet-man.8 +0 -76
  731. data/man/man8/puppet-status.8 +0 -108
  732. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  733. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  734. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  735. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  736. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  737. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  738. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  739. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  740. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  741. data/spec/fixtures/ssl/oid-key.pem +0 -117
  742. data/spec/fixtures/ssl/oid.pem +0 -69
  743. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  744. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  745. data/spec/integration/application/resource_spec.rb +0 -64
  746. data/spec/integration/application/ssl_spec.rb +0 -20
  747. data/spec/integration/l10n/compiler_spec.rb +0 -37
  748. data/spec/integration/network/authconfig_spec.rb +0 -256
  749. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  750. data/spec/shared_contexts/l10n.rb +0 -27
  751. data/spec/unit/application/man_spec.rb +0 -52
  752. data/spec/unit/capability_spec.rb +0 -414
  753. data/spec/unit/face/key_spec.rb +0 -9
  754. data/spec/unit/face/module/search_spec.rb +0 -231
  755. data/spec/unit/face/status_spec.rb +0 -9
  756. data/spec/unit/facter_impl_spec.rb +0 -31
  757. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  758. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  759. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  760. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  761. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  762. data/spec/unit/indirector/key/file_spec.rb +0 -78
  763. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  764. data/spec/unit/indirector/status/local_spec.rb +0 -10
  765. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  766. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  767. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  768. data/spec/unit/network/authstore_spec.rb +0 -407
  769. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  770. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  771. data/spec/unit/network/http/compression_spec.rb +0 -240
  772. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  773. data/spec/unit/network/http_spec.rb +0 -9
  774. data/spec/unit/network/rights_spec.rb +0 -439
  775. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  776. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  777. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  778. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  779. data/spec/unit/rest/route_spec.rb +0 -132
  780. data/spec/unit/ssl/host_spec.rb +0 -645
  781. data/spec/unit/ssl/key_spec.rb +0 -173
  782. data/spec/unit/ssl/validator_spec.rb +0 -278
  783. data/spec/unit/status_spec.rb +0 -45
  784. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -0,0 +1,628 @@
1
+ require 'puppet/ffi/windows'
2
+
3
+ module Puppet::FFI::Windows
4
+ module Functions
5
+
6
+ extend FFI::Library
7
+ include Puppet::FFI::Windows::Constants
8
+
9
+ ffi_convention :stdcall
10
+
11
+ # https://docs.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-sethandleinformation
12
+ # BOOL SetHandleInformation(
13
+ # HANDLE hObject,
14
+ # DWORD dwMask,
15
+ # DWORD dwFlags
16
+ # );
17
+ ffi_lib :kernel32
18
+ attach_function_private :SetHandleInformation, [:handle, :dword, :dword], :win32_bool
19
+
20
+ # https://docs.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-seterrormode
21
+ # UINT SetErrorMode(
22
+ # UINT uMode
23
+ # );
24
+ ffi_lib :kernel32
25
+ attach_function_private :SetErrorMode, [:uint], :uint
26
+
27
+ # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw
28
+ # BOOL CreateProcessW(
29
+ # LPCWSTR lpApplicationName,
30
+ # LPWSTR lpCommandLine,
31
+ # LPSECURITY_ATTRIBUTES lpProcessAttributes,
32
+ # LPSECURITY_ATTRIBUTES lpThreadAttributes,
33
+ # BOOL bInheritHandles,
34
+ # DWORD dwCreationFlags,
35
+ # LPVOID lpEnvironment,
36
+ # LPCWSTR lpCurrentDirectory,
37
+ # LPSTARTUPINFOW lpStartupInfo,
38
+ # LPPROCESS_INFORMATION lpProcessInformation
39
+ # );
40
+ ffi_lib :kernel32
41
+ attach_function_private :CreateProcessW,
42
+ [:lpcwstr, :lpwstr, :pointer, :pointer, :win32_bool,
43
+ :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
44
+
45
+ # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess
46
+ # HANDLE OpenProcess(
47
+ # DWORD dwDesiredAccess,
48
+ # BOOL bInheritHandle,
49
+ # DWORD dwProcessId
50
+ # );
51
+ ffi_lib :kernel32
52
+ attach_function_private :OpenProcess, [:dword, :win32_bool, :dword], :handle
53
+
54
+ # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setpriorityclass
55
+ # BOOL SetPriorityClass(
56
+ # HANDLE hProcess,
57
+ # DWORD dwPriorityClass
58
+ # );
59
+ ffi_lib :kernel32
60
+ attach_function_private :SetPriorityClass, [:handle, :dword], :win32_bool
61
+
62
+ # https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw
63
+ # BOOL CreateProcessWithLogonW(
64
+ # LPCWSTR lpUsername,
65
+ # LPCWSTR lpDomain,
66
+ # LPCWSTR lpPassword,
67
+ # DWORD dwLogonFlags,
68
+ # LPCWSTR lpApplicationName,
69
+ # LPWSTR lpCommandLine,
70
+ # DWORD dwCreationFlags,
71
+ # LPVOID lpEnvironment,
72
+ # LPCWSTR lpCurrentDirectory,
73
+ # LPSTARTUPINFOW lpStartupInfo,
74
+ # LPPROCESS_INFORMATION lpProcessInformation
75
+ # );
76
+ ffi_lib :advapi32
77
+ attach_function_private :CreateProcessWithLogonW,
78
+ [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpcwstr, :lpwstr,
79
+ :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
80
+
81
+ # https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/get-osfhandle?view=vs-2019
82
+ # intptr_t _get_osfhandle(
83
+ # int fd
84
+ # );
85
+ ffi_lib FFI::Library::LIBC
86
+ attach_function_private :get_osfhandle, :_get_osfhandle, [:int], :intptr_t
87
+
88
+ begin
89
+ # https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/get-errno?view=vs-2019
90
+ # errno_t _get_errno(
91
+ # int * pValue
92
+ # );
93
+ attach_function_private :get_errno, :_get_errno, [:pointer], :int
94
+ rescue FFI::NotFoundError
95
+ # Do nothing, Windows XP or earlier.
96
+ end
97
+
98
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx
99
+ # DWORD WINAPI WaitForSingleObject(
100
+ # _In_ HANDLE hHandle,
101
+ # _In_ DWORD dwMilliseconds
102
+ # );
103
+ ffi_lib :kernel32
104
+ attach_function_private :WaitForSingleObject,
105
+ [:handle, :dword], :dword, :blocking => true
106
+
107
+ # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects
108
+ # DWORD WaitForMultipleObjects(
109
+ # DWORD nCount,
110
+ # const HANDLE *lpHandles,
111
+ # BOOL bWaitAll,
112
+ # DWORD dwMilliseconds
113
+ # );
114
+ ffi_lib :kernel32
115
+ attach_function_private :WaitForMultipleObjects,
116
+ [:dword, :phandle, :win32_bool, :dword], :dword
117
+
118
+ # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createeventw
119
+ # HANDLE CreateEventW(
120
+ # LPSECURITY_ATTRIBUTES lpEventAttributes,
121
+ # BOOL bManualReset,
122
+ # BOOL bInitialState,
123
+ # LPCWSTR lpName
124
+ # );
125
+ ffi_lib :kernel32
126
+ attach_function_private :CreateEventW,
127
+ [:pointer, :win32_bool, :win32_bool, :lpcwstr], :handle
128
+
129
+ # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createthread
130
+ # HANDLE CreateThread(
131
+ # LPSECURITY_ATTRIBUTES lpThreadAttributes,
132
+ # SIZE_T dwStackSize,
133
+ # LPTHREAD_START_ROUTINE lpStartAddress,
134
+ # __drv_aliasesMem LPVOID lpParameter,
135
+ # DWORD dwCreationFlags,
136
+ # LPDWORD lpThreadId
137
+ # );
138
+ ffi_lib :kernel32
139
+ attach_function_private :CreateThread,
140
+ [:pointer, :size_t, :pointer, :lpvoid, :dword, :lpdword], :handle, :blocking => true
141
+
142
+ # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-setevent
143
+ # BOOL SetEvent(
144
+ # HANDLE hEvent
145
+ # );
146
+ ffi_lib :kernel32
147
+ attach_function_private :SetEvent,
148
+ [:handle], :win32_bool
149
+
150
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683189(v=vs.85).aspx
151
+ # BOOL WINAPI GetExitCodeProcess(
152
+ # _In_ HANDLE hProcess,
153
+ # _Out_ LPDWORD lpExitCode
154
+ # );
155
+ ffi_lib :kernel32
156
+ attach_function_private :GetExitCodeProcess,
157
+ [:handle, :lpdword], :win32_bool
158
+
159
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683179(v=vs.85).aspx
160
+ # HANDLE WINAPI GetCurrentProcess(void);
161
+ ffi_lib :kernel32
162
+ attach_function_private :GetCurrentProcess, [], :handle
163
+
164
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683187(v=vs.85).aspx
165
+ # LPTCH GetEnvironmentStrings(void);
166
+ ffi_lib :kernel32
167
+ attach_function_private :GetEnvironmentStringsW, [], :pointer
168
+
169
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683151(v=vs.85).aspx
170
+ # BOOL FreeEnvironmentStrings(
171
+ # _In_ LPTCH lpszEnvironmentBlock
172
+ # );
173
+ ffi_lib :kernel32
174
+ attach_function_private :FreeEnvironmentStringsW,
175
+ [:pointer], :win32_bool
176
+
177
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms686206(v=vs.85).aspx
178
+ # BOOL WINAPI SetEnvironmentVariableW(
179
+ # _In_ LPCTSTR lpName,
180
+ # _In_opt_ LPCTSTR lpValue
181
+ # );
182
+ ffi_lib :kernel32
183
+ attach_function_private :SetEnvironmentVariableW,
184
+ [:lpcwstr, :lpcwstr], :win32_bool
185
+
186
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
187
+ # HANDLE WINAPI OpenProcess(
188
+ # _In_ DWORD DesiredAccess,
189
+ # _In_ BOOL InheritHandle,
190
+ # _In_ DWORD ProcessId
191
+ # );
192
+ ffi_lib :kernel32
193
+ attach_function_private :OpenProcess,
194
+ [:dword, :win32_bool, :dword], :handle
195
+
196
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295(v=vs.85).aspx
197
+ # BOOL WINAPI OpenProcessToken(
198
+ # _In_ HANDLE ProcessHandle,
199
+ # _In_ DWORD DesiredAccess,
200
+ # _Out_ PHANDLE TokenHandle
201
+ # );
202
+ ffi_lib :advapi32
203
+ attach_function_private :OpenProcessToken,
204
+ [:handle, :dword, :phandle], :win32_bool
205
+
206
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-queryfullprocessimagenamew
207
+ # BOOL WINAPI QueryFullProcessImageName(
208
+ # _In_ HANDLE hProcess,
209
+ # _In_ DWORD dwFlags,
210
+ # _Out_ LPWSTR lpExeName,
211
+ # _In_ PDWORD lpdwSize,
212
+ # );
213
+ ffi_lib :kernel32
214
+ attach_function_private :QueryFullProcessImageNameW,
215
+ [:handle, :dword, :lpwstr, :pdword], :win32_bool
216
+
217
+ # https://msdn.microsoft.com/en-us/library/Windows/desktop/aa379180(v=vs.85).aspx
218
+ # BOOL WINAPI LookupPrivilegeValue(
219
+ # _In_opt_ LPCTSTR lpSystemName,
220
+ # _In_ LPCTSTR lpName,
221
+ # _Out_ PLUID lpLuid
222
+ # );
223
+ ffi_lib :advapi32
224
+ attach_function_private :LookupPrivilegeValueW,
225
+ [:lpcwstr, :lpcwstr, :pointer], :win32_bool
226
+
227
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671(v=vs.85).aspx
228
+ # BOOL WINAPI GetTokenInformation(
229
+ # _In_ HANDLE TokenHandle,
230
+ # _In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
231
+ # _Out_opt_ LPVOID TokenInformation,
232
+ # _In_ DWORD TokenInformationLength,
233
+ # _Out_ PDWORD ReturnLength
234
+ # );
235
+ ffi_lib :advapi32
236
+ attach_function_private :GetTokenInformation,
237
+ [:handle, TOKEN_INFORMATION_CLASS, :lpvoid, :dword, :pdword ], :win32_bool
238
+
239
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx
240
+ # BOOL WINAPI GetVersionEx(
241
+ # _Inout_ LPOSVERSIONINFO lpVersionInfo
242
+ # );
243
+ ffi_lib :kernel32
244
+ attach_function_private :GetVersionExW,
245
+ [:pointer], :win32_bool
246
+
247
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/dd318123(v=vs.85).aspx
248
+ # LANGID GetSystemDefaultUILanguage(void);
249
+ ffi_lib :kernel32
250
+ attach_function_private :GetSystemDefaultUILanguage, [], :word
251
+
252
+ # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openscmanagerw
253
+ # SC_HANDLE OpenSCManagerW(
254
+ # LPCWSTR lpMachineName,
255
+ # LPCWSTR lpDatabaseName,
256
+ # DWORD dwDesiredAccess
257
+ # );
258
+ ffi_lib :advapi32
259
+ attach_function_private :OpenSCManagerW,
260
+ [:lpcwstr, :lpcwstr, :dword], :handle
261
+
262
+ # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openservicew
263
+ # SC_HANDLE OpenServiceW(
264
+ # SC_HANDLE hSCManager,
265
+ # LPCWSTR lpServiceName,
266
+ # DWORD dwDesiredAccess
267
+ # );
268
+ ffi_lib :advapi32
269
+ attach_function_private :OpenServiceW,
270
+ [:handle, :lpcwstr, :dword], :handle
271
+
272
+ # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-closeservicehandle
273
+ # BOOL CloseServiceHandle(
274
+ # SC_HANDLE hSCObject
275
+ # );
276
+ ffi_lib :advapi32
277
+ attach_function_private :CloseServiceHandle,
278
+ [:handle], :win32_bool
279
+
280
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-queryservicestatusex
281
+ # BOOL QueryServiceStatusEx(
282
+ # SC_HANDLE hService,
283
+ # SC_STATUS_TYPE InfoLevel,
284
+ # LPBYTE lpBuffer,
285
+ # DWORD cbBufSize,
286
+ # LPDWORD pcbBytesNeeded
287
+ # );
288
+ SC_STATUS_TYPE = enum(
289
+ :SC_STATUS_PROCESS_INFO, 0,
290
+ )
291
+ ffi_lib :advapi32
292
+ attach_function_private :QueryServiceStatusEx,
293
+ [:handle, SC_STATUS_TYPE, :lpbyte, :dword, :lpdword], :win32_bool
294
+
295
+ # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-queryserviceconfigw
296
+ # BOOL QueryServiceConfigW(
297
+ # SC_HANDLE hService,
298
+ # LPQUERY_SERVICE_CONFIGW lpServiceConfig,
299
+ # DWORD cbBufSize,
300
+ # LPDWORD pcbBytesNeeded
301
+ # );
302
+ ffi_lib :advapi32
303
+ attach_function_private :QueryServiceConfigW,
304
+ [:handle, :lpbyte, :dword, :lpdword], :win32_bool
305
+
306
+ # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-queryserviceconfig2w
307
+ # BOOL QueryServiceConfig2W(
308
+ # SC_HANDLE hService,
309
+ # DWORD dwInfoLevel,
310
+ # LPBYTE lpBuffer,
311
+ # DWORD cbBufSize,
312
+ # LPDWORD pcbBytesNeeded
313
+ # );
314
+ ffi_lib :advapi32
315
+ attach_function_private :QueryServiceConfig2W,
316
+ [:handle, :dword, :lpbyte, :dword, :lpdword], :win32_bool
317
+
318
+ # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-startservicew
319
+ # BOOL StartServiceW(
320
+ # SC_HANDLE hService,
321
+ # DWORD dwNumServiceArgs,
322
+ # LPCWSTR *lpServiceArgVectors
323
+ # );
324
+ ffi_lib :advapi32
325
+ attach_function_private :StartServiceW,
326
+ [:handle, :dword, :pointer], :win32_bool
327
+
328
+ # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-startservicectrldispatcherw
329
+ # BOOL StartServiceCtrlDispatcherW(
330
+ # const SERVICE_TABLE_ENTRYW *lpServiceStartTable
331
+ # );
332
+ ffi_lib :advapi32
333
+ attach_function_private :StartServiceCtrlDispatcherW,
334
+ [:pointer], :win32_bool, :blocking => true
335
+
336
+ # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-setservicestatus
337
+ # BOOL SetServiceStatus(
338
+ # SERVICE_STATUS_HANDLE hServiceStatus,
339
+ # LPSERVICE_STATUS lpServiceStatus
340
+ # );
341
+ ffi_lib :advapi32
342
+ attach_function_private :SetServiceStatus,
343
+ [:handle, :pointer], :win32_bool
344
+
345
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-controlservice
346
+ # BOOL ControlService(
347
+ # SC_HANDLE hService,
348
+ # DWORD dwControl,
349
+ # LPSERVICE_STATUS lpServiceStatus
350
+ # );
351
+ ffi_lib :advapi32
352
+ attach_function_private :ControlService,
353
+ [:handle, :dword, :pointer], :win32_bool
354
+
355
+ # DWORD LphandlerFunctionEx(
356
+ # DWORD dwControl,
357
+ # DWORD dwEventType,
358
+ # LPVOID lpEventData,
359
+ # LPVOID lpContext
360
+ # )
361
+ callback :handler_ex, [:dword, :dword, :lpvoid, :lpvoid], :void
362
+
363
+ # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-registerservicectrlhandlerexw
364
+ # SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExW(
365
+ # LPCWSTR lpServiceName,
366
+ # LPHANDLER_FUNCTION_EX lpHandlerProc,
367
+ # LPVOID lpContext
368
+ # );
369
+ ffi_lib :advapi32
370
+ attach_function_private :RegisterServiceCtrlHandlerExW,
371
+ [:lpcwstr, :handler_ex, :lpvoid], :handle
372
+
373
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-changeserviceconfigw
374
+ # BOOL ChangeServiceConfigW(
375
+ # SC_HANDLE hService,
376
+ # DWORD dwServiceType,
377
+ # DWORD dwStartType,
378
+ # DWORD dwErrorControl,
379
+ # LPCWSTR lpBinaryPathName,
380
+ # LPCWSTR lpLoadOrderGroup,
381
+ # LPDWORD lpdwTagId,
382
+ # LPCWSTR lpDependencies,
383
+ # LPCWSTR lpServiceStartName,
384
+ # LPCWSTR lpPassword,
385
+ # LPCWSTR lpDisplayName
386
+ # );
387
+ ffi_lib :advapi32
388
+ attach_function_private :ChangeServiceConfigW,
389
+ [
390
+ :handle,
391
+ :dword,
392
+ :dword,
393
+ :dword,
394
+ :lpcwstr,
395
+ :lpcwstr,
396
+ :lpdword,
397
+ :lpcwstr,
398
+ :lpcwstr,
399
+ :lpcwstr,
400
+ :lpcwstr
401
+ ], :win32_bool
402
+
403
+ # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
404
+ # BOOL ChangeServiceConfig2W(
405
+ # SC_HANDLE hService,
406
+ # DWORD dwInfoLevel,
407
+ # LPVOID lpInfo
408
+ # );
409
+ ffi_lib :advapi32
410
+ attach_function_private :ChangeServiceConfig2W,
411
+ [:handle, :dword, :lpvoid], :win32_bool
412
+
413
+ # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexw
414
+ # BOOL EnumServicesStatusExW(
415
+ # SC_HANDLE hSCManager,
416
+ # SC_ENUM_TYPE InfoLevel,
417
+ # DWORD dwServiceType,
418
+ # DWORD dwServiceState,
419
+ # LPBYTE lpServices,
420
+ # DWORD cbBufSize,
421
+ # LPDWORD pcbBytesNeeded,
422
+ # LPDWORD lpServicesReturned,
423
+ # LPDWORD lpResumeHandle,
424
+ # LPCWSTR pszGroupName
425
+ # );
426
+ SC_ENUM_TYPE = enum(
427
+ :SC_ENUM_PROCESS_INFO, 0,
428
+ )
429
+ ffi_lib :advapi32
430
+ attach_function_private :EnumServicesStatusExW,
431
+ [
432
+ :handle,
433
+ SC_ENUM_TYPE,
434
+ :dword,
435
+ :dword,
436
+ :lpbyte,
437
+ :dword,
438
+ :lpdword,
439
+ :lpdword,
440
+ :lpdword,
441
+ :lpcwstr
442
+ ], :win32_bool
443
+
444
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365512(v=vs.85).aspx
445
+ # BOOL WINAPI ReplaceFile(
446
+ # _In_ LPCTSTR lpReplacedFileName,
447
+ # _In_ LPCTSTR lpReplacementFileName,
448
+ # _In_opt_ LPCTSTR lpBackupFileName,
449
+ # _In_ DWORD dwReplaceFlags - 0x1 REPLACEFILE_WRITE_THROUGH,
450
+ # 0x2 REPLACEFILE_IGNORE_MERGE_ERRORS,
451
+ # 0x4 REPLACEFILE_IGNORE_ACL_ERRORS
452
+ # _Reserved_ LPVOID lpExclude,
453
+ # _Reserved_ LPVOID lpReserved
454
+ # );
455
+ ffi_lib :kernel32
456
+ attach_function_private :ReplaceFileW,
457
+ [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpvoid, :lpvoid], :win32_bool
458
+
459
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365240(v=vs.85).aspx
460
+ # BOOL WINAPI MoveFileEx(
461
+ # _In_ LPCTSTR lpExistingFileName,
462
+ # _In_opt_ LPCTSTR lpNewFileName,
463
+ # _In_ DWORD dwFlags
464
+ # );
465
+ ffi_lib :kernel32
466
+ attach_function_private :MoveFileExW,
467
+ [:lpcwstr, :lpcwstr, :dword], :win32_bool
468
+
469
+ # BOOLEAN WINAPI CreateSymbolicLink(
470
+ # _In_ LPTSTR lpSymlinkFileName, - symbolic link to be created
471
+ # _In_ LPTSTR lpTargetFileName, - name of target for symbolic link
472
+ # _In_ DWORD dwFlags - 0x0 target is a file, 0x1 target is a directory
473
+ # );
474
+ # rescue on Windows < 6.0 so that code doesn't explode
475
+ begin
476
+ ffi_lib :kernel32
477
+ attach_function_private :CreateSymbolicLinkW,
478
+ [:lpwstr, :lpwstr, :dword], :boolean
479
+ rescue LoadError
480
+ end
481
+
482
+ # https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory
483
+ # DWORD GetCurrentDirectory(
484
+ # DWORD nBufferLength,
485
+ # LPTSTR lpBuffer
486
+ # );
487
+ ffi_lib :kernel32
488
+ attach_function_private :GetCurrentDirectoryW,
489
+ [:dword, :lpwstr], :dword
490
+
491
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364944(v=vs.85).aspx
492
+ # DWORD WINAPI GetFileAttributes(
493
+ # _In_ LPCTSTR lpFileName
494
+ # );
495
+ ffi_lib :kernel32
496
+ attach_function_private :GetFileAttributesW,
497
+ [:lpcwstr], :dword
498
+
499
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365535(v=vs.85).aspx
500
+ # BOOL WINAPI SetFileAttributes(
501
+ # _In_ LPCTSTR lpFileName,
502
+ # _In_ DWORD dwFileAttributes
503
+ # );
504
+ ffi_lib :kernel32
505
+ attach_function_private :SetFileAttributesW,
506
+ [:lpcwstr, :dword], :win32_bool
507
+
508
+ # HANDLE WINAPI CreateFile(
509
+ # _In_ LPCTSTR lpFileName,
510
+ # _In_ DWORD dwDesiredAccess,
511
+ # _In_ DWORD dwShareMode,
512
+ # _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
513
+ # _In_ DWORD dwCreationDisposition,
514
+ # _In_ DWORD dwFlagsAndAttributes,
515
+ # _In_opt_ HANDLE hTemplateFile
516
+ # );
517
+ ffi_lib :kernel32
518
+ attach_function_private :CreateFileW,
519
+ [:lpcwstr, :dword, :dword, :pointer, :dword, :dword, :handle], :handle
520
+
521
+ # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createdirectoryw
522
+ # BOOL CreateDirectoryW(
523
+ # LPCWSTR lpPathName,
524
+ # LPSECURITY_ATTRIBUTES lpSecurityAttributes
525
+ # );
526
+ ffi_lib :kernel32
527
+ attach_function_private :CreateDirectoryW,
528
+ [:lpcwstr, :pointer], :win32_bool
529
+
530
+ # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-removedirectoryw
531
+ # BOOL RemoveDirectoryW(
532
+ # LPCWSTR lpPathName
533
+ # );
534
+ ffi_lib :kernel32
535
+ attach_function_private :RemoveDirectoryW,
536
+ [:lpcwstr], :win32_bool
537
+
538
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa363216(v=vs.85).aspx
539
+ # BOOL WINAPI DeviceIoControl(
540
+ # _In_ HANDLE hDevice,
541
+ # _In_ DWORD dwIoControlCode,
542
+ # _In_opt_ LPVOID lpInBuffer,
543
+ # _In_ DWORD nInBufferSize,
544
+ # _Out_opt_ LPVOID lpOutBuffer,
545
+ # _In_ DWORD nOutBufferSize,
546
+ # _Out_opt_ LPDWORD lpBytesReturned,
547
+ # _Inout_opt_ LPOVERLAPPED lpOverlapped
548
+ # );
549
+ ffi_lib :kernel32
550
+ attach_function_private :DeviceIoControl,
551
+ [:handle, :dword, :lpvoid, :dword, :lpvoid, :dword, :lpdword, :pointer], :win32_bool
552
+
553
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364980(v=vs.85).aspx
554
+ # DWORD WINAPI GetLongPathName(
555
+ # _In_ LPCTSTR lpszShortPath,
556
+ # _Out_ LPTSTR lpszLongPath,
557
+ # _In_ DWORD cchBuffer
558
+ # );
559
+ ffi_lib :kernel32
560
+ attach_function_private :GetLongPathNameW,
561
+ [:lpcwstr, :lpwstr, :dword], :dword
562
+
563
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364989(v=vs.85).aspx
564
+ # DWORD WINAPI GetShortPathName(
565
+ # _In_ LPCTSTR lpszLongPath,
566
+ # _Out_ LPTSTR lpszShortPath,
567
+ # _In_ DWORD cchBuffer
568
+ # );
569
+ ffi_lib :kernel32
570
+ attach_function_private :GetShortPathNameW,
571
+ [:lpcwstr, :lpwstr, :dword], :dword
572
+
573
+ # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfullpathnamew
574
+ # DWORD GetFullPathNameW(
575
+ # LPCWSTR lpFileName,
576
+ # DWORD nBufferLength,
577
+ # LPWSTR lpBuffer,
578
+ # LPWSTR *lpFilePart
579
+ # );
580
+ ffi_lib :kernel32
581
+ attach_function_private :GetFullPathNameW,
582
+ [:lpcwstr, :dword, :lpwstr, :pointer], :dword
583
+
584
+ # https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpathw
585
+ # SHFOLDERAPI SHGetFolderPathW(
586
+ # HWND hwnd,
587
+ # int csidl,
588
+ # HANDLE hToken,
589
+ # DWORD dwFlags,
590
+ # LPWSTR pszPath
591
+ # );
592
+ ffi_lib :shell32
593
+ attach_function_private :SHGetFolderPathW,
594
+ [:hwnd, :int, :handle, :dword, :lpwstr], :dword
595
+
596
+ # https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderlocation
597
+ # SHSTDAPI SHGetFolderLocation(
598
+ # HWND hwnd,
599
+ # int csidl,
600
+ # HANDLE hToken,
601
+ # DWORD dwFlags,
602
+ # PIDLIST_ABSOLUTE *ppidl
603
+ # );
604
+ ffi_lib :shell32
605
+ attach_function_private :SHGetFolderLocation,
606
+ [:hwnd, :int, :handle, :dword, :pointer], :dword
607
+
608
+ # https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shgetfileinfoa
609
+ # DWORD_PTR SHGetFileInfoA(
610
+ # LPCSTR pszPath,
611
+ # DWORD dwFileAttributes,
612
+ # SHFILEINFOA *psfi,
613
+ # UINT cbFileInfo,
614
+ # UINT uFlags
615
+ # );
616
+ ffi_lib :shell32
617
+ attach_function_private :SHGetFileInfo,
618
+ [:dword, :dword, :pointer, :uint, :uint], :dword
619
+
620
+ # https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectoryemptyw
621
+ # BOOL PathIsDirectoryEmptyW(
622
+ # LPCWSTR pszPath
623
+ # );
624
+ ffi_lib :shlwapi
625
+ attach_function_private :PathIsDirectoryEmptyW,
626
+ [:lpcwstr], :win32_bool
627
+ end
628
+ end