puppet 6.0.5-x64-mingw32 → 8.8.1-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2449) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +11 -0
  3. data/CODE_OF_CONDUCT.md +70 -0
  4. data/Gemfile +31 -21
  5. data/Gemfile.lock +232 -105
  6. data/Guardfile.example +76 -0
  7. data/LICENSE +189 -4
  8. data/README.md +24 -32
  9. data/Rakefile +47 -59
  10. data/bin/puppet +1 -0
  11. data/conf/fileserver.conf +5 -10
  12. data/examples/enc/regexp_nodes/regexp_nodes.rb +270 -0
  13. data/examples/hiera/README.md +68 -57
  14. data/examples/hiera/data/common.yaml +12 -0
  15. data/examples/hiera/data/dc1.yaml +6 -0
  16. data/examples/hiera/hiera.yaml +15 -0
  17. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  18. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  19. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  20. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  21. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  22. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  23. data/examples/hiera/site.pp +1 -1
  24. data/examples/nagios/check_puppet.rb +123 -0
  25. data/ext/README.md +13 -0
  26. data/ext/build_defaults.yaml +1 -1
  27. data/ext/osx/puppet.plist +2 -0
  28. data/ext/project_data.yaml +0 -55
  29. data/ext/solaris/smf/puppet.xml +2 -0
  30. data/ext/systemd/puppet.service +2 -1
  31. data/ext/windows/service/daemon.rb +85 -53
  32. data/install.rb +54 -72
  33. data/lib/hiera/puppet_function.rb +8 -6
  34. data/lib/hiera/scope.rb +21 -12
  35. data/lib/hiera_puppet.rb +7 -8
  36. data/lib/puppet/agent/disabler.rb +6 -4
  37. data/lib/puppet/agent/locker.rb +4 -11
  38. data/lib/puppet/agent.rb +77 -33
  39. data/lib/puppet/application/agent.rb +348 -290
  40. data/lib/puppet/application/apply.rb +164 -139
  41. data/lib/puppet/application/catalog.rb +3 -1
  42. data/lib/puppet/application/config.rb +3 -1
  43. data/lib/puppet/application/describe.rb +57 -62
  44. data/lib/puppet/application/device.rb +242 -205
  45. data/lib/puppet/application/doc.rb +66 -67
  46. data/lib/puppet/application/epp.rb +4 -2
  47. data/lib/puppet/application/face_base.rb +41 -32
  48. data/lib/puppet/application/facts.rb +3 -1
  49. data/lib/puppet/application/filebucket.rb +188 -167
  50. data/lib/puppet/application/generate.rb +4 -2
  51. data/lib/puppet/application/help.rb +3 -1
  52. data/lib/puppet/application/indirection_base.rb +3 -1
  53. data/lib/puppet/application/lookup.rb +258 -196
  54. data/lib/puppet/application/module.rb +3 -1
  55. data/lib/puppet/application/node.rb +3 -1
  56. data/lib/puppet/application/parser.rb +4 -2
  57. data/lib/puppet/application/plugin.rb +4 -1
  58. data/lib/puppet/application/report.rb +3 -1
  59. data/lib/puppet/application/resource.rb +131 -104
  60. data/lib/puppet/application/script.rb +85 -82
  61. data/lib/puppet/application/ssl.rb +236 -128
  62. data/lib/puppet/application.rb +217 -135
  63. data/lib/puppet/application_support.rb +15 -7
  64. data/lib/puppet/coercion.rb +5 -3
  65. data/lib/puppet/compilable_resource_type.rb +5 -3
  66. data/lib/puppet/concurrent/lock.rb +15 -0
  67. data/lib/puppet/concurrent/synchronized.rb +15 -0
  68. data/lib/puppet/concurrent/thread_local_singleton.rb +18 -0
  69. data/lib/puppet/concurrent.rb +4 -0
  70. data/lib/puppet/configurer/downloader.rb +46 -22
  71. data/lib/puppet/configurer/fact_handler.rb +20 -19
  72. data/lib/puppet/configurer/plugin_handler.rb +24 -11
  73. data/lib/puppet/configurer.rb +427 -152
  74. data/lib/puppet/confine/any.rb +4 -2
  75. data/lib/puppet/confine/boolean.rb +47 -0
  76. data/lib/puppet/confine/exists.rb +4 -2
  77. data/lib/puppet/confine/false.rb +10 -2
  78. data/lib/puppet/confine/feature.rb +4 -3
  79. data/lib/puppet/confine/true.rb +10 -2
  80. data/lib/puppet/confine/variable.rb +6 -4
  81. data/lib/puppet/confine.rb +8 -5
  82. data/lib/puppet/confine_collection.rb +9 -5
  83. data/lib/puppet/confiner.rb +6 -4
  84. data/lib/puppet/context/trusted_information.rb +57 -11
  85. data/lib/puppet/context.rb +123 -49
  86. data/lib/puppet/daemon.rb +30 -39
  87. data/lib/puppet/data_binding.rb +4 -2
  88. data/lib/puppet/datatypes/error.rb +4 -2
  89. data/lib/puppet/datatypes/impl/error.rb +2 -0
  90. data/lib/puppet/datatypes.rb +12 -7
  91. data/lib/puppet/defaults.rb +584 -267
  92. data/lib/puppet/environments.rb +206 -112
  93. data/lib/puppet/error.rb +41 -16
  94. data/lib/puppet/etc.rb +11 -6
  95. data/lib/puppet/external/dot.rb +65 -75
  96. data/lib/puppet/face/catalog/select.rb +4 -2
  97. data/lib/puppet/face/catalog.rb +25 -4
  98. data/lib/puppet/face/config.rb +88 -87
  99. data/lib/puppet/face/epp.rb +46 -35
  100. data/lib/puppet/face/facts.rb +104 -15
  101. data/lib/puppet/face/generate.rb +8 -3
  102. data/lib/puppet/face/help.rb +61 -36
  103. data/lib/puppet/face/module/changes.rb +6 -4
  104. data/lib/puppet/face/module/install.rb +9 -6
  105. data/lib/puppet/face/module/list.rb +65 -57
  106. data/lib/puppet/face/module/uninstall.rb +3 -1
  107. data/lib/puppet/face/module/upgrade.rb +6 -4
  108. data/lib/puppet/face/module.rb +5 -3
  109. data/lib/puppet/face/node/clean.rb +14 -4
  110. data/lib/puppet/face/node.rb +7 -5
  111. data/lib/puppet/face/parser.rb +64 -25
  112. data/lib/puppet/face/plugin.rb +11 -5
  113. data/lib/puppet/face/report.rb +9 -9
  114. data/lib/puppet/face/resource.rb +3 -1
  115. data/lib/puppet/face.rb +3 -1
  116. data/lib/puppet/facter_impl.rb +96 -0
  117. data/lib/puppet/feature/base.rb +15 -15
  118. data/lib/puppet/feature/bolt.rb +3 -1
  119. data/lib/puppet/feature/cfpropertylist.rb +3 -1
  120. data/lib/puppet/feature/eventlog.rb +3 -1
  121. data/lib/puppet/feature/hiera_eyaml.rb +3 -1
  122. data/lib/puppet/feature/hocon.rb +3 -1
  123. data/lib/puppet/feature/libuser.rb +7 -5
  124. data/lib/puppet/feature/msgpack.rb +3 -1
  125. data/lib/puppet/feature/pe_license.rb +5 -3
  126. data/lib/puppet/feature/pson.rb +6 -0
  127. data/lib/puppet/feature/selinux.rb +3 -1
  128. data/lib/puppet/feature/ssh.rb +4 -2
  129. data/lib/puppet/feature/telnet.rb +6 -6
  130. data/lib/puppet/feature/zlib.rb +4 -2
  131. data/lib/puppet/ffi/posix/constants.rb +16 -0
  132. data/lib/puppet/ffi/posix/functions.rb +25 -0
  133. data/lib/puppet/ffi/posix.rb +12 -0
  134. data/lib/puppet/ffi/windows/api_types.rb +313 -0
  135. data/lib/puppet/ffi/windows/constants.rb +406 -0
  136. data/lib/puppet/ffi/windows/functions.rb +629 -0
  137. data/lib/puppet/ffi/windows/structs.rb +339 -0
  138. data/lib/puppet/ffi/windows.rb +14 -0
  139. data/lib/puppet/file_bucket/dipper.rb +27 -17
  140. data/lib/puppet/file_bucket/file.rb +11 -9
  141. data/lib/puppet/file_bucket.rb +2 -0
  142. data/lib/puppet/file_serving/base.rb +19 -11
  143. data/lib/puppet/file_serving/configuration/parser.rb +23 -44
  144. data/lib/puppet/file_serving/configuration.rb +24 -23
  145. data/lib/puppet/file_serving/content.rb +5 -3
  146. data/lib/puppet/file_serving/fileset.rb +38 -22
  147. data/lib/puppet/file_serving/http_metadata.rb +24 -9
  148. data/lib/puppet/file_serving/metadata.rb +40 -30
  149. data/lib/puppet/file_serving/mount/file.rb +18 -13
  150. data/lib/puppet/file_serving/mount/locales.rb +8 -8
  151. data/lib/puppet/file_serving/mount/modules.rb +8 -3
  152. data/lib/puppet/file_serving/mount/pluginfacts.rb +8 -8
  153. data/lib/puppet/file_serving/mount/plugins.rb +8 -8
  154. data/lib/puppet/file_serving/mount/scripts.rb +27 -0
  155. data/lib/puppet/file_serving/mount/tasks.rb +8 -3
  156. data/lib/puppet/file_serving/mount.rb +9 -7
  157. data/lib/puppet/file_serving/terminus_helper.rb +4 -2
  158. data/lib/puppet/file_serving/terminus_selector.rb +10 -9
  159. data/lib/puppet/file_serving.rb +2 -0
  160. data/lib/puppet/file_system/file_impl.rb +50 -15
  161. data/lib/puppet/file_system/jruby.rb +25 -0
  162. data/lib/puppet/file_system/memory_file.rb +18 -2
  163. data/lib/puppet/file_system/memory_impl.rb +18 -1
  164. data/lib/puppet/file_system/path_pattern.rb +14 -17
  165. data/lib/puppet/file_system/posix.rb +11 -5
  166. data/lib/puppet/file_system/uniquefile.rb +41 -41
  167. data/lib/puppet/file_system/windows.rb +113 -19
  168. data/lib/puppet/file_system.rb +42 -25
  169. data/lib/puppet/forge/cache.rb +7 -6
  170. data/lib/puppet/forge/errors.rb +8 -9
  171. data/lib/puppet/forge/repository.rb +36 -93
  172. data/lib/puppet/forge.rb +53 -40
  173. data/lib/puppet/functions/abs.rb +8 -5
  174. data/lib/puppet/functions/alert.rb +2 -0
  175. data/lib/puppet/functions/all.rb +4 -2
  176. data/lib/puppet/functions/annotate.rb +2 -0
  177. data/lib/puppet/functions/any.rb +3 -1
  178. data/lib/puppet/functions/assert_type.rb +5 -2
  179. data/lib/puppet/functions/binary_file.rb +4 -1
  180. data/lib/puppet/functions/break.rb +4 -2
  181. data/lib/puppet/functions/call.rb +5 -3
  182. data/lib/puppet/functions/camelcase.rb +7 -6
  183. data/lib/puppet/functions/capitalize.rb +7 -6
  184. data/lib/puppet/functions/ceiling.rb +3 -2
  185. data/lib/puppet/functions/chomp.rb +3 -2
  186. data/lib/puppet/functions/chop.rb +3 -2
  187. data/lib/puppet/functions/compare.rb +5 -3
  188. data/lib/puppet/functions/contain.rb +7 -4
  189. data/lib/puppet/functions/convert_to.rb +2 -0
  190. data/lib/puppet/functions/crit.rb +2 -0
  191. data/lib/puppet/functions/debug.rb +2 -0
  192. data/lib/puppet/functions/defined.rb +10 -6
  193. data/lib/puppet/functions/dig.rb +13 -10
  194. data/lib/puppet/functions/downcase.rb +6 -4
  195. data/lib/puppet/functions/each.rb +13 -13
  196. data/lib/puppet/functions/emerg.rb +2 -0
  197. data/lib/puppet/functions/empty.rb +10 -0
  198. data/lib/puppet/functions/epp.rb +7 -5
  199. data/lib/puppet/functions/err.rb +2 -0
  200. data/lib/puppet/functions/eyaml_lookup_key.rb +29 -23
  201. data/lib/puppet/functions/filter.rb +12 -18
  202. data/lib/puppet/functions/find_file.rb +11 -9
  203. data/lib/puppet/functions/find_template.rb +65 -0
  204. data/lib/puppet/functions/flatten.rb +2 -0
  205. data/lib/puppet/functions/floor.rb +3 -2
  206. data/lib/puppet/functions/get.rb +9 -7
  207. data/lib/puppet/functions/getvar.rb +7 -5
  208. data/lib/puppet/functions/group_by.rb +62 -0
  209. data/lib/puppet/functions/hiera.rb +2 -0
  210. data/lib/puppet/functions/hiera_array.rb +2 -0
  211. data/lib/puppet/functions/hiera_hash.rb +2 -0
  212. data/lib/puppet/functions/hiera_include.rb +3 -0
  213. data/lib/puppet/functions/hocon_data.rb +5 -5
  214. data/lib/puppet/functions/import.rb +3 -1
  215. data/lib/puppet/functions/include.rb +5 -2
  216. data/lib/puppet/functions/index.rb +168 -0
  217. data/lib/puppet/functions/info.rb +2 -0
  218. data/lib/puppet/functions/inline_epp.rb +8 -6
  219. data/lib/puppet/functions/join.rb +4 -2
  220. data/lib/puppet/functions/json_data.rb +6 -6
  221. data/lib/puppet/functions/keys.rb +2 -0
  222. data/lib/puppet/functions/length.rb +2 -1
  223. data/lib/puppet/functions/lest.rb +3 -1
  224. data/lib/puppet/functions/lookup.rb +11 -11
  225. data/lib/puppet/functions/lstrip.rb +7 -6
  226. data/lib/puppet/functions/map.rb +9 -8
  227. data/lib/puppet/functions/match.rb +10 -8
  228. data/lib/puppet/functions/max.rb +75 -8
  229. data/lib/puppet/functions/min.rb +75 -8
  230. data/lib/puppet/functions/module_directory.rb +2 -0
  231. data/lib/puppet/functions/new.rb +113 -106
  232. data/lib/puppet/functions/next.rb +20 -1
  233. data/lib/puppet/functions/notice.rb +2 -0
  234. data/lib/puppet/functions/partition.rb +62 -0
  235. data/lib/puppet/functions/reduce.rb +10 -15
  236. data/lib/puppet/functions/regsubst.rb +60 -42
  237. data/lib/puppet/functions/require.rb +12 -8
  238. data/lib/puppet/functions/return.rb +2 -0
  239. data/lib/puppet/functions/reverse_each.rb +3 -1
  240. data/lib/puppet/functions/round.rb +2 -0
  241. data/lib/puppet/functions/rstrip.rb +7 -6
  242. data/lib/puppet/functions/scanf.rb +2 -0
  243. data/lib/puppet/functions/size.rb +2 -2
  244. data/lib/puppet/functions/slice.rb +4 -1
  245. data/lib/puppet/functions/sort.rb +5 -3
  246. data/lib/puppet/functions/split.rb +30 -1
  247. data/lib/puppet/functions/step.rb +3 -1
  248. data/lib/puppet/functions/strftime.rb +6 -3
  249. data/lib/puppet/functions/strip.rb +7 -6
  250. data/lib/puppet/functions/then.rb +3 -0
  251. data/lib/puppet/functions/tree_each.rb +11 -13
  252. data/lib/puppet/functions/type.rb +6 -4
  253. data/lib/puppet/functions/unique.rb +10 -8
  254. data/lib/puppet/functions/unwrap.rb +19 -2
  255. data/lib/puppet/functions/upcase.rb +6 -4
  256. data/lib/puppet/functions/values.rb +2 -0
  257. data/lib/puppet/functions/versioncmp.rb +10 -5
  258. data/lib/puppet/functions/warning.rb +2 -0
  259. data/lib/puppet/functions/with.rb +2 -0
  260. data/lib/puppet/functions/yaml_data.rb +16 -15
  261. data/lib/puppet/functions.rb +59 -64
  262. data/lib/puppet/generate/models/type/property.rb +4 -1
  263. data/lib/puppet/generate/models/type/type.rb +10 -4
  264. data/lib/puppet/generate/type.rb +25 -9
  265. data/lib/puppet/gettext/config.rb +24 -17
  266. data/lib/puppet/gettext/module_translations.rb +8 -7
  267. data/lib/puppet/gettext/stubs.rb +2 -0
  268. data/lib/puppet/graph/key.rb +2 -0
  269. data/lib/puppet/graph/prioritizer.rb +2 -0
  270. data/lib/puppet/graph/rb_tree_map.rb +45 -26
  271. data/lib/puppet/graph/relationship_graph.rb +34 -31
  272. data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
  273. data/lib/puppet/graph/simple_graph.rb +72 -63
  274. data/lib/puppet/graph.rb +8 -6
  275. data/lib/puppet/http/client.rb +529 -0
  276. data/lib/puppet/http/dns.rb +159 -0
  277. data/lib/puppet/http/errors.rb +50 -0
  278. data/lib/puppet/http/external_client.rb +89 -0
  279. data/lib/puppet/http/factory.rb +53 -0
  280. data/lib/puppet/http/pool.rb +174 -0
  281. data/lib/puppet/http/pool_entry.rb +19 -0
  282. data/lib/puppet/http/proxy.rb +139 -0
  283. data/lib/puppet/http/redirector.rb +87 -0
  284. data/lib/puppet/http/resolver/server_list.rb +88 -0
  285. data/lib/puppet/http/resolver/settings.rb +24 -0
  286. data/lib/puppet/http/resolver/srv.rb +42 -0
  287. data/lib/puppet/http/resolver.rb +50 -0
  288. data/lib/puppet/http/response.rb +104 -0
  289. data/lib/puppet/http/response_converter.rb +25 -0
  290. data/lib/puppet/http/response_net_http.rb +43 -0
  291. data/lib/puppet/http/retry_after_handler.rb +78 -0
  292. data/lib/puppet/http/service/ca.rb +133 -0
  293. data/lib/puppet/http/service/compiler.rb +356 -0
  294. data/lib/puppet/http/service/file_server.rb +200 -0
  295. data/lib/puppet/http/service/puppetserver.rb +54 -0
  296. data/lib/puppet/http/service/report.rb +62 -0
  297. data/lib/puppet/http/service.rb +177 -0
  298. data/lib/puppet/http/session.rb +124 -0
  299. data/lib/puppet/http/site.rb +44 -0
  300. data/lib/puppet/http.rb +48 -0
  301. data/lib/puppet/indirector/catalog/compiler.rb +129 -113
  302. data/lib/puppet/indirector/catalog/json.rb +12 -5
  303. data/lib/puppet/indirector/catalog/msgpack.rb +4 -2
  304. data/lib/puppet/indirector/catalog/rest.rb +47 -2
  305. data/lib/puppet/indirector/catalog/store_configs.rb +5 -5
  306. data/lib/puppet/indirector/catalog/yaml.rb +4 -2
  307. data/lib/puppet/indirector/code.rb +3 -1
  308. data/lib/puppet/indirector/data_binding/hiera.rb +3 -2
  309. data/lib/puppet/indirector/data_binding/none.rb +3 -1
  310. data/lib/puppet/indirector/direct_file_server.rb +6 -3
  311. data/lib/puppet/indirector/envelope.rb +3 -1
  312. data/lib/puppet/indirector/errors.rb +3 -1
  313. data/lib/puppet/indirector/exec.rb +8 -6
  314. data/lib/puppet/indirector/face.rb +20 -31
  315. data/lib/puppet/indirector/fact_search.rb +62 -0
  316. data/lib/puppet/indirector/facts/facter.rb +49 -17
  317. data/lib/puppet/indirector/facts/json.rb +29 -0
  318. data/lib/puppet/indirector/facts/memory.rb +4 -2
  319. data/lib/puppet/indirector/facts/network_device.rb +4 -2
  320. data/lib/puppet/indirector/facts/rest.rb +36 -11
  321. data/lib/puppet/indirector/facts/store_configs.rb +5 -4
  322. data/lib/puppet/indirector/facts/yaml.rb +8 -61
  323. data/lib/puppet/indirector/file_bucket_file/file.rb +38 -32
  324. data/lib/puppet/indirector/file_bucket_file/rest.rb +47 -2
  325. data/lib/puppet/indirector/file_bucket_file/selector.rb +3 -2
  326. data/lib/puppet/indirector/file_content/file.rb +5 -3
  327. data/lib/puppet/indirector/file_content/file_server.rb +5 -3
  328. data/lib/puppet/indirector/file_content/rest.rb +32 -4
  329. data/lib/puppet/indirector/file_content/selector.rb +6 -4
  330. data/lib/puppet/indirector/file_content.rb +3 -1
  331. data/lib/puppet/indirector/file_metadata/file.rb +5 -3
  332. data/lib/puppet/indirector/file_metadata/file_server.rb +5 -3
  333. data/lib/puppet/indirector/file_metadata/http.rb +33 -11
  334. data/lib/puppet/indirector/file_metadata/rest.rb +53 -4
  335. data/lib/puppet/indirector/file_metadata/selector.rb +6 -4
  336. data/lib/puppet/indirector/file_metadata.rb +3 -1
  337. data/lib/puppet/indirector/file_server.rb +12 -14
  338. data/lib/puppet/indirector/generic_http.rb +3 -12
  339. data/lib/puppet/indirector/hiera.rb +15 -8
  340. data/lib/puppet/indirector/indirection.rb +98 -57
  341. data/lib/puppet/indirector/json.rb +15 -8
  342. data/lib/puppet/indirector/memory.rb +6 -3
  343. data/lib/puppet/indirector/msgpack.rb +14 -10
  344. data/lib/puppet/indirector/node/exec.rb +10 -9
  345. data/lib/puppet/indirector/node/json.rb +9 -0
  346. data/lib/puppet/indirector/node/memory.rb +4 -2
  347. data/lib/puppet/indirector/node/msgpack.rb +4 -2
  348. data/lib/puppet/indirector/node/plain.rb +4 -2
  349. data/lib/puppet/indirector/node/rest.rb +26 -2
  350. data/lib/puppet/indirector/node/store_configs.rb +5 -5
  351. data/lib/puppet/indirector/node/yaml.rb +4 -2
  352. data/lib/puppet/indirector/none.rb +4 -3
  353. data/lib/puppet/indirector/plain.rb +3 -1
  354. data/lib/puppet/indirector/report/json.rb +36 -0
  355. data/lib/puppet/indirector/report/msgpack.rb +5 -3
  356. data/lib/puppet/indirector/report/processor.rb +10 -6
  357. data/lib/puppet/indirector/report/rest.rb +17 -14
  358. data/lib/puppet/indirector/report/yaml.rb +28 -3
  359. data/lib/puppet/indirector/request.rb +26 -107
  360. data/lib/puppet/indirector/resource/ral.rb +18 -15
  361. data/lib/puppet/indirector/resource/store_configs.rb +5 -3
  362. data/lib/puppet/indirector/resource/validator.rb +3 -1
  363. data/lib/puppet/indirector/rest.rb +13 -248
  364. data/lib/puppet/indirector/store_configs.rb +2 -0
  365. data/lib/puppet/indirector/terminus.rb +23 -12
  366. data/lib/puppet/indirector/yaml.rb +10 -8
  367. data/lib/puppet/indirector.rb +11 -8
  368. data/lib/puppet/info_service/class_information_service.rb +21 -23
  369. data/lib/puppet/info_service/plan_information_service.rb +38 -0
  370. data/lib/puppet/info_service/task_information_service.rb +14 -5
  371. data/lib/puppet/info_service.rb +12 -2
  372. data/lib/puppet/interface/action.rb +62 -51
  373. data/lib/puppet/interface/action_builder.rb +16 -15
  374. data/lib/puppet/interface/action_manager.rb +11 -7
  375. data/lib/puppet/interface/documentation.rb +51 -41
  376. data/lib/puppet/interface/face_collection.rb +24 -17
  377. data/lib/puppet/interface/option.rb +30 -17
  378. data/lib/puppet/interface/option_builder.rb +14 -9
  379. data/lib/puppet/interface/option_manager.rb +16 -12
  380. data/lib/puppet/interface.rb +23 -20
  381. data/lib/puppet/loaders.rb +24 -21
  382. data/lib/puppet/metatype/manager.rb +91 -90
  383. data/lib/puppet/module/plan.rb +166 -0
  384. data/lib/puppet/module/task.rb +59 -29
  385. data/lib/puppet/module.rb +98 -52
  386. data/lib/puppet/module_tool/applications/application.rb +21 -15
  387. data/lib/puppet/module_tool/applications/checksummer.rb +5 -5
  388. data/lib/puppet/module_tool/applications/installer.rb +146 -98
  389. data/lib/puppet/module_tool/applications/uninstaller.rb +27 -26
  390. data/lib/puppet/module_tool/applications/unpacker.rb +13 -11
  391. data/lib/puppet/module_tool/applications/upgrader.rb +75 -67
  392. data/lib/puppet/module_tool/applications.rb +9 -8
  393. data/lib/puppet/module_tool/checksums.rb +5 -4
  394. data/lib/puppet/module_tool/contents_description.rb +8 -7
  395. data/lib/puppet/module_tool/dependency.rb +7 -6
  396. data/lib/puppet/module_tool/errors/base.rb +3 -1
  397. data/lib/puppet/module_tool/errors/installer.rb +6 -5
  398. data/lib/puppet/module_tool/errors/shared.rb +50 -17
  399. data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
  400. data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
  401. data/lib/puppet/module_tool/errors.rb +8 -6
  402. data/lib/puppet/module_tool/install_directory.rb +10 -7
  403. data/lib/puppet/module_tool/installed_modules.rb +7 -4
  404. data/lib/puppet/module_tool/local_tarball.rb +12 -10
  405. data/lib/puppet/module_tool/metadata.rb +42 -37
  406. data/lib/puppet/module_tool/shared_behaviors.rb +67 -48
  407. data/lib/puppet/module_tool/tar/gnu.rb +12 -8
  408. data/lib/puppet/module_tool/tar/mini.rb +18 -6
  409. data/lib/puppet/module_tool/tar.rb +8 -6
  410. data/lib/puppet/module_tool.rb +23 -21
  411. data/lib/puppet/network/authconfig.rb +3 -93
  412. data/lib/puppet/network/authorization.rb +14 -34
  413. data/lib/puppet/network/client_request.rb +7 -4
  414. data/lib/puppet/network/format.rb +10 -4
  415. data/lib/puppet/network/format_handler.rb +12 -10
  416. data/lib/puppet/network/format_support.rb +11 -10
  417. data/lib/puppet/network/formats.rb +97 -19
  418. data/lib/puppet/network/http/api/indirected_routes.rb +47 -63
  419. data/lib/puppet/network/http/api/indirection_type.rb +2 -1
  420. data/lib/puppet/network/http/api/master/v3/environments.rb +3 -34
  421. data/lib/puppet/network/http/api/master/v3.rb +3 -27
  422. data/lib/puppet/network/http/api/master.rb +5 -2
  423. data/lib/puppet/network/http/api/server/v3/environments.rb +54 -0
  424. data/lib/puppet/network/http/api/server/v3.rb +40 -0
  425. data/lib/puppet/network/http/api/server.rb +12 -0
  426. data/lib/puppet/network/http/api.rb +26 -20
  427. data/lib/puppet/network/http/connection.rb +250 -281
  428. data/lib/puppet/network/http/error.rb +6 -4
  429. data/lib/puppet/network/http/handler.rb +16 -18
  430. data/lib/puppet/network/http/issues.rb +2 -0
  431. data/lib/puppet/network/http/memory_response.rb +3 -1
  432. data/lib/puppet/network/http/request.rb +24 -11
  433. data/lib/puppet/network/http/response.rb +2 -0
  434. data/lib/puppet/network/http/route.rb +17 -13
  435. data/lib/puppet/network/http.rb +21 -19
  436. data/lib/puppet/network/http_pool.rb +42 -25
  437. data/lib/puppet/network/uri.rb +20 -0
  438. data/lib/puppet/network.rb +2 -0
  439. data/lib/puppet/node/environment.rb +140 -77
  440. data/lib/puppet/node/facts.rb +30 -13
  441. data/lib/puppet/node/server_facts.rb +43 -0
  442. data/lib/puppet/node.rb +25 -50
  443. data/lib/puppet/pal/catalog_compiler.rb +107 -0
  444. data/lib/puppet/pal/compiler.rb +227 -0
  445. data/lib/puppet/pal/function_signature.rb +54 -0
  446. data/lib/puppet/pal/json_catalog_encoder.rb +76 -0
  447. data/lib/puppet/pal/pal_api.rb +17 -0
  448. data/lib/puppet/pal/pal_impl.rb +585 -0
  449. data/lib/puppet/pal/plan_signature.rb +73 -0
  450. data/lib/puppet/pal/script_compiler.rb +75 -0
  451. data/lib/puppet/pal/task_signature.rb +64 -0
  452. data/lib/puppet/parameter/boolean.rb +3 -1
  453. data/lib/puppet/parameter/package_options.rb +4 -2
  454. data/lib/puppet/parameter/path.rb +8 -4
  455. data/lib/puppet/parameter/value.rb +6 -4
  456. data/lib/puppet/parameter/value_collection.rb +25 -24
  457. data/lib/puppet/parameter.rb +44 -26
  458. data/lib/puppet/parser/abstract_compiler.rb +2 -3
  459. data/lib/puppet/parser/ast/block_expression.rb +4 -2
  460. data/lib/puppet/parser/ast/branch.rb +2 -0
  461. data/lib/puppet/parser/ast/hostclass.rb +5 -3
  462. data/lib/puppet/parser/ast/leaf.rb +10 -6
  463. data/lib/puppet/parser/ast/node.rb +2 -0
  464. data/lib/puppet/parser/ast/pops_bridge.rb +23 -69
  465. data/lib/puppet/parser/ast/resource.rb +8 -8
  466. data/lib/puppet/parser/ast/resource_instance.rb +3 -0
  467. data/lib/puppet/parser/ast/resourceparam.rb +10 -8
  468. data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
  469. data/lib/puppet/parser/ast.rb +25 -24
  470. data/lib/puppet/parser/catalog_compiler.rb +5 -5
  471. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +18 -41
  472. data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
  473. data/lib/puppet/parser/compiler.rb +88 -270
  474. data/lib/puppet/parser/e4_parser_adapter.rb +18 -17
  475. data/lib/puppet/parser/files.rb +10 -7
  476. data/lib/puppet/parser/functions/assert_type.rb +43 -41
  477. data/lib/puppet/parser/functions/binary_file.rb +16 -14
  478. data/lib/puppet/parser/functions/break.rb +29 -27
  479. data/lib/puppet/parser/functions/contain.rb +3 -1
  480. data/lib/puppet/parser/functions/create_resources.rb +28 -20
  481. data/lib/puppet/parser/functions/defined.rb +104 -102
  482. data/lib/puppet/parser/functions/dig.rb +26 -24
  483. data/lib/puppet/parser/functions/digest.rb +4 -2
  484. data/lib/puppet/parser/functions/each.rb +101 -99
  485. data/lib/puppet/parser/functions/epp.rb +7 -6
  486. data/lib/puppet/parser/functions/fail.rb +12 -3
  487. data/lib/puppet/parser/functions/file.rb +17 -15
  488. data/lib/puppet/parser/functions/filter.rb +57 -54
  489. data/lib/puppet/parser/functions/find_file.rb +19 -18
  490. data/lib/puppet/parser/functions/fqdn_rand.rb +31 -21
  491. data/lib/puppet/parser/functions/generate.rb +30 -27
  492. data/lib/puppet/parser/functions/hiera.rb +95 -93
  493. data/lib/puppet/parser/functions/hiera_array.rb +83 -82
  494. data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
  495. data/lib/puppet/parser/functions/hiera_include.rb +93 -92
  496. data/lib/puppet/parser/functions/include.rb +5 -3
  497. data/lib/puppet/parser/functions/inline_epp.rb +8 -7
  498. data/lib/puppet/parser/functions/inline_template.rb +15 -13
  499. data/lib/puppet/parser/functions/lest.rb +36 -34
  500. data/lib/puppet/parser/functions/lookup.rb +132 -130
  501. data/lib/puppet/parser/functions/map.rb +54 -52
  502. data/lib/puppet/parser/functions/match.rb +31 -29
  503. data/lib/puppet/parser/functions/md5.rb +4 -2
  504. data/lib/puppet/parser/functions/new.rb +916 -915
  505. data/lib/puppet/parser/functions/next.rb +36 -34
  506. data/lib/puppet/parser/functions/realize.rb +13 -11
  507. data/lib/puppet/parser/functions/reduce.rb +134 -132
  508. data/lib/puppet/parser/functions/regsubst.rb +8 -5
  509. data/lib/puppet/parser/functions/require.rb +8 -5
  510. data/lib/puppet/parser/functions/return.rb +90 -88
  511. data/lib/puppet/parser/functions/reverse_each.rb +59 -57
  512. data/lib/puppet/parser/functions/scanf.rb +25 -23
  513. data/lib/puppet/parser/functions/sha1.rb +4 -2
  514. data/lib/puppet/parser/functions/sha256.rb +3 -1
  515. data/lib/puppet/parser/functions/shellquote.rb +2 -0
  516. data/lib/puppet/parser/functions/slice.rb +27 -25
  517. data/lib/puppet/parser/functions/split.rb +7 -6
  518. data/lib/puppet/parser/functions/sprintf.rb +8 -7
  519. data/lib/puppet/parser/functions/step.rb +62 -60
  520. data/lib/puppet/parser/functions/strftime.rb +175 -173
  521. data/lib/puppet/parser/functions/tag.rb +10 -7
  522. data/lib/puppet/parser/functions/tagged.rb +16 -13
  523. data/lib/puppet/parser/functions/template.rb +27 -24
  524. data/lib/puppet/parser/functions/then.rb +54 -52
  525. data/lib/puppet/parser/functions/type.rb +36 -34
  526. data/lib/puppet/parser/functions/versioncmp.rb +4 -3
  527. data/lib/puppet/parser/functions/with.rb +22 -20
  528. data/lib/puppet/parser/functions.rb +36 -23
  529. data/lib/puppet/parser/parser_factory.rb +4 -2
  530. data/lib/puppet/parser/relationship.rb +11 -4
  531. data/lib/puppet/parser/resource/param.rb +9 -1
  532. data/lib/puppet/parser/resource.rb +53 -116
  533. data/lib/puppet/parser/scope.rb +105 -87
  534. data/lib/puppet/parser/script_compiler.rb +14 -14
  535. data/lib/puppet/parser/templatewrapper.rb +10 -7
  536. data/lib/puppet/parser/type_loader.rb +33 -31
  537. data/lib/puppet/parser.rb +12 -10
  538. data/lib/puppet/plugins/configuration.rb +10 -4
  539. data/lib/puppet/plugins/syntax_checkers.rb +2 -1
  540. data/lib/puppet/plugins.rb +3 -1
  541. data/lib/puppet/pops/adaptable.rb +13 -20
  542. data/lib/puppet/pops/adapters.rb +12 -5
  543. data/lib/puppet/pops/evaluator/access_operator.rb +135 -122
  544. data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
  545. data/lib/puppet/pops/evaluator/closure.rb +272 -275
  546. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
  547. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +11 -11
  548. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +5 -4
  549. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +9 -7
  550. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +11 -10
  551. data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
  552. data/lib/puppet/pops/evaluator/deferred_resolver.rb +120 -23
  553. data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
  554. data/lib/puppet/pops/evaluator/evaluator_impl.rb +285 -267
  555. data/lib/puppet/pops/evaluator/external_syntax_support.rb +10 -8
  556. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
  557. data/lib/puppet/pops/evaluator/literal_evaluator.rb +21 -8
  558. data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
  559. data/lib/puppet/pops/evaluator/relationship_operator.rb +15 -12
  560. data/lib/puppet/pops/evaluator/runtime3_converter.rb +36 -32
  561. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +40 -38
  562. data/lib/puppet/pops/evaluator/runtime3_support.rb +44 -50
  563. data/lib/puppet/pops/functions/dispatch.rb +7 -7
  564. data/lib/puppet/pops/functions/dispatcher.rb +17 -12
  565. data/lib/puppet/pops/functions/function.rb +19 -23
  566. data/lib/puppet/pops/issue_reporter.rb +25 -22
  567. data/lib/puppet/pops/issues.rb +21 -9
  568. data/lib/puppet/pops/label_provider.rb +6 -4
  569. data/lib/puppet/pops/loader/base_loader.rb +45 -33
  570. data/lib/puppet/pops/loader/dependency_loader.rb +15 -12
  571. data/lib/puppet/pops/loader/gem_support.rb +9 -4
  572. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +30 -0
  573. data/lib/puppet/pops/loader/loader.rb +25 -13
  574. data/lib/puppet/pops/loader/loader_paths.rb +87 -51
  575. data/lib/puppet/pops/loader/module_loaders.rb +57 -54
  576. data/lib/puppet/pops/loader/predefined_loader.rb +7 -3
  577. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
  578. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +18 -5
  579. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
  580. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +6 -2
  581. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +6 -2
  582. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +74 -7
  583. data/lib/puppet/pops/loader/runtime3_type_loader.rb +9 -6
  584. data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
  585. data/lib/puppet/pops/loader/static_loader.rb +33 -27
  586. data/lib/puppet/pops/loader/task_instantiator.rb +9 -3
  587. data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
  588. data/lib/puppet/pops/loader/typed_name.rb +4 -2
  589. data/lib/puppet/pops/loader/uri_helper.rb +3 -1
  590. data/lib/puppet/pops/loaders.rb +60 -43
  591. data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
  592. data/lib/puppet/pops/lookup/context.rb +36 -28
  593. data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
  594. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
  595. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
  596. data/lib/puppet/pops/lookup/data_provider.rb +2 -0
  597. data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
  598. data/lib/puppet/pops/lookup/explainer.rb +47 -45
  599. data/lib/puppet/pops/lookup/function_provider.rb +8 -6
  600. data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
  601. data/lib/puppet/pops/lookup/hiera_config.rb +216 -154
  602. data/lib/puppet/pops/lookup/interpolation.rb +22 -10
  603. data/lib/puppet/pops/lookup/invocation.rb +14 -3
  604. data/lib/puppet/pops/lookup/key_recorder.rb +21 -0
  605. data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
  606. data/lib/puppet/pops/lookup/lookup_adapter.rb +47 -34
  607. data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
  608. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
  609. data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
  610. data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
  611. data/lib/puppet/pops/lookup.rb +17 -11
  612. data/lib/puppet/pops/merge_strategy.rb +43 -33
  613. data/lib/puppet/pops/migration/migration_checker.rb +8 -5
  614. data/lib/puppet/pops/model/ast.pp +0 -42
  615. data/lib/puppet/pops/model/ast.rb +787 -975
  616. data/lib/puppet/pops/model/ast_transformer.rb +20 -20
  617. data/lib/puppet/pops/model/factory.rb +88 -94
  618. data/lib/puppet/pops/model/model_label_provider.rb +5 -7
  619. data/lib/puppet/pops/model/model_tree_dumper.rb +32 -52
  620. data/lib/puppet/pops/model/pn_transformer.rb +10 -31
  621. data/lib/puppet/pops/model/tree_dumper.rb +7 -4
  622. data/lib/puppet/pops/parser/code_merger.rb +5 -5
  623. data/lib/puppet/pops/parser/egrammar.ra +6 -60
  624. data/lib/puppet/pops/parser/eparser.rb +1699 -1876
  625. data/lib/puppet/pops/parser/epp_parser.rb +6 -5
  626. data/lib/puppet/pops/parser/epp_support.rb +12 -10
  627. data/lib/puppet/pops/parser/evaluating_parser.rb +21 -20
  628. data/lib/puppet/pops/parser/heredoc_support.rb +31 -20
  629. data/lib/puppet/pops/parser/interpolation_support.rb +39 -34
  630. data/lib/puppet/pops/parser/lexer2.rb +160 -143
  631. data/lib/puppet/pops/parser/lexer_support.rb +58 -58
  632. data/lib/puppet/pops/parser/locatable.rb +2 -2
  633. data/lib/puppet/pops/parser/locator.rb +149 -124
  634. data/lib/puppet/pops/parser/parser_support.rb +37 -32
  635. data/lib/puppet/pops/parser/pn_parser.rb +27 -25
  636. data/lib/puppet/pops/parser/slurp_support.rb +42 -40
  637. data/lib/puppet/pops/patterns.rb +14 -14
  638. data/lib/puppet/pops/pcore.rb +7 -6
  639. data/lib/puppet/pops/pn.rb +8 -5
  640. data/lib/puppet/pops/puppet_stack.rb +54 -48
  641. data/lib/puppet/pops/resource/param.rb +13 -12
  642. data/lib/puppet/pops/resource/resource_type_impl.rb +49 -67
  643. data/lib/puppet/pops/semantic_error.rb +3 -1
  644. data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
  645. data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
  646. data/lib/puppet/pops/serialization/deserializer.rb +3 -0
  647. data/lib/puppet/pops/serialization/extension.rb +8 -0
  648. data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
  649. data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
  650. data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
  651. data/lib/puppet/pops/serialization/json.rb +10 -6
  652. data/lib/puppet/pops/serialization/json_path.rb +6 -4
  653. data/lib/puppet/pops/serialization/object.rb +6 -3
  654. data/lib/puppet/pops/serialization/serializer.rb +20 -16
  655. data/lib/puppet/pops/serialization/time_factory.rb +2 -1
  656. data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
  657. data/lib/puppet/pops/serialization/to_stringified_converter.rb +9 -8
  658. data/lib/puppet/pops/serialization.rb +10 -8
  659. data/lib/puppet/pops/time/timespan.rb +37 -27
  660. data/lib/puppet/pops/time/timestamp.rb +12 -5
  661. data/lib/puppet/pops/types/annotatable.rb +3 -2
  662. data/lib/puppet/pops/types/annotation.rb +6 -4
  663. data/lib/puppet/pops/types/class_loader.rb +17 -15
  664. data/lib/puppet/pops/types/implementation_registry.rb +4 -1
  665. data/lib/puppet/pops/types/iterable.rb +57 -21
  666. data/lib/puppet/pops/types/p_binary_type.rb +6 -6
  667. data/lib/puppet/pops/types/p_init_type.rb +15 -12
  668. data/lib/puppet/pops/types/p_meta_type.rb +7 -6
  669. data/lib/puppet/pops/types/p_object_type.rb +104 -79
  670. data/lib/puppet/pops/types/p_object_type_extension.rb +25 -14
  671. data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
  672. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
  673. data/lib/puppet/pops/types/p_sem_ver_type.rb +16 -10
  674. data/lib/puppet/pops/types/p_sensitive_type.rb +14 -6
  675. data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
  676. data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
  677. data/lib/puppet/pops/types/p_type_set_type.rb +56 -45
  678. data/lib/puppet/pops/types/p_uri_type.rb +42 -34
  679. data/lib/puppet/pops/types/puppet_object.rb +2 -1
  680. data/lib/puppet/pops/types/recursion_guard.rb +12 -6
  681. data/lib/puppet/pops/types/ruby_generator.rb +19 -14
  682. data/lib/puppet/pops/types/ruby_method.rb +8 -7
  683. data/lib/puppet/pops/types/string_converter.rb +130 -118
  684. data/lib/puppet/pops/types/tree_iterators.rb +16 -20
  685. data/lib/puppet/pops/types/type_acceptor.rb +2 -0
  686. data/lib/puppet/pops/types/type_asserter.rb +5 -3
  687. data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
  688. data/lib/puppet/pops/types/type_calculator.rb +75 -55
  689. data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
  690. data/lib/puppet/pops/types/type_factory.rb +25 -16
  691. data/lib/puppet/pops/types/type_formatter.rb +75 -81
  692. data/lib/puppet/pops/types/type_mismatch_describer.rb +83 -53
  693. data/lib/puppet/pops/types/type_parser.rb +131 -126
  694. data/lib/puppet/pops/types/type_set_reference.rb +3 -0
  695. data/lib/puppet/pops/types/type_with_members.rb +2 -2
  696. data/lib/puppet/pops/types/types.rb +274 -254
  697. data/lib/puppet/pops/utils.rb +43 -45
  698. data/lib/puppet/pops/validation/checker4_0.rb +126 -100
  699. data/lib/puppet/pops/validation/tasks_checker.rb +12 -18
  700. data/lib/puppet/pops/validation/validator_factory_4_0.rb +5 -3
  701. data/lib/puppet/pops/validation.rb +38 -42
  702. data/lib/puppet/pops/visitable.rb +2 -0
  703. data/lib/puppet/pops/visitor.rb +30 -10
  704. data/lib/puppet/pops.rb +63 -60
  705. data/lib/puppet/property/boolean.rb +3 -1
  706. data/lib/puppet/property/ensure.rb +20 -18
  707. data/lib/puppet/property/keyvalue.rb +18 -16
  708. data/lib/puppet/property/list.rb +13 -11
  709. data/lib/puppet/property/ordered_list.rb +7 -6
  710. data/lib/puppet/property.rb +65 -63
  711. data/lib/puppet/provider/aix_object.rb +21 -13
  712. data/lib/puppet/provider/command.rb +2 -0
  713. data/lib/puppet/provider/confine.rb +4 -2
  714. data/lib/puppet/provider/exec/posix.rb +21 -6
  715. data/lib/puppet/provider/exec/shell.rb +2 -0
  716. data/lib/puppet/provider/exec/windows.rb +7 -5
  717. data/lib/puppet/provider/exec.rb +26 -12
  718. data/lib/puppet/provider/file/posix.rb +46 -20
  719. data/lib/puppet/provider/file/windows.rb +68 -21
  720. data/lib/puppet/provider/group/aix.rb +6 -3
  721. data/lib/puppet/provider/group/directoryservice.rb +8 -6
  722. data/lib/puppet/provider/group/groupadd.rb +103 -34
  723. data/lib/puppet/provider/group/ldap.rb +11 -5
  724. data/lib/puppet/provider/group/pw.rb +9 -6
  725. data/lib/puppet/provider/group/windows_adsi.rb +18 -12
  726. data/lib/puppet/provider/ldap.rb +15 -9
  727. data/lib/puppet/provider/nameservice/directoryservice.rb +83 -69
  728. data/lib/puppet/provider/nameservice/objectadd.rb +5 -5
  729. data/lib/puppet/provider/nameservice/pw.rb +10 -10
  730. data/lib/puppet/provider/nameservice.rb +36 -40
  731. data/lib/puppet/provider/network_device.rb +6 -4
  732. data/lib/puppet/provider/package/aix.rb +51 -32
  733. data/lib/puppet/provider/package/appdmg.rb +31 -27
  734. data/lib/puppet/provider/package/apple.rb +10 -7
  735. data/lib/puppet/provider/package/apt.rb +174 -23
  736. data/lib/puppet/provider/package/aptitude.rb +10 -4
  737. data/lib/puppet/provider/package/aptrpm.rb +18 -14
  738. data/lib/puppet/provider/package/blastwave.rb +20 -22
  739. data/lib/puppet/provider/package/dnf.rb +15 -7
  740. data/lib/puppet/provider/package/dnfmodule.rb +143 -0
  741. data/lib/puppet/provider/package/dpkg.rb +55 -29
  742. data/lib/puppet/provider/package/fink.rb +33 -13
  743. data/lib/puppet/provider/package/freebsd.rb +6 -4
  744. data/lib/puppet/provider/package/gem.rb +181 -60
  745. data/lib/puppet/provider/package/hpux.rb +10 -8
  746. data/lib/puppet/provider/package/macports.rb +14 -9
  747. data/lib/puppet/provider/package/nim.rb +47 -39
  748. data/lib/puppet/provider/package/openbsd.rb +66 -45
  749. data/lib/puppet/provider/package/opkg.rb +20 -16
  750. data/lib/puppet/provider/package/pacman.rb +55 -51
  751. data/lib/puppet/provider/package/pip.rb +276 -117
  752. data/lib/puppet/provider/package/pip2.rb +18 -0
  753. data/lib/puppet/provider/package/pip3.rb +5 -7
  754. data/lib/puppet/provider/package/pkg.rb +86 -41
  755. data/lib/puppet/provider/package/pkgdmg.rb +31 -23
  756. data/lib/puppet/provider/package/pkgin.rb +15 -14
  757. data/lib/puppet/provider/package/pkgng.rb +69 -34
  758. data/lib/puppet/provider/package/pkgutil.rb +41 -41
  759. data/lib/puppet/provider/package/portage.rb +87 -73
  760. data/lib/puppet/provider/package/ports.rb +19 -16
  761. data/lib/puppet/provider/package/portupgrade.rb +51 -57
  762. data/lib/puppet/provider/package/puppet_gem.rb +16 -8
  763. data/lib/puppet/provider/package/puppetserver_gem.rb +174 -0
  764. data/lib/puppet/provider/package/rpm.rb +104 -254
  765. data/lib/puppet/provider/package/rug.rb +11 -11
  766. data/lib/puppet/provider/package/sun.rb +31 -27
  767. data/lib/puppet/provider/package/sunfreeware.rb +3 -1
  768. data/lib/puppet/provider/package/tdnf.rb +8 -1
  769. data/lib/puppet/provider/package/up2date.rb +10 -10
  770. data/lib/puppet/provider/package/urpmi.rb +9 -7
  771. data/lib/puppet/provider/package/windows/exe_package.rb +38 -7
  772. data/lib/puppet/provider/package/windows/msi_package.rb +6 -4
  773. data/lib/puppet/provider/package/windows/package.rb +19 -14
  774. data/lib/puppet/provider/package/windows.rb +28 -10
  775. data/lib/puppet/provider/package/xbps.rb +127 -0
  776. data/lib/puppet/provider/package/yum.rb +165 -60
  777. data/lib/puppet/provider/package/zypper.rb +90 -29
  778. data/lib/puppet/provider/package.rb +13 -8
  779. data/lib/puppet/provider/package_targetable.rb +71 -0
  780. data/lib/puppet/provider/parsedfile.rb +41 -27
  781. data/lib/puppet/provider/service/base.rb +29 -28
  782. data/lib/puppet/provider/service/bsd.rb +7 -5
  783. data/lib/puppet/provider/service/daemontools.rb +49 -47
  784. data/lib/puppet/provider/service/debian.rb +17 -15
  785. data/lib/puppet/provider/service/freebsd.rb +50 -52
  786. data/lib/puppet/provider/service/gentoo.rb +11 -9
  787. data/lib/puppet/provider/service/init.rb +39 -39
  788. data/lib/puppet/provider/service/launchd.rb +72 -42
  789. data/lib/puppet/provider/service/openbsd.rb +17 -16
  790. data/lib/puppet/provider/service/openrc.rb +6 -5
  791. data/lib/puppet/provider/service/openwrt.rb +7 -6
  792. data/lib/puppet/provider/service/rcng.rb +9 -7
  793. data/lib/puppet/provider/service/redhat.rb +10 -7
  794. data/lib/puppet/provider/service/runit.rb +18 -23
  795. data/lib/puppet/provider/service/service.rb +32 -7
  796. data/lib/puppet/provider/service/smf.rb +189 -90
  797. data/lib/puppet/provider/service/src.rb +30 -30
  798. data/lib/puppet/provider/service/systemd.rb +107 -67
  799. data/lib/puppet/provider/service/upstart.rb +62 -47
  800. data/lib/puppet/provider/service/windows.rb +103 -39
  801. data/lib/puppet/provider/user/aix.rb +74 -26
  802. data/lib/puppet/provider/user/directoryservice.rb +170 -115
  803. data/lib/puppet/provider/user/hpux.rb +33 -35
  804. data/lib/puppet/provider/user/ldap.rb +22 -15
  805. data/lib/puppet/provider/user/openbsd.rb +27 -24
  806. data/lib/puppet/provider/user/pw.rb +22 -11
  807. data/lib/puppet/provider/user/user_role_add.rb +52 -42
  808. data/lib/puppet/provider/user/useradd.rb +236 -76
  809. data/lib/puppet/provider/user/windows_adsi.rb +34 -14
  810. data/lib/puppet/provider.rb +32 -43
  811. data/lib/puppet/reference/configuration.rb +55 -47
  812. data/lib/puppet/reference/function.rb +2 -0
  813. data/lib/puppet/reference/indirection.rb +39 -34
  814. data/lib/puppet/reference/metaparameter.rb +4 -4
  815. data/lib/puppet/reference/providers.rb +16 -15
  816. data/lib/puppet/reference/report.rb +3 -1
  817. data/lib/puppet/reference/type.rb +12 -14
  818. data/lib/puppet/relationship.rb +14 -18
  819. data/lib/puppet/reports/http.rb +19 -11
  820. data/lib/puppet/reports/log.rb +5 -4
  821. data/lib/puppet/reports/store.rb +11 -8
  822. data/lib/puppet/reports.rb +10 -8
  823. data/lib/puppet/resource/catalog.rb +96 -112
  824. data/lib/puppet/resource/status.rb +11 -9
  825. data/lib/puppet/resource/type.rb +64 -157
  826. data/lib/puppet/resource/type_collection.rb +45 -73
  827. data/lib/puppet/resource.rb +162 -172
  828. data/lib/puppet/runtime.rb +67 -0
  829. data/lib/puppet/scheduler/job.rb +2 -0
  830. data/lib/puppet/scheduler/scheduler.rb +4 -2
  831. data/lib/puppet/scheduler/splay_job.rb +2 -0
  832. data/lib/puppet/scheduler/timer.rb +2 -0
  833. data/lib/puppet/scheduler.rb +7 -5
  834. data/lib/puppet/settings/alias_setting.rb +37 -0
  835. data/lib/puppet/settings/array_setting.rb +2 -1
  836. data/lib/puppet/settings/autosign_setting.rb +3 -2
  837. data/lib/puppet/settings/base_setting.rb +56 -25
  838. data/lib/puppet/settings/boolean_setting.rb +5 -3
  839. data/lib/puppet/settings/certificate_revocation_setting.rb +3 -2
  840. data/lib/puppet/settings/config_file.rb +15 -19
  841. data/lib/puppet/settings/directory_setting.rb +2 -0
  842. data/lib/puppet/settings/duration_setting.rb +5 -4
  843. data/lib/puppet/settings/enum_setting.rb +3 -1
  844. data/lib/puppet/settings/environment_conf.rb +21 -15
  845. data/lib/puppet/settings/errors.rb +7 -4
  846. data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
  847. data/lib/puppet/settings/file_setting.rb +19 -32
  848. data/lib/puppet/settings/http_extra_headers_setting.rb +26 -0
  849. data/lib/puppet/settings/ini_file.rb +7 -4
  850. data/lib/puppet/settings/integer_setting.rb +19 -0
  851. data/lib/puppet/settings/path_setting.rb +2 -0
  852. data/lib/puppet/settings/port_setting.rb +17 -0
  853. data/lib/puppet/settings/priority_setting.rb +16 -14
  854. data/lib/puppet/settings/server_list_setting.rb +13 -3
  855. data/lib/puppet/settings/string_setting.rb +2 -0
  856. data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
  857. data/lib/puppet/settings/terminus_setting.rb +2 -0
  858. data/lib/puppet/settings/ttl_setting.rb +7 -5
  859. data/lib/puppet/settings/value_translator.rb +9 -8
  860. data/lib/puppet/settings.rb +397 -232
  861. data/lib/puppet/ssl/base.rb +17 -15
  862. data/lib/puppet/ssl/certificate.rb +12 -13
  863. data/lib/puppet/ssl/certificate_request.rb +45 -50
  864. data/lib/puppet/ssl/certificate_request_attributes.rb +9 -6
  865. data/lib/puppet/ssl/certificate_signer.rb +9 -3
  866. data/lib/puppet/ssl/digest.rb +2 -0
  867. data/lib/puppet/ssl/error.rb +29 -0
  868. data/lib/puppet/ssl/oids.rb +17 -11
  869. data/lib/puppet/ssl/openssl_loader.rb +26 -0
  870. data/lib/puppet/ssl/ssl_context.rb +27 -0
  871. data/lib/puppet/ssl/ssl_provider.rb +354 -0
  872. data/lib/puppet/ssl/state_machine.rb +605 -0
  873. data/lib/puppet/ssl/verifier.rb +143 -0
  874. data/lib/puppet/ssl.rb +21 -8
  875. data/lib/puppet/syntax_checkers/base64.rb +8 -6
  876. data/lib/puppet/syntax_checkers/epp.rb +35 -0
  877. data/lib/puppet/syntax_checkers/json.rb +8 -8
  878. data/lib/puppet/syntax_checkers/pp.rb +35 -0
  879. data/lib/puppet/syntax_checkers.rb +3 -1
  880. data/lib/puppet/test/test_helper.rb +50 -50
  881. data/lib/puppet/thread_local.rb +6 -0
  882. data/lib/puppet/transaction/additional_resource_generator.rb +13 -8
  883. data/lib/puppet/transaction/event.rb +14 -10
  884. data/lib/puppet/transaction/event_manager.rb +18 -19
  885. data/lib/puppet/transaction/persistence.rb +35 -15
  886. data/lib/puppet/transaction/report.rb +88 -48
  887. data/lib/puppet/transaction/resource_harness.rb +17 -10
  888. data/lib/puppet/transaction.rb +105 -59
  889. data/lib/puppet/trusted_external.rb +46 -0
  890. data/lib/puppet/type/component.rb +19 -11
  891. data/lib/puppet/type/exec.rb +196 -90
  892. data/lib/puppet/type/file/checksum.rb +8 -6
  893. data/lib/puppet/type/file/checksum_value.rb +8 -6
  894. data/lib/puppet/type/file/content.rb +31 -23
  895. data/lib/puppet/type/file/ctime.rb +8 -6
  896. data/lib/puppet/type/file/data_sync.rb +18 -10
  897. data/lib/puppet/type/file/ensure.rb +35 -33
  898. data/lib/puppet/type/file/group.rb +12 -3
  899. data/lib/puppet/type/file/mode.rb +28 -13
  900. data/lib/puppet/type/file/mtime.rb +8 -5
  901. data/lib/puppet/type/file/owner.rb +11 -3
  902. data/lib/puppet/type/file/selcontext.rb +25 -23
  903. data/lib/puppet/type/file/source.rb +110 -99
  904. data/lib/puppet/type/file/target.rb +25 -26
  905. data/lib/puppet/type/file/type.rb +5 -3
  906. data/lib/puppet/type/file.rb +206 -109
  907. data/lib/puppet/type/filebucket.rb +24 -18
  908. data/lib/puppet/type/group.rb +22 -19
  909. data/lib/puppet/type/notify.rb +8 -6
  910. data/lib/puppet/type/package.rb +206 -60
  911. data/lib/puppet/type/resources.rb +44 -42
  912. data/lib/puppet/type/schedule.rb +25 -21
  913. data/lib/puppet/type/service.rb +79 -24
  914. data/lib/puppet/type/stage.rb +2 -0
  915. data/lib/puppet/type/tidy.rb +79 -48
  916. data/lib/puppet/type/user.rb +146 -102
  917. data/lib/puppet/type/whit.rb +2 -1
  918. data/lib/puppet/type.rb +315 -359
  919. data/lib/puppet/util/at_fork/noop.rb +2 -0
  920. data/lib/puppet/util/at_fork/solaris.rb +38 -40
  921. data/lib/puppet/util/at_fork.rb +7 -5
  922. data/lib/puppet/util/autoload.rb +28 -41
  923. data/lib/puppet/util/backups.rb +13 -11
  924. data/lib/puppet/util/character_encoding.rb +18 -11
  925. data/lib/puppet/util/checksums.rb +37 -19
  926. data/lib/puppet/util/classgen.rb +29 -28
  927. data/lib/puppet/util/colors.rb +68 -66
  928. data/lib/puppet/util/command_line/puppet_option_parser.rb +20 -18
  929. data/lib/puppet/util/command_line/trollop.rb +695 -673
  930. data/lib/puppet/util/command_line.rb +25 -15
  931. data/lib/puppet/util/constant_inflector.rb +4 -3
  932. data/lib/puppet/util/diff.rb +21 -20
  933. data/lib/puppet/util/docs.rb +8 -4
  934. data/lib/puppet/util/errors.rb +13 -11
  935. data/lib/puppet/util/execution.rb +75 -55
  936. data/lib/puppet/util/execution_stub.rb +2 -0
  937. data/lib/puppet/util/feature.rb +26 -14
  938. data/lib/puppet/util/file_watcher.rb +3 -0
  939. data/lib/puppet/util/fileparsing.rb +71 -64
  940. data/lib/puppet/util/filetype.rb +46 -45
  941. data/lib/puppet/util/http_proxy.rb +4 -205
  942. data/lib/puppet/util/inifile.rb +15 -20
  943. data/lib/puppet/util/instance_loader.rb +19 -11
  944. data/lib/puppet/util/json.rb +27 -2
  945. data/lib/puppet/util/json_lockfile.rb +5 -2
  946. data/lib/puppet/util/ldap/connection.rb +26 -22
  947. data/lib/puppet/util/ldap/generator.rb +3 -1
  948. data/lib/puppet/util/ldap/manager.rb +29 -27
  949. data/lib/puppet/util/ldap.rb +2 -0
  950. data/lib/puppet/util/libuser.rb +3 -2
  951. data/lib/puppet/util/limits.rb +3 -1
  952. data/lib/puppet/util/lockfile.rb +8 -8
  953. data/lib/puppet/util/log/destination.rb +4 -3
  954. data/lib/puppet/util/log/destinations.rb +27 -33
  955. data/lib/puppet/util/log.rb +71 -50
  956. data/lib/puppet/util/logging.rb +69 -77
  957. data/lib/puppet/util/metaid.rb +2 -1
  958. data/lib/puppet/util/metric.rb +15 -11
  959. data/lib/puppet/util/monkey_patches.rb +58 -52
  960. data/lib/puppet/util/multi_match.rb +9 -5
  961. data/lib/puppet/util/network_device/base.rb +6 -5
  962. data/lib/puppet/util/network_device/config.rb +11 -11
  963. data/lib/puppet/util/network_device/transport/base.rb +3 -3
  964. data/lib/puppet/util/network_device/transport.rb +3 -1
  965. data/lib/puppet/util/network_device.rb +2 -0
  966. data/lib/puppet/util/package/version/debian.rb +177 -0
  967. data/lib/puppet/util/package/version/gem.rb +18 -0
  968. data/lib/puppet/util/package/version/pip.rb +173 -0
  969. data/lib/puppet/util/package/version/range/eq.rb +17 -0
  970. data/lib/puppet/util/package/version/range/gt.rb +17 -0
  971. data/lib/puppet/util/package/version/range/gt_eq.rb +17 -0
  972. data/lib/puppet/util/package/version/range/lt.rb +17 -0
  973. data/lib/puppet/util/package/version/range/lt_eq.rb +17 -0
  974. data/lib/puppet/util/package/version/range/min_max.rb +26 -0
  975. data/lib/puppet/util/package/version/range/simple.rb +13 -0
  976. data/lib/puppet/util/package/version/range.rb +57 -0
  977. data/lib/puppet/util/package/version/rpm.rb +75 -0
  978. data/lib/puppet/util/package.rb +29 -17
  979. data/lib/puppet/util/pidlock.rb +49 -8
  980. data/lib/puppet/util/platform.rb +40 -6
  981. data/lib/puppet/util/plist.rb +23 -17
  982. data/lib/puppet/util/posix.rb +81 -27
  983. data/lib/puppet/util/profiler/aggregate.rb +7 -10
  984. data/lib/puppet/util/profiler/around_profiler.rb +2 -1
  985. data/lib/puppet/util/profiler/logging.rb +3 -1
  986. data/lib/puppet/util/profiler/object_counts.rb +3 -1
  987. data/lib/puppet/util/profiler/wall_clock.rb +5 -4
  988. data/lib/puppet/util/profiler.rb +5 -3
  989. data/lib/puppet/util/provider_features.rb +15 -13
  990. data/lib/puppet/util/psych_support.rb +2 -0
  991. data/lib/puppet/util/rdoc/code_objects.rb +20 -21
  992. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +120 -128
  993. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
  994. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
  995. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
  996. data/lib/puppet/util/rdoc/parser.rb +8 -6
  997. data/lib/puppet/util/rdoc.rb +12 -18
  998. data/lib/puppet/util/reference.rb +9 -33
  999. data/lib/puppet/util/resource_template.rb +7 -5
  1000. data/lib/puppet/util/retry_action.rb +7 -6
  1001. data/lib/puppet/util/rpm_compare.rb +196 -0
  1002. data/lib/puppet/util/rubygems.rb +9 -5
  1003. data/lib/puppet/util/run_mode.rb +59 -5
  1004. data/lib/puppet/util/selinux.rb +82 -27
  1005. data/lib/puppet/util/skip_tags.rb +7 -1
  1006. data/lib/puppet/util/splayer.rb +2 -0
  1007. data/lib/puppet/util/storage.rb +14 -15
  1008. data/lib/puppet/util/suidmanager.rb +40 -40
  1009. data/lib/puppet/util/symbolic_file_mode.rb +96 -84
  1010. data/lib/puppet/util/tag_set.rb +5 -3
  1011. data/lib/puppet/util/tagging.rb +14 -14
  1012. data/lib/puppet/util/terminal.rb +6 -4
  1013. data/lib/puppet/util/user_attr.rb +9 -7
  1014. data/lib/puppet/util/warnings.rb +4 -0
  1015. data/lib/puppet/util/watched_file.rb +5 -2
  1016. data/lib/puppet/util/watcher/change_watcher.rb +2 -0
  1017. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
  1018. data/lib/puppet/util/watcher/timer.rb +2 -0
  1019. data/lib/puppet/util/watcher.rb +8 -8
  1020. data/lib/puppet/util/windows/access_control_entry.rb +4 -2
  1021. data/lib/puppet/util/windows/access_control_list.rb +10 -7
  1022. data/lib/puppet/util/windows/adsi.rb +168 -77
  1023. data/lib/puppet/util/windows/com.rb +10 -7
  1024. data/lib/puppet/util/windows/daemon.rb +340 -0
  1025. data/lib/puppet/util/windows/error.rb +9 -6
  1026. data/lib/puppet/util/windows/eventlog.rb +18 -24
  1027. data/lib/puppet/util/windows/file.rb +57 -287
  1028. data/lib/puppet/util/windows/monkey_patches/process.rb +413 -0
  1029. data/lib/puppet/util/windows/principal.rb +55 -43
  1030. data/lib/puppet/util/windows/process.rb +87 -244
  1031. data/lib/puppet/util/windows/registry.rb +117 -72
  1032. data/lib/puppet/util/windows/root_certs.rb +7 -5
  1033. data/lib/puppet/util/windows/security.rb +118 -92
  1034. data/lib/puppet/util/windows/security_descriptor.rb +3 -1
  1035. data/lib/puppet/util/windows/service.rb +190 -466
  1036. data/lib/puppet/util/windows/sid.rb +37 -28
  1037. data/lib/puppet/util/windows/string.rb +14 -13
  1038. data/lib/puppet/util/windows/user.rb +277 -33
  1039. data/lib/puppet/util/windows.rb +32 -26
  1040. data/lib/puppet/util/yaml.rb +17 -22
  1041. data/lib/puppet/util.rb +230 -182
  1042. data/lib/puppet/vendor/require_vendored.rb +0 -2
  1043. data/lib/puppet/vendor.rb +5 -3
  1044. data/lib/puppet/version.rb +6 -6
  1045. data/lib/puppet/x509/cert_provider.rb +405 -0
  1046. data/lib/puppet/x509/pem_store.rb +57 -0
  1047. data/lib/puppet/x509.rb +13 -0
  1048. data/lib/puppet.rb +124 -79
  1049. data/lib/puppet_pal.rb +7 -1132
  1050. data/lib/puppet_x.rb +2 -0
  1051. data/locales/puppet.pot +3096 -3030
  1052. data/man/man5/puppet.conf.5 +637 -299
  1053. data/man/man8/puppet-agent.8 +86 -69
  1054. data/man/man8/puppet-apply.8 +7 -4
  1055. data/man/man8/puppet-catalog.8 +38 -14
  1056. data/man/man8/puppet-config.8 +6 -6
  1057. data/man/man8/puppet-describe.8 +1 -1
  1058. data/man/man8/puppet-device.8 +6 -3
  1059. data/man/man8/puppet-doc.8 +1 -1
  1060. data/man/man8/puppet-epp.8 +1 -1
  1061. data/man/man8/puppet-facts.8 +65 -17
  1062. data/man/man8/puppet-filebucket.8 +26 -7
  1063. data/man/man8/puppet-generate.8 +1 -1
  1064. data/man/man8/puppet-help.8 +6 -3
  1065. data/man/man8/puppet-lookup.8 +9 -6
  1066. data/man/man8/puppet-module.8 +3 -57
  1067. data/man/man8/puppet-node.8 +11 -12
  1068. data/man/man8/puppet-parser.8 +1 -1
  1069. data/man/man8/puppet-plugin.8 +1 -1
  1070. data/man/man8/puppet-report.8 +8 -9
  1071. data/man/man8/puppet-resource.8 +5 -1
  1072. data/man/man8/puppet-script.8 +5 -2
  1073. data/man/man8/puppet-ssl.8 +14 -2
  1074. data/man/man8/puppet.8 +3 -3
  1075. metadata +209 -2622
  1076. data/COMMITTERS.md +0 -244
  1077. data/CONTRIBUTING.md +0 -167
  1078. data/MAINTAINERS +0 -47
  1079. data/conf/auth.conf +0 -150
  1080. data/examples/hiera/etc/hiera.yaml +0 -15
  1081. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  1082. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  1083. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  1084. data/examples/hiera/etc/puppet.conf +0 -3
  1085. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  1086. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  1087. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  1088. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  1089. data/ext/README.environment +0 -8
  1090. data/ext/autotest/Rakefile +0 -8
  1091. data/ext/autotest/config +0 -43
  1092. data/ext/autotest/readme.rst +0 -16
  1093. data/ext/cert_inspector +0 -140
  1094. data/ext/dbfix.sql +0 -132
  1095. data/ext/debian/README.Debian +0 -8
  1096. data/ext/debian/README.source +0 -2
  1097. data/ext/debian/TODO.Debian +0 -1
  1098. data/ext/debian/changelog.erb +0 -1122
  1099. data/ext/debian/compat +0 -1
  1100. data/ext/debian/control +0 -144
  1101. data/ext/debian/copyright +0 -339
  1102. data/ext/debian/docs +0 -1
  1103. data/ext/debian/fileserver.conf +0 -41
  1104. data/ext/debian/puppet-common.dirs +0 -13
  1105. data/ext/debian/puppet-common.install +0 -3
  1106. data/ext/debian/puppet-common.lintian-overrides +0 -5
  1107. data/ext/debian/puppet-common.manpages +0 -28
  1108. data/ext/debian/puppet-common.postinst +0 -35
  1109. data/ext/debian/puppet-common.postrm +0 -33
  1110. data/ext/debian/puppet-el.dirs +0 -1
  1111. data/ext/debian/puppet-el.emacsen-install +0 -25
  1112. data/ext/debian/puppet-el.emacsen-remove +0 -11
  1113. data/ext/debian/puppet-el.emacsen-startup +0 -9
  1114. data/ext/debian/puppet-el.install +0 -1
  1115. data/ext/debian/puppet-testsuite.install +0 -2
  1116. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  1117. data/ext/debian/puppet.lintian-overrides +0 -3
  1118. data/ext/debian/puppet.logrotate +0 -20
  1119. data/ext/debian/puppet.postinst +0 -20
  1120. data/ext/debian/puppet.postrm +0 -20
  1121. data/ext/debian/puppet.preinst +0 -20
  1122. data/ext/debian/puppetmaster-common.install +0 -2
  1123. data/ext/debian/puppetmaster-common.manpages +0 -2
  1124. data/ext/debian/puppetmaster-common.postinst +0 -6
  1125. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  1126. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  1127. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  1128. data/ext/debian/puppetmaster.README.debian +0 -17
  1129. data/ext/debian/puppetmaster.default +0 -14
  1130. data/ext/debian/puppetmaster.init +0 -137
  1131. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  1132. data/ext/debian/puppetmaster.postinst +0 -20
  1133. data/ext/debian/puppetmaster.postrm +0 -5
  1134. data/ext/debian/puppetmaster.preinst +0 -22
  1135. data/ext/debian/rules +0 -132
  1136. data/ext/debian/source/format +0 -1
  1137. data/ext/debian/source/options +0 -1
  1138. data/ext/debian/vim-puppet.README.Debian +0 -13
  1139. data/ext/debian/vim-puppet.dirs +0 -5
  1140. data/ext/debian/vim-puppet.yaml +0 -7
  1141. data/ext/debian/watch +0 -2
  1142. data/ext/envpuppet +0 -139
  1143. data/ext/envpuppet.bat +0 -14
  1144. data/ext/freebsd/puppetd +0 -26
  1145. data/ext/freebsd/puppetmasterd +0 -26
  1146. data/ext/gentoo/conf.d/puppet +0 -5
  1147. data/ext/gentoo/conf.d/puppetmaster +0 -12
  1148. data/ext/gentoo/init.d/puppet +0 -38
  1149. data/ext/gentoo/init.d/puppetmaster +0 -51
  1150. data/ext/gentoo/puppet/fileserver.conf +0 -41
  1151. data/ext/ips/puppet-agent +0 -44
  1152. data/ext/ips/puppet-master +0 -44
  1153. data/ext/ips/puppet.p5m.erb +0 -12
  1154. data/ext/ips/puppetagent.xml +0 -42
  1155. data/ext/ips/puppetmaster.xml +0 -42
  1156. data/ext/ips/rules +0 -19
  1157. data/ext/ips/transforms +0 -34
  1158. data/ext/ldap/puppet.schema +0 -24
  1159. data/ext/logcheck/puppet +0 -23
  1160. data/ext/nagios/check_puppet.rb +0 -123
  1161. data/ext/osx/file_mapping.yaml +0 -33
  1162. data/ext/osx/postflight.erb +0 -109
  1163. data/ext/osx/preflight.erb +0 -52
  1164. data/ext/osx/prototype.plist.erb +0 -38
  1165. data/ext/puppet-test +0 -476
  1166. data/ext/pure_ruby_dsl/dsl_test.rb +0 -7
  1167. data/ext/redhat/fileserver.conf +0 -41
  1168. data/ext/redhat/logrotate +0 -21
  1169. data/ext/redhat/puppet.spec.erb +0 -842
  1170. data/ext/redhat/server.init +0 -128
  1171. data/ext/redhat/server.sysconfig +0 -13
  1172. data/ext/regexp_nodes/regexp_nodes.rb +0 -270
  1173. data/ext/solaris/pkginfo +0 -6
  1174. data/ext/solaris/smf/puppetd.xml +0 -77
  1175. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  1176. data/ext/solaris/smf/svc-puppetd +0 -71
  1177. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  1178. data/ext/suse/puppet.spec +0 -310
  1179. data/ext/suse/server.init +0 -173
  1180. data/ext/upload_facts.rb +0 -119
  1181. data/ext/windows/eventlog/Rakefile +0 -32
  1182. data/ext/windows/eventlog/puppetres.dll +0 -0
  1183. data/ext/windows/eventlog/puppetres.mc +0 -18
  1184. data/ext/yaml_nodes.rb +0 -105
  1185. data/lib/puppet/application/cert.rb +0 -76
  1186. data/lib/puppet/application/key.rb +0 -4
  1187. data/lib/puppet/application/man.rb +0 -4
  1188. data/lib/puppet/application/status.rb +0 -4
  1189. data/lib/puppet/external/pson/common.rb +0 -374
  1190. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1191. data/lib/puppet/external/pson/pure/parser.rb +0 -307
  1192. data/lib/puppet/external/pson/pure.rb +0 -15
  1193. data/lib/puppet/external/pson/version.rb +0 -8
  1194. data/lib/puppet/face/key.rb +0 -16
  1195. data/lib/puppet/face/man.rb +0 -145
  1196. data/lib/puppet/face/module/build.rb +0 -14
  1197. data/lib/puppet/face/module/generate.rb +0 -14
  1198. data/lib/puppet/face/module/search.rb +0 -98
  1199. data/lib/puppet/face/status.rb +0 -51
  1200. data/lib/puppet/indirector/certificate/file.rb +0 -8
  1201. data/lib/puppet/indirector/certificate/rest.rb +0 -16
  1202. data/lib/puppet/indirector/certificate_request/file.rb +0 -8
  1203. data/lib/puppet/indirector/certificate_request/memory.rb +0 -6
  1204. data/lib/puppet/indirector/certificate_request/rest.rb +0 -10
  1205. data/lib/puppet/indirector/file_content/http.rb +0 -17
  1206. data/lib/puppet/indirector/key/file.rb +0 -45
  1207. data/lib/puppet/indirector/key/memory.rb +0 -6
  1208. data/lib/puppet/indirector/ssl_file.rb +0 -160
  1209. data/lib/puppet/indirector/status/local.rb +0 -12
  1210. data/lib/puppet/indirector/status/rest.rb +0 -9
  1211. data/lib/puppet/indirector/status.rb +0 -3
  1212. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  1213. data/lib/puppet/network/auth_config_parser.rb +0 -90
  1214. data/lib/puppet/network/authstore.rb +0 -282
  1215. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  1216. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -85
  1217. data/lib/puppet/network/http/compression.rb +0 -120
  1218. data/lib/puppet/network/http/factory.rb +0 -55
  1219. data/lib/puppet/network/http/nocache_pool.rb +0 -21
  1220. data/lib/puppet/network/http/pool.rb +0 -129
  1221. data/lib/puppet/network/http/session.rb +0 -17
  1222. data/lib/puppet/network/http/site.rb +0 -39
  1223. data/lib/puppet/network/resolver.rb +0 -158
  1224. data/lib/puppet/network/rest_controller.rb +0 -2
  1225. data/lib/puppet/network/rights.rb +0 -209
  1226. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -64
  1227. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
  1228. data/lib/puppet/parser/environment_compiler.rb +0 -199
  1229. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  1230. data/lib/puppet/pops/types/enumeration.rb +0 -16
  1231. data/lib/puppet/resource/capability_finder.rb +0 -150
  1232. data/lib/puppet/rest/client.rb +0 -83
  1233. data/lib/puppet/rest/errors.rb +0 -14
  1234. data/lib/puppet/rest/response.rb +0 -34
  1235. data/lib/puppet/rest/route.rb +0 -84
  1236. data/lib/puppet/rest/routes.rb +0 -154
  1237. data/lib/puppet/rest/ssl_context.rb +0 -13
  1238. data/lib/puppet/ssl/host.rb +0 -636
  1239. data/lib/puppet/ssl/key.rb +0 -59
  1240. data/lib/puppet/ssl/validator/default_validator.rb +0 -187
  1241. data/lib/puppet/ssl/validator/no_validator.rb +0 -20
  1242. data/lib/puppet/ssl/validator.rb +0 -60
  1243. data/lib/puppet/status.rb +0 -40
  1244. data/lib/puppet/util/connection.rb +0 -74
  1245. data/lib/puppet/util/ssl.rb +0 -92
  1246. data/lib/puppet/util/windows/api_types.rb +0 -282
  1247. data/lib/puppet/vendor/deep_merge/CHANGELOG +0 -45
  1248. data/lib/puppet/vendor/deep_merge/Gemfile +0 -3
  1249. data/lib/puppet/vendor/deep_merge/LICENSE +0 -21
  1250. data/lib/puppet/vendor/deep_merge/PUPPET_README.md +0 -6
  1251. data/lib/puppet/vendor/deep_merge/README.md +0 -113
  1252. data/lib/puppet/vendor/deep_merge/Rakefile +0 -19
  1253. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +0 -35
  1254. data/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +0 -210
  1255. data/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +0 -28
  1256. data/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +0 -27
  1257. data/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +0 -2
  1258. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +0 -608
  1259. data/lib/puppet/vendor/load_deep_merge.rb +0 -1
  1260. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  1261. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  1262. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  1263. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  1264. data/lib/puppet/vendor/pathspec/README.md +0 -53
  1265. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  1266. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  1267. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  1268. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  1269. data/locales/ja/puppet.po +0 -11143
  1270. data/man/man8/puppet-key.8 +0 -126
  1271. data/man/man8/puppet-man.8 +0 -76
  1272. data/man/man8/puppet-status.8 +0 -108
  1273. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +0 -8
  1274. data/spec/fixtures/hiera.yaml +0 -9
  1275. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +0 -2
  1276. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +0 -6
  1277. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  1278. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +0 -2
  1279. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +0 -2
  1280. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +0 -6
  1281. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +0 -1
  1282. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +0 -2
  1283. data/spec/fixtures/java.tgz +0 -0
  1284. data/spec/fixtures/manifests/site.pp +0 -0
  1285. data/spec/fixtures/module.tar.gz +0 -0
  1286. data/spec/fixtures/releases/jamtur01-apache/Modulefile +0 -2
  1287. data/spec/fixtures/releases/jamtur01-apache/files/httpd +0 -24
  1288. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +0 -18
  1289. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +0 -21
  1290. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +0 -12
  1291. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +0 -5
  1292. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +0 -34
  1293. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +0 -17
  1294. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +0 -5
  1295. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +0 -15
  1296. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +0 -15
  1297. data/spec/fixtures/releases/jamtur01-apache/metadata.json +0 -1
  1298. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +0 -20
  1299. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +0 -1
  1300. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +0 -1
  1301. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +0 -1
  1302. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +0 -1
  1303. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +0 -1
  1304. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +0 -2
  1305. data/spec/fixtures/stdlib.tgz +0 -0
  1306. data/spec/fixtures/unit/application/environments/production/data/common.yaml +0 -24
  1307. data/spec/fixtures/unit/application/environments/production/environment.conf +0 -1
  1308. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +0 -1
  1309. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +0 -1
  1310. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +0 -10
  1311. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +0 -1
  1312. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +0 -3
  1313. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +0 -2
  1314. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +0 -5
  1315. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +0 -5
  1316. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +0 -3
  1317. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +0 -2
  1318. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +0 -5
  1319. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +0 -5
  1320. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +0 -2
  1321. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +0 -2
  1322. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +0 -1
  1323. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +0 -2
  1324. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +0 -5
  1325. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +0 -9
  1326. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +0 -3
  1327. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +0 -2
  1328. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +0 -3
  1329. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +0 -2
  1330. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +0 -3
  1331. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +0 -3
  1332. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +0 -2
  1333. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +0 -2
  1334. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +0 -22
  1335. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +0 -5
  1336. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +0 -48
  1337. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +0 -2
  1338. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +0 -1
  1339. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +0 -30
  1340. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +0 -13
  1341. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +0 -9
  1342. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +0 -4
  1343. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +0 -4
  1344. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +0 -2
  1345. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +0 -7
  1346. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +0 -1
  1347. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +0 -3
  1348. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +0 -2
  1349. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +0 -3
  1350. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +0 -1
  1351. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +0 -1
  1352. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +0 -2
  1353. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +0 -2
  1354. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +0 -20
  1355. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +0 -5
  1356. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +0 -9
  1357. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +0 -4
  1358. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +0 -4
  1359. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +0 -2
  1360. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +0 -7
  1361. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +0 -1
  1362. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +0 -6
  1363. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +0 -5
  1364. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +0 -2
  1365. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +0 -9
  1366. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +0 -4
  1367. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +0 -5
  1368. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +0 -3
  1369. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +0 -9
  1370. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +0 -2
  1371. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +0 -9
  1372. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  1373. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +0 -10
  1374. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +0 -9
  1375. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +0 -6
  1376. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +0 -9
  1377. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +0 -9
  1378. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +0 -22
  1379. data/spec/fixtures/unit/functions/lookup/data/common.yaml +0 -19
  1380. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +0 -18
  1381. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +0 -7
  1382. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +0 -19
  1383. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/environment.conf +0 -2
  1384. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/lib/puppet/functions/environment/data.rb +0 -13
  1385. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  1386. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/manifests/init.pp +0 -8
  1387. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +0 -9
  1388. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -7
  1389. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +0 -2
  1390. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +0 -9
  1391. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -9
  1392. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/manifests/init.pp +0 -2
  1393. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +0 -9
  1394. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  1395. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +0 -5
  1396. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +0 -2
  1397. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +0 -9
  1398. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +0 -1
  1399. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +0 -5
  1400. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +0 -2
  1401. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +0 -9
  1402. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -1
  1403. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +0 -5
  1404. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -2
  1405. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +0 -9
  1406. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +0 -2
  1407. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +0 -5
  1408. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +0 -2
  1409. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +0 -9
  1410. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +0 -4
  1411. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +0 -8
  1412. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +0 -5
  1413. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +0 -9
  1414. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -9
  1415. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +0 -3
  1416. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +0 -9
  1417. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/no_provider/manifests/init.pp +0 -2
  1418. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +0 -10
  1419. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +0 -1
  1420. data/spec/fixtures/unit/indirector/hiera/global.yaml +0 -10
  1421. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +0 -1
  1422. data/spec/fixtures/unit/module/trailing-comma.json +0 -24
  1423. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +0 -3
  1424. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +0 -3
  1425. data/spec/fixtures/unit/parser/lexer/aliastest.pp +0 -16
  1426. data/spec/fixtures/unit/parser/lexer/append.pp +0 -11
  1427. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +0 -14
  1428. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +0 -8
  1429. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +0 -3
  1430. data/spec/fixtures/unit/parser/lexer/casestatement.pp +0 -65
  1431. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +0 -15
  1432. data/spec/fixtures/unit/parser/lexer/classincludes.pp +0 -17
  1433. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +0 -11
  1434. data/spec/fixtures/unit/parser/lexer/collection.pp +0 -10
  1435. data/spec/fixtures/unit/parser/lexer/collection_override.pp +0 -8
  1436. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  1437. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +0 -11
  1438. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +0 -8
  1439. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +0 -23
  1440. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +0 -17
  1441. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +0 -9
  1442. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +0 -3
  1443. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +0 -9
  1444. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +0 -3
  1445. data/spec/fixtures/unit/parser/lexer/filecreate.pp +0 -11
  1446. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +0 -5
  1447. data/spec/fixtures/unit/parser/lexer/fqparents.pp +0 -11
  1448. data/spec/fixtures/unit/parser/lexer/funccomma.pp +0 -5
  1449. data/spec/fixtures/unit/parser/lexer/hash.pp +0 -33
  1450. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +0 -12
  1451. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +0 -15
  1452. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +0 -10
  1453. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +0 -9
  1454. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +0 -7
  1455. data/spec/fixtures/unit/parser/lexer/multisubs.pp +0 -13
  1456. data/spec/fixtures/unit/parser/lexer/namevartest.pp +0 -9
  1457. data/spec/fixtures/unit/parser/lexer/scopetest.pp +0 -13
  1458. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +0 -49
  1459. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +0 -5
  1460. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +0 -38
  1461. data/spec/fixtures/unit/parser/lexer/singleary.pp +0 -19
  1462. data/spec/fixtures/unit/parser/lexer/singlequote.pp +0 -11
  1463. data/spec/fixtures/unit/parser/lexer/singleselector.pp +0 -22
  1464. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -11
  1465. data/spec/fixtures/unit/parser/lexer/tag.pp +0 -9
  1466. data/spec/fixtures/unit/parser/lexer/tagged.pp +0 -35
  1467. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +0 -14
  1468. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +0 -10
  1469. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +0 -10
  1470. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +0 -20
  1471. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +0 -18
  1472. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +0 -5
  1473. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +0 -6
  1474. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +0 -6
  1475. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +0 -9
  1476. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +0 -3
  1477. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/callee.rb +0 -5
  1478. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +0 -6
  1479. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +0 -5
  1480. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +0 -8
  1481. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +0 -1
  1482. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +0 -5
  1483. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +0 -5
  1484. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +0 -5
  1485. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +0 -5
  1486. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller.rb +0 -5
  1487. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +0 -5
  1488. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +0 -5
  1489. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +0 -5
  1490. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +0 -5
  1491. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +0 -87
  1492. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/metadata.json +0 -10
  1493. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +0 -1
  1494. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +0 -1
  1495. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +0 -11
  1496. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb +0 -8
  1497. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb +0 -8
  1498. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json +0 -9
  1499. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +0 -3
  1500. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +0 -3
  1501. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +0 -3
  1502. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller.rb +0 -5
  1503. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller_ws.rb +0 -12
  1504. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +0 -5
  1505. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/metadata.json +0 -9
  1506. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +0 -3
  1507. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +0 -3
  1508. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +0 -10
  1509. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +0 -10
  1510. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +0 -3
  1511. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +0 -3
  1512. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +0 -5
  1513. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +0 -5
  1514. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +0 -3
  1515. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +0 -10
  1516. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +0 -6
  1517. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +0 -3
  1518. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +0 -16
  1519. data/spec/fixtures/unit/pops/parser/lexer/append.pp +0 -11
  1520. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +0 -14
  1521. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +0 -8
  1522. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +0 -3
  1523. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +0 -65
  1524. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +0 -15
  1525. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +0 -17
  1526. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +0 -11
  1527. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +0 -10
  1528. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +0 -8
  1529. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  1530. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +0 -11
  1531. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +0 -8
  1532. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +0 -23
  1533. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +0 -17
  1534. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +0 -9
  1535. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +0 -3
  1536. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +0 -9
  1537. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +0 -3
  1538. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +0 -11
  1539. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +0 -5
  1540. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +0 -11
  1541. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +0 -5
  1542. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +0 -33
  1543. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +0 -12
  1544. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +0 -15
  1545. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +0 -10
  1546. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +0 -9
  1547. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +0 -7
  1548. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +0 -13
  1549. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +0 -9
  1550. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +0 -13
  1551. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +0 -49
  1552. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +0 -5
  1553. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +0 -38
  1554. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +0 -19
  1555. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +0 -11
  1556. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +0 -22
  1557. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -11
  1558. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +0 -9
  1559. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +0 -35
  1560. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +0 -14
  1561. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +0 -1
  1562. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +0 -1
  1563. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +0 -272
  1564. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +0 -3
  1565. data/spec/fixtures/unit/provider/cron/parsed/managed +0 -6
  1566. data/spec/fixtures/unit/provider/cron/parsed/simple +0 -9
  1567. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +0 -4
  1568. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +0 -14
  1569. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +0 -19
  1570. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +0 -10
  1571. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +0 -1
  1572. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +0 -2
  1573. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +0 -3
  1574. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +0 -1
  1575. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +0 -2
  1576. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +0 -1
  1577. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +0 -1
  1578. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +0 -1
  1579. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +0 -1
  1580. data/spec/fixtures/unit/provider/package/pkg/incomplete +0 -1
  1581. data/spec/fixtures/unit/provider/package/pkg/solaris11 +0 -2
  1582. data/spec/fixtures/unit/provider/package/pkg/unknown_status +0 -12
  1583. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
  1584. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +0 -1
  1585. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  1586. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -3
  1587. data/spec/fixtures/unit/provider/package/sun/dummy.server +0 -12
  1588. data/spec/fixtures/unit/provider/package/sun/simple +0 -24
  1589. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +0 -187
  1590. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +0 -201
  1591. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +0 -195
  1592. data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +0 -36
  1593. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +0 -184
  1594. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +0 -13
  1595. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +0 -369
  1596. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +0 -3
  1597. data/spec/fixtures/unit/provider/parsedfile/simple.txt +0 -7
  1598. data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +0 -3
  1599. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +0 -30
  1600. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +0 -6
  1601. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +0 -8
  1602. data/spec/fixtures/unit/provider/service/openrc/rcstatus +0 -43
  1603. data/spec/fixtures/unit/provider/service/smf/svcs.out +0 -4
  1604. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
  1605. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
  1606. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -7
  1607. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -32
  1608. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +0 -2
  1609. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +0 -3
  1610. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +0 -30
  1611. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +0 -33
  1612. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +0 -28
  1613. data/spec/fixtures/unit/type/user/authorized_keys +0 -6
  1614. data/spec/fixtures/unit/util/filetype/aixtab_output +0 -44
  1615. data/spec/fixtures/unit/util/filetype/suntab_output +0 -9
  1616. data/spec/fixtures/unit/util/monkey_patches/x509.pem +0 -32
  1617. data/spec/fixtures/unit/util/rdoc/basic.pp +0 -16
  1618. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +0 -24
  1619. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +0 -24
  1620. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +0 -24
  1621. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +0 -205
  1622. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +0 -213
  1623. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +0 -213
  1624. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +0 -205
  1625. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +0 -197
  1626. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +0 -205
  1627. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +0 -205
  1628. data/spec/fixtures/yaml/report2.6.x.yaml +0 -190
  1629. data/spec/fixtures/yaml/test.local.yaml +0 -16
  1630. data/spec/integration/agent/logging_spec.rb +0 -181
  1631. data/spec/integration/application/apply_spec.rb +0 -535
  1632. data/spec/integration/application/doc_spec.rb +0 -15
  1633. data/spec/integration/application/lookup_spec.rb +0 -176
  1634. data/spec/integration/configurer_spec.rb +0 -64
  1635. data/spec/integration/data_binding_spec.rb +0 -196
  1636. data/spec/integration/defaults_spec.rb +0 -254
  1637. data/spec/integration/directory_environments_spec.rb +0 -67
  1638. data/spec/integration/environments/default_manifest_spec.rb +0 -215
  1639. data/spec/integration/environments/setting_hooks_spec.rb +0 -27
  1640. data/spec/integration/environments/settings_interpolation_spec.rb +0 -110
  1641. data/spec/integration/environments/settings_spec.rb +0 -128
  1642. data/spec/integration/faces/config_spec.rb +0 -92
  1643. data/spec/integration/faces/documentation_spec.rb +0 -58
  1644. data/spec/integration/faces/plugin_spec.rb +0 -61
  1645. data/spec/integration/file_bucket/file_spec.rb +0 -52
  1646. data/spec/integration/file_serving/content_spec.rb +0 -8
  1647. data/spec/integration/file_serving/fileset_spec.rb +0 -13
  1648. data/spec/integration/file_serving/metadata_spec.rb +0 -9
  1649. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -21
  1650. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  1651. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -76
  1652. data/spec/integration/indirector/direct_file_server_spec.rb +0 -92
  1653. data/spec/integration/indirector/facts/facter_spec.rb +0 -109
  1654. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -109
  1655. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -78
  1656. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  1657. data/spec/integration/network/authconfig_spec.rb +0 -257
  1658. data/spec/integration/network/formats_spec.rb +0 -91
  1659. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -60
  1660. data/spec/integration/node/environment_spec.rb +0 -156
  1661. data/spec/integration/node/facts_spec.rb +0 -41
  1662. data/spec/integration/node_spec.rb +0 -78
  1663. data/spec/integration/parser/catalog_spec.rb +0 -110
  1664. data/spec/integration/parser/class_spec.rb +0 -33
  1665. data/spec/integration/parser/collection_spec.rb +0 -353
  1666. data/spec/integration/parser/compiler_spec.rb +0 -1199
  1667. data/spec/integration/parser/conditionals_spec.rb +0 -92
  1668. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -66
  1669. data/spec/integration/parser/environment_spec.rb +0 -47
  1670. data/spec/integration/parser/node_spec.rb +0 -172
  1671. data/spec/integration/parser/parameter_defaults_spec.rb +0 -358
  1672. data/spec/integration/parser/pcore_resource_spec.rb +0 -260
  1673. data/spec/integration/parser/resource_expressions_spec.rb +0 -222
  1674. data/spec/integration/parser/scope_spec.rb +0 -728
  1675. data/spec/integration/parser/script_compiler_spec.rb +0 -113
  1676. data/spec/integration/parser/undef_param_spec.rb +0 -95
  1677. data/spec/integration/provider/service/init_spec.rb +0 -48
  1678. data/spec/integration/provider/service/systemd_spec.rb +0 -24
  1679. data/spec/integration/provider/service/windows_spec.rb +0 -51
  1680. data/spec/integration/reference/providers_spec.rb +0 -22
  1681. data/spec/integration/reports_spec.rb +0 -14
  1682. data/spec/integration/resource/catalog_spec.rb +0 -50
  1683. data/spec/integration/resource/type_collection_spec.rb +0 -93
  1684. data/spec/integration/ssl/certificate_request_spec.rb +0 -45
  1685. data/spec/integration/ssl/host_spec.rb +0 -73
  1686. data/spec/integration/ssl/key_spec.rb +0 -100
  1687. data/spec/integration/test/test_helper_spec.rb +0 -32
  1688. data/spec/integration/transaction/report_spec.rb +0 -711
  1689. data/spec/integration/transaction_spec.rb +0 -559
  1690. data/spec/integration/type/exec_spec.rb +0 -77
  1691. data/spec/integration/type/file_spec.rb +0 -1965
  1692. data/spec/integration/type/package_spec.rb +0 -204
  1693. data/spec/integration/type/tidy_spec.rb +0 -46
  1694. data/spec/integration/type_spec.rb +0 -31
  1695. data/spec/integration/util/autoload_spec.rb +0 -105
  1696. data/spec/integration/util/execution_spec.rb +0 -55
  1697. data/spec/integration/util/rdoc/parser_spec.rb +0 -172
  1698. data/spec/integration/util/settings_spec.rb +0 -116
  1699. data/spec/integration/util/windows/adsi_spec.rb +0 -184
  1700. data/spec/integration/util/windows/principal_spec.rb +0 -259
  1701. data/spec/integration/util/windows/process_spec.rb +0 -112
  1702. data/spec/integration/util/windows/registry_spec.rb +0 -296
  1703. data/spec/integration/util/windows/security_spec.rb +0 -1012
  1704. data/spec/integration/util/windows/user_spec.rb +0 -167
  1705. data/spec/integration/util_spec.rb +0 -133
  1706. data/spec/lib/matchers/containment_matchers.rb +0 -52
  1707. data/spec/lib/matchers/include.rb +0 -27
  1708. data/spec/lib/matchers/include_in_order.rb +0 -20
  1709. data/spec/lib/matchers/include_in_order_spec.rb +0 -30
  1710. data/spec/lib/matchers/include_spec.rb +0 -32
  1711. data/spec/lib/matchers/json.rb +0 -132
  1712. data/spec/lib/matchers/match_tokens2.rb +0 -74
  1713. data/spec/lib/matchers/relationship_graph_matchers.rb +0 -48
  1714. data/spec/lib/matchers/resource.rb +0 -74
  1715. data/spec/lib/puppet/certificate_factory.rb +0 -218
  1716. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -8
  1717. data/spec/lib/puppet/face/basetest.rb +0 -51
  1718. data/spec/lib/puppet/face/huzzah/obsolete.rb +0 -6
  1719. data/spec/lib/puppet/face/huzzah.rb +0 -8
  1720. data/spec/lib/puppet/face/version_matching.rb +0 -12
  1721. data/spec/lib/puppet/indirector/indirector_testing/json.rb +0 -6
  1722. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +0 -7
  1723. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +0 -6
  1724. data/spec/lib/puppet/indirector_proxy.rb +0 -34
  1725. data/spec/lib/puppet/indirector_testing.rb +0 -31
  1726. data/spec/lib/puppet/test_ca.rb +0 -109
  1727. data/spec/lib/puppet_spec/character_encoding.rb +0 -12
  1728. data/spec/lib/puppet_spec/compiler.rb +0 -112
  1729. data/spec/lib/puppet_spec/files.rb +0 -108
  1730. data/spec/lib/puppet_spec/fixtures.rb +0 -28
  1731. data/spec/lib/puppet_spec/handler.rb +0 -53
  1732. data/spec/lib/puppet_spec/language.rb +0 -75
  1733. data/spec/lib/puppet_spec/matchers.rb +0 -161
  1734. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +0 -56
  1735. data/spec/lib/puppet_spec/module_tool/stub_source.rb +0 -136
  1736. data/spec/lib/puppet_spec/modules.rb +0 -57
  1737. data/spec/lib/puppet_spec/network.rb +0 -109
  1738. data/spec/lib/puppet_spec/pops.rb +0 -29
  1739. data/spec/lib/puppet_spec/scope.rb +0 -14
  1740. data/spec/lib/puppet_spec/settings.rb +0 -32
  1741. data/spec/lib/puppet_spec/ssl.rb +0 -265
  1742. data/spec/lib/puppet_spec/unindent.rb +0 -5
  1743. data/spec/lib/puppet_spec/validators.rb +0 -37
  1744. data/spec/lib/puppet_spec/verbose.rb +0 -9
  1745. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -21
  1746. data/spec/shared_behaviours/an_indirector_face.rb +0 -6
  1747. data/spec/shared_behaviours/documentation_on_faces.rb +0 -263
  1748. data/spec/shared_behaviours/file_server_terminus.rb +0 -39
  1749. data/spec/shared_behaviours/file_serving.rb +0 -75
  1750. data/spec/shared_behaviours/file_serving_model.rb +0 -53
  1751. data/spec/shared_behaviours/hiera_indirections.rb +0 -99
  1752. data/spec/shared_behaviours/iterative_functions.rb +0 -69
  1753. data/spec/shared_behaviours/memory_terminus.rb +0 -28
  1754. data/spec/shared_behaviours/path_parameters.rb +0 -160
  1755. data/spec/shared_behaviours/store_configs_terminus.rb +0 -21
  1756. data/spec/shared_behaviours/things_that_declare_options.rb +0 -262
  1757. data/spec/shared_contexts/checksum.rb +0 -65
  1758. data/spec/shared_contexts/digests.rb +0 -100
  1759. data/spec/shared_contexts/types_setup.rb +0 -202
  1760. data/spec/shared_examples/rhel_package_provider.rb +0 -356
  1761. data/spec/spec_helper.rb +0 -205
  1762. data/spec/unit/agent/disabler_spec.rb +0 -64
  1763. data/spec/unit/agent/locker_spec.rb +0 -100
  1764. data/spec/unit/agent_spec.rb +0 -348
  1765. data/spec/unit/application/agent_spec.rb +0 -596
  1766. data/spec/unit/application/apply_spec.rb +0 -550
  1767. data/spec/unit/application/config_spec.rb +0 -13
  1768. data/spec/unit/application/describe_spec.rb +0 -98
  1769. data/spec/unit/application/device_spec.rb +0 -626
  1770. data/spec/unit/application/doc_spec.rb +0 -335
  1771. data/spec/unit/application/face_base_spec.rb +0 -453
  1772. data/spec/unit/application/facts_spec.rb +0 -23
  1773. data/spec/unit/application/filebucket_spec.rb +0 -307
  1774. data/spec/unit/application/indirection_base_spec.rb +0 -48
  1775. data/spec/unit/application/lookup_spec.rb +0 -570
  1776. data/spec/unit/application/resource_spec.rb +0 -195
  1777. data/spec/unit/application/ssl_spec.rb +0 -391
  1778. data/spec/unit/application_spec.rb +0 -695
  1779. data/spec/unit/capability_spec.rb +0 -414
  1780. data/spec/unit/certificate_factory_spec.rb +0 -172
  1781. data/spec/unit/configurer/downloader_spec.rb +0 -233
  1782. data/spec/unit/configurer/fact_handler_spec.rb +0 -152
  1783. data/spec/unit/configurer/plugin_handler_spec.rb +0 -64
  1784. data/spec/unit/configurer_spec.rb +0 -1062
  1785. data/spec/unit/confine/exists_spec.rb +0 -80
  1786. data/spec/unit/confine/false_spec.rb +0 -52
  1787. data/spec/unit/confine/feature_spec.rb +0 -57
  1788. data/spec/unit/confine/true_spec.rb +0 -52
  1789. data/spec/unit/confine/variable_spec.rb +0 -106
  1790. data/spec/unit/confine_collection_spec.rb +0 -133
  1791. data/spec/unit/confine_spec.rb +0 -93
  1792. data/spec/unit/confiner_spec.rb +0 -62
  1793. data/spec/unit/context/trusted_information_spec.rb +0 -155
  1794. data/spec/unit/context_spec.rb +0 -136
  1795. data/spec/unit/daemon_spec.rb +0 -262
  1796. data/spec/unit/data_binding_spec.rb +0 -11
  1797. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -123
  1798. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -361
  1799. data/spec/unit/datatypes_spec.rb +0 -353
  1800. data/spec/unit/defaults_spec.rb +0 -193
  1801. data/spec/unit/environments_spec.rb +0 -739
  1802. data/spec/unit/etc_spec.rb +0 -467
  1803. data/spec/unit/external/pson_spec.rb +0 -61
  1804. data/spec/unit/face/catalog_spec.rb +0 -7
  1805. data/spec/unit/face/config_spec.rb +0 -353
  1806. data/spec/unit/face/epp_face_spec.rb +0 -386
  1807. data/spec/unit/face/facts_spec.rb +0 -62
  1808. data/spec/unit/face/generate_spec.rb +0 -230
  1809. data/spec/unit/face/help_spec.rb +0 -209
  1810. data/spec/unit/face/key_spec.rb +0 -10
  1811. data/spec/unit/face/man_spec.rb +0 -26
  1812. data/spec/unit/face/module/install_spec.rb +0 -42
  1813. data/spec/unit/face/module/list_spec.rb +0 -240
  1814. data/spec/unit/face/module/search_spec.rb +0 -212
  1815. data/spec/unit/face/module/uninstall_spec.rb +0 -49
  1816. data/spec/unit/face/module/upgrade_spec.rb +0 -26
  1817. data/spec/unit/face/module_spec.rb +0 -3
  1818. data/spec/unit/face/node_spec.rb +0 -129
  1819. data/spec/unit/face/parser_spec.rb +0 -236
  1820. data/spec/unit/face/plugin_spec.rb +0 -81
  1821. data/spec/unit/face/status_spec.rb +0 -10
  1822. data/spec/unit/face_spec.rb +0 -1
  1823. data/spec/unit/file_bucket/dipper_spec.rb +0 -401
  1824. data/spec/unit/file_bucket/file_spec.rb +0 -60
  1825. data/spec/unit/file_serving/base_spec.rb +0 -165
  1826. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -181
  1827. data/spec/unit/file_serving/configuration_spec.rb +0 -241
  1828. data/spec/unit/file_serving/content_spec.rb +0 -99
  1829. data/spec/unit/file_serving/fileset_spec.rb +0 -352
  1830. data/spec/unit/file_serving/http_metadata_spec.rb +0 -85
  1831. data/spec/unit/file_serving/metadata_spec.rb +0 -551
  1832. data/spec/unit/file_serving/mount/file_spec.rb +0 -189
  1833. data/spec/unit/file_serving/mount/locales_spec.rb +0 -73
  1834. data/spec/unit/file_serving/mount/modules_spec.rb +0 -70
  1835. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -73
  1836. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -73
  1837. data/spec/unit/file_serving/mount/tasks_spec.rb +0 -72
  1838. data/spec/unit/file_serving/mount_spec.rb +0 -31
  1839. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -112
  1840. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -66
  1841. data/spec/unit/file_system/path_pattern_spec.rb +0 -138
  1842. data/spec/unit/file_system/uniquefile_spec.rb +0 -204
  1843. data/spec/unit/file_system_spec.rb +0 -878
  1844. data/spec/unit/forge/errors_spec.rb +0 -80
  1845. data/spec/unit/forge/forge_spec.rb +0 -114
  1846. data/spec/unit/forge/module_release_spec.rb +0 -288
  1847. data/spec/unit/forge/repository_spec.rb +0 -251
  1848. data/spec/unit/forge_spec.rb +0 -276
  1849. data/spec/unit/functions/abs_spec.rb +0 -70
  1850. data/spec/unit/functions/all_spec.rb +0 -97
  1851. data/spec/unit/functions/annotate_spec.rb +0 -175
  1852. data/spec/unit/functions/any_spec.rb +0 -109
  1853. data/spec/unit/functions/assert_type_spec.rb +0 -97
  1854. data/spec/unit/functions/binary_file_spec.rb +0 -46
  1855. data/spec/unit/functions/break_spec.rb +0 -207
  1856. data/spec/unit/functions/call_spec.rb +0 -131
  1857. data/spec/unit/functions/camelcase_spec.rb +0 -34
  1858. data/spec/unit/functions/capitalize_spec.rb +0 -34
  1859. data/spec/unit/functions/ceiling_spec.rb +0 -65
  1860. data/spec/unit/functions/chomp_spec.rb +0 -46
  1861. data/spec/unit/functions/chop_spec.rb +0 -38
  1862. data/spec/unit/functions/compare_spec.rb +0 -147
  1863. data/spec/unit/functions/contain_spec.rb +0 -299
  1864. data/spec/unit/functions/convert_to_spec.rb +0 -25
  1865. data/spec/unit/functions/defined_spec.rb +0 -289
  1866. data/spec/unit/functions/dig_spec.rb +0 -58
  1867. data/spec/unit/functions/downcase_spec.rb +0 -34
  1868. data/spec/unit/functions/each_spec.rb +0 -107
  1869. data/spec/unit/functions/empty_spec.rb +0 -77
  1870. data/spec/unit/functions/epp_spec.rb +0 -172
  1871. data/spec/unit/functions/filter_spec.rb +0 -145
  1872. data/spec/unit/functions/find_file_spec.rb +0 -69
  1873. data/spec/unit/functions/flatten_spec.rb +0 -31
  1874. data/spec/unit/functions/floor_spec.rb +0 -65
  1875. data/spec/unit/functions/get_spec.rb +0 -135
  1876. data/spec/unit/functions/getvar_spec.rb +0 -121
  1877. data/spec/unit/functions/hiera_spec.rb +0 -495
  1878. data/spec/unit/functions/include_spec.rb +0 -190
  1879. data/spec/unit/functions/inline_epp_spec.rb +0 -89
  1880. data/spec/unit/functions/join_spec.rb +0 -33
  1881. data/spec/unit/functions/keys_spec.rb +0 -31
  1882. data/spec/unit/functions/length_spec.rb +0 -50
  1883. data/spec/unit/functions/lest_spec.rb +0 -34
  1884. data/spec/unit/functions/logging_spec.rb +0 -61
  1885. data/spec/unit/functions/lookup_fixture_spec.rb +0 -688
  1886. data/spec/unit/functions/lookup_spec.rb +0 -3326
  1887. data/spec/unit/functions/lstrip_spec.rb +0 -30
  1888. data/spec/unit/functions/map_spec.rb +0 -163
  1889. data/spec/unit/functions/match_spec.rb +0 -74
  1890. data/spec/unit/functions/max_spec.rb +0 -129
  1891. data/spec/unit/functions/min_spec.rb +0 -129
  1892. data/spec/unit/functions/module_directory_spec.rb +0 -43
  1893. data/spec/unit/functions/new_spec.rb +0 -761
  1894. data/spec/unit/functions/next_spec.rb +0 -93
  1895. data/spec/unit/functions/reduce_spec.rb +0 -85
  1896. data/spec/unit/functions/regsubst_spec.rb +0 -114
  1897. data/spec/unit/functions/require_spec.rb +0 -85
  1898. data/spec/unit/functions/return_spec.rb +0 -105
  1899. data/spec/unit/functions/reverse_each_spec.rb +0 -108
  1900. data/spec/unit/functions/round_spec.rb +0 -41
  1901. data/spec/unit/functions/rstrip_spec.rb +0 -30
  1902. data/spec/unit/functions/scanf_spec.rb +0 -32
  1903. data/spec/unit/functions/shared.rb +0 -97
  1904. data/spec/unit/functions/size_spec.rb +0 -50
  1905. data/spec/unit/functions/slice_spec.rb +0 -136
  1906. data/spec/unit/functions/sort_spec.rb +0 -79
  1907. data/spec/unit/functions/split_spec.rb +0 -53
  1908. data/spec/unit/functions/step_spec.rb +0 -113
  1909. data/spec/unit/functions/strftime_spec.rb +0 -152
  1910. data/spec/unit/functions/strip_spec.rb +0 -30
  1911. data/spec/unit/functions/then_spec.rb +0 -40
  1912. data/spec/unit/functions/tree_each_spec.rb +0 -493
  1913. data/spec/unit/functions/type_spec.rb +0 -35
  1914. data/spec/unit/functions/unique_spec.rb +0 -111
  1915. data/spec/unit/functions/unwrap_spec.rb +0 -29
  1916. data/spec/unit/functions/upcase_spec.rb +0 -34
  1917. data/spec/unit/functions/values_spec.rb +0 -30
  1918. data/spec/unit/functions/versioncmp_spec.rb +0 -35
  1919. data/spec/unit/functions/with_spec.rb +0 -31
  1920. data/spec/unit/functions4_spec.rb +0 -1038
  1921. data/spec/unit/gettext/config_spec.rb +0 -144
  1922. data/spec/unit/gettext/module_loading_spec.rb +0 -53
  1923. data/spec/unit/graph/key_spec.rb +0 -41
  1924. data/spec/unit/graph/rb_tree_map_spec.rb +0 -572
  1925. data/spec/unit/graph/relationship_graph_spec.rb +0 -402
  1926. data/spec/unit/graph/sequential_prioritizer_spec.rb +0 -32
  1927. data/spec/unit/graph/simple_graph_spec.rb +0 -760
  1928. data/spec/unit/hiera/scope_spec.rb +0 -93
  1929. data/spec/unit/hiera_puppet_spec.rb +0 -159
  1930. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -1056
  1931. data/spec/unit/indirector/catalog/json_spec.rb +0 -67
  1932. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -12
  1933. data/spec/unit/indirector/catalog/rest_spec.rb +0 -10
  1934. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -17
  1935. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -24
  1936. data/spec/unit/indirector/certificate/file_spec.rb +0 -15
  1937. data/spec/unit/indirector/certificate/rest_spec.rb +0 -63
  1938. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -15
  1939. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -26
  1940. data/spec/unit/indirector/data_binding/hiera_spec.rb +0 -19
  1941. data/spec/unit/indirector/data_binding/none_spec.rb +0 -28
  1942. data/spec/unit/indirector/direct_file_server_spec.rb +0 -88
  1943. data/spec/unit/indirector/envelope_spec.rb +0 -33
  1944. data/spec/unit/indirector/exec_spec.rb +0 -64
  1945. data/spec/unit/indirector/face_spec.rb +0 -83
  1946. data/spec/unit/indirector/facts/facter_spec.rb +0 -159
  1947. data/spec/unit/indirector/facts/network_device_spec.rb +0 -78
  1948. data/spec/unit/indirector/facts/rest_spec.rb +0 -45
  1949. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -17
  1950. data/spec/unit/indirector/facts/yaml_spec.rb +0 -256
  1951. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -425
  1952. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -10
  1953. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +0 -29
  1954. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -14
  1955. data/spec/unit/indirector/file_content/file_spec.rb +0 -14
  1956. data/spec/unit/indirector/file_content/rest_spec.rb +0 -14
  1957. data/spec/unit/indirector/file_content/selector_spec.rb +0 -10
  1958. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -14
  1959. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -58
  1960. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -13
  1961. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -11
  1962. data/spec/unit/indirector/file_server_spec.rb +0 -302
  1963. data/spec/unit/indirector/hiera_spec.rb +0 -17
  1964. data/spec/unit/indirector/indirection_spec.rb +0 -866
  1965. data/spec/unit/indirector/json_spec.rb +0 -202
  1966. data/spec/unit/indirector/key/file_spec.rb +0 -80
  1967. data/spec/unit/indirector/memory_spec.rb +0 -27
  1968. data/spec/unit/indirector/msgpack_spec.rb +0 -201
  1969. data/spec/unit/indirector/node/exec_spec.rb +0 -108
  1970. data/spec/unit/indirector/node/memory_spec.rb +0 -18
  1971. data/spec/unit/indirector/node/msgpack_spec.rb +0 -24
  1972. data/spec/unit/indirector/node/plain_spec.rb +0 -36
  1973. data/spec/unit/indirector/node/rest_spec.rb +0 -12
  1974. data/spec/unit/indirector/node/store_configs_spec.rb +0 -17
  1975. data/spec/unit/indirector/node/yaml_spec.rb +0 -24
  1976. data/spec/unit/indirector/none_spec.rb +0 -33
  1977. data/spec/unit/indirector/plain_spec.rb +0 -27
  1978. data/spec/unit/indirector/report/msgpack_spec.rb +0 -28
  1979. data/spec/unit/indirector/report/processor_spec.rb +0 -100
  1980. data/spec/unit/indirector/report/rest_spec.rb +0 -93
  1981. data/spec/unit/indirector/report/yaml_spec.rb +0 -28
  1982. data/spec/unit/indirector/request_spec.rb +0 -561
  1983. data/spec/unit/indirector/resource/ral_spec.rb +0 -132
  1984. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -21
  1985. data/spec/unit/indirector/rest_spec.rb +0 -787
  1986. data/spec/unit/indirector/ssl_file_spec.rb +0 -306
  1987. data/spec/unit/indirector/status/local_spec.rb +0 -11
  1988. data/spec/unit/indirector/status/rest_spec.rb +0 -10
  1989. data/spec/unit/indirector/store_configs_spec.rb +0 -8
  1990. data/spec/unit/indirector/terminus_spec.rb +0 -264
  1991. data/spec/unit/indirector/yaml_spec.rb +0 -189
  1992. data/spec/unit/indirector_spec.rb +0 -149
  1993. data/spec/unit/info_service_spec.rb +0 -498
  1994. data/spec/unit/interface/action_builder_spec.rb +0 -217
  1995. data/spec/unit/interface/action_manager_spec.rb +0 -255
  1996. data/spec/unit/interface/action_spec.rb +0 -680
  1997. data/spec/unit/interface/documentation_spec.rb +0 -33
  1998. data/spec/unit/interface/face_collection_spec.rb +0 -212
  1999. data/spec/unit/interface/option_builder_spec.rb +0 -86
  2000. data/spec/unit/interface/option_spec.rb +0 -156
  2001. data/spec/unit/interface_spec.rb +0 -305
  2002. data/spec/unit/man_spec.rb +0 -32
  2003. data/spec/unit/module_spec.rb +0 -907
  2004. data/spec/unit/module_tool/application_spec.rb +0 -25
  2005. data/spec/unit/module_tool/applications/checksummer_spec.rb +0 -115
  2006. data/spec/unit/module_tool/applications/installer_spec.rb +0 -379
  2007. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  2008. data/spec/unit/module_tool/applications/uninstaller_spec.rb +0 -173
  2009. data/spec/unit/module_tool/applications/unpacker_spec.rb +0 -75
  2010. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -337
  2011. data/spec/unit/module_tool/install_directory_spec.rb +0 -70
  2012. data/spec/unit/module_tool/installed_modules_spec.rb +0 -49
  2013. data/spec/unit/module_tool/metadata_spec.rb +0 -330
  2014. data/spec/unit/module_tool/tar/gnu_spec.rb +0 -23
  2015. data/spec/unit/module_tool/tar/mini_spec.rb +0 -89
  2016. data/spec/unit/module_tool/tar_spec.rb +0 -37
  2017. data/spec/unit/module_tool_spec.rb +0 -309
  2018. data/spec/unit/network/auth_config_parser_spec.rb +0 -117
  2019. data/spec/unit/network/authconfig_spec.rb +0 -139
  2020. data/spec/unit/network/authorization_spec.rb +0 -62
  2021. data/spec/unit/network/authstore_spec.rb +0 -423
  2022. data/spec/unit/network/format_handler_spec.rb +0 -94
  2023. data/spec/unit/network/format_spec.rb +0 -206
  2024. data/spec/unit/network/format_support_spec.rb +0 -199
  2025. data/spec/unit/network/formats_spec.rb +0 -538
  2026. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -486
  2027. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  2028. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  2029. data/spec/unit/network/http/api/master/v3/environments_spec.rb +0 -63
  2030. data/spec/unit/network/http/api/master/v3_spec.rb +0 -57
  2031. data/spec/unit/network/http/api_spec.rb +0 -101
  2032. data/spec/unit/network/http/compression_spec.rb +0 -241
  2033. data/spec/unit/network/http/connection_spec.rb +0 -361
  2034. data/spec/unit/network/http/error_spec.rb +0 -30
  2035. data/spec/unit/network/http/factory_spec.rb +0 -119
  2036. data/spec/unit/network/http/handler_spec.rb +0 -179
  2037. data/spec/unit/network/http/nocache_pool_spec.rb +0 -43
  2038. data/spec/unit/network/http/pool_spec.rb +0 -299
  2039. data/spec/unit/network/http/request_spec.rb +0 -110
  2040. data/spec/unit/network/http/response_spec.rb +0 -108
  2041. data/spec/unit/network/http/route_spec.rb +0 -91
  2042. data/spec/unit/network/http/session_spec.rb +0 -43
  2043. data/spec/unit/network/http/site_spec.rb +0 -90
  2044. data/spec/unit/network/http_pool_spec.rb +0 -98
  2045. data/spec/unit/network/http_spec.rb +0 -10
  2046. data/spec/unit/network/resolver_spec.rb +0 -282
  2047. data/spec/unit/network/rights_spec.rb +0 -440
  2048. data/spec/unit/node/environment_spec.rb +0 -527
  2049. data/spec/unit/node/facts_spec.rb +0 -226
  2050. data/spec/unit/node_spec.rb +0 -483
  2051. data/spec/unit/other/selinux_spec.rb +0 -28
  2052. data/spec/unit/parameter/boolean_spec.rb +0 -36
  2053. data/spec/unit/parameter/package_options_spec.rb +0 -44
  2054. data/spec/unit/parameter/path_spec.rb +0 -24
  2055. data/spec/unit/parameter/value_collection_spec.rb +0 -161
  2056. data/spec/unit/parameter/value_spec.rb +0 -83
  2057. data/spec/unit/parameter_spec.rb +0 -272
  2058. data/spec/unit/parser/ast/block_expression_spec.rb +0 -68
  2059. data/spec/unit/parser/ast/leaf_spec.rb +0 -137
  2060. data/spec/unit/parser/compiler_spec.rb +0 -1019
  2061. data/spec/unit/parser/environment_compiler_spec.rb +0 -724
  2062. data/spec/unit/parser/files_spec.rb +0 -102
  2063. data/spec/unit/parser/functions/create_resources_spec.rb +0 -344
  2064. data/spec/unit/parser/functions/digest_spec.rb +0 -27
  2065. data/spec/unit/parser/functions/fail_spec.rb +0 -24
  2066. data/spec/unit/parser/functions/file_spec.rb +0 -100
  2067. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -74
  2068. data/spec/unit/parser/functions/generate_spec.rb +0 -125
  2069. data/spec/unit/parser/functions/hiera_array_spec.rb +0 -12
  2070. data/spec/unit/parser/functions/hiera_hash_spec.rb +0 -12
  2071. data/spec/unit/parser/functions/hiera_include_spec.rb +0 -12
  2072. data/spec/unit/parser/functions/hiera_spec.rb +0 -12
  2073. data/spec/unit/parser/functions/inline_template_spec.rb +0 -37
  2074. data/spec/unit/parser/functions/lookup_spec.rb +0 -14
  2075. data/spec/unit/parser/functions/realize_spec.rb +0 -70
  2076. data/spec/unit/parser/functions/regsubst_spec.rb +0 -20
  2077. data/spec/unit/parser/functions/scanf_spec.rb +0 -26
  2078. data/spec/unit/parser/functions/shellquote_spec.rb +0 -67
  2079. data/spec/unit/parser/functions/split_spec.rb +0 -14
  2080. data/spec/unit/parser/functions/sprintf_spec.rb +0 -69
  2081. data/spec/unit/parser/functions/tag_spec.rb +0 -31
  2082. data/spec/unit/parser/functions/tagged_spec.rb +0 -37
  2083. data/spec/unit/parser/functions/template_spec.rb +0 -93
  2084. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -29
  2085. data/spec/unit/parser/functions_spec.rb +0 -157
  2086. data/spec/unit/parser/relationship_spec.rb +0 -75
  2087. data/spec/unit/parser/resource/param_spec.rb +0 -32
  2088. data/spec/unit/parser/resource_spec.rb +0 -642
  2089. data/spec/unit/parser/scope_spec.rb +0 -680
  2090. data/spec/unit/parser/templatewrapper_spec.rb +0 -101
  2091. data/spec/unit/parser/type_loader_spec.rb +0 -204
  2092. data/spec/unit/pops/adaptable_spec.rb +0 -140
  2093. data/spec/unit/pops/benchmark_spec.rb +0 -124
  2094. data/spec/unit/pops/containment_spec.rb +0 -0
  2095. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -561
  2096. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -310
  2097. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -102
  2098. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -109
  2099. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -268
  2100. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -190
  2101. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -1583
  2102. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +0 -75
  2103. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +0 -63
  2104. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +0 -43
  2105. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -90
  2106. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -182
  2107. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -44
  2108. data/spec/unit/pops/evaluator/variables_spec.rb +0 -89
  2109. data/spec/unit/pops/factory_rspec_helper.rb +0 -65
  2110. data/spec/unit/pops/factory_spec.rb +0 -310
  2111. data/spec/unit/pops/issues_spec.rb +0 -211
  2112. data/spec/unit/pops/label_provider_spec.rb +0 -46
  2113. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -131
  2114. data/spec/unit/pops/loaders/environment_loader_spec.rb +0 -172
  2115. data/spec/unit/pops/loaders/loader_paths_spec.rb +0 -43
  2116. data/spec/unit/pops/loaders/loader_spec.rb +0 -487
  2117. data/spec/unit/pops/loaders/loaders_spec.rb +0 -723
  2118. data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -231
  2119. data/spec/unit/pops/loaders/static_loader_spec.rb +0 -85
  2120. data/spec/unit/pops/lookup/context_spec.rb +0 -334
  2121. data/spec/unit/pops/lookup/interpolation_spec.rb +0 -378
  2122. data/spec/unit/pops/lookup/lookup_spec.rb +0 -350
  2123. data/spec/unit/pops/merge_strategy_spec.rb +0 -18
  2124. data/spec/unit/pops/migration_spec.rb +0 -53
  2125. data/spec/unit/pops/model/model_spec.rb +0 -42
  2126. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -57
  2127. data/spec/unit/pops/parser/epp_parser_spec.rb +0 -115
  2128. data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -89
  2129. data/spec/unit/pops/parser/lexer2_spec.rb +0 -950
  2130. data/spec/unit/pops/parser/locator_spec.rb +0 -44
  2131. data/spec/unit/pops/parser/parse_application_spec.rb +0 -32
  2132. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -382
  2133. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -172
  2134. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -37
  2135. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -185
  2136. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -259
  2137. data/spec/unit/pops/parser/parse_functions_spec.rb +0 -19
  2138. data/spec/unit/pops/parser/parse_heredoc_spec.rb +0 -180
  2139. data/spec/unit/pops/parser/parse_lambda_spec.rb +0 -19
  2140. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -48
  2141. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -329
  2142. data/spec/unit/pops/parser/parse_site_spec.rb +0 -48
  2143. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -17
  2144. data/spec/unit/pops/parser/parser_spec.rb +0 -211
  2145. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -65
  2146. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -101
  2147. data/spec/unit/pops/pn_spec.rb +0 -148
  2148. data/spec/unit/pops/puppet_stack_spec.rb +0 -108
  2149. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -109
  2150. data/spec/unit/pops/serialization/packer_spec.rb +0 -162
  2151. data/spec/unit/pops/serialization/serialization_spec.rb +0 -458
  2152. data/spec/unit/pops/serialization/to_from_hr_spec.rb +0 -632
  2153. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -157
  2154. data/spec/unit/pops/time/timespan_spec.rb +0 -121
  2155. data/spec/unit/pops/time/timestamp_spec.rb +0 -13
  2156. data/spec/unit/pops/types/class_loader_spec.rb +0 -10
  2157. data/spec/unit/pops/types/deferred_spec.rb +0 -87
  2158. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  2159. data/spec/unit/pops/types/error_spec.rb +0 -207
  2160. data/spec/unit/pops/types/iterable_spec.rb +0 -262
  2161. data/spec/unit/pops/types/p_binary_type_spec.rb +0 -243
  2162. data/spec/unit/pops/types/p_init_type_spec.rb +0 -383
  2163. data/spec/unit/pops/types/p_object_type_spec.rb +0 -1730
  2164. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -322
  2165. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -173
  2166. data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -323
  2167. data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -391
  2168. data/spec/unit/pops/types/p_type_set_type_spec.rb +0 -549
  2169. data/spec/unit/pops/types/p_uri_type_spec.rb +0 -191
  2170. data/spec/unit/pops/types/recursion_guard_spec.rb +0 -93
  2171. data/spec/unit/pops/types/ruby_generator_spec.rb +0 -874
  2172. data/spec/unit/pops/types/string_converter_spec.rb +0 -1198
  2173. data/spec/unit/pops/types/task_spec.rb +0 -411
  2174. data/spec/unit/pops/types/type_acceptor_spec.rb +0 -106
  2175. data/spec/unit/pops/types/type_asserter_spec.rb +0 -43
  2176. data/spec/unit/pops/types/type_calculator_spec.rb +0 -2508
  2177. data/spec/unit/pops/types/type_factory_spec.rb +0 -322
  2178. data/spec/unit/pops/types/type_formatter_spec.rb +0 -427
  2179. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -249
  2180. data/spec/unit/pops/types/type_parser_spec.rb +0 -444
  2181. data/spec/unit/pops/types/types_spec.rb +0 -728
  2182. data/spec/unit/pops/utils_spec.rb +0 -70
  2183. data/spec/unit/pops/validation_spec.rb +0 -66
  2184. data/spec/unit/pops/validator/validator_spec.rb +0 -1022
  2185. data/spec/unit/pops/visitor_spec.rb +0 -94
  2186. data/spec/unit/property/boolean_spec.rb +0 -24
  2187. data/spec/unit/property/ensure_spec.rb +0 -12
  2188. data/spec/unit/property/keyvalue_spec.rb +0 -261
  2189. data/spec/unit/property/list_spec.rb +0 -173
  2190. data/spec/unit/property/ordered_list_spec.rb +0 -63
  2191. data/spec/unit/property_spec.rb +0 -563
  2192. data/spec/unit/provider/README.markdown +0 -4
  2193. data/spec/unit/provider/aix_object_spec.rb +0 -805
  2194. data/spec/unit/provider/command_spec.rb +0 -62
  2195. data/spec/unit/provider/exec/posix_spec.rb +0 -209
  2196. data/spec/unit/provider/exec/shell_spec.rb +0 -54
  2197. data/spec/unit/provider/exec/windows_spec.rb +0 -107
  2198. data/spec/unit/provider/exec_spec.rb +0 -35
  2199. data/spec/unit/provider/file/posix_spec.rb +0 -232
  2200. data/spec/unit/provider/file/windows_spec.rb +0 -154
  2201. data/spec/unit/provider/group/aix_spec.rb +0 -90
  2202. data/spec/unit/provider/group/directoryservice_spec.rb +0 -33
  2203. data/spec/unit/provider/group/groupadd_spec.rb +0 -152
  2204. data/spec/unit/provider/group/ldap_spec.rb +0 -98
  2205. data/spec/unit/provider/group/pw_spec.rb +0 -78
  2206. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -359
  2207. data/spec/unit/provider/ldap_spec.rb +0 -243
  2208. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -158
  2209. data/spec/unit/provider/nameservice_spec.rb +0 -456
  2210. data/spec/unit/provider/package/aix_spec.rb +0 -129
  2211. data/spec/unit/provider/package/appdmg_spec.rb +0 -42
  2212. data/spec/unit/provider/package/apt_spec.rb +0 -162
  2213. data/spec/unit/provider/package/aptitude_spec.rb +0 -45
  2214. data/spec/unit/provider/package/aptrpm_spec.rb +0 -47
  2215. data/spec/unit/provider/package/base_spec.rb +0 -18
  2216. data/spec/unit/provider/package/dnf_spec.rb +0 -50
  2217. data/spec/unit/provider/package/dpkg_spec.rb +0 -278
  2218. data/spec/unit/provider/package/freebsd_spec.rb +0 -51
  2219. data/spec/unit/provider/package/gem_spec.rb +0 -336
  2220. data/spec/unit/provider/package/hpux_spec.rb +0 -48
  2221. data/spec/unit/provider/package/macports_spec.rb +0 -138
  2222. data/spec/unit/provider/package/nim_spec.rb +0 -234
  2223. data/spec/unit/provider/package/openbsd_spec.rb +0 -401
  2224. data/spec/unit/provider/package/opkg_spec.rb +0 -183
  2225. data/spec/unit/provider/package/pacman_spec.rb +0 -468
  2226. data/spec/unit/provider/package/pip3_spec.rb +0 -19
  2227. data/spec/unit/provider/package/pip_spec.rb +0 -379
  2228. data/spec/unit/provider/package/pkg_spec.rb +0 -413
  2229. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -168
  2230. data/spec/unit/provider/package/pkgin_spec.rb +0 -183
  2231. data/spec/unit/provider/package/pkgng_spec.rb +0 -183
  2232. data/spec/unit/provider/package/pkgutil_spec.rb +0 -235
  2233. data/spec/unit/provider/package/portage_spec.rb +0 -211
  2234. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -64
  2235. data/spec/unit/provider/package/rpm_spec.rb +0 -674
  2236. data/spec/unit/provider/package/sun_spec.rb +0 -114
  2237. data/spec/unit/provider/package/tdnf_spec.rb +0 -15
  2238. data/spec/unit/provider/package/up2date_spec.rb +0 -24
  2239. data/spec/unit/provider/package/urpmi_spec.rb +0 -86
  2240. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -100
  2241. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -114
  2242. data/spec/unit/provider/package/windows/package_spec.rb +0 -185
  2243. data/spec/unit/provider/package/windows_spec.rb +0 -257
  2244. data/spec/unit/provider/package/yum_spec.rb +0 -148
  2245. data/spec/unit/provider/package/zypper_spec.rb +0 -229
  2246. data/spec/unit/provider/parsedfile_spec.rb +0 -228
  2247. data/spec/unit/provider/service/base_spec.rb +0 -112
  2248. data/spec/unit/provider/service/bsd_spec.rb +0 -129
  2249. data/spec/unit/provider/service/daemontools_spec.rb +0 -166
  2250. data/spec/unit/provider/service/debian_spec.rb +0 -162
  2251. data/spec/unit/provider/service/freebsd_spec.rb +0 -92
  2252. data/spec/unit/provider/service/gentoo_spec.rb +0 -250
  2253. data/spec/unit/provider/service/init_spec.rb +0 -259
  2254. data/spec/unit/provider/service/launchd_spec.rb +0 -367
  2255. data/spec/unit/provider/service/openbsd_spec.rb +0 -201
  2256. data/spec/unit/provider/service/openrc_spec.rb +0 -233
  2257. data/spec/unit/provider/service/openwrt_spec.rb +0 -111
  2258. data/spec/unit/provider/service/rcng_spec.rb +0 -40
  2259. data/spec/unit/provider/service/redhat_spec.rb +0 -177
  2260. data/spec/unit/provider/service/runit_spec.rb +0 -137
  2261. data/spec/unit/provider/service/smf_spec.rb +0 -281
  2262. data/spec/unit/provider/service/src_spec.rb +0 -194
  2263. data/spec/unit/provider/service/systemd_spec.rb +0 -421
  2264. data/spec/unit/provider/service/upstart_spec.rb +0 -693
  2265. data/spec/unit/provider/service/windows_spec.rb +0 -226
  2266. data/spec/unit/provider/user/aix_spec.rb +0 -215
  2267. data/spec/unit/provider/user/directoryservice_spec.rb +0 -1151
  2268. data/spec/unit/provider/user/hpux_spec.rb +0 -72
  2269. data/spec/unit/provider/user/ldap_spec.rb +0 -286
  2270. data/spec/unit/provider/user/openbsd_spec.rb +0 -77
  2271. data/spec/unit/provider/user/pw_spec.rb +0 -211
  2272. data/spec/unit/provider/user/user_role_add_spec.rb +0 -374
  2273. data/spec/unit/provider/user/useradd_spec.rb +0 -632
  2274. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -326
  2275. data/spec/unit/provider_spec.rb +0 -918
  2276. data/spec/unit/puppet_pal_2pec.rb +0 -1020
  2277. data/spec/unit/puppet_pal_catalog_spec.rb +0 -859
  2278. data/spec/unit/puppet_pal_spec.rb +0 -4
  2279. data/spec/unit/puppet_spec.rb +0 -73
  2280. data/spec/unit/relationship_spec.rb +0 -203
  2281. data/spec/unit/reports/http_spec.rb +0 -103
  2282. data/spec/unit/reports/store_spec.rb +0 -60
  2283. data/spec/unit/reports_spec.rb +0 -70
  2284. data/spec/unit/resource/capability_finder_spec.rb +0 -145
  2285. data/spec/unit/resource/catalog_spec.rb +0 -1134
  2286. data/spec/unit/resource/status_spec.rb +0 -218
  2287. data/spec/unit/resource/type_collection_spec.rb +0 -337
  2288. data/spec/unit/resource/type_spec.rb +0 -877
  2289. data/spec/unit/resource_spec.rb +0 -1128
  2290. data/spec/unit/rest/client_spec.rb +0 -135
  2291. data/spec/unit/rest/route_spec.rb +0 -132
  2292. data/spec/unit/scheduler/job_spec.rb +0 -79
  2293. data/spec/unit/scheduler/scheduler_spec.rb +0 -116
  2294. data/spec/unit/scheduler/splay_job_spec.rb +0 -35
  2295. data/spec/unit/settings/array_setting_spec.rb +0 -39
  2296. data/spec/unit/settings/autosign_setting_spec.rb +0 -104
  2297. data/spec/unit/settings/certificate_revocation_setting_spec.rb +0 -37
  2298. data/spec/unit/settings/config_file_spec.rb +0 -158
  2299. data/spec/unit/settings/directory_setting_spec.rb +0 -32
  2300. data/spec/unit/settings/duration_setting_spec.rb +0 -49
  2301. data/spec/unit/settings/enum_setting_spec.rb +0 -27
  2302. data/spec/unit/settings/environment_conf_spec.rb +0 -135
  2303. data/spec/unit/settings/file_setting_spec.rb +0 -343
  2304. data/spec/unit/settings/ini_file_spec.rb +0 -550
  2305. data/spec/unit/settings/path_setting_spec.rb +0 -30
  2306. data/spec/unit/settings/priority_setting_spec.rb +0 -66
  2307. data/spec/unit/settings/string_setting_spec.rb +0 -75
  2308. data/spec/unit/settings/terminus_setting_spec.rb +0 -28
  2309. data/spec/unit/settings/value_translator_spec.rb +0 -77
  2310. data/spec/unit/settings_spec.rb +0 -1919
  2311. data/spec/unit/ssl/base_spec.rb +0 -94
  2312. data/spec/unit/ssl/certificate_request_attributes_spec.rb +0 -80
  2313. data/spec/unit/ssl/certificate_request_spec.rb +0 -401
  2314. data/spec/unit/ssl/certificate_spec.rb +0 -187
  2315. data/spec/unit/ssl/digest_spec.rb +0 -35
  2316. data/spec/unit/ssl/host_spec.rb +0 -630
  2317. data/spec/unit/ssl/key_spec.rb +0 -174
  2318. data/spec/unit/ssl/oids_spec.rb +0 -72
  2319. data/spec/unit/ssl/validator_spec.rb +0 -287
  2320. data/spec/unit/status_spec.rb +0 -45
  2321. data/spec/unit/task_spec.rb +0 -292
  2322. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -542
  2323. data/spec/unit/transaction/event_manager_spec.rb +0 -363
  2324. data/spec/unit/transaction/event_spec.rb +0 -197
  2325. data/spec/unit/transaction/persistence_spec.rb +0 -220
  2326. data/spec/unit/transaction/report_spec.rb +0 -700
  2327. data/spec/unit/transaction/resource_harness_spec.rb +0 -604
  2328. data/spec/unit/transaction_spec.rb +0 -974
  2329. data/spec/unit/type/README.markdown +0 -4
  2330. data/spec/unit/type/component_spec.rb +0 -53
  2331. data/spec/unit/type/exec_spec.rb +0 -815
  2332. data/spec/unit/type/file/checksum_spec.rb +0 -105
  2333. data/spec/unit/type/file/checksum_value_spec.rb +0 -286
  2334. data/spec/unit/type/file/content_spec.rb +0 -438
  2335. data/spec/unit/type/file/ctime_spec.rb +0 -34
  2336. data/spec/unit/type/file/ensure_spec.rb +0 -123
  2337. data/spec/unit/type/file/group_spec.rb +0 -60
  2338. data/spec/unit/type/file/mode_spec.rb +0 -222
  2339. data/spec/unit/type/file/mtime_spec.rb +0 -34
  2340. data/spec/unit/type/file/owner_spec.rb +0 -58
  2341. data/spec/unit/type/file/selinux_spec.rb +0 -90
  2342. data/spec/unit/type/file/source_spec.rb +0 -677
  2343. data/spec/unit/type/file/type_spec.rb +0 -19
  2344. data/spec/unit/type/file_spec.rb +0 -1696
  2345. data/spec/unit/type/filebucket_spec.rb +0 -103
  2346. data/spec/unit/type/group_spec.rb +0 -100
  2347. data/spec/unit/type/noop_metaparam_spec.rb +0 -38
  2348. data/spec/unit/type/package/package_settings_spec.rb +0 -135
  2349. data/spec/unit/type/package_spec.rb +0 -384
  2350. data/spec/unit/type/resources_spec.rb +0 -350
  2351. data/spec/unit/type/schedule_spec.rb +0 -621
  2352. data/spec/unit/type/service_spec.rb +0 -308
  2353. data/spec/unit/type/stage_spec.rb +0 -8
  2354. data/spec/unit/type/tidy_spec.rb +0 -468
  2355. data/spec/unit/type/user_spec.rb +0 -459
  2356. data/spec/unit/type/whit_spec.rb +0 -10
  2357. data/spec/unit/type_spec.rb +0 -1384
  2358. data/spec/unit/util/at_fork_spec.rb +0 -150
  2359. data/spec/unit/util/autoload_spec.rb +0 -309
  2360. data/spec/unit/util/backups_spec.rb +0 -134
  2361. data/spec/unit/util/character_encoding_spec.rb +0 -186
  2362. data/spec/unit/util/checksums_spec.rb +0 -208
  2363. data/spec/unit/util/colors_spec.rb +0 -45
  2364. data/spec/unit/util/command_line_spec.rb +0 -175
  2365. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +0 -129
  2366. data/spec/unit/util/constant_inflector_spec.rb +0 -56
  2367. data/spec/unit/util/diff_spec.rb +0 -47
  2368. data/spec/unit/util/docs_spec.rb +0 -100
  2369. data/spec/unit/util/errors_spec.rb +0 -37
  2370. data/spec/unit/util/execution_spec.rb +0 -927
  2371. data/spec/unit/util/execution_stub_spec.rb +0 -39
  2372. data/spec/unit/util/feature_spec.rb +0 -120
  2373. data/spec/unit/util/filetype_spec.rb +0 -223
  2374. data/spec/unit/util/http_proxy_spec.rb +0 -273
  2375. data/spec/unit/util/inifile_spec.rb +0 -523
  2376. data/spec/unit/util/json_lockfile_spec.rb +0 -50
  2377. data/spec/unit/util/ldap/connection_spec.rb +0 -161
  2378. data/spec/unit/util/ldap/generator_spec.rb +0 -50
  2379. data/spec/unit/util/ldap/manager_spec.rb +0 -626
  2380. data/spec/unit/util/lockfile_spec.rb +0 -118
  2381. data/spec/unit/util/log/destinations_spec.rb +0 -267
  2382. data/spec/unit/util/log_spec.rb +0 -576
  2383. data/spec/unit/util/logging_spec.rb +0 -430
  2384. data/spec/unit/util/metric_spec.rb +0 -90
  2385. data/spec/unit/util/monkey_patches_spec.rb +0 -145
  2386. data/spec/unit/util/multi_match_spec.rb +0 -39
  2387. data/spec/unit/util/network_device/config_spec.rb +0 -92
  2388. data/spec/unit/util/network_device/transport/base_spec.rb +0 -41
  2389. data/spec/unit/util/network_device_spec.rb +0 -50
  2390. data/spec/unit/util/package_spec.rb +0 -20
  2391. data/spec/unit/util/pidlock_spec.rb +0 -218
  2392. data/spec/unit/util/plist_spec.rb +0 -141
  2393. data/spec/unit/util/posix_spec.rb +0 -279
  2394. data/spec/unit/util/profiler/aggregate_spec.rb +0 -55
  2395. data/spec/unit/util/profiler/around_profiler_spec.rb +0 -61
  2396. data/spec/unit/util/profiler/logging_spec.rb +0 -70
  2397. data/spec/unit/util/profiler/object_counts_spec.rb +0 -13
  2398. data/spec/unit/util/profiler/wall_clock_spec.rb +0 -13
  2399. data/spec/unit/util/profiler_spec.rb +0 -47
  2400. data/spec/unit/util/rdoc_spec.rb +0 -56
  2401. data/spec/unit/util/reference_spec.rb +0 -39
  2402. data/spec/unit/util/resource_template_spec.rb +0 -57
  2403. data/spec/unit/util/retry_action_spec.rb +0 -85
  2404. data/spec/unit/util/rubygems_spec.rb +0 -48
  2405. data/spec/unit/util/run_mode_spec.rb +0 -318
  2406. data/spec/unit/util/selinux_spec.rb +0 -315
  2407. data/spec/unit/util/splayer_spec.rb +0 -45
  2408. data/spec/unit/util/ssl_spec.rb +0 -92
  2409. data/spec/unit/util/storage_spec.rb +0 -336
  2410. data/spec/unit/util/suidmanager_spec.rb +0 -284
  2411. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -181
  2412. data/spec/unit/util/tag_set_spec.rb +0 -53
  2413. data/spec/unit/util/tagging_spec.rb +0 -247
  2414. data/spec/unit/util/terminal_spec.rb +0 -42
  2415. data/spec/unit/util/user_attr_spec.rb +0 -46
  2416. data/spec/unit/util/warnings_spec.rb +0 -46
  2417. data/spec/unit/util/watched_file_spec.rb +0 -52
  2418. data/spec/unit/util/watcher/periodic_watcher_spec.rb +0 -52
  2419. data/spec/unit/util/watcher_spec.rb +0 -56
  2420. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -67
  2421. data/spec/unit/util/windows/access_control_list_spec.rb +0 -133
  2422. data/spec/unit/util/windows/adsi_spec.rb +0 -630
  2423. data/spec/unit/util/windows/api_types_spec.rb +0 -121
  2424. data/spec/unit/util/windows/eventlog_spec.rb +0 -123
  2425. data/spec/unit/util/windows/file_spec.rb +0 -89
  2426. data/spec/unit/util/windows/root_certs_spec.rb +0 -17
  2427. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -117
  2428. data/spec/unit/util/windows/service_spec.rb +0 -669
  2429. data/spec/unit/util/windows/sid_spec.rb +0 -299
  2430. data/spec/unit/util/windows/string_spec.rb +0 -58
  2431. data/spec/unit/util/yaml_spec.rb +0 -201
  2432. data/spec/unit/util_spec.rb +0 -949
  2433. data/spec/unit/version_spec.rb +0 -61
  2434. data/spec/watchr.rb +0 -137
  2435. data/tasks/benchmark.rake +0 -180
  2436. data/tasks/cfpropertylist.rake +0 -15
  2437. data/tasks/ci.rake +0 -24
  2438. data/tasks/generate_ast_model.rake +0 -90
  2439. data/tasks/manpages.rake +0 -91
  2440. data/tasks/memwalk.rake +0 -195
  2441. data/tasks/parallel.rake +0 -410
  2442. data/tasks/parser.rake +0 -22
  2443. data/tasks/yard.rake +0 -59
  2444. /data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  2445. /data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  2446. /data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  2447. /data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  2448. /data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  2449. /data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
