puppet 4.8.2-x86-mingw32 → 4.9.0-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 (348) hide show
  1. checksums.yaml +15 -0
  2. data/CONTRIBUTING.md +25 -1
  3. data/Gemfile +6 -0
  4. data/Rakefile +1 -0
  5. data/ext/project_data.yaml +5 -1
  6. data/ext/windows/service/daemon.rb +2 -1
  7. data/install.rb +43 -6
  8. data/lib/hiera/puppet_function.rb +15 -17
  9. data/lib/hiera/scope.rb +12 -14
  10. data/lib/puppet.rb +52 -0
  11. data/lib/puppet/application/face_base.rb +4 -0
  12. data/lib/puppet/application/lookup.rb +4 -2
  13. data/lib/puppet/application/resource.rb +1 -1
  14. data/lib/puppet/data_providers.rb +6 -3
  15. data/lib/puppet/data_providers/data_adapter.rb +6 -0
  16. data/lib/puppet/data_providers/data_function_support.rb +7 -0
  17. data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
  18. data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
  19. data/lib/puppet/data_providers/hiera_config.rb +31 -10
  20. data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
  21. data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
  22. data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
  23. data/lib/puppet/data_providers/hiera_support.rb +6 -0
  24. data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
  25. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
  26. data/lib/puppet/defaults.rb +25 -4
  27. data/lib/puppet/face/ca.rb +2 -0
  28. data/lib/puppet/face/certificate_request.rb +2 -0
  29. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  30. data/lib/puppet/face/file.rb +3 -0
  31. data/lib/puppet/face/help.rb +19 -17
  32. data/lib/puppet/face/help/face.erb +3 -0
  33. data/lib/puppet/face/key.rb +1 -0
  34. data/lib/puppet/face/man.rb +4 -2
  35. data/lib/puppet/face/module/generate.rb +1 -1
  36. data/lib/puppet/face/status.rb +2 -0
  37. data/lib/puppet/feature/base.rb +9 -2
  38. data/lib/puppet/feature/hocon.rb +3 -0
  39. data/lib/puppet/file_system.rb +15 -3
  40. data/lib/puppet/file_system/windows.rb +8 -0
  41. data/lib/puppet/forge.rb +6 -6
  42. data/lib/puppet/forge/repository.rb +1 -2
  43. data/lib/puppet/functions/binary_file.rb +4 -10
  44. data/lib/puppet/functions/hiera_array.rb +1 -1
  45. data/lib/puppet/functions/hiera_include.rb +1 -1
  46. data/lib/puppet/functions/hocon_data.rb +24 -0
  47. data/lib/puppet/functions/json_data.rb +18 -0
  48. data/lib/puppet/functions/yaml_data.rb +21 -0
  49. data/lib/puppet/generate/type.rb +1 -1
  50. data/lib/puppet/graph/simple_graph.rb +4 -2
  51. data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
  52. data/lib/puppet/indirector/request.rb +5 -1
  53. data/lib/puppet/interface.rb +14 -2
  54. data/lib/puppet/interface/face_collection.rb +1 -1
  55. data/lib/puppet/module.rb +14 -2
  56. data/lib/puppet/module_tool.rb +4 -4
  57. data/lib/puppet/module_tool/applications/builder.rb +3 -2
  58. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  59. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  60. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  61. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  62. data/lib/puppet/module_tool/metadata.rb +1 -1
  63. data/lib/puppet/network/http/connection.rb +2 -0
  64. data/lib/puppet/network/http/webrick.rb +2 -1
  65. data/lib/puppet/parser/functions/hiera.rb +14 -0
  66. data/lib/puppet/parser/functions/hiera_array.rb +14 -0
  67. data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
  68. data/lib/puppet/parser/functions/hiera_include.rb +14 -0
  69. data/lib/puppet/parser/scope.rb +14 -20
  70. data/lib/puppet/plugins/data_providers.rb +2 -0
  71. data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
  72. data/lib/puppet/plugins/data_providers/registry.rb +2 -36
  73. data/lib/puppet/pops.rb +6 -9
  74. data/lib/puppet/pops/adaptable.rb +0 -3
  75. data/lib/puppet/pops/binder/producers.rb +3 -3
  76. data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
  77. data/lib/puppet/pops/evaluator/closure.rb +1 -1
  78. data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
  79. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  80. data/lib/puppet/pops/issues.rb +4 -0
  81. data/lib/puppet/pops/label_provider.rb +14 -0
  82. data/lib/puppet/pops/loader/loader_paths.rb +3 -1
  83. data/lib/puppet/pops/loader/module_loaders.rb +21 -7
  84. data/lib/puppet/pops/loader/typed_name.rb +0 -2
  85. data/lib/puppet/pops/loaders.rb +31 -12
  86. data/lib/puppet/pops/lookup.rb +4 -3
  87. data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
  88. data/lib/puppet/pops/lookup/context.rb +121 -71
  89. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  90. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
  91. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
  92. data/lib/puppet/pops/lookup/data_provider.rb +102 -0
  93. data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
  94. data/lib/puppet/pops/lookup/explainer.rb +122 -82
  95. data/lib/puppet/pops/lookup/function_provider.rb +82 -0
  96. data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
  97. data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
  98. data/lib/puppet/pops/lookup/interpolation.rb +56 -35
  99. data/lib/puppet/pops/lookup/invocation.rb +179 -101
  100. data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
  101. data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
  102. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  103. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
  104. data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
  105. data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
  106. data/lib/puppet/pops/merge_strategy.rb +120 -39
  107. data/lib/puppet/pops/parser/egrammar.ra +2 -0
  108. data/lib/puppet/pops/parser/eparser.rb +816 -808
  109. data/lib/puppet/pops/parser/locator.rb +3 -3
  110. data/lib/puppet/pops/parser/slurp_support.rb +4 -3
  111. data/lib/puppet/pops/pcore.rb +21 -12
  112. data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
  113. data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
  114. data/lib/puppet/pops/serialization/deserializer.rb +17 -4
  115. data/lib/puppet/pops/serialization/extension.rb +37 -8
  116. data/lib/puppet/pops/serialization/object.rb +14 -6
  117. data/lib/puppet/pops/serialization/rgen.rb +2 -1
  118. data/lib/puppet/pops/serialization/serializer.rb +30 -7
  119. data/lib/puppet/pops/types/implementation_registry.rb +1 -1
  120. data/lib/puppet/pops/types/p_object_type.rb +55 -12
  121. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
  122. data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
  123. data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
  124. data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
  125. data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
  126. data/lib/puppet/pops/types/recursion_guard.rb +64 -20
  127. data/lib/puppet/pops/types/ruby_generator.rb +10 -0
  128. data/lib/puppet/pops/types/type_calculator.rb +23 -13
  129. data/lib/puppet/pops/types/type_factory.rb +20 -9
  130. data/lib/puppet/pops/types/type_formatter.rb +37 -17
  131. data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
  132. data/lib/puppet/pops/types/type_parser.rb +6 -0
  133. data/lib/puppet/pops/types/types.rb +225 -132
  134. data/lib/puppet/pops/validation.rb +1 -1
  135. data/lib/puppet/pops/validation/checker4_0.rb +12 -2
  136. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  137. data/lib/puppet/pops/visitor.rb +4 -3
  138. data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
  139. data/lib/puppet/provider/nameservice.rb +15 -0
  140. data/lib/puppet/provider/package/appdmg.rb +1 -1
  141. data/lib/puppet/provider/package/dnf.rb +1 -1
  142. data/lib/puppet/provider/package/pkg.rb +1 -1
  143. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  144. data/lib/puppet/provider/package/pkgng.rb +1 -1
  145. data/lib/puppet/provider/package/rpm.rb +2 -2
  146. data/lib/puppet/provider/service/smf.rb +3 -3
  147. data/lib/puppet/provider/service/systemd.rb +5 -1
  148. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  149. data/lib/puppet/provider/user/user_role_add.rb +15 -0
  150. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  151. data/lib/puppet/provider/zone/solaris.rb +4 -1
  152. data/lib/puppet/reference/indirection.rb +1 -1
  153. data/lib/puppet/resource.rb +2 -3
  154. data/lib/puppet/resource/catalog.rb +12 -4
  155. data/lib/puppet/resource/type.rb +3 -3
  156. data/lib/puppet/settings.rb +1 -1
  157. data/lib/puppet/settings/config_file.rb +2 -1
  158. data/lib/puppet/settings/directory_setting.rb +6 -0
  159. data/lib/puppet/settings/environment_conf.rb +6 -2
  160. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  161. data/lib/puppet/settings/file_setting.rb +10 -0
  162. data/lib/puppet/ssl/certificate_authority.rb +13 -2
  163. data/lib/puppet/ssl/host.rb +23 -1
  164. data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
  165. data/lib/puppet/type/user.rb +16 -3
  166. data/lib/puppet/util.rb +1 -0
  167. data/lib/puppet/util/execution.rb +3 -3
  168. data/lib/puppet/util/filetype.rb +11 -5
  169. data/lib/puppet/util/logging.rb +2 -1
  170. data/lib/puppet/util/network_device/config.rb +1 -1
  171. data/lib/puppet/util/plist.rb +6 -0
  172. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  173. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  174. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  175. data/lib/puppet/util/windows/adsi.rb +15 -12
  176. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  177. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  178. data/lib/puppet/vendor/require_vendored.rb +0 -1
  179. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  180. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  181. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  182. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  183. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
  184. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  185. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  186. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  187. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  188. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  189. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  190. data/lib/puppet/version.rb +1 -1
  191. data/lib/semver.rb +19 -12
  192. data/locales/config.yaml +29 -0
  193. data/locales/puppet.pot +79 -0
  194. data/man/man5/puppet.conf.5 +1 -1
  195. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
  196. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
  197. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
  198. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  199. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  200. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  201. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  202. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  203. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
  204. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  205. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  206. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  207. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  208. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  209. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  210. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  211. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  212. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  213. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
  214. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
  215. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  216. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  217. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  218. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
  219. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
  220. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
  221. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
  222. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
  223. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
  224. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
  225. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
  226. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
  227. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
  228. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
  229. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
  230. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
  231. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
  232. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
  233. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
  234. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
  235. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
  236. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
  237. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
  238. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
  239. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
  240. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
  241. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
  242. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
  243. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
  244. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
  245. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  246. data/spec/integration/application/apply_spec.rb +88 -2
  247. data/spec/integration/application/lookup_spec.rb +155 -0
  248. data/spec/integration/data_binding_spec.rb +5 -5
  249. data/spec/integration/defaults_spec.rb +13 -0
  250. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  251. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  252. data/spec/integration/test/test_helper_spec.rb +6 -2
  253. data/spec/integration/transaction_spec.rb +74 -0
  254. data/spec/integration/util/execution_spec.rb +8 -0
  255. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  256. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  257. data/spec/lib/puppet_spec/unindent.rb +2 -2
  258. data/spec/unit/application/face_base_spec.rb +16 -0
  259. data/spec/unit/application/lookup_spec.rb +262 -227
  260. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  261. data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
  262. data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
  263. data/spec/unit/defaults_spec.rb +1 -1
  264. data/spec/unit/face/ca_spec.rb +10 -0
  265. data/spec/unit/face/certificate_request_spec.rb +10 -0
  266. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  267. data/spec/unit/face/file_spec.rb +4 -0
  268. data/spec/unit/face/help_spec.rb +17 -0
  269. data/spec/unit/face/key_spec.rb +10 -0
  270. data/spec/unit/face/status_spec.rb +10 -0
  271. data/spec/unit/file_system_spec.rb +143 -6
  272. data/spec/unit/functions/binary_file_spec.rb +1 -1
  273. data/spec/unit/functions/hiera_spec.rb +257 -47
  274. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  275. data/spec/unit/functions/lookup_spec.rb +1319 -608
  276. data/spec/unit/functions/new_spec.rb +3 -3
  277. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  278. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  279. data/spec/unit/hiera/scope_spec.rb +4 -4
  280. data/spec/unit/indirector/request_spec.rb +9 -0
  281. data/spec/unit/interface_spec.rb +27 -0
  282. data/spec/unit/man_spec.rb +1 -1
  283. data/spec/unit/module_spec.rb +1 -1
  284. data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
  285. data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
  286. data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
  287. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  288. data/spec/unit/module_tool_spec.rb +3 -3
  289. data/spec/unit/network/http/connection_spec.rb +10 -0
  290. data/spec/unit/network/http/webrick_spec.rb +1 -1
  291. data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
  292. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
  293. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  294. data/spec/unit/pops/lookup/context_spec.rb +45 -16
  295. data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
  296. data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
  297. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  298. data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
  299. data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
  300. data/spec/unit/pops/serialization/packer_spec.rb +4 -23
  301. data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
  302. data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
  303. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
  304. data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
  305. data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
  306. data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
  307. data/spec/unit/pops/types/type_factory_spec.rb +3 -3
  308. data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
  309. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
  310. data/spec/unit/pops/types/types_spec.rb +25 -2
  311. data/spec/unit/pops/validator/validator_spec.rb +60 -4
  312. data/spec/unit/provider/nameservice_spec.rb +42 -0
  313. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  314. data/spec/unit/provider/package/pkg_spec.rb +22 -0
  315. data/spec/unit/provider/package/pkgng_spec.rb +12 -0
  316. data/spec/unit/provider/package/rpm_spec.rb +8 -8
  317. data/spec/unit/provider/service/smf_spec.rb +13 -11
  318. data/spec/unit/provider/service/systemd_spec.rb +8 -1
  319. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  320. data/spec/unit/puppet_spec.rb +14 -0
  321. data/spec/unit/resource/catalog_spec.rb +15 -9
  322. data/spec/unit/resource_spec.rb +20 -17
  323. data/spec/unit/semver_spec.rb +14 -0
  324. data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
  325. data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
  326. data/spec/unit/type/user_spec.rb +32 -6
  327. data/spec/unit/util/filetype_spec.rb +3 -3
  328. data/spec/unit/util/yaml_spec.rb +1 -1
  329. data/spec/unit/util_spec.rb +10 -2
  330. data/tasks/i18n.rake +20 -0
  331. metadata +2661 -2607
  332. data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
  333. data/lib/puppet/vendor/load_semantic.rb +0 -1
  334. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  335. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  336. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  337. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
  338. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
  339. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  340. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  341. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  342. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  343. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  344. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  345. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  346. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  347. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  348. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
