puppet 3.5.1-x86-mingw32 → 3.6.0.rc1-x86-mingw32

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

Potentially problematic release.


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

Files changed (342) hide show
  1. data/CONTRIBUTING.md +5 -0
  2. data/Gemfile +17 -9
  3. data/README.md +1 -0
  4. data/conf/fileserver.conf +4 -3
  5. data/ext/README.environment +8 -0
  6. data/ext/build_defaults.yaml +1 -1
  7. data/ext/debian/control +2 -2
  8. data/ext/debian/puppet-common.dirs +4 -0
  9. data/ext/debian/rules +4 -0
  10. data/ext/emacs/puppet-mode-init.el +1 -1
  11. data/ext/emacs/puppet-mode.el +36 -17
  12. data/ext/redhat/client.init +3 -3
  13. data/ext/redhat/puppet.spec.erb +9 -0
  14. data/ext/systemd/puppet.service +3 -4
  15. data/ext/systemd/puppetmaster.service +1 -3
  16. data/install.rb +1 -1
  17. data/lib/puppet.rb +2 -1
  18. data/lib/puppet/agent.rb +1 -1
  19. data/lib/puppet/application.rb +17 -17
  20. data/lib/puppet/application/doc.rb +1 -1
  21. data/lib/puppet/configurer.rb +4 -1
  22. data/lib/puppet/configurer/downloader.rb +13 -12
  23. data/lib/puppet/configurer/plugin_handler.rb +3 -3
  24. data/lib/puppet/context.rb +6 -1
  25. data/lib/puppet/defaults.rb +82 -12
  26. data/lib/puppet/environments.rb +169 -13
  27. data/lib/puppet/external/nagios/grammar.ry +2 -0
  28. data/lib/puppet/external/nagios/parser.rb +28 -19
  29. data/lib/puppet/face/config.rb +19 -6
  30. data/lib/puppet/face/module/generate.rb +209 -7
  31. data/lib/puppet/face/module/install.rb +17 -16
  32. data/lib/puppet/face/module/list.rb +83 -82
  33. data/lib/puppet/face/module/search.rb +1 -1
  34. data/lib/puppet/face/module/upgrade.rb +10 -9
  35. data/lib/puppet/face/parser.rb +3 -2
  36. data/lib/puppet/face/plugin.rb +8 -4
  37. data/lib/puppet/file_bucket/dipper.rb +6 -3
  38. data/lib/puppet/file_bucket/file.rb +4 -2
  39. data/lib/puppet/file_serving/metadata.rb +1 -1
  40. data/lib/puppet/file_system/memory_file.rb +27 -1
  41. data/lib/puppet/file_system/memory_impl.rb +15 -1
  42. data/lib/puppet/forge.rb +148 -52
  43. data/lib/puppet/forge/cache.rb +5 -1
  44. data/lib/puppet/forge/errors.rb +10 -0
  45. data/lib/puppet/forge/repository.rb +61 -26
  46. data/lib/puppet/functions.rb +548 -0
  47. data/lib/puppet/functions/assert_type.rb +42 -0
  48. data/lib/puppet/functions/import.rb +7 -0
  49. data/lib/puppet/indirector/facts/facter.rb +1 -1
  50. data/lib/puppet/indirector/file_bucket_file/file.rb +3 -2
  51. data/lib/puppet/indirector/rest.rb +18 -0
  52. data/lib/puppet/loaders.rb +20 -0
  53. data/lib/puppet/module.rb +2 -2
  54. data/lib/puppet/module_tool.rb +40 -14
  55. data/lib/puppet/module_tool/applications.rb +0 -1
  56. data/lib/puppet/module_tool/applications/application.rb +35 -26
  57. data/lib/puppet/module_tool/applications/builder.rb +16 -6
  58. data/lib/puppet/module_tool/applications/checksummer.rb +25 -19
  59. data/lib/puppet/module_tool/applications/installer.rb +196 -35
  60. data/lib/puppet/module_tool/applications/searcher.rb +1 -0
  61. data/lib/puppet/module_tool/applications/uninstaller.rb +7 -1
  62. data/lib/puppet/module_tool/applications/unpacker.rb +57 -31
  63. data/lib/puppet/module_tool/applications/upgrader.rb +221 -65
  64. data/lib/puppet/module_tool/checksums.rb +5 -8
  65. data/lib/puppet/module_tool/errors/installer.rb +12 -44
  66. data/lib/puppet/module_tool/errors/shared.rb +84 -11
  67. data/lib/puppet/module_tool/errors/upgrader.rb +16 -45
  68. data/lib/puppet/module_tool/install_directory.rb +7 -6
  69. data/lib/puppet/module_tool/installed_modules.rb +92 -0
  70. data/lib/puppet/module_tool/local_tarball.rb +91 -0
  71. data/lib/puppet/module_tool/metadata.rb +119 -115
  72. data/lib/puppet/module_tool/modulefile.rb +9 -9
  73. data/lib/puppet/module_tool/shared_behaviors.rb +19 -7
  74. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +79 -0
  75. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +18 -0
  76. data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +1 -0
  77. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +7 -0
  78. data/lib/puppet/module_tool/tar.rb +3 -7
  79. data/lib/puppet/module_tool/tar/gnu.rb +21 -9
  80. data/lib/puppet/module_tool/tar/mini.rb +2 -8
  81. data/lib/puppet/network/http/api/v1.rb +1 -1
  82. data/lib/puppet/network/http/api/v2/authorization.rb +4 -2
  83. data/lib/puppet/network/http/issues.rb +1 -0
  84. data/lib/puppet/network/http_pool.rb +15 -6
  85. data/lib/puppet/node/environment.rb +91 -20
  86. data/lib/puppet/parser/ast/pops_bridge.rb +44 -3
  87. data/lib/puppet/parser/collector.rb +1 -1
  88. data/lib/puppet/parser/compiler.rb +50 -7
  89. data/lib/puppet/parser/functions.rb +6 -0
  90. data/lib/puppet/parser/functions/generate.rb +1 -1
  91. data/lib/puppet/parser/resource.rb +1 -1
  92. data/lib/puppet/pops.rb +22 -1
  93. data/lib/puppet/pops/adapters.rb +8 -1
  94. data/lib/puppet/pops/binder/bindings_composer.rb +1 -1
  95. data/lib/puppet/pops/binder/bindings_factory.rb +1 -1
  96. data/lib/puppet/pops/binder/config/binder_config_checker.rb +1 -1
  97. data/lib/puppet/pops/binder/producers.rb +2 -2
  98. data/lib/puppet/pops/evaluator/access_operator.rb +65 -25
  99. data/lib/puppet/pops/evaluator/callable_signature.rb +101 -0
  100. data/lib/puppet/pops/evaluator/closure.rb +57 -2
  101. data/lib/puppet/pops/evaluator/compare_operator.rb +1 -1
  102. data/lib/puppet/pops/evaluator/evaluator_impl.rb +9 -11
  103. data/lib/puppet/pops/evaluator/runtime3_support.rb +72 -21
  104. data/lib/puppet/pops/functions/dispatch.rb +71 -0
  105. data/lib/puppet/pops/functions/dispatcher.rb +237 -0
  106. data/lib/puppet/pops/functions/function.rb +77 -0
  107. data/lib/puppet/pops/issues.rb +12 -0
  108. data/lib/puppet/pops/loader/base_loader.rb +102 -0
  109. data/lib/puppet/pops/loader/dependency_loader.rb +60 -0
  110. data/lib/puppet/pops/loader/gem_support.rb +49 -0
  111. data/lib/puppet/pops/loader/loader.rb +180 -0
  112. data/lib/puppet/pops/loader/loader_paths.rb +137 -0
  113. data/lib/puppet/pops/loader/module_loaders.rb +242 -0
  114. data/lib/puppet/pops/loader/null_loader.rb +44 -0
  115. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +34 -0
  116. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +109 -0
  117. data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
  118. data/lib/puppet/pops/loader/static_loader.rb +69 -0
  119. data/lib/puppet/pops/loader/uri_helper.rb +22 -0
  120. data/lib/puppet/pops/loaders.rb +240 -0
  121. data/lib/puppet/pops/model/factory.rb +13 -5
  122. data/lib/puppet/pops/model/model_tree_dumper.rb +12 -4
  123. data/lib/puppet/pops/parser/egrammar.ra +31 -18
  124. data/lib/puppet/pops/parser/eparser.rb +1137 -1106
  125. data/lib/puppet/pops/parser/lexer2.rb +17 -16
  126. data/lib/puppet/pops/semantic_error.rb +17 -0
  127. data/lib/puppet/pops/types/type_calculator.rb +150 -15
  128. data/lib/puppet/pops/types/type_factory.rb +69 -0
  129. data/lib/puppet/pops/types/type_parser.rb +9 -0
  130. data/lib/puppet/pops/types/types.rb +65 -4
  131. data/lib/puppet/pops/validation/checker4_0.rb +1 -1
  132. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  133. data/lib/puppet/property/list.rb +1 -1
  134. data/lib/puppet/provider/augeas/augeas.rb +2 -2
  135. data/lib/puppet/provider/cron/crontab.rb +13 -2
  136. data/lib/puppet/provider/package.rb +24 -0
  137. data/lib/puppet/provider/package/apt.rb +6 -1
  138. data/lib/puppet/provider/package/gem.rb +8 -2
  139. data/lib/puppet/provider/package/msi.rb +0 -15
  140. data/lib/puppet/provider/package/openbsd.rb +0 -24
  141. data/lib/puppet/provider/package/rpm.rb +3 -29
  142. data/lib/puppet/provider/package/windows.rb +0 -15
  143. data/lib/puppet/provider/package/yum.rb +101 -24
  144. data/lib/puppet/provider/package/yumhelper.py +31 -1
  145. data/lib/puppet/provider/package/zypper.rb +10 -28
  146. data/lib/puppet/provider/service/debian.rb +1 -1
  147. data/lib/puppet/provider/service/init.rb +3 -0
  148. data/lib/puppet/provider/service/openbsd.rb +318 -0
  149. data/lib/puppet/provider/service/redhat.rb +6 -3
  150. data/lib/puppet/provider/service/systemd.rb +2 -2
  151. data/lib/puppet/provider/yumrepo/inifile.rb +115 -42
  152. data/lib/puppet/resource.rb +13 -9
  153. data/lib/puppet/resource/catalog.rb +12 -6
  154. data/lib/puppet/resource/type_collection.rb +3 -3
  155. data/lib/puppet/settings.rb +57 -36
  156. data/lib/puppet/settings/config_file.rb +5 -0
  157. data/lib/puppet/settings/environment_conf.rb +147 -0
  158. data/lib/puppet/settings/ttl_setting.rb +48 -0
  159. data/lib/puppet/ssl/certificate_authority.rb +2 -3
  160. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +1 -1
  161. data/lib/puppet/ssl/certificate_request.rb +4 -4
  162. data/lib/puppet/ssl/validator/default_validator.rb +2 -2
  163. data/lib/puppet/status.rb +1 -1
  164. data/lib/puppet/test/test_helper.rb +1 -0
  165. data/lib/puppet/type/augeas.rb +13 -1
  166. data/lib/puppet/type/cron.rb +32 -18
  167. data/lib/puppet/type/file.rb +4 -2
  168. data/lib/puppet/type/file/checksum.rb +15 -5
  169. data/lib/puppet/type/file/content.rb +3 -1
  170. data/lib/puppet/type/file/source.rb +5 -5
  171. data/lib/puppet/type/package.rb +12 -17
  172. data/lib/puppet/type/resources.rb +3 -1
  173. data/lib/puppet/type/scheduled_task.rb +4 -5
  174. data/lib/puppet/type/service.rb +12 -2
  175. data/lib/puppet/type/user.rb +106 -0
  176. data/lib/puppet/type/yumrepo.rb +9 -1
  177. data/lib/puppet/util/checksums.rb +60 -1
  178. data/lib/puppet/util/diff.rb +3 -1
  179. data/lib/puppet/util/execution.rb +20 -16
  180. data/lib/puppet/util/feature.rb +3 -0
  181. data/lib/puppet/util/logging.rb +19 -12
  182. data/lib/puppet/util/rubygems.rb +10 -0
  183. data/lib/puppet/util/watched_file.rb +1 -1
  184. data/lib/puppet/util/windows/security.rb +5 -3
  185. data/lib/puppet/vendor/load_semantic.rb +1 -0
  186. data/lib/puppet/vendor/require_vendored.rb +2 -0
  187. data/lib/puppet/vendor/semantic/Gemfile +20 -0
  188. data/lib/puppet/vendor/semantic/Rakefile +69 -0
  189. data/lib/puppet/vendor/semantic/lib/semantic.rb +7 -0
  190. data/lib/puppet/vendor/semantic/lib/semantic/dependency.rb +181 -0
  191. data/lib/puppet/vendor/semantic/lib/semantic/dependency/graph.rb +60 -0
  192. data/lib/puppet/vendor/semantic/lib/semantic/dependency/graph_node.rb +117 -0
  193. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +46 -0
  194. data/lib/puppet/vendor/semantic/lib/semantic/dependency/source.rb +25 -0
  195. data/lib/puppet/vendor/semantic/lib/semantic/dependency/unsatisfiable_graph.rb +31 -0
  196. data/lib/puppet/vendor/semantic/lib/semantic/version.rb +168 -0
  197. data/lib/puppet/vendor/semantic/lib/semantic/version_range.rb +424 -0
  198. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +24 -0
  199. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +141 -0
  200. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +162 -0
  201. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +143 -0
  202. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +5 -0
  203. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +44 -0
  204. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +383 -0
  205. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +307 -0
  206. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +608 -0
  207. data/lib/puppet/version.rb +1 -1
  208. data/spec/fixtures/java.tgz +0 -0
  209. data/spec/fixtures/stdlib.tgz +0 -0
  210. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/usee/lib/puppet/functions/usee/callee.rb +5 -0
  211. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/user/lib/puppet/functions/user/caller.rb +5 -0
  212. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/user/metadata.json +9 -0
  213. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +5 -0
  214. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +5 -0
  215. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +3 -0
  216. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +19 -0
  217. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +6 -0
  218. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +3 -0
  219. data/spec/fixtures/unit/provider/naginator/define_empty_param +6 -0
  220. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +7 -0
  221. data/spec/fixtures/unit/type/user/authorized_keys +5 -0
  222. data/spec/integration/application/apply_spec.rb +1 -2
  223. data/spec/integration/configurer_spec.rb +2 -2
  224. data/spec/integration/faces/plugin_spec.rb +62 -0
  225. data/spec/integration/indirector/catalog/compiler_spec.rb +1 -1
  226. data/spec/integration/indirector/catalog/queue_spec.rb +1 -1
  227. data/spec/integration/node/environment_spec.rb +2 -2
  228. data/spec/integration/parser/future_compiler_spec.rb +96 -142
  229. data/spec/integration/parser/ruby_manifest_spec.rb +0 -5
  230. data/spec/integration/provider/cron/crontab_spec.rb +35 -0
  231. data/spec/integration/type/file_spec.rb +74 -72
  232. data/spec/integration/util/windows/security_spec.rb +17 -0
  233. data/spec/lib/matchers/resource.rb +45 -13
  234. data/spec/lib/puppet_spec/files.rb +18 -0
  235. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +56 -0
  236. data/spec/lib/puppet_spec/module_tool/stub_source.rb +133 -0
  237. data/spec/shared_contexts/checksums.rb +55 -0
  238. data/spec/unit/application/apply_spec.rb +10 -7
  239. data/spec/unit/application/doc_spec.rb +17 -10
  240. data/spec/unit/application/indirection_base_spec.rb +18 -10
  241. data/spec/unit/application/inspect_spec.rb +22 -20
  242. data/spec/unit/configurer/downloader_spec.rb +7 -6
  243. data/spec/unit/configurer/plugin_handler_spec.rb +5 -8
  244. data/spec/unit/configurer_spec.rb +1 -1
  245. data/spec/unit/context_spec.rb +23 -0
  246. data/spec/unit/environments_spec.rb +274 -16
  247. data/spec/unit/face/config_spec.rb +111 -11
  248. data/spec/unit/face/module/install_spec.rb +14 -85
  249. data/spec/unit/face/module/list_spec.rb +108 -62
  250. data/spec/unit/face/module/search_spec.rb +1 -1
  251. data/spec/unit/face/module/uninstall_spec.rb +21 -42
  252. data/spec/unit/face/parser_spec.rb +5 -2
  253. data/spec/unit/file_bucket/dipper_spec.rb +92 -86
  254. data/spec/unit/file_bucket/file_spec.rb +23 -75
  255. data/spec/unit/file_serving/metadata_spec.rb +74 -74
  256. data/spec/unit/forge/module_release_spec.rb +131 -0
  257. data/spec/unit/forge/repository_spec.rb +21 -20
  258. data/spec/unit/forge_spec.rb +99 -23
  259. data/spec/unit/functions/assert_type_spec.rb +59 -0
  260. data/spec/unit/functions4_spec.rb +671 -0
  261. data/spec/unit/indirector/catalog/static_compiler_spec.rb +2 -2
  262. data/spec/unit/indirector/facts/facter_spec.rb +9 -3
  263. data/spec/unit/indirector/file_bucket_file/file_spec.rb +156 -155
  264. data/spec/unit/indirector/rest_spec.rb +8 -0
  265. data/spec/unit/interface/face_collection_spec.rb +35 -23
  266. data/spec/unit/module_spec.rb +20 -8
  267. data/spec/unit/module_tool/applications/builder_spec.rb +40 -12
  268. data/spec/unit/module_tool/applications/checksummer_spec.rb +86 -105
  269. data/spec/unit/module_tool/applications/installer_spec.rb +293 -261
  270. data/spec/unit/module_tool/applications/searcher_spec.rb +1 -1
  271. data/spec/unit/module_tool/applications/uninstaller_spec.rb +90 -154
  272. data/spec/unit/module_tool/applications/unpacker_spec.rb +12 -12
  273. data/spec/unit/module_tool/applications/upgrader_spec.rb +286 -18
  274. data/spec/unit/module_tool/metadata_spec.rb +223 -14
  275. data/spec/unit/module_tool/tar/gnu_spec.rb +12 -9
  276. data/spec/unit/module_tool/tar/mini_spec.rb +1 -1
  277. data/spec/unit/module_tool/tar_spec.rb +4 -18
  278. data/spec/unit/module_tool_spec.rb +123 -27
  279. data/spec/unit/network/formats_spec.rb +2 -2
  280. data/spec/unit/network/http_pool_spec.rb +21 -0
  281. data/spec/unit/network/rights_spec.rb +10 -8
  282. data/spec/unit/node/environment_spec.rb +27 -2
  283. data/spec/unit/parser/collector_spec.rb +1 -1
  284. data/spec/unit/parser/compiler_spec.rb +1 -1
  285. data/spec/unit/parser/functions/generate_spec.rb +4 -0
  286. data/spec/unit/pops/evaluator/access_ops_spec.rb +50 -11
  287. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +25 -0
  288. data/spec/unit/pops/loaders/dependency_loader_spec.rb +44 -0
  289. data/spec/unit/pops/loaders/loader_paths_spec.rb +66 -0
  290. data/spec/unit/pops/loaders/loaders_spec.rb +105 -0
  291. data/spec/unit/pops/loaders/module_loaders_spec.rb +119 -0
  292. data/spec/unit/pops/loaders/static_loader_spec.rb +46 -0
  293. data/spec/unit/pops/types/type_calculator_spec.rb +145 -10
  294. data/spec/unit/pops/types/type_factory_spec.rb +101 -0
  295. data/spec/unit/pops/types/type_parser_spec.rb +22 -0
  296. data/spec/unit/property/list_spec.rb +9 -1
  297. data/spec/unit/provider/augeas/augeas_spec.rb +58 -11
  298. data/spec/unit/provider/cron/crontab_spec.rb +1 -0
  299. data/spec/unit/provider/cron/parsed_spec.rb +15 -0
  300. data/spec/unit/provider/naginator_spec.rb +14 -0
  301. data/spec/unit/provider/package/apt_spec.rb +78 -64
  302. data/spec/unit/provider/package/gem_spec.rb +15 -0
  303. data/spec/unit/provider/package/rpm_spec.rb +6 -6
  304. data/spec/unit/provider/package/windows_spec.rb +1 -1
  305. data/spec/unit/provider/package/yum_spec.rb +199 -104
  306. data/spec/unit/provider/package/zypper_spec.rb +41 -15
  307. data/spec/unit/provider/service/openbsd_spec.rb +129 -22
  308. data/spec/unit/provider/service/redhat_spec.rb +18 -4
  309. data/spec/unit/provider/service/systemd_spec.rb +5 -9
  310. data/spec/unit/provider/service/upstart_spec.rb +1 -1
  311. data/spec/unit/provider/user/directoryservice_spec.rb +10 -0
  312. data/spec/unit/provider/yumrepo/inifile_spec.rb +171 -15
  313. data/spec/unit/resource/catalog_spec.rb +20 -104
  314. data/spec/unit/resource/type_collection_spec.rb +10 -9
  315. data/spec/unit/settings/config_file_spec.rb +29 -6
  316. data/spec/unit/settings/environment_conf_spec.rb +51 -0
  317. data/spec/unit/settings_spec.rb +97 -12
  318. data/spec/unit/ssl/certificate_authority_spec.rb +2 -0
  319. data/spec/unit/type/augeas_spec.rb +1 -1
  320. data/spec/unit/type/cron_spec.rb +6 -7
  321. data/spec/unit/type/file/checksum_spec.rb +6 -0
  322. data/spec/unit/type/file/content_spec.rb +277 -207
  323. data/spec/unit/type/file_spec.rb +9 -7
  324. data/spec/unit/type/user_spec.rb +106 -18
  325. data/spec/unit/type/yumrepo_spec.rb +8 -0
  326. data/spec/unit/util/checksums_spec.rb +12 -5
  327. data/spec/unit/util/diff_spec.rb +8 -0
  328. data/spec/unit/util/execution_spec.rb +4 -4
  329. data/spec/unit/util/feature_spec.rb +2 -0
  330. data/spec/unit/util/logging_spec.rb +14 -4
  331. data/spec/unit/util/rdoc/parser_spec.rb +5 -4
  332. data/spec/unit/util/rubygems_spec.rb +14 -0
  333. data/tasks/parallel.rake +2 -2
  334. metadata +154 -21
  335. checksums.yaml +0 -7
  336. data/lib/puppet/module_tool/applications/generator.rb +0 -142
  337. data/lib/puppet/module_tool/skeleton.rb +0 -37
  338. data/lib/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +0 -11
  339. data/lib/puppet/module_tool/skeleton/templates/generator/README.erb +0 -16
  340. data/lib/puppet/module_tool/tar/solaris.rb +0 -5
  341. data/spec/fixtures/unit/provider/service/systemd/list_units_services +0 -17
  342. data/spec/unit/module_tool/tar/solaris_spec.rb +0 -22
