puppet 3.3.2 → 3.4.0.rc1

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

Potentially problematic release.


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

Files changed (589) hide show
  1. data/CONTRIBUTING.md +22 -0
  2. data/Gemfile +11 -2
  3. data/README.md +13 -17
  4. data/README_DEVELOPER.md +1 -1
  5. data/Rakefile +1 -1
  6. data/examples/hiera/README.md +4 -4
  7. data/ext/debian/puppetmaster.init +1 -0
  8. data/ext/debian/rules +2 -5
  9. data/ext/nagios/check_puppet.rb +7 -7
  10. data/ext/osx/file_mapping.yaml +1 -1
  11. data/ext/osx/preflight.erb +34 -19
  12. data/ext/rack/{files/config.ru → config.ru} +0 -0
  13. data/ext/rack/{files/apache2.conf → example-passenger-vhost.conf} +6 -0
  14. data/ext/redhat/puppet.spec.erb +20 -2
  15. data/ext/systemd/{puppetagent.service → puppet.service} +0 -0
  16. data/lib/hiera_puppet.rb +2 -2
  17. data/lib/puppet/agent.rb +1 -6
  18. data/lib/puppet/application.rb +15 -2
  19. data/lib/puppet/application/agent.rb +2 -7
  20. data/lib/puppet/application/apply.rb +8 -13
  21. data/lib/puppet/application/cert.rb +47 -7
  22. data/lib/puppet/application/device.rb +1 -6
  23. data/lib/puppet/application/face_base.rb +1 -1
  24. data/lib/puppet/application/filebucket.rb +1 -1
  25. data/lib/puppet/application/inspect.rb +3 -12
  26. data/lib/puppet/application/master.rb +1 -6
  27. data/lib/puppet/application/queue.rb +1 -6
  28. data/lib/puppet/application/resource.rb +2 -6
  29. data/lib/puppet/coercion.rb +11 -0
  30. data/lib/puppet/configurer.rb +5 -3
  31. data/lib/puppet/configurer/downloader.rb +3 -1
  32. data/lib/puppet/configurer/plugin_handler.rb +10 -0
  33. data/lib/puppet/confine.rb +80 -0
  34. data/lib/puppet/{provider/confine → confine}/exists.rb +3 -3
  35. data/lib/puppet/{provider/confine → confine}/false.rb +2 -2
  36. data/lib/puppet/{provider/confine → confine}/feature.rb +2 -2
  37. data/lib/puppet/{provider/confine → confine}/true.rb +2 -2
  38. data/lib/puppet/{provider/confine → confine}/variable.rb +2 -2
  39. data/lib/puppet/{provider/confine_collection.rb → confine_collection.rb} +4 -4
  40. data/lib/puppet/{provider/confiner.rb → confiner.rb} +4 -4
  41. data/lib/puppet/daemon.rb +2 -6
  42. data/lib/puppet/data_binding.rb +2 -30
  43. data/lib/puppet/defaults.rb +283 -174
  44. data/lib/puppet/error.rb +1 -0
  45. data/lib/puppet/external/nagios.rb +0 -2
  46. data/lib/puppet/external/nagios/base.rb +4 -3
  47. data/lib/puppet/external/nagios/grammar.ry +173 -112
  48. data/lib/puppet/external/nagios/parser.rb +233 -184
  49. data/lib/puppet/face/file/store.rb +1 -1
  50. data/lib/puppet/face/module/generate.rb +5 -7
  51. data/lib/puppet/face/parser.rb +12 -2
  52. data/lib/puppet/face/plugin.rb +6 -0
  53. data/lib/puppet/feature/base.rb +16 -0
  54. data/lib/puppet/feature/external_facts.rb +5 -0
  55. data/lib/puppet/feature/libuser.rb +1 -1
  56. data/lib/puppet/feature/msgpack.rb +1 -0
  57. data/lib/puppet/feature/rails.rb +2 -2
  58. data/lib/puppet/file_bucket/dipper.rb +8 -6
  59. data/lib/puppet/file_bucket/file.rb +17 -1
  60. data/lib/puppet/file_serving/base.rb +21 -10
  61. data/lib/puppet/file_serving/configuration.rb +5 -7
  62. data/lib/puppet/file_serving/configuration/parser.rb +1 -1
  63. data/lib/puppet/file_serving/content.rb +1 -1
  64. data/lib/puppet/file_serving/fileset.rb +3 -3
  65. data/lib/puppet/file_serving/metadata.rb +22 -18
  66. data/lib/puppet/file_serving/mount/file.rb +1 -1
  67. data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
  68. data/lib/puppet/file_system.rb +3 -0
  69. data/lib/puppet/file_system/file.rb +261 -0
  70. data/lib/puppet/file_system/file18.rb +5 -0
  71. data/lib/puppet/file_system/file19.rb +5 -0
  72. data/lib/puppet/file_system/file19windows.rb +113 -0
  73. data/lib/puppet/file_system/memory_file.rb +31 -0
  74. data/lib/puppet/file_system/tempfile.rb +20 -0
  75. data/lib/puppet/indirector/active_record.rb +1 -0
  76. data/lib/puppet/indirector/catalog/compiler.rb +28 -0
  77. data/lib/puppet/indirector/certificate_request/memory.rb +6 -0
  78. data/lib/puppet/indirector/data_binding/hiera.rb +46 -2
  79. data/lib/puppet/indirector/direct_file_server.rb +2 -2
  80. data/lib/puppet/indirector/facts/facter.rb +25 -0
  81. data/lib/puppet/indirector/file_bucket_file/file.rb +60 -74
  82. data/lib/puppet/indirector/indirection.rb +5 -1
  83. data/lib/puppet/indirector/json.rb +1 -1
  84. data/lib/puppet/indirector/key/ca.rb +4 -0
  85. data/lib/puppet/indirector/key/file.rb +7 -3
  86. data/lib/puppet/indirector/key/memory.rb +6 -0
  87. data/lib/puppet/indirector/node/write_only_yaml.rb +2 -2
  88. data/lib/puppet/indirector/request.rb +17 -11
  89. data/lib/puppet/indirector/resource/ral.rb +5 -0
  90. data/lib/puppet/indirector/resource/rest.rb +1 -0
  91. data/lib/puppet/indirector/resource/store_configs.rb +4 -0
  92. data/lib/puppet/indirector/rest.rb +2 -1
  93. data/lib/puppet/indirector/ssl_file.rb +7 -7
  94. data/lib/puppet/indirector/terminus.rb +4 -0
  95. data/lib/puppet/indirector/yaml.rb +3 -3
  96. data/lib/puppet/interface/documentation.rb +4 -11
  97. data/lib/puppet/module.rb +19 -6
  98. data/lib/puppet/module_tool/applications/builder.rb +1 -1
  99. data/lib/puppet/module_tool/applications/installer.rb +1 -1
  100. data/lib/puppet/module_tool/checksums.rb +1 -1
  101. data/lib/puppet/module_tool/dependency.rb +7 -3
  102. data/lib/puppet/module_tool/metadata.rb +6 -2
  103. data/lib/puppet/module_tool/tar.rb +2 -1
  104. data/lib/puppet/module_tool/tar/gnu.rb +6 -2
  105. data/lib/puppet/module_tool/tar/mini.rb +2 -0
  106. data/lib/puppet/module_tool/tar/solaris.rb +2 -5
  107. data/lib/puppet/network/authconfig.rb +0 -2
  108. data/lib/puppet/network/authentication.rb +1 -1
  109. data/lib/puppet/network/authstore.rb +6 -7
  110. data/lib/puppet/network/format.rb +2 -3
  111. data/lib/puppet/network/format_handler.rb +16 -11
  112. data/lib/puppet/network/format_support.rb +14 -0
  113. data/lib/puppet/network/formats.rb +26 -0
  114. data/lib/puppet/network/http/connection.rb +8 -41
  115. data/lib/puppet/network/http/handler.rb +28 -32
  116. data/lib/puppet/network/http/webrick.rb +15 -22
  117. data/lib/puppet/network/http_pool.rb +43 -9
  118. data/lib/puppet/network/rights.rb +0 -0
  119. data/lib/puppet/node.rb +24 -8
  120. data/lib/puppet/node/environment.rb +18 -20
  121. data/lib/puppet/node/facts.rb +23 -6
  122. data/lib/puppet/parameter.rb +15 -2
  123. data/lib/puppet/parameter/boolean.rb +5 -0
  124. data/lib/puppet/parameter/value_collection.rb +6 -4
  125. data/lib/puppet/parser/ast/resourceparam.rb +2 -1
  126. data/lib/puppet/parser/compiler.rb +25 -9
  127. data/lib/puppet/parser/files.rb +1 -1
  128. data/lib/puppet/parser/functions.rb +12 -21
  129. data/lib/puppet/parser/functions/collect.rb +6 -35
  130. data/lib/puppet/parser/functions/contain.rb +26 -0
  131. data/lib/puppet/parser/functions/create_resources.rb +5 -0
  132. data/lib/puppet/parser/functions/extlookup.rb +2 -2
  133. data/lib/puppet/parser/functions/file.rb +1 -1
  134. data/lib/puppet/parser/functions/{reject.rb → filter.rb} +13 -12
  135. data/lib/puppet/parser/functions/fqdn_rand.rb +13 -5
  136. data/lib/puppet/parser/functions/include.rb +18 -1
  137. data/lib/puppet/parser/functions/map.rb +44 -0
  138. data/lib/puppet/parser/functions/select.rb +6 -38
  139. data/lib/puppet/parser/lexer.rb +1 -1
  140. data/lib/puppet/parser/parser_support.rb +1 -1
  141. data/lib/puppet/parser/resource.rb +6 -45
  142. data/lib/puppet/parser/scope.rb +33 -2
  143. data/lib/puppet/parser/type_loader.rb +4 -60
  144. data/lib/puppet/pops/binder/bindings_loader.rb +1 -1
  145. data/lib/puppet/pops/binder/config/binder_config.rb +3 -3
  146. data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +1 -1
  147. data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +1 -1
  148. data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +2 -2
  149. data/lib/puppet/pops/issues.rb +4 -0
  150. data/lib/puppet/pops/model/ast_transformer.rb +4 -1
  151. data/lib/puppet/pops/model/model_label_provider.rb +1 -1
  152. data/lib/puppet/pops/parser/egrammar.ra +5 -24
  153. data/lib/puppet/pops/parser/eparser.rb +859 -902
  154. data/lib/puppet/pops/parser/lexer.rb +48 -30
  155. data/lib/puppet/pops/parser/parser_support.rb +1 -1
  156. data/lib/puppet/pops/patterns.rb +4 -4
  157. data/lib/puppet/pops/utils.rb +1 -1
  158. data/lib/puppet/pops/validation/checker3_1.rb +25 -20
  159. data/lib/puppet/provider.rb +23 -6
  160. data/lib/puppet/provider/aixobject.rb +0 -0
  161. data/lib/puppet/provider/augeas/augeas.rb +21 -5
  162. data/lib/puppet/provider/confine.rb +5 -79
  163. data/lib/puppet/provider/cron/crontab.rb +0 -0
  164. data/lib/puppet/provider/exec.rb +9 -7
  165. data/lib/puppet/provider/exec/posix.rb +10 -1
  166. data/lib/puppet/provider/exec/windows.rb +1 -1
  167. data/lib/puppet/provider/file/posix.rb +1 -0
  168. data/lib/puppet/provider/file/windows.rb +16 -5
  169. data/lib/puppet/provider/group/aix.rb +0 -0
  170. data/lib/puppet/provider/group/windows_adsi.rb +33 -1
  171. data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
  172. data/lib/puppet/provider/mailalias/aliases.rb +0 -0
  173. data/lib/puppet/provider/maillist/mailman.rb +0 -0
  174. data/lib/puppet/provider/mount/parsed.rb +0 -0
  175. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  176. data/lib/puppet/provider/package/appdmg.rb +1 -1
  177. data/lib/puppet/provider/package/apple.rb +1 -1
  178. data/lib/puppet/provider/package/apt.rb +1 -1
  179. data/lib/puppet/provider/package/aptitude.rb +0 -0
  180. data/lib/puppet/provider/package/blastwave.rb +1 -1
  181. data/lib/puppet/provider/package/dpkg.rb +1 -1
  182. data/lib/puppet/provider/package/fink.rb +1 -1
  183. data/lib/puppet/provider/package/freebsd.rb +0 -0
  184. data/lib/puppet/provider/package/gem.rb +0 -0
  185. data/lib/puppet/provider/package/macports.rb +0 -0
  186. data/lib/puppet/provider/package/msi.rb +4 -10
  187. data/lib/puppet/provider/package/nim.rb +8 -8
  188. data/lib/puppet/provider/package/openbsd.rb +1 -1
  189. data/lib/puppet/provider/package/opkg.rb +0 -0
  190. data/lib/puppet/provider/package/pacman.rb +2 -2
  191. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  192. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  193. data/lib/puppet/provider/package/ports.rb +0 -0
  194. data/lib/puppet/provider/package/rpm.rb +39 -3
  195. data/lib/puppet/provider/package/sun.rb +3 -3
  196. data/lib/puppet/provider/package/sunfreeware.rb +0 -0
  197. data/lib/puppet/provider/package/windows.rb +12 -19
  198. data/lib/puppet/provider/package/windows/package.rb +1 -1
  199. data/lib/puppet/provider/package/yum.rb +2 -2
  200. data/lib/puppet/provider/parsedfile.rb +0 -0
  201. data/lib/puppet/provider/port/parsed.rb +0 -0
  202. data/lib/puppet/provider/service/base.rb +0 -0
  203. data/lib/puppet/provider/service/bsd.rb +3 -3
  204. data/lib/puppet/provider/service/daemontools.rb +8 -8
  205. data/lib/puppet/provider/service/debian.rb +0 -0
  206. data/lib/puppet/provider/service/freebsd.rb +3 -3
  207. data/lib/puppet/provider/service/init.rb +5 -4
  208. data/lib/puppet/provider/service/launchd.rb +35 -24
  209. data/lib/puppet/provider/service/openbsd.rb +23 -0
  210. data/lib/puppet/provider/service/redhat.rb +0 -0
  211. data/lib/puppet/provider/service/runit.rb +3 -3
  212. data/lib/puppet/provider/service/smf.rb +0 -0
  213. data/lib/puppet/provider/service/src.rb +0 -0
  214. data/lib/puppet/provider/service/systemd.rb +0 -0
  215. data/lib/puppet/provider/service/upstart.rb +3 -3
  216. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
  217. data/lib/puppet/provider/sshkey/parsed.rb +0 -0
  218. data/lib/puppet/provider/user/aix.rb +0 -0
  219. data/lib/puppet/provider/user/directoryservice.rb +1 -1
  220. data/lib/puppet/provider/user/useradd.rb +1 -1
  221. data/lib/puppet/provider/zone/solaris.rb +1 -1
  222. data/lib/puppet/rails/benchmark.rb +1 -1
  223. data/lib/puppet/reference/configuration.rb +1 -2
  224. data/lib/puppet/reference/indirection.rb +12 -14
  225. data/lib/puppet/relationship.rb +7 -4
  226. data/lib/puppet/reports.rb +2 -2
  227. data/lib/puppet/reports/rrdgraph.rb +1 -1
  228. data/lib/puppet/reports/store.rb +3 -3
  229. data/lib/puppet/reports/tagmail.rb +2 -2
  230. data/lib/puppet/resource.rb +66 -8
  231. data/lib/puppet/resource/catalog.rb +18 -25
  232. data/lib/puppet/resource/status.rb +10 -4
  233. data/lib/puppet/run.rb +6 -2
  234. data/lib/puppet/settings.rb +39 -119
  235. data/lib/puppet/settings/base_setting.rb +8 -9
  236. data/lib/puppet/settings/directory_setting.rb +8 -0
  237. data/lib/puppet/settings/file_setting.rb +35 -1
  238. data/lib/puppet/settings/priority_setting.rb +42 -0
  239. data/lib/puppet/ssl.rb +4 -0
  240. data/lib/puppet/ssl/certificate.rb +18 -0
  241. data/lib/puppet/ssl/certificate_authority.rb +101 -72
  242. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +44 -0
  243. data/lib/puppet/ssl/certificate_authority/interface.rb +21 -17
  244. data/lib/puppet/ssl/certificate_factory.rb +38 -12
  245. data/lib/puppet/ssl/certificate_request.rb +201 -47
  246. data/lib/puppet/ssl/certificate_request_attributes.rb +34 -0
  247. data/lib/puppet/ssl/certificate_revocation_list.rb +2 -2
  248. data/lib/puppet/ssl/host.rb +21 -10
  249. data/lib/puppet/ssl/inventory.rb +6 -10
  250. data/lib/puppet/ssl/key.rb +1 -1
  251. data/lib/puppet/ssl/oids.rb +78 -0
  252. data/lib/puppet/ssl/validator.rb +41 -97
  253. data/lib/puppet/ssl/validator/default_validator.rb +153 -0
  254. data/lib/puppet/ssl/validator/no_validator.rb +17 -0
  255. data/lib/puppet/status.rb +4 -0
  256. data/lib/puppet/test/test_helper.rb +5 -0
  257. data/lib/puppet/transaction.rb +13 -0
  258. data/lib/puppet/transaction/event.rb +8 -3
  259. data/lib/puppet/transaction/report.rb +6 -2
  260. data/lib/puppet/transaction/resource_harness.rb +173 -115
  261. data/lib/puppet/type.rb +30 -13
  262. data/lib/puppet/type/augeas.rb +12 -46
  263. data/lib/puppet/type/component.rb +1 -7
  264. data/lib/puppet/type/cron.rb +0 -0
  265. data/lib/puppet/type/exec.rb +13 -1
  266. data/lib/puppet/type/file.rb +19 -10
  267. data/lib/puppet/type/file/checksum.rb +0 -0
  268. data/lib/puppet/type/file/content.rb +3 -0
  269. data/lib/puppet/type/file/ensure.rb +33 -15
  270. data/lib/puppet/type/file/group.rb +0 -0
  271. data/lib/puppet/type/file/mode.rb +6 -2
  272. data/lib/puppet/type/file/owner.rb +0 -0
  273. data/lib/puppet/type/file/source.rb +65 -14
  274. data/lib/puppet/type/file/target.rb +6 -6
  275. data/lib/puppet/type/file/type.rb +0 -0
  276. data/lib/puppet/type/filebucket.rb +0 -0
  277. data/lib/puppet/type/group.rb +18 -0
  278. data/lib/puppet/type/host.rb +0 -0
  279. data/lib/puppet/type/k5login.rb +4 -4
  280. data/lib/puppet/type/mailalias.rb +0 -0
  281. data/lib/puppet/type/maillist.rb +0 -0
  282. data/lib/puppet/type/mount.rb +15 -1
  283. data/lib/puppet/type/package.rb +7 -1
  284. data/lib/puppet/type/port.rb +0 -0
  285. data/lib/puppet/type/schedule.rb +9 -4
  286. data/lib/puppet/type/service.rb +1 -1
  287. data/lib/puppet/type/sshkey.rb +0 -0
  288. data/lib/puppet/type/tidy.rb +1 -1
  289. data/lib/puppet/type/user.rb +3 -0
  290. data/lib/puppet/type/yumrepo.rb +8 -6
  291. data/lib/puppet/type/zpool.rb +0 -0
  292. data/lib/puppet/util.rb +4 -31
  293. data/lib/puppet/util/adsi.rb +73 -17
  294. data/lib/puppet/util/autoload.rb +3 -3
  295. data/lib/puppet/util/backups.rb +4 -4
  296. data/lib/puppet/util/cacher.rb +7 -13
  297. data/lib/puppet/util/checksums.rb +2 -2
  298. data/lib/puppet/util/classgen.rb +3 -1
  299. data/lib/puppet/util/colors.rb +1 -0
  300. data/lib/puppet/util/command_line.rb +5 -0
  301. data/lib/puppet/util/docs.rb +33 -27
  302. data/lib/puppet/util/execution.rb +42 -18
  303. data/lib/puppet/util/filetype.rb +3 -3
  304. data/lib/puppet/util/instance_loader.rb +2 -2
  305. data/lib/puppet/util/instrumentation.rb +23 -42
  306. data/lib/puppet/util/instrumentation/data.rb +11 -4
  307. data/lib/puppet/util/instrumentation/indirection_probe.rb +11 -4
  308. data/lib/puppet/util/instrumentation/instrumentable.rb +7 -14
  309. data/lib/puppet/util/instrumentation/listener.rb +15 -8
  310. data/lib/puppet/util/instrumentation/listeners/log.rb +4 -10
  311. data/lib/puppet/util/instrumentation/listeners/performance.rb +8 -14
  312. data/lib/puppet/util/limits.rb +12 -0
  313. data/lib/puppet/util/lockfile.rb +2 -2
  314. data/lib/puppet/util/log.rb +14 -6
  315. data/lib/puppet/util/log/destinations.rb +23 -1
  316. data/lib/puppet/util/metric.rb +9 -3
  317. data/lib/puppet/util/monkey_patches.rb +7 -2
  318. data/lib/puppet/util/network_device/config.rb +1 -1
  319. data/lib/puppet/util/plugins.rb +1 -1
  320. data/lib/puppet/util/posix.rb +0 -0
  321. data/lib/puppet/util/profiler.rb +7 -2
  322. data/lib/puppet/util/provider_features.rb +2 -2
  323. data/lib/puppet/util/rdoc.rb +28 -30
  324. data/lib/puppet/util/rdoc/code_objects.rb +75 -25
  325. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
  326. data/lib/puppet/util/rdoc/parser.rb +12 -487
  327. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +477 -0
  328. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +19 -0
  329. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
  330. data/lib/puppet/util/reference.rb +1 -1
  331. data/lib/puppet/util/resource_template.rb +1 -1
  332. data/lib/puppet/util/selinux.rb +1 -1
  333. data/lib/puppet/util/storage.rb +2 -2
  334. data/lib/puppet/util/suidmanager.rb +1 -1
  335. data/lib/puppet/util/tag_set.rb +29 -0
  336. data/lib/puppet/util/tagging.rb +8 -24
  337. data/lib/puppet/util/watched_file.rb +1 -1
  338. data/lib/puppet/util/watcher.rb +1 -1
  339. data/lib/puppet/util/windows.rb +3 -0
  340. data/lib/puppet/util/windows/access_control_entry.rb +84 -0
  341. data/lib/puppet/util/windows/access_control_list.rb +106 -0
  342. data/lib/puppet/util/windows/file.rb +213 -0
  343. data/lib/puppet/util/windows/process.rb +199 -0
  344. data/lib/puppet/util/windows/root_certs.rb +52 -37
  345. data/lib/puppet/util/windows/security.rb +270 -245
  346. data/lib/puppet/util/windows/security_descriptor.rb +62 -0
  347. data/lib/puppet/util/windows/sid.rb +26 -4
  348. data/lib/puppet/version.rb +2 -2
  349. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
  350. data/spec/fixtures/unit/indirector/{hiera → data_binding/hiera}/global.yaml +0 -0
  351. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +1 -0
  352. data/spec/fixtures/unit/module/trailing-comma.json +24 -0
  353. data/spec/fixtures/unit/util/monkey_patches/x509.pem +32 -0
  354. data/spec/integration/application/apply_spec.rb +1 -1
  355. data/spec/integration/application/doc_spec.rb +1 -1
  356. data/spec/integration/configurer_spec.rb +4 -2
  357. data/spec/integration/data_binding.rb +100 -0
  358. data/spec/integration/indirector/catalog/compiler_spec.rb +16 -13
  359. data/spec/integration/indirector/direct_file_server_spec.rb +3 -5
  360. data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
  361. data/spec/integration/node/facts_spec.rb +1 -1
  362. data/spec/integration/node_spec.rb +1 -1
  363. data/spec/integration/parser/compiler_spec.rb +90 -0
  364. data/spec/integration/parser/parser_spec.rb +2 -2
  365. data/spec/integration/provider/cron/crontab_spec.rb +3 -5
  366. data/spec/integration/resource/catalog_spec.rb +1 -1
  367. data/spec/integration/ssl/autosign_spec.rb +90 -0
  368. data/spec/integration/ssl/certificate_authority_spec.rb +62 -69
  369. data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
  370. data/spec/integration/ssl/host_spec.rb +1 -1
  371. data/spec/integration/transaction_spec.rb +13 -13
  372. data/spec/integration/type/exec_spec.rb +2 -2
  373. data/spec/integration/type/file_spec.rb +287 -45
  374. data/spec/integration/type/tidy_spec.rb +3 -3
  375. data/spec/integration/util/rdoc/parser_spec.rb +236 -35
  376. data/spec/integration/util/settings_spec.rb +1 -1
  377. data/spec/integration/util/windows/process_spec.rb +22 -0
  378. data/spec/integration/util/windows/security_spec.rb +316 -106
  379. data/spec/lib/matchers/containment_matchers.rb +52 -0
  380. data/spec/lib/puppet_spec/compiler.rb +6 -0
  381. data/spec/lib/puppet_spec/files.rb +20 -21
  382. data/spec/shared_behaviours/documentation_on_faces.rb +3 -3
  383. data/spec/shared_behaviours/file_server_terminus.rb +2 -2
  384. data/spec/shared_contexts/platform.rb +1 -0
  385. data/spec/spec_helper.rb +13 -1
  386. data/spec/unit/agent_spec.rb +0 -12
  387. data/spec/unit/application/agent_spec.rb +4 -4
  388. data/spec/unit/application/apply_spec.rb +18 -2
  389. data/spec/unit/application/cert_spec.rb +8 -6
  390. data/spec/unit/application/device_spec.rb +1 -1
  391. data/spec/unit/application/filebucket_spec.rb +1 -1
  392. data/spec/unit/application/inspect_spec.rb +1 -1
  393. data/spec/unit/application_spec.rb +24 -0
  394. data/spec/unit/configurer/downloader_spec.rb +8 -7
  395. data/spec/unit/configurer/fact_handler_spec.rb +23 -0
  396. data/spec/unit/configurer/plugin_handler_spec.rb +7 -2
  397. data/spec/unit/configurer_spec.rb +15 -5
  398. data/spec/unit/{provider/confine → confine}/exists_spec.rb +12 -12
  399. data/spec/unit/{provider/confine → confine}/false_spec.rb +9 -9
  400. data/spec/unit/{provider/confine → confine}/feature_spec.rb +10 -10
  401. data/spec/unit/{provider/confine → confine}/true_spec.rb +7 -7
  402. data/spec/unit/{provider/confine → confine}/variable_spec.rb +16 -16
  403. data/spec/unit/{provider/confine_collection_spec.rb → confine_collection_spec.rb} +30 -30
  404. data/spec/unit/{provider/confine_spec.rb → confine_spec.rb} +11 -11
  405. data/spec/unit/{provider/confiner_spec.rb → confiner_spec.rb} +4 -4
  406. data/spec/unit/face/parser_spec.rb +54 -0
  407. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  408. data/spec/unit/file_serving/base_spec.rb +32 -9
  409. data/spec/unit/file_serving/configuration_spec.rb +7 -7
  410. data/spec/unit/file_serving/content_spec.rb +12 -7
  411. data/spec/unit/file_serving/fileset_spec.rb +57 -27
  412. data/spec/unit/file_serving/metadata_spec.rb +74 -12
  413. data/spec/unit/file_serving/mount/file_spec.rb +10 -10
  414. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +73 -0
  415. data/spec/unit/file_system/file_spec.rb +486 -0
  416. data/spec/unit/file_system/tempfile_spec.rb +48 -0
  417. data/spec/unit/graph/relationship_graph_spec.rb +0 -6
  418. data/spec/unit/hiera_puppet_spec.rb +2 -2
  419. data/spec/unit/indirector/catalog/compiler_spec.rb +15 -19
  420. data/spec/unit/indirector/certificate_status/file_spec.rb +30 -40
  421. data/spec/unit/indirector/data_binding/hiera_spec.rb +95 -2
  422. data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
  423. data/spec/unit/indirector/facts/facter_spec.rb +33 -0
  424. data/spec/unit/indirector/file_bucket_file/file_spec.rb +61 -52
  425. data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
  426. data/spec/unit/indirector/file_server_spec.rb +4 -4
  427. data/spec/unit/indirector/json_spec.rb +4 -4
  428. data/spec/unit/indirector/key/file_spec.rb +13 -14
  429. data/spec/unit/indirector/resource/ral_spec.rb +7 -0
  430. data/spec/unit/indirector/resource/store_configs_spec.rb +11 -0
  431. data/spec/unit/indirector/rest_spec.rb +7 -3
  432. data/spec/unit/indirector/ssl_file_spec.rb +14 -17
  433. data/spec/unit/indirector/yaml_spec.rb +4 -4
  434. data/spec/unit/module_spec.rb +43 -15
  435. data/spec/unit/module_tool/tar/gnu_spec.rb +2 -2
  436. data/spec/unit/module_tool/tar/solaris_spec.rb +2 -2
  437. data/spec/unit/module_tool/tar_spec.rb +45 -0
  438. data/spec/unit/network/authconfig_spec.rb +2 -1
  439. data/spec/unit/network/authentication_spec.rb +2 -2
  440. data/spec/unit/network/format_handler_spec.rb +2 -2
  441. data/spec/unit/network/formats_spec.rb +24 -0
  442. data/spec/unit/network/http/connection_spec.rb +76 -199
  443. data/spec/unit/network/http/handler_spec.rb +33 -34
  444. data/spec/unit/network/http_pool_spec.rb +8 -5
  445. data/spec/unit/node/environment_spec.rb +76 -90
  446. data/spec/unit/node/facts_spec.rb +20 -3
  447. data/spec/unit/node_spec.rb +43 -0
  448. data/spec/unit/parameter/boolean_spec.rb +22 -12
  449. data/spec/unit/parser/ast/resourceparam_spec.rb +51 -0
  450. data/spec/unit/parser/compiler_spec.rb +103 -35
  451. data/spec/unit/parser/eparser_adapter_spec.rb +12 -12
  452. data/spec/unit/parser/files_spec.rb +11 -11
  453. data/spec/unit/parser/functions/contain_spec.rb +185 -0
  454. data/spec/unit/parser/functions/create_resources_spec.rb +13 -5
  455. data/spec/unit/parser/functions/generate_spec.rb +1 -1
  456. data/spec/unit/parser/functions_spec.rb +2 -2
  457. data/spec/unit/parser/lexer_spec.rb +1 -1
  458. data/spec/unit/parser/methods/each_spec.rb +1 -1
  459. data/spec/unit/parser/methods/{select_spec.rb → filter_spec.rb} +11 -11
  460. data/spec/unit/parser/methods/map_spec.rb +95 -0
  461. data/spec/unit/parser/methods/reduce_spec.rb +12 -11
  462. data/spec/unit/parser/methods/shared.rb +5 -5
  463. data/spec/unit/parser/methods/slice_spec.rb +13 -13
  464. data/spec/unit/parser/parser_spec.rb +1 -1
  465. data/spec/unit/parser/resource/param_spec.rb +44 -0
  466. data/spec/unit/parser/resource_spec.rb +16 -15
  467. data/spec/unit/pops/model/ast_transformer_spec.rb +18 -4
  468. data/spec/unit/pops/parser/lexer_spec.rb +22 -5
  469. data/spec/unit/pops/parser/parse_calls_spec.rb +5 -5
  470. data/spec/unit/pops/transformer/transform_calls_spec.rb +6 -6
  471. data/spec/unit/pops/transformer/transform_containers_spec.rb +2 -2
  472. data/spec/unit/pops/validator/validator_spec.rb +31 -0
  473. data/spec/unit/provider/augeas/augeas_spec.rb +57 -2
  474. data/spec/unit/provider/exec/posix_spec.rb +8 -3
  475. data/spec/unit/provider/file/posix_spec.rb +2 -2
  476. data/spec/unit/provider/group/windows_adsi_spec.rb +70 -3
  477. data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
  478. data/spec/unit/provider/package/apt_spec.rb +1 -1
  479. data/spec/unit/provider/package/msi_spec.rb +15 -42
  480. data/spec/unit/provider/package/openbsd_spec.rb +3 -3
  481. data/spec/unit/provider/package/rpm_spec.rb +56 -13
  482. data/spec/unit/provider/package/windows_spec.rb +15 -19
  483. data/spec/unit/provider/service/base_spec.rb +1 -1
  484. data/spec/unit/provider/service/daemontools_spec.rb +18 -8
  485. data/spec/unit/provider/service/freebsd_spec.rb +3 -3
  486. data/spec/unit/provider/service/gentoo_spec.rb +5 -2
  487. data/spec/unit/provider/service/init_spec.rb +17 -17
  488. data/spec/unit/provider/service/launchd_spec.rb +76 -23
  489. data/spec/unit/provider/service/openbsd_spec.rb +125 -0
  490. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  491. data/spec/unit/provider/service/runit_spec.rb +12 -5
  492. data/spec/unit/provider/service/upstart_spec.rb +4 -4
  493. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +5 -5
  494. data/spec/unit/provider/user/directoryservice_spec.rb +4 -4
  495. data/spec/unit/provider/zone/solaris_spec.rb +1 -1
  496. data/spec/unit/provider_spec.rb +2 -2
  497. data/spec/unit/reports/http_spec.rb +19 -34
  498. data/spec/unit/reports/store_spec.rb +2 -2
  499. data/spec/unit/resource/catalog_spec.rb +81 -11
  500. data/spec/unit/resource/status_spec.rb +11 -1
  501. data/spec/unit/resource/type_spec.rb +30 -1
  502. data/spec/unit/resource_spec.rb +40 -4
  503. data/spec/unit/settings/file_setting_spec.rb +2 -2
  504. data/spec/unit/settings/path_setting_spec.rb +2 -2
  505. data/spec/unit/settings/priority_setting_spec.rb +66 -0
  506. data/spec/unit/settings_spec.rb +16 -31
  507. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +30 -0
  508. data/spec/unit/ssl/certificate_authority_spec.rb +129 -134
  509. data/spec/unit/ssl/certificate_factory_spec.rb +18 -0
  510. data/spec/unit/ssl/certificate_request_attributes_spec.rb +61 -0
  511. data/spec/unit/ssl/certificate_request_spec.rb +103 -0
  512. data/spec/unit/ssl/certificate_spec.rb +31 -18
  513. data/spec/unit/ssl/host_spec.rb +34 -8
  514. data/spec/unit/ssl/inventory_spec.rb +27 -62
  515. data/spec/unit/ssl/key_spec.rb +4 -4
  516. data/spec/unit/ssl/oids_spec.rb +48 -0
  517. data/spec/unit/ssl/validator_spec.rb +49 -6
  518. data/spec/unit/status_spec.rb +9 -0
  519. data/spec/unit/transaction/event_spec.rb +1 -9
  520. data/spec/unit/transaction/report_spec.rb +20 -1
  521. data/spec/unit/transaction/resource_harness_spec.rb +60 -210
  522. data/spec/unit/transaction_spec.rb +54 -8
  523. data/spec/unit/type/component_spec.rb +2 -2
  524. data/spec/unit/type/exec_spec.rb +14 -7
  525. data/spec/unit/type/file/content_spec.rb +13 -2
  526. data/spec/unit/type/file/ctime_spec.rb +1 -1
  527. data/spec/unit/type/file/mode_spec.rb +48 -2
  528. data/spec/unit/type/file/mtime_spec.rb +1 -1
  529. data/spec/unit/type/file/source_spec.rb +177 -7
  530. data/spec/unit/type/file_spec.rb +63 -71
  531. data/spec/unit/type/group_spec.rb +20 -0
  532. data/spec/unit/type/k5login_spec.rb +3 -3
  533. data/spec/unit/type/mount_spec.rb +53 -0
  534. data/spec/unit/type/nagios_spec.rb +216 -0
  535. data/spec/unit/type/package_spec.rb +7 -1
  536. data/spec/unit/type/schedule_spec.rb +6 -0
  537. data/spec/unit/type/service_spec.rb +3 -3
  538. data/spec/unit/type/tidy_spec.rb +14 -14
  539. data/spec/unit/type/user_spec.rb +9 -0
  540. data/spec/unit/type_spec.rb +86 -4
  541. data/spec/unit/util/adsi_spec.rb +120 -12
  542. data/spec/unit/util/autoload_spec.rb +14 -14
  543. data/spec/unit/util/backups_spec.rb +29 -21
  544. data/spec/unit/util/checksums_spec.rb +2 -1
  545. data/spec/unit/util/command_line_spec.rb +41 -0
  546. data/spec/unit/util/docs_spec.rb +91 -0
  547. data/spec/unit/util/execution_spec.rb +26 -2
  548. data/spec/unit/util/filetype_spec.rb +7 -7
  549. data/spec/unit/util/lockfile_spec.rb +2 -2
  550. data/spec/unit/util/log/destinations_spec.rb +32 -0
  551. data/spec/unit/util/monkey_patches_spec.rb +41 -0
  552. data/spec/unit/util/pidlock_spec.rb +6 -6
  553. data/spec/unit/util/rdoc/parser_spec.rb +15 -13
  554. data/spec/unit/util/rdoc_spec.rb +18 -24
  555. data/spec/unit/util/resource_template_spec.rb +3 -3
  556. data/spec/unit/util/selinux_spec.rb +4 -2
  557. data/spec/unit/util/storage_spec.rb +4 -4
  558. data/spec/unit/util/suidmanager_spec.rb +7 -0
  559. data/spec/unit/util/tag_set_spec.rb +46 -0
  560. data/spec/unit/util/tagging_spec.rb +82 -45
  561. data/spec/unit/util/watcher_spec.rb +4 -1
  562. data/spec/unit/util/windows/access_control_entry_spec.rb +67 -0
  563. data/spec/unit/util/windows/access_control_list_spec.rb +133 -0
  564. data/spec/unit/util/windows/root_certs_spec.rb +10 -8
  565. data/spec/unit/util/windows/security_descriptor_spec.rb +117 -0
  566. data/spec/unit/util/windows/sid_spec.rb +69 -0
  567. data/spec/unit/util_spec.rb +7 -7
  568. data/tasks/ci.rake +17 -36
  569. metadata +2811 -2746
  570. checksums.yaml +0 -7
  571. data/examples/mac_automount.pp +0 -16
  572. data/examples/mcx_dock_absent.pp +0 -4
  573. data/examples/mcx_dock_default.pp +0 -118
  574. data/examples/mcx_dock_full.pp +0 -125
  575. data/examples/mcx_dock_invalid.pp +0 -9
  576. data/examples/mcx_nogroup.pp +0 -118
  577. data/examples/mcx_notexists_absent.pp +0 -4
  578. data/ext/rack/README +0 -58
  579. data/ext/rack/manifest.pp +0 -59
  580. data/lib/puppet/external/lock.rb +0 -63
  581. data/lib/puppet/indirector/hiera.rb +0 -39
  582. data/lib/puppet/parser/functions/foreach.rb +0 -95
  583. data/spec/integration/network/server/webrick_spec.rb +0 -76
  584. data/spec/integration/parser/functions_spec.rb +0 -16
  585. data/spec/unit/indirector/hiera_spec.rb +0 -154
  586. data/spec/unit/parser/methods/collect_spec.rb +0 -153
  587. data/spec/unit/parser/methods/foreach_spec.rb +0 -91
  588. data/spec/unit/parser/methods/reject_spec.rb +0 -73
  589. data/spec/unit/resource/resource_type.json +0 -34
