puppet 2.7.3 → 2.7.4

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 (337) hide show
  1. data/CHANGELOG +166 -0
  2. data/install.rb +27 -7
  3. data/lib/puppet/application/agent.rb +29 -29
  4. data/lib/puppet/application/doc.rb +1 -1
  5. data/lib/puppet/application/inspect.rb +9 -1
  6. data/lib/puppet/application/master.rb +2 -0
  7. data/lib/puppet/application/queue.rb +1 -1
  8. data/lib/puppet/application/resource.rb +3 -0
  9. data/lib/puppet/application.rb +4 -5
  10. data/lib/puppet/configurer.rb +1 -4
  11. data/lib/puppet/defaults.rb +45 -15
  12. data/lib/puppet/feature/base.rb +28 -17
  13. data/lib/puppet/feature/rails.rb +0 -3
  14. data/lib/puppet/feature/rubygems.rb +0 -3
  15. data/lib/puppet/file_bucket/dipper.rb +3 -2
  16. data/lib/puppet/file_bucket/file.rb +3 -3
  17. data/lib/puppet/file_serving/base.rb +4 -5
  18. data/lib/puppet/file_serving/configuration.rb +7 -13
  19. data/lib/puppet/file_serving/content.rb +0 -4
  20. data/lib/puppet/file_serving/fileset.rb +7 -6
  21. data/lib/puppet/file_serving/indirection_hooks.rb +1 -4
  22. data/lib/puppet/file_serving/metadata.rb +0 -4
  23. data/lib/puppet/file_serving/mount/file.rb +9 -12
  24. data/lib/puppet/file_serving/mount.rb +0 -5
  25. data/lib/puppet/file_serving/terminus_helper.rb +0 -4
  26. data/lib/puppet/file_serving.rb +0 -4
  27. data/lib/puppet/indirector/catalog/compiler.rb +0 -18
  28. data/lib/puppet/indirector/catalog/store_configs.rb +5 -0
  29. data/lib/puppet/indirector/direct_file_server.rb +0 -4
  30. data/lib/puppet/indirector/facts/facter.rb +2 -2
  31. data/lib/puppet/indirector/facts/store_configs.rb +5 -0
  32. data/lib/puppet/indirector/file_content/file.rb +0 -4
  33. data/lib/puppet/indirector/file_content/file_server.rb +0 -4
  34. data/lib/puppet/indirector/file_content/rest.rb +0 -4
  35. data/lib/puppet/indirector/file_metadata/file.rb +0 -4
  36. data/lib/puppet/indirector/file_metadata/file_server.rb +0 -4
  37. data/lib/puppet/indirector/file_metadata/rest.rb +0 -4
  38. data/lib/puppet/indirector/file_server.rb +1 -5
  39. data/lib/puppet/indirector/indirection.rb +3 -5
  40. data/lib/puppet/indirector/node/store_configs.rb +5 -0
  41. data/lib/puppet/indirector/request.rb +3 -1
  42. data/lib/puppet/indirector/resource/active_record.rb +97 -0
  43. data/lib/puppet/indirector/resource/store_configs.rb +3 -0
  44. data/lib/puppet/indirector/ssl_file.rb +5 -1
  45. data/lib/puppet/indirector/store_configs.rb +30 -0
  46. data/lib/puppet/indirector/yaml.rb +5 -0
  47. data/lib/puppet/indirector.rb +7 -0
  48. data/lib/puppet/network/client.rb +0 -5
  49. data/lib/puppet/network/http_pool.rb +0 -56
  50. data/lib/puppet/node/environment.rb +9 -11
  51. data/lib/puppet/parameter/path.rb +1 -5
  52. data/lib/puppet/parameter.rb +1 -7
  53. data/lib/puppet/parser/ast/collection.rb +2 -2
  54. data/lib/puppet/parser/ast/collexpr.rb +10 -39
  55. data/lib/puppet/parser/collector.rb +41 -90
  56. data/lib/puppet/parser/compiler.rb +0 -3
  57. data/lib/puppet/parser/functions/create_resources.rb +22 -10
  58. data/lib/puppet/parser/functions/versioncmp.rb +9 -6
  59. data/lib/puppet/parser/resource.rb +1 -1
  60. data/lib/puppet/parser/type_loader.rb +2 -1
  61. data/lib/puppet/provider/augeas/augeas.rb +5 -3
  62. data/lib/puppet/provider/cron/crontab.rb +2 -2
  63. data/lib/puppet/provider/exec/posix.rb +23 -96
  64. data/lib/puppet/provider/exec/shell.rb +11 -2
  65. data/lib/puppet/provider/exec/windows.rb +35 -0
  66. data/lib/puppet/provider/exec.rb +79 -0
  67. data/lib/puppet/provider/group/windows_adsi.rb +48 -0
  68. data/lib/puppet/provider/host/parsed.rb +3 -0
  69. data/lib/puppet/provider/macauthorization/macauthorization.rb +4 -4
  70. data/lib/puppet/provider/mount.rb +0 -3
  71. data/lib/puppet/provider/naginator.rb +0 -3
  72. data/lib/puppet/provider/package/appdmg.rb +0 -1
  73. data/lib/puppet/provider/package/apple.rb +3 -7
  74. data/lib/puppet/provider/package/apt.rb +0 -1
  75. data/lib/puppet/provider/package/aptitude.rb +0 -1
  76. data/lib/puppet/provider/package/aptrpm.rb +0 -1
  77. data/lib/puppet/provider/package/blastwave.rb +0 -1
  78. data/lib/puppet/provider/package/dpkg.rb +5 -6
  79. data/lib/puppet/provider/package/fink.rb +3 -4
  80. data/lib/puppet/provider/package/freebsd.rb +0 -1
  81. data/lib/puppet/provider/package/gem.rb +0 -1
  82. data/lib/puppet/provider/package/hpux.rb +3 -3
  83. data/lib/puppet/provider/package/macports.rb +0 -1
  84. data/lib/puppet/provider/package/msi.rb +82 -0
  85. data/lib/puppet/provider/package/openbsd.rb +18 -19
  86. data/lib/puppet/provider/package/pip.rb +0 -1
  87. data/lib/puppet/provider/package/pkg.rb +0 -1
  88. data/lib/puppet/provider/package/pkgdmg.rb +9 -7
  89. data/lib/puppet/provider/package/pkgutil.rb +0 -1
  90. data/lib/puppet/provider/package/ports.rb +0 -1
  91. data/lib/puppet/provider/package/portupgrade.rb +183 -193
  92. data/lib/puppet/provider/package/rpm.rb +1 -1
  93. data/lib/puppet/provider/package/sun.rb +0 -1
  94. data/lib/puppet/provider/package/sunfreeware.rb +0 -2
  95. data/lib/puppet/provider/package/up2date.rb +0 -1
  96. data/lib/puppet/provider/package/urpmi.rb +0 -1
  97. data/lib/puppet/provider/package/yum.rb +1 -1
  98. data/lib/puppet/provider/package.rb +4 -3
  99. data/lib/puppet/provider/service/systemd.rb +64 -0
  100. data/lib/puppet/provider/service/windows.rb +110 -0
  101. data/lib/puppet/provider/user/windows_adsi.rb +71 -0
  102. data/lib/puppet/rails/resource.rb +1 -1
  103. data/lib/puppet/relationship.rb +0 -3
  104. data/lib/puppet/reports/tagmail.rb +15 -11
  105. data/lib/puppet/resource/catalog.rb +17 -24
  106. data/lib/puppet/ssl/certificate_authority.rb +7 -5
  107. data/lib/puppet/ssl/host.rb +6 -10
  108. data/lib/puppet/type/augeas.rb +19 -13
  109. data/lib/puppet/type/cron.rb +13 -12
  110. data/lib/puppet/type/exec.rb +17 -17
  111. data/lib/puppet/type/file/content.rb +7 -3
  112. data/lib/puppet/type/file/source.rb +14 -9
  113. data/lib/puppet/type/file.rb +44 -23
  114. data/lib/puppet/type/filebucket.rb +13 -5
  115. data/lib/puppet/type/package.rb +14 -1
  116. data/lib/puppet/type/service.rb +11 -1
  117. data/lib/puppet/type/ssh_authorized_key.rb +3 -1
  118. data/lib/puppet/type.rb +8 -17
  119. data/lib/puppet/util/adsi.rb +278 -0
  120. data/lib/puppet/util/autoload.rb +0 -2
  121. data/lib/puppet/util/cacher.rb +15 -67
  122. data/lib/puppet/util/feature.rb +0 -3
  123. data/lib/puppet/util/graph.rb +0 -3
  124. data/lib/puppet/util/ldap/connection.rb +0 -3
  125. data/lib/puppet/util/ldap/generator.rb +0 -3
  126. data/lib/puppet/util/ldap.rb +0 -3
  127. data/lib/puppet/util/log_paths.rb +0 -3
  128. data/lib/puppet/util/network_device/cisco/device.rb +2 -1
  129. data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
  130. data/lib/puppet/util/pidlock.rb +5 -1
  131. data/lib/puppet/util/rdoc/parser.rb +3 -1
  132. data/lib/puppet/util/run_mode.rb +2 -2
  133. data/lib/puppet/util/settings/file_setting.rb +3 -2
  134. data/lib/puppet/util/settings.rb +4 -6
  135. data/lib/puppet/util/suidmanager.rb +62 -15
  136. data/lib/puppet/util.rb +113 -131
  137. data/lib/puppet.rb +1 -1
  138. data/spec/integration/application/doc_spec.rb +1 -1
  139. data/spec/integration/defaults_spec.rb +22 -17
  140. data/spec/integration/file_serving/content_spec.rb +0 -6
  141. data/spec/integration/file_serving/metadata_spec.rb +0 -6
  142. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -1
  143. data/spec/integration/indirector/direct_file_server_spec.rb +5 -7
  144. data/spec/integration/indirector/file_content/file_server_spec.rb +2 -6
  145. data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -5
  146. data/spec/integration/network/server/webrick_spec.rb +6 -9
  147. data/spec/integration/node/facts_spec.rb +0 -6
  148. data/spec/integration/node_spec.rb +3 -4
  149. data/spec/integration/parser/compiler_spec.rb +2 -1
  150. data/spec/integration/parser/parser_spec.rb +2 -4
  151. data/spec/integration/provider/mount_spec.rb +1 -1
  152. data/spec/integration/provider/package_spec.rb +13 -3
  153. data/spec/integration/provider/ssh_authorized_key_spec.rb +4 -4
  154. data/spec/integration/reports_spec.rb +0 -4
  155. data/spec/integration/resource/catalog_spec.rb +0 -5
  156. data/spec/integration/ssl/certificate_authority_spec.rb +6 -14
  157. data/spec/integration/ssl/certificate_request_spec.rb +10 -17
  158. data/spec/integration/ssl/certificate_revocation_list_spec.rb +8 -13
  159. data/spec/integration/ssl/host_spec.rb +8 -14
  160. data/spec/integration/transaction/report_spec.rb +0 -5
  161. data/spec/integration/transaction_spec.rb +11 -13
  162. data/spec/integration/type/file_spec.rb +16 -16
  163. data/spec/integration/type/tidy_spec.rb +1 -1
  164. data/spec/integration/util/settings_spec.rb +2 -2
  165. data/spec/integration/util_spec.rb +13 -0
  166. data/spec/lib/puppet_spec/files.rb +18 -10
  167. data/spec/shared_behaviours/file_server_terminus.rb +1 -5
  168. data/spec/shared_behaviours/file_serving.rb +0 -4
  169. data/spec/shared_behaviours/memory_terminus.rb +0 -4
  170. data/spec/shared_behaviours/path_parameters.rb +20 -18
  171. data/spec/shared_behaviours/store_configs_terminus.rb +21 -0
  172. data/spec/spec_helper.rb +31 -0
  173. data/spec/unit/agent_spec.rb +0 -4
  174. data/spec/unit/application/apply_spec.rb +8 -2
  175. data/spec/unit/application/certificate_spec.rb +2 -0
  176. data/spec/unit/application/device_spec.rb +8 -6
  177. data/spec/unit/application/inspect_spec.rb +2 -1
  178. data/spec/unit/application/master_spec.rb +7 -2
  179. data/spec/unit/application/queue_spec.rb +3 -4
  180. data/spec/unit/application/resource_spec.rb +26 -0
  181. data/spec/unit/application/secret_agent_spec.rb +3 -1
  182. data/spec/unit/application_spec.rb +4 -0
  183. data/spec/unit/configurer/downloader_spec.rb +4 -3
  184. data/spec/unit/configurer_spec.rb +11 -4
  185. data/spec/unit/daemon_spec.rb +3 -1
  186. data/spec/unit/face/ca_spec.rb +1 -1
  187. data/spec/unit/face/node_spec.rb +5 -1
  188. data/spec/unit/face/secret_agent_spec.rb +3 -1
  189. data/spec/unit/file_bucket/dipper_spec.rb +4 -4
  190. data/spec/unit/file_bucket/file_spec.rb +9 -3
  191. data/spec/unit/file_serving/configuration_spec.rb +26 -37
  192. data/spec/unit/file_serving/fileset_spec.rb +71 -55
  193. data/spec/unit/file_serving/indirection_hooks_spec.rb +0 -4
  194. data/spec/unit/file_serving/mount/file_spec.rb +163 -169
  195. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -4
  196. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -22
  197. data/spec/unit/indirector/catalog/store_configs_spec.rb +17 -0
  198. data/spec/unit/indirector/certificate/ca_spec.rb +0 -4
  199. data/spec/unit/indirector/certificate/file_spec.rb +0 -4
  200. data/spec/unit/indirector/certificate_request/ca_spec.rb +1 -5
  201. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -4
  202. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -4
  203. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -4
  204. data/spec/unit/indirector/certificate_status/file_spec.rb +1 -1
  205. data/spec/unit/indirector/direct_file_server_spec.rb +0 -4
  206. data/spec/unit/indirector/facts/facter_spec.rb +0 -4
  207. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +3 -0
  208. data/spec/unit/indirector/facts/store_configs_spec.rb +17 -0
  209. data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -3
  210. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -4
  211. data/spec/unit/indirector/file_content/file_spec.rb +0 -4
  212. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -4
  213. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -4
  214. data/spec/unit/indirector/file_server_spec.rb +1 -5
  215. data/spec/unit/indirector/indirection_spec.rb +0 -4
  216. data/spec/unit/indirector/key/ca_spec.rb +0 -4
  217. data/spec/unit/indirector/key/file_spec.rb +0 -4
  218. data/spec/unit/indirector/node/store_configs_spec.rb +16 -0
  219. data/spec/unit/indirector/report/processor_spec.rb +0 -4
  220. data/spec/unit/indirector/resource/active_record_spec.rb +192 -0
  221. data/spec/unit/indirector/resource/ral_spec.rb +1 -1
  222. data/spec/unit/indirector/resource/store_configs_spec.rb +12 -0
  223. data/spec/unit/indirector/resource_type/parser_spec.rb +3 -3
  224. data/spec/unit/indirector/ssl_file_spec.rb +25 -6
  225. data/spec/unit/indirector/store_configs_spec.rb +8 -0
  226. data/spec/unit/indirector/yaml_spec.rb +14 -0
  227. data/spec/unit/module_spec.rb +2 -2
  228. data/spec/unit/network/handler/fileserver_spec.rb +5 -5
  229. data/spec/unit/network/http/mongrel_spec.rb +0 -4
  230. data/spec/unit/network/http/webrick_spec.rb +5 -9
  231. data/spec/unit/network/http_pool_spec.rb +4 -75
  232. data/spec/unit/network/http_spec.rb +0 -4
  233. data/spec/unit/network/server_spec.rb +0 -4
  234. data/spec/unit/node/environment_spec.rb +18 -31
  235. data/spec/unit/node/facts_spec.rb +0 -4
  236. data/spec/unit/node_spec.rb +1 -8
  237. data/spec/unit/other/selinux_spec.rb +3 -1
  238. data/spec/unit/parameter_spec.rb +0 -10
  239. data/spec/unit/parser/ast/collexpr_spec.rb +17 -13
  240. data/spec/unit/parser/collector_spec.rb +147 -263
  241. data/spec/unit/parser/compiler_spec.rb +3 -1
  242. data/spec/unit/parser/files_spec.rb +7 -4
  243. data/spec/unit/parser/functions/extlookup_spec.rb +6 -3
  244. data/spec/unit/parser/functions/sprintf_spec.rb +2 -1
  245. data/spec/unit/parser/type_loader_spec.rb +7 -7
  246. data/spec/unit/property_spec.rb +1 -1
  247. data/spec/unit/provider/augeas/augeas_spec.rb +14 -0
  248. data/spec/unit/provider/exec/posix_spec.rb +102 -106
  249. data/spec/unit/provider/exec/shell_spec.rb +1 -1
  250. data/spec/unit/provider/exec/windows_spec.rb +119 -0
  251. data/spec/unit/provider/group/ldap_spec.rb +0 -4
  252. data/spec/unit/provider/group/windows_adsi_spec.rb +79 -0
  253. data/spec/unit/provider/ldap_spec.rb +0 -4
  254. data/spec/unit/provider/macauthorization_spec.rb +5 -0
  255. data/spec/unit/provider/mount/parsed_spec.rb +1 -5
  256. data/spec/unit/provider/package/msi_spec.rb +170 -0
  257. data/spec/unit/provider/service/redhat_spec.rb +2 -0
  258. data/spec/unit/provider/service/smf_spec.rb +3 -0
  259. data/spec/unit/provider/service/systemd_spec.rb +25 -0
  260. data/spec/unit/provider/service/windows_spec.rb +166 -0
  261. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -2
  262. data/spec/unit/provider/user/ldap_spec.rb +0 -4
  263. data/spec/unit/provider/user/user_role_add_spec.rb +1 -1
  264. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  265. data/spec/unit/provider/user/windows_adsi_spec.rb +110 -0
  266. data/spec/unit/relationship_spec.rb +0 -4
  267. data/spec/unit/resource/catalog_spec.rb +37 -25
  268. data/spec/unit/resource/status_spec.rb +4 -2
  269. data/spec/unit/resource_spec.rb +5 -5
  270. data/spec/unit/simple_graph_spec.rb +0 -4
  271. data/spec/unit/ssl/certificate_authority_spec.rb +2 -2
  272. data/spec/unit/ssl/host_spec.rb +12 -13
  273. data/spec/unit/ssl/inventory_spec.rb +2 -2
  274. data/spec/unit/sslcertificates/ca_spec.rb +6 -10
  275. data/spec/unit/transaction/event_manager_spec.rb +4 -2
  276. data/spec/unit/transaction/event_spec.rb +3 -1
  277. data/spec/unit/transaction/report_spec.rb +2 -6
  278. data/spec/unit/transaction/resource_harness_spec.rb +9 -5
  279. data/spec/unit/transaction_spec.rb +3 -1
  280. data/spec/unit/type/cron_spec.rb +1 -1
  281. data/spec/unit/type/exec_spec.rb +80 -47
  282. data/spec/unit/type/file/checksum_spec.rb +9 -8
  283. data/spec/unit/type/file/content_spec.rb +2 -1
  284. data/spec/unit/type/file/selinux_spec.rb +10 -8
  285. data/spec/unit/type/file/source_spec.rb +18 -36
  286. data/spec/unit/type/file_spec.rb +170 -217
  287. data/spec/unit/type/group_spec.rb +1 -1
  288. data/spec/unit/type/mount_spec.rb +5 -5
  289. data/spec/unit/type/noop_metaparam_spec.rb +3 -1
  290. data/spec/unit/type/package_spec.rb +15 -3
  291. data/spec/unit/type/resources_spec.rb +2 -2
  292. data/spec/unit/type/service_spec.rb +19 -4
  293. data/spec/unit/type/ssh_authorized_key_spec.rb +10 -4
  294. data/spec/unit/type/tidy_spec.rb +3 -1
  295. data/spec/unit/type/user_spec.rb +1 -1
  296. data/spec/unit/type_spec.rb +29 -34
  297. data/spec/unit/util/adsi_spec.rb +202 -0
  298. data/spec/unit/util/autoload_spec.rb +23 -19
  299. data/spec/unit/util/backups_spec.rb +16 -13
  300. data/spec/unit/util/cacher_spec.rb +64 -141
  301. data/spec/unit/util/checksums_spec.rb +0 -4
  302. data/spec/unit/util/constant_inflector_spec.rb +0 -4
  303. data/spec/unit/util/execution_stub_spec.rb +1 -1
  304. data/spec/unit/util/ldap/connection_spec.rb +0 -4
  305. data/spec/unit/util/ldap/generator_spec.rb +0 -4
  306. data/spec/unit/util/ldap/manager_spec.rb +0 -4
  307. data/spec/unit/util/log_spec.rb +4 -2
  308. data/spec/unit/util/logging_spec.rb +2 -2
  309. data/spec/unit/util/nagios_maker_spec.rb +0 -4
  310. data/spec/unit/util/network_device/cisco/device_spec.rb +2 -1
  311. data/spec/unit/util/network_device/cisco/facts_spec.rb +3 -1
  312. data/spec/unit/util/network_device/config_spec.rb +5 -3
  313. data/spec/unit/util/rdoc/parser_spec.rb +7 -1
  314. data/spec/unit/util/run_mode_spec.rb +6 -2
  315. data/spec/unit/util/settings/file_setting_spec.rb +29 -2
  316. data/spec/unit/util/settings_spec.rb +28 -15
  317. data/spec/unit/util/storage_spec.rb +1 -1
  318. data/spec/unit/util/suidmanager_spec.rb +310 -0
  319. data/spec/unit/util/tagging_spec.rb +0 -4
  320. data/spec/unit/util_spec.rb +335 -0
  321. data/test/language/ast/variable.rb +0 -4
  322. data/test/lib/puppettest/support/resources.rb +0 -4
  323. data/test/lib/puppettest/testcase.rb +0 -4
  324. data/test/lib/puppettest.rb +0 -1
  325. data/test/network/handler/master.rb +0 -5
  326. data/test/network/server/webrick.rb +5 -22
  327. data/test/ral/manager/attributes.rb +0 -4
  328. data/test/ral/manager/instances.rb +0 -4
  329. data/test/ral/manager/manager.rb +0 -4
  330. data/test/ral/providers/cron/crontab.rb +1 -0
  331. data/test/ral/providers/service/base.rb +0 -4
  332. data/test/ral/type/filesources.rb +0 -1
  333. data/test/ral/type/resources.rb +0 -4
  334. data/test/util/utiltest.rb +0 -13
  335. metadata +36 -9
  336. data/spec/unit/network/client_spec.rb +0 -45
  337. data/test/puppet/tc_suidmanager.rb +0 -120
