puppet 0.25.1 → 0.25.2

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 (198) hide show
  1. data/CHANGELOG +159 -135
  2. data/Rakefile +4 -1
  3. data/conf/gentoo/conf.d/puppetmaster +1 -1
  4. data/conf/osx/createpackage.sh +12 -0
  5. data/conf/osx/preflight +4 -0
  6. data/conf/redhat/puppet.spec +12 -2
  7. data/conf/redhat/server.init +1 -0
  8. data/conf/redhat/server.sysconfig +1 -1
  9. data/ext/ldap/puppet.schema +5 -9
  10. data/ext/puppetlast +2 -1
  11. data/ext/rack/README +2 -2
  12. data/ext/regexp_nodes/classes/databases +2 -0
  13. data/ext/regexp_nodes/classes/webservers +2 -0
  14. data/ext/regexp_nodes/parameters/environment/prod +1 -0
  15. data/ext/regexp_nodes/parameters/environment/qa +3 -0
  16. data/ext/regexp_nodes/regexp_nodes.rb +215 -0
  17. data/lib/puppet.rb +1 -1
  18. data/lib/puppet/agent.rb +2 -2
  19. data/lib/puppet/application/puppet.rb +1 -1
  20. data/lib/puppet/application/puppetd.rb +1 -1
  21. data/lib/puppet/application/puppetdoc.rb +4 -3
  22. data/lib/puppet/application/puppetrun.rb +5 -14
  23. data/lib/puppet/application/ralsh.rb +9 -25
  24. data/lib/puppet/configurer.rb +2 -1
  25. data/lib/puppet/configurer/fact_handler.rb +8 -6
  26. data/lib/puppet/daemon.rb +2 -2
  27. data/lib/puppet/defaults.rb +21 -2
  28. data/lib/puppet/external/pson/common.rb +1 -1
  29. data/lib/puppet/external/pson/pure.rb +3 -3
  30. data/lib/puppet/feature/base.rb +3 -0
  31. data/lib/puppet/feature/selinux.rb +3 -0
  32. data/lib/puppet/feature/zlib.rb +6 -0
  33. data/lib/puppet/file_serving/base.rb +16 -1
  34. data/lib/puppet/file_serving/metadata.rb +46 -9
  35. data/lib/puppet/file_serving/mount/file.rb +4 -1
  36. data/lib/puppet/indirector/catalog/active_record.rb +5 -0
  37. data/lib/puppet/indirector/envelope.rb +1 -3
  38. data/lib/puppet/indirector/indirection.rb +13 -16
  39. data/lib/puppet/indirector/node/ldap.rb +7 -4
  40. data/lib/puppet/indirector/ssl_file.rb +1 -1
  41. data/lib/puppet/network/authstore.rb +48 -118
  42. data/lib/puppet/network/client/resource.rb +2 -15
  43. data/lib/puppet/network/format.rb +2 -12
  44. data/lib/puppet/network/format_handler.rb +15 -1
  45. data/lib/puppet/network/formats.rb +19 -4
  46. data/lib/puppet/network/handler/fileserver.rb +1 -0
  47. data/lib/puppet/network/http/handler.rb +1 -0
  48. data/lib/puppet/network/http/rack/httphandler.rb +0 -18
  49. data/lib/puppet/network/http/rack/rest.rb +4 -4
  50. data/lib/puppet/network/http/rack/xmlrpc.rb +4 -4
  51. data/lib/puppet/network/http/webrick.rb +2 -1
  52. data/lib/puppet/network/server.rb +1 -1
  53. data/lib/puppet/node/environment.rb +20 -9
  54. data/lib/puppet/parameter.rb +17 -1
  55. data/lib/puppet/parser/ast/boolean_operator.rb +2 -2
  56. data/lib/puppet/parser/ast/leaf.rb +5 -1
  57. data/lib/puppet/parser/ast/resourceparam.rb +4 -0
  58. data/lib/puppet/parser/ast/selector.rb +4 -0
  59. data/lib/puppet/parser/functions/generate.rb +2 -2
  60. data/lib/puppet/parser/functions/shellquote.rb +1 -1
  61. data/lib/puppet/property.rb +3 -11
  62. data/lib/puppet/provider/cron/crontab.rb +2 -0
  63. data/lib/puppet/provider/host/parsed.rb +9 -9
  64. data/lib/puppet/provider/package/blastwave.rb +7 -6
  65. data/lib/puppet/provider/package/portage.rb +23 -27
  66. data/lib/puppet/provider/package/rug.rb +1 -1
  67. data/lib/puppet/provider/package/sun.rb +5 -3
  68. data/lib/puppet/provider/service/daemontools.rb +1 -1
  69. data/lib/puppet/provider/service/debian.rb +1 -1
  70. data/lib/puppet/provider/service/runit.rb +1 -1
  71. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -1
  72. data/lib/puppet/provider/sshkey/parsed.rb +3 -5
  73. data/lib/puppet/provider/zone/solaris.rb +1 -1
  74. data/lib/puppet/rails.rb +9 -2
  75. data/lib/puppet/rails/benchmark.rb +1 -1
  76. data/lib/puppet/rails/host.rb +2 -7
  77. data/lib/puppet/rails/resource.rb +20 -26
  78. data/lib/puppet/resource/catalog.rb +3 -3
  79. data/lib/puppet/resource/reference.rb +13 -25
  80. data/lib/puppet/ssl/certificate.rb +3 -2
  81. data/lib/puppet/ssl/host.rb +14 -33
  82. data/lib/puppet/sslcertificates.rb +1 -5
  83. data/lib/puppet/sslcertificates/ca.rb +8 -7
  84. data/lib/puppet/transaction.rb +15 -12
  85. data/lib/puppet/type.rb +12 -5
  86. data/lib/puppet/type/file.rb +26 -32
  87. data/lib/puppet/type/file/content.rb +5 -5
  88. data/lib/puppet/type/file/ensure.rb +6 -17
  89. data/lib/puppet/type/file/mode.rb +18 -1
  90. data/lib/puppet/type/file/source.rb +12 -12
  91. data/lib/puppet/type/host.rb +6 -9
  92. data/lib/puppet/type/k5login.rb +1 -1
  93. data/lib/puppet/type/maillist.rb +4 -7
  94. data/lib/puppet/type/port.rb +6 -5
  95. data/lib/puppet/type/resources.rb +12 -12
  96. data/lib/puppet/type/sshkey.rb +5 -5
  97. data/lib/puppet/type/tidy.rb +9 -2
  98. data/lib/puppet/type/yumrepo.rb +3 -1
  99. data/lib/puppet/util.rb +64 -56
  100. data/lib/puppet/util/backups.rb +2 -1
  101. data/lib/puppet/util/filetype.rb +46 -0
  102. data/lib/puppet/util/log.rb +10 -18
  103. data/lib/puppet/util/log_paths.rb +14 -0
  104. data/lib/puppet/util/methodhelper.rb +3 -4
  105. data/lib/puppet/util/monkey_patches.rb +8 -0
  106. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -3
  107. data/lib/puppet/util/rdoc/parser.rb +32 -16
  108. data/lib/puppet/util/reference.rb +6 -3
  109. data/lib/puppet/util/selinux.rb +21 -14
  110. data/lib/puppet/util/settings.rb +30 -25
  111. data/lib/puppet/util/settings/file_setting.rb +7 -4
  112. data/lib/puppet/util/subclass_loader.rb +1 -1
  113. data/lib/puppet/util/suidmanager.rb +11 -1
  114. data/lib/puppet/util/tagging.rb +22 -4
  115. data/man/man8/filebucket.8 +23 -18
  116. data/man/man8/pi.8 +42 -20
  117. data/man/man8/puppet.8 +47 -32
  118. data/man/man8/puppet.conf.8 +807 -764
  119. data/man/man8/puppetca.8 +24 -14
  120. data/man/man8/puppetd.8 +33 -16
  121. data/man/man8/puppetdoc.8 +71 -18
  122. data/man/man8/puppetmasterd.8 +18 -25
  123. data/man/man8/puppetqd.8 +60 -0
  124. data/man/man8/puppetrun.8 +27 -14
  125. data/man/man8/ralsh.8 +33 -40
  126. data/spec/integration/bin/puppetmasterd.rb +3 -2
  127. data/spec/integration/defaults.rb +11 -0
  128. data/spec/integration/file_serving/metadata.rb +1 -0
  129. data/spec/integration/indirector/file_content/file_server.rb +2 -1
  130. data/spec/integration/ssl/certificate_request.rb +2 -0
  131. data/spec/integration/type/file.rb +20 -1
  132. data/spec/shared_behaviours/file_serving.rb +1 -1
  133. data/spec/spec_helper.rb +1 -1
  134. data/spec/unit/application/puppet.rb +11 -30
  135. data/spec/unit/application/puppetd.rb +1 -0
  136. data/spec/unit/application/puppetdoc.rb +13 -4
  137. data/spec/unit/application/puppetmasterd.rb +1 -0
  138. data/spec/unit/application/puppetrun.rb +12 -2
  139. data/spec/unit/application/ralsh.rb +39 -22
  140. data/spec/unit/configurer.rb +6 -0
  141. data/spec/unit/configurer/fact_handler.rb +15 -1
  142. data/spec/unit/file_serving/metadata.rb +128 -16
  143. data/spec/unit/file_serving/mount/file.rb +8 -0
  144. data/spec/unit/indirector/catalog/active_record.rb +20 -1
  145. data/spec/unit/indirector/catalog/compiler.rb +2 -1
  146. data/spec/unit/indirector/indirection.rb +29 -18
  147. data/spec/unit/indirector/node/ldap.rb +20 -6
  148. data/spec/unit/network/authstore.rb +197 -0
  149. data/spec/unit/network/format_handler.rb +28 -8
  150. data/spec/unit/network/formats.rb +31 -0
  151. data/spec/unit/network/http/handler.rb +10 -0
  152. data/spec/unit/network/http/webrick.rb +2 -2
  153. data/spec/unit/network/rest_authconfig.rb +2 -2
  154. data/spec/unit/network/rights.rb +1 -1
  155. data/spec/unit/node/environment.rb +39 -23
  156. data/spec/unit/other/selinux.rb +2 -2
  157. data/spec/unit/parameter.rb +8 -0
  158. data/spec/unit/parser/ast/leaf.rb +9 -0
  159. data/spec/unit/parser/ast/selector.rb +8 -1
  160. data/spec/unit/parser/lexer.rb +1 -1
  161. data/spec/unit/parser/resource.rb +11 -0
  162. data/spec/unit/parser/resource/reference.rb +13 -1
  163. data/spec/unit/property.rb +6 -0
  164. data/spec/unit/provider/mount/parsed.rb +3 -1
  165. data/spec/unit/provider/service/debian.rb +1 -1
  166. data/spec/unit/provider/ssh_authorized_key/parsed.rb +9 -1
  167. data/spec/unit/provider/sshkey/parsed.rb +19 -0
  168. data/spec/unit/rails.rb +22 -9
  169. data/spec/unit/rails/resource.rb +20 -0
  170. data/spec/unit/ssl/host.rb +19 -57
  171. data/spec/unit/transaction.rb +39 -4
  172. data/spec/unit/type.rb +9 -0
  173. data/spec/unit/type/file/content.rb +29 -0
  174. data/spec/unit/type/maillist.rb +42 -0
  175. data/spec/unit/type/resources.rb +66 -1
  176. data/spec/unit/type/tidy.rb +14 -1
  177. data/spec/unit/util/autoload.rb +2 -0
  178. data/spec/unit/util/ldap/connection.rb +1 -1
  179. data/spec/unit/util/log.rb +14 -0
  180. data/spec/unit/util/monkey_patches.rb +103 -0
  181. data/spec/unit/util/queue.rb +10 -2
  182. data/spec/unit/util/selinux.rb +61 -2
  183. data/spec/unit/util/settings.rb +19 -0
  184. data/spec/unit/util/settings/file_setting.rb +25 -0
  185. data/spec/unit/util/tagging.rb +10 -0
  186. data/tasks/rake/changelog.rake +15 -0
  187. data/tasks/rake/ci.rake +22 -0
  188. data/tasks/rake/dailybuild.rake +9 -0
  189. data/tasks/rake/gem.rake +46 -0
  190. data/tasks/rake/git_workflow.rake +121 -0
  191. data/tasks/rake/metrics.rake +6 -0
  192. data/tasks/rake/sign.rake +14 -0
  193. data/tasks/rake/testbranch.rake +16 -0
  194. data/tasks/rake/tracdocs.rake +8 -0
  195. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
  196. metadata +1042 -1288
  197. data/ext/bin/sleeper +0 -67
  198. data/ext/module_puppet +0 -209