@@ -25,7 +25,7 @@ describe Puppet::Util::Lockfile do
25
25
  it "should create a lock file" do
26
26
  @lock.lock
27
27
 
28
- File.should be_exists(@lockfile)
28
+ Puppet::FileSystem::File.exist?(@lockfile).should be_true
29
29
  end
30
30
 
31
31
  it "should create a lock file containing a string" do
@@ -49,7 +49,7 @@ describe Puppet::Util::Lockfile do
49
49
  it "should clear the lock file" do
50
50
  File.open(@lockfile, 'w') { |fd| fd.print("locked") }
51
51
  @lock.unlock
52
- File.should_not be_exists(@lockfile)
52
+ Puppet::FileSystem::File.exist?(@lockfile).should be_false
53
53
  end
54
54
  end
55
55
 
@@ -108,6 +108,38 @@ describe Puppet::Util::Log.desttypes[:syslog] do
108
108
  end
109
109
  end
110
110
 
111
+ describe Puppet::Util::Log.desttypes[:logstash_event] do
112
+
113
+ describe "when using structured log format with logstash_event schema" do
114
+ before :each do
115
+ @msg = Puppet::Util::Log.new(:level => :info, :message => "So long, and thanks for all the fish.", :source => "a dolphin")
116
+ end
117
+
118
+ it "format should fix the hash to have the correct structure" do
119
+ dest = described_class.new
120
+ result = dest.format(@msg)
121
+ result["version"].should == 1
122
+ result["level"].should == :info
123
+ result["message"].should == "So long, and thanks for all the fish."
124
+ result["source"].should == "a dolphin"
125
+ # timestamp should be within 10 seconds
126
+ Time.parse(result["@timestamp"]).should >= ( Time.now - 10 )
127
+ end
128
+
129
+ it "format returns a structure that can be converted to json" do
130
+ dest = described_class.new
131
+ hash = dest.format(@msg)
132
+ JSON.parse(hash.to_json)
133
+ end
134
+
135
+ it "handle should send the output to stdout" do
136
+ $stdout.expects(:puts).once
137
+ dest = described_class.new
138
+ dest.handle(@msg)
139
+ end
140
+ end
141
+ end
142
+
111
143
  describe Puppet::Util::Log.desttypes[:console] do
