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
@@ -8,7 +8,7 @@ require 'puppet'
8
8
  require 'puppettest'
9
9
  require 'test/unit'
10
10
 
11
- # $Id: events.rb 724 2005-10-22 22:27:20Z luke $
11
+ # $Id: events.rb 832 2006-01-17 07:11:50Z luke $
12
12
 
13
13
  class TestEvents < Test::Unit::TestCase
14
14
  include TestPuppet
@@ -18,41 +18,40 @@ class TestEvents < Test::Unit::TestCase
18
18
  end
19
19
 
20
20
  def test_simplesubscribe
21
- file = Puppet::Type::PFile.create(
22
- :name => "/tmp/eventtestingA",
23
- :create => true
21
+ name = tempfile()
22
+ file = Puppet.type(:file).create(
23
+ :name => name,
24
+ :ensure => "file"
24
25
  )
25
- exec = Puppet::Type::Exec.create(
26
+ exec = Puppet.type(:exec).create(
26
27
  :name => "echo true",
27
28
  :path => "/usr/bin:/bin",
28
29
  :refreshonly => true,
29
30
  :subscribe => [[file.class.name, file.name]]
30
31
  )
31
32
 
32
- @@tmpfiles << "/tmp/eventtestingA"
33
-
34
33
  comp = newcomp("eventtesting", file, exec)
35
34
 
36
- trans = assert_events(comp, [:file_created], "events")
35
+ trans = assert_events([:file_created], comp)
37
36
 
38
37
  assert_equal(1, trans.triggered?(exec, :refresh))
39
38
  end
40
39
 
41
40
  def test_simplerequire
42
- file = Puppet::Type::PFile.create(
43
- :name => "/tmp/eventtestingA",
44
- :create => true
41
+ name = tempfile()
42
+ file = Puppet.type(:file).create(
43
+ :name => name,
44
+ :ensure => "file"
45
45
  )
46
- exec = Puppet::Type::Exec.create(
46
+ exec = Puppet.type(:exec).create(
47
47
  :name => "echo true",
48
48
  :path => "/usr/bin:/bin",
49
49
  :refreshonly => true,
50
50
  :require => [[file.class.name, file.name]]
51
51
  )
52
52
 
53
- @@tmpfiles << "/tmp/eventtestingA"
54
53
 
55
- comp = Puppet::Type::Component.create(
54
+ comp = Puppet.type(:component).create(
56
55
  :name => "eventtesting"
57
56
  )
58
57
  comp.push exec
@@ -67,21 +66,21 @@ class TestEvents < Test::Unit::TestCase
67
66
  assert_equal(0, trans.triggered?(exec, :refresh))
68
67
  end
69
68
 
70
- def test_zladderrequire
69
+ def test_ladderrequire
71
70
  comps = {}
72
71
  objects = {}
73
- fname = "/tmp/eventtestfuntest"
72
+ fname = tempfile()
74
73
  [:a, :b].each { |l|
75
74
  case l
76
75
  when :a
77
- name = "/tmp/eventtesting%s" % l
78
- objects[l] = Puppet::Type::PFile.create(
76
+ name = tempfile() + l.to_s
77
+ objects[l] = Puppet.type(:file).create(
79
78
  :name => name,
80
- :create => true
79
+ :ensure => "file"
81
80
  )
82
81
  @@tmpfiles << name
83
82
  when :b
84
- objects[l] = Puppet::Type::Exec.create(
83
+ objects[l] = Puppet.type(:exec).create(
85
84
  :name => "touch %s" % fname,
86
85
  :path => "/usr/bin:/bin",
87
86
  :refreshonly => true
@@ -90,7 +89,7 @@ class TestEvents < Test::Unit::TestCase
90
89
  end
91
90
 
92
91
 
93
- comps[l] = Puppet::Type::Component.create(
92
+ comps[l] = Puppet.type(:component).create(
94
93
  :name => "eventtesting%s" % l
95
94
  )
96
95
 
@@ -99,6 +98,8 @@ class TestEvents < Test::Unit::TestCase
99
98
 
100
99
  comps[:b][:subscribe] = [[comps[:a].class.name, comps[:a].name]]
101
100
 
101
+ Puppet::Type.finalize
102
+
102
103
  trans = comps[:a].evaluate
103
104
  events = nil
104
105
  assert_nothing_raised {
@@ -9,7 +9,7 @@ require 'puppet'
9
9
  require 'puppettest'
10
10
  require 'test/unit'
11
11
 
12
- # $Id: log.rb 740 2005-11-01 20:22:19Z luke $
12
+ # $Id: log.rb 873 2006-02-07 23:12:33Z luke $
13
13
 
14
14
  class TestLog < Test::Unit::TestCase
15
15
  include TestPuppet
@@ -44,6 +44,7 @@ class TestLog < Test::Unit::TestCase
44
44
  def test_logfile
45
45
  fact = nil
46
46
  levels = nil
47
+ Puppet::Log.level = :debug
47
48
  levels = getlevels
48
49
  logfile = tempfile()
49
50
  assert_nothing_raised() {
@@ -77,7 +78,6 @@ class TestLog < Test::Unit::TestCase
77
78
  end
78
79
 
79
80
  def test_consolelog
80
- Puppet[:debug] = true if __FILE__ == $0
81
81
  fact = nil
82
82
  levels = getlevels
83
83
  assert_nothing_raised() {
@@ -100,28 +100,28 @@ class TestLog < Test::Unit::TestCase
100
100
  end
101
101
 
102
102
  def test_output
103
- Puppet[:debug] = false
103
+ Puppet.debug = false
104
104
  assert(Puppet.err("This is an error").is_a?(Puppet::Log))
105
105
  assert(Puppet.debug("This is debugging").nil?)
106
- Puppet[:debug] = true
106
+ Puppet.debug = true
107
107
  assert(Puppet.err("This is an error").is_a?(Puppet::Log))
108
108
  assert(Puppet.debug("This is debugging").is_a?(Puppet::Log))
109
109
  end
110
110
 
111
111
  def test_creatingdirs
112
- Puppet[:logdest] = "/tmp/logtesting/logfile"
112
+ dir = tempfile()
113
+ file = File.join(dir, "logfile")
114
+ Puppet::Log.newdestination file
113
115
  Puppet.info "testing logs"
114
- assert(FileTest.directory?("/tmp/logtesting"))
115
- assert(FileTest.file?("/tmp/logtesting/logfile"))
116
-
117
- system("rm -rf /tmp/logtesting")
116
+ assert(FileTest.directory?(dir))
117
+ assert(FileTest.file?(file))
118
118
  end
119
119
 
120
120
  def test_logtags
121
121
  path = tempfile
122
122
  File.open(path, "w") { |f| f.puts "yayness" }
123
123
 
124
- file = Puppet::Type::PFile.create(
124
+ file = Puppet.type(:file).create(
125
125
  :path => path,
126
126
  :check => [:owner, :group, :mode, :checksum]
127
127
  )
@@ -144,7 +144,7 @@ class TestLog < Test::Unit::TestCase
144
144
 
145
145
  # Verify that we can pass strings that match printf args
146
146
  def test_percentlogs
147
- Puppet[:logdest] = :syslog
147
+ Puppet::Log.newdestination :syslog
148
148
 
149
149
  assert_nothing_raised {
150
150
  Puppet::Log.new(
@@ -157,7 +157,7 @@ class TestLog < Test::Unit::TestCase
157
157
  # Verify that the error and source are always strings
158
158
  def test_argsAreStrings
159
159
  msg = nil
160
- file = Puppet::Type::PFile.create(
160
+ file = Puppet.type(:file).create(
161
161
  :path => tempfile(),
162
162
  :check => %w{owner group}
163
163
  )
@@ -175,9 +175,9 @@ class TestLog < Test::Unit::TestCase
175
175
  # Verify that loglevel behaves as one expects
176
176
  def test_loglevel
177
177
  path = tempfile()
178
- file = Puppet::Type::PFile.create(
178
+ file = Puppet.type(:file).create(
179
179
  :path => path,
180
- :create => true
180
+ :ensure => "file"
181
181
  )
182
182
 
183
183
  assert_nothing_raised {
@@ -18,6 +18,7 @@ end
18
18
 
19
19
  if $haverrd
20
20
  class TestMetric < Test::Unit::TestCase
21
+ include TestPuppet
21
22
 
22
23
  def gendata
23
24
  totalmax = 1000
@@ -25,7 +26,7 @@ if $haverrd
25
26
  eventmax = 10
26
27
  maxdiff = 10
27
28
 
28
- types = [Puppet::Type::PFile, Puppet::Type::Package, Puppet::Type::Service]
29
+ types = [Puppet.type(:file), Puppet.type(:package), Puppet.type(:package)]
29
30
  data = [:total, :managed, :outofsync, :changed, :totalchanges]
30
31
  events = [:file_changed, :package_installed, :service_started]
31
32
 
@@ -52,13 +53,8 @@ if $haverrd
52
53
  end
53
54
 
54
55
  def setup
55
- Puppet[:rrddir] = File.join(Puppet[:puppetvar], "rrdtesting")
56
+ super
56
57
  Puppet[:rrdgraph] = true
57
- Puppet[:loglevel] = :debug if __FILE__ == $0
58
- end
59
-
60
- def teardown
61
- system("rm -rf %s" % Puppet[:rrddir])
62
58
  end
63
59
 
64
60
  def test_fakedata
@@ -89,4 +85,4 @@ else
89
85
  $stderr.puts "Missing RRD library -- skipping metric tests"
90
86
  end
91
87
 
92
- # $Id: metrics.rb 724 2005-10-22 22:27:20Z luke $
88
+ # $Id: metrics.rb 816 2006-01-12 21:04:06Z luke $
@@ -29,7 +29,7 @@ class TestOverrides < Test::Unit::TestCase
29
29
  baseobj = nil
30
30
  basefile = File.join(basedir, "file")
31
31
  assert_nothing_raised("Could not create base obj") {
32
- baseobj = Puppet::Type::PFile.create(
32
+ baseobj = Puppet.type(:file).create(
33
33
  :path => basedir,
34
34
  :recurse => true,
35
35
  :mode => "755"
@@ -40,7 +40,7 @@ class TestOverrides < Test::Unit::TestCase
40
40
  subdir = File.join(basedir, "0")
41
41
  subfile = File.join(subdir, "file")
42
42
  assert_nothing_raised("Could not create sub obj") {
43
- subobj = Puppet::Type::PFile.create(
43
+ subobj = Puppet.type(:file).create(
44
44
  :path => subdir,
45
45
  :recurse => true,
46
46
  :mode => "644"
@@ -63,7 +63,7 @@ class TestOverrides < Test::Unit::TestCase
63
63
 
64
64
  baseobj = nil
65
65
  assert_nothing_raised("Could not create base obj") {
66
- baseobj = Puppet::Type::PFile.create(
66
+ baseobj = Puppet.type(:file).create(
67
67
  :path => basedir,
68
68
  :recurse => true,
69
69
  :mode => "755"
@@ -87,7 +87,7 @@ class TestOverrides < Test::Unit::TestCase
87
87
  end
88
88
 
89
89
  assert_nothing_raised("Could not create sub obj") {
90
- children << Puppet::Type::PFile.create(
90
+ children << Puppet.type(:file).create(
91
91
  :path => subdir,
92
92
  :recurse => true,
93
93
  :mode => mode
@@ -112,4 +112,4 @@ class TestOverrides < Test::Unit::TestCase
112
112
  end
113
113
  end
114
114
 
115
- # $Id: overrides.rb 724 2005-10-22 22:27:20Z luke $
115
+ # $Id: overrides.rb 787 2006-01-08 00:02:23Z luke $
@@ -12,7 +12,7 @@ class TestRelationships < Test::Unit::TestCase
12
12
  include TestPuppet
13
13
  def newfile
14
14
  assert_nothing_raised() {
15
- return Puppet::Type::PFile.create(
15
+ return Puppet.type(:file).create(
16
16
  :path => tempfile,
17
17
  :check => [:mode, :owner, :group]
18
18
  )
@@ -26,6 +26,8 @@ class TestRelationships < Test::Unit::TestCase
26
26
  file1[:require] = [file2.class.name, file2.name]
27
27
  }
28
28
 
29
+ Puppet::Type.finalize
30
+
29
31
  deps = []
30
32
  assert_nothing_raised {
31
33
  file1.eachdependency { |obj|
@@ -110,4 +112,4 @@ class TestRelationships < Test::Unit::TestCase
110
112
  end
111
113
  end
112
114
 
113
- # $Id: relationships.rb 724 2005-10-22 22:27:20Z luke $
115
+ # $Id: relationships.rb 808 2006-01-12 05:02:51Z luke $
@@ -11,12 +11,28 @@ require 'test/unit'
11
11
  class TestParsedFile < Test::Unit::TestCase
12
12
  include TestPuppet
13
13
 
14
+ def mkfile
15
+ path = tempfile()
16
+ File.open(path, "w") { |f| f.puts :yayness }
17
+
18
+ f = Puppet.type(:file).create(
19
+ :name => path,
20
+ :check => %w{checksum type}
21
+ )
22
+
23
+ return f
24
+ end
25
+
14
26
  def test_storeandretrieve
27
+ path = tempfile()
28
+
29
+ f = mkfile()
30
+
15
31
  hash = {:a => :b, :c => :d}
16
32
 
17
33
  state = nil
18
34
  assert_nothing_raised {
19
- state = Puppet::Storage.state(hash)
35
+ state = Puppet::Storage.cache(f)
20
36
  }
21
37
 
22
38
  assert(!state.include?("name"))
@@ -29,11 +45,56 @@ class TestParsedFile < Test::Unit::TestCase
29
45
  Puppet::Storage.store
30
46
  }
31
47
  assert_nothing_raised {
32
- state = Puppet::Storage.state(hash)
48
+ Puppet::Storage.clear
49
+ }
50
+ assert_nothing_raised {
51
+ Puppet::Storage.load
52
+ }
53
+
54
+ # Reset it
55
+ state = nil
56
+ assert_nothing_raised {
57
+ state = Puppet::Storage.cache(f)
33
58
  }
34
59
 
35
60
  assert_equal(state["name"], hash)
36
61
  end
62
+
63
+ # we're getting corrupt files, probably because multiple processes
64
+ # are reading or writing the file at once
65
+ # so we need to test that
66
+ def test_multiwrite
67
+ f = mkfile()
68
+
69
+ value = {:a => :b}
70
+ threads = []
71
+ 9.times { |a|
72
+ threads << Thread.new {
73
+ 9.times { |b|
74
+ assert_nothing_raised {
75
+ Puppet::Storage.load
76
+ state = Puppet::Storage.cache(f)
77
+ value.each { |k,v| state[k] = v }
78
+ state[:e] = rand(100)
79
+ Puppet::Storage.store
80
+ }
81
+ }
82
+ }
83
+ }
84
+ threads.each { |th| th.join }
85
+ end
86
+
87
+ def test_emptyrestore
88
+ Puppet::Storage.load
89
+ Puppet::Storage.store
90
+ Puppet::Storage.clear
91
+ Puppet::Storage.load
92
+
93
+ f = mkfile()
94
+ state = Puppet::Storage.cache(f)
95
+ assert_same Hash, state.class
96
+ assert_equal 0, state.size
97
+ end
37
98
  end
38
99
 
39
- # $Id: storage.rb 742 2005-11-16 17:12:11Z luke $
100
+ # $Id: storage.rb 847 2006-01-23 22:38:39Z luke $
@@ -8,7 +8,7 @@ require 'puppet'
8
8
  require 'puppettest'
9
9
  require 'test/unit'
10
10
 
11
- # $Id: transactions.rb 747 2005-11-22 03:54:30Z luke $
11
+ # $Id: transactions.rb 871 2006-02-07 05:58:00Z luke $
12
12
 
13
13
  class TestTransactions < Test::Unit::TestCase
14
14
  include FileTesting
@@ -34,10 +34,7 @@ class TestTransactions < Test::Unit::TestCase
34
34
  end
35
35
 
36
36
  def teardown
37
- Puppet::Type::Service.each { |serv|
38
- serv[:running] = false
39
- serv.sync
40
- }
37
+ stopservices
41
38
  #print "\n\n" if Puppet[:debug]
42
39
  super
43
40
  end
@@ -66,13 +63,13 @@ class TestTransactions < Test::Unit::TestCase
66
63
  @@tmpfiles.push tmpfile
67
64
  hash[:name] = tmpfile
68
65
  assert_nothing_raised() {
69
- return Puppet::Type::PFile.create(hash)
66
+ return Puppet.type(:file).create(hash)
70
67
  }
71
68
  end
72
69
 
73
70
  def newservice
74
71
  assert_nothing_raised() {
75
- return Puppet::Type::Service.create(
72
+ return Puppet.type(:service).create(
76
73
  :name => "sleeper",
77
74
  :type => "init",
78
75
  :path => File.join($puppetbase,"examples/root/etc/init.d"),
@@ -84,7 +81,7 @@ class TestTransactions < Test::Unit::TestCase
84
81
 
85
82
  def newexec(file)
86
83
  assert_nothing_raised() {
87
- return Puppet::Type::Exec.create(
84
+ return Puppet.type(:exec).create(
88
85
  :name => "touch %s" % file,
89
86
  :path => "/bin:/usr/bin:/sbin:/usr/sbin",
90
87
  :returns => 0
@@ -126,9 +123,10 @@ class TestTransactions < Test::Unit::TestCase
126
123
 
127
124
  file[:mode] = "755"
128
125
  }
129
- trans = assert_events(component, [:inode_changed, :inode_changed], "file")
126
+ trans = assert_events([:file_changed, :file_changed], component)
127
+ file.retrieve
130
128
 
131
- assert_rollback_events(trans, [:inode_changed, :inode_changed], "file")
129
+ assert_rollback_events(trans, [:file_changed, :file_changed], "file")
132
130
 
133
131
  assert_nothing_raised() {
134
132
  file.retrieve
@@ -141,7 +139,8 @@ class TestTransactions < Test::Unit::TestCase
141
139
  end
142
140
 
143
141
  # start a service, and then roll the modification back
144
- def test_servicetrans
142
+ # Disabled, because it wasn't really worth the effort.
143
+ def disabled_test_servicetrans
145
144
  transaction = nil
146
145
  service = newservice()
147
146
 
@@ -150,9 +149,13 @@ class TestTransactions < Test::Unit::TestCase
150
149
  assert_nothing_raised() {
151
150
  service[:running] = 1
152
151
  }
153
- trans = assert_events(component, [:service_started], "file")
152
+ service.retrieve
153
+ assert(service.insync?, "Service did not start")
154
+ system("ps -ef | grep ruby")
155
+ trans = assert_events([:service_started], component)
156
+ service.retrieve
154
157
 
155
- assert_rollback_events(trans, [:service_stopped], "file")
158
+ assert_rollback_events(trans, [:service_stopped], "service")
156
159
  end
157
160
 
158
161
  # test that services are correctly restarted and that work is done
@@ -186,8 +189,7 @@ class TestTransactions < Test::Unit::TestCase
186
189
  file[:mode] = "755"
187
190
  }
188
191
 
189
- trans = assert_events(component,
190
- [:inode_changed], "testboth")
192
+ trans = assert_events( [:file_changed], component)
191
193
 
192
194
  assert(FileTest.exists?(execfile), "Execfile does not exist")
193
195
  File.unlink(execfile)
@@ -195,8 +197,7 @@ class TestTransactions < Test::Unit::TestCase
195
197
  file[:group] = @groups[1]
196
198
  }
197
199
 
198
- trans = assert_events(component,
199
- [:inode_changed], "testboth")
200
+ trans = assert_events([:file_changed], component)
200
201
  assert(FileTest.exists?(execfile), "Execfile does not exist")
201
202
  end
202
203
 
@@ -220,15 +221,14 @@ class TestTransactions < Test::Unit::TestCase
220
221
  ecomp[:subscribe] = [[fcomp.class.name,fcomp.name]]
221
222
  exec[:refreshonly] = true
222
223
 
223
- trans = assert_events(component, [], "subscribe1")
224
+ trans = assert_events([], component)
224
225
 
225
226
  assert_nothing_raised() {
226
227
  file[:group] = @groups[1]
227
228
  file[:mode] = "755"
228
229
  }
229
230
 
230
- trans = assert_events(component, [:inode_changed, :inode_changed],
231
- "subscribe2")
231
+ trans = assert_events([:file_changed, :file_changed], component)
232
232
 
233
233
  end
234
234