@@ -1,6 +1,8 @@
1
1
  # A DataAdapter adapts an object with a Hash of data
2
2
  #
3
+ # TODO: API 5.0, remove this class
3
4
  # @api private
5
+ # @deprecated
4
6
  class Puppet::DataProviders::DataAdapter < Puppet::Pops::Adaptable::Adapter
5
7
  include Puppet::Plugins::DataProviders
6
8
 
@@ -11,6 +13,10 @@ class Puppet::DataProviders::DataAdapter < Puppet::Pops::Adaptable::Adapter
11
13
  end
12
14
 
13
15
  def initialize
16
+ unless Puppet[:strict] == :off
17
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::DataAdapter',
18
+ 'Puppet::DataProviders::DataAdapter is deprecated and will be removed in the next major version of Puppet')
19
+ end
14
20
  @data = {}
15
21
  end
16
22
 
@@ -1,9 +1,16 @@
1
+ # TODO: API 5.0, remove this module
1
2
  # @api private
3
+ # @deprecated
2
4
  module Puppet::DataProviders::DataFunctionSupport
3
5
  def initialize_data(data_key, lookup_invocation)
4
6
  name = "#{data_key}::data"
5
7
  scope = lookup_invocation.scope
6
8
  Puppet::Util::Profiler.profile("Called #{name}", [ :functions, name ]) do