112
144
  let (:klass) { Puppet::Util::Log.desttypes[:console] }
113
145
 
@@ -280,6 +280,47 @@ describe OpenSSL::SSL::SSLContext do
280
280
  end
281
281
  end
282
282
 
283
+
284
+ describe OpenSSL::X509::Store, :if => Puppet::Util::Platform.windows? do
285
+ let(:store) { described_class.new }
286
+ let(:cert) { OpenSSL::X509::Certificate.new(File.read(my_fixture('x509.pem'))) }
287
+
288
+ def with_root_certs(certs)
289
+ Puppet::Util::Windows::RootCerts.expects(:instance).returns(certs)
290
+ end
291
+
292
+ it "adds a root cert to the store" do
293
+ with_root_certs([cert])
294
+
295
+ store.set_default_paths
296
+ end
297
+
298
+ it "ignores duplicate root certs" do
299
+ with_root_certs([cert, cert])
300
+
301
+ store.expects(:add_cert).with(cert).once
302
+
303
+ store.set_default_paths
304
+ end
305
+
306
+ it "warns when adding a certificate that already exists" do
307
+ with_root_certs([cert])
308
+ store.add_cert(cert)
309
+
310
+ store.expects(:warn).with('Failed to add /DC=com/DC=microsoft/CN=Microsoft Root Certificate Authority')
311
+
312
+ store.set_default_paths
313
+ end
314
+
315
+ it "raises when adding an invalid certificate" do
316
+ with_root_certs(['notacert'])
317
+
318
+ expect {
319
+ store.set_default_paths
320
+ }.to raise_error(TypeError)
321
+ end
322
+ end
323
+
283
324
  describe SecureRandom do