@@ -836,10 +836,6 @@ describe Puppet::Resource::Catalog, "when converting to pson" do
836
836
  end
837
837
 
838
838
  describe Puppet::Resource::Catalog, "when converting from pson" do
839
- def pson_result_should
840
- Puppet::Resource::Catalog.expects(:new).with { |hash| yield hash }
841
- end
842
-
843
839
  before do
844
840
  @data = {
845
841
  'name' => "myhost"
@@ -849,125 +845,45 @@ describe Puppet::Resource::Catalog, "when converting from pson" do
849
845
  'data' => @data,
850
846
  'metadata' => {}
851
847
  }
852
-
853
- @catalog = Puppet::Resource::Catalog.new("myhost")
854
- Puppet::Resource::Catalog.stubs(:new).returns @catalog
855
- end
856
-
857
- it "should be extended with the PSON utility module" do
858
- Puppet::Resource::Catalog.singleton_class.ancestors.should be_include(Puppet::Util::Pson)
859
848
  end
860
849
 
861
850
  it "should create it with the provided name" do
862
- Puppet::Resource::Catalog.expects(:new).with('myhost').returns @catalog
863
- PSON.parse @pson.to_pson
864
- end
865
-
866
- it "should set the provided version on the catalog if one is set" do
867
851
  @data['version'] = 50
