puppet 4.4.1-universal-darwin → 4.4.2-universal-darwin

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

Potentially problematic release.


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

Files changed (556) hide show
  1. data/lib/puppet/application/ca.rb +1 -0
  2. data/lib/puppet/application/lookup.rb +4 -16
  3. data/lib/puppet/application/resource.rb +0 -4
  4. data/lib/puppet/data_providers/hiera_interpolate.rb +8 -2
  5. data/lib/puppet/data_providers/json_data_provider_factory.rb +1 -1
  6. data/lib/puppet/defaults.rb +32 -16
  7. data/lib/puppet/file_system/uniquefile.rb +2 -2
  8. data/lib/puppet/file_system/windows.rb +1 -15
  9. data/lib/puppet/functions/assert_type.rb +1 -1
  10. data/lib/puppet/functions/lookup.rb +0 -3
  11. data/lib/puppet/indirector/catalog/compiler.rb +2 -1
  12. data/lib/puppet/indirector/msgpack.rb +1 -1
  13. data/lib/puppet/indirector/terminus.rb +4 -4
  14. data/lib/puppet/module.rb +3 -3
  15. data/lib/puppet/module_tool/applications/builder.rb +2 -2
  16. data/lib/puppet/network/auth_config_parser.rb +1 -1
  17. data/lib/puppet/network/http/api/indirected_routes.rb +0 -2
  18. data/lib/puppet/network/http/rack/rest.rb +10 -1
  19. data/lib/puppet/parser/functions/lookup.rb +0 -3
  20. data/lib/puppet/pops/evaluator/access_operator.rb +25 -1
  21. data/lib/puppet/pops/evaluator/closure.rb +10 -5
  22. data/lib/puppet/pops/merge_strategy.rb +0 -10
  23. data/lib/puppet/pops/types/recursion_guard.rb +10 -0
  24. data/lib/puppet/pops/types/type_asserter.rb +2 -2
  25. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  26. data/lib/puppet/pops/types/type_formatter.rb +14 -2
  27. data/lib/puppet/pops/types/type_mismatch_describer.rb +22 -10
  28. data/lib/puppet/pops/types/types.rb +240 -98
  29. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  30. data/lib/puppet/provider/user/user_role_add.rb +3 -1
  31. data/lib/puppet/settings.rb +1 -1
  32. data/lib/puppet/ssl/oids.rb +24 -2
  33. data/lib/puppet/util/monkey_patches.rb +10 -5
  34. data/lib/puppet/util/windows/file.rb +40 -10
  35. data/lib/puppet/util/windows.rb +1 -0
  36. data/lib/puppet/version.rb +1 -1
  37. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  38. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  39. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +5 -1
  40. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +2 -2
  41. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  42. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  43. data/spec/integration/agent/logging_spec.rb +0 -0
  44. data/spec/integration/application/apply_spec.rb +0 -0
  45. data/spec/integration/application/doc_spec.rb +0 -0
  46. data/spec/integration/configurer_spec.rb +0 -0
  47. data/spec/integration/data_binding_spec.rb +0 -0
  48. data/spec/integration/defaults_spec.rb +0 -0
  49. data/spec/integration/faces/ca_spec.rb +0 -0
  50. data/spec/integration/faces/documentation_spec.rb +0 -0
  51. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  52. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  53. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  54. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  55. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
  56. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
  57. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  58. data/spec/integration/network/formats_spec.rb +0 -0
  59. data/spec/integration/node/environment_spec.rb +0 -0
  60. data/spec/integration/node/facts_spec.rb +0 -0
  61. data/spec/integration/node_spec.rb +0 -0
  62. data/spec/integration/parser/collection_spec.rb +0 -0
  63. data/spec/integration/parser/compiler_spec.rb +0 -0
  64. data/spec/integration/parser/functions/require_spec.rb +0 -0
  65. data/spec/integration/parser/parameter_defaults_spec.rb +19 -1
  66. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  67. data/spec/integration/provider/mount_spec.rb +0 -0
  68. data/spec/integration/provider/package_spec.rb +0 -0
  69. data/spec/integration/provider/service/init_spec.rb +0 -0
  70. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  71. data/spec/integration/reference/providers_spec.rb +0 -0
  72. data/spec/integration/reports_spec.rb +0 -0
  73. data/spec/integration/resource/catalog_spec.rb +0 -0
  74. data/spec/integration/resource/type_collection_spec.rb +0 -0
  75. data/spec/integration/ssl/certificate_authority_spec.rb +0 -0
  76. data/spec/integration/ssl/certificate_request_spec.rb +0 -0
  77. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
  78. data/spec/integration/ssl/host_spec.rb +0 -0
  79. data/spec/integration/transaction/report_spec.rb +0 -0
  80. data/spec/integration/transaction_spec.rb +0 -0
  81. data/spec/integration/type/exec_spec.rb +0 -0
  82. data/spec/integration/type/file_spec.rb +0 -0
  83. data/spec/integration/type/package_spec.rb +0 -0
  84. data/spec/integration/type/tidy_spec.rb +0 -0
  85. data/spec/integration/type_spec.rb +0 -0
  86. data/spec/integration/util/autoload_spec.rb +0 -0
  87. data/spec/integration/util/rdoc/parser_spec.rb +0 -0
  88. data/spec/integration/util/settings_spec.rb +26 -0
  89. data/spec/integration/util/windows/registry_spec.rb +0 -0
  90. data/spec/integration/util/windows/security_spec.rb +0 -0
  91. data/spec/integration/util/windows/user_spec.rb +0 -0
  92. data/spec/integration/util_spec.rb +0 -0
  93. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
  94. data/spec/lib/puppet/face/basetest.rb +0 -0
  95. data/spec/lib/puppet/face/huzzah.rb +0 -0
  96. data/spec/lib/puppet_spec/files.rb +0 -0
  97. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  98. data/spec/lib/puppet_spec/verbose.rb +0 -0
  99. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  100. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  101. data/spec/shared_behaviours/file_serving.rb +0 -0
  102. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  103. data/spec/shared_behaviours/path_parameters.rb +0 -0
  104. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  105. data/spec/spec_helper.rb +0 -0
  106. data/spec/unit/agent/locker_spec.rb +0 -0
  107. data/spec/unit/agent_spec.rb +0 -0
  108. data/spec/unit/application/agent_spec.rb +0 -0
  109. data/spec/unit/application/apply_spec.rb +0 -0
  110. data/spec/unit/application/cert_spec.rb +0 -0
  111. data/spec/unit/application/certificate_spec.rb +0 -0
  112. data/spec/unit/application/config_spec.rb +0 -0
  113. data/spec/unit/application/describe_spec.rb +0 -0
  114. data/spec/unit/application/device_spec.rb +0 -0
  115. data/spec/unit/application/doc_spec.rb +0 -0
  116. data/spec/unit/application/face_base_spec.rb +0 -0
  117. data/spec/unit/application/facts_spec.rb +0 -0
  118. data/spec/unit/application/filebucket_spec.rb +0 -0
  119. data/spec/unit/application/indirection_base_spec.rb +0 -0
  120. data/spec/unit/application/inspect_spec.rb +0 -0
  121. data/spec/unit/application/lookup_spec.rb +1 -1
  122. data/spec/unit/application/master_spec.rb +0 -0
  123. data/spec/unit/application/resource_spec.rb +0 -0
  124. data/spec/unit/application_spec.rb +0 -0
  125. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  126. data/spec/unit/configurer/downloader_spec.rb +0 -0
  127. data/spec/unit/configurer/fact_handler_spec.rb +0 -0
  128. data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
  129. data/spec/unit/configurer_spec.rb +0 -0
  130. data/spec/unit/confine/exists_spec.rb +0 -0
  131. data/spec/unit/confine/false_spec.rb +0 -0
  132. data/spec/unit/confine/feature_spec.rb +0 -0
  133. data/spec/unit/confine/true_spec.rb +0 -0
  134. data/spec/unit/confine/variable_spec.rb +0 -0
  135. data/spec/unit/confine_collection_spec.rb +0 -0
  136. data/spec/unit/confine_spec.rb +0 -0
  137. data/spec/unit/confiner_spec.rb +0 -0
  138. data/spec/unit/daemon_spec.rb +0 -0
  139. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -1
  140. data/spec/unit/data_providers/hiera_interpolation_spec.rb +6 -0
  141. data/spec/unit/external/pson_spec.rb +0 -0
  142. data/spec/unit/face/catalog_spec.rb +0 -0
  143. data/spec/unit/face/certificate_spec.rb +0 -0
  144. data/spec/unit/face/config_spec.rb +0 -0
  145. data/spec/unit/face/facts_spec.rb +0 -0
  146. data/spec/unit/face/file_spec.rb +0 -0
  147. data/spec/unit/face/help_spec.rb +0 -0
  148. data/spec/unit/face/node_spec.rb +0 -0
  149. data/spec/unit/face/plugin_spec.rb +0 -0
  150. data/spec/unit/face_spec.rb +0 -0
  151. data/spec/unit/file_bucket/dipper_spec.rb +0 -0
  152. data/spec/unit/file_bucket/file_spec.rb +0 -0
  153. data/spec/unit/file_serving/base_spec.rb +0 -0
  154. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -0
  155. data/spec/unit/file_serving/configuration_spec.rb +0 -0
  156. data/spec/unit/file_serving/content_spec.rb +0 -0
  157. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  158. data/spec/unit/file_serving/metadata_spec.rb +0 -0
  159. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  160. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  161. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  162. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  163. data/spec/unit/file_serving/mount_spec.rb +0 -0
  164. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -0
  165. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -0
  166. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  167. data/spec/unit/file_system_spec.rb +61 -0
  168. data/spec/unit/functions/assert_type_spec.rb +8 -0
  169. data/spec/unit/functions/defined_spec.rb +0 -0
  170. data/spec/unit/functions/hiera_spec.rb +0 -0
  171. data/spec/unit/functions/lookup_spec.rb +3 -3
  172. data/spec/unit/functions/regsubst_spec.rb +0 -0
  173. data/spec/unit/functions/split_spec.rb +0 -0
  174. data/spec/unit/functions/versioncmp_spec.rb +0 -0
  175. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  176. data/spec/unit/graph/simple_graph_spec.rb +0 -0
  177. data/spec/unit/indirector/catalog/compiler_spec.rb +7 -0
  178. data/spec/unit/indirector/catalog/json_spec.rb +0 -0
  179. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  180. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  181. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -0
  182. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  183. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  184. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  185. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  186. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  187. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  188. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  189. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  190. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  191. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  192. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  193. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  194. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  195. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  196. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  197. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  198. data/spec/unit/indirector/code_spec.rb +0 -0
  199. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  200. data/spec/unit/indirector/envelope_spec.rb +0 -0
  201. data/spec/unit/indirector/exec_spec.rb +0 -0
  202. data/spec/unit/indirector/face_spec.rb +0 -0
  203. data/spec/unit/indirector/facts/facter_spec.rb +0 -0
  204. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  205. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  206. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  207. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -0
  208. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  209. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  210. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  211. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  212. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  213. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  214. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  215. data/spec/unit/indirector/file_server_spec.rb +0 -0
  216. data/spec/unit/indirector/indirection_spec.rb +0 -0
  217. data/spec/unit/indirector/json_spec.rb +0 -0
  218. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  219. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  220. data/spec/unit/indirector/key/file_spec.rb +0 -0
  221. data/spec/unit/indirector/ldap_spec.rb +0 -0
  222. data/spec/unit/indirector/memory_spec.rb +0 -0
  223. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  224. data/spec/unit/indirector/node/exec_spec.rb +0 -0
  225. data/spec/unit/indirector/node/ldap_spec.rb +0 -0
  226. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  227. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  228. data/spec/unit/indirector/node/plain_spec.rb +0 -0
  229. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  230. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  231. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  232. data/spec/unit/indirector/plain_spec.rb +0 -0
  233. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  234. data/spec/unit/indirector/report/processor_spec.rb +0 -0
  235. data/spec/unit/indirector/report/rest_spec.rb +0 -0
  236. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  237. data/spec/unit/indirector/request_spec.rb +0 -0
  238. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  239. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  240. data/spec/unit/indirector/resource_type/parser_spec.rb +0 -0
  241. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
  242. data/spec/unit/indirector/rest_spec.rb +0 -0
  243. data/spec/unit/indirector/ssl_file_spec.rb +0 -0
  244. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  245. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  246. data/spec/unit/indirector/terminus_spec.rb +0 -0
  247. data/spec/unit/indirector/yaml_spec.rb +0 -0
  248. data/spec/unit/indirector_spec.rb +0 -0
  249. data/spec/unit/interface/action_builder_spec.rb +0 -0
  250. data/spec/unit/interface/action_manager_spec.rb +0 -0
  251. data/spec/unit/interface/action_spec.rb +0 -0
  252. data/spec/unit/interface/documentation_spec.rb +0 -0
  253. data/spec/unit/interface/face_collection_spec.rb +0 -0
  254. data/spec/unit/interface/option_builder_spec.rb +0 -0
  255. data/spec/unit/interface/option_spec.rb +0 -0
  256. data/spec/unit/interface_spec.rb +0 -0
  257. data/spec/unit/man_spec.rb +0 -0
  258. data/spec/unit/module_spec.rb +30 -6
  259. data/spec/unit/module_tool/applications/builder_spec.rb +23 -3
  260. data/spec/unit/module_tool_spec.rb +0 -0
  261. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  262. data/spec/unit/network/authconfig_spec.rb +0 -0
  263. data/spec/unit/network/authstore_spec.rb +0 -0
  264. data/spec/unit/network/format_handler_spec.rb +0 -0
  265. data/spec/unit/network/format_spec.rb +0 -0
  266. data/spec/unit/network/formats_spec.rb +0 -0
  267. data/spec/unit/network/http/api/indirected_routes_spec.rb +21 -13
  268. data/spec/unit/network/http/api/master/v3_spec.rb +0 -0
  269. data/spec/unit/network/http/compression_spec.rb +0 -0
  270. data/spec/unit/network/http/connection_spec.rb +0 -0
  271. data/spec/unit/network/http/factory_spec.rb +0 -0
  272. data/spec/unit/network/http/handler_spec.rb +0 -0
  273. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  274. data/spec/unit/network/http/pool_spec.rb +0 -0
  275. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  276. data/spec/unit/network/http/rack_spec.rb +0 -0
  277. data/spec/unit/network/http/session_spec.rb +0 -0
  278. data/spec/unit/network/http/site_spec.rb +0 -0
  279. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  280. data/spec/unit/network/http/webrick_spec.rb +0 -0
  281. data/spec/unit/network/http_pool_spec.rb +0 -0
  282. data/spec/unit/network/http_spec.rb +0 -0
  283. data/spec/unit/network/resolver_spec.rb +0 -0
  284. data/spec/unit/network/rights_spec.rb +0 -0
  285. data/spec/unit/network/server_spec.rb +0 -0
  286. data/spec/unit/node/environment_spec.rb +0 -0
  287. data/spec/unit/node/facts_spec.rb +0 -0
  288. data/spec/unit/node_spec.rb +0 -0
  289. data/spec/unit/other/selinux_spec.rb +0 -0
  290. data/spec/unit/parameter/path_spec.rb +0 -0
  291. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  292. data/spec/unit/parameter/value_spec.rb +0 -0
  293. data/spec/unit/parameter_spec.rb +0 -0
  294. data/spec/unit/parser/ast/leaf_spec.rb +0 -0
  295. data/spec/unit/parser/compiler_spec.rb +0 -0
  296. data/spec/unit/parser/files_spec.rb +0 -0
  297. data/spec/unit/parser/functions/create_resources_spec.rb +0 -0
  298. data/spec/unit/parser/functions/defined_spec.rb +0 -0
  299. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  300. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  301. data/spec/unit/parser/functions/file_spec.rb +0 -0
  302. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -0
  303. data/spec/unit/parser/functions/generate_spec.rb +0 -0
  304. data/spec/unit/parser/functions/hiera_spec.rb +0 -0
  305. data/spec/unit/parser/functions/include_spec.rb +0 -0
  306. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  307. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  308. data/spec/unit/parser/functions/regsubst_spec.rb +0 -0
  309. data/spec/unit/parser/functions/require_spec.rb +0 -0
  310. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  311. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  312. data/spec/unit/parser/functions/split_spec.rb +0 -0
  313. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  314. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  315. data/spec/unit/parser/functions/template_spec.rb +0 -0
  316. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  317. data/spec/unit/parser/functions_spec.rb +0 -0
  318. data/spec/unit/parser/relationship_spec.rb +0 -0
  319. data/spec/unit/parser/resource/param_spec.rb +0 -0
  320. data/spec/unit/parser/resource_spec.rb +0 -0
  321. data/spec/unit/parser/scope_spec.rb +0 -0
  322. data/spec/unit/parser/templatewrapper_spec.rb +0 -0
  323. data/spec/unit/parser/type_loader_spec.rb +0 -0
  324. data/spec/unit/pops/loaders/loaders_spec.rb +8 -8
  325. data/spec/unit/pops/types/type_asserter_spec.rb +3 -3
  326. data/spec/unit/pops/types/type_calculator_spec.rb +32 -6
  327. data/spec/unit/pops/types/type_factory_spec.rb +26 -0
  328. data/spec/unit/pops/types/type_formatter_spec.rb +7 -2
  329. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +25 -0
  330. data/spec/unit/pops/types/type_parser_spec.rb +1 -1
  331. data/spec/unit/pops/types/types_spec.rb +215 -0
  332. data/spec/unit/property/ensure_spec.rb +0 -0
  333. data/spec/unit/property/keyvalue_spec.rb +0 -0
  334. data/spec/unit/property/list_spec.rb +0 -0
  335. data/spec/unit/property/ordered_list_spec.rb +0 -0
  336. data/spec/unit/property_spec.rb +0 -0
  337. data/spec/unit/provider/augeas/augeas_spec.rb +0 -0
  338. data/spec/unit/provider/cisco_spec.rb +0 -0
  339. data/spec/unit/provider/command_spec.rb +0 -0
  340. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  341. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  342. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  343. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  344. data/spec/unit/provider/exec_spec.rb +0 -0
  345. data/spec/unit/provider/file/posix_spec.rb +0 -0
  346. data/spec/unit/provider/file/windows_spec.rb +0 -0
  347. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  348. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  349. data/spec/unit/provider/group/pw_spec.rb +0 -0
  350. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -0
  351. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  352. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  353. data/spec/unit/provider/ldap_spec.rb +0 -0
  354. data/spec/unit/provider/macauthorization_spec.rb +0 -0
  355. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  356. data/spec/unit/provider/mount/parsed_spec.rb +0 -0
  357. data/spec/unit/provider/mount_spec.rb +0 -0
  358. data/spec/unit/provider/naginator_spec.rb +0 -0
  359. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -0
  360. data/spec/unit/provider/nameservice_spec.rb +0 -0
  361. data/spec/unit/provider/network_device_spec.rb +0 -0
  362. data/spec/unit/provider/package/aix_spec.rb +0 -0
  363. data/spec/unit/provider/package/appdmg_spec.rb +0 -0
  364. data/spec/unit/provider/package/apt_spec.rb +0 -0
  365. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  366. data/spec/unit/provider/package/aptrpm_spec.rb +0 -0
  367. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  368. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  369. data/spec/unit/provider/package/gem_spec.rb +0 -0
  370. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  371. data/spec/unit/provider/package/macports_spec.rb +0 -0
  372. data/spec/unit/provider/package/nim_spec.rb +0 -0
  373. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  374. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  375. data/spec/unit/provider/package/pacman_spec.rb +0 -0
  376. data/spec/unit/provider/package/pip3_spec.rb +0 -0
  377. data/spec/unit/provider/package/pip_spec.rb +0 -0
  378. data/spec/unit/provider/package/pkg_spec.rb +0 -0
  379. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  380. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  381. data/spec/unit/provider/package/rpm_spec.rb +0 -0
  382. data/spec/unit/provider/package/sun_spec.rb +0 -0
  383. data/spec/unit/provider/package/windows/package_spec.rb +0 -0
  384. data/spec/unit/provider/package/windows_spec.rb +0 -0
  385. data/spec/unit/provider/package/yum_spec.rb +0 -0
  386. data/spec/unit/provider/package/zypper_spec.rb +0 -0
  387. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  388. data/spec/unit/provider/selboolean_spec.rb +0 -0
  389. data/spec/unit/provider/selmodule_spec.rb +0 -0
  390. data/spec/unit/provider/service/base_spec.rb +0 -0
  391. data/spec/unit/provider/service/bsd_spec.rb +0 -0
  392. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  393. data/spec/unit/provider/service/debian_spec.rb +0 -0
  394. data/spec/unit/provider/service/freebsd_spec.rb +0 -0
  395. data/spec/unit/provider/service/gentoo_spec.rb +0 -0
  396. data/spec/unit/provider/service/init_spec.rb +0 -0
  397. data/spec/unit/provider/service/launchd_spec.rb +0 -0
  398. data/spec/unit/provider/service/openbsd_spec.rb +0 -0
  399. data/spec/unit/provider/service/openrc_spec.rb +0 -0
  400. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  401. data/spec/unit/provider/service/rcng_spec.rb +0 -0
  402. data/spec/unit/provider/service/redhat_spec.rb +0 -0
  403. data/spec/unit/provider/service/runit_spec.rb +0 -0
  404. data/spec/unit/provider/service/smf_spec.rb +0 -0
  405. data/spec/unit/provider/service/src_spec.rb +0 -0
  406. data/spec/unit/provider/service/systemd_spec.rb +0 -0
  407. data/spec/unit/provider/service/upstart_spec.rb +0 -0
  408. data/spec/unit/provider/service/windows_spec.rb +0 -0
  409. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -0
  410. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -0
  411. data/spec/unit/provider/user/directoryservice_spec.rb +0 -0
  412. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  413. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  414. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  415. data/spec/unit/provider/user/pw_spec.rb +0 -0
  416. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  417. data/spec/unit/provider/user/useradd_spec.rb +0 -0
  418. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -0
  419. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  420. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  421. data/spec/unit/provider/zone/solaris_spec.rb +0 -0
  422. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  423. data/spec/unit/provider_spec.rb +0 -0
  424. data/spec/unit/puppet_spec.rb +0 -0
  425. data/spec/unit/relationship_spec.rb +0 -0
  426. data/spec/unit/reports/http_spec.rb +0 -0
  427. data/spec/unit/reports/store_spec.rb +0 -0
  428. data/spec/unit/reports_spec.rb +0 -0
  429. data/spec/unit/resource/catalog_spec.rb +0 -0
  430. data/spec/unit/resource/status_spec.rb +0 -0
  431. data/spec/unit/resource/type_collection_helper_spec.rb +0 -0
  432. data/spec/unit/resource/type_collection_spec.rb +0 -0
  433. data/spec/unit/resource/type_spec.rb +0 -0
  434. data/spec/unit/resource_spec.rb +0 -0
  435. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  436. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  437. data/spec/unit/settings/file_setting_spec.rb +0 -0
  438. data/spec/unit/settings/path_setting_spec.rb +0 -0
  439. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  440. data/spec/unit/settings_spec.rb +1 -1
  441. data/spec/unit/ssl/base_spec.rb +0 -0
  442. data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -0
  443. data/spec/unit/ssl/certificate_authority_spec.rb +0 -0
  444. data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
  445. data/spec/unit/ssl/certificate_request_spec.rb +0 -0
  446. data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -0
  447. data/spec/unit/ssl/certificate_spec.rb +0 -0
  448. data/spec/unit/ssl/configuration_spec.rb +0 -0
  449. data/spec/unit/ssl/host_spec.rb +0 -0
  450. data/spec/unit/ssl/inventory_spec.rb +0 -0
  451. data/spec/unit/ssl/key_spec.rb +0 -0
  452. data/spec/unit/status_spec.rb +0 -0
  453. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  454. data/spec/unit/transaction/event_spec.rb +0 -0
  455. data/spec/unit/transaction/report_spec.rb +0 -0
  456. data/spec/unit/transaction/resource_harness_spec.rb +0 -0
  457. data/spec/unit/transaction_spec.rb +0 -0
  458. data/spec/unit/type/augeas_spec.rb +0 -0
  459. data/spec/unit/type/component_spec.rb +0 -0
  460. data/spec/unit/type/computer_spec.rb +0 -0
  461. data/spec/unit/type/cron_spec.rb +0 -0
  462. data/spec/unit/type/exec_spec.rb +0 -0
  463. data/spec/unit/type/file/checksum_spec.rb +0 -0
  464. data/spec/unit/type/file/checksum_value_spec.rb +0 -0
  465. data/spec/unit/type/file/content_spec.rb +0 -0
  466. data/spec/unit/type/file/ctime_spec.rb +0 -0
  467. data/spec/unit/type/file/ensure_spec.rb +0 -0
  468. data/spec/unit/type/file/group_spec.rb +0 -0
  469. data/spec/unit/type/file/mode_spec.rb +0 -0
  470. data/spec/unit/type/file/mtime_spec.rb +0 -0
  471. data/spec/unit/type/file/owner_spec.rb +0 -0
  472. data/spec/unit/type/file/selinux_spec.rb +0 -0
  473. data/spec/unit/type/file/source_spec.rb +0 -0
  474. data/spec/unit/type/file/type_spec.rb +0 -0
  475. data/spec/unit/type/file_spec.rb +0 -0
  476. data/spec/unit/type/filebucket_spec.rb +0 -0
  477. data/spec/unit/type/group_spec.rb +0 -0
  478. data/spec/unit/type/host_spec.rb +0 -0
  479. data/spec/unit/type/interface_spec.rb +0 -0
  480. data/spec/unit/type/k5login_spec.rb +0 -0
  481. data/spec/unit/type/macauthorization_spec.rb +0 -0
  482. data/spec/unit/type/mailalias_spec.rb +0 -0
  483. data/spec/unit/type/maillist_spec.rb +0 -0
  484. data/spec/unit/type/mcx_spec.rb +0 -0
  485. data/spec/unit/type/mount_spec.rb +0 -0
  486. data/spec/unit/type/nagios_spec.rb +0 -0
  487. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  488. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  489. data/spec/unit/type/package_spec.rb +0 -0
  490. data/spec/unit/type/resources_spec.rb +0 -0
  491. data/spec/unit/type/schedule_spec.rb +0 -0
  492. data/spec/unit/type/selboolean_spec.rb +0 -0
  493. data/spec/unit/type/selmodule_spec.rb +0 -0
  494. data/spec/unit/type/service_spec.rb +0 -0
  495. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
  496. data/spec/unit/type/sshkey_spec.rb +0 -0
  497. data/spec/unit/type/stage_spec.rb +0 -0
  498. data/spec/unit/type/tidy_spec.rb +0 -0
  499. data/spec/unit/type/user_spec.rb +0 -0
  500. data/spec/unit/type/vlan_spec.rb +0 -0
  501. data/spec/unit/type/whit_spec.rb +0 -0
  502. data/spec/unit/type/yumrepo_spec.rb +0 -0
  503. data/spec/unit/type/zfs_spec.rb +0 -0
  504. data/spec/unit/type/zone_spec.rb +0 -0
  505. data/spec/unit/type/zpool_spec.rb +0 -0
  506. data/spec/unit/type_spec.rb +0 -0
  507. data/spec/unit/util/autoload_spec.rb +0 -0
  508. data/spec/unit/util/backups_spec.rb +0 -0
  509. data/spec/unit/util/checksums_spec.rb +0 -0
  510. data/spec/unit/util/colors_spec.rb +0 -0
  511. data/spec/unit/util/command_line_spec.rb +0 -0
  512. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  513. data/spec/unit/util/diff_spec.rb +0 -0
  514. data/spec/unit/util/errors_spec.rb +0 -0
  515. data/spec/unit/util/execution_spec.rb +0 -0
  516. data/spec/unit/util/execution_stub_spec.rb +0 -0
  517. data/spec/unit/util/feature_spec.rb +0 -0
  518. data/spec/unit/util/filetype_spec.rb +0 -0
  519. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  520. data/spec/unit/util/ldap/generator_spec.rb +0 -0
  521. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  522. data/spec/unit/util/log/destinations_spec.rb +0 -0
  523. data/spec/unit/util/log_spec.rb +0 -0
  524. data/spec/unit/util/logging_spec.rb +0 -0
  525. data/spec/unit/util/metric_spec.rb +0 -0
  526. data/spec/unit/util/monkey_patches_spec.rb +19 -3
  527. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  528. data/spec/unit/util/network_device/cisco/device_spec.rb +0 -0
  529. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  530. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  531. data/spec/unit/util/network_device/config_spec.rb +0 -0
  532. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  533. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  534. data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -0
  535. data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -0
  536. data/spec/unit/util/package_spec.rb +0 -0
  537. data/spec/unit/util/posix_spec.rb +0 -0
  538. data/spec/unit/util/rdoc_spec.rb +0 -0
  539. data/spec/unit/util/resource_template_spec.rb +0 -0
  540. data/spec/unit/util/retry_action_spec.rb +0 -0
  541. data/spec/unit/util/run_mode_spec.rb +0 -0
  542. data/spec/unit/util/selinux_spec.rb +0 -0
  543. data/spec/unit/util/storage_spec.rb +0 -0
  544. data/spec/unit/util/suidmanager_spec.rb +0 -0
  545. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  546. data/spec/unit/util/tagging_spec.rb +0 -0
  547. data/spec/unit/util/user_attr_spec.rb +0 -0
  548. data/spec/unit/util/warnings_spec.rb +0 -0
  549. data/spec/unit/util/windows/adsi_spec.rb +0 -0
  550. data/spec/unit/util/windows/file_spec.rb +34 -0
  551. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  552. data/spec/unit/util/windows/sid_spec.rb +0 -0
  553. data/spec/unit/util_spec.rb +0 -0
  554. data/spec/watchr.rb +0 -0
  555. metadata +3374 -3358
  556. checksums.yaml +0 -7