9
+ unless Puppet[:strict] == :off
10
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::DataFunctionSupport',
11
+ 'Puppet::DataProviders::DataFunctionSupport is deprecated and will be removed in the next major version of Puppet')
12
+ end
13
+
7
14
  loader = loader(data_key, scope)
8
15
  if loader && func = loader.load(:function, name)
9
16
  # function found, call without arguments, must return a Hash
@@ -8,11 +8,18 @@ module Puppet::DataProviders; end
8
8
  # The function is called on demand, and is associated with the compiler via an Adapter. This ensures that the data
9
9
  # is only produced once per compilation.
10
10
  #
11
+ # TODO: API 5.0, remove this class
11
12
  # @api private
13
+ # @deprecated
12
14
  class Puppet::DataProviders::FunctionEnvDataProvider < Puppet::Plugins::DataProviders::EnvironmentDataProvider
13
15
  include Puppet::DataProviders::DataFunctionSupport
14
16
 
15
17
  def loader(key, scope)
18
+ unless Puppet[:strict] == :off
19
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::FunctionEnvDataProvider',
20
+ 'Puppet::DataProviders::FunctionEnvDataProvider is deprecated and will be removed in the next major version of Puppet')
21
+ end
22
+
16
23
  # This loader allows the data function to be private or public in the environment
