puppet 4.3.2 → 4.4.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 (487) hide show
  1. checksums.yaml +4 -4
  2. data/COMMITTERS.md +2 -2
  3. data/CONTRIBUTING.md +6 -6
  4. data/LICENSE +1 -1
  5. data/README.md +8 -9
  6. data/conf/auth.conf +2 -2
  7. data/ext/README.environment +1 -1
  8. data/ext/debian/README.source +1 -1
  9. data/ext/debian/control +1 -1
  10. data/ext/debian/copyright +4 -4
  11. data/ext/debian/puppetmaster.README.debian +11 -9
  12. data/ext/emacs/puppet-mode.el +1 -1
  13. data/ext/envpuppet +2 -2
  14. data/ext/ips/puppetagent.xml +1 -1
  15. data/ext/ips/puppetmaster.xml +1 -1
  16. data/ext/project_data.yaml +8 -0
  17. data/ext/puppet-test +3 -3
  18. data/ext/rack/example-passenger-vhost.conf +1 -1
  19. data/ext/redhat/puppet.spec.erb +2 -2
  20. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  21. data/ext/solaris/pkginfo +1 -1
  22. data/ext/solaris/smf/puppet.xml +1 -1
  23. data/ext/suse/puppet.spec +2 -2
  24. data/ext/upload_facts.rb +1 -1
  25. data/ext/windows/puppet_interactive.bat +6 -0
  26. data/ext/windows/puppet_shell.bat +9 -0
  27. data/ext/windows/run_puppet_interactive.bat +9 -0
  28. data/ext/yaml_nodes.rb +1 -1
  29. data/install.rb +30 -20
  30. data/lib/puppet/agent.rb +1 -1
  31. data/lib/puppet/application/agent.rb +4 -2
  32. data/lib/puppet/application/apply.rb +7 -4
  33. data/lib/puppet/application/cert.rb +1 -1
  34. data/lib/puppet/application/device.rb +1 -1
  35. data/lib/puppet/application/filebucket.rb +1 -1
  36. data/lib/puppet/application/inspect.rb +1 -1
  37. data/lib/puppet/application/lookup.rb +4 -4
  38. data/lib/puppet/application/master.rb +2 -2
  39. data/lib/puppet/application/resource.rb +1 -1
  40. data/lib/puppet/configurer.rb +100 -22
  41. data/lib/puppet/data_providers/hiera_config.rb +28 -3
  42. data/lib/puppet/data_providers/hiera_interpolate.rb +30 -15
  43. data/lib/puppet/data_providers/hiera_support.rb +1 -1
  44. data/lib/puppet/data_providers/json_data_provider_factory.rb +2 -2
  45. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -2
  46. data/lib/puppet/defaults.rb +65 -19
  47. data/lib/puppet/environments.rb +3 -1
  48. data/lib/puppet/face/config.rb +1 -1
  49. data/lib/puppet/face/epp.rb +1 -1
  50. data/lib/puppet/face/help/man.erb +1 -1
  51. data/lib/puppet/face/module/install.rb +6 -6
  52. data/lib/puppet/face/parser.rb +12 -9
  53. data/lib/puppet/face/status.rb +2 -1
  54. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  55. data/lib/puppet/feature/telnet.rb +9 -0
  56. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  57. data/lib/puppet/file_serving/metadata.rb +18 -2
  58. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  59. data/lib/puppet/file_system.rb +2 -2
  60. data/lib/puppet/file_system/file_impl.rb +2 -2
  61. data/lib/puppet/file_system/memory_impl.rb +1 -1
  62. data/lib/puppet/file_system/uniquefile.rb +1 -1
  63. data/lib/puppet/forge.rb +1 -1
  64. data/lib/puppet/forge/repository.rb +1 -31
  65. data/lib/puppet/functions.rb +45 -6
  66. data/lib/puppet/functions/assert_type.rb +9 -9
  67. data/lib/puppet/functions/each.rb +5 -13
  68. data/lib/puppet/functions/filter.rb +5 -14
  69. data/lib/puppet/functions/map.rb +6 -14
  70. data/lib/puppet/functions/reduce.rb +5 -13
  71. data/lib/puppet/functions/reverse_each.rb +82 -0
  72. data/lib/puppet/functions/scanf.rb +15 -18
  73. data/lib/puppet/functions/slice.rb +22 -36
  74. data/lib/puppet/functions/split.rb +2 -2
  75. data/lib/puppet/functions/step.rb +88 -0
  76. data/lib/puppet/functions/type.rb +70 -0
  77. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  78. data/lib/puppet/indirector/catalog/compiler.rb +188 -5
  79. data/lib/puppet/indirector/file_content/http.rb +15 -0
  80. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  81. data/lib/puppet/indirector/generic_http.rb +16 -0
  82. data/lib/puppet/indirector/node/exec.rb +1 -1
  83. data/lib/puppet/indirector/node/ldap.rb +1 -1
  84. data/lib/puppet/indirector/rest.rb +2 -1
  85. data/lib/puppet/info_service/class_information_service.rb +13 -12
  86. data/lib/puppet/loaders.rb +1 -0
  87. data/lib/puppet/module.rb +3 -0
  88. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +9 -2
  89. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -1
  90. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +2 -2
  91. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  92. data/lib/puppet/network/http/pool.rb +9 -0
  93. data/lib/puppet/node.rb +1 -1
  94. data/lib/puppet/node/environment.rb +11 -2
  95. data/lib/puppet/parser/ast/pops_bridge.rb +19 -22
  96. data/lib/puppet/parser/compiler.rb +3 -3
  97. data/lib/puppet/parser/environment_compiler.rb +0 -1
  98. data/lib/puppet/parser/functions.rb +28 -16
  99. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -1
  100. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  101. data/lib/puppet/parser/functions/map.rb +1 -1
  102. data/lib/puppet/parser/functions/scanf.rb +15 -26
  103. data/lib/puppet/parser/functions/slice.rb +17 -24
  104. data/lib/puppet/parser/functions/split.rb +1 -1
  105. data/lib/puppet/parser/resource.rb +19 -17
  106. data/lib/puppet/parser/scope.rb +176 -5
  107. data/lib/puppet/plugins/data_providers/data_provider.rb +54 -13
  108. data/lib/puppet/pops.rb +0 -8
  109. data/lib/puppet/pops/adaptable.rb +4 -1
  110. data/lib/puppet/pops/adapters.rb +38 -13
  111. data/lib/puppet/pops/binder/binder.rb +21 -17
  112. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  113. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  114. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  115. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  116. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  117. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  118. data/lib/puppet/pops/binder/injector.rb +53 -48
  119. data/lib/puppet/pops/binder/key_factory.rb +10 -6
  120. data/lib/puppet/pops/binder/producers.rb +67 -62
  121. data/lib/puppet/pops/evaluator/access_operator.rb +95 -93
  122. data/lib/puppet/pops/evaluator/closure.rb +84 -68
  123. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -14
  124. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -1
  125. data/lib/puppet/pops/evaluator/compare_operator.rb +13 -9
  126. data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
  127. data/lib/puppet/pops/evaluator/evaluator_impl.rb +78 -76
  128. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +85 -0
  129. data/lib/puppet/pops/evaluator/relationship_operator.rb +13 -11
  130. data/lib/puppet/pops/evaluator/runtime3_converter.rb +5 -0
  131. data/lib/puppet/pops/evaluator/runtime3_support.rb +41 -45
  132. data/lib/puppet/pops/issue_reporter.rb +6 -4
  133. data/lib/puppet/pops/issues.rb +34 -11
  134. data/lib/puppet/pops/loader/base_loader.rb +1 -1
  135. data/lib/puppet/pops/loader/loader.rb +1 -1
  136. data/lib/puppet/pops/loader/loader_paths.rb +15 -0
  137. data/lib/puppet/pops/loader/module_loaders.rb +17 -13
  138. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +16 -12
  139. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -3
  140. data/lib/puppet/pops/loader/type_definition_instantiator.rb +55 -0
  141. data/lib/puppet/pops/loaders.rb +51 -9
  142. data/lib/puppet/pops/lookup.rb +14 -12
  143. data/lib/puppet/pops/merge_strategy.rb +16 -19
  144. data/lib/puppet/pops/model/factory.rb +26 -2
  145. data/lib/puppet/pops/model/model.rb +8 -8
  146. data/lib/puppet/pops/model/model_label_provider.rb +13 -7
  147. data/lib/puppet/pops/model/model_meta.rb +17 -0
  148. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -0
  149. data/lib/puppet/pops/parser/egrammar.ra +38 -14
  150. data/lib/puppet/pops/parser/eparser.rb +1353 -1276
  151. data/lib/puppet/pops/parser/epp_support.rb +11 -7
  152. data/lib/puppet/pops/parser/evaluating_parser.rb +14 -10
  153. data/lib/puppet/pops/parser/heredoc_support.rb +15 -11
  154. data/lib/puppet/pops/parser/lexer2.rb +26 -19
  155. data/lib/puppet/pops/parser/lexer_support.rb +85 -7
  156. data/lib/puppet/pops/parser/locator.rb +21 -0
  157. data/lib/puppet/pops/parser/parser_support.rb +19 -16
  158. data/lib/puppet/pops/parser/slurp_support.rb +11 -7
  159. data/lib/puppet/pops/types/class_loader.rb +23 -19
  160. data/lib/puppet/pops/types/enumeration.rb +9 -26
  161. data/lib/puppet/pops/types/iterable.rb +308 -0
  162. data/lib/puppet/pops/types/recursion_guard.rb +82 -0
  163. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  164. data/lib/puppet/pops/types/type_asserter.rb +10 -9
  165. data/lib/puppet/pops/types/type_calculator.rb +138 -381
  166. data/lib/puppet/pops/types/type_factory.rb +91 -57
  167. data/lib/puppet/pops/types/type_formatter.rb +334 -0
  168. data/lib/puppet/pops/types/type_mismatch_describer.rb +226 -59
  169. data/lib/puppet/pops/types/type_parser.rb +159 -112
  170. data/lib/puppet/pops/types/types.rb +2057 -1247
  171. data/lib/puppet/pops/utils.rb +11 -10
  172. data/lib/puppet/pops/validation.rb +11 -9
  173. data/lib/puppet/pops/validation/checker4_0.rb +83 -55
  174. data/lib/puppet/pops/validation/validator_factory_4_0.rb +8 -4
  175. data/lib/puppet/provider/aixobject.rb +1 -1
  176. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  177. data/lib/puppet/provider/cron/crontab.rb +1 -1
  178. data/lib/puppet/provider/exec/windows.rb +1 -1
  179. data/lib/puppet/provider/macauthorization/macauthorization.rb +10 -9
  180. data/lib/puppet/provider/nameservice/directoryservice.rb +35 -50
  181. data/lib/puppet/provider/package/appdmg.rb +3 -2
  182. data/lib/puppet/provider/package/dnf.rb +1 -1
  183. data/lib/puppet/provider/package/pip.rb +5 -8
  184. data/lib/puppet/provider/package/pip3.rb +1 -1
  185. data/lib/puppet/provider/package/pkg.rb +1 -1
  186. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  187. data/lib/puppet/provider/package/pkgng.rb +13 -4
  188. data/lib/puppet/provider/package/windows.rb +1 -1
  189. data/lib/puppet/provider/package/yum.rb +1 -1
  190. data/lib/puppet/provider/package/zypper.rb +19 -0
  191. data/lib/puppet/provider/service/debian.rb +2 -2
  192. data/lib/puppet/provider/service/launchd.rb +6 -18
  193. data/lib/puppet/provider/service/systemd.rb +9 -2
  194. data/lib/puppet/provider/sshkey/parsed.rb +1 -1
  195. data/lib/puppet/provider/user/aix.rb +1 -1
  196. data/lib/puppet/provider/user/directoryservice.rb +33 -58
  197. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  198. data/lib/puppet/provider/zpool/zpool.rb +1 -1
  199. data/lib/puppet/reference/configuration.rb +1 -1
  200. data/lib/puppet/reference/providers.rb +1 -1
  201. data/lib/puppet/resource.rb +15 -12
  202. data/lib/puppet/resource/capability_finder.rb +20 -13
  203. data/lib/puppet/resource/catalog.rb +60 -3
  204. data/lib/puppet/resource/status.rb +11 -2
  205. data/lib/puppet/resource/type.rb +28 -38
  206. data/lib/puppet/settings.rb +1 -1
  207. data/lib/puppet/settings/config_file.rb +1 -1
  208. data/lib/puppet/settings/environment_conf.rb +13 -5
  209. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  210. data/lib/puppet/ssl/certificate_request.rb +4 -4
  211. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  212. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  213. data/lib/puppet/test/test_helper.rb +16 -4
  214. data/lib/puppet/transaction.rb +15 -2
  215. data/lib/puppet/transaction/additional_resource_generator.rb +6 -2
  216. data/lib/puppet/transaction/report.rb +31 -1
  217. data/lib/puppet/transaction/resource_harness.rb +0 -25
  218. data/lib/puppet/type.rb +11 -11
  219. data/lib/puppet/type/augeas.rb +1 -1
  220. data/lib/puppet/type/cron.rb +12 -12
  221. data/lib/puppet/type/file.rb +91 -39
  222. data/lib/puppet/type/file/checksum_value.rb +53 -0
  223. data/lib/puppet/type/file/content.rb +26 -111
  224. data/lib/puppet/type/file/data_sync.rb +84 -0
  225. data/lib/puppet/type/file/ensure.rb +17 -14
  226. data/lib/puppet/type/file/selcontext.rb +1 -1
  227. data/lib/puppet/type/file/source.rb +103 -18
  228. data/lib/puppet/type/filebucket.rb +1 -1
  229. data/lib/puppet/type/interface.rb +8 -3
  230. data/lib/puppet/type/macauthorization.rb +1 -1
  231. data/lib/puppet/type/package.rb +6 -0
  232. data/lib/puppet/type/schedule.rb +1 -1
  233. data/lib/puppet/type/stage.rb +1 -1
  234. data/lib/puppet/type/user.rb +19 -17
  235. data/lib/puppet/type/yumrepo.rb +20 -0
  236. data/lib/puppet/util.rb +109 -22
  237. data/lib/puppet/util/autoload.rb +16 -11
  238. data/lib/puppet/util/checksums.rb +74 -31
  239. data/lib/puppet/util/execution.rb +1 -1
  240. data/lib/puppet/util/http_proxy.rb +72 -0
  241. data/lib/puppet/util/log.rb +2 -0
  242. data/lib/puppet/util/logging.rb +43 -1
  243. data/lib/puppet/util/monkey_patches.rb +2 -2
  244. data/lib/puppet/util/multi_match.rb +51 -0
  245. data/lib/puppet/util/network_device/cisco/device.rb +10 -2
  246. data/lib/puppet/util/network_device/cisco/interface.rb +21 -8
  247. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  248. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  249. data/lib/puppet/util/plist.rb +130 -0
  250. data/lib/puppet/util/resource_template.rb +1 -1
  251. data/lib/puppet/util/run_mode.rb +2 -2
  252. data/lib/puppet/util/skip_tags.rb +9 -0
  253. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  254. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  255. data/lib/puppet/util/windows/adsi.rb +4 -4
  256. data/lib/puppet/util/windows/api_types.rb +24 -18
  257. data/lib/puppet/util/windows/com.rb +3 -3
  258. data/lib/puppet/util/windows/error.rb +1 -1
  259. data/lib/puppet/util/windows/file.rb +8 -8
  260. data/lib/puppet/util/windows/principal.rb +23 -14
  261. data/lib/puppet/util/windows/process.rb +78 -11
  262. data/lib/puppet/util/windows/registry.rb +1 -1
  263. data/lib/puppet/util/windows/root_certs.rb +5 -5
  264. data/lib/puppet/util/windows/security.rb +33 -35
  265. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  266. data/lib/puppet/util/windows/sid.rb +42 -4
  267. data/lib/puppet/util/windows/taskscheduler.rb +15 -15
  268. data/lib/puppet/util/windows/user.rb +10 -10
  269. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  270. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  271. data/lib/puppet/vendor/pathspec/README.md +1 -1
  272. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  273. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +14 -0
  274. data/lib/puppet/version.rb +1 -1
  275. data/lib/semver.rb +17 -1
  276. data/man/man5/puppet.conf.5 +12 -12
  277. data/man/man8/extlookup2hiera.8 +1 -1
  278. data/man/man8/puppet-agent.8 +2 -2
  279. data/man/man8/puppet-apply.8 +2 -2
  280. data/man/man8/puppet-ca.8 +2 -2
  281. data/man/man8/puppet-catalog.8 +2 -2
  282. data/man/man8/puppet-cert.8 +2 -2
  283. data/man/man8/puppet-certificate.8 +2 -2
  284. data/man/man8/puppet-certificate_request.8 +2 -2
  285. data/man/man8/puppet-certificate_revocation_list.8 +2 -2
  286. data/man/man8/puppet-config.8 +3 -3
  287. data/man/man8/puppet-describe.8 +1 -1
  288. data/man/man8/puppet-device.8 +1 -1
  289. data/man/man8/puppet-doc.8 +1 -1
  290. data/man/man8/puppet-epp.8 +2 -2
  291. data/man/man8/puppet-facts.8 +2 -2
  292. data/man/man8/puppet-file.8 +2 -2
  293. data/man/man8/puppet-filebucket.8 +2 -2
  294. data/man/man8/puppet-help.8 +2 -2
  295. data/man/man8/puppet-inspect.8 +2 -2
  296. data/man/man8/puppet-key.8 +2 -2
  297. data/man/man8/puppet-man.8 +2 -2
  298. data/man/man8/puppet-master.8 +2 -2
  299. data/man/man8/puppet-module.8 +9 -9
  300. data/man/man8/puppet-node.8 +2 -2
  301. data/man/man8/puppet-parser.8 +2 -2
  302. data/man/man8/puppet-plugin.8 +2 -2
  303. data/man/man8/puppet-report.8 +2 -2
  304. data/man/man8/puppet-resource.8 +2 -2
  305. data/man/man8/puppet-resource_type.8 +2 -2
  306. data/man/man8/puppet-status.8 +3 -3
  307. data/man/man8/puppet.8 +1 -1
  308. data/spec/fixtures/module.tar.gz +0 -0
  309. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  310. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -1
  311. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/data/empty.json +0 -0
  312. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/hiera.yaml +5 -0
  313. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/manifests/init.pp +2 -0
  314. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/metadata.json +9 -0
  315. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
  316. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  317. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  318. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/metadata.json +9 -0
  319. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +2 -1
  320. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  321. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +3 -1
  322. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  323. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  324. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  325. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  326. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  327. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
  328. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
  329. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  330. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
  331. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  332. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
  333. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
  334. data/spec/integration/defaults_spec.rb +14 -2
  335. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  336. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  337. data/spec/integration/node/environment_spec.rb +13 -0
  338. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  339. data/spec/integration/parser/parameter_defaults_spec.rb +336 -0
  340. data/spec/integration/parser/undef_param_spec.rb +8 -0
  341. data/spec/integration/provider/yumrepo_spec.rb +1 -1
  342. data/spec/integration/test/test_helper_spec.rb +28 -0
  343. data/spec/integration/transaction/report_spec.rb +16 -0
  344. data/spec/integration/transaction_spec.rb +11 -0
  345. data/spec/integration/type/file_spec.rb +194 -4
  346. data/spec/integration/type/package_spec.rb +5 -1
  347. data/spec/integration/type/tidy_spec.rb +21 -9
  348. data/spec/integration/util/execution_spec.rb +22 -0
  349. data/spec/integration/util/windows/principal_spec.rb +90 -4
  350. data/spec/integration/util/windows/process_spec.rb +31 -0
  351. data/spec/integration/util/windows/security_spec.rb +6 -6
  352. data/spec/integration/util/windows/user_spec.rb +1 -1
  353. data/spec/integration/util_spec.rb +49 -27
  354. data/spec/lib/puppet_spec/compiler.rb +17 -0
  355. data/spec/lib/puppet_spec/files.rb +2 -2
  356. data/spec/lib/puppet_spec/pops.rb +13 -0
  357. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  358. data/spec/shared_contexts/types_setup.rb +96 -0
  359. data/spec/unit/agent_spec.rb +1 -0
  360. data/spec/unit/application/agent_spec.rb +10 -0
  361. data/spec/unit/application/apply_spec.rb +9 -0
  362. data/spec/unit/configurer/downloader_spec.rb +5 -5
  363. data/spec/unit/configurer_spec.rb +271 -39
  364. data/spec/unit/data_providers/hiera_interpolation_spec.rb +57 -0
  365. data/spec/unit/defaults_spec.rb +15 -0
  366. data/spec/unit/environments_spec.rb +24 -4
  367. data/spec/unit/face/parser_spec.rb +43 -2
  368. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  369. data/spec/unit/file_serving/metadata_spec.rb +50 -0
  370. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  371. data/spec/unit/file_system_spec.rb +26 -0
  372. data/spec/unit/functions/assert_type_spec.rb +36 -2
  373. data/spec/unit/functions/defined_spec.rb +2 -2
  374. data/spec/unit/functions/epp_spec.rb +11 -3
  375. data/spec/unit/functions/lookup_spec.rb +58 -13
  376. data/spec/unit/functions/regsubst_spec.rb +1 -1
  377. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  378. data/spec/unit/functions/step_spec.rb +113 -0
  379. data/spec/unit/functions/type_spec.rb +35 -0
  380. data/spec/unit/functions4_spec.rb +61 -5
  381. data/spec/unit/indirector/catalog/compiler_spec.rb +705 -4
  382. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  383. data/spec/unit/indirector/indirection_spec.rb +1 -1
  384. data/spec/unit/info_service_spec.rb +94 -32
  385. data/spec/unit/module_spec.rb +14 -0
  386. data/spec/unit/module_tool/applications/builder_spec.rb +4 -4
  387. data/spec/unit/network/authstore_spec.rb +1 -1
  388. data/spec/unit/network/http/connection_spec.rb +1 -0
  389. data/spec/unit/network/http/pool_spec.rb +30 -0
  390. data/spec/unit/node_spec.rb +1 -1
  391. data/spec/unit/parser/compiler_spec.rb +16 -0
  392. data/spec/unit/parser/scope_spec.rb +28 -11
  393. data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
  394. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  395. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +7 -1
  396. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  397. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  398. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +6 -0
  399. data/spec/unit/pops/loaders/dependency_loader_spec.rb +53 -0
  400. data/spec/unit/pops/loaders/loaders_spec.rb +44 -1
  401. data/spec/unit/pops/parser/lexer2_spec.rb +112 -3
  402. data/spec/unit/pops/parser/parse_calls_spec.rb +8 -0
  403. data/spec/unit/pops/parser/parser_spec.rb +10 -0
  404. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  405. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  406. data/spec/unit/pops/types/recursion_guard_spec.rb +91 -0
  407. data/spec/unit/pops/types/type_acceptor_spec.rb +105 -0
  408. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  409. data/spec/unit/pops/types/type_calculator_spec.rb +275 -373
  410. data/spec/unit/pops/types/type_formatter_spec.rb +280 -0
  411. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +152 -0
  412. data/spec/unit/pops/types/type_parser_spec.rb +58 -13
  413. data/spec/unit/pops/types/types_spec.rb +241 -0
  414. data/spec/unit/pops/validator/validator_spec.rb +100 -43
  415. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  416. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  417. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  418. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  419. data/spec/unit/provider/package/dnf_spec.rb +16 -0
  420. data/spec/unit/provider/package/pip3_spec.rb +60 -42
  421. data/spec/unit/provider/package/pip_spec.rb +47 -34
  422. data/spec/unit/provider/package/pkgdmg_spec.rb +18 -9
  423. data/spec/unit/provider/package/pkgng_spec.rb +4 -2
  424. data/spec/unit/provider/package/yum_spec.rb +11 -0
  425. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  426. data/spec/unit/provider/service/launchd_spec.rb +17 -35
  427. data/spec/unit/provider/service/systemd_spec.rb +7 -0
  428. data/spec/unit/provider/sshkey/parsed_spec.rb +20 -19
  429. data/spec/unit/provider/user/directoryservice_spec.rb +40 -59
  430. data/spec/unit/resource/capability_finder_spec.rb +28 -15
  431. data/spec/unit/resource/catalog_spec.rb +33 -1
  432. data/spec/unit/resource/type_spec.rb +149 -7
  433. data/spec/unit/resource_spec.rb +96 -57
  434. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  435. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  436. data/spec/unit/transaction/report_spec.rb +27 -0
  437. data/spec/unit/transaction/resource_harness_spec.rb +0 -47
  438. data/spec/unit/transaction_spec.rb +5 -0
  439. data/spec/unit/type/file/checksum_spec.rb +6 -0
  440. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  441. data/spec/unit/type/file/content_spec.rb +12 -193
  442. data/spec/unit/type/file/source_spec.rb +211 -119
  443. data/spec/unit/type/file_spec.rb +133 -34
  444. data/spec/unit/type/interface_spec.rb +32 -0
  445. data/spec/unit/type/macauthorization_spec.rb +4 -1
  446. data/spec/unit/type/yumrepo_spec.rb +2 -2
  447. data/spec/unit/util/filetype_spec.rb +1 -1
  448. data/spec/unit/util/http_proxy_spec.rb +2 -2
  449. data/spec/unit/util/log/destinations_spec.rb +0 -2
  450. data/spec/unit/util/logging_spec.rb +69 -0
  451. data/spec/unit/util/multi_match_spec.rb +39 -0
  452. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  453. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  454. data/spec/unit/util/plist_spec.rb +110 -0
  455. data/spec/unit/util/resource_template_spec.rb +2 -2
  456. data/spec/unit/util/run_mode_spec.rb +27 -3
  457. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  458. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  459. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  460. data/spec/unit/util/windows/sid_spec.rb +1 -1
  461. data/spec/unit/util_spec.rb +123 -13
  462. data/tasks/cfpropertylist.rake +15 -0
  463. metadata +114 -26
  464. data/lib/puppet/vendor/load_plist.rb +0 -1
  465. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  466. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  467. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  468. data/lib/puppet/vendor/plist/README +0 -36
  469. data/lib/puppet/vendor/plist/Rakefile +0 -144
  470. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  471. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  472. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  473. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  474. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  475. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  476. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  477. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  478. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  479. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  480. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  481. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  482. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  483. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  484. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  485. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  486. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  487. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
