puppet 3.0.0.rc5 → 3.0.0.rc7

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 (398) hide show
  1. data/LICENSE +1 -1
  2. data/README_DEVELOPER.md +209 -1
  3. data/README_HIERA.md +148 -0
  4. data/Rakefile +25 -27
  5. data/bin/extlookup2hiera +56 -0
  6. data/conf/auth.conf +34 -34
  7. data/examples/hiera/README.md +91 -0
  8. data/examples/hiera/etc/hiera.yaml +15 -0
  9. data/examples/hiera/etc/hieradb/common.yaml +3 -0
  10. data/examples/hiera/etc/hieradb/dc1.yaml +6 -0
  11. data/examples/hiera/etc/hieradb/development.yaml +2 -0
  12. data/examples/hiera/etc/puppet.conf +3 -0
  13. data/examples/hiera/modules/data/manifests/common.pp +3 -0
  14. data/examples/hiera/modules/ntp/manifests/config.pp +5 -0
  15. data/examples/hiera/modules/ntp/manifests/data.pp +3 -0
  16. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +3 -0
  17. data/examples/hiera/modules/users/manifests/common.pp +3 -0
  18. data/examples/hiera/modules/users/manifests/dc1.pp +3 -0
  19. data/examples/hiera/modules/users/manifests/development.pp +3 -0
  20. data/examples/hiera/site.pp +3 -0
  21. data/ext/build_defaults.yaml +23 -0
  22. data/ext/debian/README.Debian +8 -0
  23. data/ext/debian/README.source +2 -0
  24. data/ext/debian/TODO.Debian +1 -0
  25. data/ext/debian/changelog.erb +1104 -0
  26. data/ext/debian/compat +1 -0
  27. data/ext/debian/control +143 -0
  28. data/ext/debian/copyright +361 -0
  29. data/ext/debian/docs +1 -0
  30. data/ext/debian/fileserver.conf +17 -0
  31. data/ext/debian/puppet-common.dirs +8 -0
  32. data/ext/debian/puppet-common.install +4 -0
  33. data/ext/debian/puppet-common.lintian-overrides +5 -0
  34. data/ext/debian/puppet-common.manpages +2 -0
  35. data/ext/debian/puppet-common.postinst +35 -0
  36. data/ext/debian/puppet-common.postrm +32 -0
  37. data/ext/debian/puppet-el.dirs +1 -0
  38. data/ext/debian/puppet-el.emacsen-install +25 -0
  39. data/ext/debian/puppet-el.emacsen-remove +11 -0
  40. data/ext/debian/puppet-el.emacsen-startup +9 -0
  41. data/ext/debian/puppet-el.install +1 -0
  42. data/ext/debian/puppet-testsuite.install +2 -0
  43. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  44. data/ext/debian/puppet.conf +14 -0
  45. data/ext/debian/puppet.default +7 -0
  46. data/ext/debian/puppet.init +118 -0
  47. data/ext/debian/puppet.lintian-overrides +3 -0
  48. data/ext/debian/puppet.logrotate +11 -0
  49. data/ext/debian/puppet.manpages +32 -0
  50. data/ext/debian/puppet.postinst +20 -0
  51. data/ext/debian/puppet.postrm +20 -0
  52. data/ext/debian/puppet.preinst +20 -0
  53. data/ext/debian/puppetmaster-common.install +2 -0
  54. data/ext/debian/puppetmaster-common.manpages +2 -0
  55. data/ext/debian/puppetmaster-common.puppetqd.default +27 -0
  56. data/ext/debian/puppetmaster-common.puppetqd.init +84 -0
  57. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  58. data/ext/debian/puppetmaster-passenger.postinst +66 -0
  59. data/ext/debian/puppetmaster-passenger.postrm +33 -0
  60. data/ext/debian/puppetmaster.README.debian +16 -0
  61. data/ext/debian/puppetmaster.default +38 -0
  62. data/ext/debian/puppetmaster.init +158 -0
  63. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  64. data/ext/debian/puppetmaster.postinst +20 -0
  65. data/ext/debian/puppetmaster.postrm +5 -0
  66. data/ext/debian/puppetmaster.preinst +22 -0
  67. data/ext/debian/rules +128 -0
  68. data/ext/debian/source/format +1 -0
  69. data/ext/debian/source/options +1 -0
  70. data/ext/debian/vim-puppet.README.Debian +13 -0
  71. data/ext/debian/vim-puppet.dirs +3 -0
  72. data/ext/debian/vim-puppet.yaml +5 -0
  73. data/ext/debian/watch +2 -0
  74. data/ext/emacs/puppet-mode.el +1 -0
  75. data/ext/envpuppet +4 -0
  76. data/ext/envpuppet.bat +3 -2
  77. data/{conf → ext}/freebsd/puppetd +0 -0
  78. data/{conf → ext}/freebsd/puppetmasterd +0 -0
  79. data/{conf → ext}/gentoo/conf.d/puppet +0 -0
  80. data/{conf → ext}/gentoo/conf.d/puppetmaster +0 -0
  81. data/{conf → ext}/gentoo/init.d/puppet +0 -0
  82. data/{conf → ext}/gentoo/init.d/puppetmaster +0 -0
  83. data/{conf → ext}/gentoo/puppet/fileserver.conf +0 -0
  84. data/{conf → ext}/gentoo/puppet/puppet.conf +0 -0
  85. data/ext/ips/puppet-agent +49 -0
  86. data/ext/ips/puppet-master +44 -0
  87. data/ext/ips/puppet.conf +29 -0
  88. data/ext/ips/puppet.p5m.erb +12 -0
  89. data/ext/ips/puppetagent.xml +46 -0
  90. data/ext/ips/puppetmaster.xml +42 -0
  91. data/ext/ips/rules +19 -0
  92. data/ext/ips/transforms +34 -0
  93. data/{conf → ext}/osx/PackageInfo.plist +0 -0
  94. data/{conf → ext}/osx/createpackage.sh +1 -1
  95. data/ext/osx/file_mapping.yaml +33 -0
  96. data/ext/osx/preflight.erb +37 -0
  97. data/{tasks/rake/templates → ext/osx}/prototype.plist.erb +0 -0
  98. data/ext/packaging/README-Solaris.md +117 -0
  99. data/ext/packaging/README.md +89 -0
  100. data/ext/packaging/tasks/00_utils.rb +236 -0
  101. data/ext/packaging/tasks/10_setupvars.rake +62 -0
  102. data/ext/packaging/tasks/apple.rake +201 -0
  103. data/ext/packaging/tasks/clean.rake +5 -0
  104. data/ext/packaging/tasks/deb.rake +105 -0
  105. data/ext/packaging/tasks/gem.rake +52 -0
  106. data/ext/packaging/tasks/ips.rake +78 -0
  107. data/ext/packaging/tasks/mock.rake +88 -0
  108. data/ext/packaging/tasks/release.rake +20 -0
  109. data/ext/packaging/tasks/rpm.rake +39 -0
  110. data/ext/packaging/tasks/ship.rake +34 -0
  111. data/ext/packaging/tasks/sign.rake +76 -0
  112. data/ext/packaging/tasks/tar.rake +20 -0
  113. data/ext/project_data.yaml +25 -0
  114. data/ext/rack/files/apache2.conf +2 -1
  115. data/{conf → ext}/redhat/client.init +0 -0
  116. data/{conf → ext}/redhat/client.sysconfig +0 -0
  117. data/{conf → ext}/redhat/fileserver.conf +0 -0
  118. data/{conf → ext}/redhat/logrotate +0 -0
  119. data/{conf → ext}/redhat/puppet.conf +0 -0
  120. data/{conf/redhat/puppet.spec → ext/redhat/puppet.spec.erb} +140 -33
  121. data/{conf → ext}/redhat/queue.init +0 -0
  122. data/{conf → ext}/redhat/rundir-perms.patch +0 -0
  123. data/{conf → ext}/redhat/server.init +0 -0
  124. data/{conf → ext}/redhat/server.sysconfig +0 -0
  125. data/{conf → ext}/solaris/pkginfo +0 -0
  126. data/{conf → ext}/solaris/smf/puppetd.xml +0 -0
  127. data/{conf → ext}/solaris/smf/puppetmasterd.xml +0 -0
  128. data/{conf → ext}/solaris/smf/svc-puppetd +0 -0
  129. data/{conf → ext}/solaris/smf/svc-puppetmasterd +0 -0
  130. data/{conf → ext}/suse/client.init +0 -0
  131. data/{conf → ext}/suse/fileserver.conf +0 -0
  132. data/{conf → ext}/suse/logrotate +0 -0
  133. data/{conf → ext}/suse/puppet.conf +0 -0
  134. data/{conf → ext}/suse/puppet.spec +1 -1
  135. data/{conf → ext}/suse/server.init +0 -0
  136. data/ext/systemd/puppetagent.service +13 -0
  137. data/ext/systemd/puppetmaster.service +13 -0
  138. data/{conf → ext}/windows/eventlog/Rakefile +0 -0
  139. data/{conf → ext}/windows/eventlog/puppetres.dll +0 -0
  140. data/{conf → ext}/windows/eventlog/puppetres.mc +0 -0
  141. data/ext/windows/service/daemon.bat +6 -0
  142. data/ext/windows/service/daemon.rb +90 -0
  143. data/install.rb +22 -32
  144. data/lib/hiera/backend/puppet_backend.rb +102 -0
  145. data/lib/hiera/scope.rb +42 -0
  146. data/lib/hiera_puppet.rb +89 -0
  147. data/lib/puppet.rb +1 -1
  148. data/lib/puppet/agent.rb +2 -2
  149. data/lib/puppet/agent/locker.rb +12 -9
  150. data/lib/puppet/application.rb +10 -8
  151. data/lib/puppet/application/agent.rb +12 -8
  152. data/lib/puppet/application/apply.rb +2 -2
  153. data/lib/puppet/application/cert.rb +6 -6
  154. data/lib/puppet/application/certificate.rb +1 -4
  155. data/lib/puppet/application/describe.rb +1 -1
  156. data/lib/puppet/application/device.rb +5 -2
  157. data/lib/puppet/application/doc.rb +1 -1
  158. data/lib/puppet/application/face_base.rb +3 -13
  159. data/lib/puppet/application/filebucket.rb +1 -1
  160. data/lib/puppet/application/inspect.rb +1 -1
  161. data/lib/puppet/application/kick.rb +4 -2
  162. data/lib/puppet/application/master.rb +2 -2
  163. data/lib/puppet/application/queue.rb +3 -1
  164. data/lib/puppet/application/resource.rb +1 -1
  165. data/lib/puppet/configurer.rb +11 -7
  166. data/lib/puppet/configurer/downloader.rb +1 -4
  167. data/lib/puppet/daemon.rb +4 -4
  168. data/lib/puppet/defaults.rb +64 -60
  169. data/lib/puppet/external/dot.rb +1 -1
  170. data/lib/puppet/external/pson/common.rb +15 -0
  171. data/lib/puppet/external/pson/pure.rb +0 -62
  172. data/lib/puppet/external/pson/pure/generator.rb +1 -1
  173. data/lib/puppet/external/pson/pure/parser.rb +2 -2
  174. data/lib/puppet/face/ca.rb +19 -14
  175. data/lib/puppet/face/config.rb +2 -2
  176. data/lib/puppet/face/facts.rb +1 -1
  177. data/lib/puppet/face/help/action.erb +0 -1
  178. data/lib/puppet/face/help/face.erb +0 -1
  179. data/lib/puppet/face/help/man.erb +3 -6
  180. data/lib/puppet/face/module/install.rb +1 -1
  181. data/lib/puppet/face/module/list.rb +1 -1
  182. data/lib/puppet/face/module/uninstall.rb +1 -1
  183. data/lib/puppet/face/node.rb +1 -1
  184. data/lib/puppet/face/node/clean.rb +30 -25
  185. data/lib/puppet/feature/base.rb +0 -3
  186. data/lib/puppet/feature/rails.rb +2 -1
  187. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  188. data/lib/puppet/indirector/catalog/active_record.rb +5 -0
  189. data/lib/puppet/indirector/catalog/static_compiler.rb +2 -3
  190. data/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
  191. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  192. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  193. data/lib/puppet/indirector/face.rb +3 -3
  194. data/lib/puppet/indirector/facts/active_record.rb +5 -0
  195. data/lib/puppet/indirector/facts/facter.rb +1 -4
  196. data/lib/puppet/indirector/facts/inventory_active_record.rb +6 -0
  197. data/lib/puppet/indirector/file_bucket_file/file.rb +2 -1
  198. data/lib/puppet/indirector/indirection.rb +2 -2
  199. data/lib/puppet/indirector/key/disabled_ca.rb +22 -0
  200. data/lib/puppet/indirector/node/active_record.rb +5 -0
  201. data/lib/puppet/indirector/request.rb +4 -0
  202. data/lib/puppet/indirector/resource/active_record.rb +5 -0
  203. data/lib/puppet/network/authentication.rb +30 -0
  204. data/lib/puppet/network/http.rb +0 -13
  205. data/lib/puppet/network/http/connection.rb +10 -2
  206. data/lib/puppet/network/http/handler.rb +8 -0
  207. data/lib/puppet/network/http/mongrel/rest.rb +5 -0
  208. data/lib/puppet/network/http/rack/rest.rb +7 -0
  209. data/lib/puppet/network/http/webrick.rb +3 -6
  210. data/lib/puppet/network/http/webrick/rest.rb +4 -0
  211. data/lib/puppet/network/server.rb +9 -33
  212. data/lib/puppet/node.rb +1 -1
  213. data/lib/puppet/node/facts.rb +0 -1
  214. data/lib/puppet/parser/compiler.rb +1 -1
  215. data/lib/puppet/parser/functions.rb +12 -1
  216. data/lib/puppet/parser/functions/hiera.rb +8 -0
  217. data/lib/puppet/parser/functions/hiera_array.rb +8 -0
  218. data/lib/puppet/parser/functions/hiera_hash.rb +8 -0
  219. data/lib/puppet/parser/functions/hiera_include.rb +11 -0
  220. data/lib/puppet/parser/functions/shellquote.rb +21 -29
  221. data/lib/puppet/parser/lexer.rb +2 -1
  222. data/lib/puppet/parser/scope.rb +8 -0
  223. data/lib/puppet/provider/exec/windows.rb +1 -1
  224. data/lib/puppet/provider/group/groupadd.rb +2 -3
  225. data/lib/puppet/provider/package/pkg.rb +37 -10
  226. data/lib/puppet/provider/service/daemontools.rb +1 -1
  227. data/lib/puppet/provider/service/launchd.rb +1 -1
  228. data/lib/puppet/provider/service/redhat.rb +1 -1
  229. data/lib/puppet/provider/service/runit.rb +1 -1
  230. data/lib/puppet/provider/user/useradd.rb +8 -3
  231. data/lib/puppet/provider/user/windows_adsi.rb +11 -0
  232. data/lib/puppet/provider/zfs/zfs.rb +29 -2
  233. data/lib/puppet/provider/zone/solaris.rb +144 -39
  234. data/lib/puppet/provider/zpool/zpool.rb +7 -10
  235. data/lib/puppet/settings.rb +50 -86
  236. data/lib/puppet/settings/duration_setting.rb +34 -0
  237. data/lib/puppet/settings/terminus_setting.rb +16 -0
  238. data/lib/puppet/ssl/base.rb +49 -9
  239. data/lib/puppet/ssl/certificate.rb +13 -9
  240. data/lib/puppet/ssl/certificate_authority.rb +4 -0
  241. data/lib/puppet/ssl/certificate_authority/interface.rb +10 -17
  242. data/lib/puppet/ssl/certificate_factory.rb +4 -21
  243. data/lib/puppet/ssl/certificate_request.rb +1 -10
  244. data/lib/puppet/ssl/certificate_revocation_list.rb +1 -3
  245. data/lib/puppet/ssl/digest.rb +20 -0
  246. data/lib/puppet/ssl/host.rb +31 -6
  247. data/lib/puppet/test/test_helper.rb +1 -1
  248. data/lib/puppet/transaction/report.rb +2 -1
  249. data/lib/puppet/type.rb +1 -1
  250. data/lib/puppet/type/augeas.rb +1 -1
  251. data/lib/puppet/type/cron.rb +1 -1
  252. data/lib/puppet/type/exec.rb +7 -8
  253. data/lib/puppet/type/file.rb +1 -1
  254. data/lib/puppet/type/file/content.rb +2 -2
  255. data/lib/puppet/type/file/ensure.rb +1 -1
  256. data/lib/puppet/type/file/mode.rb +1 -1
  257. data/lib/puppet/type/file/selcontext.rb +6 -2
  258. data/lib/puppet/type/file/source.rb +1 -1
  259. data/lib/puppet/type/schedule.rb +1 -1
  260. data/lib/puppet/type/scheduled_task.rb +1 -1
  261. data/lib/puppet/type/tidy.rb +1 -1
  262. data/lib/puppet/type/zone.rb +126 -253
  263. data/lib/puppet/util.rb +10 -23
  264. data/lib/puppet/util/adsi.rb +22 -14
  265. data/lib/puppet/util/log/destinations.rb +7 -0
  266. data/lib/puppet/util/log/rate_limited_logger.rb +40 -0
  267. data/lib/puppet/util/metric.rb +2 -2
  268. data/lib/puppet/util/monkey_patches.rb +8 -0
  269. data/lib/puppet/util/platform.rb +7 -0
  270. data/lib/puppet/util/selinux.rb +31 -36
  271. data/lib/puppet/util/windows/error.rb +1 -1
  272. data/lib/puppet/util/windows/process.rb +3 -3
  273. data/lib/puppet/util/windows/security.rb +7 -7
  274. data/lib/puppet/util/windows/user.rb +65 -2
  275. data/lib/puppet/util/zaml.rb +90 -46
  276. data/lib/puppet/version.rb +1 -1
  277. data/spec/fixtures/hiera.yaml +9 -0
  278. data/spec/fixtures/manifests/site.pp +0 -0
  279. data/spec/integration/defaults_spec.rb +25 -11
  280. data/spec/integration/faces/ca_spec.rb +11 -16
  281. data/spec/integration/network/server/webrick_spec.rb +14 -27
  282. data/spec/integration/node_spec.rb +4 -1
  283. data/spec/integration/parser/functions/require_spec.rb +3 -3
  284. data/spec/integration/parser/undef_param_spec.rb +88 -0
  285. data/spec/integration/provider/mount_spec.rb +4 -1
  286. data/spec/integration/ssl/certificate_authority_spec.rb +18 -0
  287. data/spec/lib/puppet_spec/files.rb +3 -3
  288. data/spec/lib/puppet_spec/settings.rb +0 -1
  289. data/spec/shared_contexts/platform.rb +8 -0
  290. data/spec/spec_helper.rb +6 -0
  291. data/spec/unit/agent/locker_spec.rb +8 -2
  292. data/spec/unit/application/agent_spec.rb +29 -7
  293. data/spec/unit/application/apply_spec.rb +1 -1
  294. data/spec/unit/application/device_spec.rb +18 -1
  295. data/spec/unit/application/face_base_spec.rb +16 -2
  296. data/spec/unit/application/kick_spec.rb +8 -0
  297. data/spec/unit/application/queue_spec.rb +5 -0
  298. data/spec/unit/application_spec.rb +13 -23
  299. data/spec/unit/configurer/downloader_spec.rb +2 -11
  300. data/spec/unit/configurer_spec.rb +6 -0
  301. data/spec/unit/face/node_spec.rb +1 -1
  302. data/spec/unit/hiera/backend/puppet_backend_spec.rb +140 -0
  303. data/spec/unit/hiera/scope_spec.rb +62 -0
  304. data/spec/unit/hiera_puppet_spec.rb +111 -0
  305. data/spec/unit/indirector/catalog/active_record_spec.rb +4 -0
  306. data/spec/unit/indirector/catalog/static_compiler_spec.rb +194 -0
  307. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +33 -0
  308. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +33 -0
  309. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +33 -0
  310. data/spec/unit/indirector/facts/active_record_spec.rb +37 -26
  311. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +5 -0
  312. data/spec/unit/indirector/hiera_spec.rb +2 -1
  313. data/spec/unit/indirector/key/disabled_ca_spec.rb +33 -0
  314. data/spec/unit/indirector/node/active_record_spec.rb +7 -0
  315. data/spec/unit/indirector/request_spec.rb +22 -0
  316. data/spec/unit/indirector/resource/active_record_spec.rb +5 -0
  317. data/spec/unit/module_tool/application_spec.rb +1 -1
  318. data/spec/unit/network/authentication_spec.rb +86 -0
  319. data/spec/unit/network/http/connection_spec.rb +21 -0
  320. data/spec/unit/network/http/handler_spec.rb +12 -0
  321. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  322. data/spec/unit/network/http/webrick_spec.rb +11 -26
  323. data/spec/unit/network/server_spec.rb +79 -192
  324. data/spec/unit/node/facts_spec.rb +2 -2
  325. data/spec/unit/parser/ast/vardef_spec.rb +4 -4
  326. data/spec/unit/parser/files_spec.rb +3 -0
  327. data/spec/unit/parser/functions/defined_spec.rb +5 -5
  328. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -1
  329. data/spec/unit/parser/functions/hiera_array_spec.rb +23 -0
  330. data/spec/unit/parser/functions/hiera_hash_spec.rb +19 -0
  331. data/spec/unit/parser/functions/hiera_include_spec.rb +19 -0
  332. data/spec/unit/parser/functions/hiera_spec.rb +21 -0
  333. data/spec/unit/parser/functions/include_spec.rb +3 -3
  334. data/spec/unit/parser/functions/realize_spec.rb +3 -3
  335. data/spec/unit/parser/functions/require_spec.rb +5 -5
  336. data/spec/unit/parser/functions/shellquote_spec.rb +0 -4
  337. data/spec/unit/parser/functions_spec.rb +6 -10
  338. data/spec/unit/parser/lexer_spec.rb +13 -0
  339. data/spec/unit/parser/scope_spec.rb +16 -1
  340. data/spec/unit/provider/exec/posix_spec.rb +7 -6
  341. data/spec/unit/provider/group/groupadd_spec.rb +36 -30
  342. data/spec/unit/provider/package/pkg_spec.rb +16 -2
  343. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  344. data/spec/unit/provider/sshkey/parsed_spec.rb +4 -0
  345. data/spec/unit/provider/user/user_role_add_spec.rb +125 -126
  346. data/spec/unit/provider/user/useradd_spec.rb +147 -118
  347. data/spec/unit/provider/user/windows_adsi_spec.rb +22 -0
  348. data/spec/unit/provider/zone/solaris_spec.rb +126 -7
  349. data/spec/unit/provider/zpool/zpool_spec.rb +4 -3
  350. data/spec/unit/puppet_spec.rb +7 -0
  351. data/spec/unit/settings/duration_setting_spec.rb +45 -0
  352. data/spec/unit/settings/terminus_setting_spec.rb +28 -0
  353. data/spec/unit/settings_spec.rb +21 -23
  354. data/spec/unit/ssl/base_spec.rb +68 -19
  355. data/spec/unit/ssl/certificate_authority/interface_spec.rb +19 -30
  356. data/spec/unit/ssl/certificate_authority_spec.rb +3 -2
  357. data/spec/unit/ssl/certificate_factory_spec.rb +15 -6
  358. data/spec/unit/ssl/certificate_request_spec.rb +80 -113
  359. data/spec/unit/ssl/certificate_revocation_list_spec.rb +1 -1
  360. data/spec/unit/ssl/certificate_spec.rb +26 -2
  361. data/spec/unit/ssl/digest_spec.rb +35 -0
  362. data/spec/unit/ssl/host_spec.rb +73 -27
  363. data/spec/unit/ssl/key_spec.rb +0 -4
  364. data/spec/unit/type/exec_spec.rb +1 -1
  365. data/spec/unit/type/file_spec.rb +2 -1
  366. data/spec/unit/type/scheduled_task_spec.rb +2 -2
  367. data/spec/unit/type/zone_spec.rb +52 -10
  368. data/spec/unit/util/adsi_spec.rb +19 -0
  369. data/spec/unit/util/checksums_spec.rb +2 -3
  370. data/spec/unit/util/execution_spec.rb +1 -1
  371. data/spec/unit/util/log/destinations_spec.rb +1 -0
  372. data/spec/unit/util/log/rate_limited_logger_spec.rb +51 -0
  373. data/spec/unit/util/logging_spec.rb +6 -6
  374. data/spec/unit/util/selinux_spec.rb +24 -32
  375. data/spec/unit/util/zaml_spec.rb +94 -6
  376. data/spec/unit/util_spec.rb +17 -0
  377. data/spec/watchr.rb +2 -6
  378. data/tasks/{rake/manpages.rake → manpages.rake} +0 -0
  379. data/tasks/{rake/parser.rake → parser.rake} +0 -0
  380. metadata +1003 -119
  381. data/CHANGELOG +0 -9233
  382. data/conf/osx/preflight +0 -24
  383. data/lib/puppet/network/http/mongrel.rb +0 -35
  384. data/lib/puppet/util/config_timeout.rb +0 -24
  385. data/spec/unit/network/http/mongrel/rest_spec.rb +0 -257
  386. data/spec/unit/network/http/mongrel_spec.rb +0 -91
  387. data/spec/unit/network/http_spec.rb +0 -31
  388. data/spec/unit/util/config_timeout_spec.rb +0 -57
  389. data/tasks/rake/apple.rake +0 -176
  390. data/tasks/rake/changelog.rake +0 -15
  391. data/tasks/rake/ci.rake +0 -22
  392. data/tasks/rake/dailybuild.rake +0 -9
  393. data/tasks/rake/gem.rake +0 -63
  394. data/tasks/rake/git_workflow.rake +0 -134
  395. data/tasks/rake/metrics.rake +0 -14
  396. data/tasks/rake/sign.rake +0 -14
  397. data/tasks/rake/testbranch.rake +0 -16
  398. data/tasks/rake/yard.rake +0 -11