data/CHANGELOG CHANGED
@@ -1,3 +1,169 @@
1
+ 2.7.4
2
+ ===
3
+ 47135fb Resist directory traversal attacks through indirections. (CVE-2011-3484)
4
+ 9dd18cf Updated CHANGELOG for 2.7.4rc3
5
+ fe92f20 (#9440) Allow cron vars to have leading whitespace
6
+ da69637 Fix failing spec for resource file
7
+ 7a39ca7 (#8667) Write out a list of resources that are managed by puppet agent
8
+ bc40516 Fix order dependent spec failure in exec specs
9
+ a20551f Updated CHANGELOG for 2.7.4rc2
10
+ d59a0b3 Update certificate_spec.rb test to include spec_helper
11
+ f325b40 Fix #7984 - GigabitEthernet/TenGigabitEthernet are uncorrectly parsed
12
+ 6cc15c2 Fix #7983 - Cisco uptime facts doesn't always work
13
+ 41302e9 Fixes #9143, allows macauthorization provider to work on OS X Lion 10.7
14
+ 5a3f24d Updated CHANGELOG for 2.7.4rc1
15
+ 04519a7 Revert "Merge pull request #100 from glarizza/tickets/2.7.x/9192_launchd_fix"
16
+ 769f2b2 Revert "Merge pull request #99 from nigelkersten/tickets/2.7.x/9143-make-macauthorization-work-on-lion"
17
+ ff13d8d Add comment explaining helper method
18
+ 40f64e9 Add has_macosx_plist_overrides? method
19
+ 670d30c Fix ActiveRecord handling of symbols in query interpolation.
20
+ 51b0c00 Fixes #9143, allows macauthorization provider to work on OS X Lion 10.7
21
+ a04051a (#9051) Move complex collect expression error into terminus.
22
+ f7e526b (#8413) Only try to catch Process::Error if it's defined
23
+ 2c96286 Debug order-dependent test failures in CI / ActiveRecord.
24
+ 38070d5 Don't toggle storeconfigs back and forth.
25
+ cf60243 One character typo, entire code path broken...
26
+ 40dc39c More protection against accidentally using sqlite3
27
+ f898749 Save and restore indirector configuration around all tests.
28
+ e3073ac (#9051) More storeconfigs test cleanup.
29
+ 51461de (#9051) Protect SQLite tests from running without gem.
30
+ bb0380f (#8662) Don't rely on error message to detect UAC capable platform
31
+ 2ab5634 (#8413) Properly clean up stale pidfile on Windows
32
+ cc958e1 (#8412) Add MSI package provider for use with Windows
33
+ 878ea25 (#8412) Add optional type-level validation of the source parameter
34
+ dad075d Correct grammar in parameter comment
35
+ 4168a4c Clean up formatting & whitespace in Puppet::Type
36
+ fd1d4b9 (#9051) de-ActiveRecord-ify Collection expressions.
37
+ 78e33cc (#9051) Port query tests into the indirection.
38
+ 65580e7 (#9051) Implement the `resource` terminus for StoreConfigs.
39
+ 89aaa51 (#9051) Make generic tagging imported resource origins.
40
+ d5b295d (#9051) Whitespace cleanup for puppet/parser/collector
41
+ 611c466 (#9051) Dead code elimination in the compiler terminus.
42
+ 6e0ff6a (#9051) Get the compiler out of the ActiveRecord business.
43
+ 4d51680 (#9051) Implement the StoreConfigs indirection itself.
44
+ d0357c8 (#9051) Add configuration around StoreConfigs indirection.
45
+ 8700682 (#9051) de-ActiveRecord-ify Collection expressions.
46
+ 4274e15 (#9174) Provide a helpful error when missing a gem and installing on Windows
47
+ f53db3d Clean up formatting & whitespace in package type & providers
48
+ 6dff78c (#8489) Use File::PATH_SEPARATOR in path attribute of service type
49
+ 64dbd3b (#8489) Use File::PATH_SEPARATOR for path attribute of exec type
50
+ 3e40207 (#8489) Use File::PATH_SEPARATOR rather than ':' for factpath setting
51
+ c469294 (#8489) Use File::PATH_SEPARATOR rather than ':' for args to puppet doc
52
+ a2ced0f Properly determine file deletion in puppet/unit/util_spec.rb
53
+ bc5f1e3 (#9051) Port query tests into the indirection.
54
+ fa78e99 (#9051) Implement the `resource` terminus for StoreConfigs.
55
+ f6b91be (#8140) Add an exec provider for Windows
56
+ 18c322a (#8410) Factor out a base class for exec providers
57
+ cb53870 (#8410) Cleanup and fix Windows support in Puppet::Util.execute
58
+ 39a582b (#8410) Use absolute_path? for Puppet::Parameter::Path validation
59
+ fb6df31 (#8410) Add a helper to Puppet::Util to determine absoluteness of a path
60
+ c2a432a maint: Fix trailing whitespace in lib/puppet/util.rb
61
+ fab2fe7 (#9051) Make generic tagging imported resource origins.
62
+ 5300368 (#9051) Whitespace cleanup for puppet/parser/collector
63
+ 6420ede (#9051) Dead code elimination in the compiler terminus.
64
+ 543f331 (#9051) Get the compiler out of the ActiveRecord business.
65
+ 4b55e72 (#9051) Implement the StoreConfigs indirection itself.
66
+ 0f207a8 (#8662) Don't manage internal file permissions on Windows
67
+ 47058ab (#8662) Skip user and group resources when applying settings on Windows
68
+ 2ac8790 (#8662) Fix Puppet.features.root? on Windows
69
+ ccdd043 (#8662) Break circular feature dependency
70
+ 4b29f5f (#9051) Add configuration around StoreConfigs indirection.
71
+ 9f39cc4 maint: Stub spec test so directory is not created unnecessarily
72
+ 66fb531 Don't use non-1.8.5-compatible methods 'Object#tap' and 'Dir.mktmpdir'
73
+ 2091cbe maint: Fix build break due to recent merge from 2.7.x to master
74
+ 2681ca5 Fix posix exec provider spec failures on Windows
75
+ 3812fc3 (#5495) Remove dead Windows-specific code from posix exec provider
76
+ b6ca78c Stop trying to make config directories in Windows specs
77
+ 4237cb1 (#8272) Add missing tests for Windows service provider methods.
78
+ a32c8be (#8409) Add a default group provider for Windows
79
+ 4f7170a (#8408) Add a default user provider for Windows
80
+ f19a0ea (#8408/8409) Add a Windows ADSI helper module
81
+ 6919d2c (#8663) Exclude exec timeout test on Windows
82
+ 8009209 (#8663) Exclude git rev-parse HEAD spec test on Windows
83
+ a0013e4 Check for the appropriate permissions in File type tests on Windows
84
+ 58c7dac Remove :fails_on_windows from file type tests that no longer fail on Windows
85
+ 9f2a7b9 Disable file bucket diffing tests on Windows
86
+ 1e59b26 Always put a slash between the checksum and path in filebucket URLs
87
+ 37f87b7 Treat Windows absolute paths as absolute paths
88
+ 4a6d617 Consolidate test logic determining if a registered file is in the temp directory
89
+ 8c88918 Clarify logic and error messages when initializing Puppet::FileBucket::File
90
+ 2efaa85 Disable symlink related file tests on Windows
91
+ 7259e1e (#8644) Host provider on Windows
92
+ 328eaa2 (#8660) Fix destdir option on Windows
93
+ 088c7ac (#8660) Default config dir to %PROGRAMDATA% on Windows
94
+ 925af95 (#8663) Disable spec tests for unsupported functionality on Windows
95
+ 04965d7 (#8663) Drive letters are not valid absolute paths on Windows
96
+ f4598ec (#8663) Update the run_mode spec test on Windows to match the code
97
+ 68bdc74 (#8663) The ssh_authorized_key type is not supported on Windows
98
+ 9fbb0be (#8663) Reenable spec tests on Windows that now pass
99
+ c930152 (#8392) Disable master related tests on Windows
100
+ 28b1658 (#8272) Allow disabled Windows services to be started
101
+ c69baf6 (#8272) Refactor specs for Windows service provider
102
+ 881c385 (#8272) Use symbols instead of booleans for enabled property on Windows
103
+ 9c575bd (#8272) Fixup logging in Windows service provider
104
+ ad29bf6 Fix issue with forward and backslashes in Windows paths
105
+ eaa7d92 Disable spec tests for unsupported functionality on Windows
106
+ 945bf74 Update certificate spec tests for Windows
107
+ 3be4d79 Add basic service provider for Windows
108
+ d9a693d Regexp escape substituted commands in Windows wrapper script
109
+ 49d1e9d Rework Puppet::Util::Cacher to only expire using TTLs
110
+ 9849d56 Remove use of Puppet::Util::Cacher in Puppet::SSL::Host
111
+ 028b795 Remove dead uses of Puppet::Util::Cacher from autoloader
112
+ 7c4dbeb Remove Puppet::Util::Cacher use from Puppet::Indirector::Indirection
113
+ d6e0b71 Remove caching from the catalog, types, and parameters
114
+ d49dd9e Remove cached_attrs from Puppet::Type::File
115
+ 546e0f9 Remove Puppet::Util::Cacher usage from Puppet::Util::Settings
116
+ b6b5498 Remove Util::Cacher usage from SSL::CertificateAuthority
117
+ 777b2f2 Remove unused require 'puppet/util/cacher' from Network::HttpPool
118
+ 41425bd Remove use of Util::Cacher from FileServing::Mount::File
119
+ 8d53090 Remove use of Util::Cacher in FileServing::Configuration
120
+ 3093047 Remove Puppet::Network::HttpPool keep_alive handling
121
+ 57d6217 Fix spec test failure on 1.9.2
122
+ 5d3a40f Maint: Fix miscellaneous tests
123
+ ce0c258 Maint: Don't test for extended signals on Windows
124
+ bdc9790 Maint: Tagged spec tests that are known to fail on Windows
125
+ c26f3e5 Fix tests with "relative" paths on Windows
126
+ bfeb337 (#8268) Require windows drive letters in absolute file paths
127
+ fe81dec (#8489) Consistently use File::PATH_SEPARATOR
128
+ a437812 (#8356) Specify setting type for color
129
+ af2446a (#8268) Fix resource harness spec tests
130
+ d9c3b0f (#8356) Color defaults to false on Windows
131
+ 9ebe500 Disable the master on Windows instead of blowing up with failed resources
132
+ 7467a08 (#7581) Provide more detailed error message when missing gems on Windows
133
+ 654de01 Maint: Correct docs for filebucket type and file's backup parameter
134
+ b623826 Maint: Fix line wrapping in create_resources function
135
+ fd7332b maint: remove inaccurate copyright and license statements.
136
+ a8b27de Maint: Improve create_resources function's doc string
137
+ 5f22985 maint: Fix order dependent test failure
138
+ 7ac1093 (#8037) Fix incorrect example in Augeas type reference
139
+ 35c1006 (#9039) Update Augeas commands documentation
140
+ 2bf6721 Reset indirector state after configurer tests.
141
+ e9b558d Fix posix exec provider spec failures on Windows
142
+ b28bcb0 (#5495) Remove dead Windows-specific code from posix exec provider
143
+ 2297899 Do not leak indirector state from apply tests
144
+ b52fbf4 (#8612) Clarify the function of the example for exec's "creates" parameter
145
+ bb224dd (#8770) Don't fail to set supplementary groups when changing user to root
146
+ 2a0de12 (#8770) Always fully drop privileges when changing user
147
+ 00c4b25 (#8662) Migrate suidmanager test case to rspec
148
+ d7c9c76 (#8740) Do not enumerate files in the root directory.
149
+ 39da99d (#4411) Explain that runinterval = 0 does not mean "never run"
150
+ 4146a33 Maint: Fix missing option text in puppet agent and arrange options alphabetically
151
+ 0e00473 (#3553) Explain that cron resources require time attributes
152
+ 769d432 (#8302) Improve documentation of exec providers
153
+ 76d45d2 (#7853) Clarify and complete docs for the tagmail report processor
154
+ d60852b Maint: Mention that audit metaparameter will accept "all"
155
+ 51d989e Maint: Adjust wording for file type's content parameter
156
+ a110d83 Maint: Fix poor documentation for versioncmp function.
157
+ 746a374 maint: Fix case sensitive require
158
+ 310bd55 maint: Add inspect app options to help
159
+ 3a19628 maint: Fix inspect help
160
+ 344aef9 (#8808) Fail Augeas resource when unable to save changes
161
+ c209f62 Add document outlining preferred contribution methods
162
+ 839e7c9 (#7999) Add some basic tests of the systemd provider
163
+ 1cae354 (#7999) Add a service provider that manages systemd services natively
164
+ 3b152e4 (#7114) Fix value validation on options
165
+ aa1b36f (#7114) Add tests for option property
166
+
1
167
  2.7.3
2
168
  ===
3
169
  7113448 (#4762) Ensure that clients on the moon can successfully connect.
data/install.rb CHANGED
@@ -243,6 +243,14 @@ def prepare_installation
243
243
 
244
244
  if not InstallOptions.configdir.nil?
245
245
  configdir = InstallOptions.configdir
246
+ elsif $operatingsystem == "windows"
247
+ begin
248
+ require 'win32/dir'
249
+ rescue LoadError => e
250
+ puts "Cannot run on Microsoft Windows without the sys-admin, win32-process, win32-dir & win32-service gems: #{e}"
251
+ exit -1
252
+ end
253
+ configdir = File.join(Dir::COMMON_APPDATA, "PuppetLabs", "puppet", "etc")
246
254
  else
247
255
  configdir = "/etc/puppet"
248
256
  end
@@ -283,18 +291,18 @@ def prepare_installation
283
291
  if not InstallOptions.destdir.nil?
284
292
  destdir = InstallOptions.destdir
285
293
  # To be deprecated once people move over to using --destdir option
286
- elsif ENV['DESTDIR'] != nil?
294
+ elsif not ENV['DESTDIR'].nil?
287
295
  destdir = ENV['DESTDIR']
288
296
  warn "DESTDIR is deprecated. Use --destdir instead."
289
297
  else
290
298
  destdir = ''
291
299
  end
292
300
 
293
- configdir = "#{destdir}#{configdir}"
294
- bindir = "#{destdir}#{bindir}"
295
- sbindir = "#{destdir}#{sbindir}"
296
- mandir = "#{destdir}#{mandir}"
297
- sitelibdir = "#{destdir}#{sitelibdir}"
301
+ configdir = join(destdir, configdir)
302
+ bindir = join(destdir, bindir)
303
+ sbindir = join(destdir, sbindir)
304
+ mandir = join(destdir, mandir)
305
+ sitelibdir = join(destdir, sitelibdir)
298
306
 
299
307
  FileUtils.makedirs(configdir) if InstallOptions.configs
300
308
  FileUtils.makedirs(bindir)
@@ -313,6 +321,16 @@ def prepare_installation
313
321
  InstallOptions.man_dir = mandir
314
322
  end
315
323
 
324
+ ##
325
+ # Join two paths. On Windows, dir must be converted to a relative path,
326
+ # by stripping the drive letter, but only if the basedir is not empty.
327
+ #
328
+ def join(basedir, dir)
329
+ return "#{basedir}#{dir[2..-1]}" if $operatingsystem == "windows" and basedir.length > 0 and dir.length > 2
330
+
331
+ "#{basedir}#{dir}"
332
+ end
333
+
316
334
  ##
317
335
  # Build the rdoc documentation. Also, try to build the RI documentation.
318
336
  #
@@ -405,8 +423,10 @@ def install_binfile(from, op_file, target)
405
423
  if not installed_wrapper
406
424
  tmp_file2 = File.join(tmp_dir, '_tmp_wrapper')
407
425
  cwn = File.join(Config::CONFIG['bindir'], op_file)
408
- cwv = CMD_WRAPPER.gsub('<ruby>', ruby.gsub(%r{/}) { "\\" }).gsub!('<command>', cwn.gsub(%r{/}) { "\\" } )
426
+ regex_safe_ruby = Regexp.escape(ruby.gsub(%r{/}) { "\\" })
427
+ regex_safe_cwn = Regexp.escape(cwn.gsub(%r{/}) { "\\" })
409
428
 
429
+ cwv = CMD_WRAPPER.gsub('<ruby>', regex_safe_ruby).gsub('<command>', regex_safe_cwn)
410
430
  File.open(tmp_file2, "wb") { |cw| cw.puts cwv }
411
431
  FileUtils.install(tmp_file2, File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true)
412
432
 
@@ -100,12 +100,11 @@ similar), or run interactively for testing purposes.
100
100
 
101
101
  USAGE
102
102
  -----
103
- puppet agent [-D|--daemonize|--no-daemonize] [-d|--debug]
104
- [--detailed-exitcodes] [--disable] [--enable] [-h|--help]
105
- [--certname <host name>] [-l|--logdest syslog|<file>|console]
106
- [-o|--onetime] [--serve <handler>] [-t|--test] [--noop]
107
- [--digest <digest>] [--fingerprint] [-V|--version]
108
- [-v|--verbose] [-w|--waitforcert <seconds>]
103
+ puppet agent [--certname <name>] [-D|--daemonize|--no-daemonize]
104
+ [-d|--debug] [--detailed-exitcodes] [--digest <digest>] [--disable] [--enable]
105
+ [--fingerprint] [-h|--help] [-l|--logdest syslog|<file>|console]
106
+ [--no-client] [--noop] [-o|--onetime] [--serve <handler>] [-t|--test]
107
+ [-v|--verbose] [-V|--version] [-w|--waitforcert <seconds>]
109
108
 
110
109
 
111
110
  DESCRIPTION
@@ -172,6 +171,13 @@ full list of acceptable parameters. A commented list of all
172
171
  configuration options can also be generated by running puppet agent with
173
172
  '--genconfig'.
174
173
 
174
+ * --certname:
175
+ Set the certname (unique ID) of the client. The master reads this
176
+ unique identifying string, which is usually set to the node's
177
+ fully-qualified domain name, to determine which configurations the
178
+ node will receive. Use this option to debug setup problems or
179
+ implement unusual node identification schemes.
180
+
175
181
  * --daemonize:
176
182
  Send the process into the background. This is the default.
177
183
 
@@ -181,17 +187,17 @@ configuration options can also be generated by running puppet agent with
181
187
  * --debug:
182
188
  Enable full debugging.
183
189
 
184
- * --digest:
185
- Change the certificate fingerprinting digest algorithm. The default is
186
- MD5. Valid values depends on the version of OpenSSL installed, but
187
- should always at least contain MD5, MD2, SHA1 and SHA256.
188
-
189
190
  * --detailed-exitcodes:
190
191
  Provide transaction information via exit codes. If this is enabled, an exit
191
192
  code of '2' means there were changes, an exit code of '4' means there were
192
193
  failures during the transaction, and an exit code of '6' means there were both
193
194
  changes and failures.
194
195
 
196
+ * --digest:
197
+ Change the certificate fingerprinting digest algorithm. The default is
198
+ MD5. Valid values depends on the version of OpenSSL installed, but
199
+ should always at least contain MD5, MD2, SHA1 and SHA256.
200
+
195
201
  * --disable:
196
202
  Disable working on the local system. This puts a lock file in place,
197
203
  causing 'puppet agent' not to work on the system until the lock file
@@ -212,12 +218,10 @@ configuration options can also be generated by running puppet agent with
212
218
 
213
219
  'puppet agent' exits after executing this.
214
220
 
215
- * --certname:
216
- Set the certname (unique ID) of the client. The master reads this
217
- unique identifying string, which is usually set to the node's
218
- fully-qualified domain name, to determine which configurations the
219
- node will receive. Use this option to debug setup problems or
220
- implement unusual node identification schemes.
221
+ * --fingerprint:
222
+ Display the current certificate or certificate signing request
223
+ fingerprint and then exit. Use the '--digest' option to change the
224
+ digest algorithm used.
221
225
 
222
226
  * --help:
223
227
  Print this help message
@@ -230,18 +234,19 @@ configuration options can also be generated by running puppet agent with
230
234
  * --no-client:
231
235
  Do not create a config client. This will cause the daemon to run
232
236
  without ever checking for its configuration automatically, and only
233
- makes sense
237
+ makes sense when puppet agent is being run with listen = true in puppet.conf
238
+ or was started with the `--listen` option.
239
+
240
+ * --noop:
241
+ Use 'noop' mode where the daemon runs in a no-op or dry-run mode. This
242
+ is useful for seeing what changes Puppet will make without actually
243
+ executing the changes.
234
244
 
235
245
  * --onetime:
236
246
  Run the configuration once. Runs a single (normally daemonized) Puppet
237
247
  run. Useful for interactively running puppet agent when used in
238
248
  conjunction with the --no-daemonize option.
239
249
 
240
- * --fingerprint:
241
- Display the current certificate or certificate signing request
242
- fingerprint and then exit. Use the '--digest' option to change the
243
- digest algorithm used.
244
-
245
250
  * --serve:
246
251
  Start another type of server. By default, 'puppet agent' will start a
247
252
  service handler that allows authenticated and authorized remote nodes
@@ -256,11 +261,6 @@ configuration options can also be generated by running puppet agent with
256
261
  'verbose', 'ignorecache', 'no-daemonize', 'no-usecacheonfailure',
257
262
  'detailed-exit-codes', 'no-splay', and 'show_diff'.
258
263
 
259
- * --noop:
260
- Use 'noop' mode where the daemon runs in a no-op or dry-run mode. This
261
- is useful for seeing what changes Puppet will make without actually
262
- executing the changes.
263
-
264
264
  * --verbose:
265
265
  Turn on verbose reporting.
266
266
 
@@ -290,7 +290,7 @@ Puppet agent accepts the following signals:
290
290
  Restart the puppet agent daemon.
291
291
  * SIGINT and SIGTERM:
292
292
  Shut down the puppet agent daemon.
293
- * SIGUSR1:
293
+ * SIGUSR1:
294
294
  Immediately retrieve and apply configurations from the puppet master.
295
295
 
296
296
  AUTHOR
@@ -252,7 +252,7 @@ HELP
252
252
  @unknown_args.each do |option|
253
253
  # force absolute path for modulepath when passed on commandline
254
254
  if option[:opt]=="--modulepath" or option[:opt] == "--manifestdir"
255
- option[:arg] = option[:arg].split(':').collect { |p| File.expand_path(p) }.join(':')
255
+ option[:arg] = option[:arg].split(File::PATH_SEPARATOR).collect { |p| File.expand_path(p) }.join(File::PATH_SEPARATOR)
256
256
  end
257
257
  Puppet.settings.handlearg(option[:opt], option[:arg])
258
258
  end
@@ -31,7 +31,7 @@ Prepares and submits an inspection report to the puppet master.
31
31
 
32
32
  USAGE
33
33
  -----
34
- puppet inspect
34
+ puppet inspect [--archive_files] [--archive_file_server]
35
35
 
36
36
 
37
37
  DESCRIPTION
@@ -57,6 +57,14 @@ configuration file documentation at
57
57
  http://docs.puppetlabs.com/references/latest/configuration.html for
58
58
  the full list of acceptable settings.
59
59
 
60
+ * --archive_files:
61
+ During an inspect run, whether to archive files whose contents are audited to
62
+ a file bucket.
63
+
64
+ * --archive_file_server:
65
+ During an inspect run, the file bucket server to archive files to if
66
+ archive_files is set. The default value is '$server'.
67
+
60
68
 
61
69
  AUTHOR
62
70
  ------
@@ -206,6 +206,8 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
206
206
  end
207
207
 
208
208
  def setup
209
+ raise Puppet::Error.new("Puppet master is not supported on Microsoft Windows") if Puppet.features.microsoft_windows?
210
+
209
211
  # Handle the logging settings.
210
212
  if options[:debug] or options[:verbose]
211
213
  if options[:debug]
@@ -151,7 +151,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
151
151
  exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
152
152
 
153
153
  require 'puppet/resource/catalog'
154
- Puppet::Resource::Catalog.indirection.terminus_class = :active_record
154
+ Puppet::Resource::Catalog.indirection.terminus_class = :store_configs
155
155
 
156
156
  daemon.daemonize if Puppet[:daemonize]
157
157
 
@@ -183,6 +183,9 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
183
183
  [ Puppet::Resource.indirection.save(Puppet::Resource.new( type, name, :parameters => params ), key) ]
184
184
  end
185
185
  else
186
+ if type == "file"
187
+ raise "Listing all file instances is not supported. Please specify a file or directory, e.g. puppet resource file /etc"
188
+ end
186
189
  Puppet::Resource.indirection.search( key, {} )
187
190
  end.map(&format).join("\n")
188
191
 
@@ -215,11 +215,10 @@ class Application
215
215
  def find(name)
216
216
  klass = name.to_s.capitalize
217
217
 
218
- # const_defined? is used before const_get since const_defined? will only
219
- # check within our namespace, whereas const_get will check ancestor
220
- # trees as well, resulting in unexpected behaviour.
221
- if !self.const_defined?(klass)
222
- puts "Unable to find application '#{name.to_s}'."
218
+ begin
219
+ require File.join('puppet', 'application', name.to_s.downcase)
220
+ rescue LoadError => e
221
+ puts "Unable to find application '#{name}'. #{e}"
223
222
  Kernel::exit(1)
224
223
  end
225
224
 
@@ -102,6 +102,7 @@ class Puppet::Configurer
102
102
  catalog.finalize
103
103
  catalog.retrieval_duration = duration
104
104
  catalog.write_class_file
105
+ catalog.write_resource_file
105
106
  catalog
106
107
  end
107
108
 
@@ -161,10 +162,6 @@ class Puppet::Configurer
161
162
  # Make sure we forget the retained module_directories of any autoload
162
163
  # we might have used.
163
164
  Thread.current[:env_module_directories] = nil
164
-
165
- # Now close all of our existing http connections, since there's no
166
- # reason to leave them lying open.
167
- Puppet::Network::HttpPool.clear_http_instances
168
165
  end
169
166
  ensure
170
167
  Puppet::Util::Log.close(report)
@@ -47,10 +47,14 @@ module Puppet
47
47
  exits. Comma-separate multiple values. For a list of all values,
48
48
  specify 'all'. This feature is only available in Puppet versions
49
49
  higher than 0.18.4."],
50
- :color => ["ansi", "Whether to use colors when logging to the console.
50
+ :color => {
51
+ :default => (Puppet.features.microsoft_windows? ? "false" : "ansi"),
52
+ :type => :setting,
53
+ :desc => "Whether to use colors when logging to the console.
51
54
  Valid values are `ansi` (equivalent to `true`), `html` (mostly
52
55
  used during testing with TextMate), and `false`, which produces
53
- no color."],
56
+ no color.",
57
+ },
54
58
  :mkusers => [false,
55
59
  "Whether to create the necessary user and group that puppet agent will
56
60
  run as."],
@@ -437,9 +441,11 @@ module Puppet
437
441
  authorization system for `puppet master`."
438
442
  ],
439
443
  :ca => [true, "Wether the master should function as a certificate authority."],
440
- :modulepath => {:default => "$confdir/modules:/usr/share/puppet/modules",
441
- :desc => "The search path for modules as a colon-separated list of
442
- directories.", :type => :setting }, # We don't want this to be considered a file, since it's multiple files.
444
+ :modulepath => {
445
+ :default => "$confdir/modules#{File::PATH_SEPARATOR}/usr/share/puppet/modules",
446
+ :desc => "The search path for modules as a list of directories separated by the '#{File::PATH_SEPARATOR}' character.",
447
+ :type => :setting # We don't want this to be considered a file, since it's multiple files.
448
+ },
443
449
  :ssl_client_header => ["HTTP_X_CLIENT_DN", "The header containing an authenticated
444
450
  client's SSL DN. Only used with Mongrel. This header must be set by the proxy
445
451
  to the authenticated client's SSL DN (e.g., `/CN=puppet.puppetlabs.com`).
@@ -533,6 +539,11 @@ module Puppet
533
539
  associated with the retrieved configuration. Can be loaded in
534
540
  the separate `puppet` executable using the `--loadclasses`
535
541
  option."},
542
+ :resourcefile => { :default => "$statedir/resources.txt",
543
+ :owner => "root",
544
+ :mode => 0644,
545
+ :desc => "The file in which puppet agent stores a list of the resources
546
+ associated with the retrieved configuration." },
536
547
  :puppetdlog => { :default => "$logdir/puppetd.log",
537
548
  :owner => "root",
538
549
  :mode => 0640,
@@ -545,7 +556,10 @@ module Puppet
545
556
  :puppetport => [8139, "Which port puppet agent listens on."],
546
557
  :noop => [false, "Whether puppet agent should be run in noop mode."],
547
558
  :runinterval => [1800, # 30 minutes
548
- "How often puppet agent applies the client configuration; in seconds."],
559
+ "How often puppet agent applies the client configuration; in seconds.
560
+ Note that a runinterval of 0 means \"run continuously\" rather than
561
+ \"never run.\" If you want puppet agent to never run, you should start
562
+ it with the `--no-client` option."],
549
563
  :listen => [false, "Whether puppet agent should listen for
550
564
  connections. If this is true, then puppet agent will accept incoming
551
565
  REST API requests, subject to the default ACLs and the ACLs set in
@@ -678,7 +692,7 @@ module Puppet
678
692
 
679
693
  setdefaults(
680
694
  :main,
681
- :factpath => {:default => "$vardir/lib/facter:$vardir/facts",
695
+ :factpath => {:default => "$vardir/lib/facter#{File::PATH_SEPARATOR}$vardir/facts",
682
696
  :desc => "Where Puppet should look for facts. Multiple directories should
683
697
  be colon-separated, like normal PATH variables.",
684
698
 
@@ -821,20 +835,36 @@ module Puppet
821
835
  )
822
836
 
823
837
  setdefaults(:master,
824
- :storeconfigs => {:default => false, :desc => "Whether to store each client's configuration. This
825
- requires ActiveRecord from Ruby on Rails.",
826
- :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
838
+ :storeconfigs => {
839
+ :default => false,
840
+ :desc => "Whether to store each client's configuration, including catalogs, facts,
841
+ and related data. This also enables the import and export of resources in
842
+ the Puppet language - a mechanism for exchange resources between nodes.
843
+
844
+ By default this uses ActiveRecord and an SQL database to store and query
845
+ the data; this, in turn, will depend on Rails being available.
846
+
847
+ You can adjust the backend using the storeconfigs_backend setting.",
848
+ # Call our hook with the default value, so we always get the libdir set.
849
+ :call_on_define => true,
827
850
  :hook => proc do |value|
828
851
  require 'puppet/node'
829
852
  require 'puppet/node/facts'
830
853
  if value
831
- require 'puppet/rails'
832
- raise "StoreConfigs not supported without ActiveRecord 2.1 or higher" unless Puppet.features.rails?
833
- Puppet::Resource::Catalog.indirection.cache_class = :active_record unless Puppet.settings[:async_storeconfigs]
834
- Puppet::Node::Facts.indirection.cache_class = :active_record
835
- Puppet::Node.indirection.cache_class = :active_record
854
+ Puppet.settings[:async_storeconfigs] or
855
+ Puppet::Resource::Catalog.indirection.cache_class = :store_configs
856
+ Puppet::Node::Facts.indirection.cache_class = :store_configs
857
+ Puppet::Node.indirection.cache_class = :store_configs
858
+
859
+ Puppet::Resource.indirection.terminus_class = :store_configs
836
860
  end
837
861
  end
862
+ },
863
+ :storeconfigs_backend => {
864
+ :default => "active_record",
865
+ :desc => "Configure the backend terminus used for StoreConfigs.
866
+ By default, this uses the ActiveRecord store, which directly talks to the
867
+ database from within the Puppet Master process."
838
868
  }
839
869
  )
840
870
 
@@ -1,10 +1,35 @@
1
- # Created by Luke Kanies on 2006-04-30.
2
- # Copyright (c) 2006. All rights reserved.
3
-
4
1
  require 'puppet/util/feature'
5
2
 
6
3
  # Add the simple features, all in one file.
7
4
 
5
+ # Order is important as some features depend on others
6
+
7
+ # We have a syslog implementation
8
+ Puppet.features.add(:syslog, :libs => ["syslog"])
9
+
10
+ # We can use POSIX user functions
11
+ Puppet.features.add(:posix) do
12
+ require 'etc'
13
+ Etc.getpwuid(0) != nil && Puppet.features.syslog?
14
+ end
15
+
16
+ # We can use Microsoft Windows functions
17
+ Puppet.features.add(:microsoft_windows) do
18
+ begin
19
+ require 'sys/admin'
20
+ require 'win32/process'
21
+ require 'win32/dir'
22
+ require 'win32/service'
23
+ require 'win32ole'
24
+ require 'win32/api'
25
+ true
26
+ rescue LoadError => err
27
+ warn "Cannot run on Microsoft Windows without the sys-admin, win32-process, win32-dir & win32-service gems: #{err}" unless Puppet.features.posix?
28
+ end
29
+ end
30
+
31
+ raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.microsoft_windows?
32
+
8
33
  # We've got LDAP available.
9
34
  Puppet.features.add(:ldap, :libs => ["ldap"])
10
35
 
@@ -33,20 +58,6 @@ Puppet.features.add(:rrd, :libs => ["RRD"])
33
58
  # We have OpenSSL
34
59
  Puppet.features.add(:openssl, :libs => ["openssl"])
35
60
 
36
- # We have a syslog implementation
37
- Puppet.features.add(:syslog, :libs => ["syslog"])
38
-
39
- # We can use POSIX user functions
40
- Puppet.features.add(:posix) do
41
- require 'etc'
42
- Etc.getpwuid(0) != nil && Puppet.features.syslog?
43
- end
44
-
45
- # We can use Microsoft Windows functions
46
- Puppet.features.add(:microsoft_windows, :libs => ["sys/admin", "win32/process", "win32/dir"])
47
-
48
- raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.microsoft_windows?
49
-
50
61
  # We have CouchDB
51
62
  Puppet.features.add(:couchdb, :libs => ["couchrest"])
52
63
 
@@ -1,6 +1,3 @@
1
- # Created by Luke Kanies on 2006-11-07.
2
- # Copyright (c) 2006. All rights reserved.
3
-
4
1
  require 'puppet/util/feature'
5
2
 
6
3
  Puppet.features.rubygems?
@@ -1,6 +1,3 @@
1
- # Created by Luke Kanies on 2006-11-07.
2
- # Copyright (c) 2006. All rights reserved.
3
-
4
1
  require 'puppet/util/feature'
5
2
 
6
3
  Puppet.features.add(:rubygems, :libs => "rubygems")
@@ -35,11 +35,12 @@ class Puppet::FileBucket::Dipper
35
35
  begin
36
36
  file_bucket_file = Puppet::FileBucket::File.new(contents, :bucket_path => @local_path)
37
37
  files_original_path = absolutize_path(file)
38
- dest_path = "#{@rest_path}#{file_bucket_file.name}#{files_original_path}"
38
+ dest_path = "#{@rest_path}#{file_bucket_file.name}/#{files_original_path}"
39
+ file_bucket_path = "#{@rest_path}#{file_bucket_file.checksum_type}/#{file_bucket_file.checksum_data}/#{files_original_path}"
39
40
 
40
41
  # Make a HEAD request for the file so that we don't waste time
41
42
  # uploading it if it already exists in the bucket.
42
- unless Puppet::FileBucket::File.indirection.head("#{@rest_path}#{file_bucket_file.checksum_type}/#{file_bucket_file.checksum_data}#{files_original_path}")
43
+ unless Puppet::FileBucket::File.indirection.head(file_bucket_path)
43
44
  Puppet::FileBucket::File.indirection.save(file_bucket_file, dest_path)
44
45
  end
45
46