@@ -5,7 +5,7 @@
5
5
  # flags, DACL, and SACL. The SACL is not currently supported, though it has the
6
6
  # same layout as a DACL.
7
7
  #
8
- # @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa379563(v=vs.85).aspx
8
+ # @see https://msdn.microsoft.com/en-us/library/windows/desktop/aa379563(v=vs.85).aspx
9
9
  # @api private
10
10
  class Puppet::Util::Windows::SecurityDescriptor
11
11
  require 'puppet/util/windows/security'
@@ -9,6 +9,44 @@ module Puppet::Util::Windows
9
9
  ERROR_NONE_MAPPED = 1332
10
10
  ERROR_INVALID_SID_STRUCTURE = 1337
11
11
 
12
+ # Well Known SIDs
13
+ Null = 'S-1-0'
14
+ Nobody = 'S-1-0-0'
15
+ World = 'S-1-1'
16
+ Everyone = 'S-1-1-0'
17
+ Local = 'S-1-2'
18
+ Creator = 'S-1-3'
19
+ CreatorOwner = 'S-1-3-0'
20
+ CreatorGroup = 'S-1-3-1'
21
+ CreatorOwnerServer = 'S-1-3-2'
22
+ CreatorGroupServer = 'S-1-3-3'
23
+ NonUnique = 'S-1-4'
24
+ Nt = 'S-1-5'
25
+ Dialup = 'S-1-5-1'
26
+ Network = 'S-1-5-2'
27
+ Batch = 'S-1-5-3'
28
+ Interactive = 'S-1-5-4'
29
+ Service = 'S-1-5-6'
30
+ Anonymous = 'S-1-5-7'
31
+ Proxy = 'S-1-5-8'
32
+ EnterpriseDomainControllers = 'S-1-5-9'
33
+ PrincipalSelf = 'S-1-5-10'
34
+ AuthenticatedUsers = 'S-1-5-11'
35
+ RestrictedCode = 'S-1-5-12'
36
+ TerminalServerUsers = 'S-1-5-13'
37
+ LocalSystem = 'S-1-5-18'
38
+ NtLocal = 'S-1-5-19'
39
+ NtNetwork = 'S-1-5-20'
40
+ BuiltinAdministrators = 'S-1-5-32-544'
41
+ BuiltinUsers = 'S-1-5-32-545'
42
+ Guests = 'S-1-5-32-546'
43
+ PowerUsers = 'S-1-5-32-547'
44
+ AccountOperators = 'S-1-5-32-548'
45
+ ServerOperators = 'S-1-5-32-549'
46
+ PrintOperators = 'S-1-5-32-550'
47
+ BackupOperators = 'S-1-5-32-551'
48
+ Replicators = 'S-1-5-32-552'
49
+
12
50
  # Convert an account name, e.g. 'Administrators' into a SID string,
