puppet 2.7.26 → 3.0.0.rc4

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 (1472) hide show
  1. data/CHANGELOG +533 -204
  2. data/Gemfile +8 -24
  3. data/Gemfile.lock +44 -0
  4. data/LICENSE +1 -1
  5. data/README.md +2 -2
  6. data/README_DEVELOPER.md +18 -210
  7. data/Rakefile +30 -47
  8. data/bin/puppet +5 -3
  9. data/conf/auth.conf +3 -3
  10. data/{ext → conf}/osx/PackageInfo.plist +0 -0
  11. data/{ext → conf}/osx/createpackage.sh +0 -0
  12. data/conf/osx/preflight +24 -0
  13. data/conf/redhat/client.init +8 -8
  14. data/{ext/redhat/puppet.spec.erb → conf/redhat/puppet.spec} +29 -46
  15. data/conf/redhat/queue.init +105 -0
  16. data/conf/redhat/rundir-perms.patch +13 -13
  17. data/conf/redhat/server.init +4 -4
  18. data/conf/solaris/pkginfo +1 -1
  19. data/conf/suse/puppet.spec +8 -3
  20. data/conf/windows/eventlog/puppetres.dll +0 -0
  21. data/ext/emacs/puppet-mode.el +204 -150
  22. data/ext/nagios/naggen +1 -1
  23. data/ext/puppet-test +1 -1
  24. data/ext/puppetlisten/puppetlisten.rb +1 -2
  25. data/ext/puppetlisten/puppetrun.rb +1 -2
  26. data/ext/rack/files/config.ru +21 -3
  27. data/ext/regexp_nodes/environment/development +2 -0
  28. data/ext/regexp_nodes/parameters/{environment → service}/prod +0 -0
  29. data/ext/regexp_nodes/parameters/{environment → service}/qa +0 -0
  30. data/ext/regexp_nodes/parameters/service/sandbox +1 -0
  31. data/ext/regexp_nodes/regexp_nodes.rb +115 -59
  32. data/ext/upload_facts.rb +0 -1
  33. data/install.rb +10 -10
  34. data/lib/puppet.rb +49 -24
  35. data/lib/puppet/agent.rb +40 -16
  36. data/lib/puppet/agent/disabler.rb +53 -0
  37. data/lib/puppet/agent/locker.rb +18 -24
  38. data/lib/puppet/application.rb +93 -72
  39. data/lib/puppet/application/agent.rb +29 -47
  40. data/lib/puppet/application/apply.rb +40 -39
  41. data/lib/puppet/application/cert.rb +9 -11
  42. data/lib/puppet/application/certificate.rb +7 -2
  43. data/lib/puppet/application/certificate_request.rb +3 -0
  44. data/lib/puppet/application/certificate_revocation_list.rb +3 -0
  45. data/lib/puppet/application/describe.rb +1 -3
  46. data/lib/puppet/application/device.rb +15 -16
  47. data/lib/puppet/application/doc.rb +12 -11
  48. data/lib/puppet/application/face_base.rb +9 -13
  49. data/lib/puppet/application/filebucket.rb +2 -8
  50. data/lib/puppet/application/inspect.rb +3 -6
  51. data/lib/puppet/application/instrumentation_data.rb +3 -0
  52. data/lib/puppet/application/instrumentation_listener.rb +3 -0
  53. data/lib/puppet/application/instrumentation_probe.rb +3 -0
  54. data/lib/puppet/application/kick.rb +2 -8
  55. data/lib/puppet/application/master.rb +9 -15
  56. data/lib/puppet/application/module.rb +0 -7
  57. data/lib/puppet/application/queue.rb +7 -6
  58. data/lib/puppet/application/resource.rb +1 -5
  59. data/lib/puppet/application/resource_type.rb +3 -0
  60. data/lib/puppet/application/secret_agent.rb +3 -0
  61. data/lib/puppet/configurer.rb +87 -88
  62. data/lib/puppet/configurer/downloader.rb +8 -23
  63. data/lib/puppet/configurer/fact_handler.rb +5 -17
  64. data/lib/puppet/configurer/plugin_handler.rb +4 -23
  65. data/lib/puppet/daemon.rb +24 -6
  66. data/lib/puppet/data_binding.rb +11 -0
  67. data/lib/puppet/defaults.rb +1058 -518
  68. data/lib/puppet/error.rb +31 -25
  69. data/lib/puppet/external/dot.rb +1 -1
  70. data/lib/puppet/external/nagios/base.rb +8 -4
  71. data/lib/puppet/face/ca.rb +1 -1
  72. data/lib/puppet/face/catalog.rb +1 -2
  73. data/lib/puppet/face/certificate.rb +12 -0
  74. data/lib/puppet/face/config.rb +3 -0
  75. data/lib/puppet/face/help.rb +92 -28
  76. data/lib/puppet/face/help/action.erb +36 -3
  77. data/lib/puppet/face/help/face.erb +35 -3
  78. data/lib/puppet/face/help/global.erb +8 -12
  79. data/lib/puppet/face/help/man.erb +20 -2
  80. data/lib/puppet/face/instrumentation_data.rb +1 -0
  81. data/lib/puppet/face/instrumentation_listener.rb +1 -0
  82. data/lib/puppet/face/instrumentation_probe.rb +1 -0
  83. data/lib/puppet/face/module.rb +2 -0
  84. data/lib/puppet/face/module/build.rb +32 -6
  85. data/lib/puppet/face/module/changes.rb +1 -0
  86. data/lib/puppet/face/module/generate.rb +1 -0
  87. data/lib/puppet/face/module/install.rb +10 -41
  88. data/lib/puppet/face/module/list.rb +2 -19
  89. data/lib/puppet/face/module/search.rb +12 -6
  90. data/lib/puppet/face/module/uninstall.rb +3 -18
  91. data/lib/puppet/face/module/upgrade.rb +2 -9
  92. data/lib/puppet/face/node/clean.rb +25 -27
  93. data/lib/puppet/face/report.rb +2 -4
  94. data/lib/puppet/face/resource.rb +1 -1
  95. data/lib/puppet/feature/base.rb +9 -3
  96. data/lib/puppet/feature/rails.rb +18 -0
  97. data/lib/puppet/feature/rdoc1.rb +16 -0
  98. data/lib/puppet/file_bucket/dipper.rb +3 -2
  99. data/lib/puppet/file_serving/base.rb +4 -8
  100. data/lib/puppet/file_serving/configuration.rb +1 -12
  101. data/lib/puppet/file_serving/configuration/parser.rb +1 -1
  102. data/lib/puppet/file_serving/metadata.rb +0 -14
  103. data/lib/puppet/file_serving/mount/plugins.rb +10 -1
  104. data/lib/puppet/file_serving/terminus_selector.rb +15 -13
  105. data/lib/puppet/forge.rb +29 -13
  106. data/lib/puppet/forge/cache.rb +1 -1
  107. data/lib/puppet/forge/errors.rb +69 -0
  108. data/lib/puppet/forge/repository.rb +84 -21
  109. data/lib/puppet/indirector/catalog/active_record.rb +2 -12
  110. data/lib/puppet/indirector/catalog/compiler.rb +8 -18
  111. data/lib/puppet/indirector/catalog/json.rb +6 -0
  112. data/lib/puppet/indirector/catalog/static_compiler.rb +3 -2
  113. data/lib/puppet/indirector/certificate/rest.rb +1 -0
  114. data/lib/puppet/indirector/certificate_status/file.rb +0 -5
  115. data/lib/puppet/indirector/data_binding/hiera.rb +6 -0
  116. data/lib/puppet/indirector/data_binding/none.rb +5 -0
  117. data/lib/puppet/indirector/exec.rb +8 -18
  118. data/lib/puppet/indirector/face.rb +5 -4
  119. data/lib/puppet/indirector/facts/facter.rb +6 -33
  120. data/lib/puppet/indirector/facts/network_device.rb +0 -1
  121. data/lib/puppet/indirector/file_bucket_file/file.rb +0 -4
  122. data/lib/puppet/indirector/file_bucket_file/selector.rb +0 -4
  123. data/lib/puppet/indirector/file_content/rest.rb +2 -0
  124. data/lib/puppet/indirector/hiera.rb +69 -0
  125. data/lib/puppet/indirector/indirection.rb +20 -26
  126. data/lib/puppet/indirector/json.rb +76 -0
  127. data/lib/puppet/indirector/ldap.rb +3 -2
  128. data/lib/puppet/indirector/node/active_record.rb +1 -0
  129. data/lib/puppet/indirector/node/exec.rb +9 -0
  130. data/lib/puppet/indirector/node/ldap.rb +6 -3
  131. data/lib/puppet/indirector/node/plain.rb +1 -0
  132. data/lib/puppet/indirector/none.rb +9 -0
  133. data/lib/puppet/indirector/queue.rb +1 -2
  134. data/lib/puppet/indirector/report/processor.rb +2 -3
  135. data/lib/puppet/indirector/report/rest.rb +1 -7
  136. data/lib/puppet/indirector/request.rb +80 -18
  137. data/lib/puppet/indirector/resource/active_record.rb +0 -3
  138. data/lib/puppet/indirector/resource/ral.rb +0 -4
  139. data/lib/puppet/indirector/resource/rest.rb +0 -9
  140. data/lib/puppet/indirector/resource/store_configs.rb +0 -3
  141. data/lib/puppet/indirector/resource_type/parser.rb +30 -1
  142. data/lib/puppet/indirector/rest.rb +103 -126
  143. data/lib/puppet/indirector/run/local.rb +0 -4
  144. data/lib/puppet/indirector/run/rest.rb +0 -6
  145. data/lib/puppet/indirector/terminus.rb +0 -20
  146. data/lib/puppet/indirector/yaml.rb +11 -5
  147. data/lib/puppet/interface.rb +6 -14
  148. data/lib/puppet/interface/action.rb +21 -3
  149. data/lib/puppet/interface/action_builder.rb +5 -0
  150. data/lib/puppet/interface/action_manager.rb +1 -1
  151. data/lib/puppet/interface/documentation.rb +12 -0
  152. data/lib/puppet/interface/face_collection.rb +1 -1
  153. data/lib/puppet/interface/option.rb +19 -3
  154. data/lib/puppet/interface/option_manager.rb +27 -9
  155. data/lib/puppet/metatype/manager.rb +1 -0
  156. data/lib/puppet/module.rb +40 -83
  157. data/lib/puppet/module_tool.rb +42 -5
  158. data/lib/puppet/module_tool/applications/builder.rb +1 -1
  159. data/lib/puppet/module_tool/applications/installer.rb +11 -11
  160. data/lib/puppet/module_tool/applications/searcher.rb +15 -2
  161. data/lib/puppet/module_tool/applications/unpacker.rb +4 -8
  162. data/lib/puppet/module_tool/applications/upgrader.rb +6 -5
  163. data/lib/puppet/module_tool/errors/base.rb +1 -1
  164. data/lib/puppet/module_tool/errors/installer.rb +24 -4
  165. data/lib/puppet/module_tool/install_directory.rb +41 -0
  166. data/lib/puppet/module_tool/metadata.rb +4 -4
  167. data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
  168. data/lib/puppet/network/auth_config_parser.rb +81 -0
  169. data/lib/puppet/network/authconfig.rb +49 -147
  170. data/lib/puppet/network/authorization.rb +20 -62
  171. data/lib/puppet/network/authstore.rb +43 -27
  172. data/lib/puppet/network/formats.rb +10 -20
  173. data/lib/puppet/network/http/api/v1.rb +1 -1
  174. data/lib/puppet/network/http/connection.rb +184 -0
  175. data/lib/puppet/network/http/handler.rb +4 -14
  176. data/lib/puppet/network/http/mongrel.rb +5 -25
  177. data/lib/puppet/network/http/rack.rb +2 -34
  178. data/lib/puppet/network/http/rack/httphandler.rb +0 -3
  179. data/lib/puppet/network/http/rack/rest.rb +2 -7
  180. data/lib/puppet/network/http/webrick.rb +9 -32
  181. data/lib/puppet/network/http_pool.rb +10 -48
  182. data/lib/puppet/network/resolver.rb +85 -0
  183. data/lib/puppet/network/rights.rb +33 -89
  184. data/lib/puppet/network/server.rb +14 -43
  185. data/lib/puppet/node.rb +13 -11
  186. data/lib/puppet/node/environment.rb +29 -12
  187. data/lib/puppet/node/facts.rb +13 -38
  188. data/lib/puppet/parameter.rb +0 -21
  189. data/lib/puppet/parameter/package_options.rb +26 -0
  190. data/lib/puppet/parser/ast.rb +2 -13
  191. data/lib/puppet/parser/ast/function.rb +0 -2
  192. data/lib/puppet/parser/ast/leaf.rb +12 -22
  193. data/lib/puppet/parser/ast/resource.rb +3 -10
  194. data/lib/puppet/parser/ast/resource_defaults.rb +1 -1
  195. data/lib/puppet/parser/ast/resource_override.rb +1 -4
  196. data/lib/puppet/parser/ast/resourceparam.rb +4 -7
  197. data/lib/puppet/parser/ast/selector.rb +7 -1
  198. data/lib/puppet/parser/ast/vardef.rb +0 -2
  199. data/lib/puppet/parser/collector.rb +2 -1
  200. data/lib/puppet/parser/compiler.rb +43 -46
  201. data/lib/puppet/parser/files.rb +15 -20
  202. data/lib/puppet/parser/functions.rb +8 -39
  203. data/lib/puppet/parser/functions/extlookup.rb +8 -8
  204. data/lib/puppet/parser/functions/file.rb +18 -18
  205. data/lib/puppet/parser/functions/fqdn_rand.rb +2 -2
  206. data/lib/puppet/parser/functions/generate.rb +3 -3
  207. data/lib/puppet/parser/functions/include.rb +6 -1
  208. data/lib/puppet/parser/functions/require.rb +16 -21
  209. data/lib/puppet/parser/functions/shellquote.rb +29 -21
  210. data/lib/puppet/parser/functions/versioncmp.rb +2 -5
  211. data/lib/puppet/parser/grammar.ra +44 -14
  212. data/lib/puppet/parser/lexer.rb +101 -169
  213. data/lib/puppet/parser/parser.rb +1103 -1014
  214. data/lib/puppet/parser/parser_support.rb +10 -61
  215. data/lib/puppet/parser/relationship.rb +1 -3
  216. data/lib/puppet/parser/resource.rb +21 -56
  217. data/lib/puppet/parser/scope.rb +138 -165
  218. data/lib/puppet/parser/templatewrapper.rb +25 -20
  219. data/lib/puppet/parser/type_loader.rb +33 -67
  220. data/lib/puppet/parser/yaml_trimmer.rb +1 -1
  221. data/lib/puppet/property.rb +5 -4
  222. data/lib/puppet/provider.rb +133 -28
  223. data/lib/puppet/provider/augeas/augeas.rb +66 -6
  224. data/lib/puppet/provider/command.rb +25 -0
  225. data/lib/puppet/provider/cron/crontab.rb +1 -1
  226. data/lib/puppet/provider/exec.rb +14 -9
  227. data/lib/puppet/provider/exec/posix.rb +1 -1
  228. data/lib/puppet/provider/exec/windows.rb +2 -3
  229. data/lib/puppet/provider/file/windows.rb +29 -10
  230. data/lib/puppet/provider/group/groupadd.rb +3 -2
  231. data/lib/puppet/provider/group/ldap.rb +1 -1
  232. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  233. data/lib/puppet/provider/host/parsed.rb +1 -1
  234. data/lib/puppet/provider/ldap.rb +1 -5
  235. data/lib/puppet/provider/mount/parsed.rb +3 -3
  236. data/lib/puppet/provider/nameservice.rb +22 -22
  237. data/lib/puppet/provider/nameservice/directoryservice.rb +58 -121
  238. data/lib/puppet/provider/package/apt.rb +8 -11
  239. data/lib/puppet/provider/package/blastwave.rb +3 -3
  240. data/lib/puppet/provider/package/dpkg.rb +1 -1
  241. data/lib/puppet/provider/package/freebsd.rb +2 -2
  242. data/lib/puppet/provider/package/gem.rb +1 -1
  243. data/lib/puppet/provider/package/macports.rb +11 -9
  244. data/lib/puppet/provider/package/msi.rb +37 -32
  245. data/lib/puppet/provider/package/openbsd.rb +1 -1
  246. data/lib/puppet/provider/package/pacman.rb +69 -6
  247. data/lib/puppet/provider/package/pkg.rb +126 -75
  248. data/lib/puppet/provider/package/pkgin.rb +60 -0
  249. data/lib/puppet/provider/package/pkgutil.rb +32 -20
  250. data/lib/puppet/provider/package/portage.rb +2 -2
  251. data/lib/puppet/provider/package/sun.rb +83 -116
  252. data/lib/puppet/provider/package/sunfreeware.rb +1 -1
  253. data/lib/puppet/provider/package/up2date.rb +2 -3
  254. data/lib/puppet/provider/package/windows.rb +130 -0
  255. data/lib/puppet/provider/package/windows/exe_package.rb +70 -0
  256. data/lib/puppet/provider/package/windows/msi_package.rb +62 -0
  257. data/lib/puppet/provider/package/windows/package.rb +79 -0
  258. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +2 -2
  259. data/lib/puppet/provider/service/base.rb +1 -0
  260. data/lib/puppet/provider/service/bsd.rb +7 -5
  261. data/lib/puppet/provider/service/daemontools.rb +1 -1
  262. data/lib/puppet/provider/service/debian.rb +1 -1
  263. data/lib/puppet/provider/service/freebsd.rb +9 -9
  264. data/lib/puppet/provider/service/launchd.rb +7 -11
  265. data/lib/puppet/provider/service/redhat.rb +2 -2
  266. data/lib/puppet/provider/service/runit.rb +9 -2
  267. data/lib/puppet/provider/service/smf.rb +14 -2
  268. data/lib/puppet/provider/service/systemd.rb +3 -3
  269. data/lib/puppet/provider/service/upstart.rb +6 -6
  270. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -0
  271. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  272. data/lib/puppet/provider/user/useradd.rb +3 -8
  273. data/lib/puppet/provider/user/windows_adsi.rb +1 -12
  274. data/lib/puppet/provider/zfs/{solaris.rb → zfs.rb} +16 -5
  275. data/lib/puppet/provider/zone/solaris.rb +10 -13
  276. data/lib/puppet/provider/zpool/{solaris.rb → zpool.rb} +11 -4
  277. data/lib/puppet/rails.rb +6 -4
  278. data/lib/puppet/rails/database/schema.rb +9 -4
  279. data/lib/puppet/rails/inventory_node.rb +13 -26
  280. data/lib/puppet/reference/configuration.rb +1 -2
  281. data/lib/puppet/reference/metaparameter.rb +1 -2
  282. data/lib/puppet/reports/http.rb +9 -10
  283. data/lib/puppet/reports/rrdgraph.rb +2 -2
  284. data/lib/puppet/reports/store.rb +1 -2
  285. data/lib/puppet/reports/tagmail.rb +6 -6
  286. data/lib/puppet/resource.rb +69 -64
  287. data/lib/puppet/resource/catalog.rb +11 -60
  288. data/lib/puppet/resource/status.rb +6 -32
  289. data/lib/puppet/resource/type.rb +94 -34
  290. data/lib/puppet/resource/type_collection.rb +17 -8
  291. data/lib/puppet/run.rb +4 -26
  292. data/lib/puppet/settings.rb +1315 -0
  293. data/lib/puppet/settings/base_setting.rb +163 -0
  294. data/lib/puppet/{util/settings → settings}/boolean_setting.rb +7 -3
  295. data/lib/puppet/settings/directory_setting.rb +7 -0
  296. data/lib/puppet/settings/errors.rb +11 -0
  297. data/lib/puppet/{util/settings → settings}/file_setting.rb +4 -20
  298. data/lib/puppet/settings/path_setting.rb +10 -0
  299. data/lib/puppet/settings/string_setting.rb +12 -0
  300. data/lib/puppet/simple_graph.rb +2 -5
  301. data/lib/puppet/ssl/base.rb +2 -2
  302. data/lib/puppet/ssl/certificate_authority.rb +4 -5
  303. data/lib/puppet/ssl/certificate_authority/interface.rb +5 -7
  304. data/lib/puppet/ssl/certificate_factory.rb +1 -2
  305. data/lib/puppet/ssl/certificate_request.rb +2 -2
  306. data/lib/puppet/ssl/certificate_revocation_list.rb +53 -30
  307. data/lib/puppet/ssl/configuration.rb +32 -0
  308. data/lib/puppet/ssl/host.rb +9 -37
  309. data/lib/puppet/status.rb +2 -6
  310. data/lib/puppet/test/test_helper.rb +58 -25
  311. data/lib/puppet/transaction.rb +6 -9
  312. data/lib/puppet/transaction/event.rb +13 -24
  313. data/lib/puppet/transaction/event_manager.rb +1 -1
  314. data/lib/puppet/transaction/report.rb +2 -41
  315. data/lib/puppet/transaction/resource_harness.rb +2 -3
  316. data/lib/puppet/type.rb +18 -191
  317. data/lib/puppet/type/augeas.rb +1 -1
  318. data/lib/puppet/type/cron.rb +1 -1
  319. data/lib/puppet/type/exec.rb +6 -4
  320. data/lib/puppet/type/file.rb +33 -44
  321. data/lib/puppet/type/file/content.rb +13 -9
  322. data/lib/puppet/type/file/ensure.rb +1 -1
  323. data/lib/puppet/type/file/mode.rb +1 -1
  324. data/lib/puppet/type/file/selcontext.rb +2 -6
  325. data/lib/puppet/type/file/source.rb +8 -4
  326. data/lib/puppet/type/filebucket.rb +3 -2
  327. data/lib/puppet/type/mount.rb +1 -11
  328. data/lib/puppet/type/package.rb +40 -23
  329. data/lib/puppet/type/schedule.rb +127 -21
  330. data/lib/puppet/type/scheduled_task.rb +1 -1
  331. data/lib/puppet/type/service.rb +2 -3
  332. data/lib/puppet/type/tidy.rb +8 -17
  333. data/lib/puppet/type/yumrepo.rb +35 -7
  334. data/lib/puppet/type/zfs.rb +4 -0
  335. data/lib/puppet/type/zone.rb +48 -38
  336. data/lib/puppet/util.rb +178 -249
  337. data/lib/puppet/util/adsi.rb +23 -25
  338. data/lib/puppet/util/autoload.rb +184 -114
  339. data/lib/puppet/util/backups.rb +3 -2
  340. data/lib/puppet/util/colors.rb +0 -1
  341. data/lib/puppet/util/command_line.rb +42 -104
  342. data/lib/puppet/util/command_line/puppet_option_parser.rb +89 -0
  343. data/lib/puppet/util/command_line/trollop.rb +824 -0
  344. data/lib/puppet/util/config_timeout.rb +24 -0
  345. data/lib/puppet/util/constant_inflector.rb +15 -7
  346. data/lib/puppet/util/diff.rb +2 -2
  347. data/lib/puppet/util/docs.rb +1 -2
  348. data/lib/puppet/util/errors.rb +3 -4
  349. data/lib/puppet/util/execution.rb +239 -14
  350. data/lib/puppet/util/execution_stub.rb +2 -2
  351. data/lib/puppet/util/feature.rb +2 -4
  352. data/lib/puppet/util/fileparsing.rb +1 -1
  353. data/lib/puppet/util/filetype.rb +12 -10
  354. data/lib/puppet/util/json_lockfile.rb +41 -0
  355. data/lib/puppet/util/ldap/connection.rb +4 -7
  356. data/lib/puppet/util/lockfile.rb +62 -0
  357. data/lib/puppet/util/log.rb +16 -20
  358. data/lib/puppet/util/log/destinations.rb +12 -27
  359. data/lib/puppet/util/logging.rb +95 -3
  360. data/lib/puppet/util/metric.rb +0 -6
  361. data/lib/puppet/util/monkey_patches.rb +101 -82
  362. data/lib/puppet/util/monkey_patches/lines.rb +13 -0
  363. data/lib/puppet/util/network_device/cisco/device.rb +2 -2
  364. data/lib/puppet/util/network_device/config.rb +1 -0
  365. data/lib/puppet/util/network_device/transport.rb +2 -0
  366. data/lib/puppet/util/pidlock.rb +13 -77
  367. data/lib/puppet/util/platform.rb +0 -7
  368. data/lib/puppet/util/posix.rb +10 -0
  369. data/lib/puppet/util/rdoc.rb +12 -8
  370. data/lib/puppet/util/reference.rb +3 -3
  371. data/lib/puppet/util/rubygems.rb +55 -0
  372. data/lib/puppet/util/run_mode.rb +7 -16
  373. data/lib/puppet/util/selinux.rb +36 -31
  374. data/lib/puppet/util/storage.rb +14 -19
  375. data/lib/puppet/util/suidmanager.rb +27 -2
  376. data/lib/puppet/util/windows.rb +9 -6
  377. data/lib/puppet/util/windows/error.rb +1 -1
  378. data/lib/puppet/util/windows/process.rb +3 -3
  379. data/lib/puppet/util/windows/registry.rb +36 -0
  380. data/lib/puppet/util/windows/security.rb +46 -9
  381. data/lib/puppet/util/windows/user.rb +2 -65
  382. data/lib/puppet/util/zaml.rb +47 -91
  383. data/lib/puppet/version.rb +1 -1
  384. data/man/man5/puppet.conf.5 +97 -69
  385. data/man/man8/puppet-agent.8 +5 -6
  386. data/man/man8/puppet-apply.8 +7 -3
  387. data/man/man8/puppet-ca.8 +5 -17
  388. data/man/man8/puppet-catalog.8 +1 -1
  389. data/man/man8/puppet-cert.8 +1 -1
  390. data/man/man8/puppet-certificate.8 +3 -9
  391. data/man/man8/puppet-certificate_request.8 +1 -1
  392. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  393. data/man/man8/puppet-config.8 +1 -1
  394. data/man/man8/puppet-describe.8 +1 -1
  395. data/man/man8/puppet-device.8 +1 -1
  396. data/man/man8/puppet-doc.8 +7 -1
  397. data/man/man8/puppet-facts.8 +1 -1
  398. data/man/man8/puppet-file.8 +1 -1
  399. data/man/man8/puppet-filebucket.8 +1 -1
  400. data/man/man8/puppet-help.8 +2 -5
  401. data/man/man8/puppet-inspect.8 +1 -1
  402. data/man/man8/puppet-instrumentation_data.8 +1 -1
  403. data/man/man8/puppet-instrumentation_listener.8 +1 -1
  404. data/man/man8/puppet-instrumentation_probe.8 +1 -1
  405. data/man/man8/puppet-key.8 +1 -1
  406. data/man/man8/puppet-kick.8 +1 -1
  407. data/man/man8/puppet-man.8 +1 -1
  408. data/man/man8/puppet-master.8 +1 -1
  409. data/man/man8/puppet-module.8 +19 -50
  410. data/man/man8/puppet-node.8 +2 -5
  411. data/man/man8/puppet-parser.8 +7 -1
  412. data/man/man8/puppet-plugin.8 +1 -1
  413. data/man/man8/puppet-queue.8 +1 -1
  414. data/man/man8/puppet-report.8 +2 -3
  415. data/man/man8/puppet-resource.8 +1 -1
  416. data/man/man8/puppet-resource_type.8 +1 -1
  417. data/man/man8/puppet-secret_agent.8 +1 -1
  418. data/man/man8/puppet-status.8 +1 -1
  419. data/man/man8/puppet.8 +1 -1
  420. data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
  421. data/{test/data/providers/cron/crontab_sample_records.yaml → spec/fixtures/unit/provider/cron/crontab/single_line.yaml} +0 -0
  422. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +1 -1
  423. data/spec/fixtures/unit/provider/package/pkg/{dummy_solaris11 → dummy_solaris11.ifo.installed} +0 -0
  424. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +1 -0
  425. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +1 -0
  426. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +1 -0
  427. data/spec/fixtures/unit/provider/package/pkg/publisher +2 -2
  428. data/spec/fixtures/unit/provider/package/pkg/simple +2 -4
  429. data/spec/fixtures/unit/provider/package/pkg/solaris11 +2 -12
  430. data/spec/fixtures/unit/provider/package/sun/dummy.server +12 -0
  431. data/spec/fixtures/unit/provider/package/sun/simple +24 -0
  432. data/spec/fixtures/unit/provider/service/smf/svcs.out +3 -0
  433. data/{test/data/types/sshkey/1 → spec/fixtures/unit/provider/sshkey/parsed/sample} +0 -0
  434. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +2 -0
  435. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +2 -0
  436. data/spec/integration/application/apply_spec.rb +1 -1
  437. data/spec/integration/application/doc_spec.rb +3 -2
  438. data/spec/integration/configurer_spec.rb +1 -1
  439. data/spec/integration/defaults_spec.rb +21 -51
  440. data/spec/{unit/face → integration/faces}/ca_spec.rb +89 -130
  441. data/spec/integration/faces/documentation_spec.rb +36 -29
  442. data/spec/integration/file_serving/content_spec.rb +1 -2
  443. data/spec/integration/file_serving/fileset_spec.rb +1 -1
  444. data/spec/integration/file_serving/metadata_spec.rb +1 -2
  445. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -1
  446. data/spec/integration/indirector/catalog/compiler_spec.rb +1 -2
  447. data/spec/integration/indirector/catalog/queue_spec.rb +3 -3
  448. data/spec/integration/indirector/direct_file_server_spec.rb +14 -10
  449. data/spec/integration/indirector/facts/facter_spec.rb +22 -0
  450. data/spec/integration/indirector/file_content/file_server_spec.rb +1 -1
  451. data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -1
  452. data/spec/integration/indirector/node/ldap_spec.rb +1 -1
  453. data/spec/integration/network/authconfig_spec.rb +238 -0
  454. data/spec/integration/network/formats_spec.rb +2 -4
  455. data/spec/integration/network/server/mongrel_spec.rb +2 -10
  456. data/spec/integration/network/server/webrick_spec.rb +1 -1
  457. data/spec/integration/node/environment_spec.rb +1 -1
  458. data/spec/integration/node/facts_spec.rb +2 -2
  459. data/spec/integration/node_spec.rb +2 -15
  460. data/spec/integration/parser/collector_spec.rb +2 -2
  461. data/spec/integration/parser/compiler_spec.rb +38 -10
  462. data/spec/integration/parser/functions/require_spec.rb +1 -1
  463. data/spec/integration/parser/functions_spec.rb +1 -1
  464. data/spec/integration/parser/parser_spec.rb +1 -1
  465. data/spec/integration/parser/ruby_manifest_spec.rb +1 -1
  466. data/spec/integration/parser/scope_spec.rb +608 -0
  467. data/spec/integration/provider/mailalias/aliases_spec.rb +1 -1
  468. data/spec/integration/provider/mount_spec.rb +1 -0
  469. data/spec/integration/provider/package_spec.rb +3 -3
  470. data/spec/integration/provider/service/init_spec.rb +2 -2
  471. data/spec/integration/provider/ssh_authorized_key_spec.rb +1 -1
  472. data/spec/integration/reference/providers_spec.rb +1 -1
  473. data/spec/integration/reports_spec.rb +1 -1
  474. data/spec/integration/resource/catalog_spec.rb +1 -2
  475. data/spec/integration/resource/type_collection_spec.rb +1 -1
  476. data/spec/integration/ssl/certificate_authority_spec.rb +1 -1
  477. data/spec/integration/ssl/certificate_request_spec.rb +1 -1
  478. data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
  479. data/spec/integration/ssl/host_spec.rb +1 -1
  480. data/spec/integration/transaction/report_spec.rb +1 -1
  481. data/spec/integration/transaction_spec.rb +2 -2
  482. data/spec/integration/type/exec_spec.rb +1 -1
  483. data/spec/integration/type/file_spec.rb +140 -158
  484. data/spec/integration/type/package_spec.rb +6 -2
  485. data/spec/integration/type/tidy_spec.rb +1 -1
  486. data/spec/integration/type_spec.rb +1 -1
  487. data/spec/integration/util/autoload_spec.rb +8 -14
  488. data/spec/integration/util/feature_spec.rb +1 -1
  489. data/spec/integration/util/rdoc/parser_spec.rb +11 -9
  490. data/spec/integration/util/settings_spec.rb +19 -6
  491. data/spec/integration/util/windows/security_spec.rb +23 -3
  492. data/spec/integration/util_spec.rb +3 -3
  493. data/spec/lib/puppet/indirector/indirector_testing/json.rb +6 -0
  494. data/spec/lib/puppet/indirector_testing.rb +27 -0
  495. data/spec/lib/puppet_spec/compiler.rb +2 -2
  496. data/spec/lib/puppet_spec/database.rb +1 -1
  497. data/spec/lib/puppet_spec/files.rb +4 -4
  498. data/spec/lib/puppet_spec/matchers.rb +26 -24
  499. data/spec/lib/puppet_spec/modules.rb +1 -1
  500. data/spec/lib/puppet_spec/settings.rb +16 -0
  501. data/spec/shared_behaviours/file_server_terminus.rb +2 -2
  502. data/spec/shared_behaviours/file_serving.rb +10 -15
  503. data/spec/shared_behaviours/file_serving_model.rb +2 -6
  504. data/spec/shared_contexts/platform.rb +0 -8
  505. data/spec/spec_helper.rb +14 -15
  506. data/spec/unit/agent/disabler_spec.rb +64 -0
  507. data/spec/unit/agent/locker_spec.rb +31 -36
  508. data/spec/unit/agent_spec.rb +79 -26
  509. data/spec/unit/application/agent_spec.rb +66 -39
  510. data/spec/unit/application/apply_spec.rb +46 -36
  511. data/spec/unit/application/cert_spec.rb +1 -5
  512. data/spec/unit/application/certificate_spec.rb +1 -1
  513. data/spec/unit/application/config_spec.rb +1 -1
  514. data/spec/unit/application/describe_spec.rb +1 -5
  515. data/spec/unit/application/device_spec.rb +22 -12
  516. data/spec/unit/application/doc_spec.rb +37 -69
  517. data/spec/unit/application/face_base_spec.rb +10 -6
  518. data/spec/unit/application/facts_spec.rb +3 -3
  519. data/spec/unit/application/filebucket_spec.rb +7 -18
  520. data/spec/unit/application/indirection_base_spec.rb +11 -5
  521. data/spec/unit/application/inspect_spec.rb +3 -2
  522. data/spec/unit/application/kick_spec.rb +6 -22
  523. data/spec/unit/application/master_spec.rb +15 -39
  524. data/spec/unit/application/queue_spec.rb +2 -6
  525. data/spec/unit/application/resource_spec.rb +15 -12
  526. data/spec/unit/application/secret_agent_spec.rb +1 -1
  527. data/spec/unit/application_spec.rb +110 -123
  528. data/spec/unit/configurer/downloader_spec.rb +5 -5
  529. data/spec/unit/configurer/fact_handler_spec.rb +1 -40
  530. data/spec/unit/configurer/plugin_handler_spec.rb +11 -96
  531. data/spec/unit/configurer_spec.rb +61 -59
  532. data/spec/unit/daemon_spec.rb +26 -19
  533. data/spec/unit/data_binding_spec.rb +11 -0
  534. data/spec/unit/dsl/resource_api_spec.rb +2 -2
  535. data/spec/unit/dsl/resource_type_api_spec.rb +1 -1
  536. data/spec/unit/face/catalog_spec.rb +1 -1
  537. data/spec/unit/face/certificate_request_spec.rb +1 -1
  538. data/spec/unit/face/certificate_revocation_list_spec.rb +1 -1
  539. data/spec/unit/face/certificate_spec.rb +18 -1
  540. data/spec/unit/face/config_spec.rb +8 -1
  541. data/spec/unit/face/facts_spec.rb +1 -1
  542. data/spec/unit/face/file_spec.rb +1 -1
  543. data/spec/unit/face/help_spec.rb +39 -22
  544. data/spec/unit/face/instrumentation_data_spec.rb +1 -1
  545. data/spec/unit/face/instrumentation_listener_spec.rb +1 -1
  546. data/spec/unit/face/instrumentation_probe_spec.rb +1 -1
  547. data/spec/unit/face/key_spec.rb +1 -1
  548. data/spec/unit/face/module/build_spec.rb +68 -0
  549. data/spec/unit/face/module/install_spec.rb +46 -31
  550. data/spec/unit/face/module/list_spec.rb +18 -21
  551. data/spec/unit/face/module/search_spec.rb +87 -49
  552. data/spec/unit/face/module/uninstall_spec.rb +4 -4
  553. data/spec/unit/face/node_spec.rb +3 -3
  554. data/spec/unit/face/plugin_spec.rb +1 -1
  555. data/spec/unit/face/report_spec.rb +1 -1
  556. data/spec/unit/face/resource_spec.rb +1 -1
  557. data/spec/unit/face/resource_type_spec.rb +1 -1
  558. data/spec/unit/face/secret_agent_spec.rb +1 -1
  559. data/spec/unit/file_bucket/dipper_spec.rb +1 -1
  560. data/spec/unit/file_bucket/file_spec.rb +1 -1
  561. data/spec/unit/file_serving/base_spec.rb +1 -1
  562. data/spec/unit/file_serving/configuration/parser_spec.rb +1 -1
  563. data/spec/unit/file_serving/configuration_spec.rb +7 -21
  564. data/spec/unit/file_serving/content_spec.rb +1 -1
  565. data/spec/unit/file_serving/fileset_spec.rb +13 -13
  566. data/spec/unit/file_serving/metadata_spec.rb +29 -47
  567. data/spec/unit/file_serving/mount/file_spec.rb +1 -1
  568. data/spec/unit/file_serving/mount/modules_spec.rb +1 -1
  569. data/spec/unit/file_serving/mount/plugins_spec.rb +17 -4
  570. data/spec/unit/file_serving/mount_spec.rb +1 -1
  571. data/spec/unit/file_serving/terminus_helper_spec.rb +1 -1
  572. data/spec/unit/file_serving/terminus_selector_spec.rb +5 -5
  573. data/spec/unit/forge/errors_spec.rb +42 -0
  574. data/spec/unit/forge/repository_spec.rb +108 -31
  575. data/spec/unit/forge_spec.rb +17 -23
  576. data/spec/unit/indirector/active_record_spec.rb +1 -1
  577. data/spec/unit/indirector/catalog/active_record_spec.rb +11 -49
  578. data/spec/unit/indirector/catalog/compiler_spec.rb +18 -45
  579. data/spec/unit/indirector/catalog/json_spec.rb +12 -0
  580. data/spec/unit/indirector/catalog/queue_spec.rb +1 -1
  581. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  582. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -1
  583. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -1
  584. data/spec/unit/indirector/certificate/ca_spec.rb +5 -6
  585. data/spec/unit/indirector/certificate/file_spec.rb +5 -6
  586. data/spec/unit/indirector/certificate/rest_spec.rb +6 -2
  587. data/spec/unit/indirector/certificate_request/ca_spec.rb +3 -3
  588. data/spec/unit/indirector/certificate_request/file_spec.rb +3 -3
  589. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -1
  590. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +3 -4
  591. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +4 -3
  592. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +1 -1
  593. data/spec/unit/indirector/certificate_status/file_spec.rb +41 -31
  594. data/spec/unit/indirector/certificate_status/rest_spec.rb +1 -1
  595. data/spec/unit/indirector/code_spec.rb +1 -1
  596. data/spec/unit/indirector/data_binding/hiera_spec.rb +21 -0
  597. data/spec/unit/indirector/data_binding/none_spec.rb +28 -0
  598. data/spec/unit/indirector/direct_file_server_spec.rb +2 -2
  599. data/spec/unit/indirector/envelope_spec.rb +1 -1
  600. data/spec/unit/indirector/exec_spec.rb +1 -1
  601. data/spec/unit/indirector/face_spec.rb +1 -1
  602. data/spec/unit/indirector/facts/active_record_spec.rb +1 -1
  603. data/spec/unit/indirector/facts/couch_spec.rb +3 -3
  604. data/spec/unit/indirector/facts/facter_spec.rb +13 -20
  605. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +2 -2
  606. data/spec/unit/indirector/facts/inventory_service_spec.rb +2 -3
  607. data/spec/unit/indirector/facts/network_device_spec.rb +2 -9
  608. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  609. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -1
  610. data/spec/unit/indirector/facts/yaml_spec.rb +2 -2
  611. data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
  612. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -1
  613. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -1
  614. data/spec/unit/indirector/file_content/file_spec.rb +1 -1
  615. data/spec/unit/indirector/file_content/rest_spec.rb +7 -3
  616. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -1
  617. data/spec/unit/indirector/file_metadata/file_spec.rb +3 -3
  618. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -1
  619. data/spec/unit/indirector/file_server_spec.rb +1 -1
  620. data/spec/unit/indirector/hiera_spec.rb +149 -0
  621. data/spec/unit/indirector/indirection_spec.rb +10 -29
  622. data/spec/unit/indirector/instrumentation_data/local_spec.rb +1 -1
  623. data/spec/unit/indirector/instrumentation_data/rest_spec.rb +1 -1
  624. data/spec/unit/indirector/instrumentation_listener/local_spec.rb +1 -1
  625. data/spec/unit/indirector/instrumentation_listener/rest_spec.rb +1 -1
  626. data/spec/unit/indirector/instrumentation_probe/local_spec.rb +1 -1
  627. data/spec/unit/indirector/instrumentation_probe/rest_spec.rb +1 -1
  628. data/spec/unit/indirector/json_spec.rb +193 -0
  629. data/spec/unit/indirector/key/ca_spec.rb +5 -6
  630. data/spec/unit/indirector/key/file_spec.rb +10 -12
  631. data/spec/unit/indirector/ldap_spec.rb +3 -3
  632. data/spec/unit/indirector/memory_spec.rb +1 -1
  633. data/spec/unit/indirector/node/active_record_spec.rb +11 -7
  634. data/spec/unit/indirector/node/exec_spec.rb +12 -5
  635. data/spec/unit/indirector/node/ldap_spec.rb +173 -194
  636. data/spec/unit/indirector/node/memory_spec.rb +1 -1
  637. data/spec/unit/indirector/node/plain_spec.rb +16 -8
  638. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  639. data/spec/unit/indirector/node/store_configs_spec.rb +1 -1
  640. data/spec/unit/indirector/node/yaml_spec.rb +1 -1
  641. data/spec/unit/indirector/none_spec.rb +33 -0
  642. data/spec/unit/indirector/plain_spec.rb +1 -1
  643. data/spec/unit/indirector/queue_spec.rb +1 -1
  644. data/spec/unit/indirector/report/processor_spec.rb +4 -4
  645. data/spec/unit/indirector/report/rest_spec.rb +3 -46
  646. data/spec/unit/indirector/report/yaml_spec.rb +3 -12
  647. data/spec/unit/indirector/request_spec.rb +238 -61
  648. data/spec/unit/indirector/resource/active_record_spec.rb +2 -2
  649. data/spec/unit/indirector/resource/ral_spec.rb +2 -2
  650. data/spec/unit/indirector/resource/rest_spec.rb +1 -1
  651. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -1
  652. data/spec/unit/indirector/resource_type/parser_spec.rb +153 -53
  653. data/spec/unit/indirector/resource_type/rest_spec.rb +1 -1
  654. data/spec/unit/indirector/rest_spec.rb +350 -361
  655. data/spec/unit/indirector/run/local_spec.rb +2 -2
  656. data/spec/unit/indirector/run/rest_spec.rb +1 -1
  657. data/spec/unit/indirector/ssl_file_spec.rb +12 -10
  658. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  659. data/spec/unit/indirector/store_configs_spec.rb +1 -1
  660. data/spec/unit/indirector/terminus_spec.rb +1 -46
  661. data/spec/unit/indirector/yaml_spec.rb +36 -36
  662. data/spec/unit/indirector_spec.rb +1 -1
  663. data/spec/unit/interface/action_builder_spec.rb +1 -1
  664. data/spec/unit/interface/action_manager_spec.rb +1 -1
  665. data/spec/unit/interface/action_spec.rb +1 -1
  666. data/spec/unit/interface/documentation_spec.rb +3 -2
  667. data/spec/unit/interface/face_collection_spec.rb +19 -9
  668. data/spec/unit/interface/option_builder_spec.rb +9 -1
  669. data/spec/unit/interface/option_spec.rb +8 -0
  670. data/spec/unit/interface_spec.rb +49 -11
  671. data/spec/unit/module_spec.rb +95 -303
  672. data/spec/unit/module_tool/application_spec.rb +6 -6
  673. data/spec/unit/module_tool/applications/installer_spec.rb +131 -69
  674. data/spec/unit/module_tool/applications/searcher_spec.rb +37 -0
  675. data/spec/unit/module_tool/applications/uninstaller_spec.rb +27 -19
  676. data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -10
  677. data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -4
  678. data/spec/unit/module_tool/install_directory_spec.rb +70 -0
  679. data/spec/unit/module_tool_spec.rb +132 -1
  680. data/spec/unit/network/auth_config_parser_spec.rb +101 -0
  681. data/spec/unit/network/authconfig_spec.rb +54 -272
  682. data/spec/unit/network/authorization_spec.rb +20 -0
  683. data/spec/unit/network/authstore_spec.rb +17 -15
  684. data/spec/unit/network/format_handler_spec.rb +3 -3
  685. data/spec/unit/network/format_spec.rb +1 -1
  686. data/spec/unit/network/formats_spec.rb +28 -37
  687. data/spec/unit/network/http/api/v1_spec.rb +3 -3
  688. data/spec/unit/network/http/compression_spec.rb +3 -3
  689. data/spec/unit/network/http/connection_spec.rb +244 -0
  690. data/spec/unit/network/http/handler_spec.rb +4 -20
  691. data/spec/unit/network/http/mongrel/rest_spec.rb +12 -31
  692. data/spec/unit/network/http/mongrel_spec.rb +7 -37
  693. data/spec/unit/network/http/rack/rest_spec.rb +10 -44
  694. data/spec/unit/network/http/rack_spec.rb +2 -59
  695. data/spec/unit/network/http/webrick/rest_spec.rb +14 -4
  696. data/spec/unit/network/http/webrick_spec.rb +129 -193
  697. data/spec/unit/network/http_pool_spec.rb +6 -115
  698. data/spec/unit/network/http_spec.rb +1 -1
  699. data/spec/unit/network/resolver_spec.rb +207 -0
  700. data/spec/unit/network/rights_spec.rb +15 -115
  701. data/spec/unit/network/server_spec.rb +58 -166
  702. data/spec/unit/node/environment_spec.rb +7 -7
  703. data/spec/unit/node/facts_spec.rb +15 -30
  704. data/spec/unit/node_spec.rb +14 -26
  705. data/spec/unit/other/selinux_spec.rb +1 -1
  706. data/spec/unit/parameter/package_options_spec.rb +44 -0
  707. data/spec/unit/parameter/path_spec.rb +1 -1
  708. data/spec/unit/parameter/value_collection_spec.rb +1 -1
  709. data/spec/unit/parameter/value_spec.rb +1 -1
  710. data/spec/unit/parameter_spec.rb +1 -1
  711. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +4 -2
  712. data/spec/unit/parser/ast/astarray_spec.rb +4 -2
  713. data/spec/unit/parser/ast/asthash_spec.rb +4 -2
  714. data/spec/unit/parser/ast/boolean_operator_spec.rb +4 -2
  715. data/spec/unit/parser/ast/casestatement_spec.rb +9 -5
  716. data/spec/unit/parser/ast/collection_spec.rb +2 -2
  717. data/spec/unit/parser/ast/collexpr_spec.rb +4 -2
  718. data/spec/unit/parser/ast/comparison_operator_spec.rb +5 -2
  719. data/spec/unit/parser/ast/definition_spec.rb +1 -1
  720. data/spec/unit/parser/ast/function_spec.rb +3 -3
  721. data/spec/unit/parser/ast/hostclass_spec.rb +1 -1
  722. data/spec/unit/parser/ast/ifstatement_spec.rb +4 -2
  723. data/spec/unit/parser/ast/in_operator_spec.rb +4 -2
  724. data/spec/unit/parser/ast/leaf_spec.rb +66 -39
  725. data/spec/unit/parser/ast/match_operator_spec.rb +4 -2
  726. data/spec/unit/parser/ast/minus_spec.rb +4 -2
  727. data/spec/unit/parser/ast/node_spec.rb +1 -1
  728. data/spec/unit/parser/ast/nop_spec.rb +1 -1
  729. data/spec/unit/parser/ast/not_spec.rb +4 -2
  730. data/spec/unit/parser/ast/relationship_spec.rb +2 -2
  731. data/spec/unit/parser/ast/resource_defaults_spec.rb +2 -2
  732. data/spec/unit/parser/ast/resource_override_spec.rb +2 -2
  733. data/spec/unit/parser/ast/resource_reference_spec.rb +5 -3
  734. data/spec/unit/parser/ast/resource_spec.rb +5 -32
  735. data/spec/unit/parser/ast/selector_spec.rb +56 -106
  736. data/spec/unit/parser/ast/vardef_spec.rb +4 -2
  737. data/spec/unit/parser/ast_spec.rb +22 -51
  738. data/spec/unit/parser/collector_spec.rb +2 -2
  739. data/spec/unit/parser/compiler_spec.rb +89 -42
  740. data/spec/unit/parser/files_spec.rb +81 -10
  741. data/spec/unit/parser/functions/create_resources_spec.rb +5 -4
  742. data/spec/unit/parser/functions/defined_spec.rb +2 -2
  743. data/spec/unit/parser/functions/extlookup_spec.rb +9 -8
  744. data/spec/unit/parser/functions/fail_spec.rb +28 -0
  745. data/spec/unit/parser/functions/file_spec.rb +55 -0
  746. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -12
  747. data/spec/unit/parser/functions/generate_spec.rb +54 -3
  748. data/spec/unit/parser/functions/include_spec.rb +19 -2
  749. data/spec/unit/parser/functions/inline_template_spec.rb +9 -20
  750. data/spec/unit/parser/functions/realize_spec.rb +4 -4
  751. data/spec/unit/parser/functions/regsubst_spec.rb +4 -2
  752. data/spec/unit/parser/functions/require_spec.rb +5 -14
  753. data/spec/unit/parser/functions/search_spec.rb +23 -0
  754. data/spec/unit/parser/functions/shellquote_spec.rb +31 -38
  755. data/spec/unit/parser/functions/split_spec.rb +4 -2
  756. data/spec/unit/parser/functions/sprintf_spec.rb +4 -2
  757. data/spec/unit/parser/functions/tag_spec.rb +4 -3
  758. data/spec/unit/parser/functions/template_spec.rb +45 -27
  759. data/spec/unit/parser/functions/versioncmp_spec.rb +4 -2
  760. data/spec/unit/parser/functions_spec.rb +14 -22
  761. data/spec/unit/parser/lexer_spec.rb +10 -134
  762. data/spec/unit/parser/parser_spec.rb +126 -35
  763. data/spec/unit/parser/relationship_spec.rb +1 -25
  764. data/spec/unit/parser/resource_spec.rb +15 -79
  765. data/spec/unit/parser/scope_spec.rb +175 -602
  766. data/spec/unit/parser/templatewrapper_spec.rb +8 -25
  767. data/spec/unit/parser/type_loader_spec.rb +37 -21
  768. data/spec/unit/property/ensure_spec.rb +1 -1
  769. data/spec/unit/property/keyvalue_spec.rb +1 -1
  770. data/spec/unit/property/list_spec.rb +1 -1
  771. data/spec/unit/property/ordered_list_spec.rb +1 -1
  772. data/spec/unit/property_spec.rb +1 -1
  773. data/spec/unit/{puppet/provider → provider}/README.markdown +0 -0
  774. data/spec/unit/provider/augeas/augeas_spec.rb +88 -1
  775. data/spec/unit/provider/cisco_spec.rb +1 -1
  776. data/spec/unit/provider/command_spec.rb +62 -0
  777. data/spec/unit/provider/confine/exists_spec.rb +8 -1
  778. data/spec/unit/provider/confine/false_spec.rb +1 -1
  779. data/spec/unit/provider/confine/feature_spec.rb +1 -1
  780. data/spec/unit/provider/confine/true_spec.rb +1 -1
  781. data/spec/unit/provider/confine/variable_spec.rb +1 -1
  782. data/spec/unit/provider/confine_collection_spec.rb +1 -1
  783. data/spec/unit/provider/confine_spec.rb +1 -1
  784. data/spec/unit/provider/confiner_spec.rb +1 -1
  785. data/spec/unit/provider/cron/crontab_spec.rb +116 -0
  786. data/spec/unit/provider/exec/posix_spec.rb +99 -12
  787. data/spec/unit/provider/exec/shell_spec.rb +1 -1
  788. data/spec/unit/provider/exec/windows_spec.rb +1 -1
  789. data/spec/unit/provider/exec_spec.rb +1 -1
  790. data/spec/unit/provider/file/posix_spec.rb +1 -1
  791. data/spec/unit/provider/file/windows_spec.rb +30 -30
  792. data/spec/unit/provider/group/groupadd_spec.rb +31 -37
  793. data/spec/unit/provider/group/ldap_spec.rb +1 -1
  794. data/spec/unit/provider/group/pw_spec.rb +1 -1
  795. data/spec/unit/provider/group/windows_adsi_spec.rb +2 -2
  796. data/spec/unit/provider/host/parsed_spec.rb +1 -1
  797. data/spec/unit/provider/interface/cisco_spec.rb +1 -1
  798. data/spec/unit/provider/ldap_spec.rb +1 -1
  799. data/spec/unit/provider/macauthorization_spec.rb +1 -1
  800. data/spec/unit/provider/mcx/mcxcontent_spec.rb +1 -1
  801. data/spec/unit/provider/mount/parsed_spec.rb +18 -12
  802. data/spec/unit/provider/mount_spec.rb +1 -1
  803. data/spec/unit/provider/naginator_spec.rb +1 -1
  804. data/spec/unit/provider/nameservice/directoryservice_spec.rb +9 -29
  805. data/spec/unit/provider/network_device_spec.rb +1 -1
  806. data/spec/unit/provider/package/aix_spec.rb +1 -1
  807. data/spec/unit/provider/package/appdmg_spec.rb +1 -1
  808. data/spec/unit/provider/package/apt_spec.rb +1 -1
  809. data/spec/unit/provider/package/aptitude_spec.rb +38 -0
  810. data/spec/unit/provider/package/aptrpm_spec.rb +39 -0
  811. data/spec/unit/provider/package/dpkg_spec.rb +4 -4
  812. data/spec/unit/provider/package/freebsd_spec.rb +3 -3
  813. data/spec/unit/provider/package/gem_spec.rb +1 -1
  814. data/spec/unit/provider/package/hpux_spec.rb +1 -1
  815. data/spec/unit/provider/package/macports_spec.rb +27 -10
  816. data/spec/unit/provider/package/msi_spec.rb +29 -14
  817. data/spec/unit/provider/package/nim_spec.rb +1 -1
  818. data/spec/unit/provider/package/openbsd_spec.rb +3 -3
  819. data/spec/unit/provider/package/pacman_spec.rb +109 -81
  820. data/spec/unit/provider/package/pip_spec.rb +1 -1
  821. data/spec/unit/provider/package/pkg_spec.rb +205 -97
  822. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  823. data/spec/unit/provider/package/pkgin_spec.rb +176 -0
  824. data/spec/unit/provider/package/pkgutil_spec.rb +64 -10
  825. data/spec/unit/provider/package/rpm_spec.rb +58 -0
  826. data/spec/unit/provider/package/sun_spec.rb +122 -0
  827. data/spec/unit/provider/package/up2date_spec.rb +24 -0
  828. data/spec/unit/provider/package/windows/exe_package_spec.rb +99 -0
  829. data/spec/unit/provider/package/windows/msi_package_spec.rb +115 -0
  830. data/spec/unit/provider/package/windows/package_spec.rb +126 -0
  831. data/spec/unit/provider/package/windows_spec.rb +255 -0
  832. data/spec/unit/provider/package/yum_spec.rb +1 -1
  833. data/spec/unit/provider/package/zypper_spec.rb +1 -1
  834. data/spec/unit/provider/parsedfile_spec.rb +1 -1
  835. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +12 -15
  836. data/spec/unit/provider/selboolean_spec.rb +1 -1
  837. data/spec/unit/provider/selmodule-example.pp +0 -0
  838. data/spec/unit/provider/selmodule_spec.rb +1 -1
  839. data/spec/unit/provider/service/base_spec.rb +77 -0
  840. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  841. data/spec/unit/provider/service/debian_spec.rb +1 -1
  842. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  843. data/spec/unit/provider/service/gentoo_spec.rb +1 -1
  844. data/spec/unit/provider/service/init_spec.rb +1 -1
  845. data/spec/unit/provider/service/launchd_spec.rb +0 -17
  846. data/spec/unit/provider/service/redhat_spec.rb +12 -3
  847. data/spec/unit/provider/service/runit_spec.rb +2 -1
  848. data/spec/unit/provider/service/smf_spec.rb +16 -1
  849. data/spec/unit/provider/service/src_spec.rb +6 -6
  850. data/spec/unit/provider/service/systemd_spec.rb +18 -1
  851. data/spec/unit/provider/service/upstart_spec.rb +12 -7
  852. data/spec/unit/provider/service/windows_spec.rb +1 -1
  853. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +1 -1
  854. data/spec/unit/provider/sshkey/parsed_spec.rb +42 -12
  855. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  856. data/spec/unit/provider/user/ldap_spec.rb +9 -23
  857. data/spec/unit/provider/user/pw_spec.rb +1 -1
  858. data/spec/unit/provider/user/user_role_add_spec.rb +5 -2
  859. data/spec/unit/provider/user/useradd_spec.rb +118 -146
  860. data/spec/unit/provider/user/windows_adsi_spec.rb +2 -24
  861. data/spec/unit/provider/vlan/cisco_spec.rb +1 -1
  862. data/spec/unit/provider/zfs/zfs_spec.rb +106 -0
  863. data/spec/unit/provider/zone/solaris_spec.rb +56 -34
  864. data/spec/unit/provider/zpool/zpool_spec.rb +213 -0
  865. data/spec/unit/provider_spec.rb +621 -16
  866. data/spec/unit/puppet_spec.rb +21 -9
  867. data/spec/unit/rails/host_spec.rb +1 -1
  868. data/spec/unit/rails/param_value_spec.rb +1 -1
  869. data/spec/unit/rails/resource_spec.rb +1 -1
  870. data/spec/unit/rails_spec.rb +70 -70
  871. data/spec/unit/relationship_spec.rb +1 -1
  872. data/spec/unit/reports/http_spec.rb +48 -15
  873. data/spec/unit/reports/rrdgraph_spec.rb +1 -1
  874. data/spec/unit/reports/store_spec.rb +1 -1
  875. data/spec/unit/reports/tagmail_spec.rb +1 -1
  876. data/spec/unit/reports_spec.rb +1 -1
  877. data/spec/unit/resource/catalog_spec.rb +8 -175
  878. data/spec/unit/resource/status_spec.rb +2 -2
  879. data/spec/unit/resource/type_collection_helper_spec.rb +1 -1
  880. data/spec/unit/resource/type_collection_spec.rb +72 -45
  881. data/spec/unit/resource/type_spec.rb +31 -33
  882. data/spec/unit/resource_spec.rb +163 -98
  883. data/spec/unit/run_spec.rb +7 -23
  884. data/spec/unit/settings/directory_setting_spec.rb +32 -0
  885. data/spec/unit/{util/settings → settings}/file_setting_spec.rb +14 -23
  886. data/spec/unit/settings/path_setting_spec.rb +30 -0
  887. data/spec/unit/settings/string_setting_spec.rb +75 -0
  888. data/spec/unit/settings_spec.rb +1583 -0
  889. data/spec/unit/simple_graph_spec.rb +19 -5
  890. data/spec/unit/ssl/base_spec.rb +2 -2
  891. data/spec/unit/ssl/certificate_authority/interface_spec.rb +7 -7
  892. data/spec/unit/ssl/certificate_authority_spec.rb +27 -53
  893. data/spec/unit/ssl/certificate_factory_spec.rb +1 -1
  894. data/spec/unit/ssl/certificate_request_spec.rb +2 -4
  895. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  896. data/spec/unit/ssl/certificate_spec.rb +1 -1
  897. data/spec/unit/ssl/configuration_spec.rb +60 -0
  898. data/spec/unit/ssl/host_spec.rb +37 -89
  899. data/spec/unit/ssl/inventory_spec.rb +13 -20
  900. data/spec/unit/ssl/key_spec.rb +11 -9
  901. data/spec/unit/status_spec.rb +1 -7
  902. data/spec/unit/transaction/event_manager_spec.rb +1 -1
  903. data/spec/unit/transaction/event_spec.rb +6 -6
  904. data/spec/unit/transaction/report_spec.rb +1 -1
  905. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  906. data/spec/unit/transaction_spec.rb +8 -8
  907. data/spec/unit/{puppet/type → type}/README.markdown +0 -0
  908. data/spec/unit/type/augeas_spec.rb +2 -2
  909. data/spec/unit/type/component_spec.rb +1 -1
  910. data/spec/unit/type/computer_spec.rb +1 -1
  911. data/spec/unit/type/cron_spec.rb +1 -1
  912. data/spec/unit/type/exec_spec.rb +40 -12
  913. data/spec/unit/type/file/checksum_spec.rb +1 -1
  914. data/spec/unit/type/file/content_spec.rb +9 -6
  915. data/spec/unit/type/file/ctime_spec.rb +1 -1
  916. data/spec/unit/type/file/ensure_spec.rb +1 -1
  917. data/spec/unit/type/file/group_spec.rb +1 -1
  918. data/spec/unit/type/file/mode_spec.rb +1 -1
  919. data/spec/unit/type/file/mtime_spec.rb +1 -1
  920. data/spec/unit/type/file/owner_spec.rb +1 -1
  921. data/spec/unit/type/file/selinux_spec.rb +1 -1
  922. data/spec/unit/type/file/source_spec.rb +14 -13
  923. data/spec/unit/type/file/type_spec.rb +1 -1
  924. data/spec/unit/type/file_spec.rb +39 -87
  925. data/spec/unit/type/filebucket_spec.rb +1 -1
  926. data/spec/unit/type/group_spec.rb +5 -5
  927. data/spec/unit/type/host_spec.rb +1 -1
  928. data/spec/unit/type/interface_spec.rb +1 -1
  929. data/spec/unit/type/macauthorization_spec.rb +1 -1
  930. data/spec/unit/type/mailalias_spec.rb +21 -0
  931. data/spec/unit/type/maillist_spec.rb +1 -1
  932. data/spec/unit/type/mcx_spec.rb +1 -1
  933. data/spec/unit/type/mount_spec.rb +2 -2
  934. data/spec/unit/type/nagios_spec.rb +1 -1
  935. data/spec/unit/type/noop_metaparam_spec.rb +3 -3
  936. data/spec/unit/type/package_spec.rb +1 -1
  937. data/spec/unit/type/resources_spec.rb +2 -2
  938. data/spec/unit/type/schedule_spec.rb +297 -39
  939. data/spec/unit/type/scheduled_task_spec.rb +3 -3
  940. data/spec/unit/type/selboolean_spec.rb +1 -1
  941. data/spec/unit/type/selmodule_spec.rb +1 -1
  942. data/spec/unit/type/service_spec.rb +1 -1
  943. data/spec/unit/type/ssh_authorized_key_spec.rb +3 -3
  944. data/spec/unit/type/sshkey_spec.rb +1 -1
  945. data/spec/unit/type/stage_spec.rb +1 -1
  946. data/spec/unit/type/tidy_spec.rb +1 -1
  947. data/spec/unit/type/user_spec.rb +1 -1
  948. data/spec/unit/type/vlan_spec.rb +1 -1
  949. data/spec/unit/type/whit_spec.rb +1 -1
  950. data/spec/unit/type/yumrepo_spec.rb +243 -0
  951. data/spec/unit/type/zfs_spec.rb +8 -6
  952. data/spec/unit/type/zone_spec.rb +41 -36
  953. data/spec/unit/type/zpool_spec.rb +1 -1
  954. data/spec/unit/type_spec.rb +180 -31
  955. data/spec/unit/util/adsi_spec.rb +8 -23
  956. data/spec/unit/util/autoload_spec.rb +181 -45
  957. data/spec/unit/util/backups_spec.rb +1 -1
  958. data/spec/unit/util/cache_accumulator_spec.rb +1 -1
  959. data/spec/unit/util/cacher_spec.rb +1 -1
  960. data/spec/unit/util/checksums_spec.rb +1 -1
  961. data/spec/unit/util/command_line_spec.rb +114 -108
  962. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +129 -0
  963. data/spec/unit/util/config_timeout_spec.rb +57 -0
  964. data/spec/unit/util/constant_inflector_spec.rb +13 -23
  965. data/spec/unit/util/diff_spec.rb +5 -4
  966. data/spec/unit/util/errors_spec.rb +1 -1
  967. data/spec/unit/util/execution_spec.rb +532 -28
  968. data/spec/unit/util/execution_stub_spec.rb +4 -4
  969. data/spec/unit/util/feature_spec.rb +12 -13
  970. data/spec/unit/util/filetype_spec.rb +9 -9
  971. data/spec/unit/util/inline_docs_spec.rb +1 -1
  972. data/spec/unit/util/instrumentation/data_spec.rb +1 -1
  973. data/spec/unit/util/instrumentation/indirection_probe_spec.rb +1 -1
  974. data/spec/unit/util/instrumentation/instrumentable_spec.rb +1 -1
  975. data/spec/unit/util/instrumentation/listener_spec.rb +1 -1
  976. data/spec/unit/util/instrumentation_spec.rb +1 -1
  977. data/spec/unit/util/json_lockfile_spec.rb +29 -0
  978. data/spec/unit/util/ldap/connection_spec.rb +11 -15
  979. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  980. data/spec/unit/util/ldap/manager_spec.rb +14 -23
  981. data/spec/unit/util/loadedfile_spec.rb +1 -1
  982. data/spec/unit/util/lockfile_spec.rb +76 -0
  983. data/spec/unit/util/log/destinations_spec.rb +11 -28
  984. data/spec/unit/util/log_spec.rb +6 -6
  985. data/spec/unit/util/logging_spec.rb +43 -11
  986. data/spec/unit/util/metric_spec.rb +4 -3
  987. data/spec/unit/util/monkey_patches/lines_spec.rb +83 -0
  988. data/spec/unit/util/monkey_patches_spec.rb +91 -28
  989. data/spec/unit/util/nagios_maker_spec.rb +1 -1
  990. data/spec/unit/util/network_device/cisco/device_spec.rb +3 -3
  991. data/spec/unit/util/network_device/cisco/facts_spec.rb +1 -1
  992. data/spec/unit/util/network_device/cisco/interface_spec.rb +1 -1
  993. data/spec/unit/util/network_device/config_spec.rb +1 -1
  994. data/spec/unit/util/network_device/ipcalc_spec.rb +1 -1
  995. data/spec/unit/util/network_device/transport/base_spec.rb +1 -1
  996. data/spec/unit/util/network_device/transport/ssh_spec.rb +2 -2
  997. data/spec/unit/util/network_device/transport/telnet_spec.rb +1 -1
  998. data/spec/unit/util/network_device_spec.rb +1 -1
  999. data/spec/unit/util/package_spec.rb +1 -1
  1000. data/spec/unit/util/pidlock_spec.rb +179 -0
  1001. data/spec/unit/util/posix_spec.rb +2 -2
  1002. data/spec/unit/util/pson_spec.rb +23 -9
  1003. data/spec/unit/util/queue/stomp_spec.rb +10 -13
  1004. data/spec/unit/util/queue_spec.rb +2 -2
  1005. data/spec/unit/util/rdoc/parser_spec.rb +11 -9
  1006. data/spec/unit/util/rdoc_spec.rb +9 -3
  1007. data/spec/unit/util/reference_serializer_spec.rb +1 -1
  1008. data/spec/unit/util/reference_spec.rb +1 -1
  1009. data/spec/unit/util/resource_template_spec.rb +1 -1
  1010. data/spec/unit/util/retryaction_spec.rb +1 -1
  1011. data/spec/unit/util/rubygems_spec.rb +66 -0
  1012. data/spec/unit/util/run_mode_spec.rb +4 -9
  1013. data/spec/unit/util/selinux_spec.rb +33 -25
  1014. data/spec/unit/util/storage_spec.rb +2 -18
  1015. data/spec/unit/util/suidmanager_spec.rb +11 -4
  1016. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -1
  1017. data/spec/unit/util/tagging_spec.rb +1 -1
  1018. data/spec/unit/util/terminal_spec.rb +1 -1
  1019. data/spec/unit/util/user_attr_spec.rb +1 -1
  1020. data/spec/unit/util/warnings_spec.rb +1 -1
  1021. data/spec/unit/util/windows/registry_spec.rb +86 -0
  1022. data/spec/unit/util/zaml_spec.rb +30 -146
  1023. data/spec/unit/util_spec.rb +148 -440
  1024. data/spec/watchr.rb +6 -2
  1025. data/tasks/rake/apple.rake +176 -0
  1026. data/tasks/rake/gem.rake +6 -5
  1027. data/tasks/rake/manpages.rake +8 -1
  1028. data/tasks/rake/metrics.rake +11 -3
  1029. data/tasks/rake/parser.rake +5 -0
  1030. data/{ext/osx → tasks/rake/templates}/prototype.plist.erb +0 -0
  1031. metadata +293 -580
  1032. data/bin/filebucket +0 -7
  1033. data/bin/pi +0 -5
  1034. data/bin/puppetca +0 -4
  1035. data/bin/puppetd +0 -4
  1036. data/bin/puppetdoc +0 -4
  1037. data/bin/puppetmasterd +0 -4
  1038. data/bin/puppetqd +0 -4
  1039. data/bin/puppetrun +0 -5
  1040. data/bin/ralsh +0 -4
  1041. data/ext/build_defaults.yaml +0 -19
  1042. data/ext/debian/README.Debian +0 -8
  1043. data/ext/debian/README.source +0 -2
  1044. data/ext/debian/TODO.Debian +0 -1
  1045. data/ext/debian/changelog.erb +0 -1104
  1046. data/ext/debian/compat +0 -1
  1047. data/ext/debian/control +0 -142
  1048. data/ext/debian/copyright +0 -361
  1049. data/ext/debian/docs +0 -1
  1050. data/ext/debian/fileserver.conf +0 -17
  1051. data/ext/debian/puppet-common.dirs +0 -8
  1052. data/ext/debian/puppet-common.install +0 -3
  1053. data/ext/debian/puppet-common.lintian-overrides +0 -7
  1054. data/ext/debian/puppet-common.manpages +0 -2
  1055. data/ext/debian/puppet-common.postinst +0 -35
  1056. data/ext/debian/puppet-common.postrm +0 -32
  1057. data/ext/debian/puppet-el.dirs +0 -1
  1058. data/ext/debian/puppet-el.emacsen-install +0 -25
  1059. data/ext/debian/puppet-el.emacsen-remove +0 -11
  1060. data/ext/debian/puppet-el.emacsen-startup +0 -9
  1061. data/ext/debian/puppet-el.install +0 -1
  1062. data/ext/debian/puppet-testsuite.install +0 -3
  1063. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  1064. data/ext/debian/puppet.NEWS +0 -86
  1065. data/ext/debian/puppet.conf +0 -14
  1066. data/ext/debian/puppet.default +0 -7
  1067. data/ext/debian/puppet.dirs +0 -1
  1068. data/ext/debian/puppet.init +0 -118
  1069. data/ext/debian/puppet.install +0 -4
  1070. data/ext/debian/puppet.lintian-overrides +0 -3
  1071. data/ext/debian/puppet.logrotate +0 -11
  1072. data/ext/debian/puppet.manpages +0 -36
  1073. data/ext/debian/puppet.postinst +0 -20
  1074. data/ext/debian/puppet.postrm +0 -20
  1075. data/ext/debian/puppet.preinst +0 -20
  1076. data/ext/debian/puppetmaster-common.install +0 -5
  1077. data/ext/debian/puppetmaster-common.manpages +0 -5
  1078. data/ext/debian/puppetmaster-common.puppetqd.default +0 -27
  1079. data/ext/debian/puppetmaster-common.puppetqd.init +0 -84
  1080. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  1081. data/ext/debian/puppetmaster-passenger.postinst +0 -66
  1082. data/ext/debian/puppetmaster-passenger.postrm +0 -33
  1083. data/ext/debian/puppetmaster.NEWS +0 -13
  1084. data/ext/debian/puppetmaster.README.debian +0 -16
  1085. data/ext/debian/puppetmaster.default +0 -38
  1086. data/ext/debian/puppetmaster.dirs +0 -1
  1087. data/ext/debian/puppetmaster.init +0 -158
  1088. data/ext/debian/puppetmaster.install +0 -1
  1089. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  1090. data/ext/debian/puppetmaster.manpages +0 -1
  1091. data/ext/debian/puppetmaster.postinst +0 -20
  1092. data/ext/debian/puppetmaster.postrm +0 -5
  1093. data/ext/debian/puppetmaster.preinst +0 -22
  1094. data/ext/debian/rules +0 -127
  1095. data/ext/debian/source/format +0 -1
  1096. data/ext/debian/source/options +0 -1
  1097. data/ext/debian/vim-puppet.README.Debian +0 -13
  1098. data/ext/debian/vim-puppet.dirs +0 -3
  1099. data/ext/debian/vim-puppet.yaml +0 -5
  1100. data/ext/debian/watch +0 -2
  1101. data/ext/osx/file_mapping.yaml +0 -38
  1102. data/ext/osx/preflight.erb +0 -37
  1103. data/ext/packaging/Gemfile +0 -8
  1104. data/ext/packaging/Gemfile.lock +0 -28
  1105. data/ext/packaging/LICENSE +0 -17
  1106. data/ext/packaging/README-Solaris.md +0 -117
  1107. data/ext/packaging/README.md +0 -1074
  1108. data/ext/packaging/lib/packaging.rb +0 -21
  1109. data/ext/packaging/lib/packaging/config.rb +0 -277
  1110. data/ext/packaging/lib/packaging/config/params.rb +0 -175
  1111. data/ext/packaging/lib/packaging/tar.rb +0 -186
  1112. data/ext/packaging/lib/packaging/util.rb +0 -44
  1113. data/ext/packaging/lib/packaging/util/date.rb +0 -15
  1114. data/ext/packaging/lib/packaging/util/file.rb +0 -60
  1115. data/ext/packaging/lib/packaging/util/jira.rb +0 -83
  1116. data/ext/packaging/lib/packaging/util/net.rb +0 -16
  1117. data/ext/packaging/lib/packaging/util/rake_utils.rb +0 -57
  1118. data/ext/packaging/lib/packaging/util/serialization.rb +0 -19
  1119. data/ext/packaging/lib/packaging/util/tool.rb +0 -30
  1120. data/ext/packaging/lib/packaging/util/version.rb +0 -300
  1121. data/ext/packaging/packaging.rake +0 -50
  1122. data/ext/packaging/spec/fixtures/config/ext/build_defaults.yaml +0 -2
  1123. data/ext/packaging/spec/fixtures/config/ext/project_data.yaml +0 -2
  1124. data/ext/packaging/spec/fixtures/config/params.yaml +0 -2
  1125. data/ext/packaging/spec/fixtures/util/pre_tasks.yaml +0 -4
  1126. data/ext/packaging/spec/lib/packaging/config_spec.rb +0 -330
  1127. data/ext/packaging/spec/lib/packaging/tar_spec.rb +0 -122
  1128. data/ext/packaging/spec/lib/packaging/util/file_spec.rb +0 -48
  1129. data/ext/packaging/spec/lib/packaging/util/jira_spec.rb +0 -50
  1130. data/ext/packaging/spec/lib/packaging/util/net_spec.rb +0 -23
  1131. data/ext/packaging/spec/lib/packaging/util/rake_utils_spec.rb +0 -70
  1132. data/ext/packaging/spec/lib/packaging/util/version_spec.rb +0 -67
  1133. data/ext/packaging/spec/lib/packaging_spec.rb +0 -19
  1134. data/ext/packaging/spec/spec_helper.rb +0 -22
  1135. data/ext/packaging/spec/tasks/00_utils_spec.rb +0 -248
  1136. data/ext/packaging/static_artifacts/PackageInfo.plist +0 -3
  1137. data/ext/packaging/tasks/00_utils.rake +0 -402
  1138. data/ext/packaging/tasks/30_metrics.rake +0 -33
  1139. data/ext/packaging/tasks/apple.rake +0 -267
  1140. data/ext/packaging/tasks/build.rake +0 -12
  1141. data/ext/packaging/tasks/clean.rake +0 -5
  1142. data/ext/packaging/tasks/deb.rake +0 -127
  1143. data/ext/packaging/tasks/deb_repos.rake +0 -128
  1144. data/ext/packaging/tasks/doc.rake +0 -20
  1145. data/ext/packaging/tasks/fetch.rake +0 -58
  1146. data/ext/packaging/tasks/gem.rake +0 -158
  1147. data/ext/packaging/tasks/ips.rake +0 -122
  1148. data/ext/packaging/tasks/jenkins.rake +0 -360
  1149. data/ext/packaging/tasks/jenkins_dynamic.rake +0 -123
  1150. data/ext/packaging/tasks/load_extras.rake +0 -21
  1151. data/ext/packaging/tasks/mock.rake +0 -290
  1152. data/ext/packaging/tasks/pe_deb.rake +0 -12
  1153. data/ext/packaging/tasks/pe_remote.rake +0 -41
  1154. data/ext/packaging/tasks/pe_rpm.rake +0 -13
  1155. data/ext/packaging/tasks/pe_ship.rake +0 -179
  1156. data/ext/packaging/tasks/pe_sign.rake +0 -47
  1157. data/ext/packaging/tasks/pe_tar.rake +0 -5
  1158. data/ext/packaging/tasks/release.rake +0 -91
  1159. data/ext/packaging/tasks/remote_build.rake +0 -158
  1160. data/ext/packaging/tasks/retrieve.rake +0 -45
  1161. data/ext/packaging/tasks/rpm.rake +0 -71
  1162. data/ext/packaging/tasks/rpm_repos.rake +0 -139
  1163. data/ext/packaging/tasks/ship.rake +0 -192
  1164. data/ext/packaging/tasks/sign.rake +0 -164
  1165. data/ext/packaging/tasks/tag.rake +0 -8
  1166. data/ext/packaging/tasks/tar.rake +0 -34
  1167. data/ext/packaging/tasks/tickets.rake +0 -449
  1168. data/ext/packaging/tasks/update.rake +0 -16
  1169. data/ext/packaging/tasks/vendor_gems.rake +0 -110
  1170. data/ext/packaging/tasks/version.rake +0 -33
  1171. data/ext/packaging/tasks/z_data_dump.rake +0 -65
  1172. data/ext/packaging/templates/README +0 -1
  1173. data/ext/packaging/templates/downstream.xml.erb +0 -45
  1174. data/ext/packaging/templates/packaging.xml.erb +0 -330
  1175. data/ext/packaging/templates/repo.xml.erb +0 -106
  1176. data/ext/project_data.yaml +0 -24
  1177. data/lib/puppet/file_system.rb +0 -3
  1178. data/lib/puppet/file_system/path_pattern.rb +0 -97
  1179. data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
  1180. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
  1181. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
  1182. data/lib/puppet/indirector/errors.rb +0 -5
  1183. data/lib/puppet/indirector/inventory/yaml.rb +0 -81
  1184. data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
  1185. data/lib/puppet/indirector/resource/validator.rb +0 -8
  1186. data/lib/puppet/network/handler.rb +0 -50
  1187. data/lib/puppet/network/handler/ca.rb +0 -61
  1188. data/lib/puppet/network/handler/filebucket.rb +0 -53
  1189. data/lib/puppet/network/handler/fileserver.rb +0 -732
  1190. data/lib/puppet/network/handler/master.rb +0 -87
  1191. data/lib/puppet/network/handler/report.rb +0 -82
  1192. data/lib/puppet/network/handler/runner.rb +0 -33
  1193. data/lib/puppet/network/handler/status.rb +0 -18
  1194. data/lib/puppet/network/http/rack/xmlrpc.rb +0 -65
  1195. data/lib/puppet/network/http_server.rb +0 -3
  1196. data/lib/puppet/network/http_server/mongrel.rb +0 -129
  1197. data/lib/puppet/network/rest_authconfig.rb +0 -102
  1198. data/lib/puppet/network/rest_authorization.rb +0 -23
  1199. data/lib/puppet/network/xmlrpc/processor.rb +0 -86
  1200. data/lib/puppet/network/xmlrpc/server.rb +0 -19
  1201. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -114
  1202. data/lib/puppet/node/inventory.rb +0 -7
  1203. data/lib/puppet/reference/network.rb +0 -39
  1204. data/lib/puppet/transportable.rb +0 -248
  1205. data/lib/puppet/util/autoload/file_cache.rb +0 -92
  1206. data/lib/puppet/util/file_locking.rb +0 -47
  1207. data/lib/puppet/util/settings.rb +0 -926
  1208. data/lib/puppet/util/settings/setting.rb +0 -94
  1209. data/lib/puppet/util/windows/sid.rb +0 -96
  1210. data/lib/puppet/vendor.rb +0 -55
  1211. data/lib/puppet/vendor/load_safe_yaml.rb +0 -1
  1212. data/lib/puppet/vendor/require_vendored.rb +0 -4
  1213. data/lib/puppet/vendor/safe_yaml/CHANGES.md +0 -104
  1214. data/lib/puppet/vendor/safe_yaml/Gemfile +0 -11
  1215. data/lib/puppet/vendor/safe_yaml/LICENSE.txt +0 -22
  1216. data/lib/puppet/vendor/safe_yaml/README.md +0 -179
  1217. data/lib/puppet/vendor/safe_yaml/Rakefile +0 -6
  1218. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +0 -253
  1219. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +0 -34
  1220. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +0 -27
  1221. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  1222. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  1223. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +0 -92
  1224. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +0 -52
  1225. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +0 -94
  1226. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -17
  1227. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +0 -36
  1228. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  1229. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +0 -38
  1230. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +0 -41
  1231. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +0 -21
  1232. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +0 -11
  1233. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +0 -33
  1234. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +0 -25
  1235. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +0 -18
  1236. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +0 -13
  1237. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +0 -47
  1238. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +0 -3
  1239. data/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +0 -21
  1240. data/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +0 -18
  1241. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +0 -2
  1242. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +0 -2
  1243. data/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +0 -10
  1244. data/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +0 -250
  1245. data/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +0 -702
  1246. data/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +0 -18
  1247. data/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +0 -29
  1248. data/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +0 -10
  1249. data/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +0 -11
  1250. data/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +0 -34
  1251. data/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +0 -42
  1252. data/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +0 -59
  1253. data/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +0 -49
  1254. data/man/man8/filebucket.8 +0 -81
  1255. data/man/man8/pi.8 +0 -51
  1256. data/man/man8/puppetca.8 +0 -97
  1257. data/man/man8/puppetd.8 +0 -154
  1258. data/man/man8/puppetdoc.8 +0 -113
  1259. data/man/man8/puppetmasterd.8 +0 -78
  1260. data/man/man8/puppetqd.8 +0 -55
  1261. data/man/man8/puppetrun.8 +0 -127
  1262. data/man/man8/ralsh.8 +0 -84
  1263. data/spec/integration/network/handler_spec.rb +0 -24
  1264. data/spec/integration/network/rest_authconfig_spec.rb +0 -164
  1265. data/spec/integration/util/file_locking_spec.rb +0 -56
  1266. data/spec/unit/agent_backward_compatibility_spec.rb +0 -152
  1267. data/spec/unit/file_system/path_pattern_spec.rb +0 -139
  1268. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -194
  1269. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -33
  1270. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -33
  1271. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -33
  1272. data/spec/unit/indirector/inventory/yaml_spec.rb +0 -220
  1273. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -33
  1274. data/spec/unit/network/handler/ca_spec.rb +0 -87
  1275. data/spec/unit/network/handler/fileserver_spec.rb +0 -201
  1276. data/spec/unit/network/http/mongrel/xmlrpc_spec.rb +0 -0
  1277. data/spec/unit/network/http/rack/xmlrpc_spec.rb +0 -155
  1278. data/spec/unit/network/http/webrick/xmlrpc_spec.rb +0 -0
  1279. data/spec/unit/network/rest_authconfig_spec.rb +0 -142
  1280. data/spec/unit/other/transbucket_spec.rb +0 -184
  1281. data/spec/unit/other/transobject_spec.rb +0 -111
  1282. data/spec/unit/provider/zfs/solaris_spec.rb +0 -99
  1283. data/spec/unit/provider/zpool/solaris_spec.rb +0 -208
  1284. data/spec/unit/transportable_spec.rb +0 -0
  1285. data/spec/unit/util/autoload/file_cache_spec.rb +0 -158
  1286. data/spec/unit/util/file_locking_spec.rb +0 -159
  1287. data/spec/unit/util/settings_spec.rb +0 -1088
  1288. data/spec/unit/util/windows/sid_spec.rb +0 -100
  1289. data/test/README +0 -24
  1290. data/test/Rakefile +0 -96
  1291. data/test/data/failers/badclassnoparam +0 -10
  1292. data/test/data/failers/badclassparam +0 -10
  1293. data/test/data/failers/badcompnoparam +0 -9
  1294. data/test/data/failers/badcompparam +0 -9
  1295. data/test/data/failers/badtypeparam +0 -3
  1296. data/test/data/failers/noobjectrvalue +0 -1
  1297. data/test/data/providers/cron/crontab.allthree +0 -17
  1298. data/test/data/providers/cron/crontab.envNcomment +0 -12
  1299. data/test/data/providers/cron/crontab.envNname +0 -11
  1300. data/test/data/providers/cron/crontab.multirecords +0 -12
  1301. data/test/data/providers/cron/crontab_collections.yaml +0 -44
  1302. data/test/data/providers/cron/crontab_multiple_with_env.yaml +0 -54
  1303. data/test/data/providers/cron/examples/freebsd +0 -2
  1304. data/test/data/providers/cron/examples/one +0 -14
  1305. data/test/data/providers/cron/examples/openbsd +0 -20
  1306. data/test/data/providers/host/parsed/valid_hosts +0 -19
  1307. data/test/data/providers/mailalias/aliases/test1 +0 -28
  1308. data/test/data/providers/mount/parsed/aix.mount +0 -7
  1309. data/test/data/providers/mount/parsed/darwin.mount +0 -6
  1310. data/test/data/providers/mount/parsed/hpux.mount +0 -17
  1311. data/test/data/providers/mount/parsed/linux.mount +0 -5
  1312. data/test/data/providers/mount/parsed/solaris.mount +0 -6
  1313. data/test/data/providers/package/testpackages.yaml +0 -65
  1314. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +0 -7
  1315. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys1 +0 -3
  1316. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys2 +0 -1
  1317. data/test/data/reports/1.yaml +0 -108
  1318. data/test/data/reports/2.yaml +0 -108
  1319. data/test/data/reports/tagmail_failers.conf +0 -3
  1320. data/test/data/reports/tagmail_passers.conf +0 -30
  1321. data/test/data/snippets/aliastest.pp +0 -16
  1322. data/test/data/snippets/append.pp +0 -11
  1323. data/test/data/snippets/argumentdefaults +0 -14
  1324. data/test/data/snippets/arithmetic_expression.pp +0 -8
  1325. data/test/data/snippets/arraytrailingcomma.pp +0 -3
  1326. data/test/data/snippets/casestatement.pp +0 -65
  1327. data/test/data/snippets/classheirarchy.pp +0 -15
  1328. data/test/data/snippets/classincludes.pp +0 -17
  1329. data/test/data/snippets/classpathtest +0 -11
  1330. data/test/data/snippets/collection.pp +0 -10
  1331. data/test/data/snippets/collection_override.pp +0 -8
  1332. data/test/data/snippets/collection_within_virtual_definitions.pp +0 -20
  1333. data/test/data/snippets/componentmetaparams.pp +0 -11
  1334. data/test/data/snippets/componentrequire.pp +0 -8
  1335. data/test/data/snippets/deepclassheirarchy.pp +0 -23
  1336. data/test/data/snippets/defineoverrides.pp +0 -17
  1337. data/test/data/snippets/emptyclass.pp +0 -9
  1338. data/test/data/snippets/emptyexec.pp +0 -3
  1339. data/test/data/snippets/emptyifelse.pp +0 -9
  1340. data/test/data/snippets/falsevalues.pp +0 -3
  1341. data/test/data/snippets/filecreate +0 -11
  1342. data/test/data/snippets/fqdefinition.pp +0 -5
  1343. data/test/data/snippets/fqparents.pp +0 -11
  1344. data/test/data/snippets/funccomma.pp +0 -5
  1345. data/test/data/snippets/hash.pp +0 -33
  1346. data/test/data/snippets/ifexpression.pp +0 -12
  1347. data/test/data/snippets/implicititeration +0 -15
  1348. data/test/data/snippets/multilinecomments.pp +0 -10
  1349. data/test/data/snippets/multipleclass.pp +0 -9
  1350. data/test/data/snippets/multipleinstances +0 -7
  1351. data/test/data/snippets/multisubs.pp +0 -13
  1352. data/test/data/snippets/namevartest +0 -9
  1353. data/test/data/snippets/scopetest +0 -13
  1354. data/test/data/snippets/selectorvalues.pp +0 -49
  1355. data/test/data/snippets/simpledefaults +0 -5
  1356. data/test/data/snippets/simpleselector +0 -38
  1357. data/test/data/snippets/singleary.pp +0 -19
  1358. data/test/data/snippets/singlequote.pp +0 -11
  1359. data/test/data/snippets/singleselector.pp +0 -22
  1360. data/test/data/snippets/subclass_name_duplication.pp +0 -11
  1361. data/test/data/snippets/tag.pp +0 -9
  1362. data/test/data/snippets/tagged.pp +0 -35
  1363. data/test/data/snippets/virtualresources.pp +0 -14
  1364. data/test/data/types/hosts/1 +0 -3
  1365. data/test/data/types/hosts/2 +0 -13
  1366. data/test/data/types/hosts/solaris +0 -5
  1367. data/test/data/types/mailalias/file1 +0 -183
  1368. data/test/data/types/mount/freebsd.fstab +0 -7
  1369. data/test/data/types/mount/linux.fstab +0 -12
  1370. data/test/data/types/mount/solaris.fstab +0 -12
  1371. data/test/data/types/port/1 +0 -533
  1372. data/test/data/types/port/darwin +0 -11866
  1373. data/test/data/types/ssh_authorized_key/1 +0 -2
  1374. data/test/data/types/yumrepos/fedora-devel.repo +0 -26
  1375. data/test/data/types/yumrepos/fedora.repo +0 -9
  1376. data/test/language/ast.rb +0 -90
  1377. data/test/language/ast/variable.rb +0 -25
  1378. data/test/language/functions.rb +0 -540
  1379. data/test/language/parser.rb +0 -739
  1380. data/test/language/scope.rb +0 -261
  1381. data/test/language/snippets.rb +0 -512
  1382. data/test/language/transportable.rb +0 -87
  1383. data/test/lib/puppettest.rb +0 -307
  1384. data/test/lib/puppettest/certificates.rb +0 -74
  1385. data/test/lib/puppettest/exetest.rb +0 -125
  1386. data/test/lib/puppettest/fakes.rb +0 -199
  1387. data/test/lib/puppettest/fileparsing.rb +0 -28
  1388. data/test/lib/puppettest/filetesting.rb +0 -221
  1389. data/test/lib/puppettest/parsertesting.rb +0 -424
  1390. data/test/lib/puppettest/railstesting.rb +0 -18
  1391. data/test/lib/puppettest/reporttesting.rb +0 -16
  1392. data/test/lib/puppettest/resourcetesting.rb +0 -54
  1393. data/test/lib/puppettest/runnable_test.rb +0 -43
  1394. data/test/lib/puppettest/servertest.rb +0 -77
  1395. data/test/lib/puppettest/support.rb +0 -8
  1396. data/test/lib/puppettest/support/assertions.rb +0 -69
  1397. data/test/lib/puppettest/support/helpers.rb +0 -18
  1398. data/test/lib/puppettest/support/resources.rb +0 -31
  1399. data/test/lib/puppettest/support/utils.rb +0 -141
  1400. data/test/lib/puppettest/testcase.rb +0 -24
  1401. data/test/lib/rake/puppet_test_loader.rb +0 -14
  1402. data/test/lib/rake/puppet_testtask.rb +0 -19
  1403. data/test/lib/stubba.rb +0 -2
  1404. data/test/network/authconfig.rb +0 -69
  1405. data/test/network/authorization.rb +0 -138
  1406. data/test/network/authstore.rb +0 -538
  1407. data/test/network/client_request.rb +0 -38
  1408. data/test/network/handler/fileserver.rb +0 -1266
  1409. data/test/network/handler/master.rb +0 -93
  1410. data/test/network/handler/report.rb +0 -47
  1411. data/test/network/handler/runner.rb +0 -20
  1412. data/test/network/rights.rb +0 -40
  1413. data/test/network/xmlrpc/processor.rb +0 -79
  1414. data/test/network/xmlrpc/server.rb +0 -26
  1415. data/test/network/xmlrpc/webrick_servlet.rb +0 -35
  1416. data/test/other/provider.rb +0 -90
  1417. data/test/other/puppet.rb +0 -85
  1418. data/test/other/relationships.rb +0 -91
  1419. data/test/other/report.rb +0 -135
  1420. data/test/other/transactions.rb +0 -395
  1421. data/test/puppet/defaults.rb +0 -65
  1422. data/test/rails/rails.rb +0 -24
  1423. data/test/rails/railsparameter.rb +0 -80
  1424. data/test/ral/manager/attributes.rb +0 -296
  1425. data/test/ral/manager/instances.rb +0 -88
  1426. data/test/ral/manager/manager.rb +0 -50
  1427. data/test/ral/manager/provider.rb +0 -84
  1428. data/test/ral/manager/type.rb +0 -361
  1429. data/test/ral/providers/cron/crontab.rb +0 -652
  1430. data/test/ral/providers/group.rb +0 -242
  1431. data/test/ral/providers/host/parsed.rb +0 -32
  1432. data/test/ral/providers/mailalias/aliases.rb +0 -55
  1433. data/test/ral/providers/nameservice.rb +0 -32
  1434. data/test/ral/providers/package.rb +0 -245
  1435. data/test/ral/providers/package/aptitude.rb +0 -83
  1436. data/test/ral/providers/package/aptrpm.rb +0 -100
  1437. data/test/ral/providers/parsedfile.rb +0 -695
  1438. data/test/ral/providers/port/parsed.rb +0 -232
  1439. data/test/ral/providers/provider.rb +0 -529
  1440. data/test/ral/providers/service/base.rb +0 -76
  1441. data/test/ral/providers/sshkey/parsed.rb +0 -112
  1442. data/test/ral/providers/user.rb +0 -586
  1443. data/test/ral/providers/user/useradd.rb +0 -233
  1444. data/test/ral/type/cron.rb +0 -505
  1445. data/test/ral/type/exec.rb +0 -717
  1446. data/test/ral/type/file.rb +0 -912
  1447. data/test/ral/type/file/target.rb +0 -346
  1448. data/test/ral/type/fileignoresource.rb +0 -265
  1449. data/test/ral/type/filesources.rb +0 -446
  1450. data/test/ral/type/host.rb +0 -180
  1451. data/test/ral/type/mailalias.rb +0 -45
  1452. data/test/ral/type/port.rb +0 -147
  1453. data/test/ral/type/resources.rb +0 -104
  1454. data/test/ral/type/service.rb +0 -38
  1455. data/test/ral/type/sshkey.rb +0 -148
  1456. data/test/ral/type/user.rb +0 -167
  1457. data/test/ral/type/yumrepo.rb +0 -116
  1458. data/test/ral/type/zone.rb +0 -447
  1459. data/test/test +0 -241
  1460. data/test/util/classgen.rb +0 -241
  1461. data/test/util/execution.rb +0 -33
  1462. data/test/util/fileparsing.rb +0 -721
  1463. data/test/util/inifile.rb +0 -138
  1464. data/test/util/instance_loader.rb +0 -52
  1465. data/test/util/log.rb +0 -219
  1466. data/test/util/metrics.rb +0 -72
  1467. data/test/util/package.rb +0 -25
  1468. data/test/util/pidlock.rb +0 -125
  1469. data/test/util/settings.rb +0 -773
  1470. data/test/util/storage.rb +0 -81
  1471. data/test/util/subclass_loader.rb +0 -89
  1472. data/test/util/utiltest.rb +0 -223
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/listener'
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/data'
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/listener'
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/listener'
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/indirection_probe'
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/util/instrumentation/indirection_probe'
@@ -0,0 +1,193 @@
1
+ #!/usr/bin/env rspec
2
+ require 'spec_helper'
3
+ require 'puppet_spec/files'
4
+ require 'puppet/indirector/indirector_testing/json'
5
+
6
+ describe Puppet::Indirector::JSON do
7
+ include PuppetSpec::Files
8
+
9
+ subject { Puppet::IndirectorTesting::JSON.new }
10
+ let :model do Puppet::IndirectorTesting end
11
+ let :indirection do model.indirection end
12
+
13
+ context "#path" do
14
+ before :each do
15
+ Puppet[:server_datadir] = '/sample/datadir/master'
16
+ Puppet[:client_datadir] = '/sample/datadir/client'
17
+ end
18
+
19
+ it "uses the :server_datadir setting if this is the master" do
20
+ Puppet.run_mode.stubs(:master?).returns(true)
21
+ expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.json')
22
+ subject.path('testing').should == expected
23
+ end
24
+
25
+ it "uses the :client_datadir setting if this is not the master" do
26
+ Puppet.run_mode.stubs(:master?).returns(false)
27
+ expected = File.join(Puppet[:client_datadir], 'indirector_testing', 'testing.json')
28
+ subject.path('testing').should == expected
29
+ end
30
+
31
+ it "overrides the default extension with a supplied value" do
32
+ Puppet.run_mode.stubs(:master?).returns(true)
33
+ expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.not-json')
34
+ subject.path('testing', '.not-json').should == expected
35
+ end
36
+
37
+ ['../foo', '..\\foo', './../foo', '.\\..\\foo',
38
+ '/foo', '//foo', '\\foo', '\\\\goo',
39
+ "test\0/../bar", "test\0\\..\\bar",
40
+ "..\\/bar", "/tmp/bar", "/tmp\\bar", "tmp\\bar",
41
+ " / bar", " /../ bar", " \\..\\ bar",
42
+ "c:\\foo", "c:/foo", "\\\\?\\UNC\\bar", "\\\\foo\\bar",
43
+ "\\\\?\\c:\\foo", "//?/UNC/bar", "//foo/bar",
44
+ "//?/c:/foo",
45
+ ].each do |input|
46
+ it "should resist directory traversal attacks (#{input.inspect})" do
47
+ expect { subject.path(input) }.to raise_error ArgumentError, 'invalid key'
48
+ end
49
+ end
50
+ end
51
+
52
+ context "handling requests" do
53
+ before :each do
54
+ Puppet.run_mode.stubs(:master?).returns(true)
55
+ Puppet[:server_datadir] = tmpdir('jsondir')
56
+ FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
57
+ end
58
+
59
+ let :file do subject.path(request.key) end
60
+
61
+ def with_content(text)
62
+ FileUtils.mkdir_p(File.dirname(file))
63
+ File.open(file, 'w') {|f| f.puts text }
64
+ yield if block_given?
65
+ end
66
+
67
+ it "data saves and then loads again correctly" do
68
+ subject.save(indirection.request(:save, 'example', model.new('banana')))
69
+ subject.find(indirection.request(:find, 'example', nil)).value.should == 'banana'
70
+ end
71
+
72
+ context "#find" do
73
+ let :request do indirection.request(:find, 'example', nil) end
74
+
75
+ it "returns nil if the file doesn't exist" do
76
+ subject.find(request).should be_nil
77
+ end
78
+
79
+ it "raises a descriptive error when the file can't be read" do
80
+ with_content(model.new('foo').to_pson) do
81
+ # I don't like this, but there isn't a credible alternative that
82
+ # also works on Windows, so a stub it is. At least the expectation
83
+ # will fail if the implementation changes. Sorry to the next dev.
84
+ File.expects(:read).with(file).raises(Errno::EPERM)
85
+ expect { subject.find(request) }.
86
+ to raise_error Puppet::Error, /Could not read JSON/
87
+ end
88
+ end
89
+
90
+ it "raises a descriptive error when the file content is invalid" do
91
+ with_content("this is totally invalid JSON") do
92
+ expect { subject.find(request) }.
93
+ to raise_error Puppet::Error, /Could not parse JSON data/
94
+ end
95
+ end
96
+
97
+ it "should return an instance of the indirected object when valid" do
98
+ with_content(model.new(1).to_pson) do
99
+ instance = subject.find(request)
100
+ instance.should be_an_instance_of model
101
+ instance.value.should == 1
102
+ end
103
+ end
104
+ end
105
+
106
+ context "#save" do
107
+ let :instance do model.new(4) end
108
+ let :request do indirection.request(:find, 'example', instance) end
109
+
110
+ it "should save the instance of the request as JSON to disk" do
111
+ subject.save(request)
112
+ content = File.read(file)
113
+ content.should =~ /"document_type"\s*:\s*"IndirectorTesting"/
114
+ content.should =~ /"value"\s*:\s*4/
115
+ end
116
+
117
+ it "should create the indirection directory if required" do
118
+ target = File.join(Puppet[:server_datadir], 'indirector_testing')
119
+ Dir.rmdir(target)
120
+
121
+ subject.save(request)
122
+
123
+ File.should be_directory target
124
+ end
125
+ end
126
+
127
+ context "#destroy" do
128
+ let :request do indirection.request(:find, 'example', nil) end
129
+
130
+ it "removes an existing file" do
131
+ with_content('hello') do
132
+ subject.destroy(request)
133
+ end
134
+ File.should_not be_exist file
135
+ end
136
+
137
+ it "silently succeeds when files don't exist" do
138
+ File.unlink(file) rescue nil
139
+ subject.destroy(request).should be_true
140
+ end
141
+
142
+ it "raises an informative error for other failures" do
143
+ File.stubs(:unlink).with(file).raises(Errno::EPERM, 'fake permission problem')
144
+ with_content('hello') do
145
+ expect { subject.destroy(request) }.to raise_error Puppet::Error
146
+ end
147
+ File.unstub(:unlink) # thanks, mocha
148
+ end
149
+ end
150
+ end
151
+
152
+ context "#search" do
153
+ before :each do
154
+ Puppet.run_mode.stubs(:master?).returns(true)
155
+ Puppet[:server_datadir] = tmpdir('jsondir')
156
+ FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
157
+ end
158
+
159
+ def request(glob)
160
+ indirection.request(:search, glob, nil)
161
+ end
162
+
163
+ def create_file(name, value = 12)
164
+ File.open(subject.path(name, ''), 'w') do |f|
165
+ f.puts Puppet::IndirectorTesting.new(value).to_pson
166
+ end
167
+ end
168
+
169
+ it "returns an empty array when nothing matches the key as a glob" do
170
+ subject.search(request('*')).should == []
171
+ end
172
+
173
+ it "returns an array with one item if one item matches" do
174
+ create_file('foo.json', 'foo')
175
+ create_file('bar.json', 'bar')
176
+ subject.search(request('f*')).map(&:value).should == ['foo']
177
+ end
178
+
179
+ it "returns an array of items when more than one item matches" do
180
+ create_file('foo.json', 'foo')
181
+ create_file('bar.json', 'bar')
182
+ create_file('baz.json', 'baz')
183
+ subject.search(request('b*')).map(&:value).should =~ ['bar', 'baz']
184
+ end
185
+
186
+ it "only items with the .json extension" do
187
+ create_file('foo.json', 'foo-json')
188
+ create_file('foo.pson', 'foo-pson')
189
+ create_file('foo.json~', 'foo-backup')
190
+ subject.search(request('f*')).map(&:value).should == ['foo-json']
191
+ end
192
+ end
193
+ end
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/indirector/key/ca'
@@ -9,16 +9,15 @@ describe Puppet::SSL::Key::Ca do
9
9
  end