17
24
  scope.compiler.loaders.private_environment_loader
18
25
  end
@@ -8,11 +8,17 @@ module Puppet::DataProviders; end
8
8
  # The function is called on demand, and is associated with the compiler via an Adapter. This ensures that the data
9
9
  # is only produced once per compilation.
10
10
  #
11
+ # TODO: API 5.0, remove this class
11
12
  # @api private
13
+ # @deprecated
12
14
  class Puppet::DataProviders::FunctionModuleDataProvider < Puppet::Plugins::DataProviders::ModuleDataProvider
13
15
  include Puppet::DataProviders::DataFunctionSupport
14
16
 
15
17
  def loader(key, scope)
18
+ unless Puppet[:strict] == :off
19
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::FunctionModuleDataProvider',
20
+ 'Puppet::DataProviders::FunctionModuleDataProvider is deprecated and will be removed in the next major version of Puppet')
21
+ end
16
22
  scope.compiler.loaders.private_loader_for_module(key)
17
23
  end
18
24
  end
@@ -1,11 +1,13 @@
1
- require 'pathname'
2
- require 'puppet/pops/lookup/interpolation'
1
+ require 'puppet/plugins/data_providers'
3
2
 
3
+ # @api private
4
4
  module Puppet::DataProviders
5
+ # TODO: API 5.0, remove this class
5
6
  # @api private
7
+ # @deprecated
6
8
  class HieraConfig
7
9
  include Puppet::Plugins::DataProviders
8
- include Puppet::Pops::Lookup::Interpolation
10
+ include Puppet::Pops::Lookup::LocationResolver
9
11
 
