puppet 0.24.4 → 0.24.5

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 (316) hide show
  1. data/CHANGELOG +170 -0
  2. data/Rakefile +6 -4
  3. data/bin/filebucket +3 -2
  4. data/bin/puppet +7 -4
  5. data/bin/puppetca +32 -14
  6. data/bin/puppetd +12 -34
  7. data/bin/puppetmasterd +3 -2
  8. data/bin/puppetrun +5 -43
  9. data/bin/ralsh +2 -2
  10. data/conf/debian/README.source +2 -0
  11. data/conf/debian/TODO.Debian +1 -0
  12. data/conf/debian/changelog +257 -0
  13. data/conf/debian/compat +1 -0
  14. data/conf/debian/control +45 -0
  15. data/conf/debian/copyright +17 -0
  16. data/conf/debian/docs +1 -0
  17. data/conf/debian/fileserver.conf +12 -0
  18. data/conf/debian/puppet.NEWS +63 -0
  19. data/conf/debian/puppet.conf +8 -0
  20. data/conf/debian/puppet.dirs +7 -0
  21. data/conf/debian/puppet.files +6 -0
  22. data/conf/debian/puppet.init +64 -0
  23. data/conf/debian/puppet.logrotate +11 -0
  24. data/conf/debian/puppet.postinst +9 -0
  25. data/conf/debian/puppet.postrm +21 -0
  26. data/conf/debian/puppet.preinst +25 -0
  27. data/conf/debian/puppetmaster.files +4 -0
  28. data/conf/debian/puppetmaster.init +58 -0
  29. data/conf/debian/rules +115 -0
  30. data/conf/debian/watch +2 -0
  31. data/conf/gentoo/init.d/puppet +1 -1
  32. data/conf/gentoo/init.d/puppetmaster +32 -31
  33. data/conf/redhat/client.init +10 -2
  34. data/conf/redhat/puppet.spec +4 -1
  35. data/conf/redhat/server.init +9 -1
  36. data/examples/{code/allatonce → allatonce} +0 -0
  37. data/examples/{code/assignments → assignments} +0 -0
  38. data/examples/{code/components → components} +0 -0
  39. data/examples/{root/etc → etc}/init.d/sleeper +0 -0
  40. data/examples/{root/etc → etc}/otherfile +0 -0
  41. data/examples/{root/etc → etc}/puppet/fileserver.conf +0 -0
  42. data/examples/{root/etc → etc}/puppet/namespaceauth.conf +0 -0
  43. data/examples/{root/etc → etc}/puppet/puppet.conf +0 -0
  44. data/examples/{root/etc → etc}/puppet/tagmail.conf +0 -0
  45. data/examples/{code/execs → execs} +0 -0
  46. data/examples/{code/file.bl → file.bl} +0 -0
  47. data/examples/{code/filedefaults → filedefaults} +0 -0
  48. data/examples/{code/fileparsing → fileparsing} +0 -0
  49. data/examples/{code/filerecursion → filerecursion} +0 -0
  50. data/examples/{code/functions → functions} +0 -0
  51. data/examples/{code/groups → groups} +0 -0
  52. data/examples/{code/head → head} +0 -0
  53. data/examples/{code/importing → importing} +0 -0
  54. data/examples/{code/mac_automount.pp → mac_automount.pp} +0 -0
  55. data/examples/{code/mac_dscl.pp → mac_dscl.pp} +0 -0
  56. data/examples/{code/mac_dscl_revert.pp → mac_dscl_revert.pp} +0 -0
  57. data/examples/{code/mac_netinfo.pp → mac_netinfo.pp} +0 -0
  58. data/examples/{code/mac_pkgdmg.pp → mac_pkgdmg.pp} +0 -0
  59. data/examples/{code/modules → modules}/sample-module.pp +0 -0
  60. data/examples/{code/modules → modules}/sample-module/README.txt +0 -0
  61. data/examples/{code/modules → modules}/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +0 -0
  62. data/examples/{code/modules → modules}/sample-module/manifests/init.pp +0 -0
  63. data/examples/{code/modules → modules}/sample-module/templates/sample.erb +0 -0
  64. data/examples/{code/nodes → nodes} +0 -0
  65. data/examples/{code/one → one} +0 -0
  66. data/examples/{code/relationships → relationships} +0 -0
  67. data/examples/{code/selectors → selectors} +0 -0
  68. data/examples/{code/simpletests → simpletests} +0 -0
  69. data/examples/{code/svncommit → svncommit} +0 -0
  70. data/ext/autotest/Rakefile +8 -0
  71. data/ext/autotest/config +43 -0
  72. data/ext/autotest/readme.rst +16 -0
  73. data/{examples/root → ext}/bin/sleeper +1 -1
  74. data/ext/emacs/puppet-mode.el +246 -184
  75. data/ext/ldap/puppet.schema +7 -2
  76. data/ext/module_puppet +4 -3
  77. data/ext/nagios/check_puppet.rb +117 -0
  78. data/ext/puppetlast +40 -0
  79. data/install.rb +12 -3
  80. data/lib/puppet.rb +1 -44
  81. data/lib/puppet/defaults.rb +23 -10
  82. data/lib/puppet/dsl.rb +2 -2
  83. data/lib/puppet/executables/client/certhandler.rb +77 -0
  84. data/lib/puppet/external/nagios.rb +1 -1
  85. data/lib/puppet/external/nagios/base.rb +60 -46
  86. data/lib/puppet/file_serving/indirection_hooks.rb +4 -2
  87. data/lib/puppet/file_serving/metadata.rb +0 -9
  88. data/lib/puppet/file_serving/terminus_helper.rb +4 -4
  89. data/lib/puppet/indirector.rb +26 -28
  90. data/lib/puppet/indirector/catalog/compiler.rb +6 -28
  91. data/lib/puppet/indirector/checksum/file.rb +2 -2
  92. data/lib/puppet/indirector/direct_file_server.rb +7 -7
  93. data/lib/puppet/indirector/envelope.rb +13 -0
  94. data/lib/puppet/indirector/exec.rb +2 -2
  95. data/lib/puppet/indirector/facts/facter.rb +2 -2
  96. data/lib/puppet/indirector/file.rb +17 -14
  97. data/lib/puppet/indirector/file_metadata/file.rb +2 -2
  98. data/lib/puppet/indirector/file_server.rb +14 -14
  99. data/lib/puppet/indirector/indirection.rb +113 -48
  100. data/lib/puppet/indirector/ldap.rb +13 -25
  101. data/lib/puppet/indirector/memory.rb +7 -7
  102. data/lib/puppet/indirector/module_files.rb +14 -14
  103. data/lib/puppet/indirector/node/exec.rb +3 -10
  104. data/lib/puppet/indirector/node/ldap.rb +138 -41
  105. data/lib/puppet/indirector/node/plain.rb +1 -8
  106. data/lib/puppet/indirector/node/rest.rb +1 -1
  107. data/lib/puppet/indirector/plain.rb +2 -2
  108. data/lib/puppet/indirector/report/processor.rb +2 -2
  109. data/lib/puppet/indirector/request.rb +42 -0
  110. data/lib/puppet/indirector/rest.rb +51 -3
  111. data/lib/puppet/indirector/terminus.rb +0 -27
  112. data/lib/puppet/indirector/yaml.rb +12 -17
  113. data/lib/puppet/metatype/attributes.rb +3 -7
  114. data/lib/puppet/metatype/evaluation.rb +2 -2
  115. data/lib/puppet/module.rb +6 -2
  116. data/lib/puppet/network/client/master.rb +29 -81
  117. data/lib/puppet/network/handler/master.rb +12 -43
  118. data/lib/puppet/network/http.rb +8 -6
  119. data/lib/puppet/network/http/handler.rb +42 -32
  120. data/lib/puppet/network/http/mongrel.rb +8 -9
  121. data/lib/puppet/network/http/mongrel/rest.rb +42 -15
  122. data/lib/puppet/network/http/webrick.rb +27 -16
  123. data/lib/puppet/network/http/webrick/rest.rb +38 -14
  124. data/lib/puppet/network/http_pool.rb +3 -2
  125. data/lib/puppet/network/server.rb +24 -22
  126. data/lib/puppet/network/xmlrpc/client.rb +6 -1
  127. data/lib/puppet/node.rb +38 -79
  128. data/lib/puppet/node/catalog.rb +9 -0
  129. data/lib/puppet/node/facts.rb +9 -1
  130. data/lib/puppet/parser/ast/function.rb +1 -1
  131. data/lib/puppet/parser/collector.rb +6 -0
  132. data/lib/puppet/parser/compiler.rb +1 -1
  133. data/lib/puppet/parser/functions.rb +25 -1
  134. data/lib/puppet/parser/interpreter.rb +2 -17
  135. data/lib/puppet/parser/parser.rb +4 -4
  136. data/lib/puppet/parser/parser_support.rb +6 -2
  137. data/lib/puppet/parser/resource.rb +6 -0
  138. data/lib/puppet/parser/templatewrapper.rb +9 -0
  139. data/lib/puppet/pgraph.rb +1 -1
  140. data/lib/puppet/property.rb +0 -1
  141. data/lib/puppet/provider.rb +9 -95
  142. data/lib/puppet/provider/confine.rb +77 -0
  143. data/lib/puppet/provider/confine/exists.rb +22 -0
  144. data/lib/puppet/provider/confine/false.rb +19 -0
  145. data/lib/puppet/provider/confine/feature.rb +17 -0
  146. data/lib/puppet/provider/confine/true.rb +20 -0
  147. data/lib/puppet/provider/confine/variable.rb +42 -0
  148. data/lib/puppet/provider/confine_collection.rb +47 -0
  149. data/lib/puppet/provider/confiner.rb +20 -0
  150. data/lib/puppet/provider/cron/crontab.rb +6 -2
  151. data/lib/puppet/provider/group/groupadd.rb +1 -1
  152. data/lib/puppet/provider/group/ldap.rb +48 -0
  153. data/lib/puppet/provider/ldap.rb +137 -0
  154. data/lib/puppet/provider/nameservice.rb +1 -2
  155. data/lib/puppet/provider/nameservice/objectadd.rb +2 -5
  156. data/lib/puppet/provider/package/dpkg.rb +16 -1
  157. data/lib/puppet/provider/package/freebsd.rb +15 -4
  158. data/lib/puppet/provider/package/gem.rb +33 -12
  159. data/lib/puppet/provider/package/pkgdmg.rb +1 -60
  160. data/lib/puppet/provider/package/ports.rb +6 -1
  161. data/lib/puppet/provider/package/rpm.rb +14 -13
  162. data/lib/puppet/provider/package/urpmi.rb +3 -3
  163. data/lib/puppet/provider/service/base.rb +4 -4
  164. data/lib/puppet/provider/service/debian.rb +1 -1
  165. data/lib/puppet/provider/service/init.rb +5 -3
  166. data/lib/puppet/provider/service/redhat.rb +35 -7
  167. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +69 -0
  168. data/lib/puppet/provider/user/ldap.rb +133 -0
  169. data/lib/puppet/provider/user/useradd.rb +1 -1
  170. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +14 -14
  171. data/lib/puppet/rails/database/schema.rb +9 -0
  172. data/lib/puppet/rails/resource.rb +1 -0
  173. data/lib/puppet/reference/providers.rb +8 -2
  174. data/lib/puppet/reference/report.rb +23 -0
  175. data/lib/puppet/reports/rrdgraph.rb +4 -2
  176. data/lib/puppet/sslcertificates/ca.rb +9 -4
  177. data/lib/puppet/sslcertificates/support.rb +26 -2
  178. data/lib/puppet/transaction.rb +11 -16
  179. data/lib/puppet/transaction/change.rb +94 -0
  180. data/lib/puppet/transaction/event.rb +21 -0
  181. data/lib/puppet/transaction/report.rb +4 -0
  182. data/lib/puppet/type.rb +0 -2
  183. data/lib/puppet/type/file/ensure.rb +0 -5
  184. data/lib/puppet/type/file/group.rb +13 -7
  185. data/lib/puppet/type/file/source.rb +8 -15
  186. data/lib/puppet/type/file/target.rb +2 -0
  187. data/lib/puppet/type/group.rb +1 -1
  188. data/lib/puppet/type/mount.rb +4 -2
  189. data/lib/puppet/type/nagios_hostescalation.rb +3 -0
  190. data/lib/puppet/type/nagios_servicegroup.rb +3 -0
  191. data/lib/puppet/type/ssh_authorized_key.rb +56 -0
  192. data/lib/puppet/type/user.rb +3 -0
  193. data/lib/puppet/type/yumrepo.rb +0 -1
  194. data/lib/puppet/util.rb +1 -1
  195. data/lib/puppet/util/ldap.rb +5 -0
  196. data/lib/puppet/util/ldap/connection.rb +69 -0
  197. data/lib/puppet/util/ldap/generator.rb +45 -0
  198. data/lib/puppet/util/ldap/manager.rb +281 -0
  199. data/lib/puppet/util/posix.rb +2 -2
  200. data/lib/puppet/util/resource_template.rb +61 -0
  201. data/lib/puppet/util/settings.rb +63 -3
  202. data/lib/puppet/util/storage.rb +4 -0
  203. data/lib/puppet/util/warnings.rb +7 -0
  204. data/man/man8/filebucket.8 +116 -0
  205. data/man/man8/pi.8 +34 -0
  206. data/man/man8/puppet.8 +78 -0
  207. data/man/man8/puppet.conf.8 +1747 -0
  208. data/man/man8/puppetca.8 +118 -0
  209. data/man/man8/puppetd.8 +184 -0
  210. data/man/man8/puppetdoc.8 +62 -0
  211. data/man/man8/puppetmasterd.8 +87 -0
  212. data/man/man8/puppetrun.8 +151 -0
  213. data/man/man8/ralsh.8 +135 -0
  214. data/test/README +24 -0
  215. data/test/certmgr/support.rb +28 -1
  216. data/test/data/failers/badclassnoparam +10 -0
  217. data/test/data/failers/badclassparam +10 -0
  218. data/test/data/failers/badcompnoparam +9 -0
  219. data/test/data/failers/badcompparam +9 -0
  220. data/test/data/failers/badtypeparam +3 -0
  221. data/test/data/failers/noobjectrvalue +1 -0
  222. data/test/data/providers/cron/crontab.allthree +17 -0
  223. data/test/data/providers/cron/crontab.envNcomment +12 -0
  224. data/test/data/providers/cron/crontab.envNname +11 -0
  225. data/test/data/providers/cron/crontab.multirecords +12 -0
  226. data/test/data/providers/cron/crontab_collections.yaml +44 -0
  227. data/test/data/providers/cron/crontab_multiple_with_env.yaml +54 -0
  228. data/test/data/providers/cron/crontab_sample_records.yaml +272 -0
  229. data/test/data/providers/cron/examples/freebsd +2 -0
  230. data/test/data/providers/cron/examples/one +14 -0
  231. data/test/data/providers/cron/examples/openbsd +20 -0
  232. data/test/data/providers/package/testpackages.yaml +65 -0
  233. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +5 -0
  234. data/test/data/reports/1.yaml +108 -0
  235. data/test/data/reports/2.yaml +108 -0
  236. data/test/data/reports/tagmail_failers.conf +3 -0
  237. data/test/data/reports/tagmail_passers.conf +30 -0
  238. data/test/data/snippets/aliastest.pp +16 -0
  239. data/test/data/snippets/argumentdefaults +14 -0
  240. data/test/data/snippets/casestatement.pp +58 -0
  241. data/test/data/snippets/classheirarchy.pp +15 -0
  242. data/test/data/snippets/classincludes.pp +17 -0
  243. data/test/data/snippets/classpathtest +11 -0
  244. data/test/data/snippets/collection.pp +10 -0
  245. data/test/data/snippets/collection_within_virtual_definitions.pp +20 -0
  246. data/test/data/snippets/componentmetaparams.pp +11 -0
  247. data/test/data/snippets/componentrequire.pp +8 -0
  248. data/test/data/snippets/deepclassheirarchy.pp +23 -0
  249. data/test/data/snippets/defineoverrides.pp +17 -0
  250. data/test/data/snippets/emptyclass.pp +9 -0
  251. data/test/data/snippets/emptyexec.pp +3 -0
  252. data/test/data/snippets/falsevalues.pp +3 -0
  253. data/test/data/snippets/filecreate +11 -0
  254. data/test/data/snippets/fqdefinition.pp +5 -0
  255. data/test/data/snippets/fqparents.pp +11 -0
  256. data/test/data/snippets/implicititeration +15 -0
  257. data/test/data/snippets/multipleinstances +7 -0
  258. data/test/data/snippets/multisubs.pp +13 -0
  259. data/test/data/snippets/namevartest +9 -0
  260. data/test/data/snippets/scopetest +13 -0
  261. data/test/data/snippets/selectorvalues.pp +42 -0
  262. data/test/data/snippets/simpledefaults +5 -0
  263. data/test/data/snippets/simpleselector +38 -0
  264. data/test/data/snippets/singleary.pp +19 -0
  265. data/test/data/snippets/singlequote.pp +11 -0
  266. data/test/data/snippets/singleselector.pp +22 -0
  267. data/test/data/snippets/subclass_name_duplication.pp +11 -0
  268. data/test/data/snippets/tag.pp +9 -0
  269. data/test/data/snippets/tagged.pp +35 -0
  270. data/test/data/snippets/virtualresources.pp +14 -0
  271. data/test/data/types/hosts/1 +3 -0
  272. data/test/data/types/hosts/2 +13 -0
  273. data/test/data/types/hosts/solaris +5 -0
  274. data/test/data/types/mailalias/file1 +183 -0
  275. data/test/data/types/mount/freebsd.fstab +7 -0
  276. data/test/data/types/mount/linux.fstab +11 -0
  277. data/test/data/types/mount/solaris.fstab +11 -0
  278. data/test/data/types/port/1 +533 -0
  279. data/test/data/types/port/darwin +11866 -0
  280. data/test/data/types/ssh_authorized_key/1 +2 -0
  281. data/test/data/types/sshkey/1 +21 -0
  282. data/test/data/types/yumrepos/fedora-devel.repo +26 -0
  283. data/test/data/types/yumrepos/fedora.repo +9 -0
  284. data/test/language/parser.rb +8 -1
  285. data/test/lib/puppettest/runnable_test.rb +3 -0
  286. data/test/lib/puppettest/support/utils.rb +1 -1
  287. data/test/lib/rake/puppet_testtask.rb +3 -0
  288. data/test/lib/stubba.rb +1 -1
  289. data/test/network/client/ca.rb +1 -0
  290. data/test/network/client/master.rb +13 -127
  291. data/test/network/handler/master.rb +61 -80
  292. data/test/other/provider.rb +0 -45
  293. data/test/other/transactions.rb +53 -15
  294. data/test/rails/host.rb +0 -37
  295. data/test/ral/providers/cron/crontab.rb +32 -3
  296. data/test/ral/providers/provider.rb +28 -7
  297. data/test/ral/type/filesources.rb +2 -18
  298. data/test/ral/type/sshkey.rb +0 -1
  299. data/test/ral/type/user.rb +6 -0
  300. data/test/test +241 -0
  301. metadata +289 -113
  302. data/examples/root/etc/configfile +0 -0
  303. data/examples/root/etc/debian-passwd +0 -29
  304. data/examples/root/etc/debian-syslog.conf +0 -71
  305. data/lib/puppet/event.rb +0 -28
  306. data/lib/puppet/network/handler/configuration.rb +0 -184
  307. data/lib/puppet/network/http/mongrel/xmlrpc.rb +0 -4
  308. data/lib/puppet/network/http/webrick/xmlrpc.rb +0 -4
  309. data/lib/puppet/propertychange.rb +0 -141
  310. data/lib/puppet/provider/interface/redhat.rb +0 -250
  311. data/lib/puppet/provider/interface/sunos.rb +0 -133
  312. data/lib/puppet/type/interface.rb +0 -60
  313. data/lib/puppet/util/variables.rb +0 -38
  314. data/test/network/handler/configuration.rb +0 -160
  315. data/test/other/propertychange.rb +0 -140
  316. data/test/util/loadedfile.rb +0 -121