10
10
 
11
11
  it "should use the :privatekeydir as the collection directory" do
12
- Puppet.settings.expects(:value).with(:privatekeydir).returns "/key/dir"
13
- Puppet::SSL::Key::Ca.collection_directory.should == "/key/dir"
12
+ Puppet[:privatekeydir] = "/key/dir"
13
+ Puppet::SSL::Key::Ca.collection_directory.should == Puppet[:privatekeydir]
14
14
  end
15
15
 
16
16
  it "should store the ca key at the :cakey location" do
17
17
  Puppet.settings.stubs(:use)
18
- Puppet.settings.stubs(:value).returns "whatever"
19
- Puppet.settings.stubs(:value).with(:cakey).returns "/ca/key"
18
+ Puppet[:cakey] = "/ca/key"
20
19
  file = Puppet::SSL::Key::Ca.new
21
20
  file.stubs(:ca?).returns true
22
- file.path("whatever").should == "/ca/key"
21
+ file.path("whatever").should == Puppet[:cakey]
23
22
  end
24
23
  end
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/indirector/key/file'
@@ -9,38 +9,36 @@ describe Puppet::SSL::Key::File do
9
9
  end
10
10
 
11
11
  it "should use the :privatekeydir as the collection directory" do
12
- Puppet.settings.expects(:value).with(:privatekeydir).returns "/key/dir"
13
- Puppet::SSL::Key::File.collection_directory.should == "/key/dir"
12
+ Puppet[:privatekeydir] = File.expand_path("/key/dir")
13
+ Puppet::SSL::Key::File.collection_directory.should == Puppet[:privatekeydir]
14
14
  end
