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
@@ -0,0 +1,167 @@
|
|
1
|
+
if __FILE__ == $0
|
2
|
+
$:.unshift '..'
|
3
|
+
$:.unshift '../../lib'
|
4
|
+
$puppetbase = "../../../../language/trunk"
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'puppet'
|
8
|
+
require 'test/unit'
|
9
|
+
require 'fileutils'
|
10
|
+
require 'puppettest'
|
11
|
+
|
12
|
+
# $Id: filebucket.rb 724 2005-10-22 22:27:20Z luke $
|
13
|
+
|
14
|
+
class TestFileBucket < Test::Unit::TestCase
|
15
|
+
include FileTesting
|
16
|
+
# hmmm
|
17
|
+
# this is complicated, because we store references to the created
|
18
|
+
# objects in a central store
|
19
|
+
def mkfile(hash)
|
20
|
+
file = nil
|
21
|
+
assert_nothing_raised {
|
22
|
+
file = Puppet::Type::PFile.create(hash)
|
23
|
+
}
|
24
|
+
return file
|
25
|
+
end
|
26
|
+
|
27
|
+
def mkbucket(name,path)
|
28
|
+
bucket = nil
|
29
|
+
assert_nothing_raised {
|
30
|
+
bucket = Puppet::Type::PFileBucket.create(
|
31
|
+
:name => name,
|
32
|
+
:path => path
|
33
|
+
)
|
34
|
+
}
|
35
|
+
|
36
|
+
@@tmpfiles.push path
|
37
|
+
|
38
|
+
return bucket
|
39
|
+
end
|
40
|
+
|
41
|
+
def mktestfile
|
42
|
+
# because luke's home directory is on nfs, it can't be used for testing
|
43
|
+
# as root
|
44
|
+
tmpfile = tempfile()
|
45
|
+
File.open(tmpfile, "w") { |f| f.puts rand(100) }
|
46
|
+
@@tmpfiles.push tmpfile
|
47
|
+
mkfile(:name => tmpfile)
|
48
|
+
end
|
49
|
+
|
50
|
+
def setup
|
51
|
+
super
|
52
|
+
begin
|
53
|
+
initstorage
|
54
|
+
rescue
|
55
|
+
system("rm -rf %s" % Puppet[:checksumfile])
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def teardown
|
60
|
+
super
|
61
|
+
clearstorage
|
62
|
+
end
|
63
|
+
|
64
|
+
def initstorage
|
65
|
+
Puppet::Storage.init
|
66
|
+
Puppet::Storage.load
|
67
|
+
end
|
68
|
+
|
69
|
+
def clearstorage
|
70
|
+
Puppet::Storage.store
|
71
|
+
Puppet::Storage.clear
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_simplebucket
|
75
|
+
name = "yayness"
|
76
|
+
mkbucket("yayness", "/tmp/filebucket")
|
77
|
+
|
78
|
+
bucket = nil
|
79
|
+
assert_nothing_raised {
|
80
|
+
bucket = Puppet::Type::PFileBucket.bucket(name)
|
81
|
+
}
|
82
|
+
|
83
|
+
assert_instance_of(Puppet::Client::Dipper, bucket)
|
84
|
+
|
85
|
+
md5 = nil
|
86
|
+
newpath = "/tmp/passwd"
|
87
|
+
@@tmpfiles << newpath
|
88
|
+
system("cp /etc/passwd %s" % newpath)
|
89
|
+
assert_nothing_raised {
|
90
|
+
md5 = bucket.backup(newpath)
|
91
|
+
}
|
92
|
+
|
93
|
+
assert(md5)
|
94
|
+
|
95
|
+
newmd5 = nil
|
96
|
+
|
97
|
+
File.open(newpath, "w") { |f| f.puts ";lkjasdf;lkjasdflkjwerlkj134lkj" }
|
98
|
+
|
99
|
+
assert_nothing_raised {
|
100
|
+
newmd5 = bucket.backup(newpath)
|
101
|
+
}
|
102
|
+
|
103
|
+
assert(md5 != newmd5)
|
104
|
+
|
105
|
+
assert_nothing_raised {
|
106
|
+
bucket.restore(newpath, md5)
|
107
|
+
}
|
108
|
+
|
109
|
+
File.open(newpath) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
|
110
|
+
|
111
|
+
assert_equal(md5, newmd5)
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_fileswithbuckets
|
115
|
+
name = "yayness"
|
116
|
+
mkbucket("yayness", "/tmp/filebucket")
|
117
|
+
|
118
|
+
bucket = nil
|
119
|
+
assert_nothing_raised {
|
120
|
+
bucket = Puppet::Type::PFileBucket.bucket(name)
|
121
|
+
}
|
122
|
+
|
123
|
+
file = mktestfile()
|
124
|
+
assert_nothing_raised {
|
125
|
+
file[:backup] = ["filebucket", name]
|
126
|
+
}
|
127
|
+
|
128
|
+
opath = "/tmp/anotherbuckettest"
|
129
|
+
@@tmpfiles << opath
|
130
|
+
system("cp /etc/passwd %s" % opath)
|
131
|
+
|
132
|
+
origmd5 = File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
|
133
|
+
|
134
|
+
file[:source] = opath
|
135
|
+
#assert_nothing_raised {
|
136
|
+
# file[:backup] = true
|
137
|
+
#}
|
138
|
+
|
139
|
+
comp = newcomp("yaytest", file)
|
140
|
+
|
141
|
+
trans = nil
|
142
|
+
assert_nothing_raised {
|
143
|
+
trans = comp.evaluate
|
144
|
+
}
|
145
|
+
events = nil
|
146
|
+
assert_nothing_raised {
|
147
|
+
events = trans.evaluate.collect { |e| e.event }
|
148
|
+
}
|
149
|
+
|
150
|
+
# so, we've now replaced the file with the opath file
|
151
|
+
assert_equal(
|
152
|
+
File.open(opath) { |f| newmd5 = Digest::MD5.hexdigest(f.read) },
|
153
|
+
File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
|
154
|
+
)
|
155
|
+
|
156
|
+
assert_nothing_raised {
|
157
|
+
bucket.restore(file.name, origmd5)
|
158
|
+
}
|
159
|
+
|
160
|
+
assert_equal(
|
161
|
+
origmd5,
|
162
|
+
File.open(file.name) { |f| newmd5 = Digest::MD5.hexdigest(f.read) }
|
163
|
+
)
|
164
|
+
|
165
|
+
|
166
|
+
end
|
167
|
+
end
|
@@ -0,0 +1,287 @@
|
|
1
|
+
if __FILE__ == $0
|
2
|
+
$:.unshift '..'
|
3
|
+
$:.unshift '../../lib'
|
4
|
+
$:.unshift "../../../../language/trunk/lib"
|
5
|
+
$puppetbase = "../../../../language/trunk"
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'puppet'
|
9
|
+
require 'cgi'
|
10
|
+
require 'test/unit'
|
11
|
+
require 'fileutils'
|
12
|
+
require 'puppettest'
|
13
|
+
|
14
|
+
# $Id: $
|
15
|
+
|
16
|
+
class TestFileIgnoreSources < Test::Unit::TestCase
|
17
|
+
include FileTesting
|
18
|
+
|
19
|
+
def setup
|
20
|
+
super
|
21
|
+
begin
|
22
|
+
initstorage
|
23
|
+
rescue
|
24
|
+
system("rm -rf %s" % Puppet[:checksumfile])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def teardown
|
29
|
+
super
|
30
|
+
clearstorage
|
31
|
+
end
|
32
|
+
|
33
|
+
#This is not needed unless using md5 (correct me if I'm wrong)
|
34
|
+
def initstorage
|
35
|
+
Puppet::Storage.init
|
36
|
+
Puppet::Storage.load
|
37
|
+
end
|
38
|
+
|
39
|
+
def clearstorage
|
40
|
+
Puppet::Storage.store
|
41
|
+
Puppet::Storage.clear
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_ignore_simple_source
|
45
|
+
|
46
|
+
#Temp directory to run tests in
|
47
|
+
path = "/tmp/Fileignoresourcetest"
|
48
|
+
@@tmpfiles.push path
|
49
|
+
|
50
|
+
#source directory
|
51
|
+
sourcedir = "sourcedir"
|
52
|
+
sourcefile1 = "sourcefile1"
|
53
|
+
sourcefile2 = "sourcefile2"
|
54
|
+
|
55
|
+
frompath = File.join(path,sourcedir)
|
56
|
+
FileUtils.mkdir_p frompath
|
57
|
+
|
58
|
+
topath = File.join(path,"destdir")
|
59
|
+
FileUtils.mkdir topath
|
60
|
+
|
61
|
+
#initialize variables before block
|
62
|
+
tofile = nil
|
63
|
+
trans = nil
|
64
|
+
|
65
|
+
#create source files
|
66
|
+
|
67
|
+
File.open(File.join(frompath,sourcefile1),
|
68
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
69
|
+
of.puts "yayness"
|
70
|
+
}
|
71
|
+
|
72
|
+
File.open(File.join(frompath,sourcefile2),
|
73
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
74
|
+
of.puts "even yayer"
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
#makes Puppet file Object
|
79
|
+
assert_nothing_raised {
|
80
|
+
tofile = Puppet::Type::PFile.create(
|
81
|
+
:name => topath,
|
82
|
+
:source => frompath,
|
83
|
+
:recurse => true,
|
84
|
+
:ignore => "sourcefile2"
|
85
|
+
)
|
86
|
+
}
|
87
|
+
|
88
|
+
#make a component and adds the file
|
89
|
+
comp = Puppet::Type::Component.create(
|
90
|
+
:name => "component"
|
91
|
+
)
|
92
|
+
comp.push tofile
|
93
|
+
|
94
|
+
#make, evaluate transaction and sync the component
|
95
|
+
assert_nothing_raised {
|
96
|
+
trans = comp.evaluate
|
97
|
+
}
|
98
|
+
assert_nothing_raised {
|
99
|
+
trans.evaluate
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
#topath should exist as a directory with sourcedir as a directory
|
104
|
+
|
105
|
+
#This file should exist
|
106
|
+
assert(FileTest.exists?(File.join(topath,sourcefile1)))
|
107
|
+
|
108
|
+
#This file should not
|
109
|
+
assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
|
110
|
+
|
111
|
+
Puppet::Type.allclear
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_ignore_with_wildcard
|
115
|
+
#Temp directory to run tests in
|
116
|
+
path = "/tmp/Fileignoresourcetest"
|
117
|
+
@@tmpfiles.push path
|
118
|
+
|
119
|
+
#source directory
|
120
|
+
sourcedir = "sourcedir"
|
121
|
+
subdir = "subdir"
|
122
|
+
subdir2 = "subdir2"
|
123
|
+
sourcefile1 = "sourcefile1"
|
124
|
+
sourcefile2 = "sourcefile2"
|
125
|
+
|
126
|
+
frompath = File.join(path,sourcedir)
|
127
|
+
FileUtils.mkdir_p frompath
|
128
|
+
|
129
|
+
FileUtils.mkdir_p(File.join(frompath, subdir))
|
130
|
+
FileUtils.mkdir_p(File.join(frompath, subdir2))
|
131
|
+
dir = Dir.glob(File.join(path,"**/*"))
|
132
|
+
|
133
|
+
topath = File.join(path,"destdir")
|
134
|
+
FileUtils.mkdir topath
|
135
|
+
|
136
|
+
#initialize variables before block
|
137
|
+
tofile = nil
|
138
|
+
trans = nil
|
139
|
+
|
140
|
+
#create source files
|
141
|
+
|
142
|
+
dir.each { |dir|
|
143
|
+
File.open(File.join(dir,sourcefile1),
|
144
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
145
|
+
of.puts "yayness"
|
146
|
+
}
|
147
|
+
|
148
|
+
File.open(File.join(dir,sourcefile2),
|
149
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
150
|
+
of.puts "even yayer"
|
151
|
+
}
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
#makes Puppet file Object
|
156
|
+
assert_nothing_raised {
|
157
|
+
tofile = Puppet::Type::PFile.create(
|
158
|
+
:name => topath,
|
159
|
+
:source => frompath,
|
160
|
+
:recurse => true,
|
161
|
+
:ignore => "*2"
|
162
|
+
)
|
163
|
+
}
|
164
|
+
|
165
|
+
#make a component and adds the file
|
166
|
+
comp = Puppet::Type::Component.create(
|
167
|
+
:name => "component"
|
168
|
+
)
|
169
|
+
comp.push tofile
|
170
|
+
|
171
|
+
#make, evaluate transaction and sync the component
|
172
|
+
assert_nothing_raised {
|
173
|
+
trans = comp.evaluate
|
174
|
+
}
|
175
|
+
assert_nothing_raised {
|
176
|
+
trans.evaluate
|
177
|
+
}
|
178
|
+
|
179
|
+
#topath should exist as a directory with sourcedir as a directory
|
180
|
+
|
181
|
+
#This file should exist
|
182
|
+
assert(FileTest.exists?(File.join(topath,sourcefile1)))
|
183
|
+
assert(FileTest.exists?(File.join(topath,subdir)))
|
184
|
+
assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)))
|
185
|
+
#This file should not
|
186
|
+
assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
|
187
|
+
assert(!(FileTest.exists?(File.join(topath,subdir2))))
|
188
|
+
assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))))
|
189
|
+
Puppet::Type.allclear
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
def test_ignore_array
|
194
|
+
#Temp directory to run tests in
|
195
|
+
path = "/tmp/Fileignoresourcetest"
|
196
|
+
@@tmpfiles.push path
|
197
|
+
|
198
|
+
#source directory
|
199
|
+
sourcedir = "sourcedir"
|
200
|
+
subdir = "subdir"
|
201
|
+
subdir2 = "subdir2"
|
202
|
+
subdir3 = "anotherdir"
|
203
|
+
sourcefile1 = "sourcefile1"
|
204
|
+
sourcefile2 = "sourcefile2"
|
205
|
+
|
206
|
+
frompath = File.join(path,sourcedir)
|
207
|
+
FileUtils.mkdir_p frompath
|
208
|
+
|
209
|
+
FileUtils.mkdir_p(File.join(frompath, subdir))
|
210
|
+
FileUtils.mkdir_p(File.join(frompath, subdir2))
|
211
|
+
FileUtils.mkdir_p(File.join(frompath, subdir3))
|
212
|
+
sourcedir = Dir.glob(File.join(path,"**/*"))
|
213
|
+
|
214
|
+
topath = File.join(path,"destdir")
|
215
|
+
FileUtils.mkdir topath
|
216
|
+
|
217
|
+
#initialize variables before block
|
218
|
+
tofile = nil
|
219
|
+
trans = nil
|
220
|
+
|
221
|
+
#create source files
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
sourcedir.each { |dir|
|
226
|
+
File.open(File.join(dir,sourcefile1),
|
227
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
228
|
+
of.puts "yayness"
|
229
|
+
}
|
230
|
+
|
231
|
+
File.open(File.join(dir,sourcefile2),
|
232
|
+
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
233
|
+
of.puts "even yayer"
|
234
|
+
}
|
235
|
+
|
236
|
+
}
|
237
|
+
|
238
|
+
|
239
|
+
#makes Puppet file Object
|
240
|
+
assert_nothing_raised {
|
241
|
+
tofile = Puppet::Type::PFile.create(
|
242
|
+
:name => topath,
|
243
|
+
:source => frompath,
|
244
|
+
:recurse => true,
|
245
|
+
:ignore => ["*2", "an*"]
|
246
|
+
# :ignore => ["*2", "an*", "nomatch"]
|
247
|
+
)
|
248
|
+
}
|
249
|
+
|
250
|
+
#make a component and adds the file
|
251
|
+
comp = Puppet::Type::Component.create(
|
252
|
+
:name => "component"
|
253
|
+
)
|
254
|
+
comp.push tofile
|
255
|
+
|
256
|
+
#make, evaluate transaction and sync the component
|
257
|
+
assert_nothing_raised {
|
258
|
+
trans = comp.evaluate
|
259
|
+
}
|
260
|
+
assert_nothing_raised {
|
261
|
+
trans.evaluate
|
262
|
+
}
|
263
|
+
|
264
|
+
#topath should exist as a directory with sourcedir as a directory
|
265
|
+
|
266
|
+
# This file should exist
|
267
|
+
# proper files in destination
|
268
|
+
assert(FileTest.exists?(File.join(topath,sourcefile1)), "file1 not in destdir")
|
269
|
+
assert(FileTest.exists?(File.join(topath,subdir)), "subdir1 not in destdir")
|
270
|
+
assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)), "file1 not in subdir")
|
271
|
+
# proper files in source
|
272
|
+
assert(FileTest.exists?(File.join(frompath,subdir)), "subdir not in source")
|
273
|
+
assert(FileTest.exists?(File.join(frompath,subdir2)), "subdir2 not in source")
|
274
|
+
assert(FileTest.exists?(File.join(frompath,subdir3)), "subdir3 not in source")
|
275
|
+
|
276
|
+
# This file should not
|
277
|
+
assert(!(FileTest.exists?(File.join(topath,sourcefile2))), "file2 in dest")
|
278
|
+
assert(!(FileTest.exists?(File.join(topath,subdir2))), "subdir2 in dest")
|
279
|
+
assert(!(FileTest.exists?(File.join(topath,subdir3))), "anotherdir in dest")
|
280
|
+
assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))), "file2 in dest/sub")
|
281
|
+
|
282
|
+
|
283
|
+
Puppet::Type.allclear
|
284
|
+
|
285
|
+
end
|
286
|
+
|
287
|
+
end
|