13
51
  # e.g. 'S-1-5-32-544'. The name can be specified as 'Administrators',
14
52
  # 'BUILTIN\Administrators', or 'S-1-5-32-544', and will return the
@@ -80,7 +118,7 @@ module Puppet::Util::Windows
80
118
  end
81
119
  module_function :sid_to_name
82
120
 
83
- # http://stackoverflow.com/a/1792930 - 68 bytes, 184 characters in a string
121
+ # https://stackoverflow.com/a/1792930 - 68 bytes, 184 characters in a string
84
122
  MAXIMUM_SID_STRING_LENGTH = 184
85
123
 
86
124
  # Convert a SID pointer to a SID string, e.g. "S-1-5-32-544".
@@ -157,7 +195,7 @@ module Puppet::Util::Windows
157
195
 
158
196
  ffi_convention :stdcall
159
197
 
160
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa379151(v=vs.85).aspx
198
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379151(v=vs.85).aspx
161
199
  # BOOL WINAPI IsValidSid(
162
200
  # _In_ PSID pSid
163
201
  # );
@@ -165,7 +203,7 @@ module Puppet::Util::Windows
165
203
  attach_function_private :IsValidSid,
166
204
  [:pointer], :win32_bool
167
205
 
168
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa376399(v=vs.85).aspx
206
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa376399(v=vs.85).aspx
169
207
  # BOOL ConvertSidToStringSid(