15
15
 
16
16
  it "should store the ca key at the :cakey location" do
17
17
  Puppet.settings.stubs(:use)
18
- Puppet.settings.stubs(:value).returns "whatever"
19
- Puppet.settings.stubs(:value).with(:cakey).returns "/ca/key"
18
+ Puppet[:cakey] = File.expand_path("/ca/key")
20
19
  file = Puppet::SSL::Key::File.new
21
20
  file.stubs(:ca?).returns true
22
- file.path("whatever").should == "/ca/key"
21
+ file.path("whatever").should == Puppet[:cakey]
23
22
  end
24
23
 
25
24
  describe "when choosing the path for the public key" do
26
25
  it "should use the :capub setting location if the key is for the certificate authority" do
27
- Puppet.settings.stubs(:value).returns "/fake/dir"
28
- Puppet.settings.stubs(:value).with(:capub).returns "/ca/pubkey"
26
+ Puppet[:capub] = File.expand_path("/ca/pubkey")
29
27
  Puppet.settings.stubs(:use)
30
28
 
31
29
  @searcher = Puppet::SSL::Key::File.new
32
30
  @searcher.stubs(:ca?).returns true
33
- @searcher.public_key_path("whatever").should == "/ca/pubkey"
31
+ @searcher.public_key_path("whatever").should == Puppet[:capub]
34
32
  end
