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.
- data/CHANGELOG +0 -0
- data/COPYING +340 -0
- data/LICENSE +17 -0
- data/README +24 -0
- data/Rakefile +294 -0
- data/TODO +4 -0
- data/bin/cf2puppet +186 -0
- data/bin/puppet +176 -0
- data/bin/puppetca +213 -0
- data/bin/puppetd +246 -0
- data/bin/puppetdoc +184 -0
- data/bin/puppetmasterd +258 -0
- data/examples/code/allatonce +13 -0
- data/examples/code/assignments +11 -0
- data/examples/code/classing +35 -0
- data/examples/code/components +73 -0
- data/examples/code/execs +16 -0
- data/examples/code/failers/badclassnoparam +10 -0
- data/examples/code/failers/badclassparam +10 -0
- data/examples/code/failers/badcompnoparam +9 -0
- data/examples/code/failers/badcompparam +9 -0
- data/examples/code/failers/badtypeparam +3 -0
- data/examples/code/file.bl +11 -0
- data/examples/code/filedefaults +10 -0
- data/examples/code/fileparsing +116 -0
- data/examples/code/filerecursion +15 -0
- data/examples/code/functions +3 -0
- data/examples/code/groups +7 -0
- data/examples/code/head +30 -0
- data/examples/code/importing +8 -0
- data/examples/code/nodes +20 -0
- data/examples/code/one +8 -0
- data/examples/code/relationships +34 -0
- data/examples/code/selectors +28 -0
- data/examples/code/simpletests +11 -0
- data/examples/code/snippets/argumentdefaults +14 -0
- data/examples/code/snippets/casestatement +39 -0
- data/examples/code/snippets/classheirarchy.pp +15 -0
- data/examples/code/snippets/classincludes.pp +17 -0
- data/examples/code/snippets/classpathtest +11 -0
- data/examples/code/snippets/dirchmod +19 -0
- data/examples/code/snippets/failmissingexecpath.pp +13 -0
- data/examples/code/snippets/falsevalues.pp +3 -0
- data/examples/code/snippets/filecreate +11 -0
- data/examples/code/snippets/implicititeration +15 -0
- data/examples/code/snippets/multipleinstances +7 -0
- data/examples/code/snippets/namevartest +9 -0
- data/examples/code/snippets/scopetest +13 -0
- data/examples/code/snippets/selectorvalues.pp +22 -0
- data/examples/code/snippets/simpledefaults +5 -0
- data/examples/code/snippets/simpleselector +38 -0
- data/examples/code/svncommit +13 -0
- data/examples/root/bin/sleeper +69 -0
- data/examples/root/etc/configfile +0 -0
- data/examples/root/etc/debian-passwd +29 -0
- data/examples/root/etc/debian-syslog.conf +71 -0
- data/examples/root/etc/init.d/sleeper +65 -0
- data/examples/root/etc/otherfile +0 -0
- data/examples/root/etc/puppet/fileserver.conf +3 -0
- data/examples/root/etc/puppet/puppetmasterd.conf +10 -0
- data/ext/module:puppet +195 -0
- data/install.rb +270 -0
- data/lib/puppet.rb +249 -0
- data/lib/puppet/base64.rb +19 -0
- data/lib/puppet/client.rb +519 -0
- data/lib/puppet/config.rb +49 -0
- data/lib/puppet/daemon.rb +208 -0
- data/lib/puppet/element.rb +71 -0
- data/lib/puppet/event.rb +259 -0
- data/lib/puppet/log.rb +321 -0
- data/lib/puppet/metric.rb +250 -0
- data/lib/puppet/parsedfile.rb +38 -0
- data/lib/puppet/parser/ast.rb +1560 -0
- data/lib/puppet/parser/interpreter.rb +150 -0
- data/lib/puppet/parser/lexer.rb +226 -0
- data/lib/puppet/parser/parser.rb +1354 -0
- data/lib/puppet/parser/scope.rb +755 -0
- data/lib/puppet/server.rb +170 -0
- data/lib/puppet/server/authstore.rb +227 -0
- data/lib/puppet/server/ca.rb +140 -0
- data/lib/puppet/server/filebucket.rb +147 -0
- data/lib/puppet/server/fileserver.rb +477 -0
- data/lib/puppet/server/logger.rb +43 -0
- data/lib/puppet/server/master.rb +103 -0
- data/lib/puppet/server/servlet.rb +247 -0
- data/lib/puppet/sslcertificates.rb +737 -0
- data/lib/puppet/statechange.rb +150 -0
- data/lib/puppet/storage.rb +95 -0
- data/lib/puppet/transaction.rb +179 -0
- data/lib/puppet/transportable.rb +151 -0
- data/lib/puppet/type.rb +1354 -0
- data/lib/puppet/type/component.rb +141 -0
- data/lib/puppet/type/cron.rb +543 -0
- data/lib/puppet/type/exec.rb +316 -0
- data/lib/puppet/type/group.rb +152 -0
- data/lib/puppet/type/nameservice.rb +3 -0
- data/lib/puppet/type/nameservice/netinfo.rb +173 -0
- data/lib/puppet/type/nameservice/objectadd.rb +146 -0
- data/lib/puppet/type/nameservice/posix.rb +200 -0
- data/lib/puppet/type/package.rb +420 -0
- data/lib/puppet/type/package/apt.rb +70 -0
- data/lib/puppet/type/package/dpkg.rb +108 -0
- data/lib/puppet/type/package/rpm.rb +81 -0
- data/lib/puppet/type/package/sun.rb +117 -0
- data/lib/puppet/type/package/yum.rb +58 -0
- data/lib/puppet/type/pfile.rb +569 -0
- data/lib/puppet/type/pfile/checksum.rb +219 -0
- data/lib/puppet/type/pfile/create.rb +108 -0
- data/lib/puppet/type/pfile/group.rb +129 -0
- data/lib/puppet/type/pfile/mode.rb +131 -0
- data/lib/puppet/type/pfile/source.rb +264 -0
- data/lib/puppet/type/pfile/type.rb +31 -0
- data/lib/puppet/type/pfile/uid.rb +166 -0
- data/lib/puppet/type/pfilebucket.rb +80 -0
- data/lib/puppet/type/pprocess.rb +97 -0
- data/lib/puppet/type/service.rb +347 -0
- data/lib/puppet/type/service/base.rb +17 -0
- data/lib/puppet/type/service/debian.rb +50 -0
- data/lib/puppet/type/service/init.rb +145 -0
- data/lib/puppet/type/service/smf.rb +29 -0
- data/lib/puppet/type/state.rb +182 -0
- data/lib/puppet/type/symlink.rb +183 -0
- data/lib/puppet/type/tidy.rb +183 -0
- data/lib/puppet/type/typegen.rb +149 -0
- data/lib/puppet/type/typegen/filerecord.rb +243 -0
- data/lib/puppet/type/typegen/filetype.rb +316 -0
- data/lib/puppet/type/user.rb +290 -0
- data/lib/puppet/util.rb +138 -0
- data/test/certmgr/certmgr.rb +265 -0
- data/test/client/client.rb +203 -0
- data/test/executables/puppetbin.rb +53 -0
- data/test/executables/puppetca.rb +79 -0
- data/test/executables/puppetd.rb +71 -0
- data/test/executables/puppetmasterd.rb +153 -0
- data/test/executables/puppetmodule.rb +60 -0
- data/test/language/ast.rb +412 -0
- data/test/language/interpreter.rb +71 -0
- data/test/language/scope.rb +412 -0
- data/test/language/snippets.rb +445 -0
- data/test/other/events.rb +111 -0
- data/test/other/log.rb +195 -0
- data/test/other/metrics.rb +92 -0
- data/test/other/overrides.rb +115 -0
- data/test/other/parsedfile.rb +31 -0
- data/test/other/relationships.rb +113 -0
- data/test/other/state.rb +106 -0
- data/test/other/storage.rb +39 -0
- data/test/other/transactions.rb +235 -0
- data/test/parser/lexer.rb +120 -0
- data/test/parser/parser.rb +180 -0
- data/test/puppet/conffiles.rb +104 -0
- data/test/puppet/defaults.rb +100 -0
- data/test/puppet/error.rb +23 -0
- data/test/puppet/utiltest.rb +120 -0
- data/test/puppettest.rb +774 -0
- data/test/server/authstore.rb +209 -0
- data/test/server/bucket.rb +227 -0
- data/test/server/ca.rb +201 -0
- data/test/server/fileserver.rb +710 -0
- data/test/server/logger.rb +175 -0
- data/test/server/master.rb +150 -0
- data/test/server/server.rb +130 -0
- data/test/tagging/tagging.rb +80 -0
- data/test/test +51 -0
- data/test/types/basic.rb +119 -0
- data/test/types/component.rb +272 -0
- data/test/types/cron.rb +261 -0
- data/test/types/exec.rb +273 -0
- data/test/types/file.rb +616 -0
- data/test/types/filebucket.rb +167 -0
- data/test/types/fileignoresource.rb +287 -0
- data/test/types/filesources.rb +587 -0
- data/test/types/filetype.rb +162 -0
- data/test/types/group.rb +271 -0
- data/test/types/package.rb +205 -0
- data/test/types/query.rb +101 -0
- data/test/types/service.rb +100 -0
- data/test/types/symlink.rb +93 -0
- data/test/types/tidy.rb +124 -0
- data/test/types/type.rb +135 -0
- data/test/types/user.rb +371 -0
- metadata +243 -0
data/test/types/query.rb
ADDED
@@ -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
|
data/test/types/tidy.rb
ADDED
@@ -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
|
data/test/types/type.rb
ADDED
@@ -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 $
|