@@ -6,5 +6,6 @@ class Puppet::Application::Ca < Puppet::Application::FaceBase
6
6
 
7
7
  def setup
8
8
  Puppet::SSL::Oids.register_puppet_oids
9
+ super
9
10
  end
10
11
  end
@@ -6,7 +6,7 @@ require 'puppet/parser/compiler'
6
6
  class Puppet::Application::Lookup < Puppet::Application
7
7
 
8
8
  RUN_HELP = "Run 'puppet lookup --help' for more details".freeze
9
- DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, --unpack-arrays, and --merge-hash-arrays'.freeze
9
+ DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'.freeze
10
10
 
11
11
  run_mode :master
12
12
 
@@ -35,10 +35,6 @@ class Puppet::Application::Lookup < Puppet::Application
35
35
 
36
36
  option('--sort-merge-arrays')
37
37
 
38
- option('--unpack-arrays DELIMITER') do |arg|
39
- options[:unpack_arrays] = arg
40
- end
41
-
42
38
  option('--merge-hash-arrays')
43
39
 
44
40
  option('--explain')
@@ -124,7 +120,7 @@ USAGE
124
120
  -----
125
121
  puppet lookup [--help] [--type <TYPESTRING>] [--merge unique|hash|deep]
126
122
  [--knock-out-prefix <PREFIX-STRING>] [--sort-merged-arrays]