868
- PSON.parse @pson.to_pson
869
- @catalog.version.should == @data['version']
870
- end
871
-
872
- it "should set any provided tags on the catalog" do
873
852
  @data['tags'] = %w{one two}
874
- PSON.parse @pson.to_pson
875
- @catalog.should be_tagged("one")
876
- @catalog.should be_tagged("two")
877
- end
878
-
879
- it "should set any provided classes on the catalog" do
880
853
  @data['classes'] = %w{one two}
881
- PSON.parse @pson.to_pson
882
- @catalog.classes.should == @data['classes']
883
- end
854
+ @data['edges'] = [Puppet::Relationship.new("File[/foo]", "File[/bar]",
855
+ :event => "one",
856
+ :callback => "refresh").to_data_hash]
857
+ @data['resources'] = [Puppet::Resource.new(:file, "/foo").to_data_hash,
858
+ Puppet::Resource.new(:file, "/bar").to_data_hash]
884
859
 
885
- it 'should convert the resources list into resources and add each of them' do
886
- @data['resources'] = [Puppet::Resource.new(:file, "/foo"), Puppet::Resource.new(:file, "/bar")]
887
860
 
888
861
  catalog = PSON.parse @pson.to_pson
889
862
 
890
- catalog.resources.collect(&:ref) == ["File[/foo]", "File[/bar]"]
891
- end
892
-
893
- it 'should convert resources even if they do not include "type" information' do
894
- @data['resources'] = [Puppet::Resource.new(:file, "/foo")]
895
-
896
- @data['resources'][0].expects(:to_pson).returns '{"title":"/foo","tags":["file"],"type":"File"}'
897
-
898
- @catalog.expects(:add_resource).with { |res| res.type == "File" }
899
-
900
- PSON.parse @pson.to_pson
901
- end
902
-
903
- it 'should convert the edges list into edges and add each of them' do
904
- one = Puppet::Relationship.new("osource", "otarget", :event => "one", :callback => "refresh")
905
- two = Puppet::Relationship.new("tsource", "ttarget", :event => "two", :callback => "refresh")
906
-
907
- @data['edges'] = [one, two]
863
+ expect(catalog.name).to eq('myhost')
864
+ expect(catalog.version).to eq(@data['version'])
865
+ expect(catalog).to be_tagged("one")
866
+ expect(catalog).to be_tagged("two")
908
867
 