284
325
  it 'generates a properly formatted uuid' do
285
326
  SecureRandom.uuid.should =~ /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i
@@ -47,7 +47,7 @@ describe Puppet::Util::Pidlock do
47
47
 
48
48
  it "should create a lock file" do
49
49
  @lock.lock
50
- File.should be_exists(@lockfile)
50
+ Puppet::FileSystem::File.exist?(@lockfile).should be_true
51
51
  end
52
52
 
53
53
  it "should expose the lock file_path" do
@@ -74,7 +74,7 @@ describe Puppet::Util::Pidlock do
74
74
  it "should get rid of the lock file" do
75
75
  @lock.lock
76
76
  @lock.unlock
77
- File.should_not be_exists(@lockfile)
77
+ Puppet::FileSystem::File.exist?(@lockfile).should be_false
78
78
  end
79
79
  end
80
80
 
@@ -106,12 +106,12 @@ describe Puppet::Util::Pidlock do
106
106
  describe "#lock" do
107
107
  it "should clear stale locks" do
108
108
  @lock.locked?
109
- File.should_not be_exists(@lockfile)
109
+ Puppet::FileSystem::File.exist?(@lockfile).should be_false
110
110
  end
111
111
 
112
112
  it "should replace with new locks" do
113
113
  @lock.lock