127
- [--unpack-arrays <STRING-VALUE>] [--merge-hash-arrays] [--explain]
123
+ [--merge-hash-arrays] [--explain]
128
124
  [--default <VALUE>] [--node <NODE-NAME>] [--facts <FILE>]
129
125
  [--compile]
130
126
  [--render-as s|json|yaml|binary|msgpack] <keys>
@@ -172,10 +168,6 @@ the puppet lookup function linked to above.
172
168
  Can be used with the 'deep' merge strategy. When this flag is used all
173
169
  merged arrays will be sorted.
174
170
 
175
- * --unpack-arrays <STRING-VALUE>
176
- Can be used with the 'deep' merge strategy. Specify a string value used
177
- as a deliminator to join all array values and then split them again.
178
-
179
171
  * --merge-hash-arrays
180
172
  Can be used with the 'deep' merge strategy. When this flag is used arrays
181
173
  and hashes will be merged.
@@ -225,7 +217,7 @@ EXAMPLE
225
217
  If you wanted to get the first value found for 'key_name_one' and 'key_name_two'
226
218
  within the scope of the agent.local node while merging values and knocking out
227
219
  the prefix 'foo' while merging, you would call lookup like this:
228
- $ puppet lookup --node agent.local --merge deep --knock_out_prefix foo key_name_one key_name_two
220
+ $ puppet lookup --node agent.local --merge deep --knock-out-prefix foo key_name_one key_name_two
229
221
 