35
33
 
36
34
  it "should use the host name plus '.pem' in :publickeydir for normal hosts" do
37
- Puppet.settings.stubs(:value).with(:privatekeydir).returns "/private/key/dir"
38
- Puppet.settings.stubs(:value).with(:publickeydir).returns "/public/key/dir"
35
+ Puppet[:privatekeydir] = File.expand_path("/private/key/dir")
36
+ Puppet[:publickeydir] = File.expand_path("/public/key/dir")
39
37
  Puppet.settings.stubs(:use)
40
38
 
41
39
  @searcher = Puppet::SSL::Key::File.new
42
40
  @searcher.stubs(:ca?).returns false
43
- @searcher.public_key_path("whatever").should == "/public/key/dir/whatever.pem"
41
+ @searcher.public_key_path("whatever").should == File.expand_path("/public/key/dir/whatever.pem")
44
42
  end
45
43
  end
46
44
 
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/indirector/ldap'
@@ -49,7 +49,7 @@ describe Puppet::Indirector::Ldap do
49
49
  end
50
50
 
51
51
  it "should default to the value of the :search_base setting as the result of the ldapbase method" do
52
- Puppet.expects(:[]).with(:ldapbase).returns("myldapbase")
52
+ Puppet[:ldapbase] = "myldapbase"
53
53
  searcher = @ldap_class.new