114
- File.should be_exists(@lockfile)
114
+ Puppet::FileSystem::File.exist?(@lockfile).should be_true
115
115
  @lock.lock_pid.should == 6789
116
116
  @lock.should be_mine
117
117
  @lock.should be_locked
@@ -125,7 +125,7 @@ describe Puppet::Util::Pidlock do
125
125
 
126
126
  it "should not remove the lock file" do
127
127
  @lock.unlock
128
- File.should be_exists(@lockfile)
128
+ Puppet::FileSystem::File.exist?(@lockfile).should be_true
129
129
  end
130
130
  end
131
131
  end
@@ -170,7 +170,7 @@ describe Puppet::Util::Pidlock do
170
170
 
171
171
  it "should not remove the lock file" do
172
172
  @lock.unlock
173
- File.should be_exists(@lockfile)
173
+ Puppet::FileSystem::File.exist?(@lockfile).should be_true
174
174
  end
175
175
 
176
176
  it "should still not be our lock" do
@@ -13,7 +13,9 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
13
13
  include PuppetSpec::Files
14
14
 
15
15
  before :each do
16
- File.stubs(:stat).with("init.pp")
16
+ stub_file = stub('init.pp', :stat => stub())
17
+ # Ruby 1.8.7 needs the following call to be stubs and not expects
18
+ Puppet::FileSystem::File.stubs(:new).with('init.pp').returns stub_file
17
19
  @top_level = stub_everything 'toplevel', :file_relative_name => "init.pp"