@@ -12,13 +12,8 @@ end
12
12
  describe Puppet::Network::HTTP::WEBrick do
13
13
  include PuppetSpec::Files
14
14
 
15
- let(:listen_params) do
16
- { :address => "127.0.0.1",
17
- :port => 31337,
18
- :protocols => [ :rest ],
19
- :handlers => [ :node, :catalog ],
20
- }
21
- end
15
+ let(:address) { '127.0.0.1' }
16
+ let(:port) { 31337 }
22
17
 
23
18
  let(:server) do
24
19
  s = Puppet::Network::HTTP::WEBrick.new
@@ -43,25 +38,15 @@ describe Puppet::Network::HTTP::WEBrick do
43
38
 
44
39
  describe "when turning on listening" do
45
40
  it "should fail if already listening" do
46
- server.listen(listen_params)
47
- expect { server.listen(listen_params) }.to raise_error(RuntimeError, /server is already listening/)
48
- end
49
-
50
- it "should require a listening address to be specified" do
51
- listen_params.delete(:address)
52
- expect { server.listen(listen_params) }.to raise_error(ArgumentError, /:address must be specified/)
53
- end
54
-
55
- it "should require a listening port to be specified" do
56
- listen_params.delete(:port)
57
- expect { server.listen(listen_params) }.to raise_error(ArgumentError, /:port must be specified/)
41
+ server.listen(address, port)
42
+ expect { server.listen(address, port) }.to raise_error(RuntimeError, /server is already listening/)
58
43
  end
