puppet 0.9.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 (182) hide show
  1. data/CHANGELOG +0 -0
  2. data/COPYING +340 -0
  3. data/LICENSE +17 -0
  4. data/README +24 -0
  5. data/Rakefile +294 -0
  6. data/TODO +4 -0
  7. data/bin/cf2puppet +186 -0
  8. data/bin/puppet +176 -0
  9. data/bin/puppetca +213 -0
  10. data/bin/puppetd +246 -0
  11. data/bin/puppetdoc +184 -0
  12. data/bin/puppetmasterd +258 -0
  13. data/examples/code/allatonce +13 -0
  14. data/examples/code/assignments +11 -0
  15. data/examples/code/classing +35 -0
  16. data/examples/code/components +73 -0
  17. data/examples/code/execs +16 -0
  18. data/examples/code/failers/badclassnoparam +10 -0
  19. data/examples/code/failers/badclassparam +10 -0
  20. data/examples/code/failers/badcompnoparam +9 -0
  21. data/examples/code/failers/badcompparam +9 -0
  22. data/examples/code/failers/badtypeparam +3 -0
  23. data/examples/code/file.bl +11 -0
  24. data/examples/code/filedefaults +10 -0
  25. data/examples/code/fileparsing +116 -0
  26. data/examples/code/filerecursion +15 -0
  27. data/examples/code/functions +3 -0
  28. data/examples/code/groups +7 -0
  29. data/examples/code/head +30 -0
  30. data/examples/code/importing +8 -0
  31. data/examples/code/nodes +20 -0
  32. data/examples/code/one +8 -0
  33. data/examples/code/relationships +34 -0
  34. data/examples/code/selectors +28 -0
  35. data/examples/code/simpletests +11 -0
  36. data/examples/code/snippets/argumentdefaults +14 -0
  37. data/examples/code/snippets/casestatement +39 -0
  38. data/examples/code/snippets/classheirarchy.pp +15 -0
  39. data/examples/code/snippets/classincludes.pp +17 -0
  40. data/examples/code/snippets/classpathtest +11 -0
  41. data/examples/code/snippets/dirchmod +19 -0
  42. data/examples/code/snippets/failmissingexecpath.pp +13 -0
  43. data/examples/code/snippets/falsevalues.pp +3 -0
  44. data/examples/code/snippets/filecreate +11 -0
  45. data/examples/code/snippets/implicititeration +15 -0
  46. data/examples/code/snippets/multipleinstances +7 -0
  47. data/examples/code/snippets/namevartest +9 -0
  48. data/examples/code/snippets/scopetest +13 -0
  49. data/examples/code/snippets/selectorvalues.pp +22 -0
  50. data/examples/code/snippets/simpledefaults +5 -0
  51. data/examples/code/snippets/simpleselector +38 -0
  52. data/examples/code/svncommit +13 -0
  53. data/examples/root/bin/sleeper +69 -0
  54. data/examples/root/etc/configfile +0 -0
  55. data/examples/root/etc/debian-passwd +29 -0
  56. data/examples/root/etc/debian-syslog.conf +71 -0
  57. data/examples/root/etc/init.d/sleeper +65 -0
  58. data/examples/root/etc/otherfile +0 -0
  59. data/examples/root/etc/puppet/fileserver.conf +3 -0
  60. data/examples/root/etc/puppet/puppetmasterd.conf +10 -0
  61. data/ext/module:puppet +195 -0
  62. data/install.rb +270 -0
  63. data/lib/puppet.rb +249 -0
  64. data/lib/puppet/base64.rb +19 -0
  65. data/lib/puppet/client.rb +519 -0
  66. data/lib/puppet/config.rb +49 -0
  67. data/lib/puppet/daemon.rb +208 -0
  68. data/lib/puppet/element.rb +71 -0
  69. data/lib/puppet/event.rb +259 -0
  70. data/lib/puppet/log.rb +321 -0
  71. data/lib/puppet/metric.rb +250 -0
  72. data/lib/puppet/parsedfile.rb +38 -0
  73. data/lib/puppet/parser/ast.rb +1560 -0
  74. data/lib/puppet/parser/interpreter.rb +150 -0
  75. data/lib/puppet/parser/lexer.rb +226 -0
  76. data/lib/puppet/parser/parser.rb +1354 -0
  77. data/lib/puppet/parser/scope.rb +755 -0
  78. data/lib/puppet/server.rb +170 -0
  79. data/lib/puppet/server/authstore.rb +227 -0
  80. data/lib/puppet/server/ca.rb +140 -0
  81. data/lib/puppet/server/filebucket.rb +147 -0
  82. data/lib/puppet/server/fileserver.rb +477 -0
  83. data/lib/puppet/server/logger.rb +43 -0
  84. data/lib/puppet/server/master.rb +103 -0
  85. data/lib/puppet/server/servlet.rb +247 -0
  86. data/lib/puppet/sslcertificates.rb +737 -0
  87. data/lib/puppet/statechange.rb +150 -0
  88. data/lib/puppet/storage.rb +95 -0
  89. data/lib/puppet/transaction.rb +179 -0
  90. data/lib/puppet/transportable.rb +151 -0
  91. data/lib/puppet/type.rb +1354 -0
  92. data/lib/puppet/type/component.rb +141 -0
  93. data/lib/puppet/type/cron.rb +543 -0
  94. data/lib/puppet/type/exec.rb +316 -0
  95. data/lib/puppet/type/group.rb +152 -0
  96. data/lib/puppet/type/nameservice.rb +3 -0
  97. data/lib/puppet/type/nameservice/netinfo.rb +173 -0
  98. data/lib/puppet/type/nameservice/objectadd.rb +146 -0
  99. data/lib/puppet/type/nameservice/posix.rb +200 -0
  100. data/lib/puppet/type/package.rb +420 -0
  101. data/lib/puppet/type/package/apt.rb +70 -0
  102. data/lib/puppet/type/package/dpkg.rb +108 -0
  103. data/lib/puppet/type/package/rpm.rb +81 -0
  104. data/lib/puppet/type/package/sun.rb +117 -0
  105. data/lib/puppet/type/package/yum.rb +58 -0
  106. data/lib/puppet/type/pfile.rb +569 -0
  107. data/lib/puppet/type/pfile/checksum.rb +219 -0
  108. data/lib/puppet/type/pfile/create.rb +108 -0
  109. data/lib/puppet/type/pfile/group.rb +129 -0
  110. data/lib/puppet/type/pfile/mode.rb +131 -0
  111. data/lib/puppet/type/pfile/source.rb +264 -0
  112. data/lib/puppet/type/pfile/type.rb +31 -0
  113. data/lib/puppet/type/pfile/uid.rb +166 -0
  114. data/lib/puppet/type/pfilebucket.rb +80 -0
  115. data/lib/puppet/type/pprocess.rb +97 -0
  116. data/lib/puppet/type/service.rb +347 -0
  117. data/lib/puppet/type/service/base.rb +17 -0
  118. data/lib/puppet/type/service/debian.rb +50 -0
  119. data/lib/puppet/type/service/init.rb +145 -0
  120. data/lib/puppet/type/service/smf.rb +29 -0
  121. data/lib/puppet/type/state.rb +182 -0
  122. data/lib/puppet/type/symlink.rb +183 -0
  123. data/lib/puppet/type/tidy.rb +183 -0
  124. data/lib/puppet/type/typegen.rb +149 -0
  125. data/lib/puppet/type/typegen/filerecord.rb +243 -0
  126. data/lib/puppet/type/typegen/filetype.rb +316 -0
  127. data/lib/puppet/type/user.rb +290 -0
  128. data/lib/puppet/util.rb +138 -0
  129. data/test/certmgr/certmgr.rb +265 -0
  130. data/test/client/client.rb +203 -0
  131. data/test/executables/puppetbin.rb +53 -0
  132. data/test/executables/puppetca.rb +79 -0
  133. data/test/executables/puppetd.rb +71 -0
  134. data/test/executables/puppetmasterd.rb +153 -0
  135. data/test/executables/puppetmodule.rb +60 -0
  136. data/test/language/ast.rb +412 -0
  137. data/test/language/interpreter.rb +71 -0
  138. data/test/language/scope.rb +412 -0
  139. data/test/language/snippets.rb +445 -0
  140. data/test/other/events.rb +111 -0
  141. data/test/other/log.rb +195 -0
  142. data/test/other/metrics.rb +92 -0
  143. data/test/other/overrides.rb +115 -0
  144. data/test/other/parsedfile.rb +31 -0
  145. data/test/other/relationships.rb +113 -0
  146. data/test/other/state.rb +106 -0
  147. data/test/other/storage.rb +39 -0
  148. data/test/other/transactions.rb +235 -0
  149. data/test/parser/lexer.rb +120 -0
  150. data/test/parser/parser.rb +180 -0
  151. data/test/puppet/conffiles.rb +104 -0
  152. data/test/puppet/defaults.rb +100 -0
  153. data/test/puppet/error.rb +23 -0
  154. data/test/puppet/utiltest.rb +120 -0
  155. data/test/puppettest.rb +774 -0
  156. data/test/server/authstore.rb +209 -0
  157. data/test/server/bucket.rb +227 -0
  158. data/test/server/ca.rb +201 -0
  159. data/test/server/fileserver.rb +710 -0
  160. data/test/server/logger.rb +175 -0
  161. data/test/server/master.rb +150 -0
  162. data/test/server/server.rb +130 -0
  163. data/test/tagging/tagging.rb +80 -0
  164. data/test/test +51 -0
  165. data/test/types/basic.rb +119 -0
  166. data/test/types/component.rb +272 -0
  167. data/test/types/cron.rb +261 -0
  168. data/test/types/exec.rb +273 -0
  169. data/test/types/file.rb +616 -0
  170. data/test/types/filebucket.rb +167 -0
  171. data/test/types/fileignoresource.rb +287 -0
  172. data/test/types/filesources.rb +587 -0
  173. data/test/types/filetype.rb +162 -0
  174. data/test/types/group.rb +271 -0
  175. data/test/types/package.rb +205 -0
  176. data/test/types/query.rb +101 -0
  177. data/test/types/service.rb +100 -0
  178. data/test/types/symlink.rb +93 -0
  179. data/test/types/tidy.rb +124 -0
  180. data/test/types/type.rb +135 -0
  181. data/test/types/user.rb +371 -0
  182. metadata +243 -0