170
208
  # _In_ PSID Sid,
171
209
  # _Out_ LPTSTR *StringSid
@@ -174,7 +212,7 @@ module Puppet::Util::Windows
174
212
  attach_function_private :ConvertSidToStringSidW,
175
213
  [:pointer, :pointer], :win32_bool
176
214
 
177
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa376402(v=vs.85).aspx
215
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa376402(v=vs.85).aspx
178
216
  # BOOL WINAPI ConvertStringSidToSid(
179
217
  # _In_ LPCTSTR StringSid,
180
218
  # _Out_ PSID *Sid
@@ -84,7 +84,7 @@ module Win32
84
84
  SCHED_S_TASK_HAS_NOT_RUN = 0x00041303
85
85
  SCHED_S_TASK_NOT_SCHEDULED = 0x00041305
86
86
  # HRESULT error codes
87
- # http://blogs.msdn.com/b/eldar/archive/2007/04/03/a-lot-of-hresult-codes.aspx
87
+ # https://blogs.msdn.com/b/eldar/archive/2007/04/03/a-lot-of-hresult-codes.aspx
88
88
  # in Ruby, an 0x8XXXXXXX style HRESULT can be resolved to 2s complement
89
89
  # by using "0x8XXXXXXX".to_i(16) - - 0x100000000
