puppet 0.22.4 → 0.23.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 +156 -0
- data/README +2 -2
- data/Rakefile +6 -6
- data/bin/filebucket +212 -0
- data/bin/puppet +2 -0
- data/bin/puppetca +2 -4
- data/bin/puppetd +16 -15
- data/bin/puppetdoc +46 -496
- data/bin/puppetmasterd +3 -5
- data/bin/puppetrun +8 -3
- data/bin/ralsh +271 -0
- data/conf/redhat/client.init +1 -1
- data/conf/redhat/puppet.spec +13 -2
- data/conf/solaris/pkginfo +1 -1
- data/ext/puppet-test +374 -0
- data/install.rb +40 -31
- data/lib/puppet.rb +39 -4
- data/lib/puppet/config_stores/rest.rb +60 -0
- data/lib/puppet/configuration.rb +312 -17
- data/lib/puppet/external/event-loop/event-loop.rb +4 -0
- data/lib/puppet/external/gratr/rdot.rb +1 -1
- data/lib/puppet/fact_stores/yaml.rb +42 -0
- data/lib/puppet/feature/base.rb +4 -1
- data/lib/puppet/metatype/attributes.rb +20 -43
- data/lib/puppet/metatype/container.rb +1 -36
- data/lib/puppet/metatype/evaluation.rb +48 -19
- data/lib/puppet/metatype/instances.rb +35 -1
- data/lib/puppet/metatype/metaparams.rb +23 -19
- data/lib/puppet/metatype/providers.rb +25 -38
- data/lib/puppet/network/client/ca.rb +8 -5
- data/lib/puppet/network/client/master.rb +59 -17
- data/lib/puppet/network/handler.rb +18 -1
- data/lib/puppet/network/handler/ca.rb +9 -3
- data/lib/puppet/network/handler/facts.rb +70 -0
- data/lib/puppet/network/handler/filebucket.rb +4 -1
- data/lib/puppet/network/handler/fileserver.rb +65 -21
- data/lib/puppet/network/handler/master.rb +6 -3
- data/lib/puppet/network/handler/report.rb +12 -26
- data/lib/puppet/network/handler/resource.rb +14 -2
- data/lib/puppet/network/handler/runner.rb +5 -1
- data/lib/puppet/network/handler/status.rb +5 -1
- data/lib/puppet/network/server/mongrel.rb +4 -4
- data/lib/puppet/network/server/webrick.rb +14 -3
- data/lib/puppet/parameter.rb +30 -25
- data/lib/puppet/parser/ast.rb +1 -6
- data/lib/puppet/parser/ast/component.rb +23 -20
- data/lib/puppet/parser/ast/hostclass.rb +7 -11
- data/lib/puppet/parser/ast/leaf.rb +4 -1
- data/lib/puppet/parser/ast/node.rb +6 -8
- data/lib/puppet/parser/functions.rb +7 -4
- data/lib/puppet/parser/interpreter.rb +155 -205
- data/lib/puppet/parser/lexer.rb +35 -2
- data/lib/puppet/parser/parser.rb +705 -612
- data/lib/puppet/parser/resource.rb +91 -48
- data/lib/puppet/parser/resource/param.rb +52 -29
- data/lib/puppet/parser/scope.rb +28 -23
- data/lib/puppet/pgraph.rb +26 -21
- data/lib/puppet/propertychange.rb +12 -12
- data/lib/puppet/provider.rb +102 -31
- data/lib/puppet/provider/cron/crontab.rb +7 -8
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/pw.rb +3 -3
- data/lib/puppet/provider/mount.rb +8 -8
- data/lib/puppet/provider/mount/netinfo.rb +5 -5
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +19 -31
- data/lib/puppet/provider/nameservice/netinfo.rb +14 -14
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +4 -4
- data/lib/puppet/provider/package.rb +31 -0
- data/lib/puppet/provider/package/appdmg.rb +118 -0
- data/lib/puppet/provider/package/apple.rb +18 -16
- data/lib/puppet/provider/package/apt.rb +13 -15
- data/lib/puppet/provider/package/aptitude.rb +5 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -11
- data/lib/puppet/provider/package/blastwave.rb +9 -9
- data/lib/puppet/provider/package/darwinport.rb +12 -11
- data/lib/puppet/provider/package/dpkg.rb +20 -12
- data/lib/puppet/provider/package/fink.rb +87 -0
- data/lib/puppet/provider/package/freebsd.rb +10 -11
- data/lib/puppet/provider/package/gem.rb +15 -15
- data/lib/puppet/provider/package/openbsd.rb +12 -17
- data/lib/puppet/provider/package/pkgdmg.rb +90 -16
- data/lib/puppet/provider/package/portage.rb +20 -14
- data/lib/puppet/provider/package/ports.rb +15 -13
- data/lib/puppet/provider/package/rpm.rb +20 -23
- data/lib/puppet/provider/package/rug.rb +6 -8
- data/lib/puppet/provider/package/sun.rb +20 -18
- data/lib/puppet/provider/package/sunfreeware.rb +2 -2
- data/lib/puppet/provider/package/up2date.rb +6 -10
- data/lib/puppet/provider/package/urpmi.rb +51 -0
- data/lib/puppet/provider/package/yum.rb +15 -13
- data/lib/puppet/provider/parsedfile.rb +53 -63
- data/lib/puppet/provider/service/base.rb +13 -15
- data/lib/puppet/provider/service/debian.rb +4 -4
- data/lib/puppet/provider/service/gentoo.rb +4 -4
- data/lib/puppet/provider/service/init.rb +22 -15
- data/lib/puppet/provider/service/redhat.rb +6 -6
- data/lib/puppet/provider/service/smf.rb +6 -6
- data/lib/puppet/provider/user/netinfo.rb +5 -5
- data/lib/puppet/provider/user/pw.rb +10 -5
- data/lib/puppet/provider/user/useradd.rb +9 -14
- data/lib/puppet/provider/zone/solaris.rb +80 -45
- data/lib/puppet/rails.rb +3 -34
- data/lib/puppet/rails/database/schema.rb +45 -24
- data/lib/puppet/rails/fact_value.rb +1 -0
- data/lib/puppet/rails/host.rb +69 -40
- data/lib/puppet/rails/param_name.rb +3 -8
- data/lib/puppet/rails/param_value.rb +2 -1
- data/lib/puppet/rails/puppet_class.rb +0 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +41 -17
- data/lib/puppet/rails/resource_tag.rb +4 -0
- data/lib/puppet/reference/configuration.rb +149 -0
- data/lib/puppet/reference/function.rb +13 -0
- data/lib/puppet/reference/network.rb +37 -0
- data/lib/puppet/reference/providers.rb +118 -0
- data/lib/puppet/reference/report.rb +21 -0
- data/lib/puppet/reference/type.rb +152 -0
- data/lib/puppet/reports/rrdgraph.rb +21 -7
- data/lib/puppet/reports/tagmail.rb +4 -1
- data/lib/puppet/sslcertificates.rb +1 -49
- data/lib/puppet/sslcertificates/ca.rb +2 -79
- data/lib/puppet/sslcertificates/inventory.rb +0 -10
- data/lib/puppet/transaction.rb +24 -41
- data/lib/puppet/transaction/report.rb +27 -1
- data/lib/puppet/type.rb +7 -43
- data/lib/puppet/type/component.rb +198 -124
- data/lib/puppet/type/cron.rb +51 -42
- data/lib/puppet/type/exec.rb +20 -19
- data/lib/puppet/type/group.rb +6 -55
- data/lib/puppet/type/host.rb +16 -37
- data/lib/puppet/type/mount.rb +30 -17
- data/lib/puppet/type/notify.rb +7 -8
- data/lib/puppet/type/package.rb +44 -80
- data/lib/puppet/type/pfile.rb +50 -41
- data/lib/puppet/type/pfile/checksum.rb +82 -95
- data/lib/puppet/type/pfile/content.rb +21 -25
- data/lib/puppet/type/pfile/ensure.rb +32 -30
- data/lib/puppet/type/pfile/group.rb +21 -26
- data/lib/puppet/type/pfile/mode.rb +25 -32
- data/lib/puppet/type/pfile/owner.rb +23 -27
- data/lib/puppet/type/pfile/source.rb +42 -33
- data/lib/puppet/type/pfile/target.rb +20 -18
- data/lib/puppet/type/pfile/type.rb +6 -7
- data/lib/puppet/type/pfilebucket.rb +3 -3
- data/lib/puppet/type/port.rb +5 -7
- data/lib/puppet/type/property.rb +58 -61
- data/lib/puppet/type/resources.rb +12 -8
- data/lib/puppet/type/schedule.rb +8 -8
- data/lib/puppet/type/service.rb +26 -33
- data/lib/puppet/type/sshkey.rb +6 -7
- data/lib/puppet/type/tidy.rb +41 -35
- data/lib/puppet/type/user.rb +34 -67
- data/lib/puppet/type/yumrepo.rb +27 -12
- data/lib/puppet/type/zone.rb +71 -110
- data/lib/puppet/util.rb +46 -61
- data/lib/puppet/util/autoload.rb +59 -47
- data/lib/puppet/util/config.rb +160 -18
- data/lib/puppet/util/config_store.rb +61 -0
- data/lib/puppet/util/fact_store.rb +60 -0
- data/lib/puppet/util/instance_loader.rb +74 -0
- data/lib/puppet/util/loadedfile.rb +5 -8
- data/lib/puppet/util/metric.rb +17 -25
- data/lib/puppet/util/posix.rb +39 -7
- data/lib/puppet/util/provider_features.rb +9 -1
- data/lib/puppet/util/rails/collection_merger.rb +16 -1
- data/lib/puppet/util/reference.rb +189 -0
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/subclass_loader.rb +9 -2
- data/test/language/ast.rb +4 -148
- data/test/language/ast/component.rb +10 -1
- data/test/language/collector.rb +1 -191
- data/test/language/interpreter.rb +284 -327
- data/test/language/lexer.rb +13 -1
- data/test/language/node.rb +1 -1
- data/test/language/parser.rb +17 -4
- data/test/language/resource.rb +67 -101
- data/test/language/scope.rb +18 -3
- data/test/language/snippets.rb +114 -151
- data/test/lib/puppettest.rb +13 -0
- data/test/lib/puppettest/exetest.rb +7 -0
- data/test/lib/puppettest/fakes.rb +39 -28
- data/test/lib/puppettest/railstesting.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +30 -0
- data/test/network/client/ca.rb +27 -1
- data/test/network/client/client.rb +3 -3
- data/test/network/client/master.rb +102 -1
- data/test/network/handler/ca.rb +35 -1
- data/test/network/handler/facts.rb +112 -0
- data/test/network/handler/fileserver.rb +25 -1
- data/test/network/handler/handler.rb +2 -2
- data/test/network/handler/master.rb +2 -49
- data/test/network/handler/resource.rb +5 -6
- data/test/network/server/mongrel_test.rb +65 -0
- data/test/network/server/webrick.rb +2 -2
- data/test/network/xmlrpc/client.rb +2 -1
- data/test/network/xmlrpc/processor.rb +2 -1
- data/test/other/pgraph.rb +6 -5
- data/test/other/propertychange.rb +11 -12
- data/test/other/report.rb +44 -27
- data/test/other/transactions.rb +17 -16
- data/test/puppet/tc_suidmanager.rb +2 -2
- data/test/rails/ast.rb +74 -0
- data/test/rails/collection.rb +214 -0
- data/test/rails/host.rb +49 -24
- data/test/rails/interpreter.rb +91 -0
- data/test/rails/railsparameter.rb +22 -11
- data/test/rails/railsresource.rb +140 -7
- data/test/ral/manager/attributes.rb +37 -13
- data/test/ral/manager/instances.rb +82 -0
- data/test/ral/manager/provider.rb +60 -22
- data/test/ral/manager/type.rb +9 -6
- data/test/ral/providers/cron/crontab.rb +59 -7
- data/test/ral/providers/group.rb +7 -7
- data/test/ral/providers/host/netinfo.rb +5 -6
- data/test/ral/providers/host/parsed.rb +4 -4
- data/test/ral/providers/mount/parsed.rb +11 -6
- data/test/ral/providers/nameservice.rb +2 -2
- data/test/ral/providers/package.rb +39 -14
- data/test/ral/providers/package/apt.rb +72 -3
- data/test/ral/providers/package/aptitude.rb +15 -12
- data/test/ral/providers/package/aptrpm.rb +3 -3
- data/test/ral/providers/package/dpkg.rb +2 -2
- data/test/ral/providers/parsedfile.rb +114 -88
- data/test/ral/providers/{parsedport.rb → port/parsed.rb} +1 -1
- data/test/ral/providers/provider.rb +93 -13
- data/test/ral/providers/service.rb +52 -26
- data/test/ral/providers/sshkey/parsed.rb +3 -3
- data/test/ral/providers/user.rb +19 -20
- data/test/ral/providers/user/useradd.rb +1 -5
- data/test/ral/types/cron.rb +49 -36
- data/test/ral/types/file.rb +38 -35
- data/test/ral/types/file/target.rb +4 -4
- data/test/ral/types/filesources.rb +24 -22
- data/test/ral/types/group.rb +4 -2
- data/test/ral/types/host.rb +17 -10
- data/test/ral/types/mount.rb +40 -23
- data/test/ral/types/package.rb +62 -5
- data/test/ral/types/parameter.rb +2 -2
- data/test/ral/types/property.rb +27 -20
- data/test/ral/types/resources.rb +4 -16
- data/test/ral/types/schedule.rb +2 -2
- data/test/ral/types/service.rb +2 -3
- data/test/ral/types/sshkey.rb +3 -3
- data/test/ral/types/tidy.rb +6 -15
- data/test/ral/types/user.rb +17 -17
- data/test/ral/types/yumrepo.rb +2 -2
- data/test/ral/types/zone.rb +71 -87
- data/test/util/autoload.rb +6 -21
- data/test/util/config.rb +201 -101
- data/test/util/fact_store.rb +67 -0
- data/test/util/features.rb +9 -6
- data/test/util/instance_loader.rb +53 -0
- data/test/util/loadedfile.rb +17 -1
- data/test/util/metrics.rb +54 -57
- data/test/util/posixtest.rb +8 -11
- data/test/util/utiltest.rb +31 -2
- metadata +520 -492
- data/TODO +0 -4
- data/lib/puppet/network/client/logger.rb +0 -6
- data/lib/puppet/network/handler/logger.rb +0 -52
- data/lib/puppet/rails/database/001_add_indexes.rb +0 -38
- data/lib/puppet/type/parsedtype.rb +0 -219
- data/test/network/handler/logger.rb +0 -183
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift("../../lib") if __FILE__ =~ /\.rb$/
|
4
|
+
|
5
|
+
require 'puppettest'
|
6
|
+
require 'mocha'
|
7
|
+
require 'puppet/network/handler/facts'
|
8
|
+
|
9
|
+
class TestFactsHandler < Test::Unit::TestCase
|
10
|
+
include PuppetTest::ServerTest
|
11
|
+
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
|
15
|
+
@class = Puppet::Network::Handler.handler(:facts)
|
16
|
+
|
17
|
+
@@client_facts = {}
|
18
|
+
|
19
|
+
unless Puppet::Util::FactStore.store(:testing)
|
20
|
+
Puppet::Util::FactStore.newstore(:testing) do
|
21
|
+
def get(node)
|
22
|
+
@@client_facts[node]
|
23
|
+
end
|
24
|
+
|
25
|
+
def set(node, facts)
|
26
|
+
@@client_facts[node] = facts
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
Puppet[:factstore] = :testing
|
32
|
+
|
33
|
+
@handler = @class.new
|
34
|
+
|
35
|
+
@facts = {:a => :b, :c => :d}
|
36
|
+
@name = "foo"
|
37
|
+
|
38
|
+
@backend = @handler.instance_variable_get("@backend")
|
39
|
+
end
|
40
|
+
|
41
|
+
def teardown
|
42
|
+
@@client_facts.clear
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_strip_internal
|
46
|
+
@facts[:_puppet_one] = "yay"
|
47
|
+
@facts[:_puppet_two] = "boo"
|
48
|
+
@facts[:_puppetthree] = "foo"
|
49
|
+
|
50
|
+
newfacts = nil
|
51
|
+
assert_nothing_raised("Could not call strip_internal") do
|
52
|
+
newfacts = @handler.send(:strip_internal, @facts)
|
53
|
+
end
|
54
|
+
|
55
|
+
[:_puppet_one, :_puppet_two, :_puppetthree].each do |name|
|
56
|
+
assert(@facts.include?(name), "%s was removed in strip_internal from original hash" % name)
|
57
|
+
end
|
58
|
+
[:_puppet_one, :_puppet_two].each do |name|
|
59
|
+
assert(! newfacts.include?(name), "%s was not removed in strip_internal" % name)
|
60
|
+
end
|
61
|
+
assert_equal("foo", newfacts[:_puppetthree], "_puppetthree was removed in strip_internal")
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_add_internal
|
65
|
+
newfacts = nil
|
66
|
+
assert_nothing_raised("Could not call strip_internal") do
|
67
|
+
newfacts = @handler.send(:add_internal, @facts)
|
68
|
+
end
|
69
|
+
|
70
|
+
assert_instance_of(Time, newfacts[:_puppet_timestamp], "Did not set timestamp in add_internal")
|
71
|
+
assert(! @facts.include?(:_puppet_timestamp), "Modified original hash in add_internal")
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_set
|
75
|
+
newfacts = @facts.dup
|
76
|
+
newfacts[:_puppet_timestamp] = Time.now
|
77
|
+
@handler.expects(:add_internal).with(@facts).returns(newfacts)
|
78
|
+
@backend.expects(:set).with(@name, newfacts).returns(nil)
|
79
|
+
|
80
|
+
assert_nothing_raised("Could not set facts") do
|
81
|
+
assert_nil(@handler.set(@name, @facts), "handler.set did not return nil")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_get
|
86
|
+
prefacts = @facts.dup
|
87
|
+
prefacts[:_puppet_timestamp] = Time.now
|
88
|
+
@@client_facts[@name] = prefacts
|
89
|
+
@handler.expects(:strip_internal).with(prefacts).returns(@facts)
|
90
|
+
@backend.expects(:get).with(@name).returns(prefacts)
|
91
|
+
|
92
|
+
assert_nothing_raised("Could not retrieve facts") do
|
93
|
+
assert_equal(@facts, @handler.get(@name), "did not get correct answer from handler.get")
|
94
|
+
end
|
95
|
+
|
96
|
+
@handler = @class.new
|
97
|
+
assert_nothing_raised("Failed to call 'get' with no stored facts") do
|
98
|
+
@handler.get("nosuchname")
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_store_date
|
103
|
+
time = Time.now
|
104
|
+
@facts[:_puppet_timestamp] = time
|
105
|
+
|
106
|
+
@handler.expects(:get).with(@name).returns(@facts)
|
107
|
+
|
108
|
+
assert_equal(time.to_i, @handler.store_date(@name), "Did not retrieve timestamp correctly")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# $Id: facts.rb 2457 2007-05-03 05:24:13Z luke $
|
@@ -702,6 +702,8 @@ class TestFileServer < Test::Unit::TestCase
|
|
702
702
|
end
|
703
703
|
|
704
704
|
def test_servinglinks
|
705
|
+
# Disable the checking, so changes propagate immediately.
|
706
|
+
Puppet[:filetimeout] = -5
|
705
707
|
server = nil
|
706
708
|
source = tempfile()
|
707
709
|
file = File.join(source, "file")
|
@@ -1124,7 +1126,29 @@ allow *
|
|
1124
1126
|
'allow.example.com', "192.168.0.1")
|
1125
1127
|
}
|
1126
1128
|
end
|
1129
|
+
|
1130
|
+
# Make sure we successfully throw errors -- someone ran into this with
|
1131
|
+
# 0.22.4.
|
1132
|
+
def test_failures
|
1133
|
+
# create a server with the file
|
1134
|
+
server = nil
|
1135
|
+
|
1136
|
+
config = tempfile
|
1137
|
+
[
|
1138
|
+
"[this is invalid]\nallow one.two.com", # invalid name
|
1139
|
+
"[valid]\nallow *.testing something.com", # invalid allow
|
1140
|
+
"[valid]\nallow one.two.com\ndeny *.testing something.com", # invalid deny
|
1141
|
+
].each do |failer|
|
1142
|
+
File.open(config, "w") { |f| f.puts failer }
|
1143
|
+
assert_raise(Puppet::Network::Handler::FileServerError, "Did not fail on %s" % failer.inspect) {
|
1144
|
+
server = Puppet::Network::Handler::FileServer.new(
|
1145
|
+
:Local => false,
|
1146
|
+
:Config => config
|
1147
|
+
)
|
1148
|
+
}
|
1149
|
+
end
|
1150
|
+
end
|
1127
1151
|
end
|
1128
1152
|
|
1129
|
-
# $Id: fileserver.rb
|
1153
|
+
# $Id: fileserver.rb 2629 2007-06-19 22:18:55Z luke $
|
1130
1154
|
|
@@ -48,7 +48,7 @@ class TestHandler < Test::Unit::TestCase
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_handlers_by_name
|
51
|
-
%w{ca filebucket fileserver
|
51
|
+
%w{ca filebucket fileserver master report resource runner status}.each do |name|
|
52
52
|
handler = nil
|
53
53
|
assert_nothing_raised do
|
54
54
|
handler = Puppet::Network::Handler.handler(name)
|
@@ -61,4 +61,4 @@ class TestHandler < Test::Unit::TestCase
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
# $Id: handler.rb
|
64
|
+
# $Id: handler.rb 2497 2007-05-09 16:21:56Z luke $
|
@@ -7,10 +7,6 @@ require 'puppet/network/handler/master'
|
|
7
7
|
|
8
8
|
class TestMaster < Test::Unit::TestCase
|
9
9
|
include PuppetTest::ServerTest
|
10
|
-
def teardown
|
11
|
-
super
|
12
|
-
#print "\n\n\n\n" if Puppet[:debug]
|
13
|
-
end
|
14
10
|
|
15
11
|
# run through all of the existing test files and make sure everything
|
16
12
|
# works
|
@@ -124,7 +120,7 @@ class TestMaster < Test::Unit::TestCase
|
|
124
120
|
assert(! client.fresh?(facts),
|
125
121
|
"Client is incorrectly up to date")
|
126
122
|
|
127
|
-
Puppet.config.use(:
|
123
|
+
Puppet.config.use(:main)
|
128
124
|
assert_nothing_raised {
|
129
125
|
client.getconfig
|
130
126
|
client.apply
|
@@ -303,50 +299,7 @@ class TestMaster < Test::Unit::TestCase
|
|
303
299
|
assert_equal(fakename, name)
|
304
300
|
assert_equal(fakeip, ip)
|
305
301
|
end
|
306
|
-
|
307
|
-
if Puppet.features.rails?
|
308
|
-
def test_freshness_connect_update
|
309
|
-
Puppet::Rails.init
|
310
|
-
Puppet[:storeconfigs] = true
|
311
|
-
|
312
|
-
# this is the default server setup
|
313
|
-
master = Puppet::Network::Handler.master.new(
|
314
|
-
:Code => "",
|
315
|
-
:UseNodes => true,
|
316
|
-
:Local => true
|
317
|
-
)
|
318
|
-
|
319
|
-
# Create a host
|
320
|
-
Puppet::Rails::Host.new(:name => "test", :ip => "192.168.0.3").save
|
321
|
-
|
322
|
-
assert_nothing_raised("Failed to update last_connect for unknown host") do
|
323
|
-
master.freshness("created",'192.168.0.1')
|
324
|
-
end
|
325
|
-
|
326
|
-
# Make sure it created the host
|
327
|
-
created = Puppet::Rails::Host.find_by_name("created")
|
328
|
-
assert(created, "Freshness did not create host")
|
329
|
-
assert(created.last_freshcheck,
|
330
|
-
"Did not set last_freshcheck on created host")
|
331
|
-
assert_equal("192.168.0.1", created.ip,
|
332
|
-
"Did not set IP address on created host")
|
333
|
-
|
334
|
-
# Now check on the existing host
|
335
|
-
assert_nothing_raised("Failed to update last_connect for unknown host") do
|
336
|
-
master.freshness("test",'192.168.0.2')
|
337
|
-
end
|
338
|
-
|
339
|
-
# Recreate it, so we're not using the cached object.
|
340
|
-
host = Puppet::Rails::Host.find_by_name("test")
|
341
|
-
|
342
|
-
# Make sure it created the host
|
343
|
-
assert(host.last_freshcheck,
|
344
|
-
"Did not set last_freshcheck on existing host")
|
345
|
-
assert_equal("192.168.0.3", host.ip,
|
346
|
-
"Overrode IP on found host")
|
347
|
-
end
|
348
|
-
end
|
349
302
|
end
|
350
303
|
|
351
|
-
# $Id: master.rb
|
304
|
+
# $Id: master.rb 2616 2007-06-18 21:03:18Z luke $
|
352
305
|
|
@@ -89,9 +89,8 @@ class TestResourceServer < Test::Unit::TestCase
|
|
89
89
|
assert_events([:file_created], object)
|
90
90
|
else
|
91
91
|
assert_nothing_raised {
|
92
|
-
object.retrieve
|
92
|
+
assert(object.insync?(object.retrieve), "Object was not in sync")
|
93
93
|
}
|
94
|
-
assert(object.insync?, "Object was not in sync")
|
95
94
|
end
|
96
95
|
|
97
96
|
assert(FileTest.exists?(file), "File did not get recreated")
|
@@ -184,8 +183,8 @@ class TestResourceServer < Test::Unit::TestCase
|
|
184
183
|
Puppet::Type.type(:schedule).mkdefaultschedules
|
185
184
|
|
186
185
|
Puppet::Type.eachtype do |type|
|
187
|
-
unless type.respond_to? :
|
188
|
-
Puppet.warning "%s does not respond to :
|
186
|
+
unless type.respond_to? :instances
|
187
|
+
Puppet.warning "%s does not respond to :instances" % type.name
|
189
188
|
next
|
190
189
|
end
|
191
190
|
next unless type.name == :package
|
@@ -213,7 +212,7 @@ class TestResourceServer < Test::Unit::TestCase
|
|
213
212
|
count = 0
|
214
213
|
described = {}
|
215
214
|
Puppet.info "listing again"
|
216
|
-
type.
|
215
|
+
type.instances.each do |obj|
|
217
216
|
assert_instance_of(type, obj)
|
218
217
|
|
219
218
|
break if count > 5
|
@@ -292,4 +291,4 @@ class TestResourceServer < Test::Unit::TestCase
|
|
292
291
|
end
|
293
292
|
end
|
294
293
|
|
295
|
-
# $Id: resource.rb
|
294
|
+
# $Id: resource.rb 2551 2007-06-04 20:37:14Z luke $
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift("../../lib") if __FILE__ =~ /\.rb$/
|
4
|
+
|
5
|
+
require 'puppettest'
|
6
|
+
|
7
|
+
class TestMongrelServer < PuppetTest::TestCase
|
8
|
+
confine "Missing mongrel" => Puppet.features.mongrel?
|
9
|
+
|
10
|
+
include PuppetTest::ServerTest
|
11
|
+
|
12
|
+
def mkserver(handlers = nil)
|
13
|
+
handlers ||= { :Status => nil }
|
14
|
+
mongrel = Puppet::Network::Server::Mongrel.new(handlers)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Make sure client info is correctly extracted.
|
18
|
+
def test_client_info
|
19
|
+
obj = Object.new
|
20
|
+
obj.metaclass.send(:attr_accessor, :params)
|
21
|
+
params = {}
|
22
|
+
obj.params = params
|
23
|
+
|
24
|
+
mongrel = mkserver
|
25
|
+
|
26
|
+
ip = Facter.value(:ipaddress)
|
27
|
+
params["REMOTE_ADDR"] = ip
|
28
|
+
params[Puppet[:ssl_client_header]] = "/CN=host.domain.com"
|
29
|
+
|
30
|
+
info = nil
|
31
|
+
assert_nothing_raised("Could not call client_info") do
|
32
|
+
info = mongrel.send(:client_info, obj)
|
33
|
+
end
|
34
|
+
|
35
|
+
assert(info.authenticated?, "Client info object was not marked valid even though the header was present")
|
36
|
+
assert_equal(ip, info.ip, "Did not copy over ip correctly")
|
37
|
+
assert_equal("host.domain.com", info.name, "Did not copy over hostname correctly")
|
38
|
+
|
39
|
+
# Now try it with a different header name
|
40
|
+
params.delete(Puppet[:ssl_client_header])
|
41
|
+
Puppet[:ssl_client_header] = "header_testing"
|
42
|
+
params["header_testing"] = "/CN=other.domain.com"
|
43
|
+
info = nil
|
44
|
+
assert_nothing_raised("Could not call client_info with other header") do
|
45
|
+
info = mongrel.send(:client_info, obj)
|
46
|
+
end
|
47
|
+
|
48
|
+
assert(info.authenticated?, "Client info object was not marked valid even though the header was present")
|
49
|
+
assert_equal(ip, info.ip, "Did not copy over ip correctly")
|
50
|
+
assert_equal("other.domain.com", info.name, "Did not copy over hostname correctly")
|
51
|
+
|
52
|
+
# Now make sure it's considered invalid without that header
|
53
|
+
params.delete("header_testing")
|
54
|
+
info = nil
|
55
|
+
assert_nothing_raised("Could not call client_info with no header") do
|
56
|
+
info = mongrel.send(:client_info, obj)
|
57
|
+
end
|
58
|
+
|
59
|
+
assert(! info.authenticated?, "Client info object was marked valid without header")
|
60
|
+
assert_equal(ip, info.ip, "Did not copy over ip correctly")
|
61
|
+
assert_equal(Resolv.getname(ip), info.name, "Did not look up hostname correctly")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# $Id: mongrel_test.rb 2570 2007-06-13 16:14:52Z luke $
|
@@ -5,7 +5,7 @@ $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'puppet/network/server/webrick'
|
7
7
|
|
8
|
-
class
|
8
|
+
class TestWebrickServer < Test::Unit::TestCase
|
9
9
|
include PuppetTest::ServerTest
|
10
10
|
|
11
11
|
# Make sure we can create a server, and that it knows how to create its
|
@@ -137,4 +137,4 @@ class TestServer < Test::Unit::TestCase
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
-
# $Id: webrick.rb
|
140
|
+
# $Id: webrick.rb 2558 2007-06-11 18:07:34Z luke $
|
@@ -7,6 +7,7 @@ require 'puppet/network/xmlrpc/client'
|
|
7
7
|
require 'mocha'
|
8
8
|
|
9
9
|
class TestXMLRPCClient < Test::Unit::TestCase
|
10
|
+
include PuppetTest
|
10
11
|
def test_set_backtrace
|
11
12
|
error = Puppet::Network::XMLRPCClientError.new("An error")
|
12
13
|
assert_nothing_raised do
|
@@ -64,5 +65,5 @@ class TestXMLRPCClient < Test::Unit::TestCase
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
# $Id: client.rb
|
68
|
+
# $Id: client.rb 2624 2007-06-19 01:49:19Z luke $
|
68
69
|
|
@@ -7,6 +7,7 @@ require 'puppet/network/xmlrpc/processor'
|
|
7
7
|
require 'mocha'
|
8
8
|
|
9
9
|
class TestXMLRPCProcessor < Test::Unit::TestCase
|
10
|
+
include PuppetTest
|
10
11
|
class BaseProcessor
|
11
12
|
def add_handler(interface, handler)
|
12
13
|
@handlers ||= {}
|
@@ -76,5 +77,5 @@ class TestXMLRPCProcessor < Test::Unit::TestCase
|
|
76
77
|
end
|
77
78
|
end
|
78
79
|
|
79
|
-
# $Id: processor.rb
|
80
|
+
# $Id: processor.rb 2624 2007-06-19 01:49:19Z luke $
|
80
81
|
|
data/test/other/pgraph.rb
CHANGED
@@ -189,10 +189,11 @@ class TestPGraph < Test::Unit::TestCase
|
|
189
189
|
graph.edge_label(:a, :b), "lost label")
|
190
190
|
end
|
191
191
|
|
192
|
-
def
|
192
|
+
def test_fail_on_cycle
|
193
193
|
{
|
194
|
-
{:a => :b, :b => :a} => true,
|
194
|
+
{:a => :b, :b => :a, :c => :a, :d => :c} => true, # larger tree involving a smaller cycle
|
195
195
|
{:a => :b, :b => :c, :c => :a} => true,
|
196
|
+
{:a => :b, :b => :a, :c => :d, :d => :c} => true,
|
196
197
|
{:a => :b, :b => :c} => false,
|
197
198
|
}.each do |hash, result|
|
198
199
|
graph = Puppet::PGraph.new
|
@@ -202,11 +203,11 @@ class TestPGraph < Test::Unit::TestCase
|
|
202
203
|
|
203
204
|
if result
|
204
205
|
assert_raise(Puppet::Error, "%s did not fail" % hash.inspect) do
|
205
|
-
|
206
|
+
graph.topsort
|
206
207
|
end
|
207
208
|
else
|
208
209
|
assert_nothing_raised("%s failed" % hash.inspect) do
|
209
|
-
graph.
|
210
|
+
graph.topsort
|
210
211
|
end
|
211
212
|
end
|
212
213
|
end
|
@@ -286,4 +287,4 @@ class TestPGraph < Test::Unit::TestCase
|
|
286
287
|
end
|
287
288
|
end
|
288
289
|
|
289
|
-
# $Id: pgraph.rb
|
290
|
+
# $Id: pgraph.rb 2521 2007-05-17 20:57:24Z luke $
|
@@ -10,13 +10,13 @@ require 'puppettest'
|
|
10
10
|
class TestPropertyChange < Test::Unit::TestCase
|
11
11
|
include PuppetTest
|
12
12
|
class FakeProperty < Puppet::Type::Property
|
13
|
-
attr_accessor :is, :should, :
|
13
|
+
attr_accessor :is, :should, :resource
|
14
14
|
attr_reader :noop
|
15
|
-
def change_to_s
|
15
|
+
def change_to_s(currentvalue, newvalue)
|
16
16
|
"fake change"
|
17
17
|
end
|
18
|
-
def insync?
|
19
|
-
|
18
|
+
def insync?(is)
|
19
|
+
is == @should
|
20
20
|
end
|
21
21
|
def log(msg)
|
22
22
|
Puppet::Util::Log.create(
|
@@ -35,11 +35,11 @@ class TestPropertyChange < Test::Unit::TestCase
|
|
35
35
|
def path
|
36
36
|
"fakechange"
|
37
37
|
end
|
38
|
-
def should_to_s
|
39
|
-
|
38
|
+
def should_to_s(newvalue)
|
39
|
+
newvalue.to_s
|
40
40
|
end
|
41
41
|
def sync
|
42
|
-
if insync?
|
42
|
+
if insync?(@is)
|
43
43
|
return nil
|
44
44
|
else
|
45
45
|
@is = @should
|
@@ -52,13 +52,13 @@ class TestPropertyChange < Test::Unit::TestCase
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def mkchange
|
55
|
-
property = FakeProperty.new :
|
55
|
+
property = FakeProperty.new :resource => "fakeparent"
|
56
56
|
property.is = :start
|
57
57
|
property.should = :finish
|
58
|
-
property.
|
58
|
+
property.resource = :parent
|
59
59
|
change = nil
|
60
60
|
assert_nothing_raised do
|
61
|
-
change = Puppet::PropertyChange.new(property)
|
61
|
+
change = Puppet::PropertyChange.new(property, :start)
|
62
62
|
end
|
63
63
|
change.transaction = :trans
|
64
64
|
|
@@ -125,7 +125,6 @@ class TestPropertyChange < Test::Unit::TestCase
|
|
125
125
|
Puppet[:noop] = true
|
126
126
|
|
127
127
|
change.property.noop = true
|
128
|
-
p change.property.noop
|
129
128
|
assert(change.noop, "did not set noop")
|
130
129
|
assert(change.skip?, "setting noop did not mark change for skipping")
|
131
130
|
|
@@ -139,4 +138,4 @@ class TestPropertyChange < Test::Unit::TestCase
|
|
139
138
|
end
|
140
139
|
end
|
141
140
|
|
142
|
-
# $Id: propertychange.rb
|
141
|
+
# $Id: propertychange.rb 2517 2007-05-15 19:22:36Z luke $
|