@@ -1,67 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- ###
4
- # sleep indefinitely as a debug
5
-
6
- require 'getoptlong'
7
-
8
- #-----------------------------------------------------------------
9
- def daemonize
10
- outfile = "/tmp/sleeperout"
11
- if pid = fork()
12
- Process.detach(pid)
13
- sleep 1
14
- # verify that we didn't have any problems starting the daemon
15
- if FileTest.exists?(outfile)
16
- $stderr.puts "Sleeper failed: %s" % File.read(outfile)
17
- File.unlink(outfile)
18
- exit(14)
19
- else
20
- exit(0)
21
- end
22
- end
23
- Process.setsid
24
- Dir.chdir("/")
25
- begin
26
- $stdin.reopen "/dev/null"
27
- $stdout.reopen "/dev/null", "a"
28
- $stderr.reopen $stdin
29
- rescue => detail
30
- File.open(outfile, "w") { |f|
31
- f.puts detail
32
- }
33
- exit(12)
34
- end
35
- end
36
- #-----------------------------------------------------------------
37
-
38
- debug = false
39
-
40
- result = GetoptLong.new(
41
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
42
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
43
- )
44
-
45
- result.each { |opt,arg|
46
- case opt
47
- when "--help"
48
- puts "There is no help yet"
49
- exit
50
- when "--debug"
51
- debug = true
52
- else
53
- raise "Invalid option '#{opt}'"
54
- end
55
- }
56
-
57
- trap(:INT) {
58
- exit
59
- }
60
-
61
- unless debug
62
- daemonize()
63
- end
64
-
65
- # Sleep for no more than two minutes
66
- sleep 120
67
- exit
@@ -1,209 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # = Synopsis
5
- #
6
- # Run a +puppet+ script as a cfengine module.
7
- #
8
- # = Usage
9
- #
10
- # puppet_module [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]
11
- # [-l|--logdest <file>]<file>
12
- #
13
- # = Description
14
- #
15
- # This is the standalone puppet execution script; use it to execute
16
- # individual scripts that you write. If you need to execute site-wide
17
- # scripts, use +puppetd+ and +puppetmasterd+.
18
- #
19
- # = Options
20
- #
21
- # Note that any configuration parameter that's valid in the configuration file
22
- # is also a valid long argument. For example, 'ssldir' is a valid configuration
23
- # parameter, so you can specify '--ssldir <directory>' as an argument.
24
- #
25
- # See the configuration file for the full list of acceptable parameters.
26
- #
27
- # debug::
28
- # Enable full debugging.
29
- #
30
- # help::
31
- # Print this help message
32
- #
33
- # logdest::
34
- # Where to send messages. Choose between syslog, the console, and a log file.
35
- # Defaults to sending messages to the console.
36
- #
37
- # verbose::
38
- # Print extra information.
39
- #
40
- # = Author
41
- #
42
- # Luke Kanies
43
- #
44
- # = Copyright
45
- #
46
- # Copyright (c) 2005 Reductive Labs, LLC
47
- # Licensed under the GNU Public License
48
-
49
- require 'puppet'
50
- require 'puppet/network/handler'
51
- require 'puppet/network/client'
52
- require 'getoptlong'
53
-
54
- options = [
55
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
56
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
57
- [ "--logdest", "-l", GetoptLong::REQUIRED_ARGUMENT ],
58
- [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ],
59
- [ "--use-nodes", GetoptLong::NO_ARGUMENT ],
60
- [ "--version", "-V", GetoptLong::NO_ARGUMENT ]
61
- ]
62
-
63
- # Add all of the config parameters as valid options.
64
- Puppet.settings.addargs(options)
65
-
66
- result = GetoptLong.new(*options)
67
-
68
- debug = false
69
- verbose = false
70
- noop = false
71
- logfile = false
72
- parseonly = false
73
-
74
- master = {
75
- :Local => true
76
- }
77
-
78
- setdest = false
79
-
80
- begin
81
- result.each { |opt,arg|
82
- case opt
83
- when "--version"
84
- puts "%s" % Puppet.version
85
- exit
86
- when "--help"
87
- if Puppet.features.usage?
88
- RDoc::usage && exit
89
- else
90
- puts "No help available unless you have RDoc::usage installed"
91
- exit
92
- end
93
- when "--use-nodes"
94
- master[:UseNodes] = true
95
- when "--verbose"
96
- Puppet::Util::Log.level = :info
97
- Puppet::Util::Log.newdestination(:console)
98
- verbose = true
99
- when "--debug"
100
- Puppet::Util::Log.level = :debug
101
- Puppet::Util::Log.newdestination(:console)
102
- debug = true
103
- when "--logdest"
104
- begin
105
- Puppet::Util::Log.newdestination arg
106
- setdest=true
107
- rescue => detail
108
- $stderr.puts detail.to_s
109
- end
110
- else
111
- Puppet.settings.handlearg(opt, arg)
112
- end
113
- }
114
- rescue GetoptLong::InvalidOption => detail
115
- $stderr.puts "Try '#{$0} --help'"
116
- if Puppet.features.usage?
117
- RDoc::usage(1,'usage')
118
- end
119
- exit(1)
120
- end
121
-
122
- # Now parse the config
123
- if Puppet[:config] and File.exists? Puppet[:config]
124
- Puppet.settings.parse(Puppet[:config])
125
- end
126
-
127
- client = nil
128
- server = nil
129
-
130
- [:INT, :TERM].each do |signal|
131
- trap(signal) do
132
- Puppet.notice "Caught #{signal}; shutting down"
133
- [client, server].each { |obj|
134
- if obj
135
- obj.shutdown
136
- end
137
- }
138
- end
139
- end
140
-
141
- if Puppet.settings.print_configs?
142
- exit(Puppet.settings.print_configs ? 0 : 1)
143
- end
144
-
145
- unless ARGV.length > 0
146
- $stderr.puts "You must pass a script to parse"
147
- exit(14)
148
- end
149
-
150
- unless setdest
151
- Puppet::Util::Log.newdestination(:syslog)
152
- end
153
-
154
- Puppet[:manifest] = ARGV.shift
155
-
156
- unless ENV.include?("CFALLCLASSES")
157
- $stderr.puts "Cfengine classes must be passed to the module"
158
- exit(15)
159
- end
160
-
161
- # Collect our facts.
162
- Puppet::Node::Facts.terminus_class = :facter
163
- facts = Puppet::Node::Facts.find("me")
164
- facts.name = facts.values["hostname"]
165
-
166
- # Create our Node
167
- node = Puppet::Node.new(facts.name)
168
-
169
- # Merge in the facts.
170
- node.merge(facts.values)
171
-
172
- classes = ENV["CFALLCLASSES"].split(":")
173
-
174
- if classes.empty?
175
- $stderr.puts "Could not find any cfengine classes"
176
- exit(16)
177
- end
178
-
179
- node.classes = classes
180
-
181
- begin
182
- # Compile our configuration
183
- catalog = Puppet::Resource::Catalog.find(node.name, :use_node => node)
184
- rescue => detail
185
- if Puppet[:trace]
186
- puts detail.backtrace
187
- end
188
- if detail.is_a?(XMLRPC::FaultException)
189
- $stderr.puts detail.message
190
- else
191
- $stderr.puts detail
192
- end
193
- exit(1)
194
- end
195
-
196
- if parseonly
197
- exit(0)
198
- end
199
-
200
- begin
201
- # Translate it to a RAL configuration
202
- catalog = catalog.to_ral
203
-
204
- # And apply it
205
- catalog.apply
206
- rescue => detail
207
- Puppet.err detail
208
- exit(1)
209
- end