909
- @catalog.stubs(:resource).returns("eh")
868
+ expect(catalog.classes).to eq(@data['classes'])
869
+ expect(catalog.resources.collect(&:ref)).to eq(["File[/foo]", "File[/bar]"])
910
870
 
911
- @catalog.expects(:add_edge).with { |edge| edge.event == "one" }
912
- @catalog.expects(:add_edge).with { |edge| edge.event == "two" }
913
-
914
- PSON.parse @pson.to_pson
915
- end
916
-
917
- it "should be able to convert relationships that do not include 'type' information" do
918
- one = Puppet::Relationship.new("osource", "otarget", :event => "one", :callback => "refresh")
919
- one.expects(:to_pson).returns "{\"event\":\"one\",\"callback\":\"refresh\",\"source\":\"osource\",\"target\":\"otarget\"}"
920
-
921
- @data['edges'] = [one]
922
-
923
- @catalog.stubs(:resource).returns("eh")
924
-
925
- @catalog.expects(:add_edge).with { |edge| edge.event == "one" }
926
-
927
- PSON.parse @pson.to_pson
928
- end
929
-
930
- it "should set the source and target for each edge to the actual resource" do
931
- edge = Puppet::Relationship.new("source", "target")
932
-
933
- @data['edges'] = [edge]
934
-
935
- @catalog.expects(:resource).with("source").returns("source_resource")
936
- @catalog.expects(:resource).with("target").returns("target_resource")
937
-
938
- @catalog.expects(:add_edge).with { |edge| edge.source == "source_resource" and edge.target == "target_resource" }
939
-
940
- PSON.parse @pson.to_pson
871
+ expect(catalog.edges.collect(&:event)).to eq(["one"])
872
+ expect(catalog.edges[0].source).to eq(catalog.resource(:file, "/foo"))
873
+ expect(catalog.edges[0].target).to eq(catalog.resource(:file, "/bar"))
941
874
  end