@@ -0,0 +1,101 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../.."
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'puppettest'
9
+ require 'test/unit'
10
+
11
+ # $Id: query.rb 742 2005-11-16 17:12:11Z luke $
12
+
13
+ class TestQuery < Test::Unit::TestCase
14
+ include TestPuppet
15
+ # hmmm
16
+ # this is complicated, because we store references to the created
17
+ # objects in a central store
18
+ def file
19
+ assert_nothing_raised() {
20
+ cfile = File.join($puppetbase,"examples/root/etc/configfile")
21
+ unless Puppet::Type::PFile.has_key?(cfile)
22
+ Puppet::Type::PFile.create(
23
+ :path => cfile,
24
+ :check => [:mode, :owner, :checksum]
25
+ )
26
+ end
27
+ @configfile = Puppet::Type::PFile[cfile]
28
+ }
29
+ return @configfile
30
+ end
31
+
32
+ def service
33
+ assert_nothing_raised() {
34
+ unless Puppet::Type::Service.has_key?("sleeper")
35
+ Puppet::Type::Service.create(
36
+ :name => "sleeper",
37
+ :type => "init",
38
+ :path => File.join($puppetbase,"examples/root/etc/init.d"),
39
+ :hasstatus => true,
40
+ :check => [:running]
41
+ )
42
+ end
43
+ @sleeper = Puppet::Type::Service["sleeper"]
44
+ }
45
+
46
+ return @sleeper
47
+ end
48
+
49
+ def component(name,*args)
50
+ assert_nothing_raised() {
51
+ @component = Puppet::Type::Component.create(:name => name)
52
+ }
53
+
54
+ args.each { |arg|
55
+ assert_nothing_raised() {
56
+ @component.push arg
57
+ }
58
+ }
59
+
60
+ return @component
61
+ end
62
+
63
+ def test_file
64
+ yayfile = file()
65
+ #p yayfile
66
+ yayfile.eachstate { |state|
67
+ assert_nil(state.is)
68
+ }
69
+
70
+ assert_nothing_raised() {
71
+ yayfile.retrieve
72
+ }
73
+
74
+ assert_nothing_raised() {
75
+ yayfile[:check] = :group
76
+ }
77
+
78
+ assert_nothing_raised() {
79
+ yayfile.retrieve
80
+ }
81
+ end
82
+
83
+ def test_service
84
+ service = service()
85
+ service.eachstate { |state|
86
+ assert_nil(state.is)
87
+ }
88
+
89
+ assert_nothing_raised() {
90
+ service.retrieve
91
+ }
92
+ end
93
+
94
+ def test_component
95
+ component = component("a",file(),service())
96
+
97
+ assert_nothing_raised() {
98
+ component.retrieve
99
+ }
100
+ end
101
+ end
@@ -0,0 +1,100 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../.."
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'puppettest'
9
+ require 'test/unit'
10
+
11
+ class TestService < Test::Unit::TestCase
12
+ include TestPuppet
13
+ # hmmm
14
+ # this is complicated, because we store references to the created
15
+ # objects in a central store
16
+ def setup
17
+ super
18
+ sleeper = nil
19
+ script = File.join($puppetbase,"examples/root/etc/init.d/sleeper")
20
+ @status = script + " status"
21
+ end
22
+
23
+ def teardown
24
+ super
25
+ stopservices
26
+ end
27
+
28
+ def mksleeper(hash = {})
29
+ hash[:name] = "sleeper"
30
+ hash[:path] = File.join($puppetbase,"examples/root/etc/init.d")
31
+ hash[:running] = true
32
+ hash[:type] = "init"
33
+ assert_nothing_raised() {
34
+ return Puppet::Type::Service.create(hash)
35
+ }
36
+ end
37
+
38
+ def cyclesleeper(sleeper)
39
+ assert_nothing_raised() {
40
+ sleeper.retrieve
41
+ }
42
+ assert(!sleeper.insync?())
43
+ assert_nothing_raised() {
44
+ sleeper.sync
45
+ }
46
+ assert_nothing_raised() {
47
+ sleeper.retrieve
48
+ }
49
+ assert(sleeper.insync?)
50
+
51
+ # test refreshing it
52
+ assert_nothing_raised() {
53
+ sleeper.refresh
54
+ }
55
+
56
+ assert(sleeper.respond_to?(:refresh))
57
+
58
+ # now stop it
59
+ assert_nothing_raised() {
60
+ sleeper[:running] = 0
61
+ }
62
+ assert_nothing_raised() {
63
+ sleeper.retrieve
64
+ }
65
+ assert(!sleeper.insync?())
66
+ assert_nothing_raised() {
67
+ sleeper.sync
68
+ }
69
+ assert_nothing_raised() {
70
+ sleeper.retrieve
71
+ }
72
+ assert(sleeper.insync?)
73
+ end
74
+
75
+ def test_processStartWithPattern
76
+ sleeper = mksleeper(:pattern => "bin/sleeper")
77
+
78
+ cyclesleeper(sleeper)
79
+ end
80
+
81
+ def test_processStartWithStatus
82
+ sleeper = mksleeper(:hasstatus => true)
83
+ cyclesleeper(sleeper)
84
+ end
85
+
86
+ unless Process.uid == 0
87
+ puts "run as root to test service enable/disable"
88
+ else
89
+ case Puppet::Type::Service.defaulttype
90
+ when Puppet::ServiceTypes::InitSvc
91
+ when Puppet::ServiceTypes::SMFSvc
92
+ # yay
93
+ else
94
+ Puppet.notice "Not testing service type %s" %
95
+ Puppet::Type::Service.defaulttype
96
+ end
97
+ end
98
+ end
99
+
100
+ # $Id: service.rb 742 2005-11-16 17:12:11Z luke $
@@ -0,0 +1,93 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../../../../language/trunk"
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'puppettest'
9
+ require 'test/unit'
10
+
11
+ # $Id: symlink.rb 724 2005-10-22 22:27:20Z luke $
12
+
13
+ class TestSymlink < Test::Unit::TestCase
14
+ include FileTesting
15
+ def mktmpfile
16
+ # because luke's home directory is on nfs, it can't be used for testing
17
+ # as root
18
+ tmpfile = tempfile()
19
+ File.open(tmpfile, "w") { |f| f.puts rand(100) }
20
+ @@tmpfiles.push tmpfile
21
+ return tmpfile
22
+ end
23
+
24
+ def mktmpdir
25
+ dir = File.join(tmpdir(), "puppetlinkdir")
26
+ unless FileTest.exists?(dir)
27
+ Dir.mkdir(dir)
28
+ end
29
+ @@tmpfiles.push dir
30
+ return dir
31
+ end
32
+
33
+ def tmplink
34
+ link = File.join(tmpdir(), "puppetlinktest")
35
+ @@tmpfiles.push link
36
+ return link
37
+ end
38
+
39
+ def newlink(hash = {})
40
+ hash[:name] = tmplink()
41
+ unless hash.include?(:target)
42
+ hash[:target] = mktmpfile()
43
+ end
44
+ link = Puppet::Type::Symlink.create(hash)
45
+ return link
46
+ end
47
+
48
+ def test_target
49
+ link = nil
50
+ file = mktmpfile()
51
+ assert_nothing_raised() {
52
+ link = newlink()
53
+ }
54
+ assert_nothing_raised() {
55
+ link.retrieve
56
+ }
57
+ # we might already be in sync
58
+ assert(!link.insync?())
59
+ assert_nothing_raised() {
60
+ link.sync
61
+ }
62
+ assert_nothing_raised() {
63
+ link.retrieve
64
+ }
65
+ assert(link.insync?())
66
+ end
67
+
68
+ def test_recursion
69
+ source = mktmpdir()
70
+ FileUtils.cd(source) {
71
+ mkranddirsandfiles()
72
+ }
73
+
74
+ link = nil
75
+ assert_nothing_raised {
76
+ link = newlink(:target => source, :recurse => true)
77
+ }
78
+ comp = newcomp("linktest",link)
79
+ cycle(comp)
80
+
81
+ path = link.name
82
+ list = file_list(path)
83
+ FileUtils.cd(path) {
84
+ list.each { |file|
85
+ unless FileTest.directory?(file)
86
+ assert(FileTest.symlink?(file))
87
+ target = File.readlink(file)
88
+ assert_equal(target,File.join(source,file.sub(/^\.\//,'')))
89
+ end
90
+ }
91
+ }
92
+ end
93
+ end
@@ -0,0 +1,124 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../../../../language/trunk"
5
+ end
6
+
7
+ require 'puppet'
8
+ require 'puppettest'
9
+ require 'test/unit'
10
+
11
+ # $Id: tidy.rb 724 2005-10-22 22:27:20Z luke $
12
+
13
+ class TestTidy < Test::Unit::TestCase
14
+ include FileTesting
15
+ def mktmpfile
16
+ # because luke's home directory is on nfs, it can't be used for testing
17
+ # as root
18
+ tmpfile = tempfile()
19
+ File.open(tmpfile, "w") { |f| f.puts rand(100) }
20
+ @@tmpfiles.push tmpfile
21
+ return tmpfile
22
+ end
23
+
24
+ def mktmpdir
25
+ dir = File.join(tmpdir(), "puppetlinkdir")
26
+ unless FileTest.exists?(dir)
27
+ Dir.mkdir(dir)
28
+ end
29
+ @@tmpfiles.push dir
30
+ return dir
31
+ end
32
+
33
+ def test_simpletidy
34
+ dir = mktmpdir
35
+ file = File.join(dir, "tidytesting")
36
+ File.open(file, "w") { |f|
37
+ f.puts rand(100)
38
+ }
39
+
40
+ tidy = Puppet::Type::Tidy.create(
41
+ :name => dir,
42
+ :size => "1b",
43
+ :recurse => true
44
+ )
45
+
46
+ comp = newcomp("tidytesting", tidy)
47
+
48
+ trans = nil
49
+ assert_nothing_raised {
50
+ trans = comp.evaluate
51
+ }
52
+ event = nil
53
+ assert_nothing_raised {
54
+ event = trans.evaluate.collect { |e| e.event }
55
+ }
56
+
57
+ assert_equal(1, event.length, "Got no events on tidy")
58
+ assert_equal([:file_tidied], event, "Got incorrect event on tidy")
59
+
60
+ assert(!FileTest.exists?(file), "Tidied file still exists")
61
+ end
62
+
63
+ def test_tidydirs
64
+ dir = mktmpdir
65
+ file = File.join(dir, "tidytesting")
66
+ File.open(file, "w") { |f|
67
+ f.puts rand(100)
68
+ }
69
+
70
+ tidy = Puppet::Type::Tidy.create(
71
+ :name => dir,
72
+ :size => "1b",
73
+ :age => "1s",
74
+ :rmdirs => true,
75
+ :recurse => true
76
+ )
77
+
78
+ comp = newcomp("tidytesting", tidy)
79
+
80
+ sleep(2)
81
+ trans = nil
82
+ assert_nothing_raised {
83
+ trans = comp.evaluate
84
+ }
85
+ event = nil
86
+ assert_nothing_raised {
87
+ event = trans.evaluate.collect { |e| e.event }
88
+ }
89
+
90
+ assert(!FileTest.exists?(file), "Tidied %s still exists" % file)
91
+ assert(!FileTest.exists?(dir), "Tidied %s still exists" % dir)
92
+
93
+ assert_equal(2, event.length, "Got %s events instead of %s on tidy" %
94
+ [event.length, 2])
95
+ assert_equal([:file_tidied, :file_tidied], event,
96
+ "Got incorrect events on tidy")
97
+ end
98
+
99
+ def disabled_test_recursion
100
+ source = mktmpdir()
101
+ FileUtils.cd(source) {
102
+ mkranddirsandfiles()
103
+ }
104
+
105
+ link = nil
106
+ assert_nothing_raised {
107
+ link = newlink(:target => source, :recurse => true)
108
+ }
109
+ comp = newcomp("linktest",link)
110
+ cycle(comp)
111
+
112
+ path = link.name
113
+ list = file_list(path)
114
+ FileUtils.cd(path) {
115
+ list.each { |file|
116
+ unless FileTest.directory?(file)
117
+ assert(FileTest.symlink?(file))
118
+ target = File.readlink(file)
119
+ assert_equal(target,File.join(source,file.sub(/^\.\//,'')))
120
+ end
121
+ }
122
+ }
123
+ end
124
+ end
@@ -0,0 +1,135 @@
1
+ if __FILE__ == $0
2
+ $:.unshift '..'
3
+ $:.unshift '../../lib'
4
+ $puppetbase = "../.."
5
+ end
6
+
7
+ require 'puppet/type'
8
+ require 'puppettest'
9
+ require 'test/unit'
10
+
11
+ class TestType < Test::Unit::TestCase
12
+ include TestPuppet
13
+ def test_typemethods
14
+ assert_nothing_raised() {
15
+ Puppet::Type.buildstatehash
16
+ }
17
+
18
+ Puppet::Type.eachtype { |type|
19
+ name = nil
20
+ assert_nothing_raised("Searching for name for %s caused failure" %
21
+ type.to_s) {
22
+ name = type.name
23
+ }
24
+
25
+ assert(name, "Could not find name for %s" % type.to_s)
26
+
27
+ assert_equal(
28
+ type,
29
+ Puppet::Type.type(name),
30
+ "Failed to retrieve %s by name" % name
31
+ )
32
+
33
+ assert(
34
+ type.namevar,
35
+ "Failed to retrieve namevar for %s" % name
36
+ )
37
+
38
+ assert_not_nil(
39
+ type.states,
40
+ "States for %s are nil" % name
41
+ )
42
+
43
+ assert_not_nil(
44
+ type.validstates,
45
+ "Valid states for %s are nil" % name
46
+ )
47
+ }
48
+ end
49
+
50
+ def test_stringvssymbols
51
+ file = nil
52
+ path = tempfile()
53
+ assert_nothing_raised() {
54
+ system("rm -f %s" % path)
55
+ file = Puppet::Type::PFile.create(
56
+ :path => path,
57
+ :create => true,
58
+ :recurse => true,
59
+ :checksum => "md5"
60
+ )
61
+ }
62
+ assert_nothing_raised() {
63
+ file.retrieve
64
+ }
65
+ assert_nothing_raised() {
66
+ file.sync
67
+ }
68
+ Puppet::Type::PFile.clear
69
+ assert_nothing_raised() {
70
+ system("rm -f %s" % path)
71
+ file = Puppet::Type::PFile.create(
72
+ "path" => path,
73
+ "create" => true,
74
+ "recurse" => true,
75
+ "checksum" => "md5"
76
+ )
77
+ }
78
+ assert_nothing_raised() {
79
+ file.retrieve
80
+ }
81
+ assert_nothing_raised() {
82
+ file[:path]
83
+ }
84
+ assert_nothing_raised() {
85
+ file["path"]
86
+ }
87
+ assert_nothing_raised() {
88
+ file[:recurse]
89
+ }
90
+ assert_nothing_raised() {
91
+ file["recurse"]
92
+ }
93
+ assert_nothing_raised() {
94
+ file.sync
95
+ }
96
+ end
97
+
98
+ # This was supposed to test objects whose name was a state, but that
99
+ # fundamentally doesn't make much sense, and we now don't have any such
100
+ # types.
101
+ def disabled_test_nameasstate
102
+ # currently groups are the only objects with the namevar as a state
103
+ group = nil
104
+ assert_nothing_raised {
105
+ group = Puppet::Type::Group.create(
106
+ :name => "testing"
107
+ )
108
+ }
109
+
110
+ assert_equal("testing", group.name, "Could not retrieve name")
111
+ end
112
+
113
+ # Verify that values get merged correctly
114
+ def test_mergestatevalues
115
+ file = tempfile()
116
+
117
+ # Create the first version
118
+ assert_nothing_raised {
119
+ Puppet::Type::PFile.create(
120
+ :path => file,
121
+ :owner => ["root", "bin"]
122
+ )
123
+ }
124
+
125
+ # Make sure no other statements are allowed
126
+ assert_raise(Puppet::Error) {
127
+ Puppet::Type::PFile.create(
128
+ :path => file,
129
+ :group => "root"
130
+ )
131
+ }
132
+ end
133
+ end
134
+
135
+ # $Id: type.rb 737 2005-10-30 04:07:52Z luke $