puppet 0.24.9 → 0.25.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 +18680 -1241
- data/CHANGELOG.old +1705 -0
- data/LICENSE +2 -2
- data/README +1 -1
- data/README.queueing +126 -0
- data/README.rst +4 -4
- data/Rakefile +62 -216
- data/bin/filebucket +6 -117
- data/bin/pi +50 -0
- data/bin/puppet +7 -188
- data/bin/puppetdoc +7 -198
- data/bin/ralsh +4 -191
- data/conf/auth.conf +94 -0
- data/conf/gentoo/init.d/puppetmaster +30 -30
- data/conf/osx/PackageInfo.plist +30 -30
- data/conf/osx/createpackage.sh +23 -18
- data/conf/osx/preflight +8 -0
- data/conf/puppet-queue.conf +10 -0
- data/conf/redhat/client.init +52 -41
- data/conf/redhat/logrotate +1 -0
- data/conf/redhat/puppet.spec +74 -36
- data/conf/redhat/rundir-perms.patch +28 -0
- data/conf/redhat/server.init +48 -43
- data/conf/redhat/server.sysconfig +4 -4
- data/conf/solaris/smf/puppetd.xml +53 -53
- data/conf/solaris/smf/puppetmasterd.xml +53 -53
- data/conf/solaris/smf/svc-puppetd +4 -4
- data/conf/solaris/smf/svc-puppetmasterd +3 -3
- data/conf/suse/client.init +4 -4
- data/conf/suse/puppet.spec +14 -14
- data/conf/suse/server.init +17 -17
- data/examples/etc/init.d/sleeper +8 -8
- data/examples/mac_dscl.pp +2 -2
- data/examples/mac_dscl_revert.pp +1 -1
- data/examples/mcx_dock_default.pp +108 -108
- data/examples/mcx_dock_full.pp +108 -108
- data/examples/mcx_nogroup.pp +108 -108
- data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
- data/examples/modules/sample-module/manifests/init.pp +2 -2
- data/examples/relationships +1 -1
- data/ext/autotest/config +6 -6
- data/ext/bin/sleeper +12 -12
- data/ext/dbfix.sql +21 -21
- data/ext/emacs/puppet-mode.el +42 -41
- data/ext/extlookup.rb +183 -0
- data/ext/ldap/puppet.schema +2 -1
- data/ext/logcheck/puppet +1 -1
- data/ext/module_puppet +7 -7
- data/ext/nagios/check_puppet.rb +83 -83
- data/ext/nagios/naggen +302 -0
- data/ext/puppet-test +61 -18
- data/ext/puppetlisten/puppetlisten.rb +76 -0
- data/ext/puppetlisten/puppetrun.rb +39 -0
- data/ext/puppetstoredconfigclean.rb +29 -29
- data/ext/rack/README +73 -0
- data/ext/rack/files/apache2.conf +38 -0
- data/ext/rack/files/config.ru +18 -0
- data/ext/rack/manifest.pp +59 -0
- data/ext/vim/syntax/puppet.vim +54 -35
- data/install.rb +37 -26
- data/lib/puppet.rb +15 -227
- data/lib/puppet/agent.rb +134 -0
- data/lib/puppet/agent/locker.rb +42 -0
- data/lib/puppet/agent/runner.rb +65 -0
- data/lib/puppet/application.rb +313 -0
- data/lib/puppet/application/filebucket.rb +87 -0
- data/lib/puppet/application/pi.rb +214 -0
- data/lib/puppet/application/puppet.rb +177 -0
- data/lib/puppet/application/puppetca.rb +71 -0
- data/lib/puppet/application/puppetd.rb +256 -0
- data/lib/puppet/application/puppetdoc.rb +222 -0
- data/lib/puppet/application/puppetmasterd.rb +168 -0
- data/lib/puppet/application/puppetqd.rb +96 -0
- data/lib/puppet/application/puppetrun.rb +219 -0
- data/lib/puppet/application/ralsh.rb +168 -0
- data/lib/puppet/configurer.rb +177 -0
- data/lib/puppet/configurer/downloader.rb +79 -0
- data/lib/puppet/configurer/fact_handler.rb +68 -0
- data/lib/puppet/configurer/plugin_handler.rb +26 -0
- data/lib/puppet/daemon.rb +78 -28
- data/lib/puppet/defaults.rb +239 -166
- data/lib/puppet/dsl.rb +7 -7
- data/lib/puppet/external/dot.rb +271 -271
- data/lib/puppet/external/event-loop/better-definers.rb +298 -298
- data/lib/puppet/external/event-loop/event-loop.rb +274 -274
- data/lib/puppet/external/event-loop/signal-system.rb +163 -163
- data/lib/puppet/external/lock.rb +1 -1
- data/lib/puppet/external/nagios.rb +20 -20
- data/lib/puppet/external/nagios/base.rb +3 -3
- data/lib/puppet/external/nagios/grammar.ry +185 -0
- data/lib/puppet/external/nagios/makefile +9 -0
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/feature/json.rb +2 -0
- data/lib/puppet/feature/rack.rb +24 -0
- data/lib/puppet/feature/rails.rb +23 -33
- data/lib/puppet/feature/rubygems.rb +6 -0
- data/lib/puppet/feature/stomp.rb +6 -0
- data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
- data/lib/puppet/file_serving/configuration.rb +61 -61
- data/lib/puppet/file_serving/configuration/parser.rb +24 -29
- data/lib/puppet/file_serving/content.rb +26 -11
- data/lib/puppet/file_serving/fileset.rb +54 -19
- data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
- data/lib/puppet/file_serving/metadata.rb +8 -8
- data/lib/puppet/file_serving/mount.rb +9 -151
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/modules.rb +25 -0
- data/lib/puppet/file_serving/mount/plugins.rb +27 -0
- data/lib/puppet/file_serving/terminus_helper.rb +9 -4
- data/lib/puppet/indirector.rb +6 -4
- data/lib/puppet/indirector/active_record.rb +28 -0
- data/lib/puppet/indirector/catalog/active_record.rb +36 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -24
- data/lib/puppet/indirector/catalog/queue.rb +5 -0
- data/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/lib/puppet/indirector/catalog/yaml.rb +2 -4
- data/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/lib/puppet/indirector/certificate/file.rb +9 -0
- data/lib/puppet/indirector/certificate/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
- data/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -8
- data/lib/puppet/indirector/exec.rb +2 -6
- data/lib/puppet/indirector/facts/active_record.rb +36 -0
- data/lib/puppet/indirector/facts/facter.rb +30 -22
- data/lib/puppet/indirector/facts/rest.rb +6 -0
- data/lib/puppet/indirector/file.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +0 -1
- data/lib/puppet/indirector/file_metadata/file.rb +2 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
- data/lib/puppet/indirector/file_server.rb +31 -18
- data/lib/puppet/indirector/indirection.rb +46 -33
- data/lib/puppet/indirector/key/ca.rb +12 -0
- data/lib/puppet/indirector/key/file.rb +42 -0
- data/lib/puppet/indirector/node/active_record.rb +13 -0
- data/lib/puppet/indirector/node/ldap.rb +1 -1
- data/lib/puppet/indirector/queue.rb +83 -0
- data/lib/puppet/indirector/report/processor.rb +1 -1
- data/lib/puppet/indirector/report/rest.rb +7 -0
- data/lib/puppet/indirector/request.rb +158 -15
- data/lib/puppet/indirector/rest.rb +74 -36
- data/lib/puppet/indirector/runner/rest.rb +7 -0
- data/lib/puppet/indirector/ssl_file.rb +174 -0
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +3 -3
- data/lib/puppet/module.rb +99 -124
- data/lib/puppet/network/authconfig.rb +57 -42
- data/lib/puppet/network/authstore.rb +58 -10
- data/lib/puppet/network/client.rb +0 -2
- data/lib/puppet/network/client/ca.rb +1 -1
- data/lib/puppet/network/client/dipper.rb +7 -2
- data/lib/puppet/network/format.rb +123 -0
- data/lib/puppet/network/format_handler.rb +156 -0
- data/lib/puppet/network/formats.rb +123 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -1
- data/lib/puppet/network/handler/fileserver.rb +43 -35
- data/lib/puppet/network/handler/master.rb +4 -4
- data/lib/puppet/network/handler/report.rb +1 -1
- data/lib/puppet/network/handler/resource.rb +16 -20
- data/lib/puppet/network/handler/runner.rb +9 -42
- data/lib/puppet/network/http.rb +4 -4
- data/lib/puppet/network/http/api.rb +4 -0
- data/lib/puppet/network/http/api/v1.rb +65 -0
- data/lib/puppet/network/http/handler.rb +163 -56
- data/lib/puppet/network/http/mongrel.rb +19 -15
- data/lib/puppet/network/http/mongrel/rest.rb +35 -17
- data/lib/puppet/network/http/rack.rb +62 -0
- data/lib/puppet/network/http/rack/httphandler.rb +34 -0
- data/lib/puppet/network/http/rack/rest.rb +79 -0
- data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
- data/lib/puppet/network/http/webrick.rb +89 -16
- data/lib/puppet/network/http/webrick/rest.rb +24 -11
- data/lib/puppet/network/http_pool.rb +28 -29
- data/lib/puppet/network/http_server/mongrel.rb +8 -10
- data/lib/puppet/network/http_server/webrick.rb +1 -3
- data/lib/puppet/network/rest_authconfig.rb +89 -0
- data/lib/puppet/network/rest_authorization.rb +25 -0
- data/lib/puppet/network/rights.rb +230 -27
- data/lib/puppet/network/server.rb +133 -31
- data/lib/puppet/network/xmlrpc/client.rb +5 -5
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
- data/lib/puppet/node.rb +28 -21
- data/lib/puppet/node/environment.rb +48 -0
- data/lib/puppet/node/facts.rb +21 -0
- data/lib/puppet/parameter.rb +291 -219
- data/lib/puppet/parser/ast.rb +1 -0
- data/lib/puppet/parser/ast/astarray.rb +5 -1
- data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
- data/lib/puppet/parser/ast/caseopt.rb +10 -0
- data/lib/puppet/parser/ast/casestatement.rb +12 -27
- data/lib/puppet/parser/ast/collection.rb +31 -0
- data/lib/puppet/parser/ast/collexpr.rb +18 -11
- data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
- data/lib/puppet/parser/ast/definition.rb +6 -2
- data/lib/puppet/parser/ast/function.rb +7 -2
- data/lib/puppet/parser/ast/ifstatement.rb +11 -6
- data/lib/puppet/parser/ast/leaf.rb +106 -3
- data/lib/puppet/parser/ast/match_operator.rb +31 -0
- data/lib/puppet/parser/ast/node.rb +10 -6
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
- data/lib/puppet/parser/ast/resource_override.rb +1 -1
- data/lib/puppet/parser/ast/resource_reference.rb +11 -3
- data/lib/puppet/parser/ast/selector.rb +14 -32
- data/lib/puppet/parser/ast/vardef.rb +1 -1
- data/lib/puppet/parser/collector.rb +67 -15
- data/lib/puppet/parser/compiler.rb +21 -53
- data/lib/puppet/parser/files.rb +92 -0
- data/lib/puppet/parser/functions.rb +3 -3
- data/lib/puppet/parser/functions/defined.rb +3 -3
- data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
- data/lib/puppet/parser/functions/inline_template.rb +4 -4
- data/lib/puppet/parser/functions/regsubst.rb +37 -35
- data/lib/puppet/parser/functions/require.rb +34 -0
- data/lib/puppet/parser/functions/shellquote.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +6 -6
- data/lib/puppet/parser/functions/template.rb +4 -4
- data/lib/puppet/parser/functions/versioncmp.rb +22 -1
- data/lib/puppet/parser/grammar.ra +812 -0
- data/lib/puppet/parser/interpreter.rb +4 -4
- data/lib/puppet/parser/lexer.rb +44 -15
- data/lib/puppet/parser/loaded_code.rb +115 -0
- data/lib/puppet/parser/makefile +8 -0
- data/lib/puppet/parser/parser.rb +1080 -928
- data/lib/puppet/parser/parser_support.rb +118 -96
- data/lib/puppet/parser/resource.rb +56 -126
- data/lib/puppet/parser/resource/param.rb +2 -76
- data/lib/puppet/parser/resource/reference.rb +15 -8
- data/lib/puppet/parser/scope.rb +68 -35
- data/lib/puppet/parser/templatewrapper.rb +8 -8
- data/lib/puppet/parser/yaml_trimmer.rb +11 -0
- data/lib/puppet/property.rb +69 -124
- data/lib/puppet/property/list.rb +3 -3
- data/lib/puppet/provider.rb +5 -5
- data/lib/puppet/provider/augeas/augeas.rb +119 -118
- data/lib/puppet/provider/computer/computer.rb +3 -3
- data/lib/puppet/provider/confine/variable.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +8 -7
- data/lib/puppet/provider/group/directoryservice.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +3 -3
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +3 -3
- data/lib/puppet/provider/ldap.rb +1 -3
- data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
- data/lib/puppet/provider/mailalias/aliases.rb +9 -1
- data/lib/puppet/provider/maillist/mailman.rb +8 -4
- data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +6 -6
- data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
- data/lib/puppet/provider/package/appdmg.rb +10 -9
- data/lib/puppet/provider/package/apple.rb +1 -3
- data/lib/puppet/provider/package/apt.rb +5 -5
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +1 -1
- data/lib/puppet/provider/package/darwinport.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +2 -2
- data/lib/puppet/provider/package/fink.rb +6 -6
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +2 -2
- data/lib/puppet/provider/package/hpux.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +30 -22
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +5 -5
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +7 -7
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/package/yumhelper.py +2 -2
- data/lib/puppet/provider/port/parsed.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +3 -3
- data/lib/puppet/provider/service/base.rb +21 -12
- data/lib/puppet/provider/service/daemontools.rb +86 -49
- data/lib/puppet/provider/service/debian.rb +20 -12
- data/lib/puppet/provider/service/freebsd.rb +5 -5
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +21 -33
- data/lib/puppet/provider/service/launchd.rb +120 -48
- data/lib/puppet/provider/service/redhat.rb +12 -21
- data/lib/puppet/provider/service/runit.rb +19 -9
- data/lib/puppet/provider/service/smf.rb +49 -34
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
- data/lib/puppet/provider/sshkey/parsed.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +12 -29
- data/lib/puppet/provider/user/hpux.rb +3 -3
- data/lib/puppet/provider/user/ldap.rb +2 -2
- data/lib/puppet/provider/zfs/solaris.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/provider/zpool/solaris.rb +3 -3
- data/lib/puppet/rails.rb +9 -9
- data/lib/puppet/rails/benchmark.rb +69 -0
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
- data/lib/puppet/rails/database/schema.rb +8 -8
- data/lib/puppet/rails/fact_value.rb +1 -1
- data/lib/puppet/rails/host.rb +211 -93
- data/lib/puppet/rails/param_name.rb +5 -1
- data/lib/puppet/rails/param_value.rb +29 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +120 -20
- data/lib/puppet/rails/resource_tag.rb +1 -1
- data/lib/puppet/rails/source_file.rb +1 -1
- data/lib/puppet/reference/configuration.rb +14 -14
- data/lib/puppet/reference/function.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +48 -0
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +1 -37
- data/lib/puppet/relationship.rb +57 -30
- data/lib/puppet/reports/rrdgraph.rb +4 -4
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +15 -15
- data/lib/puppet/resource.rb +265 -0
- data/lib/puppet/{node → resource}/catalog.rb +188 -112
- data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
- data/lib/puppet/simple_graph.rb +165 -27
- data/lib/puppet/ssl.rb +7 -0
- data/lib/puppet/ssl/base.rb +62 -0
- data/lib/puppet/ssl/certificate.rb +34 -0
- data/lib/puppet/ssl/certificate_authority.rb +298 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
- data/lib/puppet/ssl/certificate_factory.rb +145 -0
- data/lib/puppet/ssl/certificate_request.rb +51 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
- data/lib/puppet/ssl/host.rb +271 -0
- data/lib/puppet/ssl/inventory.rb +52 -0
- data/lib/puppet/ssl/key.rb +56 -0
- data/lib/puppet/sslcertificates.rb +6 -6
- data/lib/puppet/sslcertificates/ca.rb +15 -15
- data/lib/puppet/sslcertificates/certificate.rb +4 -4
- data/lib/puppet/sslcertificates/inventory.rb +3 -3
- data/lib/puppet/transaction.rb +113 -139
- data/lib/puppet/transaction/change.rb +6 -6
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +7 -1
- data/lib/puppet/transportable.rb +28 -28
- data/lib/puppet/type.rb +263 -688
- data/lib/puppet/type/augeas.rb +3 -2
- data/lib/puppet/type/component.rb +28 -95
- data/lib/puppet/type/computer.rb +10 -10
- data/lib/puppet/type/cron.rb +19 -14
- data/lib/puppet/type/exec.rb +21 -20
- data/lib/puppet/type/file.rb +306 -633
- data/lib/puppet/type/file/checksum.rb +10 -11
- data/lib/puppet/type/file/content.rb +83 -22
- data/lib/puppet/type/file/ensure.rb +15 -9
- data/lib/puppet/type/file/group.rb +7 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/owner.rb +9 -3
- data/lib/puppet/type/file/selcontext.rb +4 -4
- data/lib/puppet/type/file/source.rb +78 -179
- data/lib/puppet/type/file/target.rb +3 -3
- data/lib/puppet/type/file/type.rb +2 -2
- data/lib/puppet/type/filebucket.rb +33 -54
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/host.rb +7 -7
- data/lib/puppet/type/k5login.rb +2 -2
- data/lib/puppet/type/macauthorization.rb +77 -52
- data/lib/puppet/type/mailalias.rb +2 -2
- data/lib/puppet/type/maillist.rb +2 -2
- data/lib/puppet/type/mcx.rb +3 -3
- data/lib/puppet/type/mount.rb +16 -11
- data/lib/puppet/type/notify.rb +4 -4
- data/lib/puppet/type/package.rb +6 -28
- data/lib/puppet/type/port.rb +1 -1
- data/lib/puppet/type/resources.rb +19 -19
- data/lib/puppet/type/schedule.rb +18 -20
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +11 -7
- data/lib/puppet/type/ssh_authorized_key.rb +26 -9
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +285 -289
- data/lib/puppet/type/user.rb +9 -7
- data/lib/puppet/type/yumrepo.rb +17 -16
- data/lib/puppet/type/zone.rb +8 -7
- data/lib/puppet/util.rb +11 -36
- data/lib/puppet/util/autoload.rb +31 -19
- data/lib/puppet/util/autoload/file_cache.rb +115 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/cacher.rb +135 -0
- data/lib/puppet/util/checksums.rb +11 -1
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/config_store.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +1 -1
- data/lib/puppet/util/diff.rb +2 -2
- data/lib/puppet/util/docs.rb +9 -3
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/feature.rb +27 -20
- data/lib/puppet/util/fileparsing.rb +3 -3
- data/lib/puppet/util/filetype.rb +8 -6
- data/lib/puppet/util/graph.rb +5 -5
- data/lib/puppet/util/inifile.rb +5 -5
- data/lib/puppet/util/json.rb +13 -0
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/log.rb +48 -31
- data/lib/puppet/util/metric.rb +4 -4
- data/lib/puppet/util/monkey_patches.rb +43 -0
- data/lib/puppet/util/nagios_maker.rb +1 -1
- data/lib/puppet/util/package.rb +4 -4
- data/lib/puppet/util/pidlock.rb +59 -59
- data/lib/puppet/util/posix.rb +13 -52
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/queue.rb +96 -0
- data/lib/puppet/util/queue/stomp.rb +47 -0
- data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
- data/lib/puppet/util/rails/collection_merger.rb +0 -39
- data/lib/puppet/util/rails/reference_serializer.rb +17 -3
- data/lib/puppet/util/rdoc.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +5 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
- data/lib/puppet/util/rdoc/parser.rb +28 -32
- data/lib/puppet/util/reference.rb +29 -8
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +12 -6
- data/lib/puppet/util/settings.rb +203 -578
- data/lib/puppet/util/settings/boolean_setting.rb +33 -0
- data/lib/puppet/util/settings/file_setting.rb +119 -0
- data/lib/puppet/util/settings/setting.rb +110 -0
- data/lib/puppet/util/subclass_loader.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +2 -2
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +17 -9
- data/man/man8/filebucket.8 +2 -2
- data/man/man8/pi.8 +2 -2
- data/man/man8/puppet.8 +3 -4
- data/man/man8/puppet.conf.8 +63 -63
- data/man/man8/puppetca.8 +2 -2
- data/man/man8/puppetd.8 +2 -2
- data/man/man8/puppetdoc.8 +2 -2
- data/man/man8/puppetmasterd.8 +2 -2
- data/man/man8/puppetrun.8 +2 -2
- data/man/man8/ralsh.8 +3 -3
- data/sbin/puppetca +102 -0
- data/sbin/puppetd +159 -0
- data/sbin/puppetmasterd +66 -0
- data/sbin/puppetqd +53 -0
- data/sbin/puppetrun +130 -0
- data/spec/Rakefile +2 -2
- data/spec/integration/application/puppet.rb +33 -0
- data/spec/integration/bin/puppetmasterd.rb +110 -0
- data/spec/integration/configurer.rb +18 -0
- data/spec/integration/defaults.rb +158 -7
- data/spec/integration/file_serving/content.rb +2 -0
- data/spec/integration/file_serving/fileset.rb +14 -0
- data/spec/integration/file_serving/metadata.rb +2 -0
- data/spec/integration/file_serving/terminus_helper.rb +22 -0
- data/spec/integration/indirector/catalog/compiler.rb +67 -0
- data/spec/integration/indirector/catalog/queue.rb +61 -0
- data/spec/integration/indirector/certificate/rest.rb +69 -0
- data/spec/integration/indirector/certificate_request/rest.rb +89 -0
- data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
- data/spec/integration/indirector/direct_file_server.rb +16 -23
- data/spec/integration/indirector/file_content/file_server.rb +75 -0
- data/spec/integration/indirector/report/rest.rb +95 -0
- data/spec/integration/indirector/rest.rb +207 -147
- data/spec/integration/network/client.rb +19 -0
- data/spec/integration/network/formats.rb +110 -0
- data/spec/integration/network/handler.rb +25 -0
- data/spec/integration/network/server/mongrel.rb +26 -8
- data/spec/integration/network/server/webrick.rb +49 -11
- data/spec/integration/node/environment.rb +58 -0
- data/spec/integration/node/facts.rb +4 -2
- data/spec/integration/parser/compiler.rb +29 -0
- data/spec/integration/parser/functions/require.rb +67 -0
- data/spec/integration/provider/mailalias/aliases.rb +25 -0
- data/spec/integration/{node → resource}/catalog.rb +17 -10
- data/spec/integration/ssl/certificate_authority.rb +135 -0
- data/spec/integration/ssl/certificate_request.rb +59 -0
- data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
- data/spec/integration/ssl/host.rb +90 -0
- data/spec/integration/transaction.rb +66 -0
- data/spec/integration/transaction/report.rb +2 -5
- data/spec/integration/type.rb +22 -0
- data/spec/integration/type/file.rb +458 -0
- data/spec/integration/type/package.rb +1 -1
- data/spec/integration/type/tidy.rb +27 -0
- data/spec/integration/util/autoload.rb +114 -0
- data/spec/integration/util/feature.rb +54 -0
- data/spec/integration/util/file_locking.rb +2 -1
- data/spec/integration/util/settings.rb +27 -0
- data/spec/lib/puppet_spec/files.rb +9 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
- data/spec/monkey_patches/alias_should_to_must.rb +1 -0
- data/spec/shared_behaviours/file_server_terminus.rb +14 -11
- data/spec/shared_behaviours/file_serving.rb +13 -17
- data/spec/spec_helper.rb +22 -5
- data/spec/unit/agent.rb +259 -0
- data/spec/unit/agent/locker.rb +100 -0
- data/spec/unit/agent/runner.rb +118 -0
- data/spec/unit/application.rb +420 -0
- data/spec/unit/application/filebucket.rb +220 -0
- data/spec/unit/application/pi.rb +84 -0
- data/spec/unit/application/puppet.rb +404 -0
- data/spec/unit/application/puppetca.rb +142 -0
- data/spec/unit/application/puppetd.rb +502 -0
- data/spec/unit/application/puppetdoc.rb +345 -0
- data/spec/unit/application/puppetmasterd.rb +456 -0
- data/spec/unit/application/puppetqd.rb +186 -0
- data/spec/unit/application/puppetrun.rb +279 -0
- data/spec/unit/application/ralsh.rb +237 -0
- data/spec/unit/configurer.rb +232 -0
- data/spec/unit/configurer/downloader.rb +188 -0
- data/spec/unit/configurer/fact_handler.rb +150 -0
- data/spec/unit/configurer/plugin_handler.rb +112 -0
- data/spec/unit/daemon.rb +287 -0
- data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
- data/spec/unit/file_serving/configuration.rb +104 -93
- data/spec/unit/file_serving/configuration/parser.rb +64 -18
- data/spec/unit/file_serving/content.rb +65 -26
- data/spec/unit/file_serving/fileset.rb +116 -14
- data/spec/unit/file_serving/indirection_hooks.rb +34 -95
- data/spec/unit/file_serving/metadata.rb +27 -40
- data/spec/unit/file_serving/mount.rb +7 -118
- data/spec/unit/file_serving/mount/file.rb +188 -0
- data/spec/unit/file_serving/mount/modules.rb +63 -0
- data/spec/unit/file_serving/mount/plugins.rb +61 -0
- data/spec/unit/file_serving/terminus_helper.rb +39 -27
- data/spec/unit/indirector.rb +6 -1
- data/spec/unit/indirector/active_record.rb +76 -0
- data/spec/unit/indirector/catalog/active_record.rb +122 -0
- data/spec/unit/indirector/catalog/compiler.rb +222 -118
- data/spec/unit/indirector/catalog/queue.rb +20 -0
- data/spec/unit/indirector/catalog/rest.rb +11 -0
- data/spec/unit/indirector/catalog/yaml.rb +6 -6
- data/spec/unit/indirector/certificate/ca.rb +28 -0
- data/spec/unit/indirector/certificate/file.rb +28 -0
- data/spec/unit/indirector/certificate/rest.rb +23 -0
- data/spec/unit/indirector/certificate_request/ca.rb +19 -0
- data/spec/unit/indirector/certificate_request/file.rb +19 -0
- data/spec/unit/indirector/certificate_request/rest.rb +23 -0
- data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
- data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
- data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
- data/spec/unit/indirector/direct_file_server.rb +3 -8
- data/spec/unit/indirector/exec.rb +6 -1
- data/spec/unit/indirector/facts/active_record.rb +104 -0
- data/spec/unit/indirector/facts/facter.rb +53 -12
- data/spec/unit/indirector/facts/rest.rb +11 -0
- data/spec/unit/indirector/file.rb +8 -1
- data/spec/unit/indirector/file_metadata/file.rb +5 -5
- data/spec/unit/indirector/file_server.rb +181 -98
- data/spec/unit/indirector/indirection.rb +102 -38
- data/spec/unit/indirector/key/ca.rb +28 -0
- data/spec/unit/indirector/key/file.rb +104 -0
- data/spec/unit/indirector/node/active_record.rb +34 -0
- data/spec/unit/indirector/node/ldap.rb +1 -1
- data/spec/unit/indirector/node/rest.rb +2 -2
- data/spec/unit/indirector/queue.rb +123 -0
- data/spec/unit/indirector/report/rest.rb +28 -0
- data/spec/unit/indirector/request.rb +221 -0
- data/spec/unit/indirector/rest.rb +343 -334
- data/spec/unit/indirector/runner/rest.rb +11 -0
- data/spec/unit/indirector/ssl_file.rb +280 -0
- data/spec/unit/module.rb +180 -180
- data/spec/unit/network/authconfig.rb +292 -0
- data/spec/unit/network/authstore.rb +94 -0
- data/spec/unit/network/client.rb +2 -2
- data/spec/unit/network/client/dipper.rb +16 -0
- data/spec/unit/network/format.rb +191 -0
- data/spec/unit/network/format_handler.rb +306 -0
- data/spec/unit/network/formats.rb +249 -0
- data/spec/unit/network/handler/fileserver.rb +2 -5
- data/spec/unit/network/http.rb +3 -3
- data/spec/unit/network/http/api/v1.rb +122 -0
- data/spec/unit/network/http/handler.rb +448 -0
- data/spec/unit/network/http/mongrel.rb +46 -32
- data/spec/unit/network/http/mongrel/rest.rb +174 -319
- data/spec/unit/network/http/rack.rb +102 -0
- data/spec/unit/network/http/rack/rest.rb +199 -0
- data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
- data/spec/unit/network/http/webrick.rb +249 -37
- data/spec/unit/network/http/webrick/rest.rb +113 -279
- data/spec/unit/network/http_pool.rb +86 -110
- data/spec/unit/network/rest_authconfig.rb +146 -0
- data/spec/unit/network/rest_authorization.rb +43 -0
- data/spec/unit/network/rights.rb +519 -0
- data/spec/unit/network/server.rb +475 -257
- data/spec/unit/node.rb +43 -10
- data/spec/unit/node/environment.rb +143 -9
- data/spec/unit/node/facts.rb +77 -24
- data/spec/unit/other/selinux.rb +85 -0
- data/spec/unit/other/transbucket.rb +29 -13
- data/spec/unit/other/transobject.rb +35 -15
- data/spec/unit/parameter.rb +378 -5
- data/spec/unit/parser/ast.rb +1 -1
- data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
- data/spec/unit/parser/ast/astarray.rb +16 -10
- data/spec/unit/parser/ast/boolean_operator.rb +2 -2
- data/spec/unit/parser/ast/casestatement.rb +143 -0
- data/spec/unit/parser/ast/collection.rb +63 -0
- data/spec/unit/parser/ast/collexpr.rb +31 -8
- data/spec/unit/parser/ast/comparison_operator.rb +9 -9
- data/spec/unit/parser/ast/definition.rb +18 -0
- data/spec/unit/parser/ast/function.rb +6 -0
- data/spec/unit/parser/ast/ifstatement.rb +75 -0
- data/spec/unit/parser/ast/leaf.rb +261 -0
- data/spec/unit/parser/ast/match_operator.rb +50 -0
- data/spec/unit/parser/ast/minus.rb +1 -1
- data/spec/unit/parser/ast/node.rb +20 -0
- data/spec/unit/parser/ast/not.rb +1 -1
- data/spec/unit/parser/ast/resource_override.rb +5 -5
- data/spec/unit/parser/ast/resource_reference.rb +11 -5
- data/spec/unit/parser/ast/selector.rb +156 -0
- data/spec/unit/parser/ast/vardef.rb +11 -11
- data/spec/unit/parser/collector.rb +167 -48
- data/spec/unit/parser/compiler.rb +128 -104
- data/spec/unit/parser/files.rb +190 -0
- data/spec/unit/parser/functions/inline_template.rb +0 -0
- data/spec/unit/parser/functions/regsubst.rb +42 -42
- data/spec/unit/parser/functions/require.rb +36 -0
- data/spec/unit/parser/functions/shellquote.rb +92 -0
- data/spec/unit/parser/functions/split.rb +51 -0
- data/spec/unit/parser/functions/sprintf.rb +11 -11
- data/spec/unit/parser/functions/template.rb +0 -0
- data/spec/unit/parser/functions/versioncmp.rb +2 -2
- data/spec/unit/parser/interpreter.rb +16 -7
- data/spec/unit/parser/lexer.rb +72 -12
- data/spec/unit/parser/loaded_code.rb +198 -0
- data/spec/unit/parser/parser.rb +215 -28
- data/spec/unit/parser/resource.rb +131 -22
- data/spec/unit/parser/scope.rb +207 -12
- data/spec/unit/parser/templatewrapper.rb +8 -3
- data/spec/unit/property.rb +270 -16
- data/spec/unit/property/list.rb +12 -6
- data/spec/unit/provider.rb +31 -0
- data/spec/unit/provider/augeas/augeas.rb +61 -33
- data/spec/unit/provider/macauthorization.rb +29 -29
- data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
- data/spec/unit/provider/mount/parsed.rb +5 -8
- data/spec/unit/provider/naginator.rb +0 -0
- data/spec/unit/provider/package/apt.rb +6 -6
- data/spec/unit/provider/package/pkgdmg.rb +73 -0
- data/spec/unit/provider/selboolean.rb +1 -1
- data/spec/unit/provider/selmodule.rb +2 -2
- data/spec/unit/provider/service/daemontools.rb +40 -15
- data/spec/unit/provider/service/debian.rb +89 -0
- data/spec/unit/provider/service/init.rb +106 -0
- data/spec/unit/provider/service/launchd.rb +71 -13
- data/spec/unit/provider/service/redhat.rb +94 -0
- data/spec/unit/provider/service/runit.rb +14 -2
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
- data/spec/unit/provider/user/ldap.rb +1 -1
- data/spec/unit/provider/user/user_role_add.rb +1 -1
- data/spec/unit/provider/zfs/solaris.rb +18 -6
- data/spec/unit/provider/zone/solaris.rb +1 -1
- data/spec/unit/rails.rb +16 -22
- data/spec/unit/rails/host.rb +163 -0
- data/spec/unit/rails/param_value.rb +49 -0
- data/spec/unit/rails/resource.rb +87 -0
- data/spec/unit/relationship.rb +141 -29
- data/spec/unit/resource.rb +504 -0
- data/spec/unit/resource/catalog.rb +1061 -0
- data/spec/unit/resource/reference.rb +111 -0
- data/spec/unit/simple_graph.rb +448 -191
- data/spec/unit/ssl/certificate.rb +124 -0
- data/spec/unit/ssl/certificate_authority.rb +741 -0
- data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
- data/spec/unit/ssl/certificate_factory.rb +107 -0
- data/spec/unit/ssl/certificate_request.rb +193 -0
- data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
- data/spec/unit/ssl/host.rb +704 -0
- data/spec/unit/ssl/inventory.rb +180 -0
- data/spec/unit/ssl/key.rb +198 -0
- data/spec/unit/transaction.rb +65 -2
- data/spec/unit/transaction/change.rb +1 -1
- data/spec/unit/transaction/report.rb +1 -1
- data/spec/unit/type.rb +361 -8
- data/spec/unit/type/augeas.rb +30 -37
- data/spec/unit/type/component.rb +63 -0
- data/spec/unit/type/computer.rb +17 -21
- data/spec/unit/type/exec.rb +27 -2
- data/spec/unit/type/file.rb +704 -83
- data/spec/unit/type/file/content.rb +253 -15
- data/spec/unit/type/file/ensure.rb +65 -2
- data/spec/unit/type/file/group.rb +5 -0
- data/spec/unit/type/file/owner.rb +5 -0
- data/spec/unit/type/file/selinux.rb +12 -16
- data/spec/unit/type/file/source.rb +264 -0
- data/spec/unit/type/filebucket.rb +74 -0
- data/spec/unit/type/group.rb +1 -5
- data/spec/unit/type/macauthorization.rb +59 -26
- data/spec/unit/type/mcx.rb +8 -16
- data/spec/unit/type/mount.rb +8 -16
- data/spec/unit/type/noop_metaparam.rb +0 -2
- data/spec/unit/type/package.rb +13 -23
- data/spec/unit/type/resources.rb +4 -7
- data/spec/unit/type/schedule.rb +1 -7
- data/spec/unit/type/selboolean.rb +4 -6
- data/spec/unit/type/service.rb +23 -33
- data/spec/unit/type/ssh_authorized_key.rb +25 -14
- data/spec/unit/type/tidy.rb +329 -21
- data/spec/unit/type/user.rb +18 -10
- data/spec/unit/type/zfs.rb +6 -6
- data/spec/unit/util/autoload.rb +94 -3
- data/spec/unit/util/autoload/file_cache.rb +183 -0
- data/spec/unit/util/backups.rb +159 -0
- data/spec/unit/util/cache_accumulator.rb +69 -0
- data/spec/unit/util/cacher.rb +185 -0
- data/spec/unit/util/checksums.rb +9 -1
- data/spec/unit/util/feature.rb +72 -0
- data/spec/unit/util/filetype.rb +1 -11
- data/spec/unit/util/json.rb +21 -0
- data/spec/unit/util/log.rb +45 -0
- data/spec/unit/util/package.rb +2 -2
- data/spec/unit/util/queue.rb +88 -0
- data/spec/unit/util/queue/stomp.rb +140 -0
- data/spec/unit/util/reference_serializer.rb +52 -0
- data/spec/unit/util/selinux.rb +5 -3
- data/spec/unit/util/settings.rb +413 -264
- data/spec/unit/util/settings/file_setting.rb +223 -0
- data/spec/unit/util/storage.rb +11 -11
- data/spec/unit/util/warnings.rb +21 -17
- data/test/Rakefile +6 -5
- data/test/certmgr/ca.rb +5 -5
- data/test/certmgr/certmgr.rb +4 -4
- data/test/data/providers/cron/crontab.allthree +2 -2
- data/test/data/providers/cron/crontab.envNcomment +1 -1
- data/test/data/providers/cron/crontab.envNname +1 -1
- data/test/data/providers/cron/crontab.multirecords +1 -1
- data/test/data/providers/cron/crontab_collections.yaml +14 -14
- data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
- data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
- data/test/data/providers/mailalias/aliases/test1 +28 -0
- data/test/data/providers/package/testpackages.yaml +6 -6
- data/test/data/reports/1.yaml +17 -17
- data/test/data/reports/tagmail_passers.conf +2 -2
- data/test/data/snippets/append.pp +5 -5
- data/test/data/snippets/casestatement.pp +9 -2
- data/test/data/snippets/classincludes.pp +1 -1
- data/test/data/snippets/collection_override.pp +8 -0
- data/test/data/snippets/fqparents.pp +2 -2
- data/test/data/snippets/ifexpression.pp +12 -0
- data/test/data/snippets/multilinecomments.pp +5 -1
- data/test/data/snippets/selectorvalues.pp +7 -0
- data/test/data/types/hosts/1 +1 -1
- data/test/data/types/hosts/2 +3 -3
- data/test/data/types/hosts/solaris +2 -2
- data/test/data/types/mount/freebsd.fstab +7 -7
- data/test/data/types/mount/solaris.fstab +10 -10
- data/test/data/types/port/1 +472 -472
- data/test/data/types/port/darwin +4347 -4347
- data/test/language/ast.rb +3 -2
- data/test/language/ast/casestatement.rb +12 -12
- data/test/language/ast/resource.rb +4 -4
- data/test/language/ast/resource_reference.rb +5 -5
- data/test/language/ast/selector.rb +11 -11
- data/test/language/ast/variable.rb +4 -4
- data/test/language/functions.rb +16 -16
- data/test/language/parser.rb +89 -111
- data/test/language/resource.rb +3 -88
- data/test/language/scope.rb +14 -55
- data/test/language/snippets.rb +31 -31
- data/test/lib/puppettest.rb +12 -12
- data/test/lib/puppettest/certificates.rb +2 -2
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +1 -1
- data/test/lib/puppettest/parsertesting.rb +9 -4
- data/test/lib/puppettest/railstesting.rb +3 -3
- data/test/lib/puppettest/servertest.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +1 -1
- data/test/lib/puppettest/support/resources.rb +7 -7
- data/test/lib/puppettest/support/utils.rb +10 -16
- data/test/lib/puppettest/testcase.rb +2 -1
- data/test/network/authconfig.rb +1 -1
- data/test/network/authorization.rb +1 -1
- data/test/network/authstore.rb +57 -14
- data/test/network/client/ca.rb +1 -0
- data/test/network/client/resource.rb +12 -50
- data/test/network/client_request.rb +1 -1
- data/test/network/handler/bucket.rb +2 -2
- data/test/network/handler/fileserver.rb +17 -21
- data/test/network/handler/master.rb +5 -5
- data/test/network/handler/report.rb +3 -3
- data/test/network/handler/resource.rb +29 -75
- data/test/network/handler/runner.rb +8 -58
- data/test/network/rights.rb +1 -1
- data/test/network/server/mongrel_test.rb +15 -1
- data/test/network/server/webrick.rb +0 -36
- data/test/network/xmlrpc/webrick_servlet.rb +5 -5
- data/test/other/dsl.rb +3 -3
- data/test/other/events.rb +15 -15
- data/test/other/puppet.rb +2 -32
- data/test/other/relationships.rb +21 -148
- data/test/other/report.rb +20 -23
- data/test/other/transactions.rb +110 -298
- data/test/puppet/defaults.rb +1 -1
- data/test/puppet/tc_suidmanager.rb +1 -1
- data/test/rails/railsparameter.rb +4 -4
- data/test/ral/manager/attributes.rb +12 -68
- data/test/ral/manager/instances.rb +3 -19
- data/test/ral/manager/manager.rb +7 -7
- data/test/ral/manager/provider.rb +7 -7
- data/test/ral/manager/type.rb +54 -349
- data/test/ral/providers/cron/crontab.rb +14 -14
- data/test/ral/providers/group.rb +5 -6
- data/test/ral/providers/host/parsed.rb +3 -3
- data/test/ral/providers/mailalias/aliases.rb +4 -4
- data/test/ral/providers/package.rb +3 -3
- data/test/ral/providers/package/aptitude.rb +55 -55
- data/test/ral/providers/package/aptrpm.rb +7 -7
- data/test/ral/providers/parsedfile.rb +10 -14
- data/test/ral/providers/port/parsed.rb +6 -6
- data/test/ral/providers/provider.rb +10 -10
- data/test/ral/providers/service/base.rb +32 -32
- data/test/ral/providers/sshkey/parsed.rb +14 -14
- data/test/ral/providers/user.rb +16 -17
- data/test/ral/providers/user/useradd.rb +19 -22
- data/test/ral/type/cron.rb +21 -28
- data/test/ral/type/exec.rb +57 -60
- data/test/ral/type/file.rb +88 -862
- data/test/ral/type/file/target.rb +21 -70
- data/test/ral/type/fileignoresource.rb +37 -44
- data/test/ral/type/filesources.rb +43 -473
- data/test/ral/type/group.rb +6 -7
- data/test/ral/type/host.rb +14 -30
- data/test/ral/type/mailalias.rb +3 -3
- data/test/ral/type/port.rb +5 -5
- data/test/ral/type/resources.rb +37 -37
- data/test/ral/type/service.rb +3 -3
- data/test/ral/type/sshkey.rb +34 -39
- data/test/ral/type/user.rb +15 -14
- data/test/ral/type/yumrepo.rb +18 -17
- data/test/ral/type/zone.rb +4 -6
- data/test/test +9 -9
- data/test/util/fileparsing.rb +10 -10
- data/test/util/inifile.rb +6 -6
- data/test/util/instance_loader.rb +1 -1
- data/test/util/log.rb +2 -2
- data/test/util/metrics.rb +1 -6
- data/test/util/package.rb +1 -1
- data/test/util/pidlock.rb +116 -116
- data/test/util/settings.rb +40 -429
- data/test/util/storage.rb +5 -5
- data/test/util/subclass_loader.rb +0 -7
- data/test/util/utiltest.rb +10 -29
- metadata +1369 -941
- data/bin/puppetca +0 -363
- data/bin/puppetd +0 -439
- data/bin/puppetmasterd +0 -289
- data/bin/puppetrun +0 -369
- data/conf/redhat/lsb-config.patch +0 -51
- data/conf/redhat/no-chuser-0.15.1.patch +0 -38
- data/conf/redhat/no-lockdir.patch +0 -13
- data/examples/mac_netinfo.pp +0 -5
- data/ext/passenger/README +0 -63
- data/ext/passenger/apache2.conf +0 -29
- data/ext/passenger/config.ru +0 -40
- data/lib/puppet/config_stores/rest.rb +0 -60
- data/lib/puppet/executables/client/certhandler.rb +0 -82
- data/lib/puppet/indirector/file_content/modules.rb +0 -11
- data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
- data/lib/puppet/indirector/module_files.rb +0 -82
- data/lib/puppet/indirector/ssl_rsa.rb +0 -5
- data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
- data/lib/puppet/network/client/master.rb +0 -524
- data/lib/puppet/network/http_server/rack.rb +0 -148
- data/lib/puppet/pgraph.rb +0 -121
- data/lib/puppet/provider/group/netinfo.rb +0 -15
- data/lib/puppet/provider/host/netinfo.rb +0 -19
- data/lib/puppet/provider/mount/netinfo.rb +0 -37
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
- data/lib/puppet/provider/user/netinfo.rb +0 -111
- data/lib/puppet/util/fact_store.rb +0 -59
- data/lib/puppet/util/uri_helper.rb +0 -22
- data/spec/integration/file_serving/configuration.rb +0 -43
- data/spec/integration/indirector/module_files.rb +0 -57
- data/spec/unit/executables/client/certhandler.rb +0 -135
- data/spec/unit/indirector/file_content/modules.rb +0 -18
- data/spec/unit/indirector/file_metadata/modules.rb +0 -42
- data/spec/unit/indirector/module_files.rb +0 -259
- data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
- data/spec/unit/network/client/master.rb +0 -442
- data/spec/unit/node/catalog.rb +0 -865
- data/spec/unit/other/pgraph.rb +0 -210
- data/spec/unit/resource_reference.rb +0 -73
- data/spec/unit/util/uri_helper.rb +0 -41
- data/test/data/snippets/ifexpression.rb +0 -6
- data/test/executables/filebucket.rb +0 -51
- data/test/executables/puppetbin.rb +0 -104
- data/test/executables/puppetca.rb +0 -115
- data/test/executables/puppetd.rb +0 -55
- data/test/executables/puppetmasterd.rb +0 -147
- data/test/network/client/client.rb +0 -195
- data/test/network/client/master.rb +0 -490
- data/test/network/daemon.rb +0 -70
- data/test/network/handler/handler.rb +0 -63
- data/test/other/overrides.rb +0 -107
- data/test/puppet/conffiles.rb +0 -107
- data/test/rails/ast.rb +0 -73
- data/test/rails/configuration.rb +0 -71
- data/test/rails/host.rb +0 -154
- data/test/rails/railsresource.rb +0 -251
- data/test/ral/providers/host/netinfo.rb +0 -56
- data/test/ral/providers/mount/netinfo.rb +0 -79
- data/test/ral/type/basic.rb +0 -85
- data/test/ral/type/filebucket.rb +0 -157
- data/test/ral/type/parameter.rb +0 -174
- data/test/ral/type/property.rb +0 -388
- data/test/ral/type/tidy.rb +0 -291
- data/test/util/autoload.rb +0 -145
- data/test/util/features.rb +0 -95
data/spec/unit/type/resources.rb
CHANGED
@@ -7,21 +7,18 @@ resources = Puppet::Type.type(:resources)
|
|
7
7
|
# There are still plenty of tests to port over from test/.
|
8
8
|
describe resources do
|
9
9
|
describe "when initializing" do
|
10
|
-
before do
|
11
|
-
resources.clear
|
12
|
-
end
|
13
|
-
|
14
10
|
it "should fail if the specified resource type does not exist" do
|
11
|
+
Puppet::Type.stubs(:type).with("Resources").returns resources
|
15
12
|
Puppet::Type.expects(:type).with("nosuchtype").returns nil
|
16
|
-
lambda { resources.
|
13
|
+
lambda { resources.new :name => "nosuchtype" }.should raise_error(Puppet::Error)
|
17
14
|
end
|
18
15
|
|
19
16
|
it "should not fail when the specified resource type exists" do
|
20
|
-
lambda { resources.
|
17
|
+
lambda { resources.new :name => "file" }.should_not raise_error
|
21
18
|
end
|
22
19
|
|
23
20
|
it "should set its :resource_type attribute" do
|
24
|
-
resources.
|
21
|
+
resources.new(:name => "file").resource_type.should == Puppet::Type.type(:file)
|
25
22
|
end
|
26
23
|
end
|
27
24
|
end
|
data/spec/unit/type/schedule.rb
CHANGED
@@ -40,18 +40,12 @@ module ScheduleTesting
|
|
40
40
|
end
|
41
41
|
|
42
42
|
describe Puppet::Type.type(:schedule) do
|
43
|
-
|
44
43
|
before :each do
|
45
44
|
Puppet.settings.stubs(:value).with(:ignoreschedules).returns(false)
|
46
45
|
|
47
|
-
@schedule = Puppet::Type.type(:schedule).
|
48
|
-
end
|
49
|
-
|
50
|
-
after :each do
|
51
|
-
Puppet::Type.type(:schedule).clear
|
46
|
+
@schedule = Puppet::Type.type(:schedule).new(:name => "testing")
|
52
47
|
end
|
53
48
|
|
54
|
-
|
55
49
|
describe Puppet::Type.type(:schedule) do
|
56
50
|
include ScheduleTesting
|
57
51
|
|
@@ -27,21 +27,19 @@ describe Puppet::Type.type(:selboolean), "when validating values" do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should support :on as a value to :value" do
|
30
|
-
Puppet::Type.type(:selboolean).
|
30
|
+
Puppet::Type.type(:selboolean).new(:name => "yay", :value => :on)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should support :off as a value to :value" do
|
34
|
-
Puppet::Type.type(:selboolean).
|
34
|
+
Puppet::Type.type(:selboolean).new(:name => "yay", :value => :off)
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should support :true as a value to :persistent" do
|
38
|
-
Puppet::Type.type(:selboolean).
|
38
|
+
Puppet::Type.type(:selboolean).new(:name => "yay", :value => :on, :persistent => :true)
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should support :false as a value to :persistent" do
|
42
|
-
Puppet::Type.type(:selboolean).
|
42
|
+
Puppet::Type.type(:selboolean).new(:name => "yay", :value => :on, :persistent => :false)
|
43
43
|
end
|
44
|
-
|
45
|
-
after { Puppet::Type.type(:selboolean).clear }
|
46
44
|
end
|
47
45
|
|
data/spec/unit/type/service.rb
CHANGED
@@ -33,90 +33,88 @@ describe Puppet::Type.type(:service), "when validating attribute values" do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should support :running as a value to :ensure" do
|
36
|
-
Puppet::Type.type(:service).
|
36
|
+
Puppet::Type.type(:service).new(:name => "yay", :ensure => :running)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should support :stopped as a value to :ensure" do
|
40
|
-
Puppet::Type.type(:service).
|
40
|
+
Puppet::Type.type(:service).new(:name => "yay", :ensure => :stopped)
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should alias the value :true to :running in :ensure" do
|
44
|
-
svc = Puppet::Type.type(:service).
|
44
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :ensure => true)
|
45
45
|
svc.should(:ensure).should == :running
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should alias the value :false to :stopped in :ensure" do
|
49
|
-
svc = Puppet::Type.type(:service).
|
49
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :ensure => false)
|
50
50
|
svc.should(:ensure).should == :stopped
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should support :true as a value to :enable" do
|
54
|
-
Puppet::Type.type(:service).
|
54
|
+
Puppet::Type.type(:service).new(:name => "yay", :enable => :true)
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should support :false as a value to :enable" do
|
58
|
-
Puppet::Type.type(:service).
|
58
|
+
Puppet::Type.type(:service).new(:name => "yay", :enable => :false)
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should support :true as a value to :hasstatus" do
|
62
|
-
Puppet::Type.type(:service).
|
62
|
+
Puppet::Type.type(:service).new(:name => "yay", :hasstatus => :true)
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should support :false as a value to :hasstatus" do
|
66
|
-
Puppet::Type.type(:service).
|
66
|
+
Puppet::Type.type(:service).new(:name => "yay", :hasstatus => :false)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should support :true as a value to :hasrestart" do
|
70
|
-
Puppet::Type.type(:service).
|
70
|
+
Puppet::Type.type(:service).new(:name => "yay", :hasrestart => :true)
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should support :false as a value to :hasrestart" do
|
74
|
-
Puppet::Type.type(:service).
|
74
|
+
Puppet::Type.type(:service).new(:name => "yay", :hasrestart => :false)
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should allow setting the :enable parameter if the provider has the :enableable feature" do
|
78
78
|
Puppet::Type.type(:service).defaultprovider.stubs(:supports_parameter?).returns(true)
|
79
79
|
Puppet::Type.type(:service).defaultprovider.expects(:supports_parameter?).with(Puppet::Type.type(:service).attrclass(:enable)).returns(true)
|
80
|
-
svc = Puppet::Type.type(:service).
|
80
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :enable => true)
|
81
81
|
svc.should(:enable).should == :true
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should not allow setting the :enable parameter if the provider is missing the :enableable feature" do
|
85
85
|
Puppet::Type.type(:service).defaultprovider.stubs(:supports_parameter?).returns(true)
|
86
86
|
Puppet::Type.type(:service).defaultprovider.expects(:supports_parameter?).with(Puppet::Type.type(:service).attrclass(:enable)).returns(false)
|
87
|
-
svc = Puppet::Type.type(:service).
|
87
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :enable => true)
|
88
88
|
svc.should(:enable).should be_nil
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should discard paths that do not exist" do
|
92
92
|
FileTest.stubs(:exist?).returns(false)
|
93
93
|
FileTest.stubs(:directory?).returns(false)
|
94
|
-
svc = Puppet::Type.type(:service).
|
94
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :path => "/one/two")
|
95
95
|
svc[:path].should be_empty
|
96
96
|
end
|
97
97
|
|
98
98
|
it "should discard paths that are not directories" do
|
99
99
|
FileTest.stubs(:exist?).returns(true)
|
100
100
|
FileTest.stubs(:directory?).returns(false)
|
101
|
-
svc = Puppet::Type.type(:service).
|
101
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :path => "/one/two")
|
102
102
|
svc[:path].should be_empty
|
103
103
|
end
|
104
104
|
|
105
105
|
it "should split paths on ':'" do
|
106
106
|
FileTest.stubs(:exist?).returns(true)
|
107
107
|
FileTest.stubs(:directory?).returns(true)
|
108
|
-
svc = Puppet::Type.type(:service).
|
108
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :path => "/one/two:/three/four")
|
109
109
|
svc[:path].should == %w{/one/two /three/four}
|
110
110
|
end
|
111
111
|
|
112
112
|
it "should accept arrays of paths joined by ':'" do
|
113
113
|
FileTest.stubs(:exist?).returns(true)
|
114
114
|
FileTest.stubs(:directory?).returns(true)
|
115
|
-
svc = Puppet::Type.type(:service).
|
115
|
+
svc = Puppet::Type.type(:service).new(:name => "yay", :path => ["/one:/two", "/three:/four"])
|
116
116
|
svc[:path].should == %w{/one /two /three /four}
|
117
117
|
end
|
118
|
-
|
119
|
-
after { Puppet::Type.type(:service).clear }
|
120
118
|
end
|
121
119
|
|
122
120
|
describe Puppet::Type.type(:service), "when setting default attribute values" do
|
@@ -126,33 +124,31 @@ describe Puppet::Type.type(:service), "when setting default attribute values" do
|
|
126
124
|
|
127
125
|
Puppet::Type.type(:service).defaultprovider.stubs(:respond_to?).returns(true)
|
128
126
|
Puppet::Type.type(:service).defaultprovider.stubs(:defpath).returns("testing")
|
129
|
-
svc = Puppet::Type.type(:service).
|
127
|
+
svc = Puppet::Type.type(:service).new(:name => "other")
|
130
128
|
svc[:path].should == ["testing"]
|
131
129
|
end
|
132
130
|
|
133
131
|
it "should default 'pattern' to the binary if one is provided" do
|
134
|
-
svc = Puppet::Type.type(:service).
|
132
|
+
svc = Puppet::Type.type(:service).new(:name => "other", :binary => "/some/binary")
|
135
133
|
svc[:pattern].should == "/some/binary"
|
136
134
|
end
|
137
135
|
|
138
136
|
it "should default 'pattern' to the name if no pattern is provided" do
|
139
|
-
svc = Puppet::Type.type(:service).
|
137
|
+
svc = Puppet::Type.type(:service).new(:name => "other")
|
140
138
|
svc[:pattern].should == "other"
|
141
139
|
end
|
142
140
|
|
143
141
|
it "should default 'control' to the upcased service name with periods replaced by underscores if the provider supports the 'controllable' feature" do
|
144
142
|
provider = stub 'provider', :controllable? => true, :class => Puppet::Type.type(:service).defaultprovider, :clear => nil
|
145
143
|
Puppet::Type.type(:service).defaultprovider.stubs(:new).returns(provider)
|
146
|
-
svc = Puppet::Type.type(:service).
|
144
|
+
svc = Puppet::Type.type(:service).new(:name => "nfs.client")
|
147
145
|
svc[:control].should == "NFS_CLIENT_START"
|
148
146
|
end
|
149
|
-
|
150
|
-
after { Puppet::Type.type(:service).clear }
|
151
147
|
end
|
152
148
|
|
153
149
|
describe Puppet::Type.type(:service), "when retrieving the host's current state" do
|
154
150
|
before do
|
155
|
-
@service = Puppet::Type.type(:service).
|
151
|
+
@service = Puppet::Type.type(:service).new(:name => "yay")
|
156
152
|
end
|
157
153
|
|
158
154
|
it "should use the provider's status to determine whether the service is running" do
|
@@ -167,13 +163,11 @@ describe Puppet::Type.type(:service), "when retrieving the host's current state"
|
|
167
163
|
@service[:enable] = true
|
168
164
|
@service.property(:enable).retrieve.should == :yepper
|
169
165
|
end
|
170
|
-
|
171
|
-
after { Puppet::Type.type(:service).clear }
|
172
166
|
end
|
173
167
|
|
174
168
|
describe Puppet::Type.type(:service), "when changing the host" do
|
175
169
|
before do
|
176
|
-
@service = Puppet::Type.type(:service).
|
170
|
+
@service = Puppet::Type.type(:service).new(:name => "yay")
|
177
171
|
end
|
178
172
|
|
179
173
|
it "should start the service if it is supposed to be running" do
|
@@ -215,13 +209,11 @@ describe Puppet::Type.type(:service), "when changing the host" do
|
|
215
209
|
|
216
210
|
@service.property(:ensure).sync
|
217
211
|
end
|
218
|
-
|
219
|
-
after { Puppet::Type.type(:service).clear }
|
220
212
|
end
|
221
213
|
|
222
214
|
describe Puppet::Type.type(:service), "when refreshing the service" do
|
223
215
|
before do
|
224
|
-
@service = Puppet::Type.type(:service).
|
216
|
+
@service = Puppet::Type.type(:service).new(:name => "yay")
|
225
217
|
end
|
226
218
|
|
227
219
|
it "should restart the service if it is running" do
|
@@ -249,6 +241,4 @@ describe Puppet::Type.type(:service), "when refreshing the service" do
|
|
249
241
|
@service.provider.expects(:restart)
|
250
242
|
@service.refresh
|
251
243
|
end
|
252
|
-
|
253
|
-
after { Puppet::Type.type(:service).clear }
|
254
244
|
end
|
@@ -14,7 +14,7 @@ describe ssh_authorized_key do
|
|
14
14
|
|
15
15
|
@provider = stub 'provider', :class => @provider_class, :file_path => "/tmp/whatever", :clear => nil
|
16
16
|
@provider_class.stubs(:new).returns(@provider)
|
17
|
-
@catalog = Puppet::
|
17
|
+
@catalog = Puppet::Resource::Catalog.new
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should have a name parameter" do
|
@@ -34,31 +34,31 @@ describe ssh_authorized_key do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should support :present as a value for :ensure" do
|
37
|
-
proc { @class.
|
37
|
+
proc { @class.new(:name => "whev", :ensure => :present, :user => "nobody") }.should_not raise_error
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should support :absent as a value for :ensure" do
|
41
|
-
proc { @class.
|
41
|
+
proc { @class.new(:name => "whev", :ensure => :absent, :user => "nobody") }.should_not raise_error
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should have an type property" do
|
45
45
|
@class.attrtype(:type).should == :property
|
46
46
|
end
|
47
47
|
it "should support ssh-dss as an type value" do
|
48
|
-
proc { @class.
|
48
|
+
proc { @class.new(:name => "whev", :type => "ssh-dss", :user => "nobody") }.should_not raise_error
|
49
49
|
end
|
50
50
|
it "should support ssh-rsa as an type value" do
|
51
|
-
proc { @class.
|
51
|
+
proc { @class.new(:name => "whev", :type => "ssh-rsa", :user => "nobody") }.should_not raise_error
|
52
52
|
end
|
53
53
|
it "should support :dsa as an type value" do
|
54
|
-
proc { @class.
|
54
|
+
proc { @class.new(:name => "whev", :type => :dsa, :user => "nobody") }.should_not raise_error
|
55
55
|
end
|
56
56
|
it "should support :rsa as an type value" do
|
57
|
-
proc { @class.
|
57
|
+
proc { @class.new(:name => "whev", :type => :rsa, :user => "nobody") }.should_not raise_error
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should not support values other than ssh-dss, ssh-rsa, dsa, rsa in the ssh_authorized_key_type" do
|
61
|
-
proc { @class.
|
61
|
+
proc { @class.new(:name => "whev", :type => :something) }.should raise_error(Puppet::Error)
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should have an key property" do
|
@@ -74,13 +74,13 @@ describe ssh_authorized_key do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
it "'s options property should return well formed string of arrays from is_to_s" do
|
77
|
-
resource = @class.
|
77
|
+
resource = @class.new(:name => "whev", :type => :rsa, :user => "nobody", :options => ["a","b","c"])
|
78
78
|
|
79
79
|
resource.property(:options).is_to_s(["a","b","c"]).should == "a,b,c"
|
80
80
|
end
|
81
81
|
|
82
82
|
it "'s options property should return well formed string of arrays from is_to_s" do
|
83
|
-
resource = @class.
|
83
|
+
resource = @class.new(:name => "whev", :type => :rsa, :user => "nobody", :options => ["a","b","c"])
|
84
84
|
|
85
85
|
resource.property(:options).should_to_s(["a","b","c"]).should == "a,b,c"
|
86
86
|
end
|
@@ -120,10 +120,21 @@ describe ssh_authorized_key do
|
|
120
120
|
target = File.expand_path("~root/.ssh/authorized_keys")
|
121
121
|
resource.should(:target).should == target
|
122
122
|
end
|
123
|
-
end
|
124
123
|
|
125
|
-
|
126
|
-
|
127
|
-
|
124
|
+
# Bug #2124 - ssh_authorized_key always changes target if target is not defined
|
125
|
+
it "should not raise spurious change events" do
|
126
|
+
resource = @class.new(:name => "Test", :user => "root")
|
127
|
+
target = File.expand_path("~root/.ssh/authorized_keys")
|
128
|
+
resource.property(:target).insync?(target).should == true
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "when calling validate" do
|
133
|
+
it "should not crash on a non-existant user" do
|
134
|
+
resource = @class.create(
|
135
|
+
:name => "Test",
|
136
|
+
:user => "ihopesuchuserdoesnotexist")
|
137
|
+
proc { resource.validate }.should_not raise_error
|
138
|
+
end
|
128
139
|
end
|
129
140
|
end
|
data/spec/unit/type/tidy.rb
CHANGED
@@ -9,39 +9,27 @@ describe tidy do
|
|
9
9
|
Puppet.settings.stubs(:use)
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
File.expects(:lstat).with("/
|
16
|
-
|
17
|
-
|
18
|
-
@tidy.property(:ensure).must be_insync({})
|
12
|
+
it "should use :lstat when stating a file" do
|
13
|
+
resource = tidy.new :path => "/foo/bar", :age => "1d"
|
14
|
+
stat = mock 'stat'
|
15
|
+
File.expects(:lstat).with("/foo/bar").returns stat
|
16
|
+
resource.stat("/foo/bar").should == stat
|
19
17
|
end
|
20
18
|
|
21
|
-
[:
|
22
|
-
it "should have a %s property" % property do
|
23
|
-
tidy.attrclass(property).ancestors.should be_include(Puppet::Property)
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should have documentation for its %s property" % property do
|
27
|
-
tidy.attrclass(property).doc.should be_instance_of(String)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
[:path, :matches, :type, :recurse, :rmdirs].each do |param|
|
19
|
+
[:age, :size, :path, :matches, :type, :recurse, :rmdirs].each do |param|
|
32
20
|
it "should have a %s parameter" % param do
|
33
|
-
tidy.attrclass(param).ancestors.should be_include(Puppet::Parameter)
|
21
|
+
Puppet::Type.type(:tidy).attrclass(param).ancestors.should be_include(Puppet::Parameter)
|
34
22
|
end
|
35
23
|
|
36
24
|
it "should have documentation for its %s param" % param do
|
37
|
-
tidy.attrclass(param).doc.should be_instance_of(String)
|
25
|
+
Puppet::Type.type(:tidy).attrclass(param).doc.should be_instance_of(String)
|
38
26
|
end
|
39
27
|
end
|
40
28
|
|
41
29
|
describe "when validating parameter values" do
|
42
30
|
describe "for 'recurse'" do
|
43
31
|
before do
|
44
|
-
@tidy = tidy.
|
32
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/tmp", :age => "100d"
|
45
33
|
end
|
46
34
|
|
47
35
|
it "should allow 'true'" do
|
@@ -69,4 +57,324 @@ describe tidy do
|
|
69
57
|
end
|
70
58
|
end
|
71
59
|
end
|
60
|
+
|
61
|
+
describe "when matching files by age" do
|
62
|
+
convertors = {
|
63
|
+
:second => 1,
|
64
|
+
:minute => 60
|
65
|
+
}
|
66
|
+
|
67
|
+
convertors[:hour] = convertors[:minute] * 60
|
68
|
+
convertors[:day] = convertors[:hour] * 24
|
69
|
+
convertors[:week] = convertors[:day] * 7
|
70
|
+
|
71
|
+
convertors.each do |unit, multiple|
|
72
|
+
it "should consider a %s to be %s seconds" % [unit, multiple] do
|
73
|
+
tidy = Puppet::Type.type(:tidy).new :path => "/what/ever", :age => "5%s" % unit.to_s[0..0]
|
74
|
+
|
75
|
+
tidy[:age].should == 5 * multiple
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "when matching files by size" do
|
81
|
+
convertors = {
|
82
|
+
:b => 0,
|
83
|
+
:kb => 1,
|
84
|
+
:mb => 2,
|
85
|
+
:gb => 3
|
86
|
+
}
|
87
|
+
|
88
|
+
convertors.each do |unit, multiple|
|
89
|
+
it "should consider a %s to be 1024^%s bytes" % [unit, multiple] do
|
90
|
+
tidy = Puppet::Type.type(:tidy).new :path => "/what/ever", :size => "5%s" % unit
|
91
|
+
|
92
|
+
total = 5
|
93
|
+
multiple.times { total *= 1024 }
|
94
|
+
tidy[:size].should == total
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "when tidying" do
|
100
|
+
before do
|
101
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/what/ever"
|
102
|
+
@stat = stub 'stat', :ftype => "directory"
|
103
|
+
File.stubs(:lstat).with("/what/ever").returns @stat
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "and generating files" do
|
107
|
+
it "should set the backup on the file if backup is set on the tidy instance" do
|
108
|
+
@tidy[:backup] = "whatever"
|
109
|
+
Puppet::Type.type(:file).expects(:new).with { |args| args[:backup] == "whatever" }
|
110
|
+
|
111
|
+
@tidy.mkfile("/what/ever")
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should set the file's path to the tidy's path" do
|
115
|
+
Puppet::Type.type(:file).expects(:new).with { |args| args[:path] == "/what/ever" }
|
116
|
+
|
117
|
+
@tidy.mkfile("/what/ever")
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should configure the file for deletion" do
|
121
|
+
Puppet::Type.type(:file).expects(:new).with { |args| args[:ensure] == :absent }
|
122
|
+
|
123
|
+
@tidy.mkfile("/what/ever")
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should force deletion on the file" do
|
127
|
+
Puppet::Type.type(:file).expects(:new).with { |args| args[:force] == true }
|
128
|
+
|
129
|
+
@tidy.mkfile("/what/ever")
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should do nothing if the targeted file does not exist" do
|
133
|
+
File.expects(:lstat).with("/what/ever").raises Errno::ENOENT
|
134
|
+
|
135
|
+
@tidy.generate.should == []
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "and recursion is not used" do
|
140
|
+
it "should generate a file resource if the file should be tidied" do
|
141
|
+
@tidy.expects(:tidy?).with("/what/ever").returns true
|
142
|
+
file = Puppet::Type.type(:file).new(:path => "/eh")
|
143
|
+
@tidy.expects(:mkfile).with("/what/ever").returns file
|
144
|
+
|
145
|
+
@tidy.generate.should == [file]
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should do nothing if the file should not be tidied" do
|
149
|
+
@tidy.expects(:tidy?).with("/what/ever").returns false
|
150
|
+
@tidy.expects(:mkfile).never
|
151
|
+
|
152
|
+
@tidy.generate.should == []
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "and recursion is used" do
|
157
|
+
before do
|
158
|
+
@tidy[:recurse] = true
|
159
|
+
Puppet::FileServing::Fileset.any_instance.stubs(:stat).returns mock("stat")
|
160
|
+
@fileset = Puppet::FileServing::Fileset.new("/what/ever")
|
161
|
+
Puppet::FileServing::Fileset.stubs(:new).returns @fileset
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should use a Fileset for recursion" do
|
165
|
+
Puppet::FileServing::Fileset.expects(:new).with("/what/ever", :recurse => true).returns @fileset
|
166
|
+
@fileset.expects(:files).returns %w{. one two}
|
167
|
+
@tidy.stubs(:tidy?).returns false
|
168
|
+
|
169
|
+
@tidy.generate
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should generate a file resource for every file that should be tidied but not for files that should not be tidied" do
|
173
|
+
@fileset.expects(:files).returns %w{. one two}
|
174
|
+
|
175
|
+
@tidy.expects(:tidy?).with("/what/ever").returns true
|
176
|
+
@tidy.expects(:tidy?).with("/what/ever/one").returns true
|
177
|
+
@tidy.expects(:tidy?).with("/what/ever/two").returns false
|
178
|
+
|
179
|
+
file = Puppet::Type.type(:file).new(:path => "/eh")
|
180
|
+
@tidy.expects(:mkfile).with("/what/ever").returns file
|
181
|
+
@tidy.expects(:mkfile).with("/what/ever/one").returns file
|
182
|
+
|
183
|
+
@tidy.generate
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe "and determining whether a file matches provided glob patterns" do
|
188
|
+
before do
|
189
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/what/ever"
|
190
|
+
@tidy[:matches] = %w{*foo* *bar*}
|
191
|
+
|
192
|
+
@stat = mock 'stat'
|
193
|
+
|
194
|
+
@matcher = @tidy.parameter(:matches)
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should always convert the globs to an array" do
|
198
|
+
@matcher.value = "*foo*"
|
199
|
+
@matcher.value.should == %w{*foo*}
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should return true if any pattern matches the last part of the file" do
|
203
|
+
@matcher.value = %w{*foo* *bar*}
|
204
|
+
@matcher.must be_tidy("/file/yaybarness", @stat)
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should return false if no pattern matches the last part of the file" do
|
208
|
+
@matcher.value = %w{*foo* *bar*}
|
209
|
+
@matcher.should_not be_tidy("/file/yayness", @stat)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
describe "and determining whether a file is too old" do
|
214
|
+
before do
|
215
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/what/ever"
|
216
|
+
@stat = stub 'stat'
|
217
|
+
|
218
|
+
@tidy[:age] = "1s"
|
219
|
+
@tidy[:type] = "mtime"
|
220
|
+
@ager = @tidy.parameter(:age)
|
221
|
+
end
|
222
|
+
|
223
|
+
it "should use the age type specified" do
|
224
|
+
@tidy[:type] = :ctime
|
225
|
+
@stat.expects(:ctime).returns(Time.now)
|
226
|
+
|
227
|
+
@ager.tidy?("/what/ever", @stat)
|
228
|
+
end
|
229
|
+
|
230
|
+
it "should return false if the file is more recent than the specified age" do
|
231
|
+
@stat.expects(:mtime).returns(Time.now)
|
232
|
+
|
233
|
+
@ager.should_not be_tidy("/what/ever", @stat)
|
234
|
+
end
|
235
|
+
|
236
|
+
it "should return true if the file is older than the specified age" do
|
237
|
+
@stat.expects(:mtime).returns(Time.now - 10)
|
238
|
+
|
239
|
+
@ager.must be_tidy("/what/ever", @stat)
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
describe "and determining whether a file is too large" do
|
244
|
+
before do
|
245
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/what/ever"
|
246
|
+
@stat = stub 'stat', :ftype => "file"
|
247
|
+
|
248
|
+
@tidy[:size] = "1kb"
|
249
|
+
@sizer = @tidy.parameter(:size)
|
250
|
+
end
|
251
|
+
|
252
|
+
it "should return false if the file is smaller than the specified size" do
|
253
|
+
@stat.expects(:size).returns(4) # smaller than a kilobyte
|
254
|
+
|
255
|
+
@sizer.should_not be_tidy("/what/ever", @stat)
|
256
|
+
end
|
257
|
+
|
258
|
+
it "should return true if the file is larger than the specified size" do
|
259
|
+
@stat.expects(:size).returns(1500) # larger than a kilobyte
|
260
|
+
|
261
|
+
@sizer.must be_tidy("/what/ever", @stat)
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
describe "and determining whether a file should be tidied" do
|
266
|
+
before do
|
267
|
+
@tidy = Puppet::Type.type(:tidy).new :path => "/what/ever"
|
268
|
+
@stat = stub 'stat', :ftype => "file"
|
269
|
+
File.stubs(:lstat).with("/what/ever").returns @stat
|
270
|
+
end
|
271
|
+
|
272
|
+
it "should not try to recurse if the file does not exist" do
|
273
|
+
@tidy[:recurse] = true
|
274
|
+
|
275
|
+
File.stubs(:lstat).with("/what/ever").returns nil
|
276
|
+
|
277
|
+
@tidy.generate.should == []
|
278
|
+
end
|
279
|
+
|
280
|
+
it "should not be tidied if the file does not exist" do
|
281
|
+
File.expects(:lstat).with("/what/ever").raises Errno::ENOENT
|
282
|
+
|
283
|
+
@tidy.should_not be_tidy("/what/ever")
|
284
|
+
end
|
285
|
+
|
286
|
+
it "should not be tidied if the user has no access to the file" do
|
287
|
+
File.expects(:lstat).with("/what/ever").raises Errno::EACCES
|
288
|
+
|
289
|
+
@tidy.should_not be_tidy("/what/ever")
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should not be tidied if it is a directory and rmdirs is set to false" do
|
293
|
+
stat = mock 'stat', :ftype => "directory"
|
294
|
+
File.expects(:lstat).with("/what/ever").returns stat
|
295
|
+
|
296
|
+
@tidy.should_not be_tidy("/what/ever")
|
297
|
+
end
|
298
|
+
|
299
|
+
it "should return false if it does not match any provided globs" do
|
300
|
+
@tidy[:matches] = "globs"
|
301
|
+
|
302
|
+
matches = @tidy.parameter(:matches)
|
303
|
+
matches.expects(:tidy?).with("/what/ever", @stat).returns false
|
304
|
+
@tidy.should_not be_tidy("/what/ever")
|
305
|
+
end
|
306
|
+
|
307
|
+
it "should return false if it does not match aging requirements" do
|
308
|
+
@tidy[:age] = "1d"
|
309
|
+
|
310
|
+
ager = @tidy.parameter(:age)
|
311
|
+
ager.expects(:tidy?).with("/what/ever", @stat).returns false
|
312
|
+
@tidy.should_not be_tidy("/what/ever")
|
313
|
+
end
|
314
|
+
|
315
|
+
it "should return false if it does not match size requirements" do
|
316
|
+
@tidy[:size] = "1b"
|
317
|
+
|
318
|
+
sizer = @tidy.parameter(:size)
|
319
|
+
sizer.expects(:tidy?).with("/what/ever", @stat).returns false
|
320
|
+
@tidy.should_not be_tidy("/what/ever")
|
321
|
+
end
|
322
|
+
|
323
|
+
it "should tidy a file if age and size are set but only size matches" do
|
324
|
+
@tidy[:size] = "1b"
|
325
|
+
@tidy[:age] = "1d"
|
326
|
+
|
327
|
+
@tidy.parameter(:size).stubs(:tidy?).returns true
|
328
|
+
@tidy.parameter(:age).stubs(:tidy?).returns false
|
329
|
+
@tidy.should be_tidy("/what/ever")
|
330
|
+
end
|
331
|
+
|
332
|
+
it "should tidy a file if age and size are set but only age matches" do
|
333
|
+
@tidy[:size] = "1b"
|
334
|
+
@tidy[:age] = "1d"
|
335
|
+
|
336
|
+
@tidy.parameter(:size).stubs(:tidy?).returns false
|
337
|
+
@tidy.parameter(:age).stubs(:tidy?).returns true
|
338
|
+
@tidy.should be_tidy("/what/ever")
|
339
|
+
end
|
340
|
+
|
341
|
+
it "should tidy all files if neither age nor size is set" do
|
342
|
+
@tidy.must be_tidy("/what/ever")
|
343
|
+
end
|
344
|
+
|
345
|
+
it "should sort the results inversely by path length, so files are added to the catalog before their directories" do
|
346
|
+
@tidy[:recurse] = true
|
347
|
+
@tidy[:rmdirs] = true
|
348
|
+
fileset = Puppet::FileServing::Fileset.new("/what/ever")
|
349
|
+
Puppet::FileServing::Fileset.expects(:new).returns fileset
|
350
|
+
fileset.expects(:files).returns %w{. one one/two}
|
351
|
+
|
352
|
+
@tidy.stubs(:tidy?).returns true
|
353
|
+
|
354
|
+
@tidy.generate.collect { |r| r[:path] }.should == %w{/what/ever/one/two /what/ever/one /what/ever}
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
it "should configure directories to require their contained files if rmdirs is enabled, so the files will be deleted first" do
|
359
|
+
@tidy[:recurse] = true
|
360
|
+
@tidy[:rmdirs] = true
|
361
|
+
fileset = mock 'fileset'
|
362
|
+
Puppet::FileServing::Fileset.expects(:new).with("/what/ever", :recurse => true).returns fileset
|
363
|
+
fileset.expects(:files).returns %w{. one two one/subone two/subtwo one/subone/ssone}
|
364
|
+
@tidy.stubs(:tidy?).returns true
|
365
|
+
|
366
|
+
result = @tidy.generate.inject({}) { |hash, res| hash[res[:path]] = res; hash }
|
367
|
+
{
|
368
|
+
"/what/ever" => %w{/what/ever/one /what/ever/two},
|
369
|
+
"/what/ever/one" => ["/what/ever/one/subone"],
|
370
|
+
"/what/ever/two" => ["/what/ever/two/subtwo"],
|
371
|
+
"/what/ever/one/subone" => ["/what/ever/one/subone/ssone"]
|
372
|
+
}.each do |parent, children|
|
373
|
+
children.each do |child|
|
374
|
+
ref = Puppet::Resource::Reference.new(:file, child)
|
375
|
+
result[parent][:require].find { |req| req.to_s == ref.to_s }.should_not be_nil
|
376
|
+
end
|
377
|
+
end
|
378
|
+
end
|
379
|
+
end
|
72
380
|
end
|