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
@@ -0,0 +1,256 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/util/settings'
|
6
|
+
require 'puppet/util/settings/file_setting'
|
7
|
+
|
8
|
+
describe Puppet::Util::Settings::FileSetting do
|
9
|
+
FileSetting = Puppet::Util::Settings::FileSetting
|
10
|
+
|
11
|
+
before do
|
12
|
+
@basepath = Puppet.features.posix? ? "/somepath" : "C:/somepath"
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "when determining whether the service user should be used" do
|
16
|
+
before do
|
17
|
+
@settings = mock 'settings'
|
18
|
+
@settings.stubs(:[]).with(:mkusers).returns false
|
19
|
+
@settings.stubs(:service_user_available?).returns true
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should be true if the service user is available" do
|
23
|
+
@settings.expects(:service_user_available?).returns true
|
24
|
+
setting = FileSetting.new(:settings => @settings, :owner => "root", :desc => "a setting")
|
25
|
+
setting.should be_use_service_user
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should be true if 'mkusers' is set" do
|
29
|
+
@settings.expects(:[]).with(:mkusers).returns true
|
30
|
+
setting = FileSetting.new(:settings => @settings, :owner => "root", :desc => "a setting")
|
31
|
+
setting.should be_use_service_user
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should be false if the service user is not available and 'mkusers' is unset" do
|
35
|
+
setting = FileSetting.new(:settings => @settings, :owner => "root", :desc => "a setting")
|
36
|
+
setting.should be_use_service_user
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "when setting the owner" do
|
41
|
+
it "should allow the file to be owned by root" do
|
42
|
+
root_owner = lambda { FileSetting.new(:settings => mock("settings"), :owner => "root", :desc => "a setting") }
|
43
|
+
root_owner.should_not raise_error
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should allow the file to be owned by the service user" do
|
47
|
+
service_owner = lambda { FileSetting.new(:settings => mock("settings"), :owner => "service", :desc => "a setting") }
|
48
|
+
service_owner.should_not raise_error
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should allow the ownership of the file to be unspecified" do
|
52
|
+
no_owner = lambda { FileSetting.new(:settings => mock("settings"), :desc => "a setting") }
|
53
|
+
no_owner.should_not raise_error
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should not allow other owners" do
|
57
|
+
invalid_owner = lambda { FileSetting.new(:settings => mock("settings"), :owner => "invalid", :desc => "a setting") }
|
58
|
+
invalid_owner.should raise_error(FileSetting::SettingError)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "when reading the owner" do
|
63
|
+
it "should be root when the setting specifies root" do
|
64
|
+
setting = FileSetting.new(:settings => mock("settings"), :owner => "root", :desc => "a setting")
|
65
|
+
setting.owner.should == "root"
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should be the owner of the service when the setting specifies service and the service user should be used" do
|
69
|
+
settings = mock("settings")
|
70
|
+
settings.stubs(:[]).returns "the_service"
|
71
|
+
|
72
|
+
setting = FileSetting.new(:settings => settings, :owner => "service", :desc => "a setting")
|
73
|
+
setting.expects(:use_service_user?).returns true
|
74
|
+
setting.owner.should == "the_service"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should be the root when the setting specifies service and the service user should not be used" do
|
78
|
+
settings = mock("settings")
|
79
|
+
settings.stubs(:[]).returns "the_service"
|
80
|
+
|
81
|
+
setting = FileSetting.new(:settings => settings, :owner => "service", :desc => "a setting")
|
82
|
+
setting.expects(:use_service_user?).returns false
|
83
|
+
setting.owner.should == "root"
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should be nil when the owner is unspecified" do
|
87
|
+
FileSetting.new(:settings => mock("settings"), :desc => "a setting").owner.should be_nil
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "when setting the group" do
|
92
|
+
it "should allow the group to be service" do
|
93
|
+
service_group = lambda { FileSetting.new(:settings => mock("settings"), :group => "service", :desc => "a setting") }
|
94
|
+
service_group.should_not raise_error
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should allow the group to be unspecified" do
|
98
|
+
no_group = lambda { FileSetting.new(:settings => mock("settings"), :desc => "a setting") }
|
99
|
+
no_group.should_not raise_error
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should not allow invalid groups" do
|
103
|
+
invalid_group = lambda { FileSetting.new(:settings => mock("settings"), :group => "invalid", :desc => "a setting") }
|
104
|
+
invalid_group.should raise_error(FileSetting::SettingError)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe "when reading the group" do
|
109
|
+
it "should be service when the setting specifies service" do
|
110
|
+
setting = FileSetting.new(:settings => mock("settings", :[] => "the_service"), :group => "service", :desc => "a setting")
|
111
|
+
setting.group.should == "the_service"
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should be nil when the group is unspecified" do
|
115
|
+
FileSetting.new(:settings => mock("settings"), :desc => "a setting").group.should be_nil
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should be able to be converted into a resource" do
|
120
|
+
FileSetting.new(:settings => mock("settings"), :desc => "eh").should respond_to(:to_resource)
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "when being converted to a resource" do
|
124
|
+
before do
|
125
|
+
@settings = mock 'settings'
|
126
|
+
@file = Puppet::Util::Settings::FileSetting.new(:settings => @settings, :desc => "eh", :name => :mydir, :section => "mysect")
|
127
|
+
@settings.stubs(:value).with(:mydir).returns @basepath
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should skip files that cannot determine their types" do
|
131
|
+
@file.expects(:type).returns nil
|
132
|
+
@file.to_resource.should be_nil
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should skip non-existent files if 'create_files' is not enabled" do
|
136
|
+
@file.expects(:create_files?).returns false
|
137
|
+
@file.expects(:type).returns :file
|
138
|
+
File.expects(:exist?).with(@basepath).returns false
|
139
|
+
@file.to_resource.should be_nil
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should manage existent files even if 'create_files' is not enabled" do
|
143
|
+
@file.expects(:create_files?).returns false
|
144
|
+
@file.expects(:type).returns :file
|
145
|
+
File.expects(:exist?).with(@basepath).returns true
|
146
|
+
@file.to_resource.should be_instance_of(Puppet::Resource)
|
147
|
+
end
|
148
|
+
|
149
|
+
describe "on POSIX systems" do
|
150
|
+
confine "no /dev on Microsoft Windows" => Puppet.features.posix?
|
151
|
+
|
152
|
+
it "should skip files in /dev" do
|
153
|
+
@settings.stubs(:value).with(:mydir).returns "/dev/file"
|
154
|
+
@file.to_resource.should be_nil
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should skip files whose paths are not strings" do
|
159
|
+
@settings.stubs(:value).with(:mydir).returns :foo
|
160
|
+
@file.to_resource.should be_nil
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should return a file resource with the path set appropriately" do
|
164
|
+
resource = @file.to_resource
|
165
|
+
resource.type.should == "File"
|
166
|
+
resource.title.should == @basepath
|
167
|
+
end
|
168
|
+
|
169
|
+
it "should fully qualified returned files if necessary (#795)" do
|
170
|
+
@settings.stubs(:value).with(:mydir).returns "myfile"
|
171
|
+
@file.to_resource.title.should == File.join(Dir.getwd, "myfile")
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should set the mode on the file if a mode is provided" do
|
175
|
+
@file.mode = 0755
|
176
|
+
|
177
|
+
@file.to_resource[:mode].should == 0755
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should not set the mode on a the file if manage_internal_file_permissions is disabled" do
|
181
|
+
Puppet[:manage_internal_file_permissions] = false
|
182
|
+
|
183
|
+
@file.stubs(:mode).returns(0755)
|
184
|
+
|
185
|
+
@file.to_resource[:mode].should == nil
|
186
|
+
end
|
187
|
+
|
188
|
+
it "should set the owner if running as root and the owner is provided" do
|
189
|
+
Puppet.features.expects(:root?).returns true
|
190
|
+
@file.stubs(:owner).returns "foo"
|
191
|
+
@file.to_resource[:owner].should == "foo"
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should not set the owner if manage_internal_file_permissions is disabled" do
|
195
|
+
Puppet[:manage_internal_file_permissions] = false
|
196
|
+
Puppet.features.stubs(:root?).returns true
|
197
|
+
@file.stubs(:owner).returns "foo"
|
198
|
+
|
199
|
+
@file.to_resource[:owner].should == nil
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should set the group if running as root and the group is provided" do
|
203
|
+
Puppet.features.expects(:root?).returns true
|
204
|
+
@file.stubs(:group).returns "foo"
|
205
|
+
@file.to_resource[:group].should == "foo"
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should not set the group if manage_internal_file_permissions is disabled" do
|
209
|
+
Puppet[:manage_internal_file_permissions] = false
|
210
|
+
Puppet.features.stubs(:root?).returns true
|
211
|
+
@file.stubs(:group).returns "foo"
|
212
|
+
|
213
|
+
@file.to_resource[:group].should == nil
|
214
|
+
end
|
215
|
+
|
216
|
+
|
217
|
+
it "should not set owner if not running as root" do
|
218
|
+
Puppet.features.expects(:root?).returns false
|
219
|
+
@file.stubs(:owner).returns "foo"
|
220
|
+
@file.to_resource[:owner].should be_nil
|
221
|
+
end
|
222
|
+
|
223
|
+
it "should not set group if not running as root" do
|
224
|
+
Puppet.features.expects(:root?).returns false
|
225
|
+
@file.stubs(:group).returns "foo"
|
226
|
+
@file.to_resource[:group].should be_nil
|
227
|
+
end
|
228
|
+
|
229
|
+
it "should set :ensure to the file type" do
|
230
|
+
@file.expects(:type).returns :directory
|
231
|
+
@file.to_resource[:ensure].should == :directory
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should set the loglevel to :debug" do
|
235
|
+
@file.to_resource[:loglevel].should == :debug
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should set the backup to false" do
|
239
|
+
@file.to_resource[:backup].should be_false
|
240
|
+
end
|
241
|
+
|
242
|
+
it "should tag the resource with the settings section" do
|
243
|
+
@file.expects(:section).returns "mysect"
|
244
|
+
@file.to_resource.should be_tagged("mysect")
|
245
|
+
end
|
246
|
+
|
247
|
+
it "should tag the resource with the setting name" do
|
248
|
+
@file.to_resource.should be_tagged("mydir")
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should tag the resource with 'settings'" do
|
252
|
+
@file.to_resource.should be_tagged("settings")
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
@@ -0,0 +1,1099 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Util::Settings do
|
6
|
+
describe "when specifying defaults" do
|
7
|
+
before do
|
8
|
+
@settings = Puppet::Util::Settings.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should start with no defined parameters" do
|
12
|
+
@settings.params.length.should == 0
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should allow specification of default values associated with a section as an array" do
|
16
|
+
@settings.setdefaults(:section, :myvalue => ["defaultval", "my description"])
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should not allow duplicate parameter specifications" do
|
20
|
+
@settings.setdefaults(:section, :myvalue => ["a", "b"])
|
21
|
+
lambda { @settings.setdefaults(:section, :myvalue => ["c", "d"]) }.should raise_error(ArgumentError)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should allow specification of default values associated with a section as a hash" do
|
25
|
+
@settings.setdefaults(:section, :myvalue => {:default => "defaultval", :desc => "my description"})
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should consider defined parameters to be valid" do
|
29
|
+
@settings.setdefaults(:section, :myvalue => ["defaultval", "my description"])
|
30
|
+
@settings.valid?(:myvalue).should be_true
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should require a description when defaults are specified with an array" do
|
34
|
+
lambda { @settings.setdefaults(:section, :myvalue => ["a value"]) }.should raise_error(ArgumentError)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should require a description when defaults are specified with a hash" do
|
38
|
+
lambda { @settings.setdefaults(:section, :myvalue => {:default => "a value"}) }.should raise_error(ArgumentError)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should raise an error if we can't guess the type" do
|
42
|
+
lambda { @settings.setdefaults(:section, :myvalue => {:default => Object.new, :desc => "An impossible object"}) }.should raise_error(ArgumentError)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should support specifying owner, group, and mode when specifying files" do
|
46
|
+
@settings.setdefaults(:section, :myvalue => {:default => "/some/file", :owner => "service", :mode => "boo", :group => "service", :desc => "whatever"})
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should support specifying a short name" do
|
50
|
+
@settings.setdefaults(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"})
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should support specifying the setting type" do
|
54
|
+
@settings.setdefaults(:section, :myvalue => {:default => "/w", :desc => "b", :type => :setting})
|
55
|
+
@settings.setting(:myvalue).should be_instance_of(Puppet::Util::Settings::Setting)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should fail if an invalid setting type is specified" do
|
59
|
+
lambda { @settings.setdefaults(:section, :myvalue => {:default => "w", :desc => "b", :type => :foo}) }.should raise_error(ArgumentError)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should fail when short names conflict" do
|
63
|
+
@settings.setdefaults(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"})
|
64
|
+
lambda { @settings.setdefaults(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"}) }.should raise_error(ArgumentError)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "when setting values" do
|
69
|
+
before do
|
70
|
+
@settings = Puppet::Util::Settings.new
|
71
|
+
@settings.setdefaults :main, :myval => ["val", "desc"]
|
72
|
+
@settings.setdefaults :main, :bool => [true, "desc"]
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should provide a method for setting values from other objects" do
|
76
|
+
@settings[:myval] = "something else"
|
77
|
+
@settings[:myval].should == "something else"
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should support a getopt-specific mechanism for setting values" do
|
81
|
+
@settings.handlearg("--myval", "newval")
|
82
|
+
@settings[:myval].should == "newval"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should support a getopt-specific mechanism for turning booleans off" do
|
86
|
+
@settings[:bool] = true
|
87
|
+
@settings.handlearg("--no-bool", "")
|
88
|
+
@settings[:bool].should == false
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should support a getopt-specific mechanism for turning booleans on" do
|
92
|
+
# Turn it off first
|
93
|
+
@settings[:bool] = false
|
94
|
+
@settings.handlearg("--bool", "")
|
95
|
+
@settings[:bool].should == true
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should consider a cli setting with no argument to be a boolean" do
|
99
|
+
# Turn it off first
|
100
|
+
@settings[:bool] = false
|
101
|
+
@settings.handlearg("--bool")
|
102
|
+
@settings[:bool].should == true
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should consider a cli setting with an empty string as an argument to be a boolean, if the setting itself is a boolean" do
|
106
|
+
# Turn it off first
|
107
|
+
@settings[:bool] = false
|
108
|
+
@settings.handlearg("--bool", "")
|
109
|
+
@settings[:bool].should == true
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should consider a cli setting with an empty string as an argument to be an empty argument, if the setting itself is not a boolean" do
|
113
|
+
@settings[:myval] = "bob"
|
114
|
+
@settings.handlearg("--myval", "")
|
115
|
+
@settings[:myval].should == ""
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should consider a cli setting with a boolean as an argument to be a boolean" do
|
119
|
+
# Turn it off first
|
120
|
+
@settings[:bool] = false
|
121
|
+
@settings.handlearg("--bool", "true")
|
122
|
+
@settings[:bool].should == true
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should not consider a cli setting of a non boolean with a boolean as an argument to be a boolean" do
|
126
|
+
# Turn it off first
|
127
|
+
@settings[:myval] = "bob"
|
128
|
+
@settings.handlearg("--no-myval", "")
|
129
|
+
@settings[:myval].should == ""
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should clear the cache when setting getopt-specific values" do
|
133
|
+
@settings.setdefaults :mysection, :one => ["whah", "yay"], :two => ["$one yay", "bah"]
|
134
|
+
@settings[:two].should == "whah yay"
|
135
|
+
@settings.handlearg("--one", "else")
|
136
|
+
@settings[:two].should == "else yay"
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should not clear other values when setting getopt-specific values" do
|
140
|
+
@settings[:myval] = "yay"
|
141
|
+
@settings.handlearg("--no-bool", "")
|
142
|
+
@settings[:myval].should == "yay"
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should clear the list of used sections" do
|
146
|
+
@settings.expects(:clearused)
|
147
|
+
@settings[:myval] = "yay"
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should call passed blocks when values are set" do
|
151
|
+
values = []
|
152
|
+
@settings.setdefaults(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
|
153
|
+
values.should == []
|
154
|
+
|
155
|
+
@settings[:hooker] = "something"
|
156
|
+
values.should == %w{something}
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should call passed blocks when values are set via the command line" do
|
160
|
+
values = []
|
161
|
+
@settings.setdefaults(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
|
162
|
+
values.should == []
|
163
|
+
|
164
|
+
@settings.handlearg("--hooker", "yay")
|
165
|
+
|
166
|
+
values.should == %w{yay}
|
167
|
+
end
|
168
|
+
|
169
|
+
it "should provide an option to call passed blocks during definition" do
|
170
|
+
values = []
|
171
|
+
@settings.setdefaults(:section, :hooker => {:default => "yay", :desc => "boo", :call_on_define => true, :hook => lambda { |v| values << v }})
|
172
|
+
values.should == %w{yay}
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should pass the fully interpolated value to the hook when called on definition" do
|
176
|
+
values = []
|
177
|
+
@settings.setdefaults(:section, :one => ["test", "a"])
|
178
|
+
@settings.setdefaults(:section, :hooker => {:default => "$one/yay", :desc => "boo", :call_on_define => true, :hook => lambda { |v| values << v }})
|
179
|
+
values.should == %w{test/yay}
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should munge values using the setting-specific methods" do
|
183
|
+
@settings[:bool] = "false"
|
184
|
+
@settings[:bool].should == false
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should prefer cli values to values set in Ruby code" do
|
188
|
+
@settings.handlearg("--myval", "cliarg")
|
189
|
+
@settings[:myval] = "memarg"
|
190
|
+
@settings[:myval].should == "cliarg"
|
191
|
+
end
|
192
|
+
|
193
|
+
it "should clear the list of environments" do
|
194
|
+
Puppet::Node::Environment.expects(:clear).at_least(1)
|
195
|
+
@settings[:myval] = "memarg"
|
196
|
+
end
|
197
|
+
|
198
|
+
it "should raise an error if we try to set 'name'" do
|
199
|
+
lambda{ @settings[:name] = "foo" }.should raise_error(ArgumentError)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should raise an error if we try to set 'run_mode'" do
|
203
|
+
lambda{ @settings[:run_mode] = "foo" }.should raise_error(ArgumentError)
|
204
|
+
end
|
205
|
+
|
206
|
+
it "should warn and use [master] if we ask for [puppetmasterd]" do
|
207
|
+
Puppet.expects(:warning)
|
208
|
+
@settings.set_value(:myval, "foo", :puppetmasterd)
|
209
|
+
|
210
|
+
@settings.stubs(:run_mode).returns(:master)
|
211
|
+
@settings.value(:myval).should == "foo"
|
212
|
+
end
|
213
|
+
|
214
|
+
it "should warn and use [agent] if we ask for [puppetd]" do
|
215
|
+
Puppet.expects(:warning)
|
216
|
+
@settings.set_value(:myval, "foo", :puppetd)
|
217
|
+
|
218
|
+
@settings.stubs(:run_mode).returns(:agent)
|
219
|
+
@settings.value(:myval).should == "foo"
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
describe "when returning values" do
|
224
|
+
before do
|
225
|
+
@settings = Puppet::Util::Settings.new
|
226
|
+
@settings.setdefaults :section, :config => ["/my/file", "eh"], :one => ["ONE", "a"], :two => ["$one TWO", "b"], :three => ["$one $two THREE", "c"], :four => ["$two $three FOUR", "d"]
|
227
|
+
FileTest.stubs(:exist?).returns true
|
228
|
+
end
|
229
|
+
|
230
|
+
it "should provide a mechanism for returning set values" do
|
231
|
+
@settings[:one] = "other"
|
232
|
+
@settings[:one].should == "other"
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should interpolate default values for other parameters into returned parameter values" do
|
236
|
+
@settings[:one].should == "ONE"
|
237
|
+
@settings[:two].should == "ONE TWO"
|
238
|
+
@settings[:three].should == "ONE ONE TWO THREE"
|
239
|
+
end
|
240
|
+
|
241
|
+
it "should interpolate default values that themselves need to be interpolated" do
|
242
|
+
@settings[:four].should == "ONE TWO ONE ONE TWO THREE FOUR"
|
243
|
+
end
|
244
|
+
|
245
|
+
it "should provide a method for returning uninterpolated values" do
|
246
|
+
@settings[:two] = "$one tw0"
|
247
|
+
@settings.uninterpolated_value(:two).should == "$one tw0"
|
248
|
+
@settings.uninterpolated_value(:four).should == "$two $three FOUR"
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should interpolate set values for other parameters into returned parameter values" do
|
252
|
+
@settings[:one] = "on3"
|
253
|
+
@settings[:two] = "$one tw0"
|
254
|
+
@settings[:three] = "$one $two thr33"
|
255
|
+
@settings[:four] = "$one $two $three f0ur"
|
256
|
+
@settings[:one].should == "on3"
|
257
|
+
@settings[:two].should == "on3 tw0"
|
258
|
+
@settings[:three].should == "on3 on3 tw0 thr33"
|
259
|
+
@settings[:four].should == "on3 on3 tw0 on3 on3 tw0 thr33 f0ur"
|
260
|
+
end
|
261
|
+
|
262
|
+
it "should not cache interpolated values such that stale information is returned" do
|
263
|
+
@settings[:two].should == "ONE TWO"
|
264
|
+
@settings[:one] = "one"
|
265
|
+
@settings[:two].should == "one TWO"
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should not cache values such that information from one environment is returned for another environment" do
|
269
|
+
text = "[env1]\none = oneval\n[env2]\none = twoval\n"
|
270
|
+
@settings.stubs(:read_file).returns(text)
|
271
|
+
@settings.parse
|
272
|
+
|
273
|
+
@settings.value(:one, "env1").should == "oneval"
|
274
|
+
@settings.value(:one, "env2").should == "twoval"
|
275
|
+
end
|
276
|
+
|
277
|
+
it "should have a run_mode that defaults to user" do
|
278
|
+
@settings.run_mode.should == :user
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
describe "when choosing which value to return" do
|
283
|
+
before do
|
284
|
+
@settings = Puppet::Util::Settings.new
|
285
|
+
@settings.setdefaults :section,
|
286
|
+
:config => ["/my/file", "a"],
|
287
|
+
:one => ["ONE", "a"]
|
288
|
+
FileTest.stubs(:exist?).returns true
|
289
|
+
Puppet.stubs(:run_mode).returns stub('run_mode', :name => :mymode)
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should return default values if no values have been set" do
|
293
|
+
@settings[:one].should == "ONE"
|
294
|
+
end
|
295
|
+
|
296
|
+
it "should return values set on the cli before values set in the configuration file" do
|
297
|
+
text = "[main]\none = fileval\n"
|
298
|
+
@settings.stubs(:read_file).returns(text)
|
299
|
+
@settings.handlearg("--one", "clival")
|
300
|
+
@settings.parse
|
301
|
+
|
302
|
+
@settings[:one].should == "clival"
|
303
|
+
end
|
304
|
+
|
305
|
+
it "should return values set on the cli before values set in Ruby" do
|
306
|
+
@settings[:one] = "rubyval"
|
307
|
+
@settings.handlearg("--one", "clival")
|
308
|
+
@settings[:one].should == "clival"
|
309
|
+
end
|
310
|
+
|
311
|
+
it "should return values set in the mode-specific section before values set in the main section" do
|
312
|
+
text = "[main]\none = mainval\n[mymode]\none = modeval\n"
|
313
|
+
@settings.stubs(:read_file).returns(text)
|
314
|
+
@settings.parse
|
315
|
+
|
316
|
+
@settings[:one].should == "modeval"
|
317
|
+
end
|
318
|
+
|
319
|
+
it "should not return values outside of its search path" do
|
320
|
+
text = "[other]\none = oval\n"
|
321
|
+
file = "/some/file"
|
322
|
+
@settings.stubs(:read_file).returns(text)
|
323
|
+
@settings.parse
|
324
|
+
@settings[:one].should == "ONE"
|
325
|
+
end
|
326
|
+
|
327
|
+
it "should return values in a specified environment" do
|
328
|
+
text = "[env]\none = envval\n"
|
329
|
+
@settings.stubs(:read_file).returns(text)
|
330
|
+
@settings.parse
|
331
|
+
@settings.value(:one, "env").should == "envval"
|
332
|
+
end
|
333
|
+
|
334
|
+
it "should interpolate found values using the current environment" do
|
335
|
+
@settings.setdefaults :main, :myval => ["$environment/foo", "mydocs"]
|
336
|
+
|
337
|
+
@settings.value(:myval, "myenv").should == "myenv/foo"
|
338
|
+
end
|
339
|
+
|
340
|
+
it "should return values in a specified environment before values in the main or name sections" do
|
341
|
+
text = "[env]\none = envval\n[main]\none = mainval\n[myname]\none = nameval\n"
|
342
|
+
@settings.stubs(:read_file).returns(text)
|
343
|
+
@settings.parse
|
344
|
+
@settings.value(:one, "env").should == "envval"
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
describe "when parsing its configuration" do
|
349
|
+
before do
|
350
|
+
@settings = Puppet::Util::Settings.new
|
351
|
+
@settings.stubs(:service_user_available?).returns true
|
352
|
+
@file = "/some/file"
|
353
|
+
@settings.setdefaults :section, :user => ["suser", "doc"], :group => ["sgroup", "doc"]
|
354
|
+
@settings.setdefaults :section, :config => ["/some/file", "eh"], :one => ["ONE", "a"], :two => ["$one TWO", "b"], :three => ["$one $two THREE", "c"]
|
355
|
+
FileTest.stubs(:exist?).returns true
|
356
|
+
end
|
357
|
+
|
358
|
+
it "should not ignore the report setting" do
|
359
|
+
@settings.setdefaults :section, :report => ["false", "a"]
|
360
|
+
myfile = stub "myfile"
|
361
|
+
@settings[:config] = myfile
|
362
|
+
text = <<-CONF
|
363
|
+
[puppetd]
|
364
|
+
report=true
|
365
|
+
CONF
|
366
|
+
@settings.expects(:read_file).returns(text)
|
367
|
+
@settings.parse
|
368
|
+
@settings[:report].should be_true
|
369
|
+
end
|
370
|
+
|
371
|
+
it "should use its current ':config' value for the file to parse" do
|
372
|
+
myfile = Puppet.features.posix? ? "/my/file" : "C:/myfile" # do not stub expand_path here, as this leads to a stack overflow, when mocha tries to use it
|
373
|
+
@settings[:config] = myfile
|
374
|
+
|
375
|
+
File.expects(:read).with(myfile).returns "[main]"
|
376
|
+
|
377
|
+
@settings.parse
|
378
|
+
end
|
379
|
+
|
380
|
+
it "should fail if no configuration setting is defined" do
|
381
|
+
@settings = Puppet::Util::Settings.new
|
382
|
+
lambda { @settings.parse }.should raise_error(RuntimeError)
|
383
|
+
end
|
384
|
+
|
385
|
+
it "should not try to parse non-existent files" do
|
386
|
+
FileTest.expects(:exist?).with("/some/file").returns false
|
387
|
+
|
388
|
+
File.expects(:read).with("/some/file").never
|
389
|
+
|
390
|
+
@settings.parse
|
391
|
+
end
|
392
|
+
|
393
|
+
it "should set a timer that triggers reparsing, even if the file does not exist" do
|
394
|
+
FileTest.expects(:exist?).returns false
|
395
|
+
@settings.expects(:set_filetimeout_timer)
|
396
|
+
|
397
|
+
@settings.parse
|
398
|
+
end
|
399
|
+
|
400
|
+
it "should return values set in the configuration file" do
|
401
|
+
text = "[main]
|
402
|
+
one = fileval
|
403
|
+
"
|
404
|
+
@settings.expects(:read_file).returns(text)
|
405
|
+
@settings.parse
|
406
|
+
@settings[:one].should == "fileval"
|
407
|
+
end
|
408
|
+
|
409
|
+
#484 - this should probably be in the regression area
|
410
|
+
it "should not throw an exception on unknown parameters" do
|
411
|
+
text = "[main]\nnosuchparam = mval\n"
|
412
|
+
@settings.expects(:read_file).returns(text)
|
413
|
+
lambda { @settings.parse }.should_not raise_error
|
414
|
+
end
|
415
|
+
|
416
|
+
it "should convert booleans in the configuration file into Ruby booleans" do
|
417
|
+
text = "[main]
|
418
|
+
one = true
|
419
|
+
two = false
|
420
|
+
"
|
421
|
+
@settings.expects(:read_file).returns(text)
|
422
|
+
@settings.parse
|
423
|
+
@settings[:one].should == true
|
424
|
+
@settings[:two].should == false
|
425
|
+
end
|
426
|
+
|
427
|
+
it "should convert integers in the configuration file into Ruby Integers" do
|
428
|
+
text = "[main]
|
429
|
+
one = 65
|
430
|
+
"
|
431
|
+
@settings.expects(:read_file).returns(text)
|
432
|
+
@settings.parse
|
433
|
+
@settings[:one].should == 65
|
434
|
+
end
|
435
|
+
|
436
|
+
it "should support specifying all metadata (owner, group, mode) in the configuration file" do
|
437
|
+
@settings.setdefaults :section, :myfile => ["/myfile", "a"]
|
438
|
+
|
439
|
+
text = "[main]
|
440
|
+
myfile = /other/file {owner = service, group = service, mode = 644}
|
441
|
+
"
|
442
|
+
@settings.expects(:read_file).returns(text)
|
443
|
+
@settings.parse
|
444
|
+
@settings[:myfile].should == "/other/file"
|
445
|
+
@settings.metadata(:myfile).should == {:owner => "suser", :group => "sgroup", :mode => "644"}
|
446
|
+
end
|
447
|
+
|
448
|
+
it "should support specifying a single piece of metadata (owner, group, or mode) in the configuration file" do
|
449
|
+
@settings.setdefaults :section, :myfile => ["/myfile", "a"]
|
450
|
+
|
451
|
+
text = "[main]
|
452
|
+
myfile = /other/file {owner = service}
|
453
|
+
"
|
454
|
+
file = "/some/file"
|
455
|
+
@settings.expects(:read_file).returns(text)
|
456
|
+
@settings.parse
|
457
|
+
@settings[:myfile].should == "/other/file"
|
458
|
+
@settings.metadata(:myfile).should == {:owner => "suser"}
|
459
|
+
end
|
460
|
+
|
461
|
+
it "should call hooks associated with values set in the configuration file" do
|
462
|
+
values = []
|
463
|
+
@settings.setdefaults :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
464
|
+
|
465
|
+
text = "[main]
|
466
|
+
mysetting = setval
|
467
|
+
"
|
468
|
+
@settings.expects(:read_file).returns(text)
|
469
|
+
@settings.parse
|
470
|
+
values.should == ["setval"]
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should not call the same hook for values set multiple times in the configuration file" do
|
474
|
+
values = []
|
475
|
+
@settings.setdefaults :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
476
|
+
|
477
|
+
text = "[user]
|
478
|
+
mysetting = setval
|
479
|
+
[main]
|
480
|
+
mysetting = other
|
481
|
+
"
|
482
|
+
@settings.expects(:read_file).returns(text)
|
483
|
+
@settings.parse
|
484
|
+
values.should == ["setval"]
|
485
|
+
end
|
486
|
+
|
487
|
+
it "should pass the environment-specific value to the hook when one is available" do
|
488
|
+
values = []
|
489
|
+
@settings.setdefaults :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
490
|
+
@settings.setdefaults :section, :environment => ["yay", "a"]
|
491
|
+
@settings.setdefaults :section, :environments => ["yay,foo", "a"]
|
492
|
+
|
493
|
+
text = "[main]
|
494
|
+
mysetting = setval
|
495
|
+
[yay]
|
496
|
+
mysetting = other
|
497
|
+
"
|
498
|
+
@settings.expects(:read_file).returns(text)
|
499
|
+
@settings.parse
|
500
|
+
values.should == ["other"]
|
501
|
+
end
|
502
|
+
|
503
|
+
it "should pass the interpolated value to the hook when one is available" do
|
504
|
+
values = []
|
505
|
+
@settings.setdefaults :section, :base => {:default => "yay", :desc => "a", :hook => proc { |v| values << v }}
|
506
|
+
@settings.setdefaults :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
507
|
+
|
508
|
+
text = "[main]
|
509
|
+
mysetting = $base/setval
|
510
|
+
"
|
511
|
+
@settings.expects(:read_file).returns(text)
|
512
|
+
@settings.parse
|
513
|
+
values.should == ["yay/setval"]
|
514
|
+
end
|
515
|
+
|
516
|
+
it "should allow empty values" do
|
517
|
+
@settings.setdefaults :section, :myarg => ["myfile", "a"]
|
518
|
+
|
519
|
+
text = "[main]
|
520
|
+
myarg =
|
521
|
+
"
|
522
|
+
@settings.stubs(:read_file).returns(text)
|
523
|
+
@settings.parse
|
524
|
+
@settings[:myarg].should == ""
|
525
|
+
end
|
526
|
+
|
527
|
+
describe "and when reading a non-positive filetimeout value from the config file" do
|
528
|
+
before do
|
529
|
+
@settings.setdefaults :foo, :filetimeout => [5, "eh"]
|
530
|
+
|
531
|
+
somefile = "/some/file"
|
532
|
+
text = "[main]
|
533
|
+
filetimeout = -1
|
534
|
+
"
|
535
|
+
File.expects(:read).with(somefile).returns(text)
|
536
|
+
File.expects(:expand_path).with(somefile).returns somefile
|
537
|
+
@settings[:config] = somefile
|
538
|
+
end
|
539
|
+
|
540
|
+
it "should not set a timer" do
|
541
|
+
EventLoop::Timer.expects(:new).never
|
542
|
+
|
543
|
+
@settings.parse
|
544
|
+
end
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
548
|
+
describe "when reparsing its configuration" do
|
549
|
+
before do
|
550
|
+
@settings = Puppet::Util::Settings.new
|
551
|
+
@settings.setdefaults :section, :config => ["/test/file", "a"], :one => ["ONE", "a"], :two => ["$one TWO", "b"], :three => ["$one $two THREE", "c"]
|
552
|
+
FileTest.stubs(:exist?).returns true
|
553
|
+
end
|
554
|
+
|
555
|
+
it "should use a LoadedFile instance to determine if the file has changed" do
|
556
|
+
file = mock 'file'
|
557
|
+
Puppet::Util::LoadedFile.expects(:new).with("/test/file").returns file
|
558
|
+
|
559
|
+
file.expects(:changed?)
|
560
|
+
|
561
|
+
@settings.stubs(:parse)
|
562
|
+
@settings.reparse
|
563
|
+
end
|
564
|
+
|
565
|
+
it "should not create the LoadedFile instance and should not parse if the file does not exist" do
|
566
|
+
FileTest.expects(:exist?).with("/test/file").returns false
|
567
|
+
Puppet::Util::LoadedFile.expects(:new).never
|
568
|
+
|
569
|
+
@settings.expects(:parse).never
|
570
|
+
|
571
|
+
@settings.reparse
|
572
|
+
end
|
573
|
+
|
574
|
+
it "should not reparse if the file has not changed" do
|
575
|
+
file = mock 'file'
|
576
|
+
Puppet::Util::LoadedFile.expects(:new).with("/test/file").returns file
|
577
|
+
|
578
|
+
file.expects(:changed?).returns false
|
579
|
+
|
580
|
+
@settings.expects(:parse).never
|
581
|
+
|
582
|
+
@settings.reparse
|
583
|
+
end
|
584
|
+
|
585
|
+
it "should reparse if the file has changed" do
|
586
|
+
file = stub 'file', :file => "/test/file"
|
587
|
+
Puppet::Util::LoadedFile.expects(:new).with("/test/file").returns file
|
588
|
+
|
589
|
+
file.expects(:changed?).returns true
|
590
|
+
|
591
|
+
@settings.expects(:parse)
|
592
|
+
|
593
|
+
@settings.reparse
|
594
|
+
end
|
595
|
+
|
596
|
+
it "should use a cached LoadedFile instance" do
|
597
|
+
first = mock 'first'
|
598
|
+
second = mock 'second'
|
599
|
+
Puppet::Util::LoadedFile.expects(:new).times(2).with("/test/file").returns(first).then.returns(second)
|
600
|
+
|
601
|
+
@settings.file.should equal(first)
|
602
|
+
Puppet::Util::Cacher.expire
|
603
|
+
@settings.file.should equal(second)
|
604
|
+
end
|
605
|
+
|
606
|
+
it "should replace in-memory values with on-file values" do
|
607
|
+
# Init the value
|
608
|
+
text = "[main]\none = disk-init\n"
|
609
|
+
file = mock 'file'
|
610
|
+
file.stubs(:changed?).returns(true)
|
611
|
+
file.stubs(:file).returns("/test/file")
|
612
|
+
@settings[:one] = "init"
|
613
|
+
@settings.file = file
|
614
|
+
|
615
|
+
# Now replace the value
|
616
|
+
text = "[main]\none = disk-replace\n"
|
617
|
+
|
618
|
+
# This is kinda ridiculous - the reason it parses twice is that
|
619
|
+
# it goes to parse again when we ask for the value, because the
|
620
|
+
# mock always says it should get reparsed.
|
621
|
+
@settings.stubs(:read_file).returns(text)
|
622
|
+
@settings.reparse
|
623
|
+
@settings[:one].should == "disk-replace"
|
624
|
+
end
|
625
|
+
|
626
|
+
it "should retain parameters set by cli when configuration files are reparsed" do
|
627
|
+
@settings.handlearg("--one", "clival")
|
628
|
+
|
629
|
+
text = "[main]\none = on-disk\n"
|
630
|
+
@settings.stubs(:read_file).returns(text)
|
631
|
+
@settings.parse
|
632
|
+
|
633
|
+
@settings[:one].should == "clival"
|
634
|
+
end
|
635
|
+
|
636
|
+
it "should remove in-memory values that are no longer set in the file" do
|
637
|
+
# Init the value
|
638
|
+
text = "[main]\none = disk-init\n"
|
639
|
+
@settings.expects(:read_file).returns(text)
|
640
|
+
@settings.parse
|
641
|
+
@settings[:one].should == "disk-init"
|
642
|
+
|
643
|
+
# Now replace the value
|
644
|
+
text = "[main]\ntwo = disk-replace\n"
|
645
|
+
@settings.expects(:read_file).returns(text)
|
646
|
+
@settings.parse
|
647
|
+
#@settings.reparse
|
648
|
+
|
649
|
+
# The originally-overridden value should be replaced with the default
|
650
|
+
@settings[:one].should == "ONE"
|
651
|
+
|
652
|
+
# and we should now have the new value in memory
|
653
|
+
@settings[:two].should == "disk-replace"
|
654
|
+
end
|
655
|
+
|
656
|
+
it "should retain in-memory values if the file has a syntax error" do
|
657
|
+
# Init the value
|
658
|
+
text = "[main]\none = initial-value\n"
|
659
|
+
@settings.expects(:read_file).returns(text)
|
660
|
+
@settings.parse
|
661
|
+
@settings[:one].should == "initial-value"
|
662
|
+
|
663
|
+
# Now replace the value with something bogus
|
664
|
+
text = "[main]\nkenny = killed-by-what-follows\n1 is 2, blah blah florp\n"
|
665
|
+
@settings.expects(:read_file).returns(text)
|
666
|
+
@settings.parse
|
667
|
+
|
668
|
+
# The originally-overridden value should not be replaced with the default
|
669
|
+
@settings[:one].should == "initial-value"
|
670
|
+
|
671
|
+
# and we should not have the new value in memory
|
672
|
+
@settings[:kenny].should be_nil
|
673
|
+
end
|
674
|
+
end
|
675
|
+
|
676
|
+
it "should provide a method for creating a catalog of resources from its configuration" do
|
677
|
+
Puppet::Util::Settings.new.should respond_to(:to_catalog)
|
678
|
+
end
|
679
|
+
|
680
|
+
describe "when creating a catalog" do
|
681
|
+
before do
|
682
|
+
@settings = Puppet::Util::Settings.new
|
683
|
+
@settings.stubs(:service_user_available?).returns true
|
684
|
+
@prefix = Puppet.features.posix? ? "" : "C:"
|
685
|
+
end
|
686
|
+
|
687
|
+
it "should add all file resources to the catalog if no sections have been specified" do
|
688
|
+
@settings.setdefaults :main, :maindir => [@prefix+"/maindir", "a"], :seconddir => [@prefix+"/seconddir", "a"]
|
689
|
+
@settings.setdefaults :other, :otherdir => [@prefix+"/otherdir", "a"]
|
690
|
+
|
691
|
+
catalog = @settings.to_catalog
|
692
|
+
|
693
|
+
[@prefix+"/maindir", @prefix+"/seconddir", @prefix+"/otherdir"].each do |path|
|
694
|
+
catalog.resource(:file, path).should be_instance_of(Puppet::Resource)
|
695
|
+
end
|
696
|
+
end
|
697
|
+
|
698
|
+
it "should add only files in the specified sections if section names are provided" do
|
699
|
+
@settings.setdefaults :main, :maindir => [@prefix+"/maindir", "a"]
|
700
|
+
@settings.setdefaults :other, :otherdir => [@prefix+"/otherdir", "a"]
|
701
|
+
catalog = @settings.to_catalog(:main)
|
702
|
+
catalog.resource(:file, @prefix+"/otherdir").should be_nil
|
703
|
+
catalog.resource(:file, @prefix+"/maindir").should be_instance_of(Puppet::Resource)
|
704
|
+
end
|
705
|
+
|
706
|
+
it "should not try to add the same file twice" do
|
707
|
+
@settings.setdefaults :main, :maindir => [@prefix+"/maindir", "a"]
|
708
|
+
@settings.setdefaults :other, :otherdir => [@prefix+"/maindir", "a"]
|
709
|
+
lambda { @settings.to_catalog }.should_not raise_error
|
710
|
+
end
|
711
|
+
|
712
|
+
it "should ignore files whose :to_resource method returns nil" do
|
713
|
+
@settings.setdefaults :main, :maindir => [@prefix+"/maindir", "a"]
|
714
|
+
@settings.setting(:maindir).expects(:to_resource).returns nil
|
715
|
+
|
716
|
+
Puppet::Resource::Catalog.any_instance.expects(:add_resource).never
|
717
|
+
@settings.to_catalog
|
718
|
+
end
|
719
|
+
|
720
|
+
describe "when adding users and groups to the catalog" do
|
721
|
+
before do
|
722
|
+
Puppet.features.stubs(:root?).returns true
|
723
|
+
@settings.setdefaults :foo, :mkusers => [true, "e"], :user => ["suser", "doc"], :group => ["sgroup", "doc"]
|
724
|
+
@settings.setdefaults :other, :otherdir => {:default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
|
725
|
+
|
726
|
+
@catalog = @settings.to_catalog
|
727
|
+
end
|
728
|
+
|
729
|
+
it "should add each specified user and group to the catalog if :mkusers is a valid setting, is enabled, and we're running as root" do
|
730
|
+
@catalog.resource(:user, "suser").should be_instance_of(Puppet::Resource)
|
731
|
+
@catalog.resource(:group, "sgroup").should be_instance_of(Puppet::Resource)
|
732
|
+
end
|
733
|
+
|
734
|
+
it "should only add users and groups to the catalog from specified sections" do
|
735
|
+
@settings.setdefaults :yay, :yaydir => {:default => "/yaydir", :desc => "a", :owner => "service", :group => "service"}
|
736
|
+
catalog = @settings.to_catalog(:other)
|
737
|
+
catalog.resource(:user, "jane").should be_nil
|
738
|
+
catalog.resource(:group, "billy").should be_nil
|
739
|
+
end
|
740
|
+
|
741
|
+
it "should not add users or groups to the catalog if :mkusers not running as root" do
|
742
|
+
Puppet.features.stubs(:root?).returns false
|
743
|
+
|
744
|
+
catalog = @settings.to_catalog
|
745
|
+
catalog.resource(:user, "suser").should be_nil
|
746
|
+
catalog.resource(:group, "sgroup").should be_nil
|
747
|
+
end
|
748
|
+
|
749
|
+
it "should not add users or groups to the catalog if :mkusers is not a valid setting" do
|
750
|
+
Puppet.features.stubs(:root?).returns true
|
751
|
+
settings = Puppet::Util::Settings.new
|
752
|
+
settings.setdefaults :other, :otherdir => {:default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
|
753
|
+
|
754
|
+
catalog = settings.to_catalog
|
755
|
+
catalog.resource(:user, "suser").should be_nil
|
756
|
+
catalog.resource(:group, "sgroup").should be_nil
|
757
|
+
end
|
758
|
+
|
759
|
+
it "should not add users or groups to the catalog if :mkusers is a valid setting but is disabled" do
|
760
|
+
@settings[:mkusers] = false
|
761
|
+
|
762
|
+
catalog = @settings.to_catalog
|
763
|
+
catalog.resource(:user, "suser").should be_nil
|
764
|
+
catalog.resource(:group, "sgroup").should be_nil
|
765
|
+
end
|
766
|
+
|
767
|
+
it "should not try to add users or groups to the catalog twice" do
|
768
|
+
@settings.setdefaults :yay, :yaydir => {:default => "/yaydir", :desc => "a", :owner => "service", :group => "service"}
|
769
|
+
|
770
|
+
# This would fail if users/groups were added twice
|
771
|
+
lambda { @settings.to_catalog }.should_not raise_error
|
772
|
+
end
|
773
|
+
|
774
|
+
it "should set :ensure to :present on each created user and group" do
|
775
|
+
@catalog.resource(:user, "suser")[:ensure].should == :present
|
776
|
+
@catalog.resource(:group, "sgroup")[:ensure].should == :present
|
777
|
+
end
|
778
|
+
|
779
|
+
it "should set each created user's :gid to the service group" do
|
780
|
+
@settings.to_catalog.resource(:user, "suser")[:gid].should == "sgroup"
|
781
|
+
end
|
782
|
+
|
783
|
+
it "should not attempt to manage the root user" do
|
784
|
+
Puppet.features.stubs(:root?).returns true
|
785
|
+
@settings.setdefaults :foo, :foodir => {:default => "/foodir", :desc => "a", :owner => "root", :group => "service"}
|
786
|
+
|
787
|
+
@settings.to_catalog.resource(:user, "root").should be_nil
|
788
|
+
end
|
789
|
+
end
|
790
|
+
end
|
791
|
+
|
792
|
+
it "should be able to be converted to a manifest" do
|
793
|
+
Puppet::Util::Settings.new.should respond_to(:to_manifest)
|
794
|
+
end
|
795
|
+
|
796
|
+
describe "when being converted to a manifest" do
|
797
|
+
it "should produce a string with the code for each resource joined by two carriage returns" do
|
798
|
+
@settings = Puppet::Util::Settings.new
|
799
|
+
@settings.setdefaults :main, :maindir => ["/maindir", "a"], :seconddir => ["/seconddir", "a"]
|
800
|
+
|
801
|
+
main = stub 'main_resource', :ref => "File[/maindir]"
|
802
|
+
main.expects(:to_manifest).returns "maindir"
|
803
|
+
second = stub 'second_resource', :ref => "File[/seconddir]"
|
804
|
+
second.expects(:to_manifest).returns "seconddir"
|
805
|
+
@settings.setting(:maindir).expects(:to_resource).returns main
|
806
|
+
@settings.setting(:seconddir).expects(:to_resource).returns second
|
807
|
+
|
808
|
+
@settings.to_manifest.split("\n\n").sort.should == %w{maindir seconddir}
|
809
|
+
end
|
810
|
+
end
|
811
|
+
|
812
|
+
describe "when using sections of the configuration to manage the local host" do
|
813
|
+
before do
|
814
|
+
@settings = Puppet::Util::Settings.new
|
815
|
+
@settings.stubs(:service_user_available?).returns true
|
816
|
+
@settings.setdefaults :main, :noop => [false, ""]
|
817
|
+
@settings.setdefaults :main, :maindir => ["/maindir", "a"], :seconddir => ["/seconddir", "a"]
|
818
|
+
@settings.setdefaults :main, :user => ["suser", "doc"], :group => ["sgroup", "doc"]
|
819
|
+
@settings.setdefaults :other, :otherdir => {:default => "/otherdir", :desc => "a", :owner => "service", :group => "service", :mode => 0755}
|
820
|
+
@settings.setdefaults :third, :thirddir => ["/thirddir", "b"]
|
821
|
+
@settings.setdefaults :files, :myfile => {:default => "/myfile", :desc => "a", :mode => 0755}
|
822
|
+
end
|
823
|
+
|
824
|
+
it "should provide a method that writes files with the correct modes" do
|
825
|
+
@settings.should respond_to(:write)
|
826
|
+
end
|
827
|
+
|
828
|
+
it "should provide a method that creates directories with the correct modes" do
|
829
|
+
Puppet::Util::SUIDManager.expects(:asuser).with("suser", "sgroup").yields
|
830
|
+
Dir.expects(:mkdir).with("/otherdir", 0755)
|
831
|
+
@settings.mkdir(:otherdir)
|
832
|
+
end
|
833
|
+
|
834
|
+
it "should create a catalog with the specified sections" do
|
835
|
+
@settings.expects(:to_catalog).with(:main, :other).returns Puppet::Resource::Catalog.new("foo")
|
836
|
+
@settings.use(:main, :other)
|
837
|
+
end
|
838
|
+
|
839
|
+
it "should canonicalize the sections" do
|
840
|
+
@settings.expects(:to_catalog).with(:main, :other).returns Puppet::Resource::Catalog.new("foo")
|
841
|
+
@settings.use("main", "other")
|
842
|
+
end
|
843
|
+
|
844
|
+
it "should ignore sections that have already been used" do
|
845
|
+
@settings.expects(:to_catalog).with(:main).returns Puppet::Resource::Catalog.new("foo")
|
846
|
+
@settings.use(:main)
|
847
|
+
@settings.expects(:to_catalog).with(:other).returns Puppet::Resource::Catalog.new("foo")
|
848
|
+
@settings.use(:main, :other)
|
849
|
+
end
|
850
|
+
|
851
|
+
it "should ignore tags and schedules when creating files and directories"
|
852
|
+
|
853
|
+
it "should be able to provide all of its parameters in a format compatible with GetOpt::Long" do
|
854
|
+
pending "Not converted from test/unit yet"
|
855
|
+
end
|
856
|
+
|
857
|
+
it "should convert the created catalog to a RAL catalog" do
|
858
|
+
@catalog = Puppet::Resource::Catalog.new("foo")
|
859
|
+
@settings.expects(:to_catalog).with(:main).returns @catalog
|
860
|
+
|
861
|
+
@catalog.expects(:to_ral).returns @catalog
|
862
|
+
@settings.use(:main)
|
863
|
+
end
|
864
|
+
|
865
|
+
it "should specify that it is not managing a host catalog" do
|
866
|
+
catalog = Puppet::Resource::Catalog.new("foo")
|
867
|
+
catalog.expects(:apply)
|
868
|
+
@settings.expects(:to_catalog).returns catalog
|
869
|
+
|
870
|
+
catalog.stubs(:to_ral).returns catalog
|
871
|
+
|
872
|
+
catalog.expects(:host_config=).with false
|
873
|
+
|
874
|
+
@settings.use(:main)
|
875
|
+
end
|
876
|
+
|
877
|
+
it "should support a method for re-using all currently used sections" do
|
878
|
+
@settings.expects(:to_catalog).with(:main, :third).times(2).returns Puppet::Resource::Catalog.new("foo")
|
879
|
+
|
880
|
+
@settings.use(:main, :third)
|
881
|
+
@settings.reuse
|
882
|
+
end
|
883
|
+
|
884
|
+
it "should fail with an appropriate message if any resources fail" do
|
885
|
+
@catalog = Puppet::Resource::Catalog.new("foo")
|
886
|
+
@catalog.stubs(:to_ral).returns @catalog
|
887
|
+
@settings.expects(:to_catalog).returns @catalog
|
888
|
+
|
889
|
+
@trans = mock("transaction")
|
890
|
+
@catalog.expects(:apply).yields(@trans)
|
891
|
+
|
892
|
+
@trans.expects(:any_failed?).returns(true)
|
893
|
+
|
894
|
+
report = mock 'report'
|
895
|
+
@trans.expects(:report).returns report
|
896
|
+
|
897
|
+
log = mock 'log', :to_s => "My failure", :level => :err
|
898
|
+
report.expects(:logs).returns [log]
|
899
|
+
|
900
|
+
@settings.expects(:raise).with { |msg| msg.include?("My failure") }
|
901
|
+
@settings.use(:whatever)
|
902
|
+
end
|
903
|
+
end
|
904
|
+
|
905
|
+
describe "when dealing with printing configs" do
|
906
|
+
before do
|
907
|
+
@settings = Puppet::Util::Settings.new
|
908
|
+
#these are the magic default values
|
909
|
+
@settings.stubs(:value).with(:configprint).returns("")
|
910
|
+
@settings.stubs(:value).with(:genconfig).returns(false)
|
911
|
+
@settings.stubs(:value).with(:genmanifest).returns(false)
|
912
|
+
@settings.stubs(:value).with(:environment).returns(nil)
|
913
|
+
end
|
914
|
+
|
915
|
+
describe "when checking print_config?" do
|
916
|
+
it "should return false when the :configprint, :genconfig and :genmanifest are not set" do
|
917
|
+
@settings.print_configs?.should be_false
|
918
|
+
end
|
919
|
+
|
920
|
+
it "should return true when :configprint has a value" do
|
921
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
922
|
+
@settings.print_configs?.should be_true
|
923
|
+
end
|
924
|
+
|
925
|
+
it "should return true when :genconfig has a value" do
|
926
|
+
@settings.stubs(:value).with(:genconfig).returns(true)
|
927
|
+
@settings.print_configs?.should be_true
|
928
|
+
end
|
929
|
+
|
930
|
+
it "should return true when :genmanifest has a value" do
|
931
|
+
@settings.stubs(:value).with(:genmanifest).returns(true)
|
932
|
+
@settings.print_configs?.should be_true
|
933
|
+
end
|
934
|
+
end
|
935
|
+
|
936
|
+
describe "when printing configs" do
|
937
|
+
describe "when :configprint has a value" do
|
938
|
+
it "should call print_config_options" do
|
939
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
940
|
+
@settings.expects(:print_config_options)
|
941
|
+
@settings.print_configs
|
942
|
+
end
|
943
|
+
|
944
|
+
it "should get the value of the option using the environment" do
|
945
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
946
|
+
@settings.stubs(:include?).with("something").returns(true)
|
947
|
+
@settings.expects(:value).with(:environment).returns("env")
|
948
|
+
@settings.expects(:value).with("something", "env").returns("foo")
|
949
|
+
@settings.stubs(:puts).with("foo")
|
950
|
+
@settings.print_configs
|
951
|
+
end
|
952
|
+
|
953
|
+
it "should print the value of the option" do
|
954
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
955
|
+
@settings.stubs(:include?).with("something").returns(true)
|
956
|
+
@settings.stubs(:value).with("something", nil).returns("foo")
|
957
|
+
@settings.expects(:puts).with("foo")
|
958
|
+
@settings.print_configs
|
959
|
+
end
|
960
|
+
|
961
|
+
it "should print the value pairs if there are multiple options" do
|
962
|
+
@settings.stubs(:value).with(:configprint).returns("bar,baz")
|
963
|
+
@settings.stubs(:include?).with("bar").returns(true)
|
964
|
+
@settings.stubs(:include?).with("baz").returns(true)
|
965
|
+
@settings.stubs(:value).with("bar", nil).returns("foo")
|
966
|
+
@settings.stubs(:value).with("baz", nil).returns("fud")
|
967
|
+
@settings.expects(:puts).with("bar = foo")
|
968
|
+
@settings.expects(:puts).with("baz = fud")
|
969
|
+
@settings.print_configs
|
970
|
+
end
|
971
|
+
|
972
|
+
it "should print a whole bunch of stuff if :configprint = all"
|
973
|
+
|
974
|
+
it "should return true after printing" do
|
975
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
976
|
+
@settings.stubs(:include?).with("something").returns(true)
|
977
|
+
@settings.stubs(:value).with("something", nil).returns("foo")
|
978
|
+
@settings.stubs(:puts).with("foo")
|
979
|
+
@settings.print_configs.should be_true
|
980
|
+
end
|
981
|
+
|
982
|
+
it "should return false if a config param is not found" do
|
983
|
+
@settings.stubs :puts
|
984
|
+
@settings.stubs(:value).with(:configprint).returns("something")
|
985
|
+
@settings.stubs(:include?).with("something").returns(false)
|
986
|
+
@settings.print_configs.should be_false
|
987
|
+
end
|
988
|
+
end
|
989
|
+
|
990
|
+
describe "when genconfig is true" do
|
991
|
+
before do
|
992
|
+
@settings.stubs :puts
|
993
|
+
end
|
994
|
+
|
995
|
+
it "should call to_config" do
|
996
|
+
@settings.stubs(:value).with(:genconfig).returns(true)
|
997
|
+
@settings.expects(:to_config)
|
998
|
+
@settings.print_configs
|
999
|
+
end
|
1000
|
+
|
1001
|
+
it "should return true from print_configs" do
|
1002
|
+
@settings.stubs(:value).with(:genconfig).returns(true)
|
1003
|
+
@settings.stubs(:to_config)
|
1004
|
+
@settings.print_configs.should be_true
|
1005
|
+
end
|
1006
|
+
end
|
1007
|
+
|
1008
|
+
describe "when genmanifest is true" do
|
1009
|
+
before do
|
1010
|
+
@settings.stubs :puts
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
it "should call to_config" do
|
1014
|
+
@settings.stubs(:value).with(:genmanifest).returns(true)
|
1015
|
+
@settings.expects(:to_manifest)
|
1016
|
+
@settings.print_configs
|
1017
|
+
end
|
1018
|
+
|
1019
|
+
it "should return true from print_configs" do
|
1020
|
+
@settings.stubs(:value).with(:genmanifest).returns(true)
|
1021
|
+
@settings.stubs(:to_manifest)
|
1022
|
+
@settings.print_configs.should be_true
|
1023
|
+
end
|
1024
|
+
end
|
1025
|
+
end
|
1026
|
+
end
|
1027
|
+
|
1028
|
+
describe "when setting a timer to trigger configuration file reparsing" do
|
1029
|
+
before do
|
1030
|
+
@settings = Puppet::Util::Settings.new
|
1031
|
+
@settings.setdefaults :foo, :filetimeout => [5, "eh"]
|
1032
|
+
end
|
1033
|
+
|
1034
|
+
it "should do nothing if no filetimeout setting is available" do
|
1035
|
+
@settings.expects(:value).with(:filetimeout).returns nil
|
1036
|
+
EventLoop::Timer.expects(:new).never
|
1037
|
+
@settings.set_filetimeout_timer
|
1038
|
+
end
|
1039
|
+
|
1040
|
+
it "should always convert the timer interval to an integer" do
|
1041
|
+
@settings.expects(:value).with(:filetimeout).returns "10"
|
1042
|
+
EventLoop::Timer.expects(:new).with(:interval => 10, :start? => true, :tolerance => 1)
|
1043
|
+
@settings.set_filetimeout_timer
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
it "should do nothing if the filetimeout setting is not greater than 0" do
|
1047
|
+
@settings.expects(:value).with(:filetimeout).returns -2
|
1048
|
+
EventLoop::Timer.expects(:new).never
|
1049
|
+
@settings.set_filetimeout_timer
|
1050
|
+
end
|
1051
|
+
|
1052
|
+
it "should create a timer with its interval set to the filetimeout, start? set to true, and a tolerance of 1" do
|
1053
|
+
@settings.expects(:value).with(:filetimeout).returns 5
|
1054
|
+
EventLoop::Timer.expects(:new).with(:interval => 5, :start? => true, :tolerance => 1)
|
1055
|
+
|
1056
|
+
@settings.set_filetimeout_timer
|
1057
|
+
end
|
1058
|
+
|
1059
|
+
it "should reparse when the timer goes off" do
|
1060
|
+
EventLoop::Timer.expects(:new).with(:interval => 5, :start? => true, :tolerance => 1).yields
|
1061
|
+
|
1062
|
+
@settings.expects(:reparse)
|
1063
|
+
|
1064
|
+
@settings.set_filetimeout_timer
|
1065
|
+
end
|
1066
|
+
end
|
1067
|
+
|
1068
|
+
describe "when determining if the service user is available" do
|
1069
|
+
it "should return false if there is no user setting" do
|
1070
|
+
Puppet::Util::Settings.new.should_not be_service_user_available
|
1071
|
+
end
|
1072
|
+
|
1073
|
+
it "should return false if the user provider says the user is missing" do
|
1074
|
+
settings = Puppet::Util::Settings.new
|
1075
|
+
settings.setdefaults :main, :user => ["foo", "doc"]
|
1076
|
+
|
1077
|
+
user = mock 'user'
|
1078
|
+
user.expects(:exists?).returns false
|
1079
|
+
|
1080
|
+
Puppet::Type.type(:user).expects(:new).with { |args| args[:name] == "foo" }.returns user
|
1081
|
+
|
1082
|
+
settings.should_not be_service_user_available
|
1083
|
+
end
|
1084
|
+
|
1085
|
+
it "should return true if the user provider says the user is present" do
|
1086
|
+
settings = Puppet::Util::Settings.new
|
1087
|
+
settings.setdefaults :main, :user => ["foo", "doc"]
|
1088
|
+
|
1089
|
+
user = mock 'user'
|
1090
|
+
user.expects(:exists?).returns true
|
1091
|
+
|
1092
|
+
Puppet::Type.type(:user).expects(:new).with { |args| args[:name] == "foo" }.returns user
|
1093
|
+
|
1094
|
+
settings.should be_service_user_available
|
1095
|
+
end
|
1096
|
+
|
1097
|
+
it "should cache the result"
|
1098
|
+
end
|
1099
|
+
end
|