59
44
 
60
45
  it "should tell webrick to listen on the specified address and port" do
61
46
  WEBrick::HTTPServer.expects(:new).with {|args|
62
47
  args[:Port] == 31337 and args[:BindAddress] == "127.0.0.1"
63
48
  }.returns(mock_webrick)
64
- server.listen(listen_params)
49
+ server.listen(address, port)
65
50
  end
66
51
 
67
52
  it "should configure a logger for webrick" do
@@ -71,7 +56,7 @@ describe Puppet::Network::HTTP::WEBrick do
71
56
  args[:Logger] == :mylogger
72
57
  }.returns(mock_webrick)
73
58
 
74
- server.listen(listen_params)
59
+ server.listen(address, port)
75
60
  end
76
61
 
77
62
  it "should configure SSL for webrick" do
@@ -81,11 +66,11 @@ describe Puppet::Network::HTTP::WEBrick do
81
66
  args[:Ssl] == :testing and args[:Other] == :yay
82
67
  }.returns(mock_webrick)
83
68
 
84
- server.listen(listen_params)
69
+ server.listen(address, port)
85
70
  end
86
71
 
87
72
  it "should be listening" do
88
- server.listen(listen_params)
73
+ server.listen(address, port)
89
74
  server.should be_listening
90
75
  end
