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
@@ -42,19 +42,14 @@ class TestTypeAttributes < Test::Unit::TestCase
|
|
42
42
|
|
43
43
|
if param == :property
|
44
44
|
assert(inst.property(param), "did not get obj for %s" % param)
|
45
|
-
end
|
46
|
-
|
47
|
-
if param == :property
|
48
45
|
assert_equal(true, inst.should(param),
|
49
46
|
"should value did not get set")
|
50
|
-
|
47
|
+
else
|
48
|
+
assert_equal(true, inst[param],
|
49
|
+
"did not get correct value for %s from symbol" % param)
|
50
|
+
assert_equal(true, inst[param.to_s],
|
51
|
+
"did not get correct value for %s from string" % param)
|
51
52
|
end
|
52
|
-
|
53
|
-
# Now make sure we can get it back
|
54
|
-
assert_equal(true, inst[param],
|
55
|
-
"did not get correct value for %s from symbol" % param)
|
56
|
-
assert_equal(true, inst[param.to_s],
|
57
|
-
"did not get correct value for %s from string" % param)
|
58
53
|
end
|
59
54
|
end
|
60
55
|
|
@@ -232,7 +227,6 @@ class TestTypeAttributes < Test::Unit::TestCase
|
|
232
227
|
type.provide(:testing) {}
|
233
228
|
provider = type.attrclass(:provider)
|
234
229
|
should = [[name, :param], [provider, :param], [two, :property], [one, :param]]
|
235
|
-
|
236
230
|
assert_nothing_raised do
|
237
231
|
result = nil
|
238
232
|
type.eachattr do |obj, name|
|
@@ -260,7 +254,7 @@ class TestTypeAttributes < Test::Unit::TestCase
|
|
260
254
|
|
261
255
|
# Now make similar providers
|
262
256
|
nope = type.provide(:nope) {}
|
263
|
-
maybe = type.provide(:maybe) {
|
257
|
+
maybe = type.provide(:maybe) { has_feature :fone}
|
264
258
|
yep = type.provide(:yep) { has_features :fone, :ftwo}
|
265
259
|
|
266
260
|
attrs = [:none, :one, :two]
|
@@ -291,6 +285,36 @@ class TestTypeAttributes < Test::Unit::TestCase
|
|
291
285
|
@logs.clear
|
292
286
|
end
|
293
287
|
end
|
288
|
+
|
289
|
+
# Make sure the 'check' metaparam just ignores non-properties, rather than failing.
|
290
|
+
def test_check_allows_parameters
|
291
|
+
file = Puppet::Type.type(:file)
|
292
|
+
klass = file.attrclass(:check)
|
293
|
+
|
294
|
+
resource = file.create(:path => tempfile)
|
295
|
+
inst = klass.new(:resource => resource)
|
296
|
+
|
297
|
+
{:property => [:owner, :group], :parameter => [:ignore, :recurse], :metaparam => [:require, :subscribe]}.each do |attrtype, attrs|
|
298
|
+
assert_nothing_raised("Could not set check to a single %s value" % attrtype) do
|
299
|
+
inst.value = attrs[0]
|
300
|
+
end
|
301
|
+
|
302
|
+
if attrtype == :property
|
303
|
+
assert(resource.property(attrs[0]), "Check did not create property instance during single check")
|
304
|
+
end
|
305
|
+
assert_nothing_raised("Could not set check to multiple %s values" % attrtype) do
|
306
|
+
inst.value = attrs
|
307
|
+
end
|
308
|
+
if attrtype == :property
|
309
|
+
assert(resource.property(attrs[1]), "Check did not create property instance during multiple check")
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
# But make sure actually invalid attributes fail
|
314
|
+
assert_raise(Puppet::Error, ":check did not fail on invalid attribute") do
|
315
|
+
inst.value = :nosuchattr
|
316
|
+
end
|
317
|
+
end
|
294
318
|
end
|
295
319
|
|
296
|
-
# $Id: attributes.rb
|
320
|
+
# $Id: attributes.rb 2591 2007-06-15 19:49:26Z luke $
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke A. Kanies on 2007-06-10.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
$:.unshift("../../lib") if __FILE__ =~ /\.rb$/
|
7
|
+
|
8
|
+
require 'puppettest'
|
9
|
+
|
10
|
+
class TestTypeInstances < Test::Unit::TestCase
|
11
|
+
include PuppetTest
|
12
|
+
|
13
|
+
def setup
|
14
|
+
super
|
15
|
+
@type = Puppet::Type.newtype(:instance_test) do
|
16
|
+
newparam(:name) {}
|
17
|
+
ensurable
|
18
|
+
end
|
19
|
+
cleanup { Puppet::Type.rmtype(:instance_test) }
|
20
|
+
end
|
21
|
+
|
22
|
+
# Make sure the instances class method works as expected.
|
23
|
+
def test_instances
|
24
|
+
# First make sure it throws an error when there are no providers
|
25
|
+
assert_raise(Puppet::DevError, "Did not fail when no providers are present") do
|
26
|
+
@type.instances
|
27
|
+
end
|
28
|
+
|
29
|
+
# Now add a couple of providers
|
30
|
+
|
31
|
+
# The default
|
32
|
+
@type.provide(:default) do
|
33
|
+
defaultfor :operatingsystem => Facter.value(:operatingsystem)
|
34
|
+
mk_resource_methods
|
35
|
+
class << self
|
36
|
+
attr_accessor :names
|
37
|
+
end
|
38
|
+
def self.instance(name)
|
39
|
+
new(:name => name, :ensure => :present)
|
40
|
+
end
|
41
|
+
def self.instances
|
42
|
+
@instances ||= names.collect { |name| instance(name) }
|
43
|
+
@instances
|
44
|
+
end
|
45
|
+
|
46
|
+
@names = [:one]
|
47
|
+
end
|
48
|
+
|
49
|
+
# A provider with the same source
|
50
|
+
@type.provide(:sub, :source => :default, :parent => :default) do
|
51
|
+
@names = [:two]
|
52
|
+
end
|
53
|
+
|
54
|
+
# An unsuitable provider
|
55
|
+
@type.provide(:nope, :parent => :default) do
|
56
|
+
confine :exists => "/no/such/file"
|
57
|
+
@names = [:three]
|
58
|
+
end
|
59
|
+
|
60
|
+
# Another suitable, non-default provider
|
61
|
+
@type.provide(:yep, :parent => :default) do
|
62
|
+
@names = [:four]
|
63
|
+
end
|
64
|
+
|
65
|
+
result = nil
|
66
|
+
assert_nothing_raised("Could not get instance list") do
|
67
|
+
result = @type.instances
|
68
|
+
end
|
69
|
+
|
70
|
+
assert_equal(:one, result[0].name, "Did not get default instances first")
|
71
|
+
assert_equal(@type.provider(:default).instances[0], result[0].provider, "Provider instances were not maintained")
|
72
|
+
|
73
|
+
resources = result.inject({}) { |hash, res| hash[res.name] = res; hash }
|
74
|
+
assert(resources.include?(:four), "Did not get resources from other suitable providers")
|
75
|
+
assert(! resources.include?(:three), "Got resources from unsuitable providers")
|
76
|
+
|
77
|
+
# Now make sure the resources have an 'ensure' property to go with the value in the provider
|
78
|
+
assert(resources[:one].send(:instance_variable_get, "@parameters").include?(:ensure), "Did not create ensure property")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# $Id: instances.rb 2551 2007-06-04 20:37:14Z luke $
|
@@ -8,47 +8,85 @@ require 'mocha'
|
|
8
8
|
class TestTypeProviders < Test::Unit::TestCase
|
9
9
|
include PuppetTest
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
def setup
|
12
|
+
super
|
13
|
+
@type = Puppet::Type.newtype(:provider_test) do
|
14
|
+
newparam(:name) {}
|
15
|
+
ensurable
|
16
16
|
end
|
17
|
+
cleanup { Puppet::Type.rmtype(:provider_test) }
|
18
|
+
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
basic = type.provide(:basic) do
|
20
|
+
# Make sure default providers behave correctly
|
21
|
+
def test_defaultproviders
|
22
|
+
basic = @type.provide(:basic) do
|
21
23
|
defaultfor :operatingsystem => :somethingelse,
|
22
24
|
:operatingsystemrelease => :yayness
|
23
25
|
end
|
24
26
|
|
25
|
-
assert_equal(basic, type.defaultprovider)
|
26
|
-
type.defaultprovider = nil
|
27
|
+
assert_equal(basic, @type.defaultprovider)
|
28
|
+
@type.defaultprovider = nil
|
27
29
|
|
28
|
-
greater = type.provide(:greater) do
|
30
|
+
greater = @type.provide(:greater) do
|
29
31
|
defaultfor :operatingsystem => Facter.value("operatingsystem")
|
30
32
|
end
|
31
33
|
|
32
|
-
assert_equal(greater, type.defaultprovider)
|
34
|
+
assert_equal(greater, @type.defaultprovider)
|
33
35
|
end
|
34
36
|
|
35
37
|
# Make sure the provider is always the first parameter created.
|
36
38
|
def test_provider_sorting
|
37
|
-
type = Puppet::Type.newtype(:sorttest) do
|
38
|
-
newparam(:name) {}
|
39
|
-
ensurable
|
40
|
-
end
|
41
|
-
cleanup { Puppet::Type.rmtype(:sorttest) }
|
42
|
-
|
43
39
|
should = [:name, :ensure]
|
44
|
-
assert_equal(should, type.allattrs.reject { |p| ! should.include?(p) },
|
40
|
+
assert_equal(should, @type.allattrs.reject { |p| ! should.include?(p) },
|
45
41
|
"Got wrong order of parameters")
|
46
42
|
|
47
|
-
type.provide(:yay) { }
|
43
|
+
@type.provide(:yay) { }
|
48
44
|
should = [:name, :provider, :ensure]
|
49
|
-
assert_equal(should, type.allattrs.reject { |p| ! should.include?(p) },
|
45
|
+
assert_equal(should, @type.allattrs.reject { |p| ! should.include?(p) },
|
50
46
|
"Providify did not reorder parameters")
|
51
47
|
end
|
48
|
+
|
49
|
+
# Make sure that provider instances can be passed in directly.
|
50
|
+
def test_name_or_provider
|
51
|
+
provider = @type.provide(:testing) do
|
52
|
+
end
|
53
|
+
|
54
|
+
# first make sure we can pass the name in
|
55
|
+
resource = nil
|
56
|
+
assert_nothing_raised("Could not create provider instance by name") do
|
57
|
+
resource = @type.create :name => "yay", :provider => :testing
|
58
|
+
end
|
59
|
+
|
60
|
+
assert_instance_of(provider, resource.provider, "Did not create provider instance")
|
61
|
+
|
62
|
+
# Now make sure we can pass in an instance
|
63
|
+
provinst = provider.new(:name => "foo")
|
64
|
+
assert_nothing_raised("Could not pass in provider instance") do
|
65
|
+
resource = @type.create :name => "foo", :provider => provinst
|
66
|
+
end
|
67
|
+
|
68
|
+
assert_equal(provinst, resource.provider, "Did not retain provider instance")
|
69
|
+
assert_equal(provider.name, resource[:provider], "Provider value was set to the provider instead of its name")
|
70
|
+
|
71
|
+
# Now make sure unsuitable provider instances still throw errors
|
72
|
+
provider = @type.provide(:badprov) do
|
73
|
+
confine :exists => "/no/such/file"
|
74
|
+
end
|
75
|
+
|
76
|
+
inst = provider.new(:name => "bar")
|
77
|
+
assert_raise(Puppet::Error, "Did not fail on unsuitable provider instance") do
|
78
|
+
resource = @type.create :name => "bar", :provider => inst
|
79
|
+
end
|
80
|
+
|
81
|
+
# And make sure the provider must be a valid provider type for this resource
|
82
|
+
pkgprov = Puppet::Type.type(:package).create(:name => "yayness").provider
|
83
|
+
assert(provider, "did not get package provider")
|
84
|
+
|
85
|
+
assert_raise(Puppet::Error, "Did not fail on invalid provider instance") do
|
86
|
+
resource = @type.create :name => "bar", :provider => pkgprov
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
52
90
|
end
|
53
91
|
|
54
|
-
# $Id: provider.rb
|
92
|
+
# $Id: provider.rb 2552 2007-06-05 01:17:00Z luke $
|
data/test/ral/manager/type.rb
CHANGED
@@ -285,7 +285,7 @@ class TestType < Test::Unit::TestCase
|
|
285
285
|
def test_object_recursion
|
286
286
|
comp = Puppet.type(:component).create(:name => "top")
|
287
287
|
|
288
|
-
file = Puppet.type(:
|
288
|
+
file = Puppet.type(:component).create(:name => "middle")
|
289
289
|
|
290
290
|
assert_raise(Puppet::DevError) do
|
291
291
|
comp.push(comp)
|
@@ -414,6 +414,9 @@ end
|
|
414
414
|
def test_newproperty_options
|
415
415
|
# Create a type with a fake provider
|
416
416
|
providerclass = Class.new do
|
417
|
+
def self.supports_parameter?(prop)
|
418
|
+
return true
|
419
|
+
end
|
417
420
|
def method_missing(method, *args)
|
418
421
|
return method
|
419
422
|
end
|
@@ -441,7 +444,7 @@ end
|
|
441
444
|
# Now create an instance
|
442
445
|
obj = type.create(:name => :myobj)
|
443
446
|
|
444
|
-
inst = property.new(:
|
447
|
+
inst = property.new(:resource => obj)
|
445
448
|
|
446
449
|
# And make sure it's correctly setting @is
|
447
450
|
ret = nil
|
@@ -449,7 +452,7 @@ end
|
|
449
452
|
ret = inst.retrieve
|
450
453
|
}
|
451
454
|
|
452
|
-
assert_equal(:noopts, inst.
|
455
|
+
assert_equal(:noopts, inst.retrieve)
|
453
456
|
|
454
457
|
# Now create a property with a different way of doing it
|
455
458
|
property = nil
|
@@ -457,7 +460,7 @@ end
|
|
457
460
|
property = type.newproperty(:setretrieve, :retrieve => :yayness)
|
458
461
|
end
|
459
462
|
|
460
|
-
inst = property.new(:
|
463
|
+
inst = property.new(:resource => obj)
|
461
464
|
|
462
465
|
# And make sure it's correctly setting @is
|
463
466
|
ret = nil
|
@@ -465,7 +468,7 @@ end
|
|
465
468
|
ret = inst.retrieve
|
466
469
|
}
|
467
470
|
|
468
|
-
assert_equal(:yayness,
|
471
|
+
assert_equal(:yayness, ret)
|
469
472
|
end
|
470
473
|
|
471
474
|
def test_name_vs_title
|
@@ -834,4 +837,4 @@ end
|
|
834
837
|
end
|
835
838
|
end
|
836
839
|
|
837
|
-
# $Id: type.rb
|
840
|
+
# $Id: type.rb 2500 2007-05-09 22:05:32Z luke $
|
@@ -58,6 +58,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
58
58
|
files = Dir.glob("%s/crontab.*" % crondir)
|
59
59
|
|
60
60
|
setme
|
61
|
+
@provider.default_target = @me
|
61
62
|
target = @provider.target_object(@me)
|
62
63
|
files.each do |file|
|
63
64
|
str = args = nil
|
@@ -82,7 +83,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
82
83
|
end
|
83
84
|
target.write(str)
|
84
85
|
assert_nothing_raised("could not parse %s" % file) do
|
85
|
-
@provider.
|
86
|
+
@provider.prefetch
|
86
87
|
end
|
87
88
|
records = @provider.send(:instance_variable_get, "@records")
|
88
89
|
|
@@ -90,6 +91,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
90
91
|
# Make the values a bit more equal.
|
91
92
|
should[:target] = @me
|
92
93
|
should[:ensure] = :present
|
94
|
+
#should[:environment] ||= []
|
93
95
|
should[:on_disk] = true
|
94
96
|
is = sis.dup
|
95
97
|
sis.dup.each do |p,v|
|
@@ -150,7 +152,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
150
152
|
target = @provider.target_object(user)
|
151
153
|
target.write(str)
|
152
154
|
assert_nothing_raised {
|
153
|
-
@provider.
|
155
|
+
@provider.prefetch
|
154
156
|
}
|
155
157
|
|
156
158
|
assert_nothing_raised {
|
@@ -236,7 +238,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
236
238
|
assert_equal(str, target.read,
|
237
239
|
"Did not write correctly")
|
238
240
|
assert_nothing_raised("Could not prefetch with %s" % str.inspect) do
|
239
|
-
@provider.
|
241
|
+
@provider.prefetch
|
240
242
|
end
|
241
243
|
assert_nothing_raised("Could not flush with %s" % str.inspect) do
|
242
244
|
@provider.flush_target(@me)
|
@@ -269,7 +271,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
269
271
|
hash = @provider.parse_line(str)
|
270
272
|
hash[:user] = @me
|
271
273
|
|
272
|
-
instance = @provider.match(hash)
|
274
|
+
instance = @provider.match(hash, "yaycron" => cron)
|
273
275
|
assert(instance, "did not match cron")
|
274
276
|
assert_equal(cron, instance,
|
275
277
|
"Did not match cron job")
|
@@ -284,7 +286,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
284
286
|
target.write(text)
|
285
287
|
|
286
288
|
assert_nothing_raised("Could not parse %s" % file) do
|
287
|
-
@provider.
|
289
|
+
@provider.prefetch
|
288
290
|
end
|
289
291
|
# mark the provider modified
|
290
292
|
@provider.modified(@me)
|
@@ -324,7 +326,7 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
324
326
|
assert_equal(str, target.read,
|
325
327
|
"Did not write correctly")
|
326
328
|
assert_nothing_raised("Could not prefetch with %s" % str.inspect) do
|
327
|
-
@provider.
|
329
|
+
@provider.prefetch
|
328
330
|
end
|
329
331
|
records = @provider.send(:instance_variable_get, "@records")
|
330
332
|
records.each do |r|
|
@@ -341,6 +343,56 @@ class TestCronParsedProvider < Test::Unit::TestCase
|
|
341
343
|
@provider.clear
|
342
344
|
end
|
343
345
|
end
|
346
|
+
|
347
|
+
def test_prefetch
|
348
|
+
cron = @type.create :command => "/bin/echo yay", :name => "test", :hour => 4
|
349
|
+
|
350
|
+
assert_nothing_raised("Could not prefetch cron") do
|
351
|
+
cron.provider.class.prefetch("test" => cron)
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
# Testing #669.
|
356
|
+
def test_environment_settings
|
357
|
+
@provider.filetype = :ram
|
358
|
+
setme
|
359
|
+
|
360
|
+
target = @provider.target_object(@me)
|
361
|
+
|
362
|
+
# First with no env settings
|
363
|
+
cron = @type.create :command => "/bin/echo yay", :name => "test", :hour => 4
|
364
|
+
|
365
|
+
assert_apply(cron)
|
366
|
+
|
367
|
+
props = cron.retrieve.inject({}) { |hash, ary| hash[ary[0]] = ary[1]; hash }
|
368
|
+
|
369
|
+
# Now set the env
|
370
|
+
cron[:environment] = "TEST=foo"
|
371
|
+
assert_apply(cron)
|
372
|
+
|
373
|
+
props = cron.retrieve.inject({}) { |hash, ary| hash[ary[0]] = ary[1]; hash }
|
374
|
+
assert(target.read.include?("TEST=foo"), "Did not get environment setting")
|
375
|
+
#assert_equal(["TEST=foo"], props[:environment], "Did not get environment setting")
|
376
|
+
|
377
|
+
# Modify it
|
378
|
+
cron[:environment] = ["TEST=foo", "BLAH=yay"]
|
379
|
+
assert_apply(cron)
|
380
|
+
|
381
|
+
props = cron.retrieve.inject({}) { |hash, ary| hash[ary[0]] = ary[1]; hash }
|
382
|
+
assert(target.read.include?("TEST=foo"), "Did not keep environment setting")
|
383
|
+
assert(target.read.include?("BLAH=yay"), "Did not get second environment setting")
|
384
|
+
#assert_equal(["TEST=foo", "BLAH=yay"], props[:environment], "Did not modify environment setting")
|
385
|
+
|
386
|
+
# And remove it
|
387
|
+
cron[:environment] = :absent
|
388
|
+
assert_apply(cron)
|
389
|
+
|
390
|
+
props = cron.retrieve.inject({}) { |hash, ary| hash[ary[0]] = ary[1]; hash }
|
391
|
+
assert(! target.read.include?("TEST=foo"), "Did not remove environment setting")
|
392
|
+
assert(! target.read.include?("BLAH=yay"), "Did not remove second environment setting")
|
393
|
+
#assert_nil(props[:environment], "Did not modify environment setting")
|
394
|
+
|
395
|
+
end
|
344
396
|
end
|
345
397
|
|
346
|
-
# $Id: crontab.rb
|
398
|
+
# $Id: crontab.rb 2624 2007-06-19 01:49:19Z luke $
|