10
12
  DEFAULT_CONFIG = {
11
13
  'version' => 4,
@@ -33,6 +35,11 @@ module Puppet::DataProviders
33
35
  end
34
36
  end
35
37
 
38
+ def self.config_exist?(config_root)
39
+ config_path = config_root + 'hiera.yaml'
40
+ config_path.exist?
41
+ end
42
+
36
43
  def self.create_config_type
37
44
  hierarchy_elem_type_base = 'Struct[{'\
38
45
  'backend=>String[1],'\
@@ -58,6 +65,10 @@ module Puppet::DataProviders
58
65
  # @param config_root [Pathname] Absolute path to the configuration root
59
66
  # @api public
60
67
  def initialize(config_root)
68
+ unless Puppet[:strict] == :off
69
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::HieraConfig',
70
+ "Use of class Puppet::DataProviders::HieraConfig' is deprecated. Puppet::Pops::Lookup::HieraConfig should be used instead", config_path.to_s)
71
+ end
61
72
  @config_root = config_root
62
73
  @config_path = config_root + 'hiera.yaml'
63
74
  if @config_path.exist?
@@ -92,7 +103,7 @@ module Puppet::DataProviders
92
103
  data_providers = {}
93
104
  @config['hierarchy'].each do |he|
94
105
  name = he['name']
95
- raise Puppet::DataBinding::LookupError, "#{path}: Name '#{name}' defined more than once" if data_providers.include?(name)
106
+ raise Puppet::DataBinding::LookupError, "#{@config_path}: Name '#{name}' defined more than once" if data_providers.include?(name)
96
107
  original_paths = he['paths']
97
108
  if original_paths.nil?
98
109
  single_path = he['path']
@@ -100,17 +111,27 @@ module Puppet::DataProviders
100
111
  original_paths = [single_path]
101
112
  end
102
113
  paths = original_paths.map { |path| interpolate(path, lookup_invocation, false)}
103
- provider_name = he['backend']
104
- provider_factory = injector.lookup(nil, service_type, PATH_BASED_DATA_PROVIDER_FACTORIES_KEY)[provider_name]
105
- raise Puppet::DataBinding::LookupError, "#{@config_path}: No data provider is registered for backend '#{provider_name}' " unless provider_factory
106
-
107
114
  datadir = @config_root + (he['datadir'] || default_datadir)
108
- data_providers[name] = create_data_provider(parent_data_provider, provider_factory, name,
109
- provider_factory.resolve_paths(datadir, original_paths, paths, lookup_invocation))
115
+ provider_name = he['backend']
116
+ data_providers[name] = case provider_name
117
+ when 'json', 'yaml'
118
+ Puppet::Pops::Lookup::DataHashFunctionProvider.new(name, parent_data_provider, "#{provider_name}_data", {},
119
+ resolve_paths(datadir, original_paths, lookup_invocation, ".#{provider_name}"))
120
+ else
121
+ # TODO: Remove support for injected provider factories
122
+ paths = original_paths.map { |path| interpolate(path, lookup_invocation, false)}
123
+ provider_factory = injector.lookup(nil, service_type, PATH_BASED_DATA_PROVIDER_FACTORIES_KEY)[provider_name]
124
+ raise Puppet::DataBinding::LookupError, "#{@config_path}: No data provider is registered for backend '#{provider_name}' " unless provider_factory
125
+ create_data_provider(parent_data_provider, provider_factory, name, provider_factory.resolve_paths(datadir, original_paths, paths, lookup_invocation))
126
+ end
110
127
  end
111
128
  data_providers.values
112
129
  end
113
130
 
131
+ def name
132
+ "hiera version #{version}"
133
+ end
134
+
114
135
  def create_data_provider(parent_data_provider, provider_factory, name, resolved_paths)
115
136
  provider_factory_version = provider_factory.respond_to?(:version) ? provider_factory.version : 1
116
137
  if provider_factory_version == 1
@@ -2,7 +2,9 @@
2
2
  require_relative 'hiera_support'
3
3
 
4
4
  module Puppet::DataProviders
5
+ # TODO: API 5.0, remove this class
5
6
  # @api private
7
+ # @deprecated
6
8
  class HieraEnvDataProvider < Puppet::Plugins::DataProviders::EnvironmentDataProvider
7
9
  include HieraSupport
8
10
 
@@ -12,6 +14,10 @@ module Puppet::DataProviders
12
14
  # @param scope [Puppet::Parser::Scope] the parser scope where the environment is found
13
15
  # @return [Pathname] Path to root of the environment
14
16
  def provider_root(_, scope)
17
+ unless Puppet[:strict] == :off
18
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::HieraEnvDataProvider',
19
+ 'Puppet::DataProviders::HieraEnvDataProvider is deprecated and will be removed in the next major version of Puppet')
20
+ end
15
21
  Pathname.new(scope.environment.configuration.path_to_env)
16
22
  end
17
23
  protected :provider_root
@@ -1,3 +1,4 @@
1
+ # TODO: API 5.0, remove this module
1
2
  # @deprecated Moved to Puppet::Pops::Lookup::Interpolation
2
3
  module Puppet::DataProviders::HieraInterpolate
3
4
  include Puppet::Pops::Lookup::Interpolation
