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.
- data/CHANGELOG +58 -0
- data/README +21 -18
- data/Rakefile +176 -36
- data/bin/puppet +34 -48
- data/bin/puppetca +41 -28
- data/bin/puppetd +87 -65
- data/bin/puppetdoc +99 -23
- data/bin/puppetmasterd +72 -91
- data/conf/redhat/client.init +80 -0
- data/conf/redhat/client.sysconfig +11 -0
- data/conf/redhat/fileserver.conf +12 -0
- data/conf/redhat/puppet.spec +130 -0
- data/conf/redhat/server.init +89 -0
- data/conf/redhat/server.sysconfig +9 -0
- data/examples/code/allatonce +2 -2
- data/examples/code/assignments +1 -1
- data/examples/code/classing +2 -2
- data/examples/code/components +2 -2
- data/examples/code/file.bl +5 -5
- data/examples/code/filedefaults +2 -2
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +2 -2
- data/examples/code/simpletests +5 -5
- data/examples/code/snippets/argumentdefaults +2 -2
- data/examples/code/snippets/casestatement +16 -8
- data/examples/code/snippets/classheirarchy.pp +4 -4
- data/examples/code/snippets/classincludes.pp +4 -4
- data/examples/code/snippets/classpathtest +2 -2
- data/examples/code/snippets/componentmetaparams.pp +11 -0
- data/examples/code/snippets/dirchmod +5 -5
- data/examples/code/snippets/emptyclass.pp +9 -0
- data/examples/code/snippets/failmissingexecpath.pp +1 -1
- data/examples/code/snippets/falsevalues.pp +1 -1
- data/examples/code/snippets/filecreate +5 -5
- data/examples/code/snippets/implicititeration +5 -5
- data/examples/code/snippets/multipleinstances +4 -4
- data/examples/code/snippets/namevartest +3 -3
- data/examples/code/snippets/scopetest +1 -1
- data/examples/code/snippets/selectorvalues.pp +3 -3
- data/examples/code/snippets/simpledefaults +2 -2
- data/examples/code/snippets/simpleselector +5 -5
- data/examples/code/snippets/singleary.pp +19 -0
- data/examples/root/etc/init.d/sleeper +3 -2
- data/ext/emacs/puppet-mode-init.el +6 -0
- data/ext/emacs/puppet-mode.el +189 -0
- data/ext/ldap/puppet.schema +17 -0
- data/ext/{module:puppet → module_puppet} +30 -31
- data/ext/vim/filetype.vim +9 -0
- data/ext/vim/puppet.vim +87 -0
- data/install.rb +63 -30
- data/lib/puppet.rb +216 -122
- data/lib/puppet/client.rb +51 -416
- data/lib/puppet/client/ca.rb +17 -0
- data/lib/puppet/client/dipper.rb +78 -0
- data/lib/puppet/client/file.rb +20 -0
- data/lib/puppet/client/log.rb +17 -0
- data/lib/puppet/client/master.rb +246 -0
- data/lib/puppet/client/proxy.rb +27 -0
- data/lib/puppet/client/status.rb +7 -0
- data/lib/puppet/config.rb +563 -13
- data/lib/puppet/daemon.rb +50 -22
- data/lib/puppet/element.rb +4 -4
- data/lib/puppet/event-loop.rb +1 -0
- data/lib/puppet/event-loop/better-definers.rb +367 -0
- data/lib/puppet/event-loop/event-loop.rb +355 -0
- data/lib/puppet/event-loop/signal-system.rb +220 -0
- data/lib/puppet/event.rb +9 -11
- data/lib/puppet/filetype.rb +195 -0
- data/lib/puppet/log.rb +35 -12
- data/lib/puppet/metric.rb +2 -2
- data/lib/puppet/networkclient.rb +145 -0
- data/lib/puppet/parameter.rb +335 -0
- data/lib/puppet/parser/ast.rb +42 -1453
- data/lib/puppet/parser/ast/astarray.rb +88 -0
- data/lib/puppet/parser/ast/branch.rb +47 -0
- data/lib/puppet/parser/ast/caseopt.rb +66 -0
- data/lib/puppet/parser/ast/casestatement.rb +78 -0
- data/lib/puppet/parser/ast/classdef.rb +78 -0
- data/lib/puppet/parser/ast/compdef.rb +111 -0
- data/lib/puppet/parser/ast/component.rb +105 -0
- data/lib/puppet/parser/ast/hostclass.rb +82 -0
- data/lib/puppet/parser/ast/leaf.rb +86 -0
- data/lib/puppet/parser/ast/node.rb +103 -0
- data/lib/puppet/parser/ast/nodedef.rb +68 -0
- data/lib/puppet/parser/ast/objectdef.rb +336 -0
- data/lib/puppet/parser/ast/objectparam.rb +30 -0
- data/lib/puppet/parser/ast/objectref.rb +76 -0
- data/lib/puppet/parser/ast/selector.rb +60 -0
- data/lib/puppet/parser/ast/typedefaults.rb +45 -0
- data/lib/puppet/parser/ast/vardef.rb +44 -0
- data/lib/puppet/parser/interpreter.rb +31 -14
- data/lib/puppet/parser/lexer.rb +2 -4
- data/lib/puppet/parser/parser.rb +332 -242
- data/lib/puppet/parser/scope.rb +55 -38
- data/lib/puppet/server.rb +43 -44
- data/lib/puppet/server/authstore.rb +3 -6
- data/lib/puppet/server/ca.rb +5 -2
- data/lib/puppet/server/filebucket.rb +2 -4
- data/lib/puppet/server/fileserver.rb +28 -12
- data/lib/puppet/server/logger.rb +15 -4
- data/lib/puppet/server/master.rb +62 -7
- data/lib/puppet/sslcertificates.rb +41 -607
- data/lib/puppet/sslcertificates/ca.rb +291 -0
- data/lib/puppet/sslcertificates/certificate.rb +283 -0
- data/lib/puppet/statechange.rb +6 -1
- data/lib/puppet/storage.rb +67 -56
- data/lib/puppet/transaction.rb +25 -9
- data/lib/puppet/transportable.rb +102 -22
- data/lib/puppet/type.rb +1096 -315
- data/lib/puppet/type/component.rb +30 -21
- data/lib/puppet/type/cron.rb +409 -448
- data/lib/puppet/type/exec.rb +234 -174
- data/lib/puppet/type/group.rb +65 -82
- data/lib/puppet/type/nameservice.rb +247 -3
- data/lib/puppet/type/nameservice/netinfo.rb +29 -40
- data/lib/puppet/type/nameservice/objectadd.rb +52 -66
- data/lib/puppet/type/nameservice/posix.rb +6 -194
- data/lib/puppet/type/package.rb +447 -295
- data/lib/puppet/type/package/apt.rb +51 -50
- data/lib/puppet/type/package/bsd.rb +82 -0
- data/lib/puppet/type/package/dpkg.rb +85 -88
- data/lib/puppet/type/package/rpm.rb +67 -63
- data/lib/puppet/type/package/sun.rb +119 -98
- data/lib/puppet/type/package/yum.rb +41 -37
- data/lib/puppet/type/parsedtype.rb +295 -0
- data/lib/puppet/type/parsedtype/host.rb +143 -0
- data/lib/puppet/type/parsedtype/port.rb +232 -0
- data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
- data/lib/puppet/type/pfile.rb +484 -460
- data/lib/puppet/type/pfile/checksum.rb +237 -181
- data/lib/puppet/type/pfile/content.rb +67 -0
- data/lib/puppet/type/pfile/ensure.rb +212 -0
- data/lib/puppet/type/pfile/group.rb +106 -105
- data/lib/puppet/type/pfile/mode.rb +98 -101
- data/lib/puppet/type/pfile/source.rb +228 -209
- data/lib/puppet/type/pfile/type.rb +18 -21
- data/lib/puppet/type/pfile/uid.rb +127 -130
- data/lib/puppet/type/pfilebucket.rb +68 -63
- data/lib/puppet/type/schedule.rb +341 -0
- data/lib/puppet/type/service.rb +351 -255
- data/lib/puppet/type/service/base.rb +9 -14
- data/lib/puppet/type/service/debian.rb +32 -38
- data/lib/puppet/type/service/init.rb +130 -130
- data/lib/puppet/type/service/smf.rb +48 -20
- data/lib/puppet/type/state.rb +229 -16
- data/lib/puppet/type/symlink.rb +51 -63
- data/lib/puppet/type/tidy.rb +105 -102
- data/lib/puppet/type/user.rb +118 -180
- data/lib/puppet/util.rb +100 -6
- data/test/certmgr/certmgr.rb +0 -1
- data/test/client/client.rb +4 -4
- data/test/executables/puppetbin.rb +7 -14
- data/test/executables/puppetca.rb +18 -24
- data/test/executables/puppetd.rb +7 -16
- data/test/executables/puppetmasterd.rb +7 -9
- data/test/executables/puppetmodule.rb +11 -16
- data/test/language/ast.rb +11 -7
- data/test/language/interpreter.rb +1 -1
- data/test/language/scope.rb +2 -0
- data/test/language/snippets.rb +30 -5
- data/test/language/transportable.rb +77 -0
- data/test/other/config.rb +316 -0
- data/test/other/events.rb +22 -21
- data/test/other/log.rb +14 -14
- data/test/other/metrics.rb +4 -8
- data/test/other/overrides.rb +5 -5
- data/test/other/relationships.rb +4 -2
- data/test/other/storage.rb +64 -3
- data/test/other/transactions.rb +20 -20
- data/test/parser/parser.rb +7 -4
- data/test/puppet/conffiles.rb +12 -12
- data/test/puppet/defaults.rb +13 -11
- data/test/puppet/utiltest.rb +14 -11
- data/test/puppettest.rb +156 -48
- data/test/server/bucket.rb +2 -2
- data/test/server/fileserver.rb +6 -6
- data/test/server/logger.rb +19 -11
- data/test/server/master.rb +33 -4
- data/test/server/server.rb +2 -7
- data/test/types/basic.rb +5 -7
- data/test/types/component.rb +22 -18
- data/test/types/cron.rb +111 -44
- data/test/types/exec.rb +116 -59
- data/test/types/file.rb +262 -137
- data/test/types/filebucket.rb +13 -15
- data/test/types/fileignoresource.rb +12 -16
- data/test/types/filesources.rb +73 -48
- data/test/types/filetype.rb +13 -15
- data/test/types/group.rb +15 -13
- data/test/types/host.rb +146 -0
- data/test/types/package.rb +74 -63
- data/test/types/port.rb +139 -0
- data/test/types/query.rb +8 -8
- data/test/types/schedule.rb +335 -0
- data/test/types/service.rb +137 -21
- data/test/types/sshkey.rb +140 -0
- data/test/types/symlink.rb +3 -5
- data/test/types/tidy.rb +5 -14
- data/test/types/type.rb +67 -11
- data/test/types/user.rb +25 -23
- metadata +186 -122
- data/lib/puppet/type/pfile/create.rb +0 -108
- data/lib/puppet/type/pprocess.rb +0 -97
- data/lib/puppet/type/typegen.rb +0 -149
- data/lib/puppet/type/typegen/filerecord.rb +0 -243
- data/lib/puppet/type/typegen/filetype.rb +0 -316
- data/test/other/state.rb +0 -106
data/lib/puppet/util.rb
CHANGED
@@ -19,8 +19,8 @@ module Util
|
|
19
19
|
if group.is_a?(Integer)
|
20
20
|
gid = group
|
21
21
|
else
|
22
|
-
unless obj = Puppet
|
23
|
-
obj = Puppet
|
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
|
51
|
-
obj = Puppet
|
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
|
232
|
+
# $Id: util.rb 873 2006-02-07 23:12:33Z luke $
|
data/test/certmgr/certmgr.rb
CHANGED
data/test/client/client.rb
CHANGED
@@ -10,7 +10,7 @@ require 'puppet/server'
|
|
10
10
|
require 'test/unit'
|
11
11
|
require 'puppettest.rb'
|
12
12
|
|
13
|
-
# $Id: client.rb
|
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::
|
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::
|
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] =
|
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
|
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 <<
|
25
|
+
@@tmpfiles << tempfile()
|
35
26
|
|
36
27
|
output = nil
|
37
28
|
cmd = "puppet"
|
38
|
-
|
29
|
+
if Puppet[:debug]
|
30
|
+
cmd += " --debug"
|
31
|
+
end
|
39
32
|
#cmd += " --fqdn %s" % fqdn
|
40
|
-
cmd += " --confdir %s" % Puppet[:
|
41
|
-
cmd += " --vardir %s" % Puppet[:
|
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
|
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[:
|
47
|
-
#system("find %s" % Puppet[:
|
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[:
|
58
|
-
#system("find %s" % Puppet[:
|
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 =
|
54
|
+
output = runca("--list").chomp.split("\n").reject { |line| line =~ /warning:/ } # stupid ssl.rb
|
63
55
|
}
|
64
|
-
#Puppet.warning "SSLDir is %s" % Puppet[:
|
65
|
-
#system("find %s" % Puppet[:
|
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 =
|
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 =
|
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 $
|
data/test/executables/puppetd.rb
CHANGED
@@ -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 += " --
|
41
|
-
cmd += " --confdir %s" % Puppet[:
|
42
|
-
cmd += " --vardir %s" % Puppet[:
|
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
|
-
|
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[:
|
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
|
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(
|
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
|
-
|
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
|
-
|
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
|
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}\":
|
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[:
|
41
|
-
cmd += " --vardir %s" % Puppet[:
|
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
|
55
|
+
# $Id: puppetmodule.rb 873 2006-02-07 23:12:33Z luke $
|