91
76
 
@@ -94,7 +79,7 @@ describe Puppet::Network::HTTP::WEBrick do
94
79
  # We don't care about the options here.
95
80
  mock_webrick.expects(:mount).with("/", Puppet::Network::HTTP::WEBrickREST, anything)
96
81
 
97
- server.listen(listen_params.merge(:protocols => [:rest]))
82
+ server.listen(address, port)
98
83
  end
99
84
  end
100
85
  end
@@ -106,12 +91,12 @@ describe Puppet::Network::HTTP::WEBrick do
106
91
 
107
92
  it "should order webrick server to stop" do
108
93
  mock_webrick.expects(:shutdown)
109
- server.listen(listen_params)
94
+ server.listen(address, port)
110
95
  server.unlisten
111
96
  end
112
97
 
113
98
  it "should no longer be listening" do
114
- server.listen(listen_params)
99
+ server.listen(address, port)
115
100
  server.unlisten
116
101
  server.should_not be_listening
117
102
  end
@@ -3,145 +3,87 @@ require 'spec_helper'
3
3
  require 'puppet/network/server'
4
4
 
5
5
  describe Puppet::Network::Server do
6
+ let(:port) { 8140 }
7
+ let(:address) { '0.0.0.0' }
8
+ let(:server) {
9
+ server = Puppet::Network::Server.new(address, port)
10
+ server.stubs(:close_streams)
11
+ server
12
+ }
13
+
6
14
  before do