54
54
  searcher.search_base.should == "myldapbase"
55
55
  end
@@ -108,7 +108,7 @@ describe Puppet::Indirector::Ldap do
108
108
  end
109
109
  end
110
110
 
111
- describe "when connecting to ldap", :if => Puppet.features.ldap?, :'fails_on_ruby_1.9.2' => true do
111
+ describe "when connecting to ldap", :if => Puppet.features.ldap? do
112
112
  it "should create and start a Util::Ldap::Connection instance" do
113
113
  conn = mock 'connection', :connection => "myconn", :start => nil
114
114
  Puppet::Util::Ldap::Connection.expects(:instance).returns conn
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
  require 'puppet/indirector/memory'
4
4
 
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/node'
@@ -6,6 +6,13 @@ require 'puppet/node'
6
6
  describe "Puppet::Node::ActiveRecord", :if => Puppet.features.rails? && Puppet.features.sqlite? do
7
7
  include PuppetSpec::Files
8
8
 
9
+ let(:nodename) { "mynode" }
10
+ let(:fact_values) { {:afact => "a value"} }
11
+ let(:facts) { Puppet::Node::Facts.new(nodename, fact_values) }
12
+ let(:environment) { Puppet::Node::Environment.new("myenv") }
13
+ let(:request) { Puppet::Indirector::Request.new(:node, :find, nodename, nil, :environment => environment) }
14
+ let(:node_indirection) { Puppet::Node::ActiveRecord.new }
15
+
9
16
  before do