@@ -15,6 +16,6 @@ module Puppet::DataProviders::HieraInterpolate
15
16
  Puppet.warn_once(:deprecation, 'HieraInterpolate#qualified_lookup', msg)
16
17
  end
17
18
  end
18
- sub_lookup('<unknown key>', Puppet::Pops::Lookup::Invocation.new(nil), segments, value)
19
+ sub_lookup('<unknown key>', Puppet::Pops::Lookup::Invocation.current, segments, value)
19
20
  end
20
21
  end
@@ -2,7 +2,9 @@
2
2
  require_relative 'hiera_support'
3
3
 
4
4
  module Puppet::DataProviders
5
+ # TODO: API 5.0, remove this class
5
6
  # @api private
7
+ # @deprecated
6
8
  class HieraModuleDataProvider < Puppet::Plugins::DataProviders::ModuleDataProvider
7
9
  include HieraSupport
8
10
 
@@ -14,6 +16,10 @@ module Puppet::DataProviders
14
16
  # @raise [Puppet::DataBinder::LookupError] if the given module is can not be found
15
17
  #
16
18
  def provider_root(module_name, scope)
19
+ unless Puppet[:strict] == :off
20
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::HieraModuleDataProvider',
21
+ 'Puppet::DataProviders::HieraModuleDataProvider is deprecated and will be removed in the next major version of Puppet')
22
+ end
17
23
  env = scope.environment
18
24
  mod = env.modules.find { |m| m.name == module_name }
19
25
  raise Puppet::DataBinder::LookupError, "Environment '#{env.name}', cannot find module '#{module_name}'" unless mod
@@ -1,6 +1,8 @@
1
1
  require_relative 'hiera_config'
2
2
 
3
+ # TODO: API 5.0, remove this module
3
4
  # @api private
5
+ # @deprecated
4
6
  module Puppet::DataProviders::HieraSupport
5
7
  def config_path
6
8
  @hiera_config.nil? ? 'not yet configured' : @hiera_config.config_path
@@ -17,6 +19,10 @@ module Puppet::DataProviders::HieraSupport
17
19
  # @param lookup_invocation [Puppet::Pops::Lookup::Invocation] The current lookup invocation
18
20
  # @param merge [Puppet::Pops::MergeStrategy,String,Hash<String,Object>,nil] Merge strategy or hash with strategy and options
19
21
  def unchecked_lookup(key, lookup_invocation, merge)
22
+ unless Puppet[:strict] == :off
23
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::HieraSupport',
24
+ 'Puppet::DataProviders::HieraSupport is deprecated and will be removed in the next major version of Puppet')
25
+ end
20
26
  lookup_invocation.with(:data_provider, self) do
21
27
  merge_strategy = Puppet::Pops::MergeStrategy.strategy(merge)
22
28
  lookup_invocation.with(:merge, merge_strategy) do
@@ -3,9 +3,15 @@
3
3
  require 'json'
4
4
 
5
5
  module Puppet::DataProviders
6
+ # TODO: API 5.0, remove this class
6
7
  # @api private
8
+ # @deprecated
7
9
  class JsonDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
8
10
  def create(name, paths, parent_data_provider)
11
+ unless Puppet[:strict] == :off
12
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::JsonDataProviderFactory',
13
+ 'Puppet::DataProviders::JsonDataProviderFactory is deprecated and will be removed in the next major version of Puppet')
14
+ end
9
15
  JsonDataProvider.new(name, paths, parent_data_provider)
10
16
  end
11
17
 
@@ -14,9 +20,15 @@ module Puppet::DataProviders
14
20
  end
15
21
  end
16
22
 
23
+ # TODO: API 5.0, remove this class
17
24
  # @api private
25
+ # @deprecated
18
26
  class JsonDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
19
27
  def initialize_data(path, lookup_invocation)
28
+ unless Puppet[:strict] == :off
29
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::JsonDataProvider',
30
+ 'Puppet::DataProviders::JsonDataProvider is deprecated and will be removed in the next major version of Puppet')
31
+ end
20
32
  JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
21
33
  rescue JSON::ParserError => ex
22
34
  # Filename not included in message, so we add it here.
@@ -3,9 +3,15 @@
3
3
  require 'yaml'
4
4
 
5
5
  module Puppet::DataProviders
6
+ # TODO: API 5.0, remove this class
6
7
  # @api private
8
+ # @deprecated
7
9
  class YamlDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
8
10
  def create(name, paths, parent_data_provider)
11
+ unless Puppet[:strict] == :off
12
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::YamlDataProviderFactory',
13
+ 'Puppet::DataProviders::YamlDataProviderFactory is deprecated and will be removed in the next major version of Puppet')
14
+ end
9
15
  YamlDataProvider.new(name, paths, parent_data_provider)
10
16
  end
11
17
 
@@ -14,9 +20,15 @@ module Puppet::DataProviders
14
20
  end
15
21
  end
16
22
 
23
+ # TODO: API 5.0, remove this class
17
24
  # @api private