7
- @mock_http_server_class = mock('http server class')
15
+ @mock_http_server = mock('http server')
8
16
  Puppet.settings.stubs(:use)
9
17
  Puppet.run_mode.stubs(:name).returns :master
10
- Puppet[:servertype] = :suparserver
11
- Puppet[:bindaddress] = ""
12
- Puppet[:masterport] = 8140
13
- Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
14
- Puppet[:servertype] = :suparserver
15
- @server = Puppet::Network::Server.new(:port => 31337)
16
- @server.stubs(:close_streams).returns(nil)
18
+ Puppet::Network::HTTP::WEBrick.stubs(:new).returns(@mock_http_server)
17
19
  end
18
20
 
19
21
  describe "when initializing" do
20
22
  before do
21
23
  Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
22
- Puppet[:bindaddress] = ""
23
24
  Puppet[:masterport] = ''
24
25
  end
25
26
 
26
- it 'should fail if an unknown option is provided' do
27
- expect { Puppet::Network::Server.new(:foo => 31337) }.to raise_error(ArgumentError)
28
- end
29
-
30
- it "should allow specifying a listening port" do
31
- Puppet[:bindaddress] = ''
32
- @server = Puppet::Network::Server.new(:port => 31337)
33
- @server.port.should == 31337
34
- end
35
-
36
- it "should use the :bindaddress setting to determine the default listening address" do
37
- Puppet[:masterport] = ''
38
- Puppet[:bindaddress] = "10.0.0.1"
39
- @server = Puppet::Network::Server.new
40
- @server.address.should == "10.0.0.1"
41
- end
42
-
43
- it "should set the bind address to '127.0.0.1' if the default address is an empty string and the server type is mongrel" do
44
- Puppet[:servertype] = "mongrel"
45
- Puppet[:bindaddress] = ""
46
- @server = Puppet::Network::Server.new
47
- @server.address.should == '127.0.0.1'
48
- end
49
-
50
- it "should set the bind address to '0.0.0.0' if the default address is an empty string and the server type is webrick" do
51
- Puppet[:servertype] = "webrick"
52
- Puppet[:bindaddress] = ""
53
- @server = Puppet::Network::Server.new
54
- @server.address.should == '0.0.0.0'
55
- end
56
-
57
- it "should use the Puppet configurator to find a default listening port" do
58
- Puppet[:bindaddress] = ''
59
- Puppet[:masterport] = 6667
60
- @server = Puppet::Network::Server.new
61
- @server.port.should == 6667
62
- end
63
-
64
- it "should use the Puppet configurator to determine which HTTP server will be used to provide access to clients" do
65
- Puppet[:servertype] = :suparserver
66
- @server = Puppet::Network::Server.new(:port => 31337)
67
- @server.server_type.should == :suparserver
68
- end
69
-
70
- it "should ask the Puppet::Network::HTTP class to fetch the proper HTTP server class" do
71
- Puppet::Network::HTTP.expects(:server_class_by_type).with(:suparserver).returns(@mock_http_server_class)
72
- @server = Puppet::Network::Server.new(:port => 31337)
73
- end
74
-
75
- it "should fail if the HTTP server class is unknown" do
76
- Puppet::Network::HTTP.stubs(:server_class_by_type).returns(nil)
77
- expect { Puppet::Network::Server.new(:port => 31337) }.to raise_error(ArgumentError)
78
- end
79
-
80
27
  it "should allow registering REST handlers" do