@@ -0,0 +1,2 @@
1
+ ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= francois.deppierraz@camptocamp.com
2
+ from="192.168.1.2",command="/usr/local/bin/backup.sh",no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVesG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4ksG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4ksG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4kxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaL Backup system
@@ -0,0 +1,21 @@
1
+ hosting2.planetargon.com,64.34.164.77 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAy+f2t52cDMrYkgEKQ6juqfMf/a0nDFry3JAzl+SAWQ0gTklVxNcVbfHx2pkZk66EBGQfrK33Bx1BflZ/iEDyiCwmzVtNba0X9A6ELYjB9WSkWdIqZCfPlKZMu9N//aZ6+3SDVuz/BVFsAVmtqQ4Let2QjOFiSIKXrtPqWvVT/MM=
2
+ kirby.madstop.com,192.168.0.5 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAw9iHuAa/wepHoUzWqsvhQvSkpE4K7agrdLOWHM9mvyRQ2X3HVq5GqzAvWu4J+f0FvcLPwA9tivpxt1oSt5MOtvDM6HoM+8m3P4daBp0nlNaYR8/vHCAmX6N3RyM8FWfp+VqWyux1SooQwxYxVFy86G78ApTqNsZ+p7cHmnBYqk0=
3
+ fedora1,192.168.0.51 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyz1rKcApU4//j8CHYKexq4qnq2WVqLPrZYGnlij1t7FscLiDVKvBuRHVkfyTNIjAM/t7tM1Dj+FuD4iWziCmf7RO9q4wI5y/1zgCiSUegnZVSmH2yxnWGMdHGpXOkN3NXcpy6jylxyBo0M7T22PSezCxyUVfMclesjOEO1jETd0=
4
+ kirby ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAw9iHuAa/wepHoUzWqsvhQvSkpE4K7agrdLOWHM9mvyRQ2X3HVq5GqzAvWu4J+f0FvcLPwA9tivpxt1oSt5MOtvDM6HoM+8m3P4daBp0nlNaYR8/vHCAmX6N3RyM8FWfp+VqWyux1SooQwxYxVFy86G78ApTqNsZ+p7cHmnBYqk0=
5
+ sol10b,192.168.0.50 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs37kiDwKxWqi6EfSdKwRaZXBwh2doOARRqZzyitBaPwESy26DwTx+xdQ2rwB4V2k1WIec+1f3bgTS2ArH75dQSPyba2HKqxaSRBd3Zh4z23+uUxpupEyoRdW1HolMOvuoceheSMsruiuYcuiyct41d4c/Qmr51Dv04Doi00k6Ws=
6
+ piratehaven.org,64.81.59.88 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA7TYRRkle0wDNohZ0TNZN6R1Zp0svxgX+GJ9umI5yNM1bMxUTgeNRh5nIvZg1HgD1WRXQ57dSxxLzbvRyAqc245g6S8eWWCtenvOFLl0rOF5D3VxbQuw79sOe8/Ac8TC+c8RuWB7aaxpwL5Rv9xfDeazOtoKXj7+uwQW1PUmTaEM=
7
+ atalanta,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAysniuWiJH6OQLXl63XXcS1b/hP2lAgSz0IutjQ6ZUfBrt1BZ8udEgSh57w5QDLsZ1lNvND61u5cy6iDKXI5TIQY4DvUmsoFZhyr4iYJbtT/h6UJSyaZtEnA7ZMRjGhUIMOn+mjbj7Z3zmJMhxtImK3Xo3O2fJ1hnK4jsBwQPSLc=
8
+ pixie,192.168.0.9 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAzDp588CvET6w11LB2s/vPjc4tX9+u46iYJgNFfhzxrXYMVv4GF7d30IXB5+Hwyi2FOQIG1+h0kUXVGWEv64rAFBT7pD2KMFX0lcDERV4avqT0TRDIIA5OqFOhq9Ff+kOmHS2cB7eFyR5vqbN4ujOnJGTmru9dcqyL+2AcFekvh0=
9
+ culain,192.168.0.3 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvJ/IORhQMdAsJ7LB1sI2LlWUHc7HPTCDiEgJ96ij3jFvqaIiYieRFaNkxbbk75mPkj3vIqWIgAsAtHmKX4wDikNG/gyjs4WM4cWFKtl2jiVhqpoxqqCaVxs6Ex+vpKuKhQR6SzFBFDlBZYP9an6DPu1msTLT8/hZH2WwswVmpyU=
10
+ cs312-server.een.orst.edu,128.193.40.66 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA+t3hsOiyp1mztt013bLdJqIAFCo8lxlz86MYEPz/mADHzWLs3Xv7xpAUv/E8pRbhEOzXo84EddORRBXz6DgVyMah8+v/u3IOkpXuZI0Iu1n5hZyf2l5DGEyGecr3oqqjUdMuM9HeXFLnqXJI3hDE7civBtqf5AJSol+TCcipeE8=
11
+ freebsd1,192.168.0.52 ssh-dss AAAAB3NzaC1kc3MAAACBAJSiOyQhYlKAi0FDLKy42VzLDq6yJWXGXVCLSfgWyVx7QCq/3+W3C1dtHuAvjbypcjqqvsuGGITgQ1Y6B/+76n5d7FyQnj4SFZ5drOBn/TvslXhrS/Ok5KCcndfNAa+EyMnSZJ21jhoRjZftY4lmb4hy6fEF3RvjuOdf1qBN5FWpAAAAFQDcsWF0zELAW6YUlSjAyO0T0lfPbwAAAIAlOLdOd/WszzVaplCOnH5vF6LWfr6BosZKDkFi0mv6Ec636YGaj4AMxK8sRPusHv6sVByN17ntIJnLo2XD1SuoH28bZ0ZnPIdVnd0l1KqsOCuuow9LZYJUihezoUuYuTvij1jZdrwltuPNJTVLYtsZDnKE5plw+Tjzeb7ImjbXGwAAAIBT40olg3fxhRDiZECle0WK7GitgXCB3njs+4dba8VwveEJb9UuulMc1eR+zQiJR96IUBagC9NiLvUGS1IfiIHpT4FA8O/MK1W9SgxXB9d39Nk/9l8dH3U/fLnbC/hYVo8bN0or/mKxcxQMkdBwpPlWAbELRftod2BkkkvgfQdc+g==
12
+ 192.168.0.2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCZ+qxpMMRJ3otGsjaYeKTKf6tuCZyK1cD+ns9Eu7V0ZJLJ/LLMxduu7n4H/ufGI5rGV5axzgx8yZhjDRzsrGjLAQYsqlomMkf901YQI6UuieSA4MZa5MDkq/Jt6Vx1kEGTpkgrfw9kRMX5BngECt1QKY4xTgC7Ex+WlFvZwk+tRUT3
13
+ openbsd1,192.168.0.54 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvgRVrtJk0fBg9YsLf7rWR1X32ZjFcva5XBvenDlHruObaHzuGXyyr6iOCAEOc7eCZjlPBYrGZ2potqyk8HlBOHXr1cCBf49t4yAt8KgKswtzWlgdbU1UEwllSRVOpzqULAT0smv/jfaIZdvRoN1rLriqtpn4bQL//ZOHiyXCwdlJ+di8Mza2L8KZ5T75hwIFBhrgL12xfymRp3v+Iy21MjjzsF3pROIkZ7icitNqQF55U9vsHaA37vG8FepVkO10bYYP7IHPZaBPBMPx7qPyRgRDJahEUGBnkIkzwJHEmA+7YMiNTZu6MigezD+CIqY1xOi/eXZwObLwLKXo7eRmpw==
14
+ 192.168.0.60 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAufcvE7s1eRwhUwMBfZ6uFNxkdSdzjSDEn3vjByOjG/eraNhnYAW3rxV7WIf2pEa6JSOMrE1mqsEL75xEtpXlzC949Ysz4+1OSHY52KonoFm/a+FbmbFp81TVuVPYaLoeWN27STiJh+puC5spkIZe0laqT1GU13M4gj6B+j3NLhU=
15
+ rh3a,192.168.0.55 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAufcvE7s1eRwhUwMBfZ6uFNxkdSdzjSDEn3vjByOjG/eraNhnYAW3rxV7WIf2pEa6JSOMrE1mqsEL75xEtpXlzC949Ysz4+1OSHY52KonoFm/a+FbmbFp81TVuVPYaLoeWN27STiJh+puC5spkIZe0laqT1GU13M4gj6B+j3NLhU=
16
+ tsetse,192.168.0.7 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwCDGn82BEMSCfcE2LZKcwdAoyIBC+u2twVwWNRm3KzyrJMQ+RbTQo4AwGOdyr/QYh6KaxTKTSoDtiBLr132uenMQKwF47gCKMA1T47uiy+TBUehgOGwOxteSYP/pQRpKXFmhOppSPyDPQVq234XvANeJp0iT8ZKEhF2FsWTs6sM=
17
+ config.sage.org,131.106.3.205 ssh-dss AAAAB3NzaC1kc3MAAACBAL2akEcIfQsfm3zCd2hD6PgH3kWA/tqX/qbrLhL/ipX7iqK/y282GMClZQSQjc1YNi9virvLzb6u/gdZxicZ8K5O3FaJrULQJOZaP62SOHk5CUSHVnvpMCaCnbwB6gEHa2LeMWStcEfWW+g1CC2hzPJw16/S5GISGXbyanO02MnXAAAAFQDomwx/OCjTmmQljMTU5rgNn2E4gwAAAIBmtMSfcs2Tq5iFFKK5cahluv047vVNfXqYIAkeJniceL0Et16MKfuzadpq0H9ocxQYW/5Ir9nUULrdxBUN9LxNKq15/uWkJC9QCSh8PysgvFnjVZeCODua/dn6eZTZnY9DZ3S6v1pT8CP6uWr5fmZJ8FKJGrC3gYX4y1V1ZTCVewAAAIB6e7RCST6vkTS5rgn5wGbrfLK5ad+PW+2i66k77Zv1pjtfRz+0oejBjwJDPNVSc2YNEl7X0nEEMNjo/a5x8Ls+nVqhzJA+NXIwS1e/moKbXFGewW5HAtxd79gtInC8dEIO7hmnWnqF1dBkRHXg1YffYkHrMVJBxpzagw7nYa0BBQ==
18
+ rh3b,192.168.0.56 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAufcvE7s1eRwhUwMBfZ6uFNxkdSdzjSDEn3vjByOjG/eraNhnYAW3rxV7WIf2pEa6JSOMrE1mqsEL75xEtpXlzC949Ysz4+1OSHY52KonoFm/a+FbmbFp81TVuVPYaLoeWN27STiJh+puC5spkIZe0laqT1GU13M4gj6B+j3NLhU=
19
+ centos1,192.168.0.57 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0DXqYF+3Lf68GkWBAjjKBb6UITNnzm4wiDi/AGjv5+DoVXqDcqHvZ8rZFAMgUe1dVob4pWT2ZWLHW0gicoJCdr4UQbPXlWz1F62z8fo2PRRPlG6KN1wmF7pnyml8jr0wBX8lQZJsMqi4InGozf7wFHLH/7DNGRK3MD6tSp3Z4is=
20
+ doorstop.cafes.net,205.241.238.186 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApJKeB9/bN5t55zLETHs0MVo/vEkfQ3EzY7178GKLI/yiOFmcn+NvUvUtCQK/xKpod813LBHCODxZPG1Kb0SjlaC/EkFEenb74LNu0o1qXa1GWh3wfaIm0JRNjXqPqxAWTlMs43O2HXwOwmLVhl7SSP3xtTw6h9gREbVKmfBaRdsRfzD0etfz1NCnmGh/1Sh9+j4eeS+IBtwoR5JVhZVhuofHCqs5HZ8gLDgfn8HXP7pMbLkx54cf1R/tmFmn9JGLdTPtEGcSIiu7414XSbfChSC83rGZCDPKHq7ZodiE8GpbWLBnyPXi2AYxTPM7aZMqitIHv3MWf5suV0q0WLGdnQ==
21
+ host.domain.com,host1.domain.com,192.168.0.1 dss thisismykey1
@@ -0,0 +1,26 @@
1
+ [development]
2
+ # These packages are untested and still under development. This
3
+ # repository is used for updates to test releases, and for
4
+ # development of new releases.
5
+ #
6
+ # This repository can see significant daily turn over and can see major
7
+ # functionality changes which cause unexpected problems with other
8
+ # development packages. Please use these packages if you want to work
9
+ # with the Fedora developers by testing these new development packages.
10
+ #
11
+ # fedora-test-list@redhat.com is available as a discussion forum for
12
+ # testing and troubleshooting for development packages in conjunction
13
+ # with new test releases.
14
+ #
15
+ # fedora-devel-list@redhat.com is available as a discussion forum for
16
+ # testing and troubleshooting for development packages in conjunction
17
+ # with developing new releases.
18
+ #
19
+ # Reportable issues should be filed at bugzilla.redhat.com
20
+ # Product: Fedora Core
21
+ # Version: devel
22
+ name=Fedora Core $releasever - Development Tree
23
+ #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
24
+ mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-rawhide
25
+ enabled=0
26
+ gpgcheck=0
@@ -0,0 +1,9 @@
1
+ [base]
2
+ name=Fedora Core $releasever - $basearch - Base
3
+ mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
4
+ enabled=1
5
+ gpgcheck=1
6
+ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
7
+ exclude=foo
8
+ bar
9
+ baz
@@ -1141,7 +1141,6 @@ file { "/tmp/yayness":
1141
1141
  name = "sub"
1142
1142
  mk_module(modname, :init => %w{separate}, :sub => %w{separate::sub})
1143
1143
 
1144
- Puppet.err :yay
1145
1144
  # First try it with a namespace
1146
1145
  klass = parser.findclass("separate", name)
1147
1146
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from separate file with a namespace")
@@ -1171,6 +1170,14 @@ file { "/tmp/yayness":
1171
1170
  klass = parser.findclass("", "alone::sub")
1172
1171
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with no namespace")
1173
1172
  assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
1173
+
1174
+ # and with the definition in its own file
1175
+ name = "mymod"
1176
+ mk_module(name, :define => true, :mydefine => ["mymod::mydefine"])
1177
+
1178
+ klass = parser.finddefine("", "mymod::mydefine")
1179
+ assert_instance_of(AST::Definition, klass, "Did not autoload definition from its own file")
1180
+ assert_equal("mymod::mydefine", klass.classname, "Incorrect definition was returned")
1174
1181
  end
1175
1182
 
1176
1183
  # Make sure class, node, and define methods are case-insensitive
@@ -15,6 +15,9 @@ module PuppetTest
15
15
  # Evaluate all of our tests to see if any of them are false
16
16
  # and thus whether this test is considered not runnable.
17
17
  def runnable?
18
+ if superclass.respond_to?(:runnable?) and ! superclass.runnable?
19
+ return false
20
+ end
18
21
  @messages ||= []
19
22
  return false unless @messages.empty?
20
23
  return true unless defined? @confines
@@ -88,7 +88,7 @@ module PuppetTest::Support::Utils
88
88
  newevents = nil
89
89
  assert_nothing_raised("Transaction %s %s failed" % [type, msg]) {
90
90
  newevents = trans.send(method).reject { |e| e.nil? }.collect { |e|
91
- e.event
91
+ e.name
92
92
  }
93
93
  }
94
94
 
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'rake'
4
+ require 'rake/testtask'
5
+
3
6
  module Rake
4
7
  class PuppetTestTask < Rake::TestTask
5
8
  def rake_loader
@@ -1,2 +1,2 @@
1
1
  # for backwards compatibility
2
- require 'mocha'
2
+ require 'mocha'
@@ -30,6 +30,7 @@ class TestClientCA < Test::Unit::TestCase
30
30
 
31
31
  # Make sure the ca defaults to specific ports and names
32
32
  def test_ca_server
33
+ Puppet.settings.stubs(:value).returns "eh"
33
34
  Puppet.settings.expects(:value).with(:ca_server).returns("myca")
34
35
  Puppet.settings.expects(:value).with(:ca_port).returns(321)
35
36
  Puppet.settings.stubs(:value).with(:http_proxy_host).returns(nil)
@@ -177,10 +177,12 @@ end
177
177
 
178
178
  assert(File.exists?(destfile), "Did not get fact")
179
179
 
180
- assert_equal(hostname, Facter.value(:hostname),
180
+ facts = Puppet::Network::Client.master.facts
181
+
182
+ assert_equal(hostname, facts["hostname"],
181
183
  "Lost value to hostname")
182
184
 
183
- assert_equal("yayness", Facter.value(:myfact),
185
+ assert_equal("yayness", facts["myfact"],
184
186
  "Did not get correct fact value")
185
187
 
186
188
  # Now modify the file and make sure the type is replaced
@@ -194,20 +196,22 @@ end
194
196
  assert_nothing_raised {
195
197
  Puppet::Network::Client.master.getfacts
196
198
  }
199
+ facts = Puppet::Network::Client.master.facts
197
200
 
198
- assert_equal("funtest", Facter.value(:myfact),
201
+ assert_equal("funtest", facts["myfact"],
199
202
  "Did not reload fact")
200
- assert_equal(hostname, Facter.value(:hostname),
203
+ assert_equal(hostname, facts["hostname"],
201
204
  "Lost value to hostname")
202
205
 
203
206
  # Now run it again and make sure the fact still loads
204
207
  assert_nothing_raised {
205
208
  Puppet::Network::Client.master.getfacts
206
209
  }
210
+ facts = Puppet::Network::Client.master.facts
207
211
 
208
- assert_equal("funtest", Facter.value(:myfact),
212
+ assert_equal("funtest", facts["myfact"],
209
213
  "Did not reload fact")
210
- assert_equal(hostname, Facter.value(:hostname),
214
+ assert_equal(hostname, facts["hostname"],
211
215
  "Lost value to hostname")
212
216
  end
213
217
 
@@ -305,44 +309,6 @@ end
305
309
  assert_equal(RUBY_VERSION, facts["rubyversion"], "ruby version did not get added")
306
310
  end
307
311
 
308
- # #424
309
- def test_caching_of_compile_time
310
- file = tempfile()
311
- manifest = tempfile()
312
- File.open(manifest, "w") { |f| f.puts "file { '#{file}': content => yay }" }
313
-
314
- Puppet::Node::Facts.indirection.stubs(:save)
315
-
316
- driver = mkmaster(:Manifest => manifest)
317
- driver.local = false
318
- master = mkclient(driver)
319
-
320
- # We have to make everything thinks it's remote, because there's no local caching info
321
- master.local = false
322
-
323
- assert(! master.fresh?(master.class.facts),
324
- "Considered fresh with no compile at all")
325
-
326
- assert_nothing_raised { master.run }
327
- assert(master.fresh?(master.class.facts),
328
- "not considered fresh after compile")
329
-
330
- # Now make sure the config time is cached
331
- assert(master.compile_time, "No stored config time")
332
- assert_equal(master.compile_time, Puppet::Util::Storage.cache(:configuration)[:compile_time], "times did not match")
333
- time = master.compile_time
334
- master.clear
335
- File.unlink(file)
336
- Puppet::Util::Storage.store
337
-
338
- # Now make a new master
339
- Puppet::Util::Storage.clear
340
- master = mkclient(driver)
341
- master.run
342
- assert_equal(time, master.compile_time, "time was not retrieved from cache")
343
- assert(FileTest.exists?(file), "file was not created on second run")
344
- end
345
-
346
312
  # #540 - make sure downloads aren't affected by noop
347
313
  def test_download_in_noop
348
314
  source = tempfile
@@ -384,44 +350,6 @@ end
384
350
  "Tried to load cache when it is non-existent")
385
351
  end
386
352
 
387
- # #519 - cache the facts so that we notice if they change.
388
- def test_factchanges_cause_recompile
389
- $value = "one"
390
- Facter.add(:testfact) do
391
- setcode { $value }
392
- end
393
- assert_equal("one", Facter.value(:testfact), "fact was not set correctly")
394
- master = mkclient
395
- master.local = false
396
- driver = master.send(:instance_variable_get, "@driver")
397
- driver.local = false
398
-
399
- Puppet::Node::Facts.indirection.stubs(:save)
400
-
401
- assert_nothing_raised("Could not compile config") do
402
- master.getconfig
403
- end
404
-
405
- $value = "two"
406
- Facter.clear
407
- Facter.loadfacts
408
- Facter.add(:testfact) do
409
- setcode { $value }
410
- end
411
- facts = master.class.facts
412
- assert_equal("two", Facter.value(:testfact), "fact did not change")
413
-
414
- assert(master.send(:facts_changed?, facts),
415
- "master does not think facts changed")
416
- assert(! master.fresh?(facts),
417
- "master is considered fresh after facts changed")
418
-
419
- assert_nothing_raised("Could not recompile when facts changed") do
420
- master.getconfig
421
- end
422
-
423
- end
424
-
425
353
  def test_locking
426
354
  master = mkclient
427
355
 
@@ -455,40 +383,6 @@ end
455
383
  assert_equal(100, master.timeout, "Did not get changed integer default value for timeout on second run")
456
384
  end
457
385
 
458
- # #569 -- Make sure we can ignore dynamic facts.
459
- def test_dynamic_facts
460
- client = mkclient
461
-
462
- assert_equal(%w{memorysize memoryfree swapsize swapfree}, client.class.dynamic_facts,
463
- "Did not get correct defaults for dynamic facts")
464
-
465
- # Cache some values for comparison
466
- cached = {"one" => "yep", "two" => "nope"}
467
- Puppet::Util::Storage.cache(:configuration)[:facts] = cached
468
-
469
- assert(! client.send(:facts_changed?, cached), "Facts incorrectly considered to be changed")
470
-
471
- # Now add some values to the passed result and make sure we get a positive
472
- newfacts = cached.dup
473
- newfacts["changed"] = "something"
474
-
475
- assert(client.send(:facts_changed?, newfacts), "Did not catch changed fact")
476
-
477
- # Now add a dynamic fact and make sure it's ignored
478
- newfacts = cached.dup
479
- newfacts["memorysize"] = "something"
480
-
481
- assert(! client.send(:facts_changed?, newfacts), "Dynamic facts resulted in a false positive")
482
-
483
- # And try it with both
484
- cached["memorysize"] = "something else"
485
- assert(! client.send(:facts_changed?, newfacts), "Dynamic facts resulted in a false positive")
486
-
487
- # And finally, with only in the cache
488
- newfacts.delete("memorysize")
489
- assert(! client.send(:facts_changed?, newfacts), "Dynamic facts resulted in a false positive")
490
- end
491
-
492
386
  def test_splay
493
387
  client = mkclient
494
388
 
@@ -582,17 +476,8 @@ end
582
476
 
583
477
  Puppet::Node::Facts.indirection.stubs(:save)
584
478
 
585
- master = client = nil
586
- assert_nothing_raised() {
587
- master = Puppet::Network::Handler.master.new(
588
- :Local => false
589
- )
590
- }
591
- assert_nothing_raised() {
592
- client = Puppet::Network::Client.master.new(
593
- :Master => master
594
- )
595
- }
479
+ master = Puppet::Network::Handler.master.new( :Local => false)
480
+ client = Puppet::Network::Client.master.new( :Master => master)
596
481
 
597
482
  # Fake that it's local, so it creates the class file
598
483
  client.local = false
@@ -601,6 +486,7 @@ end
601
486
  client.expects(:setclasses).with do |array|
602
487
  array.length == 2 and array.include?("yaytest") and array.include?("bootest")
603
488
  end
489
+
604
490
  assert_nothing_raised {
605
491
  client.getconfig
606
492
  }
@@ -8,104 +8,85 @@ require 'puppet/network/handler/master'
8
8
  class TestMaster < Test::Unit::TestCase
9
9
  include PuppetTest::ServerTest
10
10
 
11
+ def setup
12
+ super
13
+ @master = Puppet::Network::Handler.master.new(:Manifest => tempfile)
14
+
15
+ @catalog = stub 'catalog', :extract => ""
16
+ Puppet::Node::Catalog.stubs(:find).returns(@catalog)
17
+ end
18
+
11
19
  def teardown
12
20
  super
13
21
  Puppet::Indirector::Indirection.clear_cache
14
22
  end
15
23
 
16
- # Make sure that files are reread when they change.
17
- def test_filereread
18
- # Start with a normal setting
19
- Puppet[:filetimeout] = 15
24
+ def test_freshness_is_always_now
25
+ now1 = mock 'now1'
26
+ Time.expects(:now).returns(now1)
27
+
28
+ assert_equal(@master.freshness, now1, "Did not return current time as freshness")
29
+ end
20
30
 
21
- manifest = mktestmanifest()
31
+ def test_hostname_is_used_if_client_is_missing
32
+ @master.expects(:decode_facts).returns("hostname" => "yay")
33
+ Puppet::Node::Facts.expects(:new).with { |name, facts| name == "yay" }.returns(stub('facts', :save => nil))
22
34
 
23
- facts = Puppet::Network::Client.master.facts
24
- # Store them, so we don't determine frshness based on facts.
25
- Puppet::Util::Storage.cache(:configuration)[:facts] = facts
35
+ @master.getconfig("facts")
36
+ end
26
37
 
27
- file2 = @createdfile + "2"
28
- @@tmpfiles << file2
38
+ def test_facts_are_saved
39
+ facts = mock('facts')
40
+ Puppet::Node::Facts.expects(:new).returns(facts)
41
+ facts.expects(:save)
29
42
 
30
- client = master = nil
31
- Puppet[:manifest] = manifest
32
- assert_nothing_raised() {
33
- # this is the default server setup
34
- master = Puppet::Network::Handler.master.new(
35
- :Local => true
36
- )
37
- }
43
+ @master.stubs(:decode_facts)
38
44
 
39
- config = master.getconfig({"hostname" => "blah"})
45
+ @master.getconfig("facts", "yaml", "foo.com")
46
+ end
40
47
 
41
- # Cache this value for later
42
- parse1 = master.freshness("mynode")
48
+ def test_catalog_is_used_for_compiling
49
+ facts = stub('facts', :save => nil)
50
+ Puppet::Node::Facts.stubs(:new).returns(facts)
43
51
 
44
- sleep 1.5
45
- # Create a new manifest
46
- File.open(manifest, "w") { |f|
47
- f.puts "file { \"%s\": ensure => file }\n" % file2
48
- }
52
+ @master.stubs(:decode_facts)
49
53
 
50
- # Verify that the master doesn't immediately reparse the file; we
51
- # want to wait through the timeout
52
- assert_equal(parse1, master.freshness("mynode"), "Master did not wait through timeout")
54
+ Puppet::Node::Catalog.expects(:find).with("foo.com").returns(@catalog)
53
55
 
54
- # Then eliminate it
55
- Puppet[:filetimeout] = 0
56
+ @master.getconfig("facts", "yaml", "foo.com")
57
+ end
58
+ end
56
59
 
57
- # Now make sure the master does reparse
58
- #Puppet.notice "%s vs %s" % [parse1, master.freshness]
59
- assert(parse1 != master.freshness("mynode"), "Master did not reparse file")
60
+ class TestMasterFormats < Test::Unit::TestCase
61
+ def setup
62
+ @facts = stub('facts', :save => nil)
63
+ Puppet::Node::Facts.stubs(:new).returns(@facts)
60
64
 
61
- assert(master.getconfig({"hostname" => "blah"}) != config, "Did not use reloaded config")
65
+ @master = Puppet::Network::Handler.master.new(:Code => "")
66
+ @master.stubs(:decode_facts)
67
+
68
+ @catalog = stub 'catalog', :extract => ""
69
+ Puppet::Node::Catalog.stubs(:find).returns(@catalog)
62
70
  end
63
71
 
64
- # Make sure we're correctly doing clientname manipulations.
65
- # Testing to make sure we always get a hostname and IP address.
66
- def test_clientname
67
- # create our master
68
- master = Puppet::Network::Handler.master.new(
69
- :Manifest => tempfile,
70
- :UseNodes => true,
71
- :Local => true
72
- )
73
-
74
-
75
- # First check that 'cert' works
76
- Puppet[:node_name] = "cert"
77
-
78
- # Make sure we get the fact data back when nothing is set
79
- facts = {
80
- "hostname" => "fact_hostname",
81
- "domain" => "fact_domain",
82
- "fqdn" => "fact_hostname.fact_domain",
83
- "ipaddress" => "fact_ip"
84
- }
85
- certhostname = "cert_hostname"
86
- certdomain = "cert_domain"
87
- certname = certhostname + "." + certdomain
88
- certip = "cert_ip"
89
-
90
- resname, resip = master.send(:clientname, nil, nil, facts)
91
- assert_equal(facts["hostname"], resname, "Did not use fact hostname when no certname was present")
92
- assert_equal(facts["ipaddress"], resip, "Did not use fact ip when no certname was present")
93
- assert_equal(facts["domain"], "fact_domain", "Did not use fact domain when no certname was present")
94
- assert_equal(facts["fqdn"], "fact_hostname.fact_domain", "Did not use fact fqdn when no certname was present")
95
-
96
- # Now try it with the cert stuff present
97
- resname, resip = master.send(:clientname, certname, certip, facts)
98
- assert_equal(certname, resname, "Did not use cert hostname when certname was present")
99
- assert_equal(certip, resip, "Did not use cert ip when certname was present")
100
- assert_equal(facts["domain"], certdomain, "Did not use cert domain when certname was present")
101
- assert_equal(facts["fqdn"], certname, "Did not use cert fqdn when certname was present")
102
-
103
- # And reset the node_name stuff and make sure we use it.
104
- Puppet[:node_name] = :facter
105
- resname, resip = master.send(:clientname, certname, certip, facts)
106
- assert_equal(facts["hostname"], resname, "Did not use fact hostname when nodename was set to facter")
107
- assert_equal(facts["ipaddress"], resip, "Did not use fact ip when nodename was set to facter")
72
+ def test_marshal_can_be_used
73
+ @catalog.expects(:extract).returns "myextract"
74
+
75
+ Marshal.expects(:dump).with("myextract").returns "eh"
76
+
77
+ @master.getconfig("facts", "marshal", "foo.com")
108
78
  end
109
- end
110
79
 
80
+ def test_yaml_can_be_used
81
+ extract = mock 'extract'
82
+ @catalog.expects(:extract).returns extract
83
+
84
+ extract.expects(:to_yaml).returns "myaml"
111
85
 
86
+ @master.getconfig("facts", "yaml", "foo.com")
87
+ end
88
+
89
+ def test_failure_when_non_yaml_or_marshal_is_used
90
+ assert_raise(RuntimeError) { @master.getconfig("facts", "blah", "foo.com") }
91
+ end
92
+ end