puppet 0.9.2 → 0.13.0

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 (213) hide show
  1. data/CHANGELOG +58 -0
  2. data/README +21 -18
  3. data/Rakefile +176 -36
  4. data/bin/puppet +34 -48
  5. data/bin/puppetca +41 -28
  6. data/bin/puppetd +87 -65
  7. data/bin/puppetdoc +99 -23
  8. data/bin/puppetmasterd +72 -91
  9. data/conf/redhat/client.init +80 -0
  10. data/conf/redhat/client.sysconfig +11 -0
  11. data/conf/redhat/fileserver.conf +12 -0
  12. data/conf/redhat/puppet.spec +130 -0
  13. data/conf/redhat/server.init +89 -0
  14. data/conf/redhat/server.sysconfig +9 -0
  15. data/examples/code/allatonce +2 -2
  16. data/examples/code/assignments +1 -1
  17. data/examples/code/classing +2 -2
  18. data/examples/code/components +2 -2
  19. data/examples/code/file.bl +5 -5
  20. data/examples/code/filedefaults +2 -2
  21. data/examples/code/fileparsing +1 -1
  22. data/examples/code/filerecursion +1 -1
  23. data/examples/code/functions +1 -1
  24. data/examples/code/groups +1 -1
  25. data/examples/code/importing +1 -1
  26. data/examples/code/nodes +1 -1
  27. data/examples/code/one +1 -1
  28. data/examples/code/relationships +2 -2
  29. data/examples/code/simpletests +5 -5
  30. data/examples/code/snippets/argumentdefaults +2 -2
  31. data/examples/code/snippets/casestatement +16 -8
  32. data/examples/code/snippets/classheirarchy.pp +4 -4
  33. data/examples/code/snippets/classincludes.pp +4 -4
  34. data/examples/code/snippets/classpathtest +2 -2
  35. data/examples/code/snippets/componentmetaparams.pp +11 -0
  36. data/examples/code/snippets/dirchmod +5 -5
  37. data/examples/code/snippets/emptyclass.pp +9 -0
  38. data/examples/code/snippets/failmissingexecpath.pp +1 -1
  39. data/examples/code/snippets/falsevalues.pp +1 -1
  40. data/examples/code/snippets/filecreate +5 -5
  41. data/examples/code/snippets/implicititeration +5 -5
  42. data/examples/code/snippets/multipleinstances +4 -4
  43. data/examples/code/snippets/namevartest +3 -3
  44. data/examples/code/snippets/scopetest +1 -1
  45. data/examples/code/snippets/selectorvalues.pp +3 -3
  46. data/examples/code/snippets/simpledefaults +2 -2
  47. data/examples/code/snippets/simpleselector +5 -5
  48. data/examples/code/snippets/singleary.pp +19 -0
  49. data/examples/root/etc/init.d/sleeper +3 -2
  50. data/ext/emacs/puppet-mode-init.el +6 -0
  51. data/ext/emacs/puppet-mode.el +189 -0
  52. data/ext/ldap/puppet.schema +17 -0
  53. data/ext/{module:puppet → module_puppet} +30 -31
  54. data/ext/vim/filetype.vim +9 -0
  55. data/ext/vim/puppet.vim +87 -0
  56. data/install.rb +63 -30
  57. data/lib/puppet.rb +216 -122
  58. data/lib/puppet/client.rb +51 -416
  59. data/lib/puppet/client/ca.rb +17 -0
  60. data/lib/puppet/client/dipper.rb +78 -0
  61. data/lib/puppet/client/file.rb +20 -0
  62. data/lib/puppet/client/log.rb +17 -0
  63. data/lib/puppet/client/master.rb +246 -0
  64. data/lib/puppet/client/proxy.rb +27 -0
  65. data/lib/puppet/client/status.rb +7 -0
  66. data/lib/puppet/config.rb +563 -13
  67. data/lib/puppet/daemon.rb +50 -22
  68. data/lib/puppet/element.rb +4 -4
  69. data/lib/puppet/event-loop.rb +1 -0
  70. data/lib/puppet/event-loop/better-definers.rb +367 -0
  71. data/lib/puppet/event-loop/event-loop.rb +355 -0
  72. data/lib/puppet/event-loop/signal-system.rb +220 -0
  73. data/lib/puppet/event.rb +9 -11
  74. data/lib/puppet/filetype.rb +195 -0
  75. data/lib/puppet/log.rb +35 -12
  76. data/lib/puppet/metric.rb +2 -2
  77. data/lib/puppet/networkclient.rb +145 -0
  78. data/lib/puppet/parameter.rb +335 -0
  79. data/lib/puppet/parser/ast.rb +42 -1453
  80. data/lib/puppet/parser/ast/astarray.rb +88 -0
  81. data/lib/puppet/parser/ast/branch.rb +47 -0
  82. data/lib/puppet/parser/ast/caseopt.rb +66 -0
  83. data/lib/puppet/parser/ast/casestatement.rb +78 -0
  84. data/lib/puppet/parser/ast/classdef.rb +78 -0
  85. data/lib/puppet/parser/ast/compdef.rb +111 -0
  86. data/lib/puppet/parser/ast/component.rb +105 -0
  87. data/lib/puppet/parser/ast/hostclass.rb +82 -0
  88. data/lib/puppet/parser/ast/leaf.rb +86 -0
  89. data/lib/puppet/parser/ast/node.rb +103 -0
  90. data/lib/puppet/parser/ast/nodedef.rb +68 -0
  91. data/lib/puppet/parser/ast/objectdef.rb +336 -0
  92. data/lib/puppet/parser/ast/objectparam.rb +30 -0
  93. data/lib/puppet/parser/ast/objectref.rb +76 -0
  94. data/lib/puppet/parser/ast/selector.rb +60 -0
  95. data/lib/puppet/parser/ast/typedefaults.rb +45 -0
  96. data/lib/puppet/parser/ast/vardef.rb +44 -0
  97. data/lib/puppet/parser/interpreter.rb +31 -14
  98. data/lib/puppet/parser/lexer.rb +2 -4
  99. data/lib/puppet/parser/parser.rb +332 -242
  100. data/lib/puppet/parser/scope.rb +55 -38
  101. data/lib/puppet/server.rb +43 -44
  102. data/lib/puppet/server/authstore.rb +3 -6
  103. data/lib/puppet/server/ca.rb +5 -2
  104. data/lib/puppet/server/filebucket.rb +2 -4
  105. data/lib/puppet/server/fileserver.rb +28 -12
  106. data/lib/puppet/server/logger.rb +15 -4
  107. data/lib/puppet/server/master.rb +62 -7
  108. data/lib/puppet/sslcertificates.rb +41 -607
  109. data/lib/puppet/sslcertificates/ca.rb +291 -0
  110. data/lib/puppet/sslcertificates/certificate.rb +283 -0
  111. data/lib/puppet/statechange.rb +6 -1
  112. data/lib/puppet/storage.rb +67 -56
  113. data/lib/puppet/transaction.rb +25 -9
  114. data/lib/puppet/transportable.rb +102 -22
  115. data/lib/puppet/type.rb +1096 -315
  116. data/lib/puppet/type/component.rb +30 -21
  117. data/lib/puppet/type/cron.rb +409 -448
  118. data/lib/puppet/type/exec.rb +234 -174
  119. data/lib/puppet/type/group.rb +65 -82
  120. data/lib/puppet/type/nameservice.rb +247 -3
  121. data/lib/puppet/type/nameservice/netinfo.rb +29 -40
  122. data/lib/puppet/type/nameservice/objectadd.rb +52 -66
  123. data/lib/puppet/type/nameservice/posix.rb +6 -194
  124. data/lib/puppet/type/package.rb +447 -295
  125. data/lib/puppet/type/package/apt.rb +51 -50
  126. data/lib/puppet/type/package/bsd.rb +82 -0
  127. data/lib/puppet/type/package/dpkg.rb +85 -88
  128. data/lib/puppet/type/package/rpm.rb +67 -63
  129. data/lib/puppet/type/package/sun.rb +119 -98
  130. data/lib/puppet/type/package/yum.rb +41 -37
  131. data/lib/puppet/type/parsedtype.rb +295 -0
  132. data/lib/puppet/type/parsedtype/host.rb +143 -0
  133. data/lib/puppet/type/parsedtype/port.rb +232 -0
  134. data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
  135. data/lib/puppet/type/pfile.rb +484 -460
  136. data/lib/puppet/type/pfile/checksum.rb +237 -181
  137. data/lib/puppet/type/pfile/content.rb +67 -0
  138. data/lib/puppet/type/pfile/ensure.rb +212 -0
  139. data/lib/puppet/type/pfile/group.rb +106 -105
  140. data/lib/puppet/type/pfile/mode.rb +98 -101
  141. data/lib/puppet/type/pfile/source.rb +228 -209
  142. data/lib/puppet/type/pfile/type.rb +18 -21
  143. data/lib/puppet/type/pfile/uid.rb +127 -130
  144. data/lib/puppet/type/pfilebucket.rb +68 -63
  145. data/lib/puppet/type/schedule.rb +341 -0
  146. data/lib/puppet/type/service.rb +351 -255
  147. data/lib/puppet/type/service/base.rb +9 -14
  148. data/lib/puppet/type/service/debian.rb +32 -38
  149. data/lib/puppet/type/service/init.rb +130 -130
  150. data/lib/puppet/type/service/smf.rb +48 -20
  151. data/lib/puppet/type/state.rb +229 -16
  152. data/lib/puppet/type/symlink.rb +51 -63
  153. data/lib/puppet/type/tidy.rb +105 -102
  154. data/lib/puppet/type/user.rb +118 -180
  155. data/lib/puppet/util.rb +100 -6
  156. data/test/certmgr/certmgr.rb +0 -1
  157. data/test/client/client.rb +4 -4
  158. data/test/executables/puppetbin.rb +7 -14
  159. data/test/executables/puppetca.rb +18 -24
  160. data/test/executables/puppetd.rb +7 -16
  161. data/test/executables/puppetmasterd.rb +7 -9
  162. data/test/executables/puppetmodule.rb +11 -16
  163. data/test/language/ast.rb +11 -7
  164. data/test/language/interpreter.rb +1 -1
  165. data/test/language/scope.rb +2 -0
  166. data/test/language/snippets.rb +30 -5
  167. data/test/language/transportable.rb +77 -0
  168. data/test/other/config.rb +316 -0
  169. data/test/other/events.rb +22 -21
  170. data/test/other/log.rb +14 -14
  171. data/test/other/metrics.rb +4 -8
  172. data/test/other/overrides.rb +5 -5
  173. data/test/other/relationships.rb +4 -2
  174. data/test/other/storage.rb +64 -3
  175. data/test/other/transactions.rb +20 -20
  176. data/test/parser/parser.rb +7 -4
  177. data/test/puppet/conffiles.rb +12 -12
  178. data/test/puppet/defaults.rb +13 -11
  179. data/test/puppet/utiltest.rb +14 -11
  180. data/test/puppettest.rb +156 -48
  181. data/test/server/bucket.rb +2 -2
  182. data/test/server/fileserver.rb +6 -6
  183. data/test/server/logger.rb +19 -11
  184. data/test/server/master.rb +33 -4
  185. data/test/server/server.rb +2 -7
  186. data/test/types/basic.rb +5 -7
  187. data/test/types/component.rb +22 -18
  188. data/test/types/cron.rb +111 -44
  189. data/test/types/exec.rb +116 -59
  190. data/test/types/file.rb +262 -137
  191. data/test/types/filebucket.rb +13 -15
  192. data/test/types/fileignoresource.rb +12 -16
  193. data/test/types/filesources.rb +73 -48
  194. data/test/types/filetype.rb +13 -15
  195. data/test/types/group.rb +15 -13
  196. data/test/types/host.rb +146 -0
  197. data/test/types/package.rb +74 -63
  198. data/test/types/port.rb +139 -0
  199. data/test/types/query.rb +8 -8
  200. data/test/types/schedule.rb +335 -0
  201. data/test/types/service.rb +137 -21
  202. data/test/types/sshkey.rb +140 -0
  203. data/test/types/symlink.rb +3 -5
  204. data/test/types/tidy.rb +5 -14
  205. data/test/types/type.rb +67 -11
  206. data/test/types/user.rb +25 -23
  207. metadata +186 -122
  208. data/lib/puppet/type/pfile/create.rb +0 -108
  209. data/lib/puppet/type/pprocess.rb +0 -97
  210. data/lib/puppet/type/typegen.rb +0 -149
  211. data/lib/puppet/type/typegen/filerecord.rb +0 -243
  212. data/lib/puppet/type/typegen/filetype.rb +0 -316
  213. data/test/other/state.rb +0 -106