10
17
  require 'puppet/indirector/node/active_record'
11
18
  end
@@ -22,16 +29,13 @@ describe "Puppet::Node::ActiveRecord", :if => Puppet.features.rails? && Puppet.f
22
29
  db_instance = stub 'db_instance'
23
30
  Puppet::Node::ActiveRecord.ar_model.expects(:find_by_name).returns db_instance
24
31
 
25
- node = Puppet::Node.new("foo")
32
+ node = Puppet::Node.new(nodename)
26
33
  db_instance.expects(:to_puppet).returns node
27
34
 
28
35
  Puppet[:statedir] = tmpdir('active_record_tmp')
29
36
  Puppet[:railslog] = '$statedir/rails.log'
30
- ar = Puppet::Node::ActiveRecord.new
31
-
32
- node.expects(:fact_merge)
37
+ Puppet::Node::Facts.indirection.expects(:find).with(nodename, :environment => environment).returns(facts)
33
38
 
34
- request = Puppet::Indirector::Request.new(:node, :find, "what.ever")
35
- ar.find(request)
39
+ node_indirection.find(request).parameters.should include(fact_values)
36
40
  end
37
41
  end
@@ -1,23 +1,24 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/indirector/node/exec'
5
+ require 'puppet/indirector/request'
5
6
 