25
+ # @deprecated
18
26
  class YamlDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
19
27
  def initialize_data(path, lookup_invocation)
28
+ unless Puppet[:strict] == :off
29
+ Puppet.warn_once(:deprecation, 'Puppet::DataProviders::YamlDataProvider',
30
+ 'Puppet::DataProviders::YamlDataProvider is deprecated and will be removed in the next major version of Puppet')
31
+ end
20
32
  data = YAML.load_file(path)
21
33
  HieraConfig.symkeys_to_string(data.nil? ? {} : data)
22
34
  rescue YAML::SyntaxError => ex
@@ -419,7 +419,20 @@ deprecated and has been replaced by 'always_retry_plugins'."
419
419
  :data_binding_terminus => {
420
420
  :type => :terminus,
421
421
  :default => "hiera",
422
- :desc => "Where to retrieve information about data.",
422
+ :desc =>
423
+ "This setting has been deprecated. Use of any value other than 'hiera' should instead be configured
424
+ in a version 5 hiera.yaml. Until this setting is removed, it controls which data binding terminus
425
+ to use for global automatic data binding (across all environments). By default this value is 'hiera'.
426
+ A value of 'none' turns off the global binding.",
427
+ :call_hook => :on_initialize_and_write,
428
+ :hook => proc do |value|
429
+ if Puppet[:strict] != :off
430
+ s_val = value.to_s # because sometimes the value is a symbol
431
+ unless s_val == 'hiera' || s_val == 'none' || value == '' || value.nil?
432
+ Puppet.deprecation_warning "Setting 'data_binding_terminus' is deprecated. Convert custom terminus to hiera 5 API."
433
+ end
434
+ end
435
+ end
423
436
  },
424
437
  :hiera_config => {
425
438
  :default => lambda do
@@ -517,6 +530,10 @@ deprecated and has been replaced by 'always_retry_plugins'."
517
530
  read after the elapsed interval then the connection will be closed. The default value is unlimited.
518
531
  #{AS_DURATION}",
519
532
  },
533
+ :http_user_agent => {
534
+ :default => "Puppet/#{Puppet.version} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_PLATFORM})",
535
+ :desc => "The HTTP User-Agent string to send when making network requests."
536
+ },
520
537
  :filetimeout => {
521
538
  :default => "15s",
522
539
  :type => :duration,
@@ -556,13 +573,17 @@ deprecated and has been replaced by 'always_retry_plugins'."
556
573
  inconsistent catalogs."
557
574
  },
558
575
  :environment_data_provider => {
559
- :default => "none",
560
576
  :desc => "The name of a registered environment data provider used when obtaining environment
561
577
  specific data. The three built in and registered providers are 'none' (no data), 'function' (data
562
578
  obtained by calling the function 'environment::data()') and 'hiera' (data obtained using a data
563
579
  provider configured using a hiera.yaml file in root of the environment).
564
580
  Other environment data providers may be registered in modules on the module path. For such
565
- custom data providers see the respective module documentation."
581
+ custom data providers see the respective module documentation. This setting is deprecated.",
582
+ :hook => proc { |value|
583
+ unless value.nil? || Puppet[:strict] == :off
584
+ Puppet.deprecation_warning "Setting 'environment_data_provider' is deprecated."
585
+ end
586
+ }
566
587
  },
567
588
  :prerun_command => {
568
589
  :default => "",
@@ -1715,7 +1736,7 @@ EOT
1715
1736
  },
1716
1737
 
1717
1738
  :pluginsignore => {
1718
- :default => ".svn CVS .git",
1739
+ :default => ".svn CVS .git .hg",
1719
1740
  :desc => "What files to ignore when pulling down plugins.",
1720
1741
  }
1721
1742
  )
@@ -254,4 +254,6 @@ Puppet::Face.define(:ca, '0.1.0') do
254
254
  end
255
255
  end
256
256
  end
257
+
258
+ deprecate
257
259
  end
@@ -51,4 +51,6 @@ Puppet::Indirector::Face.define(:certificate_request, '0.0.1') do
51
51
 
52
52
  get_action(:save).summary "API only: submit a certificate signing request."
53
53
  get_action(:save).arguments "<x509_CSR>"
54
+
55
+ deprecate
54
56
  end
@@ -51,4 +51,6 @@ Puppet::Indirector::Face.define(:certificate_revocation_list, '0.0.1') do
51
51
 
52
52
  deactivate_action(:search)
53
53
  deactivate_action(:save)
54
+
55
+ deprecate
54
56
  end
@@ -44,4 +44,7 @@ Puppet::Indirector::Face.define(:file, '0.0.1') do
44
44
  deactivate_action(:destroy)
45
45
 
46
46
  set_indirection_name :file_bucket_file
47
+
48
+ # The file face is deprecated
49
+ deprecate
47
50
  end
