puppet 0.25.5 → 2.6.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 +667 -0
- data/LICENSE +2 -2
- data/README +5 -1
- data/README.queueing +1 -1
- data/README.rst +7 -4
- data/Rakefile +6 -18
- data/bin/filebucket +0 -94
- data/bin/pi +2 -47
- data/bin/puppet +2 -69
- data/bin/puppetca +2 -100
- data/bin/puppetd +2 -158
- data/bin/puppetdoc +2 -63
- data/bin/puppetmasterd +2 -64
- data/bin/puppetqd +2 -51
- data/bin/puppetrun +2 -127
- data/bin/ralsh +2 -87
- data/conf/epm.list +2 -2
- data/conf/osx/PackageInfo.plist +1 -1
- data/conf/redhat/client.init +11 -8
- data/conf/redhat/puppet.conf +1 -1
- data/conf/redhat/puppet.spec +1 -1
- data/conf/redhat/rundir-perms.patch +13 -13
- data/conf/redhat/server.init +11 -5
- data/conf/solaris/pkginfo +2 -2
- data/conf/solaris/smf/puppetd.xml +3 -3
- data/conf/solaris/smf/puppetmasterd.xml +3 -3
- data/conf/suse/client.init +3 -2
- data/conf/suse/puppet.spec +22 -18
- data/conf/suse/server.init +12 -11
- data/examples/modules/sample-module/README.txt +3 -3
- data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +4 -4
- data/ext/extlookup.rb +94 -96
- data/ext/nagios/check_puppet.rb +94 -88
- data/ext/nagios/naggen +3 -3
- data/ext/puppet-test +27 -3
- data/ext/puppetlisten/puppetlisten.rb +39 -39
- data/ext/puppetlisten/puppetrun.rb +6 -6
- data/ext/puppetstoredconfigclean.rb +49 -43
- data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
- data/ext/regexp_nodes/regexp_nodes.rb +133 -133
- data/ext/yaml_nodes.rb +99 -0
- data/install.rb +109 -118
- data/lib/puppet.rb +118 -131
- data/lib/puppet/agent.rb +86 -119
- data/lib/puppet/agent/locker.rb +28 -30
- data/lib/puppet/application.rb +276 -184
- data/lib/puppet/application/agent.rb +266 -0
- data/lib/puppet/application/apply.rb +165 -0
- data/lib/puppet/application/cert.rb +85 -0
- data/lib/puppet/application/describe.rb +203 -0
- data/lib/puppet/application/doc.rb +215 -0
- data/lib/puppet/application/filebucket.rb +73 -73
- data/lib/puppet/application/kick.rb +212 -0
- data/lib/puppet/application/master.rb +156 -0
- data/lib/puppet/application/queue.rb +91 -0
- data/lib/puppet/application/resource.rb +118 -0
- data/lib/puppet/configurer.rb +214 -197
- data/lib/puppet/configurer/downloader.rb +63 -63
- data/lib/puppet/configurer/fact_handler.rb +51 -51
- data/lib/puppet/configurer/plugin_handler.rb +19 -19
- data/lib/puppet/daemon.rb +100 -103
- data/lib/puppet/defaults.rb +793 -796
- data/lib/puppet/dsl.rb +5 -269
- data/lib/puppet/dsl/resource_api.rb +120 -0
- data/lib/puppet/dsl/resource_type_api.rb +40 -0
- data/lib/puppet/error.rb +34 -36
- data/lib/puppet/external/base64.rb +8 -8
- data/lib/puppet/external/dot.rb +262 -262
- data/lib/puppet/external/event-loop/better-definers.rb +297 -297
- data/lib/puppet/external/event-loop/event-loop.rb +264 -272
- data/lib/puppet/external/event-loop/signal-system.rb +161 -163
- data/lib/puppet/external/lock.rb +41 -41
- data/lib/puppet/external/nagios.rb +32 -32
- data/lib/puppet/external/nagios/base.rb +453 -458
- data/lib/puppet/external/nagios/parser.rb +264 -287
- data/lib/puppet/external/pson/common.rb +8 -5
- data/lib/puppet/external/pson/pure/generator.rb +26 -26
- data/lib/puppet/external/pson/pure/parser.rb +43 -48
- data/lib/puppet/feature/base.rb +21 -1
- data/lib/puppet/feature/pson.rb +4 -4
- data/lib/puppet/feature/rack.rb +14 -14
- data/lib/puppet/feature/rails.rb +23 -25
- data/lib/puppet/file_bucket.rb +4 -0
- data/lib/puppet/file_bucket/dipper.rb +99 -0
- data/lib/puppet/file_bucket/file.rb +136 -0
- data/lib/puppet/file_bucket/file/indirection_hooks.rb +9 -0
- data/lib/puppet/file_collection.rb +20 -20
- data/lib/puppet/file_collection/lookup.rb +11 -11
- data/lib/puppet/file_serving/base.rb +67 -71
- data/lib/puppet/file_serving/configuration.rb +84 -86
- data/lib/puppet/file_serving/configuration/parser.rb +103 -102
- data/lib/puppet/file_serving/content.rb +34 -33
- data/lib/puppet/file_serving/fileset.rb +131 -133
- data/lib/puppet/file_serving/indirection_hooks.rb +17 -17
- data/lib/puppet/file_serving/metadata.rb +98 -95
- data/lib/puppet/file_serving/mount.rb +22 -22
- data/lib/puppet/file_serving/mount/file.rb +101 -106
- data/lib/puppet/file_serving/mount/modules.rb +15 -15
- data/lib/puppet/file_serving/mount/plugins.rb +15 -16
- data/lib/puppet/file_serving/terminus_helper.rb +13 -13
- data/lib/puppet/indirector.rb +48 -49
- data/lib/puppet/indirector/active_record.rb +19 -19
- data/lib/puppet/indirector/catalog/active_record.rb +25 -25
- data/lib/puppet/indirector/catalog/compiler.rb +134 -145
- data/lib/puppet/indirector/catalog/rest.rb +1 -1
- data/lib/puppet/indirector/catalog/yaml.rb +13 -13
- data/lib/puppet/indirector/certificate/ca.rb +3 -3
- data/lib/puppet/indirector/certificate/file.rb +3 -3
- data/lib/puppet/indirector/certificate/rest.rb +8 -8
- data/lib/puppet/indirector/certificate_request/ca.rb +7 -7
- data/lib/puppet/indirector/certificate_request/file.rb +2 -2
- data/lib/puppet/indirector/certificate_request/rest.rb +3 -3
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +2 -2
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +2 -2
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +3 -3
- data/lib/puppet/indirector/couch.rb +76 -0
- data/lib/puppet/indirector/direct_file_server.rb +11 -11
- data/lib/puppet/indirector/envelope.rb +4 -4
- data/lib/puppet/indirector/exec.rb +38 -42
- data/lib/puppet/indirector/facts/active_record.rb +24 -24
- data/lib/puppet/indirector/facts/couch.rb +31 -0
- data/lib/puppet/indirector/facts/facter.rb +63 -61
- data/lib/puppet/indirector/facts/memory.rb +4 -4
- data/lib/puppet/indirector/facts/rest.rb +1 -1
- data/lib/puppet/indirector/facts/yaml.rb +2 -2
- data/lib/puppet/indirector/file.rb +67 -46
- data/lib/puppet/indirector/file_bucket_file/file.rb +146 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
- data/lib/puppet/indirector/file_content/file.rb +1 -1
- data/lib/puppet/indirector/file_content/file_server.rb +1 -1
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/file.rb +11 -11
- data/lib/puppet/indirector/file_metadata/file_server.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +44 -44
- data/lib/puppet/indirector/indirection.rb +249 -260
- data/lib/puppet/indirector/key/ca.rb +5 -5
- data/lib/puppet/indirector/key/file.rb +29 -29
- data/lib/puppet/indirector/ldap.rb +62 -64
- data/lib/puppet/indirector/memory.rb +13 -13
- data/lib/puppet/indirector/node/active_record.rb +6 -6
- data/lib/puppet/indirector/node/exec.rb +40 -44
- data/lib/puppet/indirector/node/ldap.rb +246 -212
- data/lib/puppet/indirector/node/memory.rb +5 -5
- data/lib/puppet/indirector/node/plain.rb +12 -12
- data/lib/puppet/indirector/node/rest.rb +2 -2
- data/lib/puppet/indirector/node/yaml.rb +2 -2
- data/lib/puppet/indirector/plain.rb +4 -4
- data/lib/puppet/indirector/queue.rb +49 -51
- data/lib/puppet/indirector/report/processor.rb +34 -37
- data/lib/puppet/indirector/report/rest.rb +3 -3
- data/lib/puppet/indirector/request.rb +171 -157
- data/lib/puppet/indirector/resource/ral.rb +48 -0
- data/lib/puppet/indirector/resource/rest.rb +5 -0
- data/lib/puppet/indirector/resource_type.rb +5 -0
- data/lib/puppet/indirector/resource_type/parser.rb +27 -0
- data/lib/puppet/indirector/resource_type/rest.rb +7 -0
- data/lib/puppet/indirector/rest.rb +83 -79
- data/lib/puppet/indirector/run/local.rb +8 -0
- data/lib/puppet/indirector/run/rest.rb +6 -0
- data/lib/puppet/indirector/ssl_file.rb +165 -165
- data/lib/puppet/indirector/status.rb +3 -0
- data/lib/puppet/indirector/status/local.rb +7 -0
- data/lib/puppet/indirector/status/rest.rb +5 -0
- data/lib/puppet/indirector/terminus.rb +129 -133
- data/lib/puppet/indirector/yaml.rb +47 -49
- data/lib/puppet/metatype/manager.rb +120 -114
- data/lib/puppet/module.rb +182 -124
- data/lib/puppet/network/authconfig.rb +146 -156
- data/lib/puppet/network/authorization.rb +63 -70
- data/lib/puppet/network/authstore.rb +226 -232
- data/lib/puppet/network/client.rb +141 -152
- data/lib/puppet/network/client/ca.rb +47 -49
- data/lib/puppet/network/client/file.rb +3 -3
- data/lib/puppet/network/client/proxy.rb +19 -19
- data/lib/puppet/network/client/report.rb +17 -21
- data/lib/puppet/network/client/runner.rb +5 -7
- data/lib/puppet/network/client/status.rb +1 -1
- data/lib/puppet/network/client_request.rb +20 -22
- data/lib/puppet/network/format.rb +79 -81
- data/lib/puppet/network/format_handler.rb +135 -130
- data/lib/puppet/network/formats.rb +128 -154
- data/lib/puppet/network/handler.rb +43 -46
- data/lib/puppet/network/handler/ca.rb +129 -135
- data/lib/puppet/network/handler/filebucket.rb +39 -170
- data/lib/puppet/network/handler/fileserver.rb +624 -656
- data/lib/puppet/network/handler/master.rb +62 -75
- data/lib/puppet/network/handler/report.rb +60 -67
- data/lib/puppet/network/handler/runner.rb +20 -20
- data/lib/puppet/network/handler/status.rb +9 -9
- data/lib/puppet/network/http.rb +12 -12
- data/lib/puppet/network/http/api/v1.rb +49 -44
- data/lib/puppet/network/http/compression.rb +111 -0
- data/lib/puppet/network/http/handler.rb +183 -183
- data/lib/puppet/network/http/mongrel.rb +46 -48
- data/lib/puppet/network/http/mongrel/rest.rb +73 -66
- data/lib/puppet/network/http/rack.rb +45 -45
- data/lib/puppet/network/http/rack/httphandler.rb +7 -7
- data/lib/puppet/network/http/rack/rest.rb +84 -61
- data/lib/puppet/network/http/rack/xmlrpc.rb +49 -49
- data/lib/puppet/network/http/webrick.rb +108 -112
- data/lib/puppet/network/http/webrick/rest.rb +60 -57
- data/lib/puppet/network/http_pool.rb +95 -83
- data/lib/puppet/network/http_server/mongrel.rb +90 -90
- data/lib/puppet/network/http_server/webrick.rb +139 -148
- data/lib/puppet/network/rest_authconfig.rb +76 -71
- data/lib/puppet/network/rest_authorization.rb +11 -13
- data/lib/puppet/network/rights.rb +217 -226
- data/lib/puppet/network/server.rb +147 -151
- data/lib/puppet/network/xmlrpc/client.rb +197 -205
- data/lib/puppet/network/xmlrpc/processor.rb +68 -72
- data/lib/puppet/network/xmlrpc/server.rb +10 -10
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +94 -100
- data/lib/puppet/node.rb +99 -107
- data/lib/puppet/node/environment.rb +109 -62
- data/lib/puppet/node/facts.rb +48 -43
- data/lib/puppet/parameter.rb +246 -498
- data/lib/puppet/parameter/value.rb +63 -0
- data/lib/puppet/parameter/value_collection.rb +143 -0
- data/lib/puppet/parser.rb +4 -0
- data/lib/puppet/parser/ast.rb +81 -67
- data/lib/puppet/parser/ast/arithmetic_operator.rb +27 -29
- data/lib/puppet/parser/ast/astarray.rb +50 -50
- data/lib/puppet/parser/ast/asthash.rb +37 -0
- data/lib/puppet/parser/ast/boolean_operator.rb +33 -35
- data/lib/puppet/parser/ast/branch.rb +29 -31
- data/lib/puppet/parser/ast/caseopt.rb +50 -56
- data/lib/puppet/parser/ast/casestatement.rb +30 -30
- data/lib/puppet/parser/ast/collection.rb +43 -37
- data/lib/puppet/parser/ast/collexpr.rb +66 -69
- data/lib/puppet/parser/ast/comparison_operator.rb +32 -35
- data/lib/puppet/parser/ast/else.rb +13 -13
- data/lib/puppet/parser/ast/function.rb +34 -43
- data/lib/puppet/parser/ast/ifstatement.rb +23 -27
- data/lib/puppet/parser/ast/in_operator.rb +24 -0
- data/lib/puppet/parser/ast/leaf.rb +173 -156
- data/lib/puppet/parser/ast/match_operator.rb +16 -19
- data/lib/puppet/parser/ast/minus.rb +13 -13
- data/lib/puppet/parser/ast/nop.rb +6 -6
- data/lib/puppet/parser/ast/not.rb +9 -9
- data/lib/puppet/parser/ast/relationship.rb +60 -0
- data/lib/puppet/parser/ast/resource.rb +58 -57
- data/lib/puppet/parser/ast/resource_defaults.rb +16 -16
- data/lib/puppet/parser/ast/resource_override.rb +51 -51
- data/lib/puppet/parser/ast/resource_reference.rb +17 -72
- data/lib/puppet/parser/ast/resourceparam.rb +20 -17
- data/lib/puppet/parser/ast/selector.rb +30 -34
- data/lib/puppet/parser/ast/tag.rb +16 -16
- data/lib/puppet/parser/ast/vardef.rb +20 -16
- data/lib/puppet/parser/collector.rb +181 -189
- data/lib/puppet/parser/compiler.rb +395 -364
- data/lib/puppet/parser/files.rb +65 -69
- data/lib/puppet/parser/functions.rb +85 -97
- data/lib/puppet/parser/functions/defined.rb +23 -23
- data/lib/puppet/parser/functions/fail.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +21 -19
- data/lib/puppet/parser/functions/fqdn_rand.rb +7 -7
- data/lib/puppet/parser/functions/generate.rb +24 -26
- data/lib/puppet/parser/functions/include.rb +16 -18
- data/lib/puppet/parser/functions/inline_template.rb +16 -17
- data/lib/puppet/parser/functions/realize.rb +8 -8
- data/lib/puppet/parser/functions/regsubst.rb +74 -59
- data/lib/puppet/parser/functions/require.rb +35 -33
- data/lib/puppet/parser/functions/search.rb +5 -5
- data/lib/puppet/parser/functions/sha1.rb +3 -4
- data/lib/puppet/parser/functions/shellquote.rb +31 -33
- data/lib/puppet/parser/functions/split.rb +8 -8
- data/lib/puppet/parser/functions/sprintf.rb +10 -9
- data/lib/puppet/parser/functions/tag.rb +3 -3
- data/lib/puppet/parser/functions/tagged.rb +13 -13
- data/lib/puppet/parser/functions/template.rb +18 -19
- data/lib/puppet/parser/functions/versioncmp.rb +17 -14
- data/lib/puppet/parser/grammar.ra +485 -422
- data/lib/puppet/parser/lexer.rb +500 -442
- data/lib/puppet/parser/parser.rb +1438 -1084
- data/lib/puppet/parser/parser_support.rb +227 -502
- data/lib/puppet/parser/relationship.rb +43 -0
- data/lib/puppet/parser/resource.rb +280 -375
- data/lib/puppet/parser/resource/param.rb +18 -18
- data/lib/puppet/parser/scope.rb +450 -447
- data/lib/puppet/parser/templatewrapper.rb +92 -94
- data/lib/puppet/parser/type_loader.rb +146 -0
- data/lib/puppet/parser/yaml_trimmer.rb +6 -8
- data/lib/puppet/property.rb +290 -453
- data/lib/puppet/property/ensure.rb +92 -0
- data/lib/puppet/property/keyvalue.rb +74 -82
- data/lib/puppet/property/list.rb +71 -81
- data/lib/puppet/property/ordered_list.rb +15 -15
- data/lib/puppet/provider.rb +229 -241
- data/lib/puppet/provider/augeas/augeas.rb +318 -320
- data/lib/puppet/provider/computer/computer.rb +13 -13
- data/lib/puppet/provider/confine.rb +63 -63
- data/lib/puppet/provider/confine/exists.rb +14 -14
- data/lib/puppet/provider/confine/false.rb +12 -12
- data/lib/puppet/provider/confine/feature.rb +10 -10
- data/lib/puppet/provider/confine/true.rb +13 -13
- data/lib/puppet/provider/confine/variable.rb +51 -54
- data/lib/puppet/provider/confine_collection.rb +38 -38
- data/lib/puppet/provider/confiner.rb +10 -14
- data/lib/puppet/provider/cron/crontab.rb +172 -173
- data/lib/puppet/provider/file/posix.rb +99 -0
- data/lib/puppet/provider/file/win32.rb +74 -0
- data/lib/puppet/provider/group/directoryservice.rb +6 -6
- data/lib/puppet/provider/group/groupadd.rb +18 -20
- data/lib/puppet/provider/group/ldap.rb +40 -43
- data/lib/puppet/provider/group/pw.rb +23 -23
- data/lib/puppet/provider/host/parsed.rb +51 -50
- data/lib/puppet/provider/ldap.rb +121 -123
- data/lib/puppet/provider/macauthorization/macauthorization.rb +263 -272
- data/lib/puppet/provider/mailalias/aliases.rb +34 -31
- data/lib/puppet/provider/maillist/mailman.rb +87 -93
- data/lib/puppet/provider/mcx/mcxcontent.rb +155 -151
- data/lib/puppet/provider/mount.rb +36 -40
- data/lib/puppet/provider/mount/parsed.rb +28 -26
- data/lib/puppet/provider/naginator.rb +46 -48
- data/lib/puppet/provider/nameservice.rb +215 -257
- data/lib/puppet/provider/nameservice/directoryservice.rb +455 -471
- data/lib/puppet/provider/nameservice/objectadd.rb +21 -21
- data/lib/puppet/provider/nameservice/pw.rb +13 -13
- data/lib/puppet/provider/package.rb +18 -20
- data/lib/puppet/provider/package/aix.rb +128 -0
- data/lib/puppet/provider/package/appdmg.rb +78 -82
- data/lib/puppet/provider/package/apple.rb +39 -40
- data/lib/puppet/provider/package/apt.rb +95 -104
- data/lib/puppet/provider/package/aptitude.rb +19 -21
- data/lib/puppet/provider/package/aptrpm.rb +70 -72
- data/lib/puppet/provider/package/blastwave.rb +88 -94
- data/lib/puppet/provider/package/darwinport.rb +67 -69
- data/lib/puppet/provider/package/dpkg.rb +123 -97
- data/lib/puppet/provider/package/fink.rb +66 -68
- data/lib/puppet/provider/package/freebsd.rb +38 -40
- data/lib/puppet/provider/package/gem.rb +98 -102
- data/lib/puppet/provider/package/hpux.rb +37 -39
- data/lib/puppet/provider/package/nim.rb +35 -0
- data/lib/puppet/provider/package/openbsd.rb +100 -75
- data/lib/puppet/provider/package/pkg.rb +108 -0
- data/lib/puppet/provider/package/pkgdmg.rb +95 -87
- data/lib/puppet/provider/package/portage.rb +101 -104
- data/lib/puppet/provider/package/ports.rb +71 -73
- data/lib/puppet/provider/package/portupgrade.rb +251 -0
- data/lib/puppet/provider/package/rpm.rb +113 -115
- data/lib/puppet/provider/package/rug.rb +46 -46
- data/lib/puppet/provider/package/sun.rb +135 -151
- data/lib/puppet/provider/package/sunfreeware.rb +5 -5
- data/lib/puppet/provider/package/up2date.rb +31 -31
- data/lib/puppet/provider/package/urpmi.rb +51 -51
- data/lib/puppet/provider/package/yum.rb +90 -98
- data/lib/puppet/provider/package/zypper.rb +52 -0
- data/lib/puppet/provider/parsedfile.rb +306 -329
- data/lib/puppet/provider/port/parsed.rb +5 -5
- data/lib/puppet/provider/selboolean/getsetsebool.rb +34 -34
- data/lib/puppet/provider/selmodule/semodule.rb +103 -111
- data/lib/puppet/provider/service/base.rb +134 -139
- data/lib/puppet/provider/service/bsd.rb +48 -0
- data/lib/puppet/provider/service/daemontools.rb +158 -162
- data/lib/puppet/provider/service/debian.rb +36 -36
- data/lib/puppet/provider/service/freebsd.rb +118 -38
- data/lib/puppet/provider/service/gentoo.rb +33 -39
- data/lib/puppet/provider/service/init.rb +125 -125
- data/lib/puppet/provider/service/launchd.rb +234 -254
- data/lib/puppet/provider/service/redhat.rb +58 -58
- data/lib/puppet/provider/service/runit.rb +74 -74
- data/lib/puppet/provider/service/smf.rb +81 -85
- data/lib/puppet/provider/service/src.rb +87 -0
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +73 -81
- data/lib/puppet/provider/sshkey/parsed.rb +24 -21
- data/lib/puppet/provider/user/directoryservice.rb +71 -71
- data/lib/puppet/provider/user/hpux.rb +20 -20
- data/lib/puppet/provider/user/ldap.rb +106 -110
- data/lib/puppet/provider/user/pw.rb +33 -37
- data/lib/puppet/provider/user/user_role_add.rb +168 -183
- data/lib/puppet/provider/user/useradd.rb +50 -51
- data/lib/puppet/provider/zfs/solaris.rb +35 -35
- data/lib/puppet/provider/zone/solaris.rb +206 -205
- data/lib/puppet/provider/zpool/solaris.rb +95 -97
- data/lib/puppet/rails.rb +115 -122
- data/lib/puppet/rails/benchmark.rb +43 -49
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +8 -12
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +8 -12
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +6 -10
- data/lib/puppet/rails/database/schema.rb +100 -97
- data/lib/puppet/rails/fact_name.rb +1 -1
- data/lib/puppet/rails/fact_value.rb +5 -5
- data/lib/puppet/rails/host.rb +252 -249
- data/lib/puppet/rails/param_name.rb +15 -15
- data/lib/puppet/rails/param_value.rb +55 -55
- data/lib/puppet/rails/puppet_tag.rb +4 -4
- data/lib/puppet/rails/resource.rb +189 -203
- data/lib/puppet/rails/resource_tag.rb +19 -19
- data/lib/puppet/rails/source_file.rb +5 -5
- data/lib/puppet/reference/configuration.rb +53 -56
- data/lib/puppet/reference/function.rb +1 -1
- data/lib/puppet/reference/indirection.rb +13 -13
- data/lib/puppet/reference/metaparameter.rb +40 -40
- data/lib/puppet/reference/network.rb +16 -16
- data/lib/puppet/reference/providers.rb +97 -98
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/reference/type.rb +67 -70
- data/lib/puppet/relationship.rb +65 -67
- data/lib/puppet/reports.rb +32 -34
- data/lib/puppet/reports/http.rb +22 -0
- data/lib/puppet/reports/log.rb +7 -6
- data/lib/puppet/reports/rrdgraph.rb +105 -114
- data/lib/puppet/reports/store.rb +53 -56
- data/lib/puppet/reports/tagmail.rb +149 -157
- data/lib/puppet/resource.rb +428 -194
- data/lib/puppet/resource/catalog.rb +496 -512
- data/lib/puppet/resource/status.rb +58 -0
- data/lib/puppet/resource/type.rb +311 -0
- data/lib/puppet/resource/type_collection.rb +217 -0
- data/lib/puppet/resource/type_collection_helper.rb +7 -0
- data/lib/puppet/run.rb +77 -0
- data/lib/puppet/simple_graph.rb +381 -413
- data/lib/puppet/ssl.rb +2 -1
- data/lib/puppet/ssl/base.rb +60 -43
- data/lib/puppet/ssl/certificate.rb +21 -21
- data/lib/puppet/ssl/certificate_authority.rb +215 -229
- data/lib/puppet/ssl/certificate_authority/interface.rb +84 -68
- data/lib/puppet/ssl/certificate_factory.rb +119 -119
- data/lib/puppet/ssl/certificate_request.rb +52 -45
- data/lib/puppet/ssl/certificate_revocation_list.rb +78 -78
- data/lib/puppet/ssl/host.rb +230 -228
- data/lib/puppet/ssl/inventory.rb +33 -33
- data/lib/puppet/ssl/key.rb +37 -37
- data/lib/puppet/sslcertificates.rb +124 -123
- data/lib/puppet/sslcertificates/ca.rb +327 -344
- data/lib/puppet/sslcertificates/certificate.rb +197 -224
- data/lib/puppet/sslcertificates/inventory.rb +27 -29
- data/lib/puppet/sslcertificates/support.rb +113 -119
- data/lib/puppet/status.rb +28 -0
- data/lib/puppet/transaction.rb +349 -696
- data/lib/puppet/transaction/change.rb +80 -85
- data/lib/puppet/transaction/event.rb +54 -14
- data/lib/puppet/transaction/event_manager.rb +99 -0
- data/lib/puppet/transaction/report.rb +121 -59
- data/lib/puppet/transaction/resource_harness.rb +150 -0
- data/lib/puppet/transportable.rb +215 -226
- data/lib/puppet/type.rb +1644 -1849
- data/lib/puppet/type/augeas.rb +153 -134
- data/lib/puppet/type/component.rb +63 -65
- data/lib/puppet/type/computer.rb +44 -44
- data/lib/puppet/type/cron.rb +364 -384
- data/lib/puppet/type/exec.rb +583 -521
- data/lib/puppet/type/file.rb +786 -823
- data/lib/puppet/type/file/checksum.rb +23 -240
- data/lib/puppet/type/file/content.rb +193 -129
- data/lib/puppet/type/file/ensure.rb +149 -153
- data/lib/puppet/type/file/group.rb +94 -104
- data/lib/puppet/type/file/mode.rb +109 -122
- data/lib/puppet/type/file/owner.rb +39 -131
- data/lib/puppet/type/file/selcontext.rb +69 -73
- data/lib/puppet/type/file/source.rb +165 -153
- data/lib/puppet/type/file/target.rb +56 -60
- data/lib/puppet/type/file/type.rb +18 -18
- data/lib/puppet/type/filebucket.rb +91 -92
- data/lib/puppet/type/group.rb +77 -82
- data/lib/puppet/type/host.rb +85 -85
- data/lib/puppet/type/k5login.rb +65 -65
- data/lib/puppet/type/macauthorization.rb +141 -143
- data/lib/puppet/type/mailalias.rb +37 -37
- data/lib/puppet/type/maillist.rb +51 -51
- data/lib/puppet/type/mcx.rb +62 -62
- data/lib/puppet/type/mount.rb +199 -193
- data/lib/puppet/type/notify.rb +33 -33
- data/lib/puppet/type/package.rb +301 -298
- data/lib/puppet/type/port.rb +4 -4
- data/lib/puppet/type/resources.rb +107 -123
- data/lib/puppet/type/schedule.rb +317 -326
- data/lib/puppet/type/selboolean.rb +19 -19
- data/lib/puppet/type/selmodule.rb +34 -34
- data/lib/puppet/type/service.rb +152 -152
- data/lib/puppet/type/ssh_authorized_key.rb +74 -78
- data/lib/puppet/type/sshkey.rb +52 -56
- data/lib/puppet/type/stage.rb +18 -0
- data/lib/puppet/type/tidy.rb +289 -300
- data/lib/puppet/type/user.rb +300 -312
- data/lib/puppet/type/yumrepo.rb +300 -335
- data/lib/puppet/type/zfs.rb +36 -36
- data/lib/puppet/type/zone.rb +376 -347
- data/lib/puppet/type/zpool.rb +71 -77
- data/lib/puppet/util.rb +383 -387
- data/lib/puppet/util/autoload.rb +125 -143
- data/lib/puppet/util/autoload/file_cache.rb +78 -101
- data/lib/puppet/util/backups.rb +66 -66
- data/lib/puppet/util/cacher.rb +112 -120
- data/lib/puppet/util/checksums.rb +119 -84
- data/lib/puppet/util/classgen.rb +157 -167
- data/lib/puppet/util/command_line.rb +95 -0
- data/lib/puppet/util/command_line/filebucket +97 -0
- data/lib/puppet/util/command_line/pi +48 -0
- data/lib/puppet/util/command_line/puppet +69 -0
- data/lib/puppet/util/command_line/puppetca +110 -0
- data/lib/puppet/util/command_line/puppetd +186 -0
- data/lib/puppet/util/command_line/puppetdoc +67 -0
- data/lib/puppet/util/command_line/puppetmasterd +65 -0
- data/lib/puppet/util/command_line/puppetqd +53 -0
- data/lib/puppet/util/command_line/puppetrun +128 -0
- data/lib/puppet/util/command_line/ralsh +89 -0
- data/lib/puppet/util/constant_inflector.rb +7 -7
- data/lib/puppet/util/diff.rb +59 -56
- data/lib/puppet/util/docs.rb +97 -99
- data/lib/puppet/util/errors.rb +53 -44
- data/lib/puppet/util/execution.rb +15 -15
- data/lib/puppet/util/feature.rb +62 -72
- data/lib/puppet/util/file_locking.rb +33 -33
- data/lib/puppet/util/fileparsing.rb +292 -318
- data/lib/puppet/util/filetype.rb +246 -263
- data/lib/puppet/util/graph.rb +16 -18
- data/lib/puppet/util/inifile.rb +170 -184
- data/lib/puppet/util/inline_docs.rb +26 -0
- data/lib/puppet/util/instance_loader.rb +58 -58
- data/lib/puppet/util/ldap/connection.rb +57 -59
- data/lib/puppet/util/ldap/generator.rb +31 -31
- data/lib/puppet/util/ldap/manager.rb +233 -235
- data/lib/puppet/util/loadedfile.rb +49 -51
- data/lib/puppet/util/log.rb +210 -494
- data/lib/puppet/util/log/destination.rb +49 -0
- data/lib/puppet/util/log/destinations.rb +217 -0
- data/lib/puppet/util/log_paths.rb +15 -17
- data/lib/puppet/util/logging.rb +34 -13
- data/lib/puppet/util/metaid.rb +15 -15
- data/lib/puppet/util/methodhelper.rb +24 -26
- data/lib/puppet/util/metric.rb +123 -125
- data/lib/puppet/util/monkey_patches.rb +21 -20
- data/lib/puppet/util/nagios_maker.rb +41 -41
- data/lib/puppet/util/package.rb +24 -26
- data/lib/puppet/util/pidlock.rb +49 -49
- data/lib/puppet/util/posix.rb +115 -115
- data/lib/puppet/util/provider_features.rb +147 -155
- data/lib/puppet/util/pson.rb +5 -5
- data/lib/puppet/util/queue.rb +55 -55
- data/lib/puppet/util/queue/stomp.rb +27 -27
- data/lib/puppet/util/rails/cache_accumulator.rb +49 -49
- data/lib/puppet/util/rails/collection_merger.rb +13 -13
- data/lib/puppet/util/rails/reference_serializer.rb +26 -26
- data/lib/puppet/util/rdoc.rb +77 -74
- data/lib/puppet/util/rdoc/code_objects.rb +235 -217
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +732 -676
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +38 -12
- data/lib/puppet/util/rdoc/parser.rb +418 -392
- data/lib/puppet/util/reference.rb +168 -174
- data/lib/puppet/util/resource_template.rb +17 -17
- data/lib/puppet/util/run_mode.rb +81 -0
- data/lib/puppet/util/selinux.rb +184 -200
- data/lib/puppet/util/settings.rb +886 -919
- data/lib/puppet/util/settings/boolean_setting.rb +20 -23
- data/lib/puppet/util/settings/file_setting.rb +98 -99
- data/lib/puppet/util/settings/setting.rb +71 -87
- data/lib/puppet/util/storage.rb +73 -84
- data/lib/puppet/util/subclass_loader.rb +59 -66
- data/lib/puppet/util/suidmanager.rb +87 -84
- data/lib/puppet/util/tagging.rb +37 -39
- data/lib/puppet/util/user_attr.rb +14 -14
- data/lib/puppet/util/warnings.rb +20 -20
- data/lib/puppet/util/zaml.rb +242 -241
- data/man/man5/puppet.conf.5 +148 -76
- data/man/man8/filebucket.8 +6 -6
- data/man/man8/pi.8 +5 -5
- data/man/man8/puppet.8 +2 -73
- data/man/man8/puppetca.8 +47 -32
- data/man/man8/puppetd.8 +118 -76
- data/man/man8/puppetdoc.8 +16 -12
- data/man/man8/puppetmasterd.8 +4 -4
- data/man/man8/puppetqd.8 +4 -4
- data/man/man8/puppetrun.8 +23 -22
- data/man/man8/ralsh.8 +16 -17
- data/spec/fixtures/yaml/test.local.yaml +16 -0
- data/spec/integration/application/apply_spec.rb +33 -0
- data/spec/integration/configurer_spec.rb +35 -0
- data/spec/integration/defaults_spec.rb +258 -0
- data/spec/integration/file_serving/content_spec.rb +20 -0
- data/spec/integration/file_serving/fileset_spec.rb +14 -0
- data/spec/integration/file_serving/metadata_spec.rb +21 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +22 -0
- data/spec/integration/indirector/bucket_file/rest_spec.rb +68 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +68 -0
- data/spec/integration/indirector/catalog/queue_spec.rb +61 -0
- data/spec/integration/indirector/certificate/rest_spec.rb +68 -0
- data/spec/integration/indirector/certificate_request/rest_spec.rb +88 -0
- data/spec/integration/indirector/certificate_revocation_list/rest_spec.rb +76 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +73 -0
- data/spec/integration/indirector/file_content/file_server_spec.rb +94 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +18 -0
- data/spec/integration/indirector/node/ldap_spec.rb +15 -0
- data/spec/integration/indirector/report/rest_spec.rb +96 -0
- data/spec/integration/indirector/rest_spec.rb +524 -0
- data/spec/integration/network/client_spec.rb +19 -0
- data/spec/integration/network/formats_spec.rb +110 -0
- data/spec/integration/network/handler_spec.rb +25 -0
- data/spec/integration/network/server/mongrel_spec.rb +66 -0
- data/spec/integration/network/server/webrick_spec.rb +85 -0
- data/spec/integration/node/environment_spec.rb +58 -0
- data/spec/integration/node/facts_spec.rb +47 -0
- data/spec/integration/node_spec.rb +93 -0
- data/spec/integration/parser/collector_spec.rb +38 -0
- data/spec/integration/parser/compiler_spec.rb +29 -0
- data/spec/integration/parser/functions/require_spec.rb +44 -0
- data/spec/integration/parser/parser_spec.rb +113 -0
- data/spec/integration/provider/mailalias/aliases_spec.rb +25 -0
- data/spec/integration/provider/package_spec.rb +26 -0
- data/spec/integration/provider/service/init_spec.rb +32 -0
- data/spec/integration/reference/providers_spec.rb +17 -0
- data/spec/integration/reports_spec.rb +18 -0
- data/spec/integration/resource/catalog_spec.rb +61 -0
- data/spec/integration/resource/type_collection_spec.rb +96 -0
- data/spec/integration/ssl/certificate_authority_spec.rb +135 -0
- data/spec/integration/ssl/certificate_request_spec.rb +61 -0
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +42 -0
- data/spec/integration/ssl/host_spec.rb +90 -0
- data/spec/integration/transaction/report_spec.rb +29 -0
- data/spec/integration/transaction_spec.rb +284 -0
- data/spec/integration/type/file_spec.rb +506 -0
- data/spec/integration/type/package_spec.rb +25 -0
- data/spec/integration/type/tidy_spec.rb +32 -0
- data/spec/integration/type_spec.rb +22 -0
- data/spec/integration/util/autoload_spec.rb +114 -0
- data/spec/integration/util/feature_spec.rb +54 -0
- data/spec/integration/util/file_locking_spec.rb +37 -0
- data/spec/integration/util/rdoc/parser_spec.rb +59 -0
- data/spec/integration/util/settings_spec.rb +30 -0
- data/spec/lib/puppet_spec/files.rb +16 -6
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +27 -27
- data/spec/monkey_patches/alias_should_to_must.rb +4 -4
- data/spec/shared_behaviours/file_server_terminus.rb +28 -28
- data/spec/shared_behaviours/file_serving.rb +53 -53
- data/spec/shared_behaviours/memory_terminus.rb +22 -22
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +61 -18
- data/spec/spec_specs/runnable_spec.rb +95 -0
- data/spec/unit/agent/locker_spec.rb +100 -0
- data/spec/unit/agent_spec.rb +281 -0
- data/spec/unit/application/agent_spec.rb +588 -0
- data/spec/unit/application/apply_spec.rb +387 -0
- data/spec/unit/application/cert_spec.rb +194 -0
- data/spec/unit/application/describe_spec.rb +84 -0
- data/spec/unit/application/doc_spec.rb +368 -0
- data/spec/unit/application/filebucket_spec.rb +223 -0
- data/spec/unit/application/kick_spec.rb +313 -0
- data/spec/unit/application/master_spec.rb +453 -0
- data/spec/unit/application/queue_spec.rb +186 -0
- data/spec/unit/application/resource_spec.rb +233 -0
- data/spec/unit/application_spec.rb +531 -0
- data/spec/unit/configurer/downloader_spec.rb +188 -0
- data/spec/unit/configurer/fact_handler_spec.rb +164 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +112 -0
- data/spec/unit/configurer_spec.rb +494 -0
- data/spec/unit/daemon_spec.rb +306 -0
- data/spec/unit/dsl/resource_api_spec.rb +181 -0
- data/spec/unit/dsl/resource_type_api_spec.rb +46 -0
- data/spec/unit/file_bucket/dipper_spec.rb +122 -0
- data/spec/unit/file_bucket/file_spec.rb +230 -0
- data/spec/unit/file_collection/lookup_spec.rb +46 -0
- data/spec/unit/file_collection_spec.rb +53 -0
- data/spec/unit/file_serving/base_spec.rb +132 -0
- data/spec/unit/file_serving/configuration/parser_spec.rb +181 -0
- data/spec/unit/file_serving/configuration_spec.rb +249 -0
- data/spec/unit/file_serving/content_spec.rb +118 -0
- data/spec/unit/file_serving/fileset_spec.rb +347 -0
- data/spec/unit/file_serving/indirection_hooks_spec.rb +63 -0
- data/spec/unit/file_serving/metadata_spec.rb +286 -0
- data/spec/unit/file_serving/mount/file_spec.rb +196 -0
- data/spec/unit/file_serving/mount/modules_spec.rb +63 -0
- data/spec/unit/file_serving/mount/plugins_spec.rb +61 -0
- data/spec/unit/file_serving/mount_spec.rb +32 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +98 -0
- data/spec/unit/indirector/active_record_spec.rb +76 -0
- data/spec/unit/indirector/catalog/active_record_spec.rb +141 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +275 -0
- data/spec/unit/indirector/catalog/queue_spec.rb +20 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +11 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +25 -0
- data/spec/unit/indirector/certificate/ca_spec.rb +28 -0
- data/spec/unit/indirector/certificate/file_spec.rb +28 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +58 -0
- data/spec/unit/indirector/certificate_request/ca_spec.rb +19 -0
- data/spec/unit/indirector/certificate_request/file_spec.rb +19 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +23 -0
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +21 -0
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +20 -0
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +23 -0
- data/spec/unit/indirector/code_spec.rb +33 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +84 -0
- data/spec/unit/indirector/envelope_spec.rb +47 -0
- data/spec/unit/indirector/exec_spec.rb +56 -0
- data/spec/unit/indirector/facts/active_record_spec.rb +104 -0
- data/spec/unit/indirector/facts/couch_spec.rb +98 -0
- data/spec/unit/indirector/facts/facter_spec.rb +143 -0
- data/spec/unit/indirector/facts/rest_spec.rb +11 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +26 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +290 -0
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +11 -0
- data/spec/unit/indirector/file_content/file_server_spec.rb +18 -0
- data/spec/unit/indirector/file_content/file_spec.rb +18 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +11 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +18 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +52 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +9 -0
- data/spec/unit/indirector/file_server_spec.rb +267 -0
- data/spec/unit/indirector/file_spec.rb +181 -0
- data/spec/unit/indirector/indirection_spec.rb +795 -0
- data/spec/unit/indirector/key/ca_spec.rb +28 -0
- data/spec/unit/indirector/key/file_spec.rb +104 -0
- data/spec/unit/indirector/ldap_spec.rb +143 -0
- data/spec/unit/indirector/memory_spec.rb +29 -0
- data/spec/unit/indirector/node/active_record_spec.rb +41 -0
- data/spec/unit/indirector/node/exec_spec.rb +70 -0
- data/spec/unit/indirector/node/ldap_spec.rb +456 -0
- data/spec/unit/indirector/node/memory_spec.rb +19 -0
- data/spec/unit/indirector/node/plain_spec.rb +19 -0
- data/spec/unit/indirector/node/rest_spec.rb +13 -0
- data/spec/unit/indirector/node/yaml_spec.rb +25 -0
- data/spec/unit/indirector/plain_spec.rb +29 -0
- data/spec/unit/indirector/queue_spec.rb +123 -0
- data/spec/unit/indirector/report/processor_spec.rb +81 -0
- data/spec/unit/indirector/report/rest_spec.rb +28 -0
- data/spec/unit/indirector/request_spec.rb +304 -0
- data/spec/unit/indirector/resource/ral_spec.rb +129 -0
- data/spec/unit/indirector/resource/rest_spec.rb +11 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +75 -0
- data/spec/unit/indirector/resource_type/rest_spec.rb +15 -0
- data/spec/unit/indirector/rest_spec.rb +455 -0
- data/spec/unit/indirector/run/local_spec.rb +20 -0
- data/spec/unit/indirector/run/rest_spec.rb +11 -0
- data/spec/unit/indirector/ssl_file_spec.rb +281 -0
- data/spec/unit/indirector/status/rest_spec.rb +11 -0
- data/spec/unit/indirector/terminus_spec.rb +245 -0
- data/spec/unit/indirector/yaml_spec.rb +146 -0
- data/spec/unit/indirector_spec.rb +157 -0
- data/spec/unit/module_spec.rb +547 -0
- data/spec/unit/network/authconfig_spec.rb +292 -0
- data/spec/unit/network/authstore_spec.rb +370 -0
- data/spec/unit/network/client_spec.rb +45 -0
- data/spec/unit/network/format_handler_spec.rb +336 -0
- data/spec/unit/network/format_spec.rb +198 -0
- data/spec/unit/network/formats_spec.rb +337 -0
- data/spec/unit/network/handler/fileserver_spec.rb +172 -0
- data/spec/unit/network/http/api/v1_spec.rb +122 -0
- data/spec/unit/network/http/compression_spec.rb +199 -0
- data/spec/unit/network/http/handler_spec.rb +455 -0
- data/spec/unit/network/http/mongrel/rest_spec.rb +249 -0
- data/spec/unit/network/http/mongrel/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
- data/spec/unit/network/http/mongrel_spec.rb +131 -0
- data/spec/unit/network/http/rack/rest_spec.rb +249 -0
- data/spec/unit/network/http/rack/xmlrpc_spec.rb +157 -0
- data/spec/unit/network/http/rack_spec.rb +102 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +180 -0
- data/spec/unit/network/http/webrick/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
- data/spec/unit/network/http/webrick_spec.rb +339 -0
- data/spec/unit/network/http_pool_spec.rb +206 -0
- data/spec/unit/network/http_spec.rb +35 -0
- data/spec/unit/network/rest_authconfig_spec.rb +148 -0
- data/spec/unit/network/rest_authorization_spec.rb +43 -0
- data/spec/unit/network/rights_spec.rb +519 -0
- data/spec/unit/network/server_spec.rb +534 -0
- data/spec/unit/network/xmlrpc/client_spec.rb +171 -0
- data/spec/unit/node/environment_spec.rb +248 -0
- data/spec/unit/node/facts_spec.rb +102 -0
- data/spec/unit/node_spec.rb +210 -0
- data/spec/unit/other/selinux_spec.rb +94 -0
- data/spec/unit/other/transbucket_spec.rb +188 -0
- data/spec/unit/other/transobject_spec.rb +112 -0
- data/spec/unit/parameter/value_collection_spec.rb +167 -0
- data/spec/unit/parameter/value_spec.rb +88 -0
- data/spec/unit/parameter_spec.rb +172 -0
- data/spec/unit/parser/ast/arithmetic_operator_spec.rb +73 -0
- data/spec/unit/parser/ast/astarray_spec.rb +72 -0
- data/spec/unit/parser/ast/asthash_spec.rb +98 -0
- data/spec/unit/parser/ast/boolean_operator_spec.rb +53 -0
- data/spec/unit/parser/ast/casestatement_spec.rb +161 -0
- data/spec/unit/parser/ast/collection_spec.rb +63 -0
- data/spec/unit/parser/ast/collexpr_spec.rb +115 -0
- data/spec/unit/parser/ast/comparison_operator_spec.rb +116 -0
- data/spec/unit/parser/ast/function_spec.rb +83 -0
- data/spec/unit/parser/ast/ifstatement_spec.rb +76 -0
- data/spec/unit/parser/ast/in_operator_spec.rb +60 -0
- data/spec/unit/parser/ast/leaf_spec.rb +362 -0
- data/spec/unit/parser/ast/match_operator_spec.rb +50 -0
- data/spec/unit/parser/ast/minus_spec.rb +36 -0
- data/spec/unit/parser/ast/nop_spec.rb +20 -0
- data/spec/unit/parser/ast/not_spec.rb +30 -0
- data/spec/unit/parser/ast/relationship_spec.rb +88 -0
- data/spec/unit/parser/ast/resource_defaults_spec.rb +22 -0
- data/spec/unit/parser/ast/resource_override_spec.rb +51 -0
- data/spec/unit/parser/ast/resource_reference_spec.rb +46 -0
- data/spec/unit/parser/ast/resource_spec.rb +120 -0
- data/spec/unit/parser/ast/selector_spec.rb +139 -0
- data/spec/unit/parser/ast/vardef_spec.rb +60 -0
- data/spec/unit/parser/ast_spec.rb +111 -0
- data/spec/unit/parser/collector_spec.rb +559 -0
- data/spec/unit/parser/compiler_spec.rb +754 -0
- data/spec/unit/parser/files_spec.rb +201 -0
- data/spec/unit/parser/functions/defined_spec.rb +50 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +62 -0
- data/spec/unit/parser/functions/generate_spec.rb +41 -0
- data/spec/unit/parser/functions/inline_template_spec.rb +59 -0
- data/spec/unit/parser/functions/realize_spec.rb +51 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +192 -0
- data/spec/unit/parser/functions/require_spec.rb +74 -0
- data/spec/unit/parser/functions/shellquote_spec.rb +81 -0
- data/spec/unit/parser/functions/split_spec.rb +49 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +41 -0
- data/spec/unit/parser/functions/tag_spec.rb +24 -0
- data/spec/unit/parser/functions/template_spec.rb +62 -0
- data/spec/unit/parser/functions/versioncmp_spec.rb +29 -0
- data/spec/unit/parser/functions_spec.rb +102 -0
- data/spec/unit/parser/lexer_spec.rb +646 -0
- data/spec/unit/parser/parser_spec.rb +412 -0
- data/spec/unit/parser/relationship_spec.rb +70 -0
- data/spec/unit/parser/resource_spec.rb +564 -0
- data/spec/unit/parser/scope_spec.rb +629 -0
- data/spec/unit/parser/templatewrapper_spec.rb +144 -0
- data/spec/unit/parser/type_loader_spec.rb +201 -0
- data/spec/unit/property/ensure_spec.rb +13 -0
- data/spec/unit/property/keyvalue_spec.rb +168 -0
- data/spec/unit/property/list_spec.rb +166 -0
- data/spec/unit/property/ordered_list_spec.rb +64 -0
- data/spec/unit/property_spec.rb +410 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +413 -0
- data/spec/unit/provider/confine/exists_spec.rb +81 -0
- data/spec/unit/provider/confine/false_spec.rb +53 -0
- data/spec/unit/provider/confine/feature_spec.rb +60 -0
- data/spec/unit/provider/confine/true_spec.rb +53 -0
- data/spec/unit/provider/confine/variable_spec.rb +107 -0
- data/spec/unit/provider/confine_collection_spec.rb +134 -0
- data/spec/unit/provider/confine_spec.rb +78 -0
- data/spec/unit/provider/confiner_spec.rb +63 -0
- data/spec/unit/provider/group/groupadd_spec.rb +31 -0
- data/spec/unit/provider/group/ldap_spec.rb +105 -0
- data/spec/unit/provider/ldap_spec.rb +248 -0
- data/spec/unit/provider/macauthorization_spec.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +175 -0
- data/spec/unit/provider/mount/parsed_spec.rb +193 -0
- data/spec/unit/provider/mount_spec.rb +130 -0
- data/spec/unit/provider/naginator_spec.rb +58 -0
- data/spec/unit/provider/package/aix_spec.rb +66 -0
- data/spec/unit/provider/package/apt_spec.rb +145 -0
- data/spec/unit/provider/package/dpkg_spec.rb +225 -0
- data/spec/unit/provider/package/gem_spec.rb +87 -0
- data/spec/unit/provider/package/hpux_spec.rb +52 -0
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- data/spec/unit/provider/package/pkg_spec.rb +63 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +84 -0
- data/spec/unit/provider/package/zypper_spec.rb +81 -0
- data/spec/unit/provider/parsedfile_spec.rb +95 -0
- data/spec/unit/provider/selboolean_spec.rb +37 -0
- data/spec/unit/provider/selmodule_spec.rb +66 -0
- data/spec/unit/provider/service/daemontools_spec.rb +166 -0
- data/spec/unit/provider/service/debian_spec.rb +89 -0
- data/spec/unit/provider/service/init_spec.rb +168 -0
- data/spec/unit/provider/service/launchd_spec.rb +200 -0
- data/spec/unit/provider/service/redhat_spec.rb +121 -0
- data/spec/unit/provider/service/runit_spec.rb +140 -0
- data/spec/unit/provider/service/src_spec.rb +97 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +228 -0
- data/spec/unit/provider/sshkey/parsed_spec.rb +38 -0
- data/spec/unit/provider/user/hpux_spec.rb +25 -0
- data/spec/unit/provider/user/ldap_spec.rb +279 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +249 -0
- data/spec/unit/provider/user/useradd_spec.rb +115 -0
- data/spec/unit/provider/zfs/solaris_spec.rb +99 -0
- data/spec/unit/provider/zone/solaris_spec.rb +55 -0
- data/spec/unit/provider/zpool/solaris_spec.rb +179 -0
- data/spec/unit/provider_spec.rb +31 -0
- data/spec/unit/puppet_spec.rb +12 -0
- data/spec/unit/rails/host_spec.rb +163 -0
- data/spec/unit/rails/param_value_spec.rb +49 -0
- data/spec/unit/rails/resource_spec.rb +123 -0
- data/spec/unit/rails_spec.rb +258 -0
- data/spec/unit/relationship_spec.rb +236 -0
- data/spec/unit/reports/http_spec.rb +56 -0
- data/spec/unit/reports/tagmail_spec.rb +94 -0
- data/spec/unit/reports_spec.rb +61 -0
- data/spec/unit/resource/catalog_spec.rb +1078 -0
- data/spec/unit/resource/status_spec.rb +103 -0
- data/spec/unit/resource/type_collection_helper_spec.rb +25 -0
- data/spec/unit/resource/type_collection_spec.rb +432 -0
- data/spec/unit/resource/type_spec.rb +722 -0
- data/spec/unit/resource_spec.rb +818 -0
- data/spec/unit/run_spec.rb +137 -0
- data/spec/unit/simple_graph_spec.rb +544 -0
- data/spec/unit/ssl/base_spec.rb +43 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +333 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +772 -0
- data/spec/unit/ssl/certificate_factory_spec.rb +107 -0
- data/spec/unit/ssl/certificate_request_spec.rb +220 -0
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +168 -0
- data/spec/unit/ssl/certificate_spec.rb +124 -0
- data/spec/unit/ssl/host_spec.rb +707 -0
- data/spec/unit/ssl/inventory_spec.rb +180 -0
- data/spec/unit/ssl/key_spec.rb +198 -0
- data/spec/unit/status_spec.rb +31 -0
- data/spec/unit/transaction/change_spec.rb +193 -0
- data/spec/unit/transaction/event_manager_spec.rb +260 -0
- data/spec/unit/transaction/event_spec.rb +108 -0
- data/spec/unit/transaction/report_spec.rb +234 -0
- data/spec/unit/transaction/resource_harness_spec.rb +401 -0
- data/spec/unit/transaction_spec.rb +452 -0
- data/spec/unit/transportable_spec.rb +0 -0
- data/spec/unit/type/augeas_spec.rb +122 -0
- data/spec/unit/type/component_spec.rb +63 -0
- data/spec/unit/type/computer_spec.rb +81 -0
- data/spec/unit/type/cron_spec.rb +33 -0
- data/spec/unit/type/exec_spec.rb +162 -0
- data/spec/unit/type/file/checksum_spec.rb +73 -0
- data/spec/unit/type/file/content_spec.rb +460 -0
- data/spec/unit/type/file/ensure_spec.rb +84 -0
- data/spec/unit/type/file/group_spec.rb +123 -0
- data/spec/unit/type/file/owner_spec.rb +150 -0
- data/spec/unit/type/file/selinux_spec.rb +83 -0
- data/spec/unit/type/file/source_spec.rb +272 -0
- data/spec/unit/type/file_spec.rb +1070 -0
- data/spec/unit/type/filebucket_spec.rb +74 -0
- data/spec/unit/type/group_spec.rb +57 -0
- data/spec/unit/type/macauthorization_spec.rb +111 -0
- data/spec/unit/type/maillist_spec.rb +42 -0
- data/spec/unit/type/mcx_spec.rb +100 -0
- data/spec/unit/type/mount_spec.rb +261 -0
- data/spec/unit/type/nagios_spec.rb +63 -0
- data/spec/unit/type/noop_metaparam_spec.rb +37 -0
- data/spec/unit/type/package_spec.rb +240 -0
- data/spec/unit/type/resources_spec.rb +102 -0
- data/spec/unit/type/schedule_spec.rb +333 -0
- data/spec/unit/type/selboolean_spec.rb +45 -0
- data/spec/unit/type/selmodule_spec.rb +18 -0
- data/spec/unit/type/service_spec.rb +222 -0
- data/spec/unit/type/ssh_authorized_key_spec.rb +152 -0
- data/spec/unit/type/stage_spec.rb +9 -0
- data/spec/unit/type/tidy_spec.rb +424 -0
- data/spec/unit/type/user_spec.rb +281 -0
- data/spec/unit/type/zfs_spec.rb +45 -0
- data/spec/unit/type/zone_spec.rb +60 -0
- data/spec/unit/type/zpool_spec.rb +110 -0
- data/spec/unit/type_spec.rb +566 -0
- data/spec/unit/util/autoload/file_cache_spec.rb +159 -0
- data/spec/unit/util/autoload_spec.rb +120 -0
- data/spec/unit/util/backups_spec.rb +159 -0
- data/spec/unit/util/cache_accumulator_spec.rb +75 -0
- data/spec/unit/util/cacher_spec.rb +185 -0
- data/spec/unit/util/checksums_spec.rb +153 -0
- data/spec/unit/util/command_line_spec.rb +108 -0
- data/spec/unit/util/constant_inflector_spec.rb +70 -0
- data/spec/unit/util/errors_spec.rb +38 -0
- data/spec/unit/util/feature_spec.rb +72 -0
- data/spec/unit/util/file_locking_spec.rb +156 -0
- data/spec/unit/util/filetype_spec.rb +100 -0
- data/spec/unit/util/inline_docs_spec.rb +32 -0
- data/spec/unit/util/json_spec.rb +21 -0
- data/spec/unit/util/ldap/connection_spec.rb +169 -0
- data/spec/unit/util/ldap/generator_spec.rb +54 -0
- data/spec/unit/util/ldap/manager_spec.rb +654 -0
- data/spec/unit/util/loadedfile_spec.rb +65 -0
- data/spec/unit/util/log/destinations_spec.rb +24 -0
- data/spec/unit/util/log_spec.rb +215 -0
- data/spec/unit/util/logging_spec.rb +95 -0
- data/spec/unit/util/metric_spec.rb +95 -0
- data/spec/unit/util/monkey_patches_spec.rb +7 -0
- data/spec/unit/util/nagios_maker_spec.rb +126 -0
- data/spec/unit/util/package_spec.rb +21 -0
- data/spec/unit/util/posix_spec.rb +256 -0
- data/spec/unit/util/queue/stomp_spec.rb +140 -0
- data/spec/unit/util/queue_spec.rb +96 -0
- data/spec/unit/util/rdoc/parser_spec.rb +540 -0
- data/spec/unit/util/rdoc_spec.rb +165 -0
- data/spec/unit/util/reference_serializer_spec.rb +52 -0
- data/spec/unit/util/resource_template_spec.rb +58 -0
- data/spec/unit/util/run_mode_spec.rb +51 -0
- data/spec/unit/util/selinux_spec.rb +278 -0
- data/spec/unit/util/settings/file_setting_spec.rb +256 -0
- data/spec/unit/util/settings_spec.rb +1099 -0
- data/spec/unit/util/storage_spec.rb +235 -0
- data/spec/unit/util/tagging_spec.rb +102 -0
- data/spec/unit/util/user_attr_spec.rb +47 -0
- data/spec/unit/util/warnings_spec.rb +39 -0
- data/spec/unit/util/zaml_spec.rb +38 -0
- data/tasks/rake/git_workflow.rake +1 -1
- data/tasks/rake/sign.rake +2 -2
- data/test/certmgr/ca.rb +61 -61
- data/test/certmgr/certmgr.rb +292 -283
- data/test/certmgr/inventory.rb +44 -42
- data/test/certmgr/support.rb +78 -77
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -1
- data/test/data/snippets/hash.pp +33 -0
- data/test/language/ast.rb +68 -117
- data/test/language/ast/variable.rb +14 -15
- data/test/language/functions.rb +404 -463
- data/test/language/parser.rb +670 -1135
- data/test/language/scope.rb +198 -402
- data/test/language/snippets.rb +439 -447
- data/test/language/transportable.rb +67 -66
- data/test/lib/puppettest.rb +260 -268
- data/test/lib/puppettest/certificates.rb +51 -53
- data/test/lib/puppettest/exetest.rb +107 -111
- data/test/lib/puppettest/fakes.rb +153 -158
- data/test/lib/puppettest/fileparsing.rb +17 -17
- data/test/lib/puppettest/filetesting.rb +204 -213
- data/test/lib/puppettest/parsertesting.rb +382 -365
- data/test/lib/puppettest/railstesting.rb +49 -50
- data/test/lib/puppettest/reporttesting.rb +10 -10
- data/test/lib/puppettest/resourcetesting.rb +45 -36
- data/test/lib/puppettest/runnable_test.rb +36 -28
- data/test/lib/puppettest/servertest.rb +54 -51
- data/test/lib/puppettest/support/assertions.rb +48 -55
- data/test/lib/puppettest/support/helpers.rb +12 -16
- data/test/lib/puppettest/support/resources.rb +23 -25
- data/test/lib/puppettest/support/utils.rb +138 -148
- data/test/lib/puppettest/testcase.rb +15 -17
- data/test/lib/rake/puppet_test_loader.rb +1 -3
- data/test/lib/rake/puppet_testtask.rb +10 -10
- data/test/network/authconfig.rb +48 -50
- data/test/network/authorization.rb +114 -113
- data/test/network/authstore.rb +454 -406
- data/test/network/client/ca.rb +46 -48
- data/test/network/client/dipper.rb +22 -22
- data/test/network/client_request.rb +20 -20
- data/test/network/handler/ca.rb +251 -252
- data/test/network/handler/fileserver.rb +1071 -1001
- data/test/network/handler/master.rb +58 -58
- data/test/network/handler/report.rb +64 -64
- data/test/network/handler/runner.rb +8 -8
- data/test/network/rights.rb +22 -19
- data/test/network/server/mongrel_test.rb +87 -87
- data/test/network/server/webrick.rb +99 -87
- data/test/network/xmlrpc/client.rb +30 -30
- data/test/network/xmlrpc/processor.rb +52 -53
- data/test/network/xmlrpc/server.rb +10 -11
- data/test/network/xmlrpc/webrick_servlet.rb +21 -18
- data/test/other/provider.rb +69 -84
- data/test/other/puppet.rb +61 -76
- data/test/other/relationships.rb +73 -65
- data/test/other/report.rb +88 -187
- data/test/other/transactions.rb +363 -885
- data/test/puppet/defaults.rb +51 -54
- data/test/puppet/errortest.rb +8 -8
- data/test/puppet/tc_suidmanager.rb +106 -103
- data/test/rails/rails.rb +8 -9
- data/test/rails/railsparameter.rb +60 -54
- data/test/ral/manager/attributes.rb +262 -260
- data/test/ral/manager/instances.rb +77 -78
- data/test/ral/manager/manager.rb +36 -36
- data/test/ral/manager/provider.rb +56 -79
- data/test/ral/manager/type.rb +308 -449
- data/test/ral/providers/cron/crontab.rb +561 -545
- data/test/ral/providers/group.rb +203 -212
- data/test/ral/providers/host/parsed.rb +189 -180
- data/test/ral/providers/mailalias/aliases.rb +40 -40
- data/test/ral/providers/nameservice.rb +21 -21
- data/test/ral/providers/package.rb +207 -214
- data/test/ral/providers/package/aptitude.rb +75 -63
- data/test/ral/providers/package/aptrpm.rb +84 -72
- data/test/ral/providers/parsedfile.rb +510 -509
- data/test/ral/providers/port/parsed.rb +5 -5
- data/test/ral/providers/provider.rb +421 -421
- data/test/ral/providers/service/base.rb +59 -53
- data/test/ral/providers/sshkey/parsed.rb +86 -83
- data/test/ral/providers/user.rb +471 -451
- data/test/ral/providers/user/useradd.rb +168 -177
- data/test/ral/type/cron.rb +406 -393
- data/test/ral/type/exec.rb +721 -641
- data/test/ral/type/file.rb +827 -896
- data/test/ral/type/file/target.rb +295 -251
- data/test/ral/type/fileignoresource.rb +232 -205
- data/test/ral/type/filesources.rb +446 -485
- data/test/ral/type/host.rb +124 -153
- data/test/ral/type/mailalias.rb +28 -31
- data/test/ral/type/port.rb +7 -7
- data/test/ral/type/resources.rb +88 -93
- data/test/ral/type/service.rb +19 -19
- data/test/ral/type/sshkey.rb +120 -160
- data/test/ral/type/user.rb +132 -414
- data/test/ral/type/yumrepo.rb +95 -92
- data/test/ral/type/zone.rb +316 -287
- data/test/test +1 -1
- data/test/util/classgen.rb +182 -167
- data/test/util/execution.rb +18 -18
- data/test/util/fileparsing.rb +580 -540
- data/test/util/inifile.rb +117 -106
- data/test/util/instance_loader.rb +29 -29
- data/test/util/log.rb +202 -198
- data/test/util/metrics.rb +51 -51
- data/test/util/package.rb +11 -12
- data/test/util/pidlock.rb +115 -115
- data/test/util/settings.rb +613 -557
- data/test/util/storage.rb +71 -88
- data/test/util/subclass_loader.rb +69 -72
- data/test/util/utiltest.rb +204 -203
- metadata +493 -395
- data/lib/puppet/agent/runner.rb +0 -65
- data/lib/puppet/application/pi.rb +0 -214
- data/lib/puppet/application/puppet.rb +0 -181
- data/lib/puppet/application/puppetca.rb +0 -71
- data/lib/puppet/application/puppetd.rb +0 -250
- data/lib/puppet/application/puppetdoc.rb +0 -224
- data/lib/puppet/application/puppetmasterd.rb +0 -168
- data/lib/puppet/application/puppetqd.rb +0 -96
- data/lib/puppet/application/puppetrun.rb +0 -210
- data/lib/puppet/application/ralsh.rb +0 -152
- data/lib/puppet/checksum.rb +0 -57
- data/lib/puppet/indirector/checksum/file.rb +0 -33
- data/lib/puppet/indirector/runner/rest.rb +0 -7
- data/lib/puppet/network/client/dipper.rb +0 -85
- data/lib/puppet/network/client/resource.rb +0 -38
- data/lib/puppet/network/handler/resource.rb +0 -190
- data/lib/puppet/parser/ast/definition.rb +0 -207
- data/lib/puppet/parser/ast/hostclass.rb +0 -95
- data/lib/puppet/parser/ast/node.rb +0 -42
- data/lib/puppet/parser/interpreter.rb +0 -84
- data/lib/puppet/parser/loaded_code.rb +0 -119
- data/lib/puppet/parser/resource/reference.rb +0 -99
- data/lib/puppet/resource/reference.rb +0 -90
- data/lib/puppet/util/config_store.rb +0 -61
- data/spec/integration/application/puppet.rb +0 -33
- data/spec/integration/bin/puppetmasterd.rb +0 -122
- data/spec/integration/checksum.rb +0 -48
- data/spec/integration/configurer.rb +0 -18
- data/spec/integration/defaults.rb +0 -230
- data/spec/integration/file_serving/content.rb +0 -20
- data/spec/integration/file_serving/fileset.rb +0 -14
- data/spec/integration/file_serving/metadata.rb +0 -21
- data/spec/integration/file_serving/terminus_helper.rb +0 -22
- data/spec/integration/indirector/catalog/compiler.rb +0 -67
- data/spec/integration/indirector/catalog/queue.rb +0 -61
- data/spec/integration/indirector/certificate/rest.rb +0 -70
- data/spec/integration/indirector/certificate_request/rest.rb +0 -88
- data/spec/integration/indirector/certificate_revocation_list/rest.rb +0 -76
- data/spec/integration/indirector/direct_file_server.rb +0 -73
- data/spec/integration/indirector/file_content/file_server.rb +0 -94
- data/spec/integration/indirector/file_metadata/file_server.rb +0 -18
- data/spec/integration/indirector/node/ldap.rb +0 -15
- data/spec/integration/indirector/report/rest.rb +0 -94
- data/spec/integration/indirector/rest.rb +0 -523
- data/spec/integration/network/client.rb +0 -19
- data/spec/integration/network/formats.rb +0 -110
- data/spec/integration/network/handler.rb +0 -25
- data/spec/integration/network/server/mongrel.rb +0 -66
- data/spec/integration/network/server/webrick.rb +0 -86
- data/spec/integration/node.rb +0 -93
- data/spec/integration/node/environment.rb +0 -58
- data/spec/integration/node/facts.rb +0 -47
- data/spec/integration/parser/compiler.rb +0 -29
- data/spec/integration/parser/functions/require.rb +0 -86
- data/spec/integration/provider/mailalias/aliases.rb +0 -25
- data/spec/integration/provider/package.rb +0 -26
- data/spec/integration/provider/service/init.rb +0 -32
- data/spec/integration/reference/providers.rb +0 -17
- data/spec/integration/reports.rb +0 -18
- data/spec/integration/resource/catalog.rb +0 -61
- data/spec/integration/ssl/certificate_authority.rb +0 -135
- data/spec/integration/ssl/certificate_request.rb +0 -61
- data/spec/integration/ssl/certificate_revocation_list.rb +0 -42
- data/spec/integration/ssl/host.rb +0 -90
- data/spec/integration/transaction.rb +0 -66
- data/spec/integration/transaction/report.rb +0 -29
- data/spec/integration/type.rb +0 -22
- data/spec/integration/type/file.rb +0 -477
- data/spec/integration/type/package.rb +0 -25
- data/spec/integration/type/tidy.rb +0 -27
- data/spec/integration/util/autoload.rb +0 -114
- data/spec/integration/util/feature.rb +0 -54
- data/spec/integration/util/file_locking.rb +0 -37
- data/spec/integration/util/settings.rb +0 -27
- data/spec/unit/agent.rb +0 -259
- data/spec/unit/agent/locker.rb +0 -100
- data/spec/unit/agent/runner.rb +0 -118
- data/spec/unit/application.rb +0 -420
- data/spec/unit/application/filebucket.rb +0 -220
- data/spec/unit/application/pi.rb +0 -84
- data/spec/unit/application/puppet.rb +0 -399
- data/spec/unit/application/puppetca.rb +0 -142
- data/spec/unit/application/puppetd.rb +0 -502
- data/spec/unit/application/puppetdoc.rb +0 -360
- data/spec/unit/application/puppetmasterd.rb +0 -457
- data/spec/unit/application/puppetqd.rb +0 -186
- data/spec/unit/application/puppetrun.rb +0 -289
- data/spec/unit/application/ralsh.rb +0 -254
- data/spec/unit/configurer.rb +0 -339
- data/spec/unit/configurer/downloader.rb +0 -188
- data/spec/unit/configurer/fact_handler.rb +0 -164
- data/spec/unit/configurer/plugin_handler.rb +0 -112
- data/spec/unit/daemon.rb +0 -287
- data/spec/unit/file_collection.rb +0 -53
- data/spec/unit/file_collection/lookup.rb +0 -46
- data/spec/unit/file_serving/base.rb +0 -132
- data/spec/unit/file_serving/configuration.rb +0 -249
- data/spec/unit/file_serving/configuration/parser.rb +0 -181
- data/spec/unit/file_serving/content.rb +0 -110
- data/spec/unit/file_serving/fileset.rb +0 -347
- data/spec/unit/file_serving/indirection_hooks.rb +0 -63
- data/spec/unit/file_serving/metadata.rb +0 -286
- data/spec/unit/file_serving/mount.rb +0 -32
- data/spec/unit/file_serving/mount/file.rb +0 -196
- data/spec/unit/file_serving/mount/modules.rb +0 -63
- data/spec/unit/file_serving/mount/plugins.rb +0 -61
- data/spec/unit/file_serving/terminus_helper.rb +0 -98
- data/spec/unit/indirector.rb +0 -157
- data/spec/unit/indirector/active_record.rb +0 -76
- data/spec/unit/indirector/catalog/active_record.rb +0 -141
- data/spec/unit/indirector/catalog/compiler.rb +0 -261
- data/spec/unit/indirector/catalog/queue.rb +0 -20
- data/spec/unit/indirector/catalog/rest.rb +0 -11
- data/spec/unit/indirector/catalog/yaml.rb +0 -25
- data/spec/unit/indirector/certificate/ca.rb +0 -28
- data/spec/unit/indirector/certificate/file.rb +0 -28
- data/spec/unit/indirector/certificate/rest.rb +0 -57
- data/spec/unit/indirector/certificate_request/ca.rb +0 -19
- data/spec/unit/indirector/certificate_request/file.rb +0 -19
- data/spec/unit/indirector/certificate_request/rest.rb +0 -23
- data/spec/unit/indirector/certificate_revocation_list/ca.rb +0 -21
- data/spec/unit/indirector/certificate_revocation_list/file.rb +0 -20
- data/spec/unit/indirector/certificate_revocation_list/rest.rb +0 -23
- data/spec/unit/indirector/checksum/file.rb +0 -139
- data/spec/unit/indirector/code.rb +0 -33
- data/spec/unit/indirector/direct_file_server.rb +0 -84
- data/spec/unit/indirector/envelope.rb +0 -47
- data/spec/unit/indirector/exec.rb +0 -56
- data/spec/unit/indirector/facts/active_record.rb +0 -104
- data/spec/unit/indirector/facts/facter.rb +0 -142
- data/spec/unit/indirector/facts/rest.rb +0 -11
- data/spec/unit/indirector/facts/yaml.rb +0 -26
- data/spec/unit/indirector/file.rb +0 -161
- data/spec/unit/indirector/file_content/file.rb +0 -18
- data/spec/unit/indirector/file_content/file_server.rb +0 -18
- data/spec/unit/indirector/file_content/rest.rb +0 -11
- data/spec/unit/indirector/file_metadata/file.rb +0 -52
- data/spec/unit/indirector/file_metadata/file_server.rb +0 -18
- data/spec/unit/indirector/file_metadata/rest.rb +0 -9
- data/spec/unit/indirector/file_server.rb +0 -267
- data/spec/unit/indirector/indirection.rb +0 -795
- data/spec/unit/indirector/key/ca.rb +0 -28
- data/spec/unit/indirector/key/file.rb +0 -104
- data/spec/unit/indirector/ldap.rb +0 -143
- data/spec/unit/indirector/memory.rb +0 -29
- data/spec/unit/indirector/node/active_record.rb +0 -34
- data/spec/unit/indirector/node/exec.rb +0 -69
- data/spec/unit/indirector/node/ldap.rb +0 -458
- data/spec/unit/indirector/node/memory.rb +0 -19
- data/spec/unit/indirector/node/plain.rb +0 -19
- data/spec/unit/indirector/node/rest.rb +0 -13
- data/spec/unit/indirector/node/yaml.rb +0 -25
- data/spec/unit/indirector/plain.rb +0 -29
- data/spec/unit/indirector/queue.rb +0 -123
- data/spec/unit/indirector/report/processor.rb +0 -81
- data/spec/unit/indirector/report/rest.rb +0 -28
- data/spec/unit/indirector/request.rb +0 -308
- data/spec/unit/indirector/rest.rb +0 -403
- data/spec/unit/indirector/runner/rest.rb +0 -11
- data/spec/unit/indirector/ssl_file.rb +0 -280
- data/spec/unit/indirector/terminus.rb +0 -245
- data/spec/unit/indirector/yaml.rb +0 -145
- data/spec/unit/module.rb +0 -247
- data/spec/unit/network/authconfig.rb +0 -292
- data/spec/unit/network/authstore.rb +0 -370
- data/spec/unit/network/client.rb +0 -45
- data/spec/unit/network/client/dipper.rb +0 -16
- data/spec/unit/network/format.rb +0 -191
- data/spec/unit/network/format_handler.rb +0 -327
- data/spec/unit/network/formats.rb +0 -365
- data/spec/unit/network/handler/fileserver.rb +0 -176
- data/spec/unit/network/http.rb +0 -35
- data/spec/unit/network/http/api/v1.rb +0 -122
- data/spec/unit/network/http/handler.rb +0 -458
- data/spec/unit/network/http/mongrel.rb +0 -131
- data/spec/unit/network/http/mongrel/rest.rb +0 -232
- data/spec/unit/network/http/rack.rb +0 -102
- data/spec/unit/network/http/rack/rest.rb +0 -199
- data/spec/unit/network/http/rack/xmlrpc.rb +0 -157
- data/spec/unit/network/http/webrick.rb +0 -339
- data/spec/unit/network/http/webrick/rest.rb +0 -157
- data/spec/unit/network/http_pool.rb +0 -206
- data/spec/unit/network/rest_authconfig.rb +0 -146
- data/spec/unit/network/rest_authorization.rb +0 -43
- data/spec/unit/network/rights.rb +0 -519
- data/spec/unit/network/server.rb +0 -534
- data/spec/unit/network/xmlrpc/client.rb +0 -171
- data/spec/unit/node.rb +0 -200
- data/spec/unit/node/environment.rb +0 -187
- data/spec/unit/node/facts.rb +0 -97
- data/spec/unit/other/checksum.rb +0 -92
- data/spec/unit/other/selinux.rb +0 -85
- data/spec/unit/other/transbucket.rb +0 -188
- data/spec/unit/other/transobject.rb +0 -112
- data/spec/unit/parameter.rb +0 -405
- data/spec/unit/parser/ast.rb +0 -41
- data/spec/unit/parser/ast/arithmetic_operator.rb +0 -73
- data/spec/unit/parser/ast/astarray.rb +0 -72
- data/spec/unit/parser/ast/boolean_operator.rb +0 -53
- data/spec/unit/parser/ast/casestatement.rb +0 -135
- data/spec/unit/parser/ast/collection.rb +0 -63
- data/spec/unit/parser/ast/collexpr.rb +0 -115
- data/spec/unit/parser/ast/comparison_operator.rb +0 -92
- data/spec/unit/parser/ast/definition.rb +0 -213
- data/spec/unit/parser/ast/function.rb +0 -83
- data/spec/unit/parser/ast/hostclass.rb +0 -148
- data/spec/unit/parser/ast/ifstatement.rb +0 -76
- data/spec/unit/parser/ast/leaf.rb +0 -298
- data/spec/unit/parser/ast/match_operator.rb +0 -50
- data/spec/unit/parser/ast/minus.rb +0 -36
- data/spec/unit/parser/ast/node.rb +0 -145
- data/spec/unit/parser/ast/nop.rb +0 -20
- data/spec/unit/parser/ast/not.rb +0 -30
- data/spec/unit/parser/ast/resource.rb +0 -103
- data/spec/unit/parser/ast/resource_override.rb +0 -51
- data/spec/unit/parser/ast/resource_reference.rb +0 -69
- data/spec/unit/parser/ast/selector.rb +0 -155
- data/spec/unit/parser/ast/vardef.rb +0 -47
- data/spec/unit/parser/collector.rb +0 -556
- data/spec/unit/parser/compiler.rb +0 -604
- data/spec/unit/parser/files.rb +0 -190
- data/spec/unit/parser/functions.rb +0 -83
- data/spec/unit/parser/functions/fqdn_rand.rb +0 -62
- data/spec/unit/parser/functions/generate.rb +0 -41
- data/spec/unit/parser/functions/inline_template.rb +0 -59
- data/spec/unit/parser/functions/realize.rb +0 -51
- data/spec/unit/parser/functions/regsubst.rb +0 -168
- data/spec/unit/parser/functions/require.rb +0 -69
- data/spec/unit/parser/functions/shellquote.rb +0 -92
- data/spec/unit/parser/functions/split.rb +0 -51
- data/spec/unit/parser/functions/sprintf.rb +0 -42
- data/spec/unit/parser/functions/template.rb +0 -62
- data/spec/unit/parser/functions/versioncmp.rb +0 -29
- data/spec/unit/parser/interpreter.rb +0 -147
- data/spec/unit/parser/lexer.rb +0 -731
- data/spec/unit/parser/loaded_code.rb +0 -215
- data/spec/unit/parser/parser.rb +0 -423
- data/spec/unit/parser/resource.rb +0 -529
- data/spec/unit/parser/resource/reference.rb +0 -111
- data/spec/unit/parser/scope.rb +0 -387
- data/spec/unit/parser/templatewrapper.rb +0 -134
- data/spec/unit/property.rb +0 -305
- data/spec/unit/property/keyvalue.rb +0 -168
- data/spec/unit/property/list.rb +0 -166
- data/spec/unit/property/ordered_list.rb +0 -64
- data/spec/unit/provider.rb +0 -31
- data/spec/unit/provider/augeas/augeas.rb +0 -413
- data/spec/unit/provider/confine.rb +0 -78
- data/spec/unit/provider/confine/exists.rb +0 -81
- data/spec/unit/provider/confine/false.rb +0 -53
- data/spec/unit/provider/confine/feature.rb +0 -60
- data/spec/unit/provider/confine/true.rb +0 -53
- data/spec/unit/provider/confine/variable.rb +0 -107
- data/spec/unit/provider/confine_collection.rb +0 -134
- data/spec/unit/provider/confiner.rb +0 -63
- data/spec/unit/provider/group/groupadd.rb +0 -31
- data/spec/unit/provider/group/ldap.rb +0 -105
- data/spec/unit/provider/ldap.rb +0 -248
- data/spec/unit/provider/macauthorization.rb +0 -147
- data/spec/unit/provider/mcx/mcxcontent.rb +0 -175
- data/spec/unit/provider/mount.rb +0 -130
- data/spec/unit/provider/mount/parsed.rb +0 -194
- data/spec/unit/provider/naginator.rb +0 -58
- data/spec/unit/provider/package/apt.rb +0 -138
- data/spec/unit/provider/package/dpkg.rb +0 -170
- data/spec/unit/provider/package/gem.rb +0 -87
- data/spec/unit/provider/package/hpux.rb +0 -52
- data/spec/unit/provider/package/pkgdmg.rb +0 -73
- data/spec/unit/provider/parsedfile.rb +0 -95
- data/spec/unit/provider/selboolean.rb +0 -37
- data/spec/unit/provider/selmodule.rb +0 -66
- data/spec/unit/provider/service/daemontools.rb +0 -166
- data/spec/unit/provider/service/debian.rb +0 -89
- data/spec/unit/provider/service/init.rb +0 -121
- data/spec/unit/provider/service/launchd.rb +0 -200
- data/spec/unit/provider/service/redhat.rb +0 -96
- data/spec/unit/provider/service/runit.rb +0 -140
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +0 -206
- data/spec/unit/provider/sshkey/parsed.rb +0 -38
- data/spec/unit/provider/user/hpux.rb +0 -25
- data/spec/unit/provider/user/ldap.rb +0 -279
- data/spec/unit/provider/user/user_role_add.rb +0 -249
- data/spec/unit/provider/user/useradd.rb +0 -115
- data/spec/unit/provider/zfs/solaris.rb +0 -99
- data/spec/unit/provider/zone/solaris.rb +0 -42
- data/spec/unit/provider/zpool/solaris.rb +0 -179
- data/spec/unit/rails.rb +0 -133
- data/spec/unit/rails/host.rb +0 -163
- data/spec/unit/rails/param_value.rb +0 -49
- data/spec/unit/rails/resource.rb +0 -107
- data/spec/unit/relationship.rb +0 -236
- data/spec/unit/reports.rb +0 -61
- data/spec/unit/resource.rb +0 -495
- data/spec/unit/resource/catalog.rb +0 -1053
- data/spec/unit/resource/reference.rb +0 -111
- data/spec/unit/simple_graph.rb +0 -551
- data/spec/unit/ssl/certificate.rb +0 -124
- data/spec/unit/ssl/certificate_authority.rb +0 -741
- data/spec/unit/ssl/certificate_authority/interface.rb +0 -269
- data/spec/unit/ssl/certificate_factory.rb +0 -107
- data/spec/unit/ssl/certificate_request.rb +0 -193
- data/spec/unit/ssl/certificate_revocation_list.rb +0 -168
- data/spec/unit/ssl/host.rb +0 -704
- data/spec/unit/ssl/inventory.rb +0 -180
- data/spec/unit/ssl/key.rb +0 -198
- data/spec/unit/transaction.rb +0 -146
- data/spec/unit/transaction/change.rb +0 -187
- data/spec/unit/transaction/event.rb +0 -25
- data/spec/unit/transaction/report.rb +0 -40
- data/spec/unit/type.rb +0 -426
- data/spec/unit/type/augeas.rb +0 -106
- data/spec/unit/type/component.rb +0 -63
- data/spec/unit/type/computer.rb +0 -78
- data/spec/unit/type/cron.rb +0 -33
- data/spec/unit/type/exec.rb +0 -116
- data/spec/unit/type/file.rb +0 -810
- data/spec/unit/type/file/checksum.rb +0 -28
- data/spec/unit/type/file/content.rb +0 -297
- data/spec/unit/type/file/ensure.rb +0 -84
- data/spec/unit/type/file/group.rb +0 -123
- data/spec/unit/type/file/owner.rb +0 -143
- data/spec/unit/type/file/selinux.rb +0 -84
- data/spec/unit/type/file/source.rb +0 -264
- data/spec/unit/type/filebucket.rb +0 -74
- data/spec/unit/type/group.rb +0 -39
- data/spec/unit/type/macauthorization.rb +0 -111
- data/spec/unit/type/maillist.rb +0 -42
- data/spec/unit/type/mcx.rb +0 -100
- data/spec/unit/type/mount.rb +0 -211
- data/spec/unit/type/nagios.rb +0 -63
- data/spec/unit/type/noop_metaparam.rb +0 -37
- data/spec/unit/type/package.rb +0 -236
- data/spec/unit/type/resources.rb +0 -89
- data/spec/unit/type/schedule.rb +0 -333
- data/spec/unit/type/selboolean.rb +0 -45
- data/spec/unit/type/selmodule.rb +0 -18
- data/spec/unit/type/service.rb +0 -230
- data/spec/unit/type/ssh_authorized_key.rb +0 -140
- data/spec/unit/type/tidy.rb +0 -422
- data/spec/unit/type/user.rb +0 -285
- data/spec/unit/type/zfs.rb +0 -45
- data/spec/unit/type/zone.rb +0 -20
- data/spec/unit/type/zpool.rb +0 -110
- data/spec/unit/util/autoload.rb +0 -133
- data/spec/unit/util/autoload/file_cache.rb +0 -183
- data/spec/unit/util/backups.rb +0 -159
- data/spec/unit/util/cache_accumulator.rb +0 -69
- data/spec/unit/util/cacher.rb +0 -185
- data/spec/unit/util/checksums.rb +0 -113
- data/spec/unit/util/constant_inflector.rb +0 -70
- data/spec/unit/util/feature.rb +0 -72
- data/spec/unit/util/file_locking.rb +0 -115
- data/spec/unit/util/filetype.rb +0 -100
- data/spec/unit/util/json.rb +0 -21
- data/spec/unit/util/ldap/connection.rb +0 -169
- data/spec/unit/util/ldap/generator.rb +0 -54
- data/spec/unit/util/ldap/manager.rb +0 -654
- data/spec/unit/util/loadedfile.rb +0 -65
- data/spec/unit/util/log.rb +0 -202
- data/spec/unit/util/metric.rb +0 -95
- data/spec/unit/util/monkey_patches.rb +0 -103
- data/spec/unit/util/nagios_maker.rb +0 -126
- data/spec/unit/util/package.rb +0 -21
- data/spec/unit/util/posix.rb +0 -256
- data/spec/unit/util/queue.rb +0 -96
- data/spec/unit/util/queue/stomp.rb +0 -140
- data/spec/unit/util/reference_serializer.rb +0 -52
- data/spec/unit/util/resource_template.rb +0 -58
- data/spec/unit/util/selinux.rb +0 -280
- data/spec/unit/util/settings.rb +0 -1058
- data/spec/unit/util/settings/file_setting.rb +0 -248
- data/spec/unit/util/storage.rb +0 -248
- data/spec/unit/util/tagging.rb +0 -102
- data/spec/unit/util/user_attr.rb +0 -47
- data/spec/unit/util/warnings.rb +0 -39
- data/spec/unit/util/zaml.rb +0 -38
- data/test/language/ast/casestatement.rb +0 -103
- data/test/language/ast/resource.rb +0 -58
- data/test/language/ast/resource_reference.rb +0 -77
- data/test/language/ast/selector.rb +0 -61
- data/test/language/resource.rb +0 -172
- data/test/lib/puppettest/support/collection.rb +0 -29
- data/test/network/client/resource.rb +0 -52
- data/test/network/handler/bucket.rb +0 -313
- data/test/network/handler/resource.rb +0 -250
- data/test/other/dsl.rb +0 -215
- data/test/other/events.rb +0 -124
- data/test/ral/type/group.rb +0 -170
@@ -3,114 +3,112 @@
|
|
3
3
|
require 'puppet/parser/files'
|
4
4
|
|
5
5
|
class Puppet::Parser::TemplateWrapper
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
attr_writer :scope
|
7
|
+
attr_reader :file
|
8
|
+
attr_accessor :string
|
9
|
+
include Puppet::Util
|
10
|
+
Puppet::Util.logmethods(self)
|
11
|
+
|
12
|
+
def initialize(scope)
|
13
|
+
@__scope__ = scope
|
14
|
+
end
|
15
|
+
|
16
|
+
def scope
|
17
|
+
@__scope__
|
18
|
+
end
|
19
|
+
|
20
|
+
# Should return true if a variable is defined, false if it is not
|
21
|
+
def has_variable?(name)
|
22
|
+
if scope.lookupvar(name.to_s, false) != :undefined
|
23
|
+
true
|
24
|
+
else
|
25
|
+
false
|
14
26
|
end
|
15
|
-
|
16
|
-
|
17
|
-
|
27
|
+
end
|
28
|
+
|
29
|
+
# Allow templates to access the defined classes
|
30
|
+
def classes
|
31
|
+
scope.catalog.classes
|
32
|
+
end
|
33
|
+
|
34
|
+
# Allow templates to access the tags defined in the current scope
|
35
|
+
def tags
|
36
|
+
scope.tags
|
37
|
+
end
|
38
|
+
|
39
|
+
# Allow templates to access the all the defined tags
|
40
|
+
def all_tags
|
41
|
+
scope.catalog.tags
|
42
|
+
end
|
43
|
+
|
44
|
+
# Ruby treats variables like methods, so we used to expose variables
|
45
|
+
# within scope to the ERB code via method_missing. As per RedMine #1427,
|
46
|
+
# though, this means that conflicts between methods in our inheritance
|
47
|
+
# tree (Kernel#fork) and variable names (fork => "yes/no") could arise.
|
48
|
+
#
|
49
|
+
# Worse, /new/ conflicts could pop up when a new kernel or object method
|
50
|
+
# was added to Ruby, causing templates to suddenly fail mysteriously when
|
51
|
+
# Ruby was upgraded.
|
52
|
+
#
|
53
|
+
# To ensure that legacy templates using unqualified names work we retain
|
54
|
+
# the missing_method definition here until we declare the syntax finally
|
55
|
+
# dead.
|
56
|
+
def method_missing(name, *args)
|
57
|
+
# We have to tell lookupvar to return :undefined to us when
|
58
|
+
# appropriate; otherwise it converts to "".
|
59
|
+
value = scope.lookupvar(name.to_s, false)
|
60
|
+
if value != :undefined
|
61
|
+
return value
|
62
|
+
else
|
63
|
+
# Just throw an error immediately, instead of searching for
|
64
|
+
# other missingmethod things or whatever.
|
65
|
+
raise Puppet::ParseError, "Could not find value for '#{name}'"
|
18
66
|
end
|
67
|
+
end
|
19
68
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
true
|
24
|
-
else
|
25
|
-
false
|
26
|
-
end
|
69
|
+
def file=(filename)
|
70
|
+
unless @file = Puppet::Parser::Files.find_template(filename, scope.compiler.environment.to_s)
|
71
|
+
raise Puppet::ParseError, "Could not find template '#{filename}'"
|
27
72
|
end
|
28
73
|
|
29
|
-
#
|
30
|
-
|
31
|
-
return scope.catalog.classes
|
32
|
-
end
|
74
|
+
# We'll only ever not have a parser in testing, but, eh.
|
75
|
+
scope.known_resource_types.watch_file(file)
|
33
76
|
|
34
|
-
|
35
|
-
|
36
|
-
return scope.tags
|
37
|
-
end
|
77
|
+
@string = File.read(file)
|
78
|
+
end
|
38
79
|
|
39
|
-
|
40
|
-
|
41
|
-
|
80
|
+
def result(string = nil)
|
81
|
+
if string
|
82
|
+
self.string = string
|
83
|
+
template_source = "inline template"
|
84
|
+
else
|
85
|
+
template_source = file
|
42
86
|
end
|
43
87
|
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
# Ruby was upgraded.
|
52
|
-
#
|
53
|
-
# To ensure that legacy templates using unqualified names work we retain
|
54
|
-
# the missing_method definition here until we declare the syntax finally
|
55
|
-
# dead.
|
56
|
-
def method_missing(name, *args)
|
57
|
-
# We have to tell lookupvar to return :undefined to us when
|
58
|
-
# appropriate; otherwise it converts to "".
|
59
|
-
value = scope.lookupvar(name.to_s, false)
|
60
|
-
if value != :undefined
|
61
|
-
return value
|
88
|
+
# Expose all the variables in our scope as instance variables of the
|
89
|
+
# current object, making it possible to access them without conflict
|
90
|
+
# to the regular methods.
|
91
|
+
benchmark(:debug, "Bound template variables for #{template_source}") do
|
92
|
+
scope.to_hash.each { |name, value|
|
93
|
+
if name.kind_of?(String)
|
94
|
+
realname = name.gsub(/[^\w]/, "_")
|
62
95
|
else
|
63
|
-
|
64
|
-
# other missingmethod things or whatever.
|
65
|
-
raise Puppet::ParseError, "Could not find value for '%s'" % name
|
96
|
+
realname = name
|
66
97
|
end
|
98
|
+
instance_variable_set("@#{realname}", value)
|
99
|
+
}
|
67
100
|
end
|
68
101
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
# We'll only ever not have a parser in testing, but, eh.
|
75
|
-
if scope.parser
|
76
|
-
scope.parser.watch_file(file)
|
77
|
-
end
|
78
|
-
|
79
|
-
@string = File.read(file)
|
102
|
+
result = nil
|
103
|
+
benchmark(:debug, "Interpolated template #{template_source}") do
|
104
|
+
template = ERB.new(self.string, 0, "-")
|
105
|
+
result = template.result(binding)
|
80
106
|
end
|
81
107
|
|
82
|
-
|
83
|
-
|
84
|
-
self.string = string
|
85
|
-
template_source = "inline template"
|
86
|
-
else
|
87
|
-
template_source = file
|
88
|
-
end
|
108
|
+
result
|
109
|
+
end
|
89
110
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
benchmark(:debug, "Bound template variables for #{template_source}") do
|
94
|
-
scope.to_hash.each { |name, value|
|
95
|
-
if name.kind_of?(String)
|
96
|
-
realname = name.gsub(/[^\w]/, "_")
|
97
|
-
else
|
98
|
-
realname = name
|
99
|
-
end
|
100
|
-
instance_variable_set("@#{realname}", value)
|
101
|
-
}
|
102
|
-
end
|
103
|
-
|
104
|
-
result = nil
|
105
|
-
benchmark(:debug, "Interpolated template #{template_source}") do
|
106
|
-
template = ERB.new(self.string, 0, "-")
|
107
|
-
result = template.result(binding)
|
108
|
-
end
|
109
|
-
|
110
|
-
result
|
111
|
-
end
|
112
|
-
|
113
|
-
def to_s
|
114
|
-
"template[%s]" % (file ? file : "inline")
|
115
|
-
end
|
111
|
+
def to_s
|
112
|
+
"template[#{(file ? file : "inline")}]"
|
113
|
+
end
|
116
114
|
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'puppet/node/environment'
|
2
|
+
|
3
|
+
class Puppet::Parser::TypeLoader
|
4
|
+
include Puppet::Node::Environment::Helper
|
5
|
+
|
6
|
+
class Helper < Hash
|
7
|
+
include MonitorMixin
|
8
|
+
def done_with(item)
|
9
|
+
synchronize do
|
10
|
+
delete(item)[:busy].signal if self.has_key?(item) and self[item][:loader] == Thread.current
|
11
|
+
end
|
12
|
+
end
|
13
|
+
def owner_of(item)
|
14
|
+
synchronize do
|
15
|
+
if !self.has_key? item
|
16
|
+
self[item] = { :loader => Thread.current, :busy => self.new_cond}
|
17
|
+
:nobody
|
18
|
+
elsif self[item][:loader] == Thread.current
|
19
|
+
:this_thread
|
20
|
+
else
|
21
|
+
flag = self[item][:busy]
|
22
|
+
flag.wait
|
23
|
+
flag.signal
|
24
|
+
:another_thread
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Import our files.
|
31
|
+
def import(file, current_file = nil)
|
32
|
+
return if Puppet[:ignoreimport]
|
33
|
+
|
34
|
+
# use a path relative to the file doing the importing
|
35
|
+
if current_file
|
36
|
+
dir = current_file.sub(%r{[^/]+$},'').sub(/\/$/, '')
|
37
|
+
else
|
38
|
+
dir = "."
|
39
|
+
end
|
40
|
+
if dir == ""
|
41
|
+
dir = "."
|
42
|
+
end
|
43
|
+
|
44
|
+
pat = file
|
45
|
+
modname, files = Puppet::Parser::Files.find_manifests(pat, :cwd => dir, :environment => environment)
|
46
|
+
if files.size == 0
|
47
|
+
raise Puppet::ImportError.new("No file(s) found for import of '#{pat}'")
|
48
|
+
end
|
49
|
+
|
50
|
+
files.each do |file|
|
51
|
+
unless file =~ /^#{File::SEPARATOR}/
|
52
|
+
file = File.join(dir, file)
|
53
|
+
end
|
54
|
+
unless imported? file
|
55
|
+
@imported[file] = true
|
56
|
+
parse_file(file)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
modname
|
61
|
+
end
|
62
|
+
|
63
|
+
def imported?(file)
|
64
|
+
@imported.has_key?(file)
|
65
|
+
end
|
66
|
+
|
67
|
+
def known_resource_types
|
68
|
+
environment.known_resource_types
|
69
|
+
end
|
70
|
+
|
71
|
+
def initialize(env)
|
72
|
+
self.environment = env
|
73
|
+
@loaded = {}
|
74
|
+
@loading = Helper.new
|
75
|
+
|
76
|
+
@imported = {}
|
77
|
+
end
|
78
|
+
|
79
|
+
def load_until(namespaces, name)
|
80
|
+
return nil if name == "" # special-case main.
|
81
|
+
name2files(namespaces, name).each do |filename|
|
82
|
+
modname = begin
|
83
|
+
import_if_possible(filename)
|
84
|
+
rescue Puppet::ImportError => detail
|
85
|
+
# We couldn't load the item
|
86
|
+
# I'm not convienced we should just drop these errors, but this
|
87
|
+
# preserves existing behaviours.
|
88
|
+
nil
|
89
|
+
end
|
90
|
+
if result = yield(filename)
|
91
|
+
Puppet.info "Automatically imported #{name} from #{filename} into #{environment}"
|
92
|
+
result.module_name = modname if modname and result.respond_to?(:module_name=)
|
93
|
+
return result
|
94
|
+
end
|
95
|
+
end
|
96
|
+
nil
|
97
|
+
end
|
98
|
+
|
99
|
+
def loaded?(name)
|
100
|
+
@loaded.include?(name)
|
101
|
+
end
|
102
|
+
|
103
|
+
def name2files(namespaces, name)
|
104
|
+
return [name.sub(/^::/, '').gsub("::", File::SEPARATOR)] if name =~ /^::/
|
105
|
+
|
106
|
+
result = namespaces.inject([]) do |names_to_try, namespace|
|
107
|
+
fullname = (namespace + "::#{name}").sub(/^::/, '')
|
108
|
+
|
109
|
+
# Try to load the module init file if we're a qualified name
|
110
|
+
names_to_try << fullname.split("::")[0] if fullname.include?("::")
|
111
|
+
|
112
|
+
# Then the fully qualified name
|
113
|
+
names_to_try << fullname
|
114
|
+
end
|
115
|
+
|
116
|
+
# Otherwise try to load the bare name on its own. This
|
117
|
+
# is appropriate if the class we're looking for is in a
|
118
|
+
# module that's different from our namespace.
|
119
|
+
result << name
|
120
|
+
result.uniq.collect { |f| f.gsub("::", File::SEPARATOR) }
|
121
|
+
end
|
122
|
+
|
123
|
+
def parse_file(file)
|
124
|
+
Puppet.debug("importing '#{file}' in environment #{environment}")
|
125
|
+
parser = Puppet::Parser::Parser.new(environment)
|
126
|
+
parser.file = file
|
127
|
+
parser.parse
|
128
|
+
end
|
129
|
+
|
130
|
+
# Utility method factored out of load for handling thread-safety.
|
131
|
+
# This isn't tested in the specs, because that's basically impossible.
|
132
|
+
def import_if_possible(file, current_file = nil)
|
133
|
+
@loaded[file] || begin
|
134
|
+
case @loading.owner_of(file)
|
135
|
+
when :this_thread
|
136
|
+
nil
|
137
|
+
when :another_thread
|
138
|
+
import_if_possible(file,current_file)
|
139
|
+
when :nobody
|
140
|
+
@loaded[file] = import(file,current_file)
|
141
|
+
end
|
142
|
+
ensure
|
143
|
+
@loading.done_with(file)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -1,11 +1,9 @@
|
|
1
1
|
module Puppet::Parser::YamlTrimmer
|
2
|
-
|
2
|
+
REMOVE = %w{@scope @source}
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
r
|
10
|
-
end
|
4
|
+
def to_yaml_properties
|
5
|
+
r = instance_variables - REMOVE
|
6
|
+
r -= skip_for_yaml if respond_to?(:skip_for_yaml)
|
7
|
+
r
|
8
|
+
end
|
11
9
|
end
|
data/lib/puppet/property.rb
CHANGED
@@ -5,483 +5,320 @@ require 'puppet'
|
|
5
5
|
require 'puppet/parameter'
|
6
6
|
|
7
7
|
class Puppet::Property < Puppet::Parameter
|
8
|
+
require 'puppet/property/ensure'
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
attr_writer :noop
|
15
|
-
|
16
|
-
class << self
|
17
|
-
attr_accessor :unmanaged
|
18
|
-
attr_reader :name
|
19
|
-
|
20
|
-
# Return array matching info, defaulting to just matching
|
21
|
-
# the first value.
|
22
|
-
def array_matching
|
23
|
-
unless defined?(@array_matching)
|
24
|
-
@array_matching = :first
|
25
|
-
end
|
26
|
-
@array_matching
|
27
|
-
end
|
28
|
-
|
29
|
-
# Set whether properties should match all values or just the first one.
|
30
|
-
def array_matching=(value)
|
31
|
-
value = value.intern if value.is_a?(String)
|
32
|
-
unless [:first, :all].include?(value)
|
33
|
-
raise ArgumentError, "Supported values for Property#array_matching are 'first' and 'all'"
|
34
|
-
end
|
35
|
-
@array_matching = value
|
36
|
-
end
|
37
|
-
|
38
|
-
def checkable
|
39
|
-
@checkable = true
|
40
|
-
end
|
41
|
-
|
42
|
-
def uncheckable
|
43
|
-
@checkable = false
|
44
|
-
end
|
45
|
-
|
46
|
-
def checkable?
|
47
|
-
if defined? @checkable
|
48
|
-
return @checkable
|
49
|
-
else
|
50
|
-
return true
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
10
|
+
# Because 'should' uses an array, we have a special method for handling
|
11
|
+
# it. We also want to keep copies of the original values, so that
|
12
|
+
# they can be retrieved and compared later when merging.
|
13
|
+
attr_reader :shouldorig
|
54
14
|
|
55
|
-
|
56
|
-
def self.value_name(name)
|
57
|
-
if value = value_collection.match?(name)
|
58
|
-
value.name
|
59
|
-
end
|
60
|
-
end
|
15
|
+
attr_writer :noop
|
61
16
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
value.send(option)
|
66
|
-
end
|
67
|
-
end
|
17
|
+
class << self
|
18
|
+
attr_accessor :unmanaged
|
19
|
+
attr_reader :name
|
68
20
|
|
69
|
-
#
|
70
|
-
#
|
71
|
-
|
72
|
-
|
73
|
-
# The second argument is an option hash; valid options are:
|
74
|
-
# * <tt>:method</tt>: The name of the method to define. Defaults to 'set_<value>'.
|
75
|
-
# * <tt>:required_features</tt>: A list of features this value requires.
|
76
|
-
# * <tt>:event</tt>: The event that should be returned when this value is set.
|
77
|
-
# * <tt>:call</tt>: When to call any associated block. The default value
|
78
|
-
# is ``instead``, which means to call the value instead of calling the
|
79
|
-
# provider. You can also specify ``before`` or ``after``, which will
|
80
|
-
# call both the block and the provider, according to the order you specify
|
81
|
-
# (the ``first`` refers to when the block is called, not the provider).
|
82
|
-
def self.newvalue(name, options = {}, &block)
|
83
|
-
value = value_collection.newvalue(name, options, &block)
|
84
|
-
|
85
|
-
if value.method and value.block
|
86
|
-
define_method(value.method, &value.block)
|
87
|
-
end
|
88
|
-
value
|
21
|
+
# Return array matching info, defaulting to just matching
|
22
|
+
# the first value.
|
23
|
+
def array_matching
|
24
|
+
@array_matching ||= :first
|
89
25
|
end
|
90
26
|
|
91
|
-
#
|
92
|
-
def
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
self.fail "The %s provider can not handle attribute %s" %
|
97
|
-
[provider.class.name, self.class.name]
|
98
|
-
end
|
27
|
+
# Set whether properties should match all values or just the first one.
|
28
|
+
def array_matching=(value)
|
29
|
+
value = value.intern if value.is_a?(String)
|
30
|
+
raise ArgumentError, "Supported values for Property#array_matching are 'first' and 'all'" unless [:first, :all].include?(value)
|
31
|
+
@array_matching = value
|
99
32
|
end
|
33
|
+
end
|
100
34
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
if method = self.class.value_option(name, :method) and self.respond_to?(method)
|
106
|
-
#self.debug "setting %s (currently %s)" % [value, self.retrieve]
|
107
|
-
|
108
|
-
begin
|
109
|
-
event = self.send(method)
|
110
|
-
rescue Puppet::Error
|
111
|
-
raise
|
112
|
-
rescue => detail
|
113
|
-
if Puppet[:trace]
|
114
|
-
puts detail.backtrace
|
115
|
-
end
|
116
|
-
error = Puppet::Error.new("Could not set %s on %s: %s" %
|
117
|
-
[value, self.class.name, detail], @resource.line, @resource.file)
|
118
|
-
error.set_backtrace detail.backtrace
|
119
|
-
raise error
|
120
|
-
end
|
121
|
-
elsif block = self.class.value_option(name, :block)
|
122
|
-
# FIXME It'd be better here to define a method, so that
|
123
|
-
# the blocks could return values.
|
124
|
-
event = self.instance_eval(&block)
|
125
|
-
else
|
126
|
-
devfail "Could not find method for value '%s'" % name
|
127
|
-
end
|
128
|
-
return event, name
|
35
|
+
# Look up a value's name, so we can find options and such.
|
36
|
+
def self.value_name(name)
|
37
|
+
if value = value_collection.match?(name)
|
38
|
+
value.name
|
129
39
|
end
|
40
|
+
end
|
130
41
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
return "defined '%s' as '%s'" %
|
136
|
-
[self.name, self.should_to_s(newvalue)]
|
137
|
-
elsif newvalue == :absent or newvalue == [:absent]
|
138
|
-
return "undefined %s from '%s'" %
|
139
|
-
[self.name, self.is_to_s(currentvalue)]
|
140
|
-
else
|
141
|
-
return "%s changed '%s' to '%s'" %
|
142
|
-
[self.name, self.is_to_s(currentvalue), self.should_to_s(newvalue)]
|
143
|
-
end
|
144
|
-
rescue Puppet::Error, Puppet::DevError
|
145
|
-
raise
|
146
|
-
rescue => detail
|
147
|
-
puts detail.backtrace if Puppet[:trace]
|
148
|
-
raise Puppet::DevError, "Could not convert change %s to string: %s" %
|
149
|
-
[self.name, detail]
|
150
|
-
end
|
42
|
+
# Retrieve an option set when a value was defined.
|
43
|
+
def self.value_option(name, option)
|
44
|
+
if value = value_collection.value(name)
|
45
|
+
value.send(option)
|
151
46
|
end
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
47
|
+
end
|
48
|
+
|
49
|
+
# Define a new valid value for a property. You must provide the value itself,
|
50
|
+
# usually as a symbol, or a regex to match the value.
|
51
|
+
#
|
52
|
+
# The first argument to the method is either the value itself or a regex.
|
53
|
+
# The second argument is an option hash; valid options are:
|
54
|
+
# * <tt>:method</tt>: The name of the method to define. Defaults to 'set_<value>'.
|
55
|
+
# * <tt>:required_features</tt>: A list of features this value requires.
|
56
|
+
# * <tt>:event</tt>: The event that should be returned when this value is set.
|
57
|
+
# * <tt>:call</tt>: When to call any associated block. The default value
|
58
|
+
# is ``instead``, which means to call the value instead of calling the
|
59
|
+
# provider. You can also specify ``before`` or ``after``, which will
|
60
|
+
# call both the block and the provider, according to the order you specify
|
61
|
+
# (the ``first`` refers to when the block is called, not the provider).
|
62
|
+
def self.newvalue(name, options = {}, &block)
|
63
|
+
value = value_collection.newvalue(name, options, &block)
|
64
|
+
|
65
|
+
define_method(value.method, &value.block) if value.method and value.block
|
66
|
+
value
|
67
|
+
end
|
68
|
+
|
69
|
+
# Call the provider method.
|
70
|
+
def call_provider(value)
|
71
|
+
provider.send(self.class.name.to_s + "=", value)
|
72
|
+
rescue NoMethodError
|
73
|
+
self.fail "The #{provider.class.name} provider can not handle attribute #{self.class.name}"
|
74
|
+
end
|
75
|
+
|
76
|
+
# Call the dynamically-created method associated with our value, if
|
77
|
+
# there is one.
|
78
|
+
def call_valuemethod(name, value)
|
79
|
+
if method = self.class.value_option(name, :method) and self.respond_to?(method)
|
80
|
+
begin
|
81
|
+
event = self.send(method)
|
82
|
+
rescue Puppet::Error
|
83
|
+
raise
|
84
|
+
rescue => detail
|
85
|
+
puts detail.backtrace if Puppet[:trace]
|
86
|
+
error = Puppet::Error.new("Could not set '#{value} on #{self.class.name}: #{detail}", @resource.line, @resource.file)
|
87
|
+
error.set_backtrace detail.backtrace
|
88
|
+
raise error
|
89
|
+
end
|
90
|
+
elsif block = self.class.value_option(name, :block)
|
91
|
+
# FIXME It'd be better here to define a method, so that
|
92
|
+
# the blocks could return values.
|
93
|
+
self.instance_eval(&block)
|
94
|
+
else
|
95
|
+
devfail "Could not find method for value '#{name}'"
|
179
96
|
end
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
97
|
+
end
|
98
|
+
|
99
|
+
# How should a property change be printed as a string?
|
100
|
+
def change_to_s(current_value, newvalue)
|
101
|
+
begin
|
102
|
+
if current_value == :absent
|
103
|
+
return "defined '#{name}' as '#{should_to_s(newvalue)}'"
|
104
|
+
elsif newvalue == :absent or newvalue == [:absent]
|
105
|
+
return "undefined '#{name}' from '#{is_to_s(current_value)}'"
|
106
|
+
else
|
107
|
+
return "#{name} changed '#{is_to_s(current_value)}' to '#{should_to_s(newvalue)}'"
|
108
|
+
end
|
109
|
+
rescue Puppet::Error, Puppet::DevError
|
110
|
+
raise
|
111
|
+
rescue => detail
|
112
|
+
puts detail.backtrace if Puppet[:trace]
|
113
|
+
raise Puppet::DevError, "Could not convert change '#{name}' to string: #{detail}"
|
190
114
|
end
|
115
|
+
end
|
191
116
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
# since we cannot fix it. Otherwise, we expect our should value
|
196
|
-
# to be an array, and if @is matches any of those values, then
|
197
|
-
# we consider it to be in-sync.
|
198
|
-
def insync?(is)
|
199
|
-
#debug "%s value is '%s', should be '%s'" %
|
200
|
-
# [self,self.is.inspect,self.should.inspect]
|
201
|
-
unless defined? @should and @should
|
202
|
-
return true
|
203
|
-
end
|
204
|
-
|
205
|
-
unless @should.is_a?(Array)
|
206
|
-
self.devfail "%s's should is not array" % self.class.name
|
207
|
-
end
|
208
|
-
|
209
|
-
# an empty array is analogous to no should values
|
210
|
-
if @should.empty?
|
211
|
-
return true
|
212
|
-
end
|
213
|
-
|
214
|
-
# Look for a matching value
|
215
|
-
if match_all?
|
216
|
-
return (is == @should or is == @should.collect { |v| v.to_s })
|
217
|
-
else
|
218
|
-
@should.each { |val|
|
219
|
-
if is == val or is == val.to_s
|
220
|
-
return true
|
221
|
-
end
|
222
|
-
}
|
223
|
-
end
|
224
|
-
|
225
|
-
# otherwise, return false
|
226
|
-
return false
|
227
|
-
end
|
117
|
+
# Figure out which event to return.
|
118
|
+
def event_name
|
119
|
+
value = self.should
|
228
120
|
|
229
|
-
|
230
|
-
# we need to set up a mechanism for pretty printing of the values
|
231
|
-
# default to just the values, but this way individual properties can
|
232
|
-
# override these methods
|
233
|
-
def is_to_s(currentvalue)
|
234
|
-
currentvalue
|
235
|
-
end
|
121
|
+
event_name = self.class.value_option(value, :event) and return event_name
|
236
122
|
|
237
|
-
|
238
|
-
def log(msg)
|
239
|
-
unless @resource[:loglevel]
|
240
|
-
self.devfail "Parent %s has no loglevel" % @resource.name
|
241
|
-
end
|
242
|
-
Puppet::Util::Log.create(
|
243
|
-
:level => @resource[:loglevel],
|
244
|
-
:message => msg,
|
245
|
-
:source => self
|
246
|
-
)
|
247
|
-
end
|
123
|
+
name == :ensure or return (name.to_s + "_changed").to_sym
|
248
124
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
125
|
+
return (resource.type.to_s + case value
|
126
|
+
when :present; "_created"
|
127
|
+
when :absent; "_removed"
|
128
|
+
else
|
129
|
+
"_changed"
|
130
|
+
end).to_sym
|
131
|
+
end
|
253
132
|
|
254
|
-
|
255
|
-
|
256
|
-
|
133
|
+
# Return a modified form of the resource event.
|
134
|
+
def event
|
135
|
+
resource.event :name => event_name, :desired_value => should, :property => self, :source_description => path
|
136
|
+
end
|
257
137
|
|
258
|
-
|
259
|
-
end
|
138
|
+
attr_reader :shadow
|
260
139
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
# instance of a given property class
|
265
|
-
def name
|
266
|
-
return self.class.name
|
267
|
-
end
|
140
|
+
# initialize our property
|
141
|
+
def initialize(hash = {})
|
142
|
+
super
|
268
143
|
|
269
|
-
|
270
|
-
|
271
|
-
# This is only here to make testing easier.
|
272
|
-
if @resource.respond_to?(:noop?)
|
273
|
-
@resource.noop?
|
274
|
-
else
|
275
|
-
if defined?(@noop)
|
276
|
-
@noop
|
277
|
-
else
|
278
|
-
Puppet[:noop]
|
279
|
-
end
|
280
|
-
end
|
144
|
+
if ! self.metaparam? and klass = Puppet::Type.metaparamclass(self.class.name)
|
145
|
+
setup_shadow(klass)
|
281
146
|
end
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
147
|
+
end
|
148
|
+
|
149
|
+
# Determine whether the property is in-sync or not. If @should is
|
150
|
+
# not defined or is set to a non-true value, then we do not have
|
151
|
+
# a valid value for it and thus consider the property to be in-sync
|
152
|
+
# since we cannot fix it. Otherwise, we expect our should value
|
153
|
+
# to be an array, and if @is matches any of those values, then
|
154
|
+
# we consider it to be in-sync.
|
155
|
+
def insync?(is)
|
156
|
+
return true unless @should
|
157
|
+
|
158
|
+
self.devfail "#{self.class.name}'s should is not array" unless @should.is_a?(Array)
|
159
|
+
|
160
|
+
# an empty array is analogous to no should values
|
161
|
+
return true if @should.empty?
|
162
|
+
|
163
|
+
# Look for a matching value
|
164
|
+
return (is == @should or is == @should.collect { |v| v.to_s }) if match_all?
|
165
|
+
|
166
|
+
@should.each { |val| return true if is == val or is == val.to_s }
|
167
|
+
|
168
|
+
# otherwise, return false
|
169
|
+
false
|
170
|
+
end
|
171
|
+
|
172
|
+
# because the @should and @is vars might be in weird formats,
|
173
|
+
# we need to set up a mechanism for pretty printing of the values
|
174
|
+
# default to just the values, but this way individual properties can
|
175
|
+
# override these methods
|
176
|
+
def is_to_s(currentvalue)
|
177
|
+
currentvalue
|
178
|
+
end
|
179
|
+
|
180
|
+
# Send a log message.
|
181
|
+
def log(msg)
|
182
|
+
|
183
|
+
Puppet::Util::Log.create(
|
184
|
+
|
185
|
+
:level => resource[:loglevel],
|
186
|
+
:message => msg,
|
187
|
+
|
188
|
+
:source => self
|
189
|
+
)
|
190
|
+
end
|
191
|
+
|
192
|
+
# Should we match all values, or just the first?
|
193
|
+
def match_all?
|
194
|
+
self.class.array_matching == :all
|
195
|
+
end
|
196
|
+
|
197
|
+
# Execute our shadow's munge code, too, if we have one.
|
198
|
+
def munge(value)
|
199
|
+
self.shadow.munge(value) if self.shadow
|
200
|
+
|
201
|
+
super
|
202
|
+
end
|
203
|
+
|
204
|
+
# each property class must define the name method, and property instances
|
205
|
+
# do not change that name
|
206
|
+
# this implicitly means that a given object can only have one property
|
207
|
+
# instance of a given property class
|
208
|
+
def name
|
209
|
+
self.class.name
|
210
|
+
end
|
211
|
+
|
212
|
+
# for testing whether we should actually do anything
|
213
|
+
def noop
|
214
|
+
# This is only here to make testing easier.
|
215
|
+
if @resource.respond_to?(:noop?)
|
216
|
+
@resource.noop?
|
217
|
+
else
|
218
|
+
if defined?(@noop)
|
219
|
+
@noop
|
220
|
+
else
|
221
|
+
Puppet[:noop]
|
222
|
+
end
|
288
223
|
end
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
224
|
+
end
|
225
|
+
|
226
|
+
# By default, call the method associated with the property name on our
|
227
|
+
# provider. In other words, if the property name is 'gid', we'll call
|
228
|
+
# 'provider.gid' to retrieve the current value.
|
229
|
+
def retrieve
|
230
|
+
provider.send(self.class.name)
|
231
|
+
end
|
232
|
+
|
233
|
+
# Set our value, using the provider, an associated block, or both.
|
234
|
+
def set(value)
|
235
|
+
# Set a name for looking up associated options like the event.
|
236
|
+
name = self.class.value_name(value)
|
237
|
+
|
238
|
+
call = self.class.value_option(name, :call) || :none
|
239
|
+
|
240
|
+
if call == :instead
|
241
|
+
call_valuemethod(name, value)
|
242
|
+
elsif call == :none
|
243
|
+
# They haven't provided a block, and our parent does not have
|
244
|
+
# a provider, so we have no idea how to handle this.
|
245
|
+
self.fail "#{self.class.name} cannot handle values of type #{value.inspect}" unless @resource.provider
|
246
|
+
call_provider(value)
|
247
|
+
else
|
248
|
+
# LAK:NOTE 20081031 This is a change in behaviour -- you could
|
249
|
+
# previously specify :call => [;before|:after], which would call
|
250
|
+
# the setter *in addition to* the block. I'm convinced this
|
251
|
+
# was never used, and it makes things unecessarily complicated.
|
252
|
+
# If you want to specify a block and still call the setter, then
|
253
|
+
# do so in the block.
|
254
|
+
devfail "Cannot use obsolete :call value '#{call}' for property '#{self.class.name}'"
|
318
255
|
end
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
end
|
340
|
-
else
|
341
|
-
return nil
|
342
|
-
end
|
256
|
+
end
|
257
|
+
|
258
|
+
# If there's a shadowing metaparam, instantiate it now.
|
259
|
+
# This allows us to create a property or parameter with the
|
260
|
+
# same name as a metaparameter, and the metaparam will only be
|
261
|
+
# stored as a shadow.
|
262
|
+
def setup_shadow(klass)
|
263
|
+
@shadow = klass.new(:resource => self.resource)
|
264
|
+
end
|
265
|
+
|
266
|
+
# Only return the first value
|
267
|
+
def should
|
268
|
+
return nil unless defined?(@should)
|
269
|
+
|
270
|
+
self.devfail "should for #{self.class.name} on #{resource.name} is not an array" unless @should.is_a?(Array)
|
271
|
+
|
272
|
+
if match_all?
|
273
|
+
return @should.collect { |val| self.unmunge(val) }
|
274
|
+
else
|
275
|
+
return self.unmunge(@should[0])
|
343
276
|
end
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
def validate_features_per_value(value)
|
379
|
-
if features = self.class.value_option(self.class.value_name(value), :required_features)
|
380
|
-
raise ArgumentError, "Provider must have features '%s' to set '%s' to '%s'" % [[features].flatten.join(", "), self.class.name, value] unless provider.satisfies?(features)
|
381
|
-
end
|
382
|
-
end
|
383
|
-
|
384
|
-
# Just return any should value we might have.
|
385
|
-
def value
|
386
|
-
self.should
|
387
|
-
end
|
388
|
-
|
389
|
-
# Match the Parameter interface, but we really just use 'should' internally.
|
390
|
-
# Note that the should= method does all of the validation and such.
|
391
|
-
def value=(value)
|
392
|
-
self.should = value
|
393
|
-
end
|
394
|
-
|
395
|
-
# This property will get automatically added to any type that responds
|
396
|
-
# to the methods 'exists?', 'create', and 'destroy'.
|
397
|
-
class Ensure < Puppet::Property
|
398
|
-
@name = :ensure
|
399
|
-
|
400
|
-
def self.defaultvalues
|
401
|
-
newvalue(:present) do
|
402
|
-
if @resource.provider and @resource.provider.respond_to?(:create)
|
403
|
-
@resource.provider.create
|
404
|
-
else
|
405
|
-
@resource.create
|
406
|
-
end
|
407
|
-
nil # return nil so the event is autogenerated
|
408
|
-
end
|
409
|
-
|
410
|
-
newvalue(:absent) do
|
411
|
-
if @resource.provider and @resource.provider.respond_to?(:destroy)
|
412
|
-
@resource.provider.destroy
|
413
|
-
else
|
414
|
-
@resource.destroy
|
415
|
-
end
|
416
|
-
nil # return nil so the event is autogenerated
|
417
|
-
end
|
418
|
-
|
419
|
-
defaultto do
|
420
|
-
if @resource.managed?
|
421
|
-
:present
|
422
|
-
else
|
423
|
-
nil
|
424
|
-
end
|
425
|
-
end
|
426
|
-
|
427
|
-
# This doc will probably get overridden
|
428
|
-
@doc ||= "The basic property that the resource should be in."
|
429
|
-
end
|
430
|
-
|
431
|
-
def self.inherited(sub)
|
432
|
-
# Add in the two properties that everyone will have.
|
433
|
-
sub.class_eval do
|
434
|
-
end
|
435
|
-
end
|
436
|
-
|
437
|
-
def change_to_s(currentvalue, newvalue)
|
438
|
-
begin
|
439
|
-
if currentvalue == :absent or currentvalue.nil?
|
440
|
-
return "created"
|
441
|
-
elsif newvalue == :absent
|
442
|
-
return "removed"
|
443
|
-
else
|
444
|
-
return "%s changed '%s' to '%s'" %
|
445
|
-
[self.name, self.is_to_s(currentvalue), self.should_to_s(newvalue)]
|
446
|
-
end
|
447
|
-
rescue Puppet::Error, Puppet::DevError
|
448
|
-
raise
|
449
|
-
rescue => detail
|
450
|
-
raise Puppet::DevError, "Could not convert change %s to string: %s" %
|
451
|
-
[self.name, detail]
|
452
|
-
end
|
453
|
-
end
|
454
|
-
|
455
|
-
def retrieve
|
456
|
-
# XXX This is a problem -- whether the object exists or not often
|
457
|
-
# depends on the results of other properties, yet we're the first property
|
458
|
-
# to get checked, which means that those other properties do not have
|
459
|
-
# @is values set. This seems to be the source of quite a few bugs,
|
460
|
-
# although they're mostly logging bugs, not functional ones.
|
461
|
-
if prov = @resource.provider and prov.respond_to?(:exists?)
|
462
|
-
result = prov.exists?
|
463
|
-
elsif @resource.respond_to?(:exists?)
|
464
|
-
result = @resource.exists?
|
465
|
-
else
|
466
|
-
raise Puppet::DevError, "No ability to determine if %s exists" %
|
467
|
-
@resource.class.name
|
468
|
-
end
|
469
|
-
if result
|
470
|
-
return :present
|
471
|
-
else
|
472
|
-
return :absent
|
473
|
-
end
|
474
|
-
end
|
475
|
-
|
476
|
-
# If they're talking about the thing at all, they generally want to
|
477
|
-
# say it should exist.
|
478
|
-
#defaultto :present
|
479
|
-
defaultto do
|
480
|
-
if @resource.managed?
|
481
|
-
:present
|
482
|
-
else
|
483
|
-
nil
|
484
|
-
end
|
485
|
-
end
|
277
|
+
end
|
278
|
+
|
279
|
+
# Set the should value.
|
280
|
+
def should=(values)
|
281
|
+
values = [values] unless values.is_a?(Array)
|
282
|
+
|
283
|
+
@shouldorig = values
|
284
|
+
|
285
|
+
values.each { |val| validate(val) }
|
286
|
+
@should = values.collect { |val| self.munge(val) }
|
287
|
+
end
|
288
|
+
|
289
|
+
def should_to_s(newvalue)
|
290
|
+
[newvalue].flatten.join(" ")
|
291
|
+
end
|
292
|
+
|
293
|
+
def sync
|
294
|
+
devfail "Got a nil value for should" unless should
|
295
|
+
set(should)
|
296
|
+
end
|
297
|
+
|
298
|
+
# Verify that the passed value is valid.
|
299
|
+
# If the developer uses a 'validate' hook, this method will get overridden.
|
300
|
+
def unsafe_validate(value)
|
301
|
+
super
|
302
|
+
validate_features_per_value(value)
|
303
|
+
end
|
304
|
+
|
305
|
+
# Make sure that we've got all of the required features for a given value.
|
306
|
+
def validate_features_per_value(value)
|
307
|
+
if features = self.class.value_option(self.class.value_name(value), :required_features)
|
308
|
+
features = Array(features)
|
309
|
+
needed_features = features.collect { |f| f.to_s }.join(", ")
|
310
|
+
raise ArgumentError, "Provider must have features '#{needed_features}' to set '#{self.class.name}' to '#{value}'" unless provider.satisfies?(features)
|
486
311
|
end
|
312
|
+
end
|
313
|
+
|
314
|
+
# Just return any should value we might have.
|
315
|
+
def value
|
316
|
+
self.should
|
317
|
+
end
|
318
|
+
|
319
|
+
# Match the Parameter interface, but we really just use 'should' internally.
|
320
|
+
# Note that the should= method does all of the validation and such.
|
321
|
+
def value=(value)
|
322
|
+
self.should = value
|
323
|
+
end
|
487
324
|
end
|