@@ -19,8 +19,8 @@ module Util
19
19
  if group.is_a?(Integer)
20
20
  gid = group
21
21
  else
22
- unless obj = Puppet::Type::Group[group]
23
- obj = Puppet::Type::Group.create(
22
+ unless obj = Puppet.type(:group)[group]
23
+ obj = Puppet.type(:group).create(
24
24
  :name => group,
25
25
  :check => [:gid]
26
26
  )
@@ -47,8 +47,8 @@ module Util
47
47
  if user.is_a?(Integer)
48
48
  uid = user
49
49
  else
50
- unless obj = Puppet::Type::User[user]
51
- obj = Puppet::Type::User.create(
50
+ unless obj = Puppet.type(:user)[user]
51
+ obj = Puppet.type(:user).create(
52
52
  :name => user,
53
53
  :check => [:uid, :gid]
54
54
  )
@@ -85,6 +85,91 @@ module Util
85
85
  return retval
86
86
  end
87
87
 
88
+ # Change the process to a different user
89
+ def self.chuser
90
+ if group = Puppet[:group]
91
+ if group =~ /^\d+$/
92
+ group = Integer(group)
93
+ else
94
+ begin
95
+ g = Etc.getgrnam(group)
96
+ rescue ArgumentError
97
+ $stderr.puts "Could not find group %s" % group
98
+ end
99
+ group = g.gid
100
+ end
101
+ unless Process.gid == group
102
+ begin
103
+ Process.egid = group
104
+ Process.gid = group
105
+ rescue
106
+ $stderr.puts "could not change to group %s" % group
107
+ exit(74)
108
+ end
109
+ end
110
+ end
111
+
112
+ if user = Puppet[:user]
113
+ if user =~ /^\d+$/
114
+ user = Integer(user)
115
+ else
116
+ begin
117
+ u = Etc.getpwnam(user)
118
+ rescue ArgumentError
119
+ $stderr.puts "Could not find user %s" % user
120
+ end
121
+ user = u.uid
122
+ end
123
+ unless Process.uid == user
124
+ begin
125
+ Process.euid = user
126
+ Process.uid = user
127
+ rescue
128
+ $stderr.puts "could not change to user %s" % user
129
+ exit(74)
130
+ end
131
+ end
132
+ end
133
+ end
134
+
135
+ # Create a lock file while something is happening
136
+ def self.lock(*opts)
137
+ lock = opts[0] + ".lock"
138
+ while File.exists?(lock)
139
+ stamp = File.stat(lock).mtime.to_i
140
+ if Time.now.to_i - stamp > 5
141
+ Puppet.notice "Lock file %s is %s seconds old; removing" %
142
+ [lock, Time.now.to_i - stamp]
143
+ File.delete(lock)
144
+ end
145
+ #Puppet.debug "%s is locked" % opts[0]
146
+ sleep 0.1
147
+ end
148
+ File.open(lock, "w") { |f| f.print " "; f.flush }
149
+ writing = false
150
+ if opts[1] == "w"
151
+ writing = true
152
+ tmp = opts[0] + ".tmp"
153
+ orig = opts[0]
154
+ opts[0] = tmp
155
+ end
156
+ begin
157
+ File.open(*opts) { |file| yield file }
158
+ if writing
159
+ File.rename(tmp, orig)
160
+ end
161
+ rescue => detail
162
+ Puppet.err "Storage error: %s" % detail
163
+ raise
164
+ ensure
165
+ # I don't really understand how the lock file could disappear,
166
+ # but just in case...
167
+ if FileTest.exists?(lock)
168
+ File.delete(lock)
169
+ end
170
+ end
171
+ end
172
+
88
173
  # Create instance methods for each of the log levels. This allows
89
174
  # the messages to be a little richer. Most classes will be calling this
90
175
  # method.
@@ -97,12 +182,12 @@ module Util
97
182
  if useself
98
183
  Puppet::Log.create(
99
184
  :level => level,
185
+ :source => self,
100
186
  :message => args
101
187
  )
102
188
  else
103
189
  Puppet::Log.create(
104
190
  :level => level,
105
- :source => self,
106
191
  :message => args
107
192
  )
108
193
  end
@@ -132,7 +217,16 @@ module Util
132
217
  return true
133
218
  end
134
219
  end
220
+
221
+ def self.symbolize(value)
222
+ case value
223
+ when String: value = value.intern
224
+ when Symbol: # nothing
225
+ else
226
+ raise ArgumentError, "'%s' must be a string or symbol" % value
227
+ end
228
+ end
135
229
  end
136
230
  end
137
231
 
138
- # $Id: util.rb 743 2005-11-16 21:39:31Z luke $
232
+ # $Id: util.rb 873 2006-02-07 23:12:33Z luke $
@@ -26,7 +26,6 @@ class TestCertMgr < Test::Unit::TestCase
26
26
  super
27
27
  #@dir = File.join(Puppet[:certdir], "testing")
28
28
  @dir = File.join(@configpath, "certest")
29
- Puppet.notice @dir
30
29
  system("mkdir -p %s" % @dir)
31
30
  end
32
31
 
@@ -10,7 +10,7 @@ require 'puppet/server'
10
10
  require 'test/unit'
11
11
  require 'puppettest.rb'
12
12
 
13
- # $Id: client.rb 724 2005-10-22 22:27:20Z luke $
13
+ # $Id: client.rb 847 2006-01-23 22:38:39Z luke $
14
14
 
15
15
  class TestClient < Test::Unit::TestCase
16
16
  include ServerTest
@@ -114,11 +114,11 @@ class TestClient < Test::Unit::TestCase
114
114
 
115
115
  # now verify that our client cannot do non-cert operations
116
116
  # because its certs are signed by a different CA
117
- assert_raise(Puppet::NetworkClientError,
117
+ assert_raise(Puppet::Error,
118
118
  "Client was allowed to call getconfig with no certs") {
119
119
  nonemaster.getconfig
120
120
  }
121
- assert_raise(Puppet::NetworkClientError,
121
+ assert_raise(Puppet::Error,
122
122
  "Client was allowed to call getconfig with untrusted certs") {
123
123
  certmaster.getconfig
124
124
  }
@@ -138,7 +138,7 @@ class TestClient < Test::Unit::TestCase
138
138
  # i don't think this test makes much sense anyway
139
139
  def disabled_test_sslInitWithNonsigningLocalServer
140
140
  Puppet[:autosign] = false
141
- Puppet[:ssldir] = "/tmp/puppetclientcertests"
141
+ Puppet[:ssldir] = tempfile()
142
142
  @@tmpfiles.push Puppet[:ssldir]
143
143
 
144
144
  file = File.join($puppetbase, "examples", "code", "head")
@@ -10,17 +10,8 @@ require 'puppet/sslcertificates'
10
10
  require 'test/unit'
11
11
  require 'puppettest.rb'
12
12
 
13
- # add the bin directory to our search path
14
- ENV["PATH"] += ":" + File.join($puppetbase, "bin")
15
-
16
- # and then the library directories
17
- libdirs = $:.find_all { |dir|
18
- dir =~ /puppet/ or dir =~ /\.\./
19
- }
20
- ENV["RUBYLIB"] = libdirs.join(":")
21
-
22
13
  class TestPuppetBin < Test::Unit::TestCase
23
- include ServerTest
14
+ include ExeTest
24
15
  def test_version
25
16
  output = nil
26
17
  assert_nothing_raised {
@@ -31,14 +22,16 @@ class TestPuppetBin < Test::Unit::TestCase
31
22
 
32
23
  def test_execution
33
24
  file = mktestmanifest()
34
- @@tmpfiles << "/tmp/puppetbintesting"
25
+ @@tmpfiles << tempfile()
35
26
 
36
27
  output = nil
37
28
  cmd = "puppet"
38
- cmd += " --verbose"
29
+ if Puppet[:debug]
30
+ cmd += " --debug"
31
+ end
39
32
  #cmd += " --fqdn %s" % fqdn
40
- cmd += " --confdir %s" % Puppet[:puppetconf]
41
- cmd += " --vardir %s" % Puppet[:puppetvar]
33
+ cmd += " --confdir %s" % Puppet[:confdir]
34
+ cmd += " --vardir %s" % Puppet[:vardir]
42
35
  cmd += " --logdest %s" % "/dev/null"
43
36
 
44
37
  assert_nothing_raised {
@@ -10,19 +10,8 @@ require 'puppet/sslcertificates'
10
10
  require 'test/unit'
11
11
  require 'puppettest.rb'
12
12
 
13
- # $Id: puppetca.rb 724 2005-10-22 22:27:20Z luke $
14
-
15
- # ok, we have to add the bin directory to our search path
16
- ENV["PATH"] += ":" + File.join($puppetbase, "bin")
17
-
18
- # and then the library directories
19
- libdirs = $:.find_all { |dir|
20
- dir =~ /puppet/ or dir =~ /\.\./
21
- }
22
- ENV["RUBYLIB"] = libdirs.join(":")
23
-
24
13
  class TestPuppetCA < Test::Unit::TestCase
25
- include ServerTest
14
+ include ExeTest
26
15
  def mkcert(hostname)
27
16
  cert = nil
28
17
  assert_nothing_raised {
@@ -34,17 +23,20 @@ class TestPuppetCA < Test::Unit::TestCase
34
23
 
35
24
  return cert
36
25
  end
26
+
27
+ def runca(args)
28
+ return %x{puppetca --confdir=#{Puppet[:confdir]} --user #{Process.uid} --group #{Process.gid} #{args} 2>&1}
29
+
30
+ end
37
31
 
38
32
  def test_signing
39
33
  ca = nil
40
- Puppet[:ssldir] = "/tmp/puppetcatest"
41
- @@tmpfiles << Puppet[:ssldir]
42
34
  Puppet[:autosign] = false
43
35
  assert_nothing_raised {
44
36
  ca = Puppet::Server::CA.new()
45
37
  }
46
- #Puppet.warning "SSLDir is %s" % Puppet[:ssldir]
47
- #system("find %s" % Puppet[:ssldir])
38
+ #Puppet.warning "SSLDir is %s" % Puppet[:confdir]
39
+ #system("find %s" % Puppet[:confdir])
48
40
 
49
41
  cert = mkcert("host.test.com")
50
42
  resp = nil
@@ -54,26 +46,28 @@ class TestPuppetCA < Test::Unit::TestCase
54
46
  resp = ca.getcert(cert.csr.to_pem, "fakename", "127.0.0.1")
55
47
  }
56
48
  assert_equal(["",""], resp)
57
- #Puppet.warning "SSLDir is %s" % Puppet[:ssldir]
58
- #system("find %s" % Puppet[:ssldir])
49
+ #Puppet.warning "SSLDir is %s" % Puppet[:confdir]
50
+ #system("find %s" % Puppet[:confdir])
59
51
 
60
52
  output = nil
61
53
  assert_nothing_raised {
62
- output = %x{puppetca --list --ssldir=#{Puppet[:ssldir]} 2>&1}.chomp.split("\n").reject { |line| line =~ /warning:/ } # stupid ssl.rb
54
+ output = runca("--list").chomp.split("\n").reject { |line| line =~ /warning:/ } # stupid ssl.rb
63
55
  }
64
- #Puppet.warning "SSLDir is %s" % Puppet[:ssldir]
65
- #system("find %s" % Puppet[:ssldir])
56
+ #Puppet.warning "SSLDir is %s" % Puppet[:confdir]
57
+ #system("find %s" % Puppet[:confdir])
66
58
  assert_equal($?,0)
67
59
  assert_equal(%w{host.test.com}, output)
68
60
  assert_nothing_raised {
69
- output = %x{puppetca --sign -a --ssldir=#{Puppet[:ssldir]}}.chomp.split("\n")
61
+ output = runca("--sign -a").chomp.split("\n")
70
62
  }
71
63
  assert_equal($?,0)
72
- assert_equal([], output)
64
+ assert_equal(["Signed host.test.com"], output)
73
65
  assert_nothing_raised {
74
- output = %x{puppetca --list --ssldir=#{Puppet[:ssldir]}}.chomp.split("\n")
66
+ output = runca("--list").chomp.split("\n")
75
67
  }
76
68
  assert_equal($?,0)
77
69
  assert_equal([], output)
78
70
  end
79
71
  end
72
+
73
+ # $Id: puppetca.rb 873 2006-02-07 23:12:33Z luke $
@@ -11,17 +11,6 @@ require 'puppettest.rb'
11
11
  require 'socket'
12
12
  require 'facter'
13
13
 
14
- # $Id: puppetd.rb 731 2005-10-26 04:44:25Z luke $
15
-
16
- # ok, we have to add the bin directory to our search path
17
- ENV["PATH"] += ":" + File.join($puppetbase, "bin")
18
-
19
- # and then the library directories
20
- libdirs = $:.find_all { |dir|
21
- dir =~ /puppet/ or dir =~ /\.\./
22
- }
23
- ENV["RUBYLIB"] = libdirs.join(":")
24
-
25
14
  class TestPuppetDExe < Test::Unit::TestCase
26
15
  include ExeTest
27
16
  def test_normalstart
@@ -36,16 +25,16 @@ class TestPuppetDExe < Test::Unit::TestCase
36
25
 
37
26
  cmd = "puppetd"
38
27
  cmd += " --verbose"
28
+ cmd += " --onetime"
39
29
  #cmd += " --fqdn %s" % fqdn
40
- cmd += " --port %s" % @@port
41
- cmd += " --confdir %s" % Puppet[:puppetconf]
42
- cmd += " --vardir %s" % Puppet[:puppetvar]
30
+ cmd += " --masterport %s" % @@port
31
+ cmd += " --confdir %s" % Puppet[:confdir]
32
+ cmd += " --vardir %s" % Puppet[:vardir]
43
33
  cmd += " --server localhost"
44
34
 
45
35
  # and verify our daemon runs
46
36
  assert_nothing_raised {
47
- output = %x{#{cmd}}.chomp
48
- puts output
37
+ system cmd
49
38
  }
50
39
  sleep 1
51
40
  assert($? == 0, "Puppetd exited with code %s" % $?)
@@ -69,3 +58,5 @@ class TestPuppetDExe < Test::Unit::TestCase
69
58
  stopmasterd
70
59
  end
71
60
  end
61
+
62
+ # $Id: puppetd.rb 873 2006-02-07 23:12:33Z luke $
@@ -12,8 +12,6 @@ require 'puppettest.rb'
12
12
  require 'socket'
13
13
  require 'facter'
14
14
 
15
- # $Id: puppetmasterd.rb 732 2005-10-28 05:39:59Z luke $
16
-
17
15
  class TestPuppetMasterD < Test::Unit::TestCase
18
16
  include ExeTest
19
17
  def getcerts
@@ -29,7 +27,7 @@ class TestPuppetMasterD < Test::Unit::TestCase
29
27
  def test_normalstart
30
28
  startmasterd
31
29
 
32
- pidfile = File.join(Puppet[:puppetvar], "puppetmasterd.pid")
30
+ pidfile = File.join(Puppet[:vardir], "run", "puppetmasterd.pid")
33
31
  assert(FileTest.exists?(pidfile), "PID file does not exist")
34
32
 
35
33
  sleep(1)
@@ -82,8 +80,6 @@ class TestPuppetMasterD < Test::Unit::TestCase
82
80
  }
83
81
 
84
82
  objects = nil
85
- assert_instance_of(Puppet::TransBucket, retval,
86
- "Retrieved non-transportable object")
87
83
  stopmasterd
88
84
  sleep(1)
89
85
  end
@@ -96,7 +92,7 @@ class TestPuppetMasterD < Test::Unit::TestCase
96
92
  pid = nil
97
93
  ps = Facter["ps"].value || "ps -ef"
98
94
  %x{#{ps}}.chomp.split(/\n/).each { |line|
99
- if line =~ /puppetmasterd --manifest/
95
+ if line =~ /puppetmasterd.+--manifest/
100
96
  ary = line.split(" ")
101
97
  pid = ary[1].to_i
102
98
  end
@@ -137,17 +133,19 @@ class TestPuppetMasterD < Test::Unit::TestCase
137
133
  Facter.each { |p,v|
138
134
  facts[p] = v
139
135
  }
140
- textfacts = CGI.escape(Marshal::dump(facts))
136
+ textfacts = CGI.escape(YAML.dump(facts))
141
137
  assert_nothing_raised() {
142
138
  #Puppet.notice "calling status"
143
139
  #retval = client.call("status.status", "")
144
- retval = client.call("puppetmaster.getconfig", textfacts)
140
+ retval = client.call("puppetmaster.getconfig", textfacts, "yaml")
145
141
  }
146
142
 
147
143
  objects = nil
148
144
  assert_nothing_raised {
149
- Marshal::load(CGI.unescape(retval))
145
+ YAML.load(CGI.unescape(retval))
150
146
  }
151
147
  #stopmasterd
152
148
  end
153
149
  end
150
+
151
+ # $Id: puppetmasterd.rb 873 2006-02-07 23:12:33Z luke $
@@ -10,19 +10,14 @@ require 'puppet/sslcertificates'
10
10
  require 'test/unit'
11
11
  require 'puppettest.rb'
12
12
 
13
- # add the bin directory to our search path
14
- ENV["PATH"] += ":" + File.join($puppetbase, "bin")
15
-
16
- # and then the library directories
17
- libdirs = $:.find_all { |dir|
18
- dir =~ /puppet/ or dir =~ /\.\./
19
- }
20
- ENV["RUBYLIB"] = libdirs.join(":")
21
-
22
- $module = File.join($puppetbase, "ext", "module:puppet")
13
+ $module = File.join($puppetbase, "ext", "module_puppet")
23
14
 
24
15
  class TestPuppetModule < Test::Unit::TestCase
25
- include ServerTest
16
+ include ExeTest
17
+
18
+ def test_existence
19
+ assert(FileTest.exists?($module), "Module does not exist")
20
+ end
26
21
 
27
22
  def test_execution
28
23
  file = tempfile()
@@ -30,24 +25,24 @@ class TestPuppetModule < Test::Unit::TestCase
30
25
  createdfile = tempfile()
31
26
 
32
27
  File.open(file, "w") { |f|
33
- f.puts "class yaytest { file { \"#{createdfile}\": create => true } }"
28
+ f.puts "class yaytest { file { \"#{createdfile}\": ensure => file } }"
34
29
  }
35
30
 
36
31
  output = nil
37
32
  cmd = $module
38
33
  cmd += " --verbose"
39
34
  #cmd += " --fqdn %s" % fqdn
40
- cmd += " --confdir %s" % Puppet[:puppetconf]
41
- cmd += " --vardir %s" % Puppet[:puppetvar]
35
+ cmd += " --confdir %s" % Puppet[:confdir]
36
+ cmd += " --vardir %s" % Puppet[:vardir]
42
37
  if Puppet[:debug]
43
38
  cmd += " --logdest %s" % "console"
39
+ cmd += " --debug"
44
40
  else
45
41
  cmd += " --logdest %s" % "/dev/null"
46
42
  end
47
43
 
48
44
  ENV["CFALLCLASSES"] = "yaytest:all"
49
45
 
50
- Puppet.err :mark
51
46
  assert_nothing_raised {
52
47
  system(cmd + " " + file)
53
48
  }
@@ -57,4 +52,4 @@ class TestPuppetModule < Test::Unit::TestCase
57
52
  end
58
53
  end
59
54
 
60
- # $Id: puppetmodule.rb 746 2005-11-17 21:03:19Z luke $
55
+ # $Id: puppetmodule.rb 873 2006-02-07 23:12:33Z luke $