@@ -6,22 +6,22 @@ require 'erb'
6
6
 
7
7
  Puppet::Face.define(:help, '0.0.1') do
8
8
  copyright "Puppet Labs", 2011
9
- license "Apache 2 license; see COPYING"
9
+ license _("Apache 2 license; see COPYING")
10
10
 
11
- summary "Display Puppet help."
11
+ summary _("Display Puppet help.")
12
12
 
13
13
  action(:help) do
14
- summary "Display help about Puppet subcommands and their actions."
15
- arguments "[<subcommand>] [<action>]"
16
- returns "Short help text for the specified subcommand or action."
17
- examples <<-'EOT'
14
+ summary _("Display help about Puppet subcommands and their actions.")
15
+ arguments _("[<subcommand>] [<action>]")
16
+ returns _("Short help text for the specified subcommand or action.")
17
+ examples _(<<-'EOT')
18
18
  Get help for an action:
19
19
 
20
20
  $ puppet help
21
21
  EOT
22
22
 
23
- option "--version VERSION" do
24
- summary "The version of the subcommand for which to show help."
23
+ option _("--version VERSION") do
24
+ summary _("The version of the subcommand for which to show help.")
25
25
  end
26
26
 
27
27
  default
@@ -47,7 +47,7 @@ Puppet::Face.define(:help, '0.0.1') do
47
47
  EOT
48
48
  353.times{i,x=i.divmod(1184);a,b=x.divmod(37);print(c[a]*b)}
49
49
  end
50
- raise ArgumentError, "Puppet help only takes two (optional) arguments: a subcommand and an action"
50
+ raise ArgumentError, _("Puppet help only takes two (optional) arguments: a subcommand and an action")
51
51
  end
52
52
 
53
53
  version = :current
@@ -56,7 +56,7 @@ Puppet::Face.define(:help, '0.0.1') do
56
56
  version = options[:version]
57
57
  else
58
58
  if args.length == 0 then
59
- raise ArgumentError, "Version only makes sense when a Faces subcommand is given"
59
+ raise ArgumentError, _("Version only makes sense when a Faces subcommand is given")
60
60
  end
61
61
  end
62
62
  end
@@ -66,7 +66,7 @@ Puppet::Face.define(:help, '0.0.1') do
66
66
  facename, actionname = args
67
67
  if legacy_applications.include? facename then
68
68
  if actionname then
69
- raise ArgumentError, "Legacy subcommands don't take actions"
69
+ raise ArgumentError, _("Legacy subcommands don't take actions")
70
70
  end
71
71
  return render_application_help(facename)
72
72
  else
@@ -78,7 +78,7 @@ Puppet::Face.define(:help, '0.0.1') do
78
78
  def render_application_help(applicationname)
79
79
  return Puppet::Application[applicationname].help
80
80
  rescue StandardError, LoadError => detail
81
- msg = <<-MSG
81
+ msg = _(<<-MSG)
82
82
  Could not load help for the application #{applicationname}.
83
83
  Please check the error logs for more information.
84
84
 
@@ -91,7 +91,7 @@ MSG
91
91
  face, action = load_face_help(facename, actionname, version)
92
92
  return template_for(face, action).result(binding)
93
93
  rescue StandardError, LoadError => detail
94
- msg = <<-MSG
94
+ msg = _(<<-MSG)
95
95
  Could not load help for the face #{facename}.
96
96
  Please check the error logs for more information.
97
97
 
@@ -105,7 +105,7 @@ MSG
105
105
  if actionname
106
106
  action = face.get_action(actionname.to_sym)
107
107
  if not action
108
- fail ArgumentError, "Unable to load action #{actionname} from #{face}"
108
+ fail ArgumentError, _("Unable to load action #{actionname} from #{face}")
109
109
  end
110
110
  end
111
111
 
@@ -146,9 +146,11 @@ MSG
146
146
  if (is_face_app?(appname))
147
147
  begin
148
148
  face = Puppet::Face[appname, :current]
149
- result << [appname, face.summary]
149
+ # Add deprecation message to summary if the face is deprecated
150
+ summary = face.deprecated? ? face.summary + _(" (Deprecated)") : face.summary
151
+ result << [appname, summary]
150
152
  rescue StandardError, LoadError
151
- result << [ "! #{appname}", "! Subcommand unavailable due to error. Check error logs." ]
153
+ result << [ "! #{appname}", _("! Subcommand unavailable due to error. Check error logs.") ]
152
154
  end
153
155
  else
154
156
  result << [appname, horribly_extract_summary_from(appname)]
@@ -169,7 +171,7 @@ MSG
169
171
  end
170
172
  end
171
173
  rescue StandardError, LoadError
172
- return "! Subcommand unavailable due to error. Check error logs."
174
+ return _("! Subcommand unavailable due to error. Check error logs.")
173
175
  end
174
176
  return ''
175
177
  end