18
20
  @parser = RDoc::Parser.new(@top_level, "module/manifests/init.pp", nil, Options.instance, RDoc::Stats.new)
19
21
  end
@@ -82,7 +84,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
82
84
  File.stubs(:open).returns("readme")
83
85
  @parser.stubs(:parse_elements)
84
86
 
85
- @module.expects(:comment=).with("readme")
87
+ @module.expects(:add_comment).with("readme", "module/manifests/init.pp")
86
88
 
87
89
  @parser.scan_top_level(@topcontainer)
88
90
  end
@@ -93,7 +95,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
93
95
  File.stubs(:open).returns("readme")
94
96
  @parser.stubs(:parse_elements)
95
97
 
96
- @module.expects(:comment=).with("readme")
98
+ @module.expects(:add_comment).with("readme", "module/manifests/init.pp")
97
99
 
98
100
  @parser.scan_top_level(@topcontainer)
99
101
  end
@@ -105,7 +107,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
105
107
  File.stubs(:open).with("module/README.rdoc", "r").returns("readme.rdoc")
106
108
  @parser.stubs(:parse_elements)
107
109
 
108
- @module.expects(:comment=).with("readme.rdoc")
110
+ @module.expects(:add_comment).with("readme.rdoc", "module/manifests/init.pp")
109
111
 