942
875
 
943
876
  it "should fail if the source resource cannot be found" do
944
- edge = Puppet::Relationship.new("source", "target")
945
-
946
- @data['edges'] = [edge]
877
+ @data['edges'] = [Puppet::Relationship.new("File[/missing]", "File[/bar]").to_data_hash]
878
+ @data['resources'] = [Puppet::Resource.new(:file, "/bar").to_data_hash]
947
879
 
948
- @catalog.expects(:resource).with("source").returns(nil)
949
- @catalog.stubs(:resource).with("target").returns("target_resource")
950
-
951
- lambda { PSON.parse @pson.to_pson }.should raise_error(ArgumentError)
880
+ expect { PSON.parse @pson.to_pson }.to raise_error(ArgumentError, /Could not find relationship source/)
952
881
  end
953
882
 
954
883
  it "should fail if the target resource cannot be found" do
955
- edge = Puppet::Relationship.new("source", "target")
956
-
957
- @data['edges'] = [edge]
884
+ @data['edges'] = [Puppet::Relationship.new("File[/bar]", "File[/missing]").to_data_hash]
885
+ @data['resources'] = [Puppet::Resource.new(:file, "/bar").to_data_hash]
958
886
 
959
- @catalog.stubs(:resource).with("source").returns("source_resource")
960
- @catalog.expects(:resource).with("target").returns(nil)
961
-
962
- lambda { PSON.parse @pson.to_pson }.should raise_error(ArgumentError)
963
- end
964
-
965
- describe "#title_key_for_ref" do
966
- it "should parse a resource ref string into a pair" do
967
- @catalog.title_key_for_ref("Title[name]").should == ["Title", "name"]
968
- end
969
- it "should parse a resource ref string into a pair, even if there's a newline inside the name" do
970
- @catalog.title_key_for_ref("Title[na\nme]").should == ["Title", "na\nme"]
971
- end
887
+ expect { PSON.parse @pson.to_pson }.to raise_error(ArgumentError, /Could not find relationship target/)
972
888
  end