230
222
  If you wanted to lookup 'key_name' within the scope of the agent.local node,
231
223
  and return a default value of 'bar' if nothing was found, you would call
@@ -251,7 +243,7 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
251
243
  # raise "No node was given via the '--node' flag for the scope of the lookup.\n#{RUN_HELP}"
252
244
  #end
253
245
 
254
- if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix] || options[:unpack_arrays]) && options[:merge] != 'deep'
246
+ if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix]) && options[:merge] != 'deep'
255
247
  raise "The options #{DEEP_MERGE_OPTIONS} are only available with '--merge deep'\n#{RUN_HELP}"
256
248
  end
257
249
 
@@ -275,10 +267,6 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
275
267
  merge_options.merge!({'knockout_prefix' => options[:prefix]})
276
268
  end
277
269
 
278
- if options[:unpack_arrays]
279
- merge_options.merge!({'unpack_arrays' => options[:unpack_arrays]})
280
- end
281
-
282
270
  else
283
271
  merge_options = {'strategy' => merge}
284
272
  end
@@ -84,10 +84,6 @@ configuration options can also be generated by running puppet with
84
84
  Write the results of the query to a file, open the file in an editor,
85
85
  and read the file back in as an executable Puppet manifest.
86
86
 
87
- * --host:
88
- When specified, connect to the resource server on the named host
89
- and retrieve the list of resouces of the type specified.
90
-
91
87
  * --help:
92
88
  Print this help message.
93
89
 
@@ -100,10 +100,16 @@ module Puppet::DataProviders::HieraInterpolate
100
100
  throw :no_such_key if value.nil?
101
101
  if segment =~ /^[0-9]+$/
102
102
  segment = segment.to_i
103
- raise Puppet::DataBinding::LookupError, "Data provider type mismatch: Got #{value.class.name} when Array was expected to enable lookup using key '#{segment}'" unless value.instance_of?(Array)
103
+ unless value.instance_of?(Array)
104
+ raise Puppet::DataBinding::LookupError,
105
+ "Data provider type mismatch: Got #{value.class.name} when Array was expected to enable lookup using key '#{segment}'"
106
+ end
104
107
  throw :no_such_key unless segment < value.size
105
108
  else
106
- raise Puppet::DataBinding::LookupError, "Data provider type mismatch: Got #{value.class.name} when a non Array object that responds to '[]' was expected to enable lookup using key '#{segment}'" unless value.respond_to?(:'[]') && !value.instance_of?(Array)
109
+ unless value.respond_to?(:'[]') && !(value.instance_of?(Array) || value.instance_of?(String))
110
+ raise Puppet::DataBinding::LookupError,
111
+ "Data provider type mismatch: Got #{value.class.name} when a hash-like object was expected to enable lookup using key '#{segment}'"
112
+ end
107
113
  throw :no_such_key unless value.include?(segment)
108
114
  end
109
115
  value = value[segment]
@@ -18,7 +18,7 @@ module Puppet::DataProviders
18
18
  include HieraInterpolate
19
19
 
20
20
  def initialize_data(path, lookup_invocation)
21
- JSON.parse(File.read(path))
21
+ JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
22
22
  rescue JSON::ParserError => ex
23
23
  # Filename not included in message, so we add it here.
24
24
  raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}"