81
- @server = Puppet::Network::Server.new(:port => 31337, :handlers => [ :foo, :bar, :baz])
82
- expect { @server.unregister(:foo, :bar, :baz) }.to_not raise_error
28
+ server = Puppet::Network::Server.new(address, port, [:foo, :bar, :baz])
29
+ expect { server.unregister(:foo, :bar, :baz) }.to_not raise_error
83
30
  end
84
31
 
85
32
  it "should not be listening after initialization" do
86
- Puppet::Network::Server.new(:port => 31337).should_not be_listening
33
+ Puppet::Network::Server.new(address, port).should_not be_listening
87
34
  end
88
35
 
89
36
  it "should use the :main setting section" do
90
37
  Puppet.settings.expects(:use).with { |*args| args.include?(:main) }
91
- @server = Puppet::Network::Server.new(:port => 31337)
38
+ Puppet::Network::Server.new(address, port)
92
39
  end
93
40
 
94
41
  it "should use the :application setting section" do
95
42
  Puppet.settings.expects(:use).with { |*args| args.include?(:application) }
96
43
 
97
- @server = Puppet::Network::Server.new(:port => 31337)
44
+ Puppet::Network::Server.new(address, port)
98
45
  end
99
46
  end
100
47
 
101
- # We don't test the method, because it's too much of a Unix-y pain.
102
- it "should be able to daemonize" do
103
- @server.should respond_to(:daemonize)
104
- end
105
-
106
48
  describe "when being started" do
107
49
  before do
108
- @server.stubs(:listen)
109
- @server.stubs(:create_pidfile)
50
+ server.stubs(:listen)
51
+ server.stubs(:create_pidfile)
110
52
  end
111
53
 
112
54
  it "should listen" do
113
- @server.expects(:listen)
114
- @server.start
55
+ server.expects(:listen)
56
+ server.start
115
57
  end
116
58
 
117
59
  it "should create its PID file" do
118
- @server.expects(:create_pidfile)
119
- @server.start
60
+ server.expects(:create_pidfile)
61
+ server.start
120
62
  end
121
63
  end
122
64
 
123
65
  describe "when being stopped" do
124
66
  before do
125
- @server.stubs(:unlisten)
126
- @server.stubs(:remove_pidfile)
67
+ server.stubs(:unlisten)
68
+ server.stubs(:remove_pidfile)
127
69
  end
128
70
 
129
71
  it "should unlisten" do
130
- @server.expects(:unlisten)
131
- @server.stop
72
+ server.expects(:unlisten)
73
+ server.stop
132
74
  end
133
75
 
134
76
  it "should remove its PID file" do
135
- @server.expects(:remove_pidfile)
136
- @server.stop
77
+ server.expects(:remove_pidfile)
78
+ server.stop
137
79
  end
138
80
  end
139
81
 
140
82
  describe "when creating its pidfile" do
141
83
  it "should use an exclusive mutex" do
142
84
  Puppet.run_mode.expects(:name).returns "me"
143
- Puppet::Util.expects(:synchronize_on).with("me",Sync::EX)
144
- @server.create_pidfile
85
+ Puppet::Util.expects(:synchronize_on).with("me", Sync::EX)
86
+ server.create_pidfile
145
87
  end