6
7
  describe Puppet::Node::Exec do
7
8
  before do
8
9
  @indirection = mock 'indirection'
9
- Puppet.settings.stubs(:value).with(:external_nodes).returns(File.expand_path("/echo"))
10
+ Puppet.settings[:external_nodes] = File.expand_path("/echo")
10
11
  @searcher = Puppet::Node::Exec.new
11
12
  end
12
13
 
13
14
  describe "when constructing the command to run" do
14
15
  it "should use the external_node script as the command" do
15
- Puppet.expects(:[]).with(:external_nodes).returns("/bin/echo")
16
+ Puppet[:external_nodes] = "/bin/echo"
16
17
  @searcher.command.should == %w{/bin/echo}
17
18
  end
18
19
 
19
20
  it "should throw an exception if no external node command is set" do
20
- Puppet.expects(:[]).with(:external_nodes).returns("none")
21
+ Puppet[:external_nodes] = "none"
21
22
  proc { @searcher.find(stub('request', :key => "foo")) }.should raise_error(ArgumentError)
22
23
  end
23
24
  end
@@ -35,7 +36,7 @@ describe Puppet::Node::Exec do
35
36
  return YAML.dump(result)
36
37
  end
37
38
 
38
- @request = stub 'request', :key => @name
39
+ @request = Puppet::Indirector::Request.new(:node, :find, @name, nil)
39
40
  end
40
41
 
41
42
  it "should translate the YAML into a Node instance" do
@@ -65,5 +66,11 @@ describe Puppet::Node::Exec do
65
66
  @searcher.find(@request)
66
67
  @node.environment.to_s.should == 'yay'
67
68
  end
69
+
70
+ it "should set the node's environment based on the request if not otherwise provided" do
71
+ @request.environment = "boo"
72
+ @searcher.find(@request)
73
+ @node.environment.to_s.should == 'boo'
74
+ end
68
75
  end
69
76
  end
@@ -1,76 +1,76 @@
1
- #!/usr/bin/env rspec
1
+ #! /usr/bin/env ruby -S rspec
2
2
  require 'spec_helper'
3
3
 
4
4
  require 'puppet/indirector/node/ldap'
5
5
 
6
6
  describe Puppet::Node::Ldap do
7
- describe "when searching for a single node" do
8
- before :each do
9
- @searcher = Puppet::Node::Ldap.new
10
-
11
- @name = "mynode.domain.com"
12
- @node = stub 'node', :name => @name, :name= => nil
13
- @node.stub_everything
7
+ let(:nodename) { "mynode.domain.com" }
8
+ let(:node_indirection) { Puppet::Node::Ldap.new }
9
+ let(:environment) { Puppet::Node::Environment.new("myenv") }
10
+ let(:fact_values) { {:afact => "a value", "one" => "boo"} }
11
+ let(:facts) { Puppet::Node::Facts.new(nodename, fact_values) }
14
12
 
15
- Puppet::Node.stubs(:new).returns(@node)
13
+ before do
14
+ Puppet::Node::Facts.indirection.stubs(:find).with(nodename, :environment => environment).returns(facts)
15
+ end
16
16
 
17
- @request = stub 'request', :key => @name
18
- end
17
+ describe "when searching for a single node" do
18
+ let(:request) { Puppet::Indirector::Request.new(:node, :find, nodename, nil, :environment => environment) }
19
19
 
20
20
  it "should convert the hostname into a search filter" do
21
21
  entry = stub 'entry', :dn => 'cn=mynode.domain.com,ou=hosts,dc=madstop,dc=com', :vals => %w{}, :to_hash => {}
22
- @searcher.expects(:ldapsearch).with("(&(objectclass=puppetClient)(cn=#{@name}))").yields entry
23
- @searcher.name2hash(@name)
22
+ node_indirection.expects(:ldapsearch).with("(&(objectclass=puppetClient)(cn=#{nodename}))").yields entry
23
+ node_indirection.name2hash(nodename)
24
24
  end
25
25
 
26
26
  it "should convert any found entry into a hash" do
27
27
  entry = stub 'entry', :dn => 'cn=mynode.domain.com,ou=hosts,dc=madstop,dc=com', :vals => %w{}, :to_hash => {}
28
- @searcher.expects(:ldapsearch).with("(&(objectclass=puppetClient)(cn=#{@name}))").yields entry
28
+ node_indirection.expects(:ldapsearch).with("(&(objectclass=puppetClient)(cn=#{nodename}))").yields entry
29
29
  myhash = {"myhash" => true}
30
- @searcher.expects(:entry2hash).with(entry).returns myhash
31
- @searcher.name2hash(@name).should == myhash
30
+ node_indirection.expects(:entry2hash).with(entry).returns myhash
31
+ node_indirection.name2hash(nodename).should == myhash
32
32
  end
33
33
 
34
34
  # This heavily tests our entry2hash method, so we don't have to stub out the stupid entry information any more.
35
35
  describe "when an ldap entry is found" do
36
36
  before do
37
37
  @entry = stub 'entry', :dn => 'cn=mynode,ou=hosts,dc=madstop,dc=com', :vals => %w{}, :to_hash => {}
38
- @searcher.stubs(:ldapsearch).yields @entry
38
+ node_indirection.stubs(:ldapsearch).yields @entry
39
39
  end
40
40
 
41
41
  it "should convert the entry to a hash" do
42
- @searcher.entry2hash(@entry).should be_instance_of(Hash)
42
+ node_indirection.entry2hash(@entry).should be_instance_of(Hash)
43
43
  end
44
44
 
45
45
  it "should add the entry's common name to the hash if fqdn if false" do
46
- @searcher.entry2hash(@entry,fqdn = false)[:name].should == "mynode"
46
+ node_indirection.entry2hash(@entry,fqdn = false)[:name].should == "mynode"
47
47
  end
48
48
 
49
49
  it "should add the entry's fqdn name to the hash if fqdn if true" do
50
- @searcher.entry2hash(@entry,fqdn = true)[:name].should == "mynode.madstop.com"
50
+ node_indirection.entry2hash(@entry,fqdn = true)[:name].should == "mynode.madstop.com"
51
51
  end
52
52
 
53
53
  it "should add all of the entry's classes to the hash" do
54
54
  @entry.stubs(:vals).with("puppetclass").returns %w{one two}
55
- @searcher.entry2hash(@entry)[:classes].should == %w{one two}
55
+ node_indirection.entry2hash(@entry)[:classes].should == %w{one two}
56
56
  end
57
57
 
58
58
  it "should deduplicate class values" do
59
59
  @entry.stubs(:to_hash).returns({})
60
- @searcher.stubs(:class_attributes).returns(%w{one two})
60
+ node_indirection.stubs(:class_attributes).returns(%w{one two})
61
61
  @entry.stubs(:vals).with("one").returns(%w{a b})
62
62
  @entry.stubs(:vals).with("two").returns(%w{b c})
63
- @searcher.entry2hash(@entry)[:classes].should == %w{a b c}
63
+ node_indirection.entry2hash(@entry)[:classes].should == %w{a b c}
64
64
  end
65
65
 
66
66
  it "should add the entry's environment to the hash" do
67
67
  @entry.stubs(:to_hash).returns("environment" => %w{production})
68
- @searcher.entry2hash(@entry)[:environment].should == "production"
68
+ node_indirection.entry2hash(@entry)[:environment].should == "production"
69
69
  end
70
70
 
71
71
  it "should add all stacked parameters as parameters in the hash" do
72
72
  @entry.stubs(:vals).with("puppetvar").returns(%w{one=two three=four})
73
- result = @searcher.entry2hash(@entry)
73
+ result = node_indirection.entry2hash(@entry)
74
74
  result[:parameters]["one"].should == "two"
75
75
  result[:parameters]["three"].should == "four"
76
76
  end
@@ -78,128 +78,125 @@ describe Puppet::Node::Ldap do
78
78
  it "should not add the stacked parameter as a normal parameter" do
79
79
  @entry.stubs(:vals).with("puppetvar").returns(%w{one=two three=four})
80
80
  @entry.stubs(:to_hash).returns("puppetvar" => %w{one=two three=four})
81
- @searcher.entry2hash(@entry)[:parameters]["puppetvar"].should be_nil
81
+ node_indirection.entry2hash(@entry)[:parameters]["puppetvar"].should be_nil
82
82
  end
83
83
 
84
84
  it "should add all other attributes as parameters in the hash" do
85
85
  @entry.stubs(:to_hash).returns("foo" => %w{one two})
86
- @searcher.entry2hash(@entry)[:parameters]["foo"].should == %w{one two}
86
+ node_indirection.entry2hash(@entry)[:parameters]["foo"].should == %w{one two}
87
87
  end
88
88
 
89
89
  it "should return single-value parameters as strings, not arrays" do
90
90
  @entry.stubs(:to_hash).returns("foo" => %w{one})
91
- @searcher.entry2hash(@entry)[:parameters]["foo"].should == "one"
91
+ node_indirection.entry2hash(@entry)[:parameters]["foo"].should == "one"
92
92
  end
93
93
 
94
94
  it "should convert 'true' values to the boolean 'true'" do
95
95
  @entry.stubs(:to_hash).returns({"one" => ["true"]})
96
- @searcher.entry2hash(@entry)[:parameters]["one"].should == true
96
+ node_indirection.entry2hash(@entry)[:parameters]["one"].should == true
97
97
  end
98
98
 
99
99
  it "should convert 'false' values to the boolean 'false'" do
100
100
  @entry.stubs(:to_hash).returns({"one" => ["false"]})
101
- @searcher.entry2hash(@entry)[:parameters]["one"].should == false
101
+ node_indirection.entry2hash(@entry)[:parameters]["one"].should == false
102
102
  end
103
103
 
104
104
  it "should convert 'true' values to the boolean 'true' inside an array" do
105
105
  @entry.stubs(:to_hash).returns({"one" => ["true", "other"]})
106
- @searcher.entry2hash(@entry)[:parameters]["one"].should == [true, "other"]
106
+ node_indirection.entry2hash(@entry)[:parameters]["one"].should == [true, "other"]
107
107
  end
108
108
 
109
109
  it "should convert 'false' values to the boolean 'false' inside an array" do
110
110
  @entry.stubs(:to_hash).returns({"one" => ["false", "other"]})
111
- @searcher.entry2hash(@entry)[:parameters]["one"].should == [false, "other"]
111
+ node_indirection.entry2hash(@entry)[:parameters]["one"].should == [false, "other"]
112
112
  end
113
113
 
114
114
  it "should add the parent's name if present" do
115
115
  @entry.stubs(:vals).with("parentnode").returns(%w{foo})
116
- @searcher.entry2hash(@entry)[:parent].should == "foo"
116
+ node_indirection.entry2hash(@entry)[:parent].should == "foo"
117
117
  end
118
118
 
119
119
  it "should fail if more than one parent is specified" do
120
120
  @entry.stubs(:vals).with("parentnode").returns(%w{foo})
121
- @searcher.entry2hash(@entry)[:parent].should == "foo"
121
+ node_indirection.entry2hash(@entry)[:parent].should == "foo"
122
122
  end
123
123
  end
124
124
 
125
125
  it "should search first for the provided key" do
126
- @searcher.expects(:name2hash).with("mynode.domain.com").returns({})
127
- @searcher.find(@request)
126
+ node_indirection.expects(:name2hash).with("mynode.domain.com").returns({})
127
+ node_indirection.find(request)
128
128
  end
129
129
 
130
130
  it "should search for the short version of the provided key if the key looks like a hostname and no results are found for the key itself" do
131
- @searcher.expects(:name2hash).with("mynode.domain.com").returns(nil)
132
- @searcher.expects(:name2hash).with("mynode").returns({})
133
- @searcher.find(@request)
131
+ node_indirection.expects(:name2hash).with("mynode.domain.com").returns(nil)
132
+ node_indirection.expects(:name2hash).with("mynode").returns({})
133
+ node_indirection.find(request)
134
134
  end
135
135
 
136
136
  it "should search for default information if no information can be found for the key" do
137
- @searcher.expects(:name2hash).with("mynode.domain.com").returns(nil)
138
- @searcher.expects(:name2hash).with("mynode").returns(nil)
139
- @searcher.expects(:name2hash).with("default").returns({})
140
- @searcher.find(@request)
137
+ node_indirection.expects(:name2hash).with("mynode.domain.com").returns(nil)
138
+ node_indirection.expects(:name2hash).with("mynode").returns(nil)
139
+ node_indirection.expects(:name2hash).with("default").returns({})
140
+ node_indirection.find(request)
141
141
  end
142
142
 
143
143
  it "should return nil if no results are found in ldap" do
144
- @searcher.stubs(:name2hash).returns nil
145
- @searcher.find(@request).should be_nil
144
+ node_indirection.stubs(:name2hash).returns nil
145
+ node_indirection.find(request).should be_nil
146
146
  end
147
147
 
148
148
  it "should return a node object if results are found in ldap" do
149
- @searcher.stubs(:name2hash).returns({})
150
- @searcher.find(@request).should equal(@node)
149
+ node_indirection.stubs(:name2hash).returns({})
150
+ node_indirection.find(request).should be
151
151
  end
152
152
 
153
153
  describe "and node information is found in LDAP" do
154
154
  before do
155
155
  @result = {}
156
- @searcher.stubs(:name2hash).returns @result
156
+ node_indirection.stubs(:name2hash).returns @result
157
157
  end
158
158
 
159
159
  it "should create the node with the correct name, even if it was found by a different name" do
160
- @searcher.expects(:name2hash).with("mynode.domain.com").returns nil
161
- @searcher.expects(:name2hash).with("mynode").returns @result
160
+ node_indirection.expects(:name2hash).with(nodename).returns nil
161
+ node_indirection.expects(:name2hash).with("mynode").returns @result
162
162
 
163
- Puppet::Node.expects(:new).with("mynode.domain.com").returns @node
164
- @searcher.find(@request)
163
+ node_indirection.find(request).name.should == nodename
165
164
  end
166
165
 
167
166
  it "should add any classes from ldap" do
168
- @result[:classes] = %w{a b c d}
169
- @node.expects(:classes=).with(%w{a b c d})
170
- @searcher.find(@request)
167
+ classes = %w{a b c d}
168
+ @result[:classes] = classes
169
+ node_indirection.find(request).classes.should == classes
171
170
  end
172
171
 
173
172
  it "should add all entry attributes as node parameters" do
174
- @result[:parameters] = {"one" => "two", "three" => "four"}
175
- @node.expects(:parameters=).with("one" => "two", "three" => "four")
176
- @searcher.find(@request)
173
+ params = {"one" => "two", "three" => "four"}
174
+ @result[:parameters] = params
175
+ node_indirection.find(request).parameters.should include(params)
177
176
  end
178
177
 
179
178
  it "should set the node's environment to the environment of the results" do
180
- @result[:environment] = "test"
181
- @node.expects(:environment=).with("test")
182
- @searcher.find(@request)
179
+ result_env = Puppet::Node::Environment.new("local_test")
180
+ Puppet::Node::Facts.indirection.stubs(:find).with(nodename, :environment => result_env).returns(facts)
181
+ @result[:environment] = "local_test"
182
+ node_indirection.find(request).environment.should == result_env
183
183
  end