@@ -606,22 +606,38 @@ module Puppet
606
606
  :dns_alt_names => {
607
607
  :default => '',
608
608
  :desc => <<EOT,
609
- The comma-separated list of alternative DNS names to use for the local host.
610
-
611
- When the node generates a CSR for itself, these are added to the request
612
- as the desired `subjectAltName` in the certificate: additional DNS labels
613
- that the certificate is also valid answering as.
614
-
615
- This is generally required if you use a non-hostname `certname`, or if you
616
- want to use `puppet kick` or `puppet resource -H` and the primary certname
617
- does not match the DNS name you use to communicate with the host.
618
-
619
- This is unnecessary for agents, unless you intend to use them as a server for
620
- `puppet kick` or remote `puppet resource` management.
621
-
622
- It is rarely necessary for servers; it is usually helpful only if you need to
623
- have a pool of multiple load balanced masters, or for the same master to
624
- respond on two physically separate networks under different names.
609
+ A comma-separated list of alternate DNS names for Puppet Server. These are extra
610
+ hostnames (in addition to its `certname`) that the server is allowed to use when
611
+ serving agents. Puppet checks this setting when automatically requesting a
612
+ certificate for Puppet agent or Puppet Server, and when manually generating a
613
+ certificate with `puppet cert generate`.
614
+
615
+ In order to handle agent requests at a given hostname (like
616
+ "puppet.example.com"), Puppet Server needs a certificate that proves it's
617
+ allowed to use that name; if a server shows a certificate that doesn't include
618
+ its hostname, Puppet agents will refuse to trust it. If you use a single
619
+ hostname for Puppet traffic but load-balance it to multiple Puppet Servers, each
620
+ of those servers needs to include the official hostname in its list of extra
621
+ names.
622
+
623
+ **Note:** The list of alternate names is locked in when the server's
624
+ certificate is signed. If you need to change the list later, you can't just
625
+ change this setting; you also need to:
626
+
627
+ * On the server: Stop Puppet Server.
628
+ * On the CA server: Revoke and clean the server's old certificate. (`puppet cert clean <NAME>`)
629
+ * On the server: Delete the old certificate (and any old certificate signing requests)
630
+ from the [ssldir](https://docs.puppetlabs.com/puppet/latest/reference/dirs_ssldir.html).
631
+ * On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to request a new certificate
632
+ * On the CA server: Sign the certificate request, explicitly allowing alternate names
633
+ (`puppet cert sign --allow-dns-alt-names <NAME>`).
634
+ * On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to retrieve the cert.
635
+ * On the server: Start Puppet Server again.
636
+
637
+ To see all the alternate names your servers are using, log into your CA server
638
+ and run `puppet cert list -a`, then check the output for `(alt names: ...)`.
639
+ Most agent nodes should NOT have alternate names; the only certs that should
640
+ have them are Puppet Server nodes that you want other agents to trust.
625
641
  EOT
626
642
  },
627
643
  :csr_attributes => {
@@ -175,7 +175,7 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
175
175
  mkdir(lock)
176
176
  yield
177
177
  ensure
178
- rmdir(lock) if lock
178
+ rmdir(lock) if Puppet::FileSystem.exist?(lock)
179
179
  end
180
180
 
181
181
  def mkdir(*args)
@@ -187,4 +187,4 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
187
187
  end
188
188
  end
189
189
 
190
- end
190
+ end
@@ -4,21 +4,7 @@ require 'puppet/util/windows'
4
4
  class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
5
5
 
6
6
  def exist?(path)
7
- if ! Puppet.features.manages_symlinks?
8
- return ::File.exist?(path)
9
- end
10
-
11
- path = path.to_str if path.respond_to?(:to_str) # support WatchedFile
12
- path = path.to_s # support String and Pathname
13
-
14
- begin
15
- if Puppet::Util::Windows::File.symlink?(path)
16
- path = Puppet::Util::Windows::File.readlink(path)
17
- end
18
- ! Puppet::Util::Windows::File.stat(path).nil?
19
- rescue # generally INVALID_HANDLE_VALUE which means 'file not found'
20
- false
21
- end
7
+ return Puppet::Util::Windows::File.exist?(path)
22
8
  end
23
9
 
24
10
  def symlink(path, dest, options = {})
@@ -69,7 +69,7 @@ Puppet::Functions.create_function(:assert_type, Puppet::Functions::InternalFunct
69
69
  #
70
70
  def assert_type(type, value)
71
71
  unless Puppet::Pops::Types::TypeCalculator.instance?(type,value)
72
- inferred_type = Puppet::Pops::Types::TypeCalculator.infer(value)
72
+ inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value)
73
73
  if block_given?
74
74
  # Give the inferred type to allow richer comparison in the given block (if generalized
75
75
  # information is lost).
@@ -100,9 +100,6 @@
100
100
  # disables this feature.
101
101
  # * `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
102
102
  # merged together. Defaults to `false`.
103
- # * `'unpack_arrays'` (string or undef) --- A delimiter string; Puppet will
104
- # join merged arrays with this delimiter, then split them again. Defaults to
105
- # `undef`, which disables this feature.
106
103
  # * `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
107
104
  # Defaults to `false`.
108
105
  #
@@ -254,7 +254,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
254
254
  raise Puppet::Error, "Unable to find a common checksum type between agent '#{options[:checksum_type]}' and master '#{known_checksum_types}'." unless checksum_type
255
255
  end
256
256
 
257
- str = "Compiled %s for #{node.name}" % [checksum_type ? 'static catalog' : 'catalog']
257
+ str = "Compiled %s for " % [checksum_type ? 'static catalog' : 'catalog']
258
+ str += node.name
258
259
  str += " in environment #{node.environment}" if node.environment
259
260
  config = nil
260
261
 
@@ -58,7 +58,7 @@ class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
58
58
  msgpack = nil
59
59
 
60
60
  begin
61
- msgpack = File.read(file)
61
+ msgpack = Puppet::FileSystem.read(file, :encoding => 'utf-8')
62
62
  rescue Errno::ENOENT
63
63
  return nil
64
64
  rescue => detail
@@ -66,18 +66,18 @@ class Puppet::Indirector::Terminus
66
66
  # Yay, class/instance confusion.
67
67
  subclass.terminus_type = self.name
68
68
 
69
- # Our subclass is specifically associated with an indirection.
69
+ # This subclass is specifically associated with an indirection.
70
70
  raise("Invalid name #{longname}") unless names.length > 0
71
- indirection_name = names.pop.sub(/^[A-Z]/) { |i| i.downcase }.gsub(/[A-Z]/) { |i| "_#{i.downcase}" }.intern
71
+ processed_name = names.pop.sub(/^[A-Z]/) { |i| i.downcase }.gsub(/[A-Z]/) { |i| "_#{i.downcase}" }
72
72
 
73
- if indirection_name == "" or indirection_name.nil?
73
+ if processed_name.empty?
74
74
  raise Puppet::DevError, "Could not discern indirection model from class constant"
75
75
  end
76
76
 
77
77
  # This will throw an exception if the indirection instance cannot be found.
78
78
  # Do this last, because it also registers the terminus type with the indirection,
79
79
  # which needs the above information.
80
- subclass.indirection = indirection_name
80
+ subclass.indirection = processed_name.intern
81
81
 
82
82
  # And add this instance to the instance hash.
83
83
  Puppet::Indirector::Terminus.register_terminus_class(subclass)
data/lib/puppet/module.rb CHANGED
@@ -48,7 +48,7 @@ class Puppet::Module
48
48
 
49
49
  def self.is_module_namespaced_name?(name)
50
50
  # it must match the full module name according to forge validator
51
- return true if name =~ /^[a-zA-Z0-9]+[-][a-z][a-z0-9_]*$/
51
+ return true if name =~ /^[a-zA-Z0-9]+[-][a-z][a-z0-9_]*$/
52
52
  return false
53
53
  end
54
54
 
@@ -90,7 +90,7 @@ class Puppet::Module
90
90
  return false unless Puppet::FileSystem.exist?(metadata_file)
91
91
 
92
92
  begin
93
- metadata = JSON.parse(File.read(metadata_file))
93
+ metadata = JSON.parse(File.read(metadata_file, :encoding => 'utf-8'))
94
94
  rescue JSON::JSONError => e
95
95
  Puppet.debug("#{name} has an invalid and unparsable metadata.json file. The parse error: #{e.message}")
96
96
  return false
@@ -145,7 +145,7 @@ class Puppet::Module
145
145
  end
146
146
 
147
147
  def load_metadata
148
- @metadata = data = JSON.parse(File.read(metadata_file))
148
+ @metadata = data = JSON.parse(File.read(metadata_file, :encoding => 'utf-8'))
149
149
  @forge_name = data['name'].gsub('-', '/') if data['name']
150
150
 
151
151
  [:source, :author, :version, :license, :dependencies].each do |attr|
@@ -65,9 +65,9 @@ module Puppet::ModuleTool
65
65
  gitignore = File.join(@path, '.gitignore')
66
66
 
67
67
  if File.file? pmtignore
68
- @ignored_files = PathSpec.new File.read(pmtignore)
68
+ @ignored_files = PathSpec.new Puppet::FileSystem.read(pmtignore, :encoding => 'utf-8')
69
69
  elsif File.file? gitignore
70
- @ignored_files = PathSpec.new File.read(gitignore)
70
+ @ignored_files = PathSpec.new Puppet::FileSystem.read(gitignore, :encoding => 'utf-8')
71
71
  else
72
72
  @ignored_files = PathSpec.new
73
73
  end
@@ -4,7 +4,7 @@ module Puppet::Network
4
4
  class AuthConfigParser
5
5
 
6
6
  def self.new_from_file(file)
7
- self.new(File.read(file))
7
+ self.new(Puppet::FileSystem.read(file, :encoding => 'utf-8'))
8
8
  end
9
9
 
10
10
  def initialize(string)
@@ -104,8 +104,6 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
104
104
  raise ArgumentError, "No request key specified in #{uri}"
105
105
  end
106
106
 
107
- key = URI.unescape(key)
108
-
109
107
  [indirection, method, key, params]
110
108
  end
111
109
 
@@ -2,6 +2,7 @@ require 'openssl'
2
2
  require 'cgi'
3
3
  require 'puppet/network/http/handler'
4
4
  require 'puppet/util/ssl'
5
+ require 'uri'
5
6
 
6
7
  class Puppet::Network::HTTP::RackREST
7
8
  include Puppet::Network::HTTP::Handler
@@ -79,7 +80,15 @@ class Puppet::Network::HTTP::RackREST
79
80
 
80
81
  # what path was requested? (this is, without any query parameters)
81
82
  def path(request)
82
- request.path
83
+ # The value that Passenger provides for 'path' is escaped
84
+ # (URL percent-encoded), see
85
+ # https://github.com/phusion/passenger/blob/release-5.0.26/src/apache2_module/Hooks.cpp#L885
86
+ # for the implementation as hooked up to an Apache web server. Code
87
+ # in the indirector / HTTP layer which consumes this path, however, assumes
88
+ # that it has already been unescaped, so it is unescaped here.
89
+ if request.path
90
+ URI.unescape(request.path)
91
+ end
83
92
  end
84
93
 
85
94
  # return the request body
@@ -101,9 +101,6 @@ but can adjust the merge with additional options. The available options are:
101
101
  disables this feature.
102
102
  * `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
103
103
  merged together. Defaults to `false`.
104
- * `'unpack_arrays'` (string or undef) --- A delimiter string; Puppet will
105
- join merged arrays with this delimiter, then split them again. Defaults to
106
- `undef`, which disables this feature.
107
104
  * `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
108
105
  Defaults to `false`.
109
106
 
@@ -293,6 +293,30 @@ class AccessOperator
293
293
  end
294
294
  end
295
295
 
296
+ def access_PIterableType(o, scope, keys)
297
+ keys.flatten!
298
+ if keys.size == 1
299
+ unless keys[0].is_a?(Types::PAnyType)
300
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterable-Type', :actual => keys[0].class})
301
+ end
302
+ Types::PIterableType.new(keys[0])
303
+ else
304
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterable-Type', :min => 1, :actual => keys.size})
305
+ end
306
+ end
307
+
308
+ def access_PIteratorType(o, scope, keys)
309
+ keys.flatten!
310
+ if keys.size == 1
311
+ unless keys[0].is_a?(Types::PAnyType)
312
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterator-Type', :actual => keys[0].class})
313
+ end
314
+ Types::PIteratorType.new(keys[0])
315
+ else
316
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterator-Type', :min => 1, :actual => keys.size})
317
+ end
318
+ end
319
+
296
320
  def access_PRuntimeType(o, scope, keys)
297
321
  keys.flatten!
298
322
  assert_keys(keys, o, 2, 2, String, String)
@@ -366,7 +390,7 @@ class AccessOperator
366
390
  fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic,
367
391
  {:base_type => 'Collection-Type', :min => 1, :max => 2, :actual => keys.size})
368
392
  end
369
- Types::PCollectionType.new(size_t)
393
+ Types::PCollectionType.new(nil, size_t)
370
394
  end
371
395
 
372
396
  # An Array can create a new Array type. It is not possible to create a collection of Array types.
@@ -45,14 +45,19 @@ class Closure < CallableSignature
45
45
  if enforce_parameters
46
46
  # Push a temporary parameter scope used while resolving the parameter defaults
47
47
  @enclosing_scope.with_parameter_scope(parameter_names) do |param_scope|
48
- args_hash.each { |k, v| param_scope[k] = v unless v.nil? && parameter_names.include?(k) }
48
+ # Assign all non-nil values, even those that represent non-existent paramaters.
49
+ args_hash.each { |k, v| param_scope[k] = v unless v.nil? }
49
50
  parameters.each do |p|
50
51
  name = p.name
51
- # only set result of default expr if it is defined (it is otherwise not possible to differentiate
52
- # between explicit undef and no default expression
53
52
  arg = args_hash[name]
54
- if arg.nil? && !p.value.nil?
55
- param_scope[name] = param_scope.evaluate(name, p.value, @enclosing_scope, @evaluator)
53
+ if arg.nil?
54
+ # Arg either wasn't given, or it was undef
55
+ if p.value.nil?
56
+ # No default. Assign nil if the args_hash included it
57
+ param_scope[name] = nil if args_hash.include?(name)
58
+ else
59
+ param_scope[name] = param_scope.evaluate(name, p.value, @enclosing_scope, @evaluator)
60
+ end
56
61
  end
57
62
  end
58
63
  args_hash = param_scope.to_hash
@@ -279,7 +279,6 @@ module Puppet::Pops
279
279
  # hash.deep_merge!({:x => [1,2]}, {:knockout_prefix => '--'})
280
280
  # - 'knockout_prefix' Set to string value to signify prefix which deletes elements from existing element. Defaults is _undef_
281
281
  # - 'sort_merged_arrays' Set to _true_ to sort all arrays that are merged together. Default is _false_
282
- # - 'unpack_arrays' Set to string value used as a deliminator to join all array values and then split them again. Default is _undef_
283
282
  # - 'merge_hash_arrays' Set to _true_ to merge hashes within arrays. Default is _false_
284
283
  #
285
284
  # Selected Options Details:
@@ -295,14 +294,6 @@ module Puppet::Pops
295
294
  # dest = {:x => [1,2,3]}
296
295
  # dest.ko_deep_merge!(source)
297
296
  # Results: {:x => ""}
298
- # :unpack_arrays => The purpose of this is to permit compound elements to be passed
299
- # in as strings and to be converted into discrete array elements
300
- # irsource = {:x => ['1,2,3', '4']}
301
- # dest = {:x => ['5','6','7,8']}
302
- # dest.deep_merge!(source, {:unpack_arrays => ','})
303
- # Results: {:x => ['1','2','3','4','5','6','7','8']}
304
- # Why: If receiving data from an HTML form, this makes it easy for a checkbox
305
- # to pass multiple values from within a single HTML element
306
297
  #
307
298
  # :merge_hash_arrays => merge hashes within arrays
308
299
  # source = {:x => [{:y => 1}]}
@@ -335,7 +326,6 @@ module Puppet::Pops
335
326
  'merge_debug=>Optional[Boolean],'\
336
327
  'merge_hash_arrays=>Optional[Boolean],'\
337
328
  'sort_merge_arrays=>Optional[Boolean],'\
338
- 'unpack_arrays=>Optional[String]'\
339
329
  '}]')