146
88
 
147
89
  it "should lock the pidfile using the Pidlock class" do
@@ -153,7 +95,7 @@ describe Puppet::Network::Server do
153
95
  Puppet::Util::Pidlock.expects(:new).with(Puppet[:pidfile]).returns pidfile
154
96
 
155
97
  pidfile.expects(:lock).returns true
156
- @server.create_pidfile
98
+ server.create_pidfile
157
99
  end
158
100
 
159
101
  it "should fail if it cannot lock" do
@@ -165,7 +107,7 @@ describe Puppet::Network::Server do
165
107
 
166
108
  pidfile.expects(:lock).returns false
167
109
 
168
- expect { @server.create_pidfile }.to raise_error /Could not create PID/
110
+ expect { server.create_pidfile }.to raise_error /Could not create PID/
169
111
  end
170
112
  end
171
113
 
@@ -173,7 +115,7 @@ describe Puppet::Network::Server do
173
115
  it "should use an exclusive mutex" do
174
116
  Puppet.run_mode.expects(:name).returns "me"
175
117
  Puppet::Util.expects(:synchronize_on).with("me",Sync::EX)
176
- @server.remove_pidfile
118
+ server.remove_pidfile
177
119
  end
178
120
 
179
121
  it "should do nothing if the pidfile is not present" do
@@ -181,7 +123,7 @@ describe Puppet::Network::Server do
181
123
  Puppet[:pidfile] = "/my/file"
182
124
  Puppet::Util::Pidlock.expects(:new).with(Puppet[:pidfile]).returns pidfile
183
125
 
184
- @server.remove_pidfile
126
+ server.remove_pidfile
185
127
  end
186
128
 
187
129
  it "should unlock the pidfile using the Pidlock class" do
@@ -189,7 +131,7 @@ describe Puppet::Network::Server do
189
131
  Puppet[:pidfile] = "/my/file"
190
132
  Puppet::Util::Pidlock.expects(:new).with(Puppet[:pidfile]).returns pidfile
191
133
 
192
- @server.remove_pidfile
134
+ server.remove_pidfile
193
135
  end
194
136
  end
195
137
 
@@ -199,199 +141,144 @@ describe Puppet::Network::Server do
199
141
  end
200
142
 
201
143
  it "should allow registering an indirection for client access by specifying its indirection name" do
202
- expect { @server.register(:foo) }.to_not raise_error
144
+ expect { server.register(:foo) }.to_not raise_error
203
145
  end
204
146
 
205
147
  it "should require that the indirection be valid" do
206
148
  Puppet::Indirector::Indirection.expects(:model).with(:foo).returns nil
207
- expect { @server.register(:foo) }.to raise_error(ArgumentError)
149
+ expect { server.register(:foo) }.to raise_error(ArgumentError)
208
150
  end
209
151
 
210
152
  it "should require at least one indirection name when registering indirections for client access" do
211
- expect { @server.register }.to raise_error(ArgumentError)
153
+ expect { server.register }.to raise_error(ArgumentError)
212
154
  end
213
155
 
214
156
  it "should allow for numerous indirections to be registered at once for client access" do
215
- expect { @server.register(:foo, :bar, :baz) }.to_not raise_error
157
+ expect { server.register(:foo, :bar, :baz) }.to_not raise_error
216
158
  end
217
159
 
218
160
  it "should allow the use of indirection names to specify which indirections are to be no longer accessible to clients" do
219
- @server.register(:foo)
220
- expect { @server.unregister(:foo) }.to_not raise_error
161
+ server.register(:foo)
162
+ expect { server.unregister(:foo) }.to_not raise_error
221
163
  end
222
164
 
223
165
  it "should leave other indirections accessible to clients when turning off indirections" do
224
- @server.register(:foo, :bar)
225
- @server.unregister(:foo)
226
- expect { @server.unregister(:bar)}.to_not raise_error
166
+ server.register(:foo, :bar)
167
+ server.unregister(:foo)
168
+ expect { server.unregister(:bar)}.to_not raise_error
227
169
  end
228
170
 
229
171
  it "should allow specifying numerous indirections which are to be no longer accessible to clients" do
230
- @server.register(:foo, :bar)
231
- expect { @server.unregister(:foo, :bar) }.to_not raise_error
172
+ server.register(:foo, :bar)
173
+ expect { server.unregister(:foo, :bar) }.to_not raise_error
232
174
  end
233
175
 
234
176
  it "should not turn off any indirections if given unknown indirection names to turn off" do
235
- @server.register(:foo, :bar)
236
- expect { @server.unregister(:foo, :bar, :baz) }.to raise_error(ArgumentError)
237
- expect { @server.unregister(:foo, :bar) }.to_not raise_error
177
+ server.register(:foo, :bar)
178
+ expect { server.unregister(:foo, :bar, :baz) }.to raise_error(ArgumentError)
179
+ expect { server.unregister(:foo, :bar) }.to_not raise_error
238
180
  end
239
181
 
240
182
  it "should not allow turning off unknown indirection names" do
241
- @server.register(:foo, :bar)
242
- expect { @server.unregister(:baz) }.to raise_error(ArgumentError)
183
+ server.register(:foo, :bar)
184
+ expect { server.unregister(:baz) }.to raise_error(ArgumentError)
243
185
  end
244
186
 
245
187
  it "should disable client access immediately when turning off indirections" do
246
- @server.register(:foo, :bar)
247
- @server.unregister(:foo)
248
- expect { @server.unregister(:foo) }.to raise_error(ArgumentError)
188
+ server.register(:foo, :bar)
189
+ server.unregister(:foo)
190
+ expect { server.unregister(:foo) }.to raise_error(ArgumentError)
249
191
  end
250
192
 
251
193
  it "should allow turning off all indirections at once" do
252
- @server.register(:foo, :bar)
253
- @server.unregister
254
- [ :foo, :bar, :baz].each do |indirection|
255
- expect { @server.unregister(indirection) }.to raise_error(ArgumentError)
194
+ server.register(:foo, :bar)
195
+ server.unregister
196
+ [:foo, :bar, :baz].each do |indirection|
197
+ expect { server.unregister(indirection) }.to raise_error(ArgumentError)
256
198
  end