110
112
  @parser.scan_top_level(@topcontainer)
111
113
  end
@@ -311,7 +313,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
311
313
  end
312
314
 
313
315
  it "should associate the node documentation to the rdoc node" do
314
- @rdoc_node.expects(:comment=).with("mydoc")
316
+ @rdoc_node.expects(:add_comment).with("mydoc", "file")
315
317
  @parser.document_node("mynode", @node, @class)
316
318
  end
317
319
 
@@ -360,7 +362,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
360
362
  end
361
363
 
362
364
  it "should associate the node documentation to the rdoc class" do
363
- @rdoc_class.expects(:comment=).with("mydoc")
365
+ @rdoc_class.expects(:add_comment).with("mydoc", "file")
364
366
  @parser.document_class("mynode", @class, @module)
365
367
  end
366
368
 
@@ -397,7 +399,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
397
399
  before(:each) do
398
400
  @class = stub_everything 'class'
399
401
  @code = stub_everything 'code'
400
- @code.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(true)
402
+ @code.stubs(:is_a?).with(Puppet::Parser::AST::BlockExpression).returns(true)
401
403
  end
402
404
 
403
405
  it "should also scan mono-instruction code" do
@@ -435,7 +437,7 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
435
437
  before(:each) do
436
438
  @class = stub_everything 'class'
437
439
  @code = stub_everything 'code'
438
- @code.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(true)
440
+ @code.stubs(:is_a?).with(Puppet::Parser::AST::BlockExpression).returns(true)
439
441
  end
440
442
 
441
443
  it "should also scan mono-instruction code" do
@@ -457,11 +459,11 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
457
459
  @class = stub_everything 'class'
458
460
 
459
461
  @stmt = stub_everything 'stmt', :name => "myvar", :value => "myvalue", :doc => "mydoc"
460
- @stmt.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(false)
462
+ @stmt.stubs(:is_a?).with(Puppet::Parser::AST::BlockExpression).returns(false)
461
463
  @stmt.stubs(:is_a?).with(Puppet::Parser::AST::VarDef).returns(true)
462
464
 
463
465
  @code = stub_everything 'code'
464
- @code.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(true)
466
+ @code.stubs(:is_a?).with(Puppet::Parser::AST::BlockExpression).returns(true)
465
467
  end
466
468
 
467
469
  it "should recursively register variables to the current container" do
@@ -483,17 +485,17 @@ describe "RDoc::Parser", :if => Puppet.features.rdoc1? do
483
485
  @class = stub_everything 'class'