@@ -1,1730 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet/pops'
3
- require 'puppet_spec/compiler'
4
-
5
- module Puppet::Pops
6
- module Types
7
- describe 'The Object Type' do
8
- include PuppetSpec::Compiler
9
-
10
- let(:parser) { TypeParser.singleton }
11
- let(:pp_parser) { Parser::EvaluatingParser.new }
12
- let(:env) { Puppet::Node::Environment.create(:testing, []) }
13
- let(:node) { Puppet::Node.new('testnode', :environment => env) }
14
- let(:loader) { Loaders.find_loader(nil) }
15
- let(:factory) { TypeFactory }
16
-
17
- before(:each) do
18
- Puppet.push_context(:loaders => Loaders.new(env))
19
- end
20
-
21
- after(:each) do
22
- Puppet.pop_context()
23
- end
24
-
25
- def type_object_t(name, body_string)
26
- object = PObjectType.new(name, pp_parser.parse_string("{#{body_string}}").body)
27
- loader.set_entry(Loader::TypedName.new(:type, name), object)
28
- object
29
- end
30
-
31
- def parse_object(name, body_string)
32
- type_object_t(name, body_string)
33
- parser.parse(name, loader).resolve(loader)
34
- end
35
-
36
- context 'when dealing with attributes' do
37
- it 'raises an error when the attribute type is not a type' do
38
- obj = <<-OBJECT
39
- attributes => {
40
- a => 23
41
- }
42
- OBJECT
43
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError,
44
- /attribute MyObject\[a\] has wrong type, expects a Type value, got Integer/)
45
- end
46
-
47
- it 'raises an error if the type is missing' do
48
- obj = <<-OBJECT
49
- attributes => {
50
- a => { kind => derived }
51
- }
52
- OBJECT
53
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError,
54
- /expects a value for key 'type'/)
55
- end
56
-
57
- it 'raises an error when value is of incompatible type' do
58
- obj = <<-OBJECT
59
- attributes => {
60
- a => { type => Integer, value => 'three' }
61
- }
62
- OBJECT
63
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError,
64
- /attribute MyObject\[a\] value has wrong type, expects an Integer value, got String/)
65
- end
66
-
67
- it 'raises an error if the kind is invalid' do
68
- obj = <<-OBJECT
69
- attributes => {
70
- a => { type => String, kind => derivd }
71
- }
72
- OBJECT
73
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError,
74
- /expects a match for Enum\['constant', 'derived', 'given_or_derived', 'reference'\], got 'derivd'/)
75
- end
76
-
77
- it 'raises an error if the name is __ptype' do
78
- obj = <<-OBJECT
79
- attributes => {
80
- __ptype => String
81
- }
82
- OBJECT
83
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
84
- /The attribute '__ptype' is reserved and cannot be used/)
85
- end
86
-
87
- it 'raises an error if the name is __pvalue' do
88
- obj = <<-OBJECT
89
- attributes => {
90
- __pvalue => String
91
- }
92
- OBJECT
93
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
94
- /The attribute '__pvalue' is reserved and cannot be used/)
95
- end
96
-
97
- it 'stores value in attribute' do
98
- tp = parse_object('MyObject', <<-OBJECT)
99
- attributes => {
100
- a => { type => Integer, value => 3 }
101
- }
102
- OBJECT
103
- attr = tp['a']
104
- expect(attr).to be_a(PObjectType::PAttribute)
105
- expect(attr.value).to eql(3)
106
- end
107
-
108
- it 'attribute with defined value responds true to value?' do
109
- tp = parse_object('MyObject', <<-OBJECT)
110
- attributes => {
111
- a => { type => Integer, value => 3 }
112
- }
113
- OBJECT
114
- attr = tp['a']
115
- expect(attr.value?).to be_truthy
116
- end
117
-
118
- it 'attribute value can be defined using heredoc?' do
119
- tp = parse_object('MyObject', <<-OBJECT.unindent)
120
- attributes => {
121
- a => { type => String, value => @(END) }
122
- The value is some
123
- multiline text
124
- |-END
125
- }
126
- OBJECT
127
- attr = tp['a']
128
- expect(attr.value).to eql("The value is some\nmultiline text")
129
- end
130
-
131
- it 'attribute without defined value responds false to value?' do
132
- tp = parse_object('MyObject', <<-OBJECT)
133
- attributes => {
134
- a => Integer
135
- }
136
- OBJECT
137
- attr = tp['a']
138
- expect(attr.value?).to be_falsey
139
- end
140
-
141
- it 'attribute without defined value but optional type responds true to value?' do
142
- tp = parse_object('MyObject', <<-OBJECT)
143
- attributes => {
144
- a => Optional[Integer]
145
- }
146
- OBJECT
147
- attr = tp['a']
148
- expect(attr.value?).to be_truthy
149
- expect(attr.value).to be_nil
150
- end
151
-
152
- it 'raises an error when value is requested from an attribute that has no value' do
153
- tp = parse_object('MyObject', <<-OBJECT)
154
- attributes => {
155
- a => Integer
156
- }
157
- OBJECT
158
- expect { tp['a'].value }.to raise_error(Puppet::Error, 'attribute MyObject[a] has no value')
159
- end
160
-
161
- context 'that are constants' do
162
- context 'and declared under key "constants"' do
163
- it 'sets final => true' do
164
- tp = parse_object('MyObject', <<-OBJECT)
165
- constants => {
166
- a => 3
167
- }
168
- OBJECT
169
- expect(tp['a'].final?).to be_truthy
170
- end
171
-
172
- it 'sets kind => constant' do
173
- tp = parse_object('MyObject', <<-OBJECT)
174
- constants => {
175
- a => 3
176
- }
177
- OBJECT
178
- expect(tp['a'].constant?).to be_truthy
179
- end
180
-
181
- it 'infers generic type from value' do
182
- tp = parse_object('MyObject', <<-OBJECT)
183
- constants => {
184
- a => 3
185
- }
186
- OBJECT
187
- expect(tp['a'].type.to_s).to eql('Integer')
188
- end
189
-
190
- it 'cannot have the same name as an attribute' do
191
- obj = <<-OBJECT
192
- constants => {
193
- a => 3
194
- },
195
- attributes => {
196
- a => Integer
197
- }
198
- OBJECT
199
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
200
- 'attribute MyObject[a] is defined as both a constant and an attribute')
201
- end
202
- end
203
-
204
- context 'and declared under key "attributes"' do
205
- it 'sets final => true when declard in attributes' do
206
- tp = parse_object('MyObject', <<-OBJECT)
207
- attributes => {
208
- a => {
209
- type => Integer,
210
- kind => constant,
211
- value => 3
212
- }
213
- }
214
- OBJECT
215
- expect(tp['a'].final?).to be_truthy
216
- end
217
-
218
- it 'raises an error when no value is declared' do
219
- obj = <<-OBJECT
220
- attributes => {
221
- a => {
222
- type => Integer,
223
- kind => constant
224
- }
225
- }
226
- OBJECT
227
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
228
- "attribute MyObject[a] of kind 'constant' requires a value")
229
- end
230
-
231
- it 'raises an error when final => false' do
232
- obj = <<-OBJECT
233
- attributes => {
234
- a => {
235
- type => Integer,
236
- kind => constant,
237
- final => false
238
- }
239
- }
240
- OBJECT
241
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
242
- "attribute MyObject[a] of kind 'constant' cannot be combined with final => false")
243
- end
244
- end
245
- end
246
- end
247
-
248
- context 'when dealing with functions' do
249
- it 'raises an error unless the function type is a Type[Callable]' do
250
- obj = <<-OBJECT
251
- functions => {
252
- a => String
253
- }
254
- OBJECT
255
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError,
256
- /function MyObject\[a\] has wrong type, expects a Type\[Callable\] value, got Type\[String\]/)
257
- end
258
-
259
- it 'raises an error when a function has the same name as an attribute' do
260
- obj = <<-OBJECT
261
- attributes => {
262
- a => Integer
263
- },
264
- functions => {
265
- a => Callable
266
- }
267
- OBJECT
268
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
269
- 'function MyObject[a] conflicts with attribute with the same name')
270
- end
271
- end
272
-
273
- context 'when dealing with overrides' do
274
- it 'can redefine inherited member to assignable type' do
275
- parent = <<-OBJECT
276
- attributes => {
277
- a => Integer
278
- }
279
- OBJECT
280
- obj = <<-OBJECT
281
- parent => MyObject,
282
- attributes => {
283
- a => { type => Integer[0,10], override => true }
284
- }
285
- OBJECT
286
- parse_object('MyObject', parent)
287
- tp = parse_object('MyDerivedObject', obj)
288
- expect(tp['a'].type).to eql(PIntegerType.new(0,10))
289
- end
290
-
291
- it 'can redefine inherited constant to assignable type' do
292
- parent = <<-OBJECT
293
- constants => {
294
- a => 23
295
- }
296
- OBJECT
297
- obj = <<-OBJECT
298
- parent => MyObject,
299
- constants => {
300
- a => 46
301
- }
302
- OBJECT
303
- tp = parse_object('MyObject', parent)
304
- td = parse_object('MyDerivedObject', obj)
305
- expect(tp['a'].value).to eql(23)
306
- expect(td['a'].value).to eql(46)
307
- end
308
-
309
- it 'raises an error when an attribute overrides a function' do
310
- parent = <<-OBJECT
311
- attributes => {
312
- a => Integer
313
- }
314
- OBJECT
315
- obj = <<-OBJECT
316
- parent => MyObject,
317
- functions => {
318
- a => { type => Callable, override => true }
319
- }
320
- OBJECT
321
- parse_object('MyObject', parent)
322
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
323
- 'function MyDerivedObject[a] attempts to override attribute MyObject[a]')
324
- end
325
-
326
- it 'raises an error when the a function overrides an attribute' do
327
- parent = <<-OBJECT
328
- functions => {
329
- a => Callable
330
- }
331
- OBJECT
332
- obj = <<-OBJECT
333
- parent => MyObject,
334
- attributes => {
335
- a => { type => Integer, override => true }
336
- }
337
- OBJECT
338
- parse_object('MyObject', parent)
339
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
340
- 'attribute MyDerivedObject[a] attempts to override function MyObject[a]')
341
- end
342
-
343
- it 'raises an error on attempts to redefine inherited member to unassignable type' do
344
- parent = <<-OBJECT
345
- attributes => {
346
- a => Integer
347
- }
348
- OBJECT
349
- obj = <<-OBJECT
350
- parent => MyObject,
351
- attributes => {
352
- a => { type => String, override => true }
353
- }
354
- OBJECT
355
- parse_object('MyObject', parent)
356
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
357
- 'attribute MyDerivedObject[a] attempts to override attribute MyObject[a] with a type that does not match')
358
- end
359
-
360
- it 'raises an error when an attribute overrides a final attribute' do
361
- parent = <<-OBJECT
362
- attributes => {
363
- a => { type => Integer, final => true }
364
- }
365
- OBJECT
366
- obj = <<-OBJECT
367
- parent => MyObject,
368
- attributes => {
369
- a => { type => Integer, override => true }
370
- }
371
- OBJECT
372
- parse_object('MyObject', parent)
373
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
374
- 'attribute MyDerivedObject[a] attempts to override final attribute MyObject[a]')
375
- end
376
-
377
- it 'raises an error when an overriding attribute is not declared with override => true' do
378
- parent = <<-OBJECT
379
- attributes => {
380
- a => Integer
381
- }
382
- OBJECT
383
- obj = <<-OBJECT
384
- parent => MyObject,
385
- attributes => {
386
- a => Integer
387
- }
388
- OBJECT
389
- parse_object('MyObject', parent)
390
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
391
- 'attribute MyDerivedObject[a] attempts to override attribute MyObject[a] without having override => true')
392
- end
393
-
394
- it 'raises an error when an attribute declared with override => true does not override' do
395
- parent = <<-OBJECT
396
- attributes => {
397
- a => Integer
398
- }
399
- OBJECT
400
- obj = <<-OBJECT
401
- parent => MyObject,
402
- attributes => {
403
- b => { type => Integer, override => true }
404
- }
405
- OBJECT
406
- parse_object('MyObject', parent)
407
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
408
- "expected attribute MyDerivedObject[b] to override an inherited attribute, but no such attribute was found")
409
- end
410
- end
411
-
412
- context 'when dealing with equality' do
413
- it 'the attributes can be declared as an array of names' do
414
- obj = <<-OBJECT
415
- attributes => {
416
- a => Integer,
417
- b => Integer
418
- },
419
- equality => [a,b]
420
- OBJECT
421
- tp = parse_object('MyObject', obj)
422
- expect(tp.equality).to eq(['a','b'])
423
- expect(tp.equality_attributes.keys).to eq(['a','b'])
424
- end
425
-
426
- it 'a single [<name>] can be declared as <name>' do
427
- obj = <<-OBJECT
428
- attributes => {
429
- a => Integer,
430
- b => Integer
431
- },
432
- equality => a
433
- OBJECT
434
- tp = parse_object('MyObject', obj)
435
- expect(tp.equality).to eq(['a'])
436
- end
437
-
438
- it 'includes all non-constant attributes by default' do
439
- obj = <<-OBJECT
440
- attributes => {
441
- a => Integer,
442
- b => { type => Integer, kind => constant, value => 3 },
443
- c => Integer
444
- }
445
- OBJECT
446
- tp = parse_object('MyObject', obj)
447
- expect(tp.equality).to be_nil
448
- expect(tp.equality_attributes.keys).to eq(['a','c'])
449
- end
450
-
451
- it 'equality_include_type is true by default' do
452
- obj = <<-OBJECT
453
- attributes => {
454
- a => Integer
455
- },
456
- equality => a
457
- OBJECT
458
- expect(parse_object('MyObject', obj).equality_include_type?).to be_truthy
459
- end
460
-
461
- it 'will allow an empty list of attributes' do
462
- obj = <<-OBJECT
463
- attributes => {
464
- a => Integer,
465
- b => Integer
466
- },
467
- equality => []
468
- OBJECT
469
- tp = parse_object('MyObject', obj)
470
- expect(tp.equality).to be_empty
471
- expect(tp.equality_attributes).to be_empty
472
- end
473
-
474
- it 'will extend default equality in parent' do
475
- parent = <<-OBJECT
476
- attributes => {
477
- a => Integer,
478
- b => Integer
479
- }
480
- OBJECT
481
- obj = <<-OBJECT
482
- parent => MyObject,
483
- attributes => {
484
- c => Integer,
485
- d => Integer
486
- }
487
- OBJECT
488
- parse_object('MyObject', parent)
489
- tp = parse_object('MyDerivedObject', obj)
490
- expect(tp.equality).to be_nil
491
- expect(tp.equality_attributes.keys).to eq(['a','b','c','d'])
492
- end
493
-
494
- it 'extends equality declared in parent' do
495
- parent = <<-OBJECT
496
- attributes => {
497
- a => Integer,
498
- b => Integer
499
- },
500
- equality => a
501
- OBJECT
502
- obj = <<-OBJECT
503
- parent => MyObject,
504
- attributes => {
505
- c => Integer,
506
- d => Integer
507
- }
508
- OBJECT
509
- parse_object('MyObject', parent)
510
- tp = parse_object('MyDerivedObject', obj)
511
- expect(tp.equality).to be_nil
512
- expect(tp.equality_attributes.keys).to eq(['a','c','d'])
513
- end
514
-
515
- it 'parent defined attributes can be included in equality if not already included by a parent' do
516
- parent = <<-OBJECT
517
- attributes => {
518
- a => Integer,
519
- b => Integer
520
- },
521
- equality => a
522
- OBJECT
523
- obj = <<-OBJECT
524
- parent => MyObject,
525
- attributes => {
526
- c => Integer,
527
- d => Integer
528
- },
529
- equality => [b,c]
530
- OBJECT
531
- parse_object('MyObject', parent)
532
- tp = parse_object('MyDerivedObject', obj)
533
- expect(tp.equality).to eq(['b','c'])
534
- expect(tp.equality_attributes.keys).to eq(['a','b','c'])
535
- end
536
-
537
- it 'raises an error when attempting to extend default equality in parent' do
538
- parent = <<-OBJECT
539
- attributes => {
540
- a => Integer,
541
- b => Integer
542
- }
543
- OBJECT
544
- obj = <<-OBJECT
545
- parent => MyObject,
546
- attributes => {
547
- c => Integer,
548
- d => Integer
549
- },
550
- equality => a
551
- OBJECT
552
- parse_object('MyObject', parent)
553
- expect { parse_object('MyDerivedObject', obj) }.to raise_error(Puppet::ParseError,
554
- "MyDerivedObject equality is referencing attribute MyObject[a] which is included in equality of MyObject")
555
- end
556
-
557
- it 'raises an error when equality references a constant attribute' do
558
- obj = <<-OBJECT
559
- attributes => {
560
- a => Integer,
561
- b => { type => Integer, kind => constant, value => 3 }
562
- },
563
- equality => [a,b]
564
- OBJECT
565
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
566
- 'MyObject equality is referencing constant attribute MyObject[b]. Reference to constant is not allowed in equality')
567
- end
568
-
569
- it 'raises an error when equality references a function' do
570
- obj = <<-OBJECT
571
- attributes => {
572
- a => Integer,
573
- },
574
- functions => {
575
- b => Callable
576
- },
577
- equality => [a,b]
578
- OBJECT
579
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
580
- 'MyObject equality is referencing function MyObject[b]. Only attribute references are allowed')
581
- end
582
-
583
- it 'raises an error when equality references a non existent attributes' do
584
- obj = <<-OBJECT
585
- attributes => {
586
- a => Integer
587
- },
588
- equality => [a,b]
589
- OBJECT
590
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
591
- "MyObject equality is referencing non existent attribute 'b'")
592
- end
593
-
594
- it 'raises an error when equality_include_type = false and attributes are provided' do
595
- obj = <<-OBJECT
596
- attributes => {
597
- a => Integer
598
- },
599
- equality => a,
600
- equality_include_type => false
601
- OBJECT
602
- expect { parse_object('MyObject', obj) }.to raise_error(Puppet::ParseError,
603
- 'equality_include_type = false cannot be combined with non empty equality specification')
604
- end
605
- end
606
-
607
- it 'raises an error when initialization hash contains invalid keys' do
608
- obj = <<-OBJECT
609
- attribrutes => {
610
- a => Integer
611
- }
612
- OBJECT
613
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError, /object initializer has wrong type, unrecognized key 'attribrutes'/)
614
- end
615
-
616
- it 'raises an error when attribute contains invalid keys' do
617
- obj = <<-OBJECT
618
- attributes => {
619
- a => { type => Integer, knid => constant }
620
- }
621
- OBJECT
622
- expect { parse_object('MyObject', obj) }.to raise_error(TypeAssertionError, /initializer for attribute MyObject\[a\] has wrong type, unrecognized key 'knid'/)
623
- end
624
-
625
- context 'when inheriting from a another Object type' do
626
- let(:parent) { <<-OBJECT }
627
- attributes => {
628
- a => Integer
629
- },
630
- functions => {
631
- b => Callable
632
- }
633
- OBJECT
634
-
635
- let(:derived) { <<-OBJECT }
636
- parent => MyObject,
637
- attributes => {
638
- c => String,
639
- d => Boolean
640
- }
641
- OBJECT
642
-
643
- it 'includes the inherited type and its members' do
644
- parse_object('MyObject', parent)
645
- t = parse_object('MyDerivedObject', derived)
646
- members = t.members.values
647
- expect{ |b| members.each {|m| m.name.tap(&b) }}.to yield_successive_args('c', 'd')
648
- expect{ |b| members.each {|m| m.type.simple_name.tap(&b) }}.to yield_successive_args('String', 'Boolean')
649
- members = t.members(true).values
650
- expect{ |b| members.each {|m| m.name.tap(&b) }}.to yield_successive_args('a', 'b', 'c', 'd')
651
- expect{ |b| members.each {|m| m.type.simple_name.tap(&b) }}.to(yield_successive_args('Integer', 'Callable', 'String', 'Boolean'))
652
- end
653
-
654
- it 'is assignable to its inherited type' do
655
- p = parse_object('MyObject', parent)
656
- t = parse_object('MyDerivedObject', derived)
657
- expect(p).to be_assignable(t)
658
- end
659
-
660
- it 'does not consider inherited type to be assignable' do
661
- p = parse_object('MyObject', parent)
662
- d = parse_object('MyDerivedObject', derived)
663
- expect(d).not_to be_assignable(p)
664
- end
665
-
666
- it 'ruby access operator can retrieve parent member' do
667
- p = parse_object('MyObject', parent)
668
- d = parse_object('MyDerivedObject', derived)
669
- expect(d['b'].container).to equal(p)
670
- end
671
-
672
- context 'that in turn inherits another Object type' do
673
- let(:derived2) { <<-OBJECT }
674
- parent => MyDerivedObject,
675
- attributes => {
676
- e => String,
677
- f => Boolean
678
- }
679
- OBJECT
680
-
681
- it 'is assignable to all inherited types' do
682
- p = parse_object('MyObject', parent)
683
- d1 = parse_object('MyDerivedObject', derived)
684
- d2 = parse_object('MyDerivedObject2', derived2)
685
- expect(p).to be_assignable(d2)
686
- expect(d1).to be_assignable(d2)
687
- end
688
-
689
- it 'does not consider any of the inherited types to be assignable' do
690
- p = parse_object('MyObject', parent)
691
- d1 = parse_object('MyDerivedObject', derived)
692
- d2 = parse_object('MyDerivedObject2', derived2)
693
- expect(d2).not_to be_assignable(p)
694
- expect(d2).not_to be_assignable(d1)
695
- end
696
- end
697
- end
698
-
699
- context 'when producing an init_hash_type' do
700
- it 'produces a struct of all attributes that are not derived or constant' do
701
- t = parse_object('MyObject', <<-OBJECT)
702
- attributes => {
703
- a => { type => Integer },
704
- b => { type => Integer, kind => given_or_derived },
705
- c => { type => Integer, kind => derived },
706
- d => { type => Integer, kind => constant, value => 4 }
707
- }
708
- OBJECT
709
- expect(t.init_hash_type).to eql(factory.struct({
710
- 'a' => factory.integer,
711
- 'b' => factory.integer
712
- }))
713
- end
714
-
715
- it 'produces a struct where optional entires are denoted with an optional key' do
716
- t = parse_object('MyObject', <<-OBJECT)
717
- attributes => {
718
- a => { type => Integer },
719
- b => { type => Integer, value => 4 }
720
- }
721
- OBJECT
722
- expect(t.init_hash_type).to eql(factory.struct({
723
- 'a' => factory.integer,
724
- factory.optional('b') => factory.integer
725
- }))
726
- end
727
-
728
- it 'produces a struct that includes parameters from parent type' do
729
- t1 = parse_object('MyObject', <<-OBJECT)
730
- attributes => {
731
- a => { type => Integer }
732
- }
733
- OBJECT
734
- t2 = parse_object('MyDerivedObject', <<-OBJECT)
735
- parent => MyObject,
736
- attributes => {
737
- b => { type => Integer }
738
- }
739
- OBJECT
740
- expect(t1.init_hash_type).to eql(factory.struct({ 'a' => factory.integer }))
741
- expect(t2.init_hash_type).to eql(factory.struct({ 'a' => factory.integer, 'b' => factory.integer }))
742
- end
743
-
744
- it 'produces a struct that reflects overrides made in derived type' do
745
- t1 = parse_object('MyObject', <<-OBJECT)
746
- attributes => {
747
- a => { type => Integer },
748
- b => { type => Integer }
749
- }
750
- OBJECT
751
- t2 = parse_object('MyDerivedObject', <<-OBJECT)
752
- parent => MyObject,
753
- attributes => {
754
- b => { type => Integer, override => true, value => 5 }
755
- }
756
- OBJECT
757
- expect(t1.init_hash_type).to eql(factory.struct({ 'a' => factory.integer, 'b' => factory.integer }))
758
- expect(t2.init_hash_type).to eql(factory.struct({ 'a' => factory.integer, factory.optional('b') => factory.integer }))
759
- end
760
- end
761
-
762
- context 'with attributes and parameters of its own type' do
763
- it 'resolves an attribute type' do
764
- t = parse_object('MyObject', <<-OBJECT)
765
- attributes => {
766
- a => MyObject
767
- }
768
- OBJECT
769
- expect(t['a'].type).to equal(t)
770
- end
771
-
772
- it 'resolves a parameter type' do
773
- t = parse_object('MyObject', <<-OBJECT)
774
- functions => {
775
- a => Callable[MyObject]
776
- }
777
- OBJECT
778
- expect(t['a'].type).to eql(PCallableType.new(PTupleType.new([t])))
779
- end
780
- end
781
-
782
- context 'when using the initialization hash' do
783
- it 'produced hash that contains features using short form (type instead of detailed hash when only type is declared)' do
784
- obj = parse_object('MyObject', <<-OBJECT)
785
- attributes => {
786
- a => { type => Integer }
787
- }
788
- OBJECT
789
- expect(obj.to_s).to eql("Object[{name => 'MyObject', attributes => {'a' => Integer}}]")
790
- end
791
-
792
- it 'produced hash that does not include default for equality_include_type' do
793
- obj = parse_object('MyObject', <<-OBJECT)
794
- attributes => { a => Integer },
795
- equality_include_type => true
796
- OBJECT
797
- expect(obj.to_s).to eql("Object[{name => 'MyObject', attributes => {'a' => Integer}}]")
798
- end
799
-
800
- it 'constants are presented in a separate hash if they use a generic type' do
801
- obj = parse_object('MyObject', <<-OBJECT)
802
- attributes => {
803
- a => { type => Integer, value => 23, kind => constant },
804
- },
805
- OBJECT
806
- expect(obj.to_s).to eql("Object[{name => 'MyObject', constants => {'a' => 23}}]")
807
- end
808
-
809
- it 'constants are not presented in a separate hash unless they use a generic type' do
810
- obj = parse_object('MyObject', <<-OBJECT)
811
- attributes => {
812
- a => { type => Integer[0, 30], value => 23, kind => constant },
813
- },
814
- OBJECT
815
- expect(obj.to_s).to eql("Object[{name => 'MyObject', attributes => {'a' => {type => Integer[0, 30], kind => constant, value => 23}}}]")
816
- end
817
-
818
- it 'can create an equal copy from produced hash' do
819
- obj = parse_object('MyObject', <<-OBJECT)
820
- attributes => {
821
- a => { type => Struct[{x => Integer, y => Integer}], value => {x => 4, y => 9}, kind => constant },
822
- b => Integer
823
- },
824
- functions => {
825
- x => Callable[MyObject,Integer]
826
- },
827
- equality => [b]
828
- OBJECT
829
- obj2 = PObjectType.new(obj._pcore_init_hash)
830
- expect(obj).to eql(obj2)
831
- end
832
- end
833
-
834
- context 'when stringifying created instances' do
835
- it 'outputs a Puppet constructor using the initializer hash' do
836
- code = <<-CODE
837
- type Spec::MyObject = Object[{attributes => { a => Integer }}]
838
- type Spec::MySecondObject = Object[{parent => Spec::MyObject, attributes => { b => String }}]
839
- notice(Spec::MySecondObject(42, 'Meaning of life'))
840
- CODE
841
- expect(eval_and_collect_notices(code)).to eql(["Spec::MySecondObject({'a' => 42, 'b' => 'Meaning of life'})"])
842
- end
843
- end
844
-
845
- context 'when used from Ruby' do
846
- it 'can create an instance without scope using positional arguments' do
847
- parse_object('MyObject', <<-OBJECT)
848
- attributes => {
849
- a => { type => Integer }
850
- }
851
- OBJECT
852
-
853
- t = Puppet::Pops::Types::TypeParser.singleton.parse('MyObject', Puppet::Pops::Loaders.find_loader(nil))
854
- instance = t.create(32)
855
- expect(instance.a).to eql(32)
856
- end
857
-
858
- it 'can create an instance without scope using initialization hash' do
859
- parse_object('MyObject', <<-OBJECT)
860
- attributes => {
861
- a => { type => Integer }
862
- }
863
- OBJECT
864
-
865
- t = Puppet::Pops::Types::TypeParser.singleton.parse('MyObject', Puppet::Pops::Loaders.find_loader(nil))
866
- instance = t.from_hash('a' => 32)
867
- expect(instance.a).to eql(32)
868
- end
869
- end
870
-
871
- context 'when used in Puppet expressions' do
872
- it 'two anonymous empty objects are equal' do
873
- code = <<-CODE
874
- $x = Object[{}]
875
- $y = Object[{}]
876
- notice($x == $y)
877
- CODE
878
- expect(eval_and_collect_notices(code)).to eql(['true'])
879
- end
880
-
881
- it 'two objects where one object inherits another object are different' do
882
- code = <<-CODE
883
- type MyFirstObject = Object[{}]
884
- type MySecondObject = Object[{ parent => MyFirstObject }]
885
- notice(MyFirstObject == MySecondObject)
886
- CODE
887
- expect(eval_and_collect_notices(code)).to eql(['false'])
888
- end
889
-
890
- it 'two anonymous objects that inherits the same parent are equal' do
891
- code = <<-CODE
892
- type MyFirstObject = Object[{}]
893
- $x = Object[{ parent => MyFirstObject }]
894
- $y = Object[{ parent => MyFirstObject }]
895
- notice($x == $y)
896
- CODE
897
- expect(eval_and_collect_notices(code)).to eql(['true'])
898
- end
899
-
900
- it 'declared Object type is assignable to default Object type' do
901
- code = <<-CODE
902
- type MyObject = Object[{ attributes => { a => Integer }}]
903
- notice(MyObject < Object)
904
- notice(MyObject <= Object)
905
- CODE
906
- expect(eval_and_collect_notices(code)).to eql(['true', 'true'])
907
- end
908
-
909
- it 'default Object type not is assignable to declared Object type' do
910
- code = <<-CODE
911
- type MyObject = Object[{ attributes => { a => Integer }}]
912
- notice(Object < MyObject)
913
- notice(Object <= MyObject)
914
- CODE
915
- expect(eval_and_collect_notices(code)).to eql(['false', 'false'])
916
- end
917
-
918
- it 'default Object type is assignable to itself' do
919
- code = <<-CODE
920
- notice(Object < Object)
921
- notice(Object <= Object)
922
- notice(Object > Object)
923
- notice(Object >= Object)
924
- CODE
925
- expect(eval_and_collect_notices(code)).to eql(['false', 'true', 'false', 'true'])
926
- end
927
-
928
- it 'an object type is an instance of an object type type' do
929
- code = <<-CODE
930
- type MyObject = Object[{ attributes => { a => Integer }}]
931
- notice(MyObject =~ Type[MyObject])
932
- CODE
933
- expect(eval_and_collect_notices(code)).to eql(['true'])
934
- end
935
-
936
- it 'an object that inherits another object is an instance of the type of its parent' do
937
- code = <<-CODE
938
- type MyFirstObject = Object[{}]
939
- type MySecondObject = Object[{ parent => MyFirstObject }]
940
- notice(MySecondObject =~ Type[MyFirstObject])
941
- CODE
942
- expect(eval_and_collect_notices(code)).to eql(['true'])
943
- end
944
-
945
- it 'a named object is not added to the loader unless a type <name> = <definition> is made' do
946
- code = <<-CODE
947
- $x = Object[{ name => 'MyFirstObject' }]
948
- notice($x == MyFirstObject)
949
- CODE
950
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /Resource type not found: MyFirstObject/)
951
- end
952
-
953
- it 'a type alias on a named object overrides the name' do
954
- code = <<-CODE
955
- type MyObject = Object[{ name => 'MyFirstObject', attributes => { a => { type => Integer, final => true }}}]
956
- type MySecondObject = Object[{ parent => MyObject, attributes => { a => { type => Integer[10], override => true }}}]
957
- notice(MySecondObject =~ Type)
958
- CODE
959
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error,
960
- /attribute MySecondObject\[a\] attempts to override final attribute MyObject\[a\]/)
961
- end
962
-
963
- it 'a type cannot be created using an unresolved parent' do
964
- code = <<-CODE
965
- notice(Object[{ name => 'MyObject', parent => Type('NoneSuch'), attributes => { a => String}}].new('hello'))
966
- CODE
967
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error,
968
- /reference to unresolved type 'NoneSuch'/)
969
- end
970
-
971
- context 'type alias using bracket-less (implicit Object) form' do
972
- let(:logs) { [] }
973
- let(:notices) { logs.select { |log| log.level == :notice }.map { |log| log.message } }
974
- let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
975
- let(:node) { Puppet::Node.new('example.com') }
976
- let(:compiler) { Puppet::Parser::Compiler.new(node) }
977
-
978
- def compile(code)
979
- Puppet[:code] = code
980
- Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) { compiler.compile }
981
- end
982
-
983
- it 'Object is implicit' do
984
- compile(<<-CODE)
985
- type MyObject = { name => 'MyFirstObject', attributes => { a => Integer}}
986
- notice(MyObject =~ Type)
987
- notice(MyObject(3))
988
- CODE
989
- expect(warnings).to be_empty
990
- expect(notices).to eql(['true', "MyObject({'a' => 3})"])
991
- end
992
-
993
- it 'Object can be specified' do
994
- compile(<<-CODE)
995
- type MyObject = Object { name => 'MyFirstObject', attributes => { a =>Integer }}
996
- notice(MyObject =~ Type)
997
- notice(MyObject(3))
998
- CODE
999
- expect(warnings).to be_empty
1000
- expect(notices).to eql(['true', "MyObject({'a' => 3})"])
1001
- end
1002
-
1003
- it 'parent can be specified before the hash' do
1004
- compile(<<-CODE)
1005
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1006
- type MySecondObject = MyObject { attributes => { b => String }}
1007
- notice(MySecondObject =~ Type)
1008
- notice(MySecondObject < MyObject)
1009
- notice(MyObject('hi'))
1010
- notice(MySecondObject('hello', 'world'))
1011
- CODE
1012
- expect(warnings).to be_empty
1013
- expect(notices).to eql(
1014
- ['true', 'true', "MyObject({'a' => 'hi'})", "MySecondObject({'a' => 'hello', 'b' => 'world'})"])
1015
- end
1016
-
1017
- it 'parent can be specified in the hash' do
1018
- Puppet[:strict] = 'warning'
1019
- compile(<<-CODE)
1020
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1021
- type MySecondObject = { parent => MyObject, attributes => { b => String }}
1022
- notice(MySecondObject =~ Type)
1023
- CODE
1024
- expect(warnings).to be_empty
1025
- expect(notices).to eql(['true'])
1026
- end
1027
-
1028
- it 'Object before the hash and parent inside the hash can be combined' do
1029
- Puppet[:strict] = 'warning'
1030
- compile(<<-CODE)
1031
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1032
- type MySecondObject = Object { parent => MyObject, attributes => { b => String }}
1033
- notice(MySecondObject =~ Type)
1034
- CODE
1035
- expect(warnings).to be_empty
1036
- expect(notices).to eql(['true'])
1037
- end
1038
-
1039
- it 'if strict == warning, a warning is issued when the same is parent specified both before and inside the hash' do
1040
- Puppet[:strict] = 'warning'
1041
- compile(<<-CODE)
1042
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1043
- type MySecondObject = MyObject { parent => MyObject, attributes => { b => String }}
1044
- notice(MySecondObject =~ Type)
1045
- CODE
1046
- expect(notices).to eql(['true'])
1047
- expect(warnings).to eql(["The key 'parent' is declared more than once"])
1048
- end
1049
-
1050
- it 'if strict == warning, a warning is issued when different parents are specified before and inside the hash. The former overrides the latter' do
1051
- Puppet[:strict] = 'warning'
1052
- compile(<<-CODE)
1053
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1054
- type MySecondObject = MyObject { parent => MyObject, attributes => { b => String }}
1055
- notice(MySecondObject =~ Type)
1056
- CODE
1057
- expect(notices).to eql(['true'])
1058
- expect(warnings).to eql(["The key 'parent' is declared more than once"])
1059
- end
1060
-
1061
- it 'if strict == error, an error is raised when the same parent is specified both before and inside the hash' do
1062
- Puppet[:strict] = 'error'
1063
- expect { compile(<<-CODE) }.to raise_error(/The key 'parent' is declared more than once/)
1064
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1065
- type MySecondObject = MyObject { parent => MyObject, attributes => { b => String }}
1066
- notice(MySecondObject =~ Type)
1067
- CODE
1068
- end
1069
-
1070
- it 'if strict == error, an error is raised when different parents are specified before and inside the hash' do
1071
- Puppet[:strict] = 'error'
1072
- expect { compile(<<-CODE) }.to raise_error(/The key 'parent' is declared more than once/)
1073
- type MyObject = { name => 'MyFirstObject', attributes => { a => String }}
1074
- type MySecondObject = MyObject { parent => MyOtherType, attributes => { b => String }}
1075
- notice(MySecondObject =~ Type)
1076
- CODE
1077
- end
1078
- end
1079
-
1080
- it 'can inherit from an aliased type' do
1081
- code = <<-CODE
1082
- type MyObject = Object[{ name => 'MyFirstObject', attributes => { a => Integer }}]
1083
- type MyObjectAlias = MyObject
1084
- type MySecondObject = Object[{ parent => MyObjectAlias, attributes => { b => String }}]
1085
- notice(MySecondObject < MyObjectAlias)
1086
- notice(MySecondObject < MyObject)
1087
- CODE
1088
- expect(eval_and_collect_notices(code)).to eql(['true', 'true'])
1089
- end
1090
-
1091
- it 'detects equality duplication when inherited from an aliased type' do
1092
- code = <<-CODE
1093
- type MyObject = Object[{ name => 'MyFirstObject', attributes => { a => Integer }}]
1094
- type MyObjectAlias = MyObject
1095
- type MySecondObject = Object[{ parent => MyObjectAlias, attributes => { b => String }, equality => a}]
1096
- notice(MySecondObject < MyObject)
1097
- CODE
1098
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error,
1099
- /MySecondObject equality is referencing attribute MyObject\[a\] which is included in equality of MyObject/)
1100
- end
1101
-
1102
- it 'raises an error when object when circular inheritance is detected' do
1103
- code = <<-CODE
1104
- type MyFirstObject = Object[{
1105
- parent => MySecondObject
1106
- }]
1107
- type MySecondObject = Object[{
1108
- parent => MyFirstObject
1109
- }]
1110
- notice(MySecondObject =~ Type[MyFirstObject])
1111
- CODE
1112
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /inherits from itself/)
1113
- end
1114
-
1115
- it 'notices the expanded string form expected content' do
1116
- code = <<-CODE
1117
- type MyFirstObject = Object[{
1118
- attributes => {
1119
- first_a => Integer,
1120
- first_b => { type => String, kind => constant, value => 'the first constant' },
1121
- first_c => { type => String, final => true, kind => derived },
1122
- first_d => { type => String, kind => given_or_derived },
1123
- first_e => { type => String }
1124
- },
1125
- functions => {
1126
- first_x => Callable[Integer],
1127
- first_y => Callable[String]
1128
- },
1129
- equality => first_a
1130
- }]
1131
- type MySecondObject = Object[{
1132
- parent => MyFirstObject,
1133
- attributes => {
1134
- second_a => Integer,
1135
- second_b => { type => String, kind => constant, value => 'the second constant' },
1136
- first_e => { type => Enum[foo,fee,fum], final => true, override => true, value => 'fee' }
1137
- },
1138
- functions => {
1139
- second_x => Callable[Integer],
1140
- second_y => Callable[String]
1141
- },
1142
- equality => second_a
1143
- }]
1144
- notice(MyFirstObject)
1145
- notice(MySecondObject)
1146
- CODE
1147
- expect(eval_and_collect_notices(code)).to eql([
1148
- "Object[{"+
1149
- "name => 'MyFirstObject', "+
1150
- "attributes => {"+
1151
- "'first_a' => Integer, "+
1152
- "'first_c' => {type => String, final => true, kind => derived}, "+
1153
- "'first_d' => {type => String, kind => given_or_derived}, "+
1154
- "'first_e' => String"+
1155
- "}, "+
1156
- "constants => {"+
1157
- "'first_b' => 'the first constant'"+
1158
- "}, "+
1159
- "functions => {"+
1160
- "'first_x' => Callable[Integer], "+
1161
- "'first_y' => Callable[String]"+
1162
- "}, "+
1163
- "equality => ['first_a']"+
1164
- "}]",
1165
- "Object[{"+
1166
- "name => 'MySecondObject', "+
1167
- "parent => MyFirstObject, "+
1168
- "attributes => {"+
1169
- "'second_a' => Integer, "+
1170
- "'first_e' => {type => Enum['fee', 'foo', 'fum'], final => true, override => true, value => 'fee'}"+
1171
- "}, "+
1172
- "constants => {"+
1173
- "'second_b' => 'the second constant'"+
1174
- "}, "+
1175
- "functions => {"+
1176
- "'second_x' => Callable[Integer], "+
1177
- "'second_y' => Callable[String]"+
1178
- "}, "+
1179
- "equality => ['second_a']"+
1180
- "}]"
1181
- ])
1182
- end
1183
-
1184
- context 'object with type parameters' do
1185
- it 'can be declared' do
1186
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['ok'])
1187
- type MyType = Object[
1188
- type_parameters => {
1189
- p1 => String
1190
- }]
1191
- notice('ok')
1192
- PUPPET
1193
- end
1194
-
1195
- it 'can be referenced' do
1196
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(["MyType['hello']"])
1197
- type MyType = Object[
1198
- type_parameters => {
1199
- p1 => String
1200
- }]
1201
-
1202
- notice(MyType['hello'])
1203
- PUPPET
1204
- end
1205
-
1206
- it 'leading unset parameters are represented as default in string representation' do
1207
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(["MyType[default, 'world']"])
1208
- type MyType = Object[
1209
- type_parameters => {
1210
- p1 => String,
1211
- p2 => String,
1212
- }]
1213
-
1214
- notice(MyType[default, 'world'])
1215
- PUPPET
1216
- end
1217
-
1218
- it 'trailing unset parameters are skipped in string representation' do
1219
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(["MyType['my']"])
1220
- type MyType = Object[
1221
- type_parameters => {
1222
- p1 => String,
1223
- p2 => String,
1224
- }]
1225
-
1226
- notice(MyType['my'])
1227
- PUPPET
1228
- end
1229
-
1230
- it 'a type with more than 2 type parameters uses named arguments in string representation' do
1231
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(["MyType[{'p1' => 'my'}]"])
1232
- type MyType = Object[
1233
- type_parameters => {
1234
- p1 => String,
1235
- p2 => String,
1236
- p3 => String,
1237
- }]
1238
-
1239
- notice(MyType['my'])
1240
- PUPPET
1241
- end
1242
-
1243
- it 'can be used without parameters' do
1244
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(["Object[{name => 'MyType', type_parameters => {'p1' => String}}]"])
1245
- type MyType = Object[
1246
- type_parameters => {
1247
- p1 => String
1248
- }]
1249
-
1250
- notice(MyType)
1251
- PUPPET
1252
- end
1253
-
1254
- it 'involves type parameter values when testing instance of' do
1255
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'false', 'true'])
1256
- type MyType = Object[
1257
- type_parameters => {
1258
- p1 => String
1259
- },
1260
- attributes => {
1261
- p1 => String
1262
- }]
1263
-
1264
- $x = MyType('world')
1265
- notice($x =~ MyType)
1266
- notice($x =~ MyType['hello'])
1267
- notice($x =~ MyType['world'])
1268
- PUPPET
1269
- end
1270
-
1271
- it 'involves type parameter values when testing assignability' do
1272
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'false', 'true', 'true', 'false', 'true'])
1273
- type MyType = Object[
1274
- type_parameters => {
1275
- p1 => String
1276
- },
1277
- attributes => {
1278
- p1 => String
1279
- }]
1280
-
1281
- $x = MyType['world']
1282
- notice($x <= MyType)
1283
- notice($x <= MyType['hello'])
1284
- notice($x <= MyType['world'])
1285
-
1286
- notice(MyType >= $x)
1287
- notice(MyType['hello'] >= $x)
1288
- notice(MyType['world'] >= $x)
1289
- PUPPET
1290
- end
1291
-
1292
- it 'parameters can be types' do
1293
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'true', 'true', 'true', 'false'])
1294
- type MyType = Object[
1295
- type_parameters => {
1296
- p1 => Variant[String,Regexp,Type[Enum],Type[Pattern],Type[NotUndef]],
1297
- p2 => Variant[String,Regexp,Type[Enum],Type[Pattern],Type[NotUndef]],
1298
- },
1299
- attributes => {
1300
- p1 => String,
1301
- p2 => String
1302
- }]
1303
- $x = MyType('good bye', 'cruel world')
1304
- notice($x =~ MyType)
1305
- notice($x =~ MyType[Enum['hello', 'good bye']])
1306
- notice($x =~ MyType[Enum['hello', 'good bye'], Pattern[/world/, /universe/]])
1307
- notice($x =~ MyType[NotUndef, NotUndef])
1308
- notice($x =~ MyType[Enum['hello', 'yo']])
1309
- PUPPET
1310
- end
1311
-
1312
- it 'parameters can be provided using named arguments' do
1313
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'false', 'true'])
1314
- type MyType = Object[
1315
- type_parameters => {
1316
- p1 => String,
1317
- p2 => String
1318
- },
1319
- attributes => {
1320
- p1 => String,
1321
- p2 => String
1322
- }]
1323
- $x = MyType('good bye', 'cruel world')
1324
- notice($x =~ MyType)
1325
- notice($x =~ MyType[p1 => 'hello', p2 => 'cruel world'])
1326
- notice($x =~ MyType[p1 => 'good bye', p2 => 'cruel world'])
1327
- PUPPET
1328
- end
1329
-
1330
- it 'at least one parameter must be given' do
1331
- expect{eval_and_collect_notices(<<-PUPPET, node)}.to raise_error(/The MyType-Type cannot be parameterized using an empty parameter list/)
1332
- type MyType = Object[
1333
- type_parameters => {
1334
- p1 => Variant[String,Regexp,Type[Enum],Type[Pattern]],
1335
- },
1336
- attributes => {
1337
- p1 => String,
1338
- }]
1339
- notice(MyType[default])
1340
- PUPPET
1341
- end
1342
-
1343
- it 'undef is a valid value for a type parameter' do
1344
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'false'])
1345
- type MyType = Object[
1346
- type_parameters => {
1347
- p1 => Optional[String],
1348
- },
1349
- attributes => {
1350
- p1 => Optional[String],
1351
- }]
1352
- notice(MyType() =~ MyType[undef])
1353
- notice(MyType('hello') =~ MyType[undef])
1354
- PUPPET
1355
- end
1356
-
1357
- it 'Type parameters does not mean that type must be parameterized' do
1358
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true'])
1359
- type MyType = Object[
1360
- type_parameters => {
1361
- p1 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1362
- p2 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1363
- },
1364
- attributes => {
1365
- p1 => String,
1366
- p2 => String
1367
- }]
1368
- notice(MyType('hello', 'world') =~ MyType)
1369
- PUPPET
1370
- end
1371
-
1372
- it 'A parameterized type is assignable to another parameterized type if base type and parameters are assignable' do
1373
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true'])
1374
- type MyType = Object[
1375
- type_parameters => {
1376
- p1 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1377
- p2 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1378
- },
1379
- attributes => {
1380
- p1 => String,
1381
- p2 => String
1382
- }]
1383
- notice(MyType[Pattern[/a/,/b/]] > MyType[Enum['a','b']])
1384
- PUPPET
1385
- end
1386
-
1387
- it 'Instance is inferred to parameterized type' do
1388
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['true', 'true', 'true', 'true', 'true'])
1389
- type MyType = Object[
1390
- type_parameters => {
1391
- p1 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1392
- p2 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1393
- },
1394
- attributes => {
1395
- p1 => String,
1396
- p2 => String
1397
- }]
1398
- $x = MyType('hello', 'world')
1399
- notice(type($x, generalized) == MyType)
1400
- notice(type($x) < MyType)
1401
- notice(type($x) < MyType['hello'])
1402
- notice(type($x) < MyType[/hello/, /world/])
1403
- notice(type($x) == MyType['hello', 'world'])
1404
- PUPPET
1405
- end
1406
-
1407
- it 'Attributes of instance of parameterized type can be accessed using function calls' do
1408
- expect(eval_and_collect_notices(<<-PUPPET, node)).to eql(['hello', 'world'])
1409
- type MyType = Object[
1410
- type_parameters => {
1411
- p1 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1412
- p2 => Variant[Undef,String,Regexp,Type[Enum],Type[Pattern]],
1413
- },
1414
- attributes => {
1415
- p1 => String,
1416
- p2 => String
1417
- }]
1418
- $x = MyType('hello', 'world')
1419
- notice($x.p1)
1420
- notice($x.p2)
1421
- PUPPET
1422
- end
1423
- end
1424
- end
1425
-
1426
- context "when used with function 'new'" do
1427
- context 'with ordered parameters' do
1428
- it 'creates an instance with initialized attributes' do
1429
- code = <<-CODE
1430
- type MyFirstObject = Object[{
1431
- attributes => {
1432
- a => Integer,
1433
- b => String
1434
- }
1435
- }]
1436
- $obj = MyFirstObject.new(3, 'hi')
1437
- notice($obj.a)
1438
- notice($obj.b)
1439
- CODE
1440
- expect(eval_and_collect_notices(code)).to eql(['3', 'hi'])
1441
- end
1442
-
1443
- it 'creates an instance with default attribute values' do
1444
- code = <<-CODE
1445
- type MyFirstObject = Object[{
1446
- attributes => {
1447
- a => { type => String, value => 'the default' }
1448
- }
1449
- }]
1450
- $obj = MyFirstObject.new
1451
- notice($obj.a)
1452
- CODE
1453
- expect(eval_and_collect_notices(code)).to eql(['the default'])
1454
- end
1455
-
1456
- it 'creates an instance with constant attributes' do
1457
- code = <<-CODE
1458
- type MyFirstObject = Object[{
1459
- attributes => {
1460
- a => { type => String, kind => constant, value => 'the constant' }
1461
- }
1462
- }]
1463
- $obj = MyFirstObject.new
1464
- notice($obj.a)
1465
- CODE
1466
- expect(eval_and_collect_notices(code)).to eql(['the constant'])
1467
- end
1468
-
1469
- it 'creates an instance with overridden attribute defaults' do
1470
- code = <<-CODE
1471
- type MyFirstObject = Object[{
1472
- attributes => {
1473
- a => { type => String, value => 'the default' }
1474
- }
1475
- }]
1476
- $obj = MyFirstObject.new('not default')
1477
- notice($obj.a)
1478
- CODE
1479
- expect(eval_and_collect_notices(code)).to eql(['not default'])
1480
- end
1481
-
1482
- it 'fails on an attempt to provide a constant attribute value' do
1483
- code = <<-CODE
1484
- type MyFirstObject = Object[{
1485
- attributes => {
1486
- a => { type => String, kind => constant, value => 'the constant' }
1487
- }
1488
- }]
1489
- $obj = MyFirstObject.new('not constant')
1490
- notice($obj.a)
1491
- CODE
1492
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /expects no arguments/)
1493
- end
1494
-
1495
- it 'fails when a required key is missing' do
1496
- code = <<-CODE
1497
- type MyFirstObject = Object[{
1498
- attributes => {
1499
- a => String
1500
- }
1501
- }]
1502
- $obj = MyFirstObject.new
1503
- notice($obj.a)
1504
- CODE
1505
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /expects 1 argument, got none/)
1506
- end
1507
-
1508
- it 'creates a derived instance with initialized attributes' do
1509
- code = <<-CODE
1510
- type MyFirstObject = Object[{
1511
- attributes => {
1512
- a => Integer,
1513
- b => { type => String, kind => constant, value => 'the first constant' },
1514
- c => String
1515
- }
1516
- }]
1517
- type MySecondObject = Object[{
1518
- parent => MyFirstObject,
1519
- attributes => {
1520
- d => { type => Integer, value => 34 }
1521
- }
1522
- }]
1523
- $obj = MySecondObject.new(3, 'hi')
1524
- notice($obj.a)
1525
- notice($obj.b)
1526
- notice($obj.c)
1527
- notice($obj.d)
1528
- CODE
1529
- expect(eval_and_collect_notices(code)).to eql(['3', 'the first constant', 'hi', '34'])
1530
- end
1531
- end
1532
-
1533
- context 'with named parameters' do
1534
- it 'creates an instance with initialized attributes' do
1535
- code = <<-CODE
1536
- type MyFirstObject = Object[{
1537
- attributes => {
1538
- a => Integer,
1539
- b => String
1540
- }
1541
- }]
1542
- $obj = MyFirstObject.new({b => 'hi', a => 3})
1543
- notice($obj.a)
1544
- notice($obj.b)
1545
- CODE
1546
- expect(eval_and_collect_notices(code)).to eql(['3', 'hi'])
1547
- end
1548
-
1549
- it 'creates an instance with default attribute values' do
1550
- code = <<-CODE
1551
- type MyFirstObject = Object[{
1552
- attributes => {
1553
- a => { type => String, value => 'the default' }
1554
- }
1555
- }]
1556
- $obj = MyFirstObject.new({})
1557
- notice($obj.a)
1558
- CODE
1559
- expect(eval_and_collect_notices(code)).to eql(['the default'])
1560
- end
1561
-
1562
- it 'creates an instance with constant attributes' do
1563
- code = <<-CODE
1564
- type MyFirstObject = Object[{
1565
- attributes => {
1566
- a => { type => String, kind => constant, value => 'the constant' }
1567
- }
1568
- }]
1569
- $obj = MyFirstObject.new({})
1570
- notice($obj.a)
1571
- CODE
1572
- expect(eval_and_collect_notices(code)).to eql(['the constant'])
1573
- end
1574
-
1575
- it 'creates an instance with overridden attribute defaults' do
1576
- code = <<-CODE
1577
- type MyFirstObject = Object[{
1578
- attributes => {
1579
- a => { type => String, value => 'the default' }
1580
- }
1581
- }]
1582
- $obj = MyFirstObject.new({a => 'not default'})
1583
- notice($obj.a)
1584
- CODE
1585
- expect(eval_and_collect_notices(code)).to eql(['not default'])
1586
- end
1587
-
1588
- it 'fails on an attempt to provide a constant attribute value' do
1589
- code = <<-CODE
1590
- type MyFirstObject = Object[{
1591
- attributes => {
1592
- a => { type => String, kind => constant, value => 'the constant' }
1593
- }
1594
- }]
1595
- $obj = MyFirstObject.new({a => 'not constant'})
1596
- notice($obj.a)
1597
- CODE
1598
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /unrecognized key 'a'/)
1599
- end
1600
-
1601
- it 'fails when a required key is missing' do
1602
- code = <<-CODE
1603
- type MyFirstObject = Object[{
1604
- attributes => {
1605
- a => String
1606
- }
1607
- }]
1608
- $obj = MyFirstObject.new({})
1609
- notice($obj.a)
1610
- CODE
1611
- expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /expects size to be 1, got 0/)
1612
- end
1613
-
1614
- it 'creates a derived instance with initialized attributes' do
1615
- code = <<-CODE
1616
- type MyFirstObject = Object[{
1617
- attributes => {
1618
- a => Integer,
1619
- b => { type => String, kind => constant, value => 'the first constant' },
1620
- c => String
1621
- }
1622
- }]
1623
- type MySecondObject = Object[{
1624
- parent => MyFirstObject,
1625
- attributes => {
1626
- d => { type => Integer, value => 34 }
1627
- }
1628
- }]
1629
- $obj = MySecondObject.new({c => 'hi', a => 3})
1630
- notice($obj.a)
1631
- notice($obj.b)
1632
- notice($obj.c)
1633
- notice($obj.d)
1634
- CODE
1635
- expect(eval_and_collect_notices(code)).to eql(['3', 'the first constant', 'hi', '34'])
1636
- end
1637
- end
1638
- end
1639
-
1640
- context 'is assigned to all PAnyType classes such that' do
1641
- include_context 'types_setup'
1642
-
1643
- def find_parent(tc, parent_name)
1644
- p = tc._pcore_type
1645
- while p.is_a?(PObjectType) && p.name != parent_name
1646
- p = p.parent
1647
- end
1648
- expect(p).to be_a(PObjectType), "did not find #{parent_name} in parent chain of #{tc.name}"
1649
- p
1650
- end
1651
-
1652
- it 'the class has a _pcore_type method' do
1653
- all_types.each do |tc|
1654
- expect(tc).to respond_to(:_pcore_type).with(0).arguments
1655
- end
1656
- end
1657
-
1658
- it 'the _pcore_type method returns a PObjectType instance' do
1659
- all_types.each do |tc|
1660
- expect(tc._pcore_type).to be_a(PObjectType)
1661
- end
1662
- end
1663
-
1664
- it 'the instance returned by _pcore_type is a descendant from Pcore::AnyType' do
1665
- all_types.each { |tc| expect(find_parent(tc, 'Pcore::AnyType').name).to eq('Pcore::AnyType') }
1666
- end
1667
-
1668
- it 'PScalarType classes _pcore_type returns a descendant from Pcore::ScalarType' do
1669
- scalar_types.each { |tc| expect(find_parent(tc, 'Pcore::ScalarType').name).to eq('Pcore::ScalarType') }
1670
- end
1671
-
1672
- it 'PNumericType classes _pcore_type returns a descendant from Pcore::NumberType' do
1673
- numeric_types.each { |tc| expect(find_parent(tc, 'Pcore::NumericType').name).to eq('Pcore::NumericType') }
1674
- end
1675
-
1676
- it 'PCollectionType classes _pcore_type returns a descendant from Pcore::CollectionType' do
1677
- coll_descendants = collection_types - [PTupleType, PStructType]
1678
- coll_descendants.each { |tc| expect(find_parent(tc, 'Pcore::CollectionType').name).to eq('Pcore::CollectionType') }
1679
- end
1680
- end
1681
-
1682
- context 'when dealing with annotations' do
1683
- let(:annotation) { <<-PUPPET }
1684
- type MyAdapter = Object[{
1685
- parent => Annotation,
1686
- attributes => {
1687
- id => Integer,
1688
- value => String[1]
1689
- }
1690
- }]
1691
- PUPPET
1692
-
1693
- it 'the Annotation type can be used as parent' do
1694
- code = <<-PUPPET
1695
- #{annotation}
1696
- notice(MyAdapter < Annotation)
1697
- PUPPET
1698
- expect(eval_and_collect_notices(code)).to eql(['true'])
1699
- end
1700
-
1701
- it 'an annotation can be added to an Object type' do
1702
- code = <<-PUPPET
1703
- #{annotation}
1704
- type MyObject = Object[{
1705
- annotations => {
1706
- MyAdapter => { 'id' => 2, 'value' => 'annotation value' }
1707
- }
1708
- }]
1709
- notice(MyObject)
1710
- PUPPET
1711
- expect(eval_and_collect_notices(code)).to eql([
1712
- "Object[{annotations => {MyAdapter => {'id' => 2, 'value' => 'annotation value'}}, name => 'MyObject'}]"])
1713
- end
1714
-
1715
- it 'other types can not be used as annotations' do
1716
- code = <<-PUPPET
1717
- type NotAnAnnotation = Object[{}]
1718
- type MyObject = Object[{
1719
- annotations => {
1720
- NotAnAnnotation => {}
1721
- }
1722
- }]
1723
- notice(MyObject)
1724
- PUPPET
1725
- expect{eval_and_collect_notices(code)}.to raise_error(/entry 'annotations' expects a value of type Undef or Hash/)
1726
- end
1727
- end
1728
- end
1729
- end
1730
- end