90
90
  SCHED_E_ACCOUNT_INFORMATION_NOT_SET = -2147216625 # 0x8004130F
@@ -1002,7 +1002,7 @@ module Win32
1002
1002
 
1003
1003
  public
1004
1004
 
1005
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381811(v=vs.85).aspx
1005
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381811(v=vs.85).aspx
1006
1006
  ITaskScheduler = com::Interface[com::IUnknown,
1007
1007
  FFI::WIN32::GUID['148BD527-A2AB-11CE-B11F-00AA00530503'],
1008
1008
 
@@ -1025,7 +1025,7 @@ module Win32
1025
1025
  TaskScheduler = com::Factory[ITaskScheduler,
1026
1026
  FFI::WIN32::GUID['148BD52A-A2AB-11CE-B11F-00AA00530503']]
1027
1027
 
1028
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa380706(v=vs.85).aspx
1028
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa380706(v=vs.85).aspx
1029
1029
  IEnumWorkItems = com::Interface[com::IUnknown,
1030
1030
  FFI::WIN32::GUID['148BD528-A2AB-11CE-B11F-00AA00530503'],
1031
1031
 
@@ -1039,7 +1039,7 @@ module Win32
1039
1039
 
1040
1040
  EnumWorkItems = com::Instance[IEnumWorkItems]
1041
1041
 
1042
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381216(v=vs.85).aspx
1042
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381216(v=vs.85).aspx
1043
1043
  IScheduledWorkItem = com::Interface[com::IUnknown,
1044
1044
  FFI::WIN32::GUID['a6b952f0-a4b1-11d0-997d-00aa006887ec'],
1045
1045
 
@@ -1091,7 +1091,7 @@ module Win32
1091
1091
  GetAccountInformation: [[:pointer], :hresult]
1092
1092
  ]
1093
1093
 
1094
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx
1094
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381311(v=vs.85).aspx
1095
1095
  ITask = com::Interface[IScheduledWorkItem,
1096
1096
  FFI::WIN32::GUID['148BD524-A2AB-11CE-B11F-00AA00530503'],
1097
1097
 
@@ -1117,14 +1117,14 @@ module Win32
1117
1117
 
1118
1118
  Task = com::Instance[ITask]
1119
1119
 
1120
- # http://msdn.microsoft.com/en-us/library/windows/desktop/ms688695(v=vs.85).aspx
1120
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms688695(v=vs.85).aspx
1121
1121
  IPersist = com::Interface[com::IUnknown,
1122
1122
  FFI::WIN32::GUID['0000010c-0000-0000-c000-000000000046'],
1123
1123
  # CLSID *
1124
1124
  GetClassID: [[:pointer], :hresult]
1125
1125
  ]
1126
1126
 
1127
- # http://msdn.microsoft.com/en-us/library/windows/desktop/ms687223(v=vs.85).aspx
1127
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms687223(v=vs.85).aspx
1128
1128
  IPersistFile = com::Interface[IPersist,
1129
1129
  FFI::WIN32::GUID['0000010b-0000-0000-C000-000000000046'],
1130
1130
 
@@ -1138,7 +1138,7 @@ module Win32
1138
1138
 
1139
1139
  PersistFile = com::Instance[IPersistFile]
1140
1140
 
1141
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381864(v=vs.85).aspx
1141
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381864(v=vs.85).aspx
1142
1142
  ITaskTrigger = com::Interface[com::IUnknown,
1143
1143
  FFI::WIN32::GUID['148BD52B-A2AB-11CE-B11F-00AA00530503'],
1144
1144
 
@@ -1149,7 +1149,7 @@ module Win32
1149
1149
 
1150
1150
  TaskTrigger = com::Instance[ITaskTrigger]
1151
1151
 
1152
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa383620(v=vs.85).aspx
1152
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa383620(v=vs.85).aspx
1153
1153
  # The TASK_TRIGGER_TYPE field of the TASK_TRIGGER structure determines
1154
1154
  # which member of the TRIGGER_TYPE_UNION field to use.
1155
1155
  TASK_TRIGGER_TYPE = enum(
@@ -1163,31 +1163,31 @@ module Win32
1163
1163
  :TASK_EVENT_TRIGGER_AT_LOGON, 7 # Ignore the Type field
1164
1164
  )
1165
1165
 
1166
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa446857(v=vs.85).aspx
1166
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa446857(v=vs.85).aspx
1167
1167
  class DAILY < FFI::Struct
1168
1168
  layout :DaysInterval, :word
1169
1169
  end
1170
1170
 
1171
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa384014(v=vs.85).aspx
1171
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa384014(v=vs.85).aspx
1172
1172
  class WEEKLY < FFI::Struct
1173
1173
  layout :WeeksInterval, :word,
1174
1174
  :rgfDaysOfTheWeek, :word
1175
1175
  end
1176
1176
 
1177
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381918(v=vs.85).aspx
1177
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381918(v=vs.85).aspx
1178
1178
  class MONTHLYDATE < FFI::Struct
1179
1179
  layout :rgfDays, :dword,
1180
1180
  :rgfMonths, :word
1181
1181
  end
1182
1182
 
1183
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa381918(v=vs.85).aspx
1183
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa381918(v=vs.85).aspx
1184
1184
  class MONTHLYDOW < FFI::Struct
1185
1185
  layout :wWhichWeek, :word,
1186
1186
  :rgfDaysOfTheWeek, :word,
1187
1187
  :rgfMonths, :word
1188
1188
  end
1189
1189
 
1190
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa384002(v=vs.85).aspx
1190
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa384002(v=vs.85).aspx
1191
1191
  class TRIGGER_TYPE_UNION < FFI::Union
1192
1192
  layout :Daily, DAILY,
1193
1193
  :Weekly, WEEKLY,
@@ -1195,7 +1195,7 @@ module Win32
1195
1195
  :MonthlyDOW, MONTHLYDOW
1196
1196
  end
1197
1197
 
1198
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa383618(v=vs.85).aspx
1198
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa383618(v=vs.85).aspx
1199
1199
  class TASK_TRIGGER < FFI::Struct
1200
1200
  layout :cbTriggerSize, :word, # Structure size.
1201
1201
  :Reserved1, :word, # Reserved. Must be zero.
@@ -19,7 +19,7 @@ module Puppet::Util::Windows::User
19
19
  module_function :admin?
20
20
 
21
21
 
22
- # http://msdn.microsoft.com/en-us/library/windows/desktop/ee207397(v=vs.85).aspx
22
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ee207397(v=vs.85).aspx
23
23
  SECURITY_MAX_SID_SIZE = 68
24
24
 
25
25
  def check_token_membership
@@ -43,7 +43,7 @@ module Puppet::Util::Windows::User
43
43
  end
44
44
 
45
45
  # Is administrators SID enabled in calling thread's access token?
46
- is_admin = ismember_pointer.read_win32_bool != FFI::WIN32_FALSE
46
+ is_admin = ismember_pointer.read_win32_bool
47
47
  end
48
48
  end
49
49
 
@@ -106,7 +106,7 @@ module Puppet::Util::Windows::User
106
106
 
107
107
  ffi_convention :stdcall
108
108
 
109
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx
109
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx
110
110
  # BOOL LogonUser(
111
111
  # _In_ LPTSTR lpszUsername,
112
112
  # _In_opt_ LPTSTR lpszDomain,
@@ -119,7 +119,7 @@ module Puppet::Util::Windows::User
119
119
  attach_function_private :LogonUserW,
120
120
  [:lpwstr, :lpwstr, :lpwstr, :dword, :dword, :phandle], :win32_bool
121
121
 
122
- # http://msdn.microsoft.com/en-us/library/windows/desktop/bb773378(v=vs.85).aspx
122
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/bb773378(v=vs.85).aspx
123
123
  # typedef struct _PROFILEINFO {
124
124
  # DWORD dwSize;
125
125
  # DWORD dwFlags;
@@ -143,7 +143,7 @@ module Puppet::Util::Windows::User
143
143
  :hProfile, :handle
144
144
  end
145
145
 
146
- # http://msdn.microsoft.com/en-us/library/windows/desktop/bb762281(v=vs.85).aspx
146
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/bb762281(v=vs.85).aspx
147
147
  # BOOL WINAPI LoadUserProfile(
148
148
  # _In_ HANDLE hToken,
149
149
  # _Inout_ LPPROFILEINFO lpProfileInfo
@@ -152,7 +152,7 @@ module Puppet::Util::Windows::User
152
152
  attach_function_private :LoadUserProfileW,
153
153
  [:handle, :pointer], :win32_bool
154
154
 
155
- # http://msdn.microsoft.com/en-us/library/windows/desktop/bb762282(v=vs.85).aspx
155
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/bb762282(v=vs.85).aspx
156
156
  # BOOL WINAPI UnloadUserProfile(
157
157
  # _In_ HANDLE hToken,
158
158
  # _In_ HANDLE hProfile
@@ -161,7 +161,7 @@ module Puppet::Util::Windows::User
161
161
  attach_function_private :UnloadUserProfile,
162
162
  [:handle, :handle], :win32_bool
163
163
 
164
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa376389(v=vs.85).aspx
164
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa376389(v=vs.85).aspx
165
165
  # BOOL WINAPI CheckTokenMembership(
166
166
  # _In_opt_ HANDLE TokenHandle,
167
167
  # _In_ PSID SidToCheck,
@@ -171,7 +171,7 @@ module Puppet::Util::Windows::User
171
171
  attach_function_private :CheckTokenMembership,
172
172
  [:handle, :pointer, :pbool], :win32_bool
173
173
 
174
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa379650(v=vs.85).aspx
174
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379650(v=vs.85).aspx
175
175
  WELL_KNOWN_SID_TYPE = enum(
176
176
  :WinNullSid , 0,
177
177
  :WinWorldSid , 1,
@@ -270,7 +270,7 @@ module Puppet::Util::Windows::User
270
270
  :WinCapabilityRemovableStorageSid , 94
271
271
  )
272
272
 
273
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa446585(v=vs.85).aspx
273
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa446585(v=vs.85).aspx
274
274
  # BOOL WINAPI CreateWellKnownSid(
275
275
  # _In_ WELL_KNOWN_SID_TYPE WellKnownSidType,
276
276
  # _In_opt_ PSID DomainSid,
@@ -281,7 +281,7 @@ module Puppet::Util::Windows::User
281
281
  attach_function_private :CreateWellKnownSid,
282
282
  [WELL_KNOWN_SID_TYPE, :pointer, :pointer, :lpdword], :win32_bool
283
283
 
284
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa379151(v=vs.85).aspx
284
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379151(v=vs.85).aspx
285
285
  # BOOL WINAPI IsValidSid(
286
286
  # _In_ PSID pSid
287
287
  # );
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  "lib/deep_merge/rails_compat.rb",
23
23
  "test/test_deep_merge.rb"
24
24
  ]
25
- s.homepage = %q{http://github.com/danielsdeleo/deep_merge}
25
+ s.homepage = %q{https://github.com/danielsdeleo/deep_merge}
26
26
  s.require_paths = ["lib"]
27
27
  s.summary = %q{Merge Deeply Nested Hashes}
28
28
  s.test_files = [
@@ -1,6 +1,6 @@
1
1
  Apache License
2
2
  Version 2.0, January 2004
3
- http://www.apache.org/licenses/
3
+ https://www.apache.org/licenses/
4
4
 
5
5
  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
6
 
@@ -192,7 +192,7 @@ Apache License
192
192
  you may not use this file except in compliance with the License.
193
193
  You may obtain a copy of the License at
194
194
 
195
- http://www.apache.org/licenses/LICENSE-2.0
195
+ https://www.apache.org/licenses/LICENSE-2.0
196
196
 
197
197
  Unless required by applicable law or agreed to in writing, software
198
198
  distributed under the License is distributed on an "AS IS" BASIS,
@@ -3,7 +3,7 @@ pathspec-ruby
3
3
 
4
4
  Match Path Specifications, such as .gitignore, in Ruby!
5
5
 
6
- Follows .gitignore syntax defined on [gitscm](http://git-scm.com/docs/gitignore)
6
+ Follows .gitignore syntax defined on [gitscm](https://git-scm.com/docs/gitignore)
7
7
 
8
8
  .gitignore functionality ported from [Python pathspec](https://pypi.python.org/pypi/pathspec/0.2.2) by [@cpburnz](https://github.com/cpburnz/python-path-specification)
9
9
 
@@ -43,7 +43,7 @@ Change to the 'test' folder and run the test suite:
43
43
 
44
44
  == Documentation
45
45
 
46
- RDoc documentation is available at Github: http://mthiede.github.com/rgen/
46
+ RDoc documentation is available at Github: https://mthiede.github.com/rgen/
47
47
 
48
48
  Find the main documentation parts for:
49
49
  * RGen::MetamodelBuilder
@@ -32,6 +32,20 @@ module Semantic
32
32
  end
33
33
 
34
34
  def <=>(oth)
35
+ # Note that prior to ruby 2.3.0, if a <=> method threw an exception, ruby
36
+ # would silently rescue the exception and return nil from <=> (which causes
37
+ # the derived == comparison to return false). Starting in ruby 2.3.0, this
38
+ # behavior changed and the exception is actually thrown. Some comments at:
39
+ # https://bugs.ruby-lang.org/issues/7688
40
+ #
41
+ # So simply return nil here if any of the needed fields are not available,
42
+ # since attempting to access a missing field is one way to force an exception.
43
+ # This doesn't help if the <=> use below throws an exception, but it
44
+ # handles the most typical cause.
45
+ return nil if !oth.respond_to?(:priority) ||
46
+ !oth.respond_to?(:name) ||
47
+ !oth.respond_to?(:version)
48
+
35
49
  our_key = [ priority, name, version ]
36
50
  their_key = [ oth.priority, oth.name, oth.version ]
37
51
 
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
  module Puppet
10
- PUPPETVERSION = '4.3.2'
10
+ PUPPETVERSION = '4.4.0'
11
11
 
12
12
  ##
13
13
  # version is a public API method intended to always provide a fast and
@@ -78,7 +78,23 @@ class SemVer < Numeric
78
78
  end
79
79
 
80
80
  def <=>(other)
81
- other = SemVer.new("#{other}") unless other.is_a? SemVer
81
+ # Note that prior to ruby 2.3.0, if a <=> method threw an exception, ruby
82
+ # would silently rescue the exception and return nil from <=> (which causes
83
+ # the derived == comparison to return false). Starting in ruby 2.3.0, this
84
+ # behavior changed and the exception is actually thrown. Some comments at:
85
+ # https://bugs.ruby-lang.org/issues/7688
86
+ #
87
+ # SemVer#initialize above throws an ArgumentError given an invalid
88
+ # version string. So, to preserve the ability to use the == operator
89
+ # between a SemVer object and an invalid version string, we take care here
90
+ # to do the valid? check before constructing the SemVer object (i.e.
91
+ # so that a == comparison doesn't throw an exception, but just returns
92
+ # false.)
93
+ unless other.is_a? SemVer
94
+ return nil unless SemVer.valid?(other)
95
+ other = SemVer.new("#{other}")
96
+ end
97
+
82
98
  return self.major <=> other.major unless self.major == other.major
83
99
  return self.minor <=> other.minor unless self.minor == other.minor
84
100
  return self.tiny <=> other.tiny unless self.tiny == other.tiny
@@ -1,5 +1,5 @@
1
1
  .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
2
+ .\" https://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
4
  .TH "PUPPETCONF" "5" "May 2015" "Puppet Labs, LLC" "Puppet manual"
5
5
  \fBThis page is autogenerated; any changes will get overwritten\fR \fI(last generated on 2015\-05\-18 10:15:47 \-0700)\fR
@@ -30,7 +30,7 @@ The Puppet executables will ignore any setting that isn\'t relevant to their fun
30
30
  .IP "" 0
31
31
  .
32
32
  .P
33
- See the configuration guide \fIhttp://docs\.puppetlabs\.com/guides/configuring\.html\fR for more details\.
33
+ See the configuration guide \fIhttps://docs\.puppetlabs\.com/guides/configuring\.html\fR for more details\.
34
34
  .
35
35
  .SS "agent_catalog_run_lockfile"
36
36
  A lock file to indicate that a puppet agent catalog run is currently in progress\. The file contains the pid of the process that holds the lock on the catalog run\.
@@ -107,7 +107,7 @@ If a custom policy executable is configured, the CA puppet master will run it ev
107
107
  If a certificate request is not autosigned, it will persist for review\. An admin user can use the \fBpuppet cert sign\fR command to manually sign it, or can delete the request\.
108
108
  .
109
109
  .P
110
- For info on autosign configuration files, see the guide to Puppet\'s config files \fIhttp://docs\.puppetlabs\.com/guides/configuring\.html\fR\.
110
+ For info on autosign configuration files, see the guide to Puppet\'s config files \fIhttps://docs\.puppetlabs\.com/guides/configuring\.html\fR\.
111
111
  .
112
112
  .IP "\(bu" 4
113
113
  \fIDefault\fR: $confdir/autosign\.conf
@@ -118,7 +118,7 @@ For info on autosign configuration files, see the guide to Puppet\'s config file
118
118
  The search path for \fBglobal\fR modules\. Should be specified as a list of directories separated by the system path separator character\. (The POSIX path separator is \':\', and the Windows path separator is \';\'\.)
119
119
  .
120
120
  .P
121
- These are the modules that will be used by \fIall\fR environments\. Note that the \fBmodules\fR directory of the active environment will have priority over any global directories\. For more info, see http://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
121
+ These are the modules that will be used by \fIall\fR environments\. Note that the \fBmodules\fR directory of the active environment will have priority over any global directories\. For more info, see https://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
122
122
  .
123
123
  .IP "\(bu" 4
124
124
  \fIDefault\fR: $codedir/modules:/opt/puppetlabs/puppet/modules
@@ -287,10 +287,10 @@ Whether certificate revocation should be supported by downloading a Certificate
287
287
  The name to use when handling certificates\. When a node requests a certificate from the CA puppet master, it uses the value of the \fBcertname\fR setting as its requested Subject CN\.
288
288
  .
289
289
  .P
290
- This is the name used when managing a node\'s permissions in auth\.conf \fIhttp://docs\.puppetlabs\.com/puppet/latest/reference/config_file_auth\.html\fR\. In most cases, it is also used as the node\'s name when matching node definitions \fIhttp://docs\.puppetlabs\.com/puppet/latest/reference/lang_node_definitions\.html\fR and requesting data from an ENC\. (This can be changed with the \fBnode_name_value\fR and \fBnode_name_fact\fR settings, although you should only do so if you have a compelling reason\.)
290
+ This is the name used when managing a node\'s permissions in auth\.conf \fIhttps://docs\.puppetlabs\.com/puppet/latest/reference/config_file_auth\.html\fR\. In most cases, it is also used as the node\'s name when matching node definitions \fIhttps://docs\.puppetlabs\.com/puppet/latest/reference/lang_node_definitions\.html\fR and requesting data from an ENC\. (This can be changed with the \fBnode_name_value\fR and \fBnode_name_fact\fR settings, although you should only do so if you have a compelling reason\.)
291
291
  .
292
292
  .P
293
- A node\'s certname is available in Puppet manifests as \fB$trusted[\'certname\']\fR\. (See Facts and Built\-In Variables \fIhttp://docs\.puppetlabs\.com/puppet/latest/reference/lang_facts_and_builtin_vars\.html\fR for more details\.)
293
+ A node\'s certname is available in Puppet manifests as \fB$trusted[\'certname\']\fR\. (See Facts and Built\-In Variables \fIhttps://docs\.puppetlabs\.com/puppet/latest/reference/lang_facts_and_builtin_vars\.html\fR for more details\.)
294
294
  .
295
295
  .IP "\(bu" 4
296
296
  For best compatibility, you should limit the value of \fBcertname\fR to only use letters, numbers, periods, underscores, and dashes\. (That is, it should match \fB/A[a\-z0\-9\._\-]+Z/\fR\.)
@@ -394,7 +394,7 @@ The name of the puppet config file\.
394
394
  How to determine the configuration version\. By default, it will be the time that the configuration is parsed, but you can provide a shell script to override how the version is determined\. The output of this script will be added to every log message in the reports, allowing you to correlate changes on your hosts to the source version on the server\.
395
395
  .
396
396
  .P
397
- Setting a global value for config_version in puppet\.conf is not allowed (but it can be overridden from the commandline)\. Please set a per\-environment value in environment\.conf instead\. For more info, see http://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
397
+ Setting a global value for config_version in puppet\.conf is not allowed (but it can be overridden from the commandline)\. Please set a per\-environment value in environment\.conf instead\. For more info, see https://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
398
398
  .
399
399
  .SS "configprint"
400
400
  Print the value of a specific configuration setting\. If the name of a setting is provided for this, then the value is printed and puppet exits\. Comma\-separate multiple values\. For a list of all values, specify \'all\'\.
@@ -614,7 +614,7 @@ We don\'t recommend using any value other than \fB0\fR or \fBunlimited\fR, since
614
614
  A search path for directory environments, as a list of directories separated by the system path separator character\. (The POSIX path separator is \':\', and the Windows path separator is \';\'\.)
615
615
  .
616
616
  .P
617
- This setting must have a value set to enable \fBdirectory environments\.\fR The recommended value is \fB$codedir/environments\fR\. For more details, see http://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
617
+ This setting must have a value set to enable \fBdirectory environments\.\fR The recommended value is \fB$codedir/environments\fR\. For more details, see https://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
618
618
  .
619
619
  .IP "\(bu" 4
620
620
  \fIDefault\fR: $codedir/environments
@@ -1046,7 +1046,7 @@ Whether Puppet should manage the owner, group, and mode of files it uses interna
1046
1046
  The entry\-point manifest for puppet master\. This can be one file or a directory of manifests to be evaluated in alphabetical order\. Puppet manages this path as a directory if one exists or if the path ends with a / or \.
1047
1047
  .
1048
1048
  .P
1049
- Setting a global value for \fBmanifest\fR in puppet\.conf is not allowed (but it can be overridden from them commandline)\. Please use directory environments instead\. If you need to use something other than the environment\'s \fBmanifests\fR directory as the main manifest, you can set \fBmanifest\fR in environment\.conf\. For more info, see http://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
1049
+ Setting a global value for \fBmanifest\fR in puppet\.conf is not allowed (but it can be overridden from them commandline)\. Please use directory environments instead\. If you need to use something other than the environment\'s \fBmanifests\fR directory as the main manifest, you can set \fBmanifest\fR in environment\.conf\. For more info, see https://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
1050
1050
  .
1051
1051
  .TP
1052
1052
  \fIDefault\fR:
@@ -1143,7 +1143,7 @@ The directory into which module tool data is stored
1143
1143
  The search path for modules, as a list of directories separated by the system path separator character\. (The POSIX path separator is \':\', and the Windows path separator is \';\'\.)
1144
1144
  .
1145
1145
  .P
1146
- Setting a global value for \fBmodulepath\fR in puppet\.conf is not allowed (but it can be overridden from the commandline)\. Please use directory environments instead\. If you need to use something other than the default modulepath of \fB<ACTIVE ENVIRONMENT\'S MODULES DIR>:$basemodulepath\fR, you can set \fBmodulepath\fR in environment\.conf\. For more info, see http://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
1146
+ Setting a global value for \fBmodulepath\fR in puppet\.conf is not allowed (but it can be overridden from the commandline)\. Please use directory environments instead\. If you need to use something other than the default modulepath of \fB<ACTIVE ENVIRONMENT\'S MODULES DIR>:$basemodulepath\fR, you can set \fBmodulepath\fR in environment\.conf\. For more info, see https://docs\.puppetlabs\.com/puppet/latest/reference/environments\.html
1147
1147
  .
1148
1148
  .SS "name"
1149
1149
  The name of the application, if we are running as one\. The default is essentially $0 without the path or \fB\.rb\fR\.
@@ -1193,7 +1193,7 @@ Whether to apply catalogs in noop mode, which allows Puppet to partially simulat
1193
1193
  When running in noop mode, Puppet will check whether each resource is in sync, like it does when running normally\. However, if a resource attribute is not in the desired state (as declared in the catalog), Puppet will take no action, and will instead report the changes it \fIwould\fR have made\. These simulated changes will appear in the report sent to the puppet master, or be shown on the console if running puppet agent or puppet apply in the foreground\. The simulated changes will not send refresh events to any subscribing or notified resources, although Puppet will log that a refresh event \fIwould\fR have been sent\.
1194
1194
  .
1195
1195
  .P
1196
- \fBImportant note:\fR The \fBnoop\fR metaparameter \fIhttp://docs\.puppetlabs\.com/references/latest/metaparameter\.html#noop\fR allows you to apply individual resources in noop mode, and will override the global value of the \fBnoop\fR setting\. This means a resource with \fBnoop => false\fR \fIwill\fR be changed if necessary, even when running puppet agent with \fBnoop = true\fR or \fB\-\-noop\fR\. (Conversely, a resource with \fBnoop => true\fR will only be simulated, even when noop mode is globally disabled\.)
1196
+ \fBImportant note:\fR The \fBnoop\fR metaparameter \fIhttps://docs\.puppetlabs\.com/references/latest/metaparameter\.html#noop\fR allows you to apply individual resources in noop mode, and will override the global value of the \fBnoop\fR setting\. This means a resource with \fBnoop => false\fR \fIwill\fR be changed if necessary, even when running puppet agent with \fBnoop = true\fR or \fB\-\-noop\fR\. (Conversely, a resource with \fBnoop => true\fR will only be simulated, even when noop mode is globally disabled\.)
1197
1197
  .
1198
1198
  .IP "\(bu" 4
1199
1199
  \fIDefault\fR: false
@@ -1373,7 +1373,7 @@ The fallback log file\. This is only used when the \fB\-\-logdest\fR option is n
1373
1373
  Despite the name, both puppet agent and puppet master will use this file as the fallback logging destination\.
1374
1374
  .
1375
1375
  .P
1376
- For control over logging destinations, see the \fB\-\-logdest\fR command line option in the manual pages for puppet master, puppet agent, and puppet apply\. You can see man pages by running \fBpuppet <SUBCOMMAND> \-\-help\fR, or read them online at http://docs\.puppetlabs\.com/references/latest/man/\.
1376
+ For control over logging destinations, see the \fB\-\-logdest\fR command line option in the manual pages for puppet master, puppet agent, and puppet apply\. You can see man pages by running \fBpuppet <SUBCOMMAND> \-\-help\fR, or read them online at https://docs\.puppetlabs\.com/references/latest/man/\.
1377
1377
  .
1378
1378
  .IP "\(bu" 4
1379
1379
  \fIDefault\fR: $logdir/puppetd\.log