257
199
  end
258
200
  end
259
201
 
260
- it "should provide a means of determining whether it is listening" do
261
- @server.should respond_to(:listening?)
262
- end
263
-
264
- it "should provide a means of determining which HTTP server will be used to provide access to clients" do
265
- @server.server_type.should == :suparserver
266
- end
267
-
268
- it "should provide a means of determining the listening address" do
269
- @server.address.should == "127.0.0.1"
270
- end
271
-
272
- it "should provide a means of determining the listening port" do
273
- @server.port.should == 31337
274
- end
275
-
276
202
  it "should allow for multiple configurations, each handling different indirections" do
277
203
  Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
278
204
 
279
- @server2 = Puppet::Network::Server.new(:port => 31337)
280
- @server.register(:foo, :bar)
281
- @server2.register(:foo, :xyzzy)
282
- @server.unregister(:foo, :bar)
283
- @server2.unregister(:foo, :xyzzy)
284
- expect { @server.unregister(:xyzzy) }.to raise_error(ArgumentError)
285
- expect { @server2.unregister(:bar) }.to raise_error(ArgumentError)
205
+ server2 = Puppet::Network::Server.new(address, port)
206
+ server.register(:foo, :bar)
207
+ server2.register(:foo, :xyzzy)
208
+ server.unregister(:foo, :bar)
209
+ server2.unregister(:foo, :xyzzy)
210
+ expect { server.unregister(:xyzzy) }.to raise_error(ArgumentError)
211
+ expect { server2.unregister(:bar) }.to raise_error(ArgumentError)
286
212
  end
287
213
 
288
214
  describe "when listening is off" do
289
215
  before do
290
- @mock_http_server = mock('http server')
291
216
  @mock_http_server.stubs(:listen)
292
- @server.stubs(:http_server).returns(@mock_http_server)
293
217
  end
294
218
 
295
219
  it "should indicate that it is not listening" do
296
- @server.should_not be_listening
220
+ server.should_not be_listening
297
221
  end
298
222
 
299
223
  it "should not allow listening to be turned off" do
300
- expect { @server.unlisten }.to raise_error(RuntimeError)
224
+ expect { server.unlisten }.to raise_error(RuntimeError)
301
225
  end
302
226
 
303
227
  it "should allow listening to be turned on" do
304
- expect { @server.listen }.to_not raise_error
228
+ expect { server.listen }.to_not raise_error
305
229
  end
306
230
 
307
231
  end
308
232
 
309
233
  describe "when listening is on" do
310
234
  before do
311
- @mock_http_server = mock('http server')
312
235
  @mock_http_server.stubs(:listen)
313
236
  @mock_http_server.stubs(:unlisten)
314
- @server.stubs(:http_server).returns(@mock_http_server)
315
- @server.listen
237
+ server.listen
316
238
  end
317
239
 
318
240
  it "should indicate that it is listening" do
319
- @server.should be_listening
241
+ server.should be_listening
320
242
  end
321
243
 
322
244
  it "should not allow listening to be turned on" do
323
- expect { @server.listen }.to raise_error(RuntimeError)
245
+ expect { server.listen }.to raise_error(RuntimeError)
324
246
  end
325
247
 
326
248
  it "should allow listening to be turned off" do
327
- expect { @server.unlisten }.to_not raise_error
249
+ expect { server.unlisten }.to_not raise_error
328
250
  end
329
251
  end
330
252
 
331
253
  describe "when listening is being turned on" do
332
254
  before do
333
255
  Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
334
-
335
- @server = Puppet::Network::Server.new(:port => 31337, :handlers => [:node])
336
- @mock_http_server = mock('http server')
337
- @mock_http_server.stubs(:listen)
338
- end
339
-
340
- it "should fetch an instance of an HTTP server" do
341
- @server.stubs(:http_server_class).returns(@mock_http_server_class)
342
- @mock_http_server_class.expects(:new).returns(@mock_http_server)
343
- @server.listen
344
256
  end
345
257
 
346
258
  it "should cause the HTTP server to listen" do
347
- @server.stubs(:http_server).returns(@mock_http_server)
348
- @mock_http_server.expects(:listen)
349
- @server.listen
350
- end
351
-
352
- it "should pass the listening address to the HTTP server" do
353
- @server.stubs(:http_server).returns(@mock_http_server)
354
- @mock_http_server.expects(:listen).with do |args|
355
- args[:address] == '127.0.0.1'
356
- end
357
- @server.listen
358
- end
359
-
360
- it "should pass the listening port to the HTTP server" do
361
- @server.stubs(:http_server).returns(@mock_http_server)
362
- @mock_http_server.expects(:listen).with do |args|
363
- args[:port] == 31337
364
- end
365
- @server.listen
366
- end
367
-
368
- it "should pass a list of REST handlers to the HTTP server" do
369
- @server.stubs(:http_server).returns(@mock_http_server)
370
- @mock_http_server.expects(:listen).with do |args|
371
- args[:handlers] == [ :node ]
372
- end
373
- @server.listen
259
+ server = Puppet::Network::Server.new(address, port, [:node])
260
+ @mock_http_server.expects(:listen).with(address, port)
261
+ server.listen
374
262
  end
375
263
  end
376
264
 
377
265
  describe "when listening is being turned off" do
378
266
  before do
379
- @mock_http_server = mock('http server')
380
267
  @mock_http_server.stubs(:listen)
381
- @server.stubs(:http_server).returns(@mock_http_server)
382
- @server.listen
268
+ server.stubs(:http_server).returns(@mock_http_server)
269
+ server.listen
383
270
  end
384
271
 
385
272
  it "should cause the HTTP server to stop listening" do
386
273
  @mock_http_server.expects(:unlisten)
387
- @server.unlisten
274
+ server.unlisten
388
275
  end
389
276
 
390
277
  it "should not allow for indirections to be turned off" do
391
278
  Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
392
279
 
393
- @server.register(:foo)
394
- expect { @server.unregister(:foo) }.to raise_error(RuntimeError)
280
+ server.register(:foo)
281
+ expect { server.unregister(:foo) }.to raise_error(RuntimeError)
395
282
  end
396
283
  end
397
284
  end