340
330
  end
341
331
 
@@ -54,6 +54,16 @@ class RecursionGuard
54
54
  @state
55
55
  end
56
56
 
57
+ # @return the number of objects added to the `this` map
58
+ def this_count
59
+ this_map.size
60
+ end
61
+
62
+ # @return the number of objects added to the `that` map
63
+ def that_count
64
+ that_map.size
65
+ end
66
+
57
67
  private
58
68
 
59
69
  def map_put(map, o)
@@ -30,7 +30,7 @@ module TypeAsserter
30
30
  # @api public
31
31
  def self.assert_instance_of(subject, expected_type, value, nil_ok = false, &block)
32
32
  unless value.nil? && nil_ok
33
- report_type_mismatch(subject, expected_type, TypeCalculator.singleton.infer_set(value).generalize, &block) unless expected_type.instance?(value)
33
+ report_type_mismatch(subject, expected_type, TypeCalculator.singleton.infer_set(value), &block) unless expected_type.instance?(value)
34
34
  end
35
35
  value
36
36
  end
@@ -39,7 +39,7 @@ module TypeAsserter
39
39
  subject = yield(subject) if block_given?
40
40
  subject = subject[0] % subject[1..-1] if subject.is_a?(Array)
41
41
  raise TypeAssertionError.new(
42
- TypeMismatchDescriber.singleton.describe_mismatch("#{subject} has wrong type,", expected_type, actual_type), expected_type, actual_type)
42
+ TypeMismatchDescriber.singleton.describe_mismatch("#{subject} had wrong type,", expected_type, actual_type), expected_type, actual_type)
43
43
  end