973
889
  end
@@ -400,18 +400,19 @@ describe Puppet::Resource::TypeCollection do
400
400
  @code.version.should == time.to_i
401
401
  end
402
402
 
403
- it "should use the output of the environment's config_version setting if one is provided" do
404
- @code.environment.stubs(:[]).with(:config_version).returns("/my/foo")
403
+ context "when config_version script is specified" do
404
+ let(:environment) { Puppet::Node::Environment.create(:testing, [], '', '/my/foo') }
405
405
 
406
- Puppet::Util::Execution.expects(:execute).with(["/my/foo"]).returns "output\n"
407
- @code.version.should == "output"
408
- end
406
+ it "should use the output of the environment's config_version setting if one is provided" do
407
+ Puppet::Util::Execution.expects(:execute).with(["/my/foo"]).returns "output\n"
408
+ @code.version.should == "output"
409
+ end
409
410
 
410
- it "should raise a puppet parser error if executing config_version fails" do
411
- @code.environment.stubs(:[]).with(:config_version).returns("test")
412
- Puppet::Util::Execution.expects(:execute).raises(Puppet::ExecutionFailure.new("msg"))
411
+ it "should raise a puppet parser error if executing config_version fails" do
412
+ Puppet::Util::Execution.expects(:execute).raises(Puppet::ExecutionFailure.new("msg"))
413
413
 
414
- lambda { @code.version }.should raise_error(Puppet::ParseError)
414
+ lambda { @code.version }.should raise_error(Puppet::ParseError)
415
+ end
415
416
  end
416
417
  end
417
418
  end
@@ -5,12 +5,6 @@ require 'puppet/settings/config_file'
5
5
  describe Puppet::Settings::ConfigFile do
6
6
  NOTHING = {}
7
7
 
8
- def section_containing(data)
9
- meta = data[:meta] || {}
10
- values = data.reject { |key, _| key == :meta }
11
- values.merge({ :_meta => Hash[values.keys.collect { |key| [key, meta[key] || {}] }] })
12
- end
13
-
14
8
  def the_parse_of(*lines)