184
184
 
185
185
  it "should retain false parameter values" do
186
186
  @result[:parameters] = {}
187
187
  @result[:parameters]["one"] = false
188
- @node.expects(:parameters=).with("one" => false)
189
- @searcher.find(@request)
188
+ node_indirection.find(request).parameters.should include({"one" => false})
190
189
  end
191
190
 
192
191
  it "should merge the node's facts after the parameters from ldap are assigned" do
193
192
  # Make sure we've got data to start with, so the parameters are actually set.
194
- @result[:parameters] = {}
195
- @result[:parameters]["one"] = "yay"
193
+ params = {"one" => "yay", "two" => "hooray"}
194
+ @result[:parameters] = params
196
195
 
197
- # A hackish way to enforce order.
198
- set = false
199
- @node.expects(:parameters=).with { |*args| set = true }
200
- @node.expects(:fact_merge).with { |*args| raise "Facts were merged before parameters were set" unless set; true }
201
-
202
- @searcher.find(@request)
196
+ # Node implements its own merge so that an existing param takes
197
+ # precedence over facts. We get the same result here by merging params
198
+ # into facts
199
+ node_indirection.find(request).parameters.should == facts.values.merge(params)
203
200
  end
204
201
 
205
202
  describe "and a parent node is specified" do
@@ -208,27 +205,27 @@ describe Puppet::Node::Ldap do
208
205
  @parent = {:classes => [], :parameters => {}}
209
206
  @parent_parent = {:classes => [], :parameters => {}}
210
207
 
211
- @searcher.stubs(:name2hash).with(@name).returns(@entry)
212
- @searcher.stubs(:name2hash).with('parent').returns(@parent)
213
- @searcher.stubs(:name2hash).with('parent_parent').returns(@parent_parent)
208
+ node_indirection.stubs(:name2hash).with(nodename).returns(@entry)
209
+ node_indirection.stubs(:name2hash).with('parent').returns(@parent)
210
+ node_indirection.stubs(:name2hash).with('parent_parent').returns(@parent_parent)
214
211
 
215
- @searcher.stubs(:parent_attribute).returns(:parent)
212
+ node_indirection.stubs(:parent_attribute).returns(:parent)
216
213
  end
217
214
 
218
215
  it "should search for the parent node" do
219
216
  @entry[:parent] = "parent"
220
- @searcher.expects(:name2hash).with(@name).returns @entry
221
- @searcher.expects(:name2hash).with('parent').returns @parent
217
+ node_indirection.expects(:name2hash).with(nodename).returns @entry
218
+ node_indirection.expects(:name2hash).with('parent').returns @parent
222
219
 
223
- @searcher.find(@request)
220
+ node_indirection.find(request)
224
221
  end
225
222
 
226
223
  it "should fail if the parent cannot be found" do
227
224
  @entry[:parent] = "parent"
228
225
 
229
- @searcher.expects(:name2hash).with('parent').returns nil
226
+ node_indirection.expects(:name2hash).with('parent').returns nil
230
227
 
231
- proc { @searcher.find(@request) }.should raise_error(Puppet::Error)
228
+ proc { node_indirection.find(request) }.should raise_error(Puppet::Error, /Could not find parent node/)
232
229
  end
233
230
 
234
231
  it "should add any parent classes to the node's classes" do
@@ -237,8 +234,7 @@ describe Puppet::Node::Ldap do
237
234
 
238
235
  @parent[:classes] = %w{c d}
239
236
 
240
- @node.expects(:classes=).with(%w{a b c d})
241
- @searcher.find(@request)
237
+ node_indirection.find(request).classes.should == %w{a b c d}
242
238
  end
243
239
 
244
240
  it "should add any parent parameters to the node's parameters" do
@@ -247,8 +243,7 @@ describe Puppet::Node::Ldap do
247
243
 
248
244
  @parent[:parameters]["three"] = "four"
249
245
 
250
- @node.expects(:parameters=).with("one" => "two", "three" => "four")
251
- @searcher.find(@request)
246
+ node_indirection.find(request).parameters.should include({"one" => "two", "three" => "four"})
252
247
  end
253
248
 
254
249
  it "should prefer node parameters over parent parameters" do
@@ -257,29 +252,29 @@ describe Puppet::Node::Ldap do
257
252
 
258
253
  @parent[:parameters]["one"] = "three"
259
254
 
260
- @node.expects(:parameters=).with("one" => "two")
261
- @searcher.find(@request)
255
+ node_indirection.find(request).parameters.should include({"one" => "two"})
262
256
  end
263
257
 
264
258
  it "should use the parent's environment if the node has none" do
259
+ env = Puppet::Node::Environment.new("parent")
265
260
  @entry[:parent] = "parent"
266
261
 
267
262
  @parent[:environment] = "parent"
268
263
 
269
- @node.stubs(:parameters=)
270
- @node.expects(:environment=).with("parent")
271
- @searcher.find(@request)
264
+ Puppet::Node::Facts.indirection.stubs(:find).with(nodename, :environment => env).returns(facts)
265
+ node_indirection.find(request).environment.should == env
272
266
  end
273
267
 
274
268
  it "should prefer the node's environment to the parent's" do
269
+ child_env = Puppet::Node::Environment.new("child")
275
270
  @entry[:parent] = "parent"
276
271
  @entry[:environment] = "child"
277
272
 
278
273
  @parent[:environment] = "parent"
279
274
 
280
- @node.stubs(:parameters=)
281
- @node.expects(:environment=).with("child")
282
- @searcher.find(@request)
275
+ Puppet::Node::Facts.indirection.stubs(:find).with(nodename, :environment => child_env).returns(facts)
276
+
277
+ node_indirection.find(request).environment.should == child_env
283
278
  end
284
279
 
285
280
  it "should recursively look up parent information" do
@@ -291,163 +286,147 @@ describe Puppet::Node::Ldap do
291
286
 
292
287
  @parent_parent[:parameters]["five"] = "six"
293
288
 
294
- @node.expects(:parameters=).with("one" => "two", "three" => "four", "five" => "six")
295
- @searcher.find(@request)
289
+ node_indirection.find(request).parameters.should include("one" => "two", "three" => "four", "five" => "six")
296
290
  end
297
291
 
298
292
  it "should not allow loops in parent declarations" do
299
293
  @entry[:parent] = "parent"
300
- @parent[:parent] = @name
301
- proc { @searcher.find(@request) }.should raise_error(ArgumentError)
294
+ @parent[:parent] = nodename
295
+ proc { node_indirection.find(request) }.should raise_error(ArgumentError)
302
296
  end
303
297
  end
304
298
  end
305
299
  end
306
300
 
307
301
  describe "when searching for multiple nodes" do
308
- before :each do
309
- @searcher = Puppet::Node::Ldap.new
310
- @options = {}
311
- @request = stub 'request', :key => "foo", :options => @options
302
+ let(:options) { {:environment => environment} }
303
+ let(:request) { Puppet::Indirector::Request.new(:node, :find, nodename, nil, options) }
312
304
 
305
+ before :each do
313
306
  Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :yaml
314
307
  end
315
308
 
316
309
  it "should find all nodes if no arguments are provided" do
317
- @searcher.expects(:ldapsearch).with("(objectclass=puppetClient)")
310
+ node_indirection.expects(:ldapsearch).with("(objectclass=puppetClient)")
318
311
  # LAK:NOTE The search method requires an essentially bogus key. It's
319
312
  # an API problem that I don't really know how to fix.
320
- @searcher.search @request
313
+ node_indirection.search request
321
314
  end
322
315
 
323
316
  describe "and a class is specified" do
324
317
  it "should find all nodes that are members of that class" do
325
- @searcher.expects(:ldapsearch).with("(&(objectclass=puppetClient)(puppetclass=one))")
318
+ node_indirection.expects(:ldapsearch).with("(&(objectclass=puppetClient)(puppetclass=one))")
326
319
 
327
- @options[:class] = "one"
328
- @searcher.search @request
320
+ options[:class] = "one"
321
+ node_indirection.search request
329
322
  end
330
323
  end
331
324
 
332
325
  describe "multiple classes are specified" do
333
326
  it "should find all nodes that are members of all classes" do
334
- @searcher.expects(:ldapsearch).with("(&(objectclass=puppetClient)(puppetclass=one)(puppetclass=two))")
335
- @options[:class] = %w{one two}
336
- @searcher.search @request
327
+ node_indirection.expects(:ldapsearch).with("(&(objectclass=puppetClient)(puppetclass=one)(puppetclass=two))")
328
+ options[:class] = %w{one two}
329
+ node_indirection.search request
337
330
  end
338
331
  end
339
332
 
340
333
  it "should process each found entry" do
341
334
  # .yields can't be used to yield multiple values :/
342
- @searcher.expects(:ldapsearch).yields("one")
343
- @searcher.expects(:entry2hash).with("one",nil).returns(:name => "foo")
344
- @searcher.search @request
335
+ node_indirection.expects(:ldapsearch).yields("one")
336
+ node_indirection.expects(:entry2hash).with("one",nil).returns(:name => nodename)
337
+ node_indirection.search request
345
338
  end
346
339
 
347
340
  it "should return a node for each processed entry with the name from the entry" do
348
- @searcher.expects(:ldapsearch).yields("whatever")
349
- @searcher.expects(:entry2hash).with("whatever",nil).returns(:name => "foo")
350
- result = @searcher.search(@request)
341
+ node_indirection.expects(:ldapsearch).yields("whatever")
342
+ node_indirection.expects(:entry2hash).with("whatever",nil).returns(:name => nodename)
343
+ result = node_indirection.search(request)
351
344
  result[0].should be_instance_of(Puppet::Node)
352
- result[0].name.should == "foo"
345
+ result[0].name.should == nodename
353
346
  end
354
347
 
355
348
  it "should merge each node's facts" do
356
- node = mock 'node'
357
- Puppet::Node.expects(:new).with("foo").returns node
358
- node.expects(:fact_merge)
359
- @searcher.stubs(:ldapsearch).yields("one")
360
- @searcher.stubs(:entry2hash).with("one",nil).returns(:name => "foo")
361
- @searcher.search(@request)
349
+ node_indirection.stubs(:ldapsearch).yields("one")
350
+ node_indirection.stubs(:entry2hash).with("one",nil).returns(:name => nodename)
351
+ node_indirection.search(request)[0].parameters.should include(fact_values)
362
352
  end
363
353
 
364
354
  it "should pass the request's fqdn option to entry2hash" do
365
- node = mock 'node'
366
- @options[:fqdn] = :hello
367
- Puppet::Node.stubs(:new).with("foo").returns node
368
- node.stubs(:fact_merge)
369
- @searcher.stubs(:ldapsearch).yields("one")
370
- @searcher.expects(:entry2hash).with("one",:hello).returns(:name => "foo")
371
- @searcher.search(@request)
355
+ options[:fqdn] = :hello
356
+ node_indirection.stubs(:ldapsearch).yields("one")
357
+ node_indirection.expects(:entry2hash).with("one",:hello).returns(:name => nodename)
358
+ node_indirection.search(request)
372
359
  end
373
360
  end
374
- end
375
-
376
- describe Puppet::Node::Ldap, " when developing the search query" do
377
- before do
378
- @searcher = Puppet::Node::Ldap.new
379
- end
380
-
381
- it "should return the value of the :ldapclassattrs split on commas as the class attributes" do
382
- Puppet.stubs(:[]).with(:ldapclassattrs).returns("one,two")
383
- @searcher.class_attributes.should == %w{one two}
384
- end
385
361
 
386
- it "should return nil as the parent attribute if the :ldapparentattr is set to an empty string" do
387
- Puppet.stubs(:[]).with(:ldapparentattr).returns("")
388
- @searcher.parent_attribute.should be_nil
389
- end
362
+ describe Puppet::Node::Ldap, " when developing the search query" do
363
+ it "should return the value of the :ldapclassattrs split on commas as the class attributes" do
364
+ Puppet[:ldapclassattrs] = "one,two"
365
+ node_indirection.class_attributes.should == %w{one two}
366
+ end
390
367
 
391
- it "should return the value of the :ldapparentattr as the parent attribute" do
392
- Puppet.stubs(:[]).with(:ldapparentattr).returns("pere")
393
- @searcher.parent_attribute.should == "pere"
394
- end
368
+ it "should return nil as the parent attribute if the :ldapparentattr is set to an empty string" do
369
+ Puppet[:ldapparentattr] = ""
370
+ node_indirection.parent_attribute.should be_nil
371
+ end
395
372
 
396
- it "should use the value of the :ldapstring as the search filter" do
397
- Puppet.stubs(:[]).with(:ldapstring).returns("mystring")
398
- @searcher.search_filter("testing").should == "mystring"
399
- end
373
+ it "should return the value of the :ldapparentattr as the parent attribute" do
374
+ Puppet[:ldapparentattr] = "pere"
375
+ node_indirection.parent_attribute.should == "pere"
376
+ end
400
377
 
401
- it "should replace '%s' with the node name in the search filter if it is present" do
402
- Puppet.stubs(:[]).with(:ldapstring).returns("my%sstring")
403
- @searcher.search_filter("testing").should == "mytestingstring"
404
- end
378
+ it "should use the value of the :ldapstring as the search filter" do
379
+ Puppet[:ldapstring] = "mystring"
380
+ node_indirection.search_filter("testing").should == "mystring"
381
+ end
405
382
 
406
- it "should not modify the global :ldapstring when replacing '%s' in the search filter" do
407
- filter = mock 'filter'
408
- filter.expects(:include?).with("%s").returns(true)
409
- filter.expects(:gsub).with("%s", "testing").returns("mynewstring")
410
- Puppet.stubs(:[]).with(:ldapstring).returns(filter)
411
- @searcher.search_filter("testing").should == "mynewstring"
412
- end
413
- end
383
+ it "should replace '%s' with the node name in the search filter if it is present" do
384
+ Puppet[:ldapstring] = "my%sstring"
385
+ node_indirection.search_filter("testing").should == "mytestingstring"
386
+ end
414
387
 
415
- describe Puppet::Node::Ldap, " when deciding attributes to search for" do
416
- before do
417
- @searcher = Puppet::Node::Ldap.new
388
+ it "should not modify the global :ldapstring when replacing '%s' in the search filter" do
389
+ filter = mock 'filter'
390
+ filter.expects(:include?).with("%s").returns(true)
391
+ filter.expects(:gsub).with("%s", "testing").returns("mynewstring")
392
+ Puppet[:ldapstring] = filter
393
+ node_indirection.search_filter("testing").should == "mynewstring"
394
+ end
418
395
  end
419
396
 
420
- it "should use 'nil' if the :ldapattrs setting is 'all'" do
421
- Puppet.stubs(:[]).with(:ldapattrs).returns("all")
422
- @searcher.search_attributes.should be_nil
423
- end
397
+ describe Puppet::Node::Ldap, " when deciding attributes to search for" do
398
+ it "should use 'nil' if the :ldapattrs setting is 'all'" do
399
+ Puppet[:ldapattrs] = "all"
400
+ node_indirection.search_attributes.should be_nil
401
+ end
424
402
 
425
- it "should split the value of :ldapattrs on commas and use the result as the attribute list" do
426
- Puppet.stubs(:[]).with(:ldapattrs).returns("one,two")
427
- @searcher.stubs(:class_attributes).returns([])
428
- @searcher.stubs(:parent_attribute).returns(nil)
429
- @searcher.search_attributes.should == %w{one two}
430
- end
403
+ it "should split the value of :ldapattrs on commas and use the result as the attribute list" do
404
+ Puppet[:ldapattrs] = "one,two"
405
+ node_indirection.stubs(:class_attributes).returns([])
406
+ node_indirection.stubs(:parent_attribute).returns(nil)
407
+ node_indirection.search_attributes.should == %w{one two}
408
+ end
431
409
 
432
- it "should add the class attributes to the search attributes if not returning all attributes" do
433
- Puppet.stubs(:[]).with(:ldapattrs).returns("one,two")
434
- @searcher.stubs(:class_attributes).returns(%w{three four})
435
- @searcher.stubs(:parent_attribute).returns(nil)
436
- # Sort them so i don't have to care about return order
437
- @searcher.search_attributes.sort.should == %w{one two three four}.sort
438
- end
410
+ it "should add the class attributes to the search attributes if not returning all attributes" do
411
+ Puppet[:ldapattrs] = "one,two"
412
+ node_indirection.stubs(:class_attributes).returns(%w{three four})
413
+ node_indirection.stubs(:parent_attribute).returns(nil)
414
+ # Sort them so i don't have to care about return order
415
+ node_indirection.search_attributes.sort.should == %w{one two three four}.sort
416
+ end
439
417
 
440
- it "should add the parent attribute to the search attributes if not returning all attributes" do
441
- Puppet.stubs(:[]).with(:ldapattrs).returns("one,two")
442
- @searcher.stubs(:class_attributes).returns([])
443
- @searcher.stubs(:parent_attribute).returns("parent")
444
- @searcher.search_attributes.sort.should == %w{one two parent}.sort
445
- end
418
+ it "should add the parent attribute to the search attributes if not returning all attributes" do
419
+ Puppet[:ldapattrs] = "one,two"
420
+ node_indirection.stubs(:class_attributes).returns([])
421
+ node_indirection.stubs(:parent_attribute).returns("parent")
422
+ node_indirection.search_attributes.sort.should == %w{one two parent}.sort
423
+ end
446
424
 
447
- it "should not add nil parent attributes to the search attributes" do
448
- Puppet.stubs(:[]).with(:ldapattrs).returns("one,two")
449
- @searcher.stubs(:class_attributes).returns([])
450
- @searcher.stubs(:parent_attribute).returns(nil)
451
- @searcher.search_attributes.should == %w{one two}
425
+ it "should not add nil parent attributes to the search attributes" do
426
+ Puppet[:ldapattrs] = "one,two"
427
+ node_indirection.stubs(:class_attributes).returns([])
428
+ node_indirection.stubs(:parent_attribute).returns(nil)
429
+ node_indirection.search_attributes.should == %w{one two}
430
+ end
452
431
  end
453
432
  end