44
44
  private_class_method :report_type_mismatch
45
45
  end
@@ -697,7 +697,7 @@ class TypeCalculator
697
697
  if o.empty?
698
698
  PHashType::EMPTY
699
699
  elsif o.keys.all? {|k| PStringType::NON_EMPTY.instance?(k) }
700
- PStructType.new(o.each_pair.map { |k,v| PStructElement.new(PStringType.new(nil, [k]), infer_set(v)) })
700
+ PStructType.new(o.each_pair.map { |k,v| PStructElement.new(PStringType.new(size_as_type(k), [k]), infer_set(v)) })
701
701
  else
702
702
  ktype = PVariantType.new(o.keys.map {|k| infer_set(k) })
703
703
  etype = PVariantType.new(o.values.map {|e| infer_set(e) })
@@ -206,14 +206,26 @@ class TypeFormatter
206
206
  append_array('Runtime', [string(t.runtime), string(t.runtime_type_name)])
207
207
  end
208
208
 
209
+ def is_empty_range?(from, to)
210
+ from == 0 && to == 0
211
+ end
212
+
209
213
  # @api private
210
214
  def string_PArrayType(t)
211
- append_array('Array', t == PArrayType::DATA ? EMPTY_ARRAY : [string(t.element_type)] + range_array_part(t.size_type))
215
+ if t.has_empty_range?
216
+ append_array('Array', ['0', '0'])
217
+ else
218
+ append_array('Array', t == PArrayType::DATA ? EMPTY_ARRAY : [string(t.element_type)] + range_array_part(t.size_type))
219
+ end
212
220
  end
213
221
 
214
222
  # @api private
215
223
  def string_PHashType(t)
216
- append_array('Hash', t == PHashType::DATA ? EMPTY_ARRAY : [string(t.key_type), string(t.element_type)] + range_array_part(t.size_type))
224
+ if t.has_empty_range?
225
+ append_array('Hash', ['0', '0'])
226
+ else
227
+ append_array('Hash', t == PHashType::DATA ? EMPTY_ARRAY : [string(t.key_type), string(t.element_type)] + range_array_part(t.size_type))
228
+ end
217
229
  end
218
230
 
219
231
  # @api private
@@ -28,13 +28,13 @@ module Types
28
28
 
29
29
  class MemberPathElement < TypePathElement
30
30
  def to_s
31
- "struct member #{key}"
31
+ "struct member '#{key}'"
32
32
  end
33
33
  end
34
34
 
35
35
  class MemberKeyPathElement < TypePathElement
36
36
  def to_s
37
- "struct member key #{key}"
37
+ "struct member key '#{key}'"
38
38
  end
39
39
  end
40
40
 
@@ -301,6 +301,22 @@ module Types
301
301
 
302
302
  private
303
303
 
304
+ # Answers the question if `e` is a specialized type of `a`
305
+ # @param e [PAnyType] the expected type
306
+ # @param a [PAnyType] the actual type
307
+ # @return [Boolean] `true` when the _e_ is a specialization of _a_
308
+ #
309
+ def specialization(e, a)
310
+ case e
311
+ when PStructType
312
+ a.is_a?(PHashType)
313
+ when PTupleType
314
+ a.is_a?(PArrayType)
315
+ else
316
+ false
317
+ end
318
+ end
319
+
304
320
  # Decides whether or not the report must be fully detailed, or if generalization can be permitted
305
321
  # in the mismatch report. All comparisons are made using resolved aliases rather than the alias
306
322
  # itself.
@@ -313,7 +329,7 @@ module Types
313
329
  if e.is_a?(Array)
314
330
  e.any? { |t| always_fully_detailed?(t, a) }
315
331
  else
316
- e.class == a.class || e.is_a?(PTypeAliasType) || a.is_a?(PTypeAliasType)
332
+ e.class == a.class || e.is_a?(PTypeAliasType) || a.is_a?(PTypeAliasType) || specialization(e, a)
317
333
  end
318
334
  end
319
335
 
@@ -713,15 +729,11 @@ module Types
713
729
  h2.each_key { |key| descriptions << ExtraneousKey.new(path, key) }
714
730
  elsif actual.is_a?(PHashType)
715
731
  actual_size = actual.size_type || PCollectionType::DEFAULT_SIZE
716
- expected_size = PIntegerType.new(elements.count { |e| !e.type.assignable?(PUndefType::DEFAULT) }, elements.size)
732
+ expected_size = PIntegerType.new(elements.count { |e| !e.key_type.assignable?(PUndefType::DEFAULT) }, elements.size)
717
733
  if expected_size.assignable?(actual_size)
718
- if actual_size.to == 0 || PStringType::NON_EMPTY.assignable?(actual.key_type)
719
- descriptions.concat(describe(e.type, actual.element_type, path + [MemberPathElement.new(e.key)]))
720
- else
721
- descriptions << TypeMismatch(path, @non_empty_string_, actual.key_type)
722
- end
734
+ descriptions << TypeMismatch.new(path, expected, actual)
723
735
  else
724
- descriptions << SizeMismatch(path, expected_size, actual_size)
736
+ descriptions << SizeMismatch.new(path, expected_size, actual_size)
725
737
  end
726
738
  else
727
739
  descriptions << TypeMismatch.new(path, expected, actual)