15
9
  config.parse_file(filename, lines.join("\n"))
16
10
  end
@@ -130,6 +124,35 @@ badline
130
124
  "Illegal section 'global_defaults' in config file #{filename} at line 2"
131
125
  end
132
126
 
127
+ it "issues a single deprecation warning when any section other than main, master, agent or user is parsed" do
128
+ text = "[legacy]
129
+ one = 'e'
130
+ two = 'f'
131
+ [also_deprecated]
132
+ one = 'g'
133
+ "
134
+
135
+ config.parse_file(filename, text)
136
+
137
+ expect(@logs.map(&:message).grep(/Sections other than/)).to have_exactly(1).item
138
+ end
139
+
140
+ it "does not issue a deprecation warning for main, master, agent or user sections" do
141
+ text = "[main]
142
+ one = 'a'
143
+ [master]
144
+ one = 'b'
145
+ [agent]
146
+ one = 'c'
147
+ [user]
148
+ one = 'd'
149
+ "
150
+
151
+ Puppet.expects(:deprecation_warning).never
152
+
153
+ config.parse_file(filename, text)
154
+ end
155
+
133
156
  it "transforms values with the given function" do
134
157
  config = Puppet::Settings::ConfigFile.new(Proc.new { |value| value + " changed" })
135
158
 
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+ require 'puppet/settings/environment_conf.rb'
3
+
4
+ describe Puppet::Settings::EnvironmentConf do
5
+
6
+ context "with config" do
7
+ let(:config) { stub(:config) }
8
+ let(:envconf) { Puppet::Settings::EnvironmentConf.new("/some/direnv", config, ["/global/modulepath"]) }
9
+
10
+ it "reads a modulepath from config and does not include global_module_path" do
11
+ config.expects(:setting).with(:modulepath).returns(
12
+ mock('setting', :value => '/some/modulepath')
13
+ )
14
+ expect(envconf.modulepath).to eq(File.expand_path('/some/modulepath'))
15
+ end
16
+
17
+ it "reads a manifest from config" do
18
+ config.expects(:setting).with(:manifest).returns(
19
+ mock('setting', :value => '/some/manifest')
20
+ )
21
+ expect(envconf.manifest).to eq(File.expand_path('/some/manifest'))
22
+ end
23
+
24
+ it "reads a config_version from config" do
25
+ config.expects(:setting).with(:config_version).returns(
26
+ mock('setting', :value => '/some/version.sh')
27
+ )
28
+ expect(envconf.config_version).to eq(File.expand_path('/some/version.sh'))
29
+ end
30
+
31
+ end
32
+
33
+ context "without config" do
34
+ let(:envconf) { Puppet::Settings::EnvironmentConf.new("/some/direnv", nil, ["/global/modulepath"]) }
35
+
36
+ it "returns a default modulepath when config has none, with global_module_path" do
37
+ expect(envconf.modulepath).to eq(
38
+ [File.expand_path('/some/direnv/modules'),
39
+ File.expand_path('/global/modulepath')].join(File::PATH_SEPARATOR)
40
+ )
41
+ end
42
+
43
+ it "returns a default manifest when config has none" do
44
+ expect(envconf.manifest).to eq(File.expand_path('/some/direnv/manifests'))
45
+ end
46
+
47
+ it "returns nothing for config_version when config has none" do
48
+ expect(envconf.config_version).to be_nil
49
+ end
50
+ end
51
+ end
@@ -755,7 +755,7 @@ describe Puppet::Settings do
755
755
 
756
756
  Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
757
757
 
758
- File.expects(:read).with(myfile).returns "[main]"
758
+ Puppet::FileSystem.expects(:read).with(myfile).returns "[main]"
759
759
 
760
760
  @settings.send(:parse_config_files)
761
761
  end
@@ -1002,22 +1002,107 @@ describe Puppet::Settings do
1002
1002
  @settings[:myarg].should == ""
1003
1003
  end
1004
1004
 