484
486
  @stmt = Puppet::Parser::AST::Resource.new(
485
487
  :type => "File",
486
- :instances => Puppet::Parser::AST::ASTArray.new(:children => [
488
+ :instances => Puppet::Parser::AST::BlockExpression.new(:children => [
487
489
  Puppet::Parser::AST::ResourceInstance.new(
488
490
  :title => Puppet::Parser::AST::Name.new(:value => "myfile"),
489
- :parameters => Puppet::Parser::AST::ASTArray.new(:children => [])
491
+ :parameters => Puppet::Parser::AST::BlockExpression.new(:children => [])
490
492
  )
491
493
  ]),
492
494
  :doc => 'mydoc'
493
495
  )
494
496
 
495
497
  @code = stub_everything 'code'
496
- @code.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(true)
498
+ @code.stubs(:is_a?).with(Puppet::Parser::AST::BlockExpression).returns(true)
497
499
  end
498
500
 
499
501
  it "should register a PuppetResource to the current container" do
@@ -5,15 +5,7 @@ require 'puppet/util/rdoc'
5
5
  require 'rdoc/rdoc'
6
6
 
7
7
  describe Puppet::Util::RDoc do
8
- it "should fail with a clear error without RDoc 1.*" do
9
- Puppet.features.stubs(:rdoc1?).returns(false)
10
-
11
- expect {
12
- Puppet::Util::RDoc.rdoc("output", [])
13
- }.to raise_error(/the version of RDoc .* is not supported/)
14
- end
15
-
16
- describe "when generating RDoc HTML documentation", :if => Puppet.features.rdoc1? do
8
+ describe "when generating RDoc HTML documentation" do
17
9
  before :each do
18
10
  @rdoc = stub_everything 'rdoc'
19
11
  RDoc::RDoc.stubs(:new).returns(@rdoc)
@@ -24,12 +16,6 @@ describe Puppet::Util::RDoc do
24
16
  Puppet::Util::RDoc.rdoc("output", [])
25
17
  end
26
18
 
27
- it "should install the Puppet HTML Generator into RDoc generators" do
28
- Puppet::Util::RDoc.rdoc("output", [])
29
-
30
- RDoc::RDoc::GENERATORS["puppet"].file_name.should == "puppet/util/rdoc/generators/puppet_generator.rb"
31
- end
32
-
33
19
  it "should tell RDoc to generate documentation using the Puppet generator" do
34
20
  @rdoc.expects(:document).with { |args| args.include?("--fmt") and args.include?("puppet") }
35
21
 
@@ -48,18 +34,26 @@ describe Puppet::Util::RDoc do
48
34
  Puppet::Util::RDoc.rdoc("output", [], "utf-8")
49
35
  end
50
36
 
51
- it "should tell RDoc to force updates of indices when RDoc supports it" do
52
- Options::OptionList.stubs(:options).returns([["--force-update", "-U", 0 ]])
53
- @rdoc.expects(:document).with { |args| args.include?("--force-update") }
37
+ describe "with rdoc1", :if => Puppet.features.rdoc1? do
38
+ it "should install the Puppet HTML Generator into RDoc generators" do
39
+ Puppet::Util::RDoc.rdoc("output", [])
54
40
 
55
- Puppet::Util::RDoc.rdoc("output", [])
56
- end
41
+ RDoc::RDoc::GENERATORS["puppet"].file_name.should == "puppet/util/rdoc/generators/puppet_generator.rb"
42
+ end
57
43
 
58
- it "should not tell RDoc to force updates of indices when RDoc doesn't support it" do
59
- Options::OptionList.stubs(:options).returns([])
60
- @rdoc.expects(:document).never.with { |args| args.include?("--force-update") }
44
+ it "should tell RDoc to force updates of indices when RDoc supports it" do
45
+ ::Options::OptionList.stubs(:options).returns([["--force-update", "-U", 0 ]])
46
+ @rdoc.expects(:document).with { |args| args.include?("--force-update") }
61
47
 
62
- Puppet::Util::RDoc.rdoc("output", [])
48
+ Puppet::Util::RDoc.rdoc("output", [])
49
+ end
50
+
51
+ it "should not tell RDoc to force updates of indices when RDoc doesn't support it" do
52
+ ::Options::OptionList.stubs(:options).returns([])
53
+ @rdoc.expects(:document).never.with { |args| args.include?("--force-update") }
54
+
55
+ Puppet::Util::RDoc.rdoc("output", [])
56
+ end
63
57
  end
64
58
 
65
59
  it "should tell RDoc to use the given outputdir" do
@@ -6,20 +6,20 @@ require 'puppet/util/resource_template'
6
6
  describe Puppet::Util::ResourceTemplate do
7
7
  describe "when initializing" do
8
8
  it "should fail if the template does not exist" do
9
- FileTest.expects(:exist?).with("/my/template").returns false
9
+ Puppet::FileSystem::File.expects(:exist?).with("/my/template").returns false
10
10
  lambda { Puppet::Util::ResourceTemplate.new("/my/template", mock('resource')) }.should raise_error(ArgumentError)
11
11
  end
12
12
 
13
13
  it "should not create the ERB template" do
14
14
  ERB.expects(:new).never
15
- FileTest.expects(:exist?).with("/my/template").returns true
15
+ Puppet::FileSystem::File.expects(:exist?).with("/my/template").returns true
16
16
  Puppet::Util::ResourceTemplate.new("/my/template", mock('resource'))
17
17
  end
18
18
  end
19
19
 
20
20
  describe "when evaluating" do
21
21
  before do
22
- FileTest.stubs(:exist?).returns true
22
+ Puppet::FileSystem::File.stubs(:exist?).returns true
23
23
  File.stubs(:read).returns "eh"
24
24
 
25
25
  @template = stub 'template', :result => nil
@@ -123,7 +123,8 @@ describe Puppet::Util::SELinux do
123
123
  it "should return a context if a default context exists" do
124
124
  self.expects(:selinux_support?).returns true
125
125
  fstat = stub 'File::Stat', :mode => 0
126
- File.expects(:lstat).with("/foo").returns fstat
126
+ stub_file = stub('/foo', :lstat => fstat)
127
+ Puppet::FileSystem::File.expects(:new).with('/foo').returns stub_file
127
128
  self.expects(:find_fs).with("/foo").returns "ext3"
128
129
  Selinux.expects(:matchpathcon).with("/foo", 0).returns [0, "user_u:role_r:type_t:s0"]
129
130
  get_selinux_default_context("/foo").should == "user_u:role_r:type_t:s0"
@@ -150,7 +151,8 @@ describe Puppet::Util::SELinux do
150
151
  it "should return nil if matchpathcon returns failure" do
151
152
  self.expects(:selinux_support?).returns true
152
153
  fstat = stub 'File::Stat', :mode => 0
153
- File.expects(:lstat).with("/foo").returns fstat
154
+ stub_file = stub('/foo', :lstat => fstat)
155
+ Puppet::FileSystem::File.expects(:new).with('/foo').returns stub_file
154
156
  self.expects(:find_fs).with("/foo").returns "ext3"
155
157
  Selinux.expects(:matchpathcon).with("/foo", 0).returns -1
156
158
  get_selinux_default_context("/foo").should be_nil
@@ -77,7 +77,7 @@ describe Puppet::Util::Storage do
77
77
  end
78
78
 
79
79
  it "should not fail to load" do
80
- FileTest.exists?(@path).should be_false
80
+ Puppet::FileSystem::File.exist?(@path).should be_false
81
81
  Puppet[:statedir] = @path
82
82
  Puppet::Util::Storage.load
83
83
  Puppet[:statefile] = @path
@@ -85,7 +85,7 @@ describe Puppet::Util::Storage do
85
85
  end
86
86
 
87
87
  it "should not lose its internal state when load() is called" do
88
- FileTest.exists?(@path).should be_false
88
+ Puppet::FileSystem::File.exist?(@path).should be_false
89
89
 
90
90
  Puppet::Util::Storage.cache(:yayness)
91
91
  Puppet::Util::Storage.state.should == {:yayness=>{}}
@@ -176,12 +176,12 @@ describe Puppet::Util::Storage do
176
176
  end
177
177
 
178
178
  it "should create the state file if it does not exist" do
179
- FileTest.exists?(Puppet[:statefile]).should be_false
179
+ Puppet::FileSystem::File.exist?(Puppet[:statefile]).should be_false
180
180
  Puppet::Util::Storage.cache(:yayness)
181
181
 
182
182
  Puppet::Util::Storage.store
183
183
 
184
- FileTest.exists?(Puppet[:statefile]).should be_true
184
+ Puppet::FileSystem::File.exist?(Puppet[:statefile]).should be_true
185
185
  end
186
186
 
187
187
  it "should raise an exception if the state file is not a regular file" do
@@ -231,6 +231,13 @@ describe Puppet::Util::SUIDManager do
231
231
  output.first.should == 'output'
232
232
  output.last.should be_a(Process::Status)
233
233
  end
234
+
235
+ it "should log a deprecation notice" do
236
+ Puppet::Util::Execution.stubs(:execute).returns("success")
237
+ Puppet.expects(:deprecation_warning).with('Puppet::Util::SUIDManager.run_and_capture is deprecated; please use Puppet::Util::Execution.execute instead.')
238
+
239
+ output = Puppet::Util::SUIDManager.run_and_capture 'yay', user[:uid], user[:gid]
240
+ end
234
241
  end
235
242
  end
236
243
 
@@ -0,0 +1,46 @@
1
+ #! /usr/bin/env ruby
2
+ require 'spec_helper'
3
+
4
+ require 'puppet/util/tag_set'
5
+
6
+ RSpec::Matchers.define :be_one_of do |*expected|
7
+ match do |actual|
8
+ expected.include? actual
9
+ end
10
+
11
+ failure_message_for_should do |actual|
12
+ "expected #{actual.inspect} to be one of #{expected.map(&:inspect).join(' or ')}"
13
+ end
14
+ end
15
+
16
+ describe Puppet::Util::TagSet do
17
+ let(:set) { Puppet::Util::TagSet.new }
18
+
19
+ it 'serializes to yaml as an array' do
20
+ array = ['a', :b, 1, 5.4]
21
+ set.merge(array)
22
+
23
+ Set.new(YAML.load(set.to_yaml)).should == Set.new(array)
24
+ end
25
+
26
+ it 'deserializes from a yaml array' do
27
+ array = ['a', :b, 1, 5.4]
28
+
29
+ Puppet::Util::TagSet.from_yaml(array.to_yaml).should == Puppet::Util::TagSet.new(array)
30
+ end
31
+
32
+ it 'round trips through pson' do
33
+ array = ['a', 'b', 1, 5.4]
34
+ set.merge(array)
35
+
36
+ tes = Puppet::Util::TagSet.from_pson(PSON.parse(set.to_pson))
37
+ tes.should == set
38
+ end
39
+
40
+ it 'can join its elements with a string separator' do
41
+ array = ['a', 'b']
42
+ set.merge(array)
43
+
44
+ set.join(', ').should be_one_of('a, b', 'b, a')
45
+ end
46
+ end