1005
- describe "and when reading a non-positive filetimeout value from the config file" do
1006
- before do
1007
- @settings.define_settings :foo, :filetimeout => { :default => 5, :desc => "eh" }
1005
+ describe "deprecations" do
1006
+ context "in puppet.conf" do
1007
+
1008
+ def assert_puppet_conf_deprecation(setting, matches)
1009
+ Puppet.expects(:deprecation_warning).with(regexp_matches(matches), anything)
1010
+
1011
+ val = "/you/can/set/this/but/will/get/warning"
1012
+ text = "[main]
1013
+ #{setting}=#{val}
1014
+ "
1015
+ Puppet.settings.parse_config(text)
1016
+ end
1017
+
1018
+ it "warns when manifest is set" do
1019
+ assert_puppet_conf_deprecation('manifest', /manifest.*puppet.conf/)
1020
+ end
1021
+
1022
+ it "warns when modulepath is set" do
1023
+ assert_puppet_conf_deprecation('modulepath', /modulepath.*puppet.conf/)
1024
+ end
1025
+
1026
+ it "warns when config_version is set" do
1027
+ assert_puppet_conf_deprecation('config_version', /config_version.*puppet.conf/)
1028
+ end
1029
+
1030
+ it "warns when manifestdir is set" do
1031
+ assert_puppet_conf_deprecation('manifestdir', /Setting manifestdir.*is.*deprecated/)
1032
+ end
1033
+
1034
+ it "warns when templatedir is set" do
1035
+ assert_puppet_conf_deprecation('templatedir', /Setting templatedir.*is.*deprecated/)
1036
+ end
1037
+ end
1038
+
1039
+ context "on the command line" do
1040
+ def assert_command_line_deprecation(setting, message)
1041
+ Puppet.expects(:deprecation_warning).with(message, anything)
1042
+
1043
+ args = ["--#{setting}", "/some/value"]
1044
+ Puppet.settings.send(:parse_global_options, args)
1045
+ end
1046
+
1047
+ def assert_command_line_not_deprecated(setting)
1048
+ Puppet.expects(:deprecation_warning).never
1049
+
1050
+ args = ["--#{setting}", "/some/value"]
1051
+ Puppet.settings.send(:parse_global_options, args)
1052
+ end
1053
+
1054
+ it "does not warn when manifest is set on command line" do
1055
+ assert_command_line_not_deprecated('manifest')
1056
+ end
1057
+
1058
+ it "does not warn when modulepath is set on command line" do
1059
+ assert_command_line_not_deprecated('modulepath')
1060
+ end
1061
+
1062
+ it "does not warn when config_version is set on command line" do
1063
+ assert_command_line_not_deprecated('config_version')
1064
+ end
1065
+
1066
+ it "warns when manifestdir is set on command line" do
1067
+ assert_command_line_deprecation('manifestdir', "Setting manifestdir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1068
+ end
1069
+
1070
+ it "warns when templatedir is set on command line" do
1071
+ assert_command_line_deprecation('templatedir', "Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1072
+ end
1073
+ end
1074
+
1075
+ context "as settings in the code base" do
1076
+ def assert_accessing_setting_is_deprecated(setting)
1077
+ Puppet.expects(:deprecation_warning).with("Accessing '#{setting}' as a setting is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1078
+ Puppet.expects(:deprecation_warning).with("Modifying '#{setting}' as a setting is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1079
+ Puppet[setting.intern] = apath = File.expand_path('foo')
1080
+ expect(Puppet[setting.intern]).to eq(apath)
1081
+ end
1082
+
1083
+ it "warns when attempt to access a 'manifest' setting" do
1084
+ assert_accessing_setting_is_deprecated('manifest')
1085
+ end
1086
+
1087
+ it "warns when attempt to access a 'modulepath' setting" do
1088
+ assert_accessing_setting_is_deprecated('modulepath')
1089
+ end
1090
+ it "warns when attempt to access a 'config_version' setting" do
1091
+ assert_accessing_setting_is_deprecated('config_version')
1092
+ end
1093
+
1094
+ it "warns when attempt to access a 'manifestdir' setting" do
1095
+ assert_accessing_setting_is_deprecated('manifestdir')
1096
+ end
1097
+
1098
+ it "warns when attempt to access a 'templatedir' setting" do
1099
+ assert_accessing_setting_is_deprecated('templatedir')
1100
+ end
1008
1101
 
1009
- somefile = "/some/file"
1010
- text = "[main]
1011
- filetimeout = -1
1012
- "
1013
- File.expects(:read).with(somefile).returns(text)
1014
- File.expects(:expand_path).with(somefile).returns somefile
1015
- @settings[:config] = somefile
1016
1102
  end
1017
1103
  end
1018
1104
  end
1019
1105
 
1020
-
1021
1106
  describe "when there are multiple config files" do
1022
1107
  let(:main_config_text) { "[main]\none = main\ntwo = main2" }
1023
1108
  let(:user_config_text) { "[main]\none = user\n" }
@@ -978,6 +978,7 @@ end
978
978
 
979
979
  require 'puppet/indirector/memory'
980
980
 
981
+ module CertificateAuthorityGenerateSpecs
981
982
  describe "CertificateAuthority.generate" do
982
983
 
983
984
  def expect_to_increment_serial_file
@@ -1103,3 +1104,4 @@ describe "CertificateAuthority.generate" do
1103
1104
  end
1104
1105
  end
1105
1106
  end
1107
+ end
@@ -34,7 +34,7 @@ describe augeas do
34
34
  end
35
35
 
36
36
  properties = [:returns]
37
- params = [:name, :context, :onlyif, :changes, :root, :load_path, :type_check]
37
+ params = [:name, :context, :onlyif, :changes, :root, :load_path, :type_check, :show_diff]
38
38
 
39
39
  properties.each do |property|
40
40
  it "should have a #{property} property" do
@@ -3,13 +3,17 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Puppet::Type.type(:cron), :unless => Puppet.features.microsoft_windows? do
6
- before :all do
6
+ let(:simple_provider) do
7
7
  @provider_class = described_class.provide(:simple) { mk_resource_methods }
8
8
  @provider_class.stubs(:suitable?).returns true
9
+ @provider_class
10
+ end
11
+
12
+ before :each do
9
13
  described_class.stubs(:defaultprovider).returns @provider_class
10
14
  end
11
15
 
12
- after :all do
16
+ after :each do
13
17
  described_class.unprovide(:simple)
14
18
  end
15
19
 
@@ -526,11 +530,6 @@ describe Puppet::Type.type(:cron), :unless => Puppet.features.microsoft_windows?
526
530
  end
527
531
  end
528
532
 
529
- it "should require a command when adding an entry" do
530
- entry = described_class.new(:name => "test_entry", :ensure => :present)
531
- expect { entry.value(:command) }.to raise_error(Puppet::Error, /No command/)
532
- end
533
-
534
533
  it "should not require a command when removing an entry" do
535
534
  entry = described_class.new(:name => "test_entry", :ensure => :absent)
536
535
  entry.value(:command).should == nil