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
@@ -35,39 +35,36 @@ describe Puppet::Parser::Compiler do
|
|
35
35
|
@node = Puppet::Node.new "testnode"
|
36
36
|
@parser = Puppet::Parser::Parser.new :environment => "development"
|
37
37
|
|
38
|
-
@scope_resource = stub 'scope_resource', :builtin? => true, :finish => nil, :ref => 'Class[main]'
|
38
|
+
@scope_resource = stub 'scope_resource', :builtin? => true, :finish => nil, :ref => 'Class[main]', :type => "class"
|
39
39
|
@scope = stub 'scope', :resource => @scope_resource, :source => mock("source")
|
40
40
|
@compiler = Puppet::Parser::Compiler.new(@node, @parser)
|
41
41
|
end
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
lambda { @compiler.class_set "myname", "myscope" }.should_not raise_error
|
47
|
-
end
|
43
|
+
it "should be able to store references to class scopes" do
|
44
|
+
lambda { @compiler.class_set "myname", "myscope" }.should_not raise_error
|
45
|
+
end
|
48
46
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
47
|
+
it "should be able to retrieve class scopes by name" do
|
48
|
+
@compiler.class_set "myname", "myscope"
|
49
|
+
@compiler.class_scope("myname").should == "myscope"
|
50
|
+
end
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
52
|
+
it "should be able to retrieve class scopes by object" do
|
53
|
+
klass = mock 'ast_class'
|
54
|
+
klass.expects(:classname).returns("myname")
|
55
|
+
@compiler.class_set "myname", "myscope"
|
56
|
+
@compiler.class_scope(klass).should == "myscope"
|
57
|
+
end
|
60
58
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
it "should be able to return a class list containing all set classes" do
|
60
|
+
@compiler.class_set "", "empty"
|
61
|
+
@compiler.class_set "one", "yep"
|
62
|
+
@compiler.class_set "two", "nope"
|
65
63
|
|
66
|
-
|
67
|
-
end
|
64
|
+
@compiler.classlist.sort.should == %w{one two}.sort
|
68
65
|
end
|
69
66
|
|
70
|
-
describe
|
67
|
+
describe "when initializing" do
|
71
68
|
|
72
69
|
it "should set its node attribute" do
|
73
70
|
@compiler.node.should equal(@node)
|
@@ -82,12 +79,16 @@ describe Puppet::Parser::Compiler do
|
|
82
79
|
end
|
83
80
|
|
84
81
|
it "should detect when ast nodes are present" do
|
85
|
-
@parser.nodes
|
82
|
+
@parser.expects(:nodes?).returns true
|
86
83
|
@compiler.ast_nodes?.should be_true
|
87
84
|
end
|
85
|
+
|
86
|
+
it "should copy the parser version to the catalog" do
|
87
|
+
@compiler.catalog.version.should == @parser.version
|
88
|
+
end
|
88
89
|
end
|
89
90
|
|
90
|
-
describe
|
91
|
+
describe "when managing scopes" do
|
91
92
|
|
92
93
|
it "should create a top scope" do
|
93
94
|
@compiler.topscope.should be_instance_of(Puppet::Parser::Scope)
|
@@ -109,7 +110,7 @@ describe Puppet::Parser::Compiler do
|
|
109
110
|
end
|
110
111
|
end
|
111
112
|
|
112
|
-
describe
|
113
|
+
describe "when compiling" do
|
113
114
|
|
114
115
|
def compile_methods
|
115
116
|
[:set_node_parameters, :evaluate_main, :evaluate_ast_node, :evaluate_node_classes, :evaluate_generators, :fail_on_unevaluated,
|
@@ -142,22 +143,12 @@ describe Puppet::Parser::Compiler do
|
|
142
143
|
@compiler.class.publicize_methods(:evaluate_node_classes) { @compiler.evaluate_node_classes }
|
143
144
|
end
|
144
145
|
|
145
|
-
it "should enable ast_nodes if the parser has any nodes" do
|
146
|
-
@parser.expects(:nodes).returns(:one => :yay)
|
147
|
-
@compiler.ast_nodes?.should be_true
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should disable ast_nodes if the parser has no nodes" do
|
151
|
-
@parser.expects(:nodes).returns({})
|
152
|
-
@compiler.ast_nodes?.should be_false
|
153
|
-
end
|
154
|
-
|
155
146
|
it "should evaluate the main class if it exists" do
|
156
147
|
compile_stub(:evaluate_main)
|
157
148
|
main_class = mock 'main_class'
|
158
149
|
main_class.expects(:evaluate_code).with { |r| r.is_a?(Puppet::Parser::Resource) }
|
159
150
|
@compiler.topscope.expects(:source=).with(main_class)
|
160
|
-
@parser.stubs(:
|
151
|
+
@parser.stubs(:find_hostclass).with("", "").returns(main_class)
|
161
152
|
|
162
153
|
@compiler.compile
|
163
154
|
end
|
@@ -183,11 +174,11 @@ describe Puppet::Parser::Compiler do
|
|
183
174
|
end
|
184
175
|
|
185
176
|
it "should ignore builtin resources" do
|
186
|
-
resource = stub 'builtin', :ref => "File[testing]", :builtin? => true
|
177
|
+
resource = stub 'builtin', :ref => "File[testing]", :builtin? => true, :type => "file"
|
187
178
|
|
188
179
|
@compiler.add_resource(@scope, resource)
|
189
180
|
resource.expects(:evaluate).never
|
190
|
-
|
181
|
+
|
191
182
|
@compiler.compile
|
192
183
|
end
|
193
184
|
|
@@ -198,15 +189,15 @@ describe Puppet::Parser::Compiler do
|
|
198
189
|
|
199
190
|
# We have to now mark the resource as evaluated
|
200
191
|
resource.expects(:evaluate).with { |*whatever| resource.evaluated = true }
|
201
|
-
|
192
|
+
|
202
193
|
@compiler.compile
|
203
194
|
end
|
204
195
|
|
205
196
|
it "should not evaluate already-evaluated resources" do
|
206
|
-
resource = stub 'already_evaluated', :ref => "File[testing]", :builtin? => false, :evaluated? => true, :virtual? => false
|
197
|
+
resource = stub 'already_evaluated', :ref => "File[testing]", :builtin? => false, :evaluated? => true, :virtual? => false, :type => "file"
|
207
198
|
@compiler.add_resource(@scope, resource)
|
208
199
|
resource.expects(:evaluate).never
|
209
|
-
|
200
|
+
|
210
201
|
@compiler.compile
|
211
202
|
end
|
212
203
|
|
@@ -220,7 +211,7 @@ describe Puppet::Parser::Compiler do
|
|
220
211
|
resource.expects(:evaluate).with { |*whatever| resource.evaluated = true; @compiler.add_resource(@scope, resource2) }
|
221
212
|
resource2.expects(:evaluate).with { |*whatever| resource2.evaluated = true }
|
222
213
|
|
223
|
-
|
214
|
+
|
224
215
|
@compiler.compile
|
225
216
|
end
|
226
217
|
|
@@ -232,60 +223,105 @@ describe Puppet::Parser::Compiler do
|
|
232
223
|
@compiler.add_resource(@scope, resource)
|
233
224
|
|
234
225
|
# And one that does not
|
235
|
-
dnf = stub "dnf", :ref => "File[dnf]"
|
226
|
+
dnf = stub "dnf", :ref => "File[dnf]", :type => "file"
|
236
227
|
|
237
228
|
@compiler.add_resource(@scope, dnf)
|
238
229
|
|
239
230
|
@compiler.send(:finish)
|
240
231
|
end
|
241
232
|
|
233
|
+
it "should call finish() in add_resource order" do
|
234
|
+
resources = sequence('resources')
|
235
|
+
|
236
|
+
resource1 = Puppet::Parser::Resource.new :scope => @scope, :type => "file", :title => "finish1"
|
237
|
+
resource1.expects(:finish).in_sequence(resources)
|
238
|
+
|
239
|
+
@compiler.add_resource(@scope, resource1)
|
240
|
+
|
241
|
+
resource2 = Puppet::Parser::Resource.new :scope => @scope, :type => "file", :title => "finish2"
|
242
|
+
resource2.expects(:finish).in_sequence(resources)
|
243
|
+
|
244
|
+
@compiler.add_resource(@scope, resource2)
|
245
|
+
|
246
|
+
@compiler.send(:finish)
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should return added resources in add order" do
|
250
|
+
resource1 = stub "1", :ref => "File[yay]", :type => "file"
|
251
|
+
@compiler.add_resource(@scope, resource1)
|
252
|
+
resource2 = stub "2", :ref => "File[youpi]", :type => "file"
|
253
|
+
@compiler.add_resource(@scope, resource2)
|
254
|
+
|
255
|
+
@compiler.resources.should == [resource1, resource2]
|
256
|
+
end
|
257
|
+
|
242
258
|
it "should add resources that do not conflict with existing resources" do
|
243
|
-
resource =
|
259
|
+
resource = CompilerTestResource.new(:file, "yay")
|
244
260
|
@compiler.add_resource(@scope, resource)
|
245
261
|
|
246
262
|
@compiler.catalog.should be_vertex(resource)
|
247
263
|
end
|
248
264
|
|
249
265
|
it "should fail to add resources that conflict with existing resources" do
|
250
|
-
|
251
|
-
Puppet::Type.
|
266
|
+
file1 = Puppet::Type.type(:file).new :path => "/foo"
|
267
|
+
file2 = Puppet::Type.type(:file).new :path => "/foo"
|
252
268
|
|
253
|
-
|
254
|
-
|
269
|
+
@compiler.add_resource(@scope, file1)
|
270
|
+
lambda { @compiler.add_resource(@scope, file2) }.should raise_error(Puppet::Resource::Catalog::DuplicateResourceError)
|
271
|
+
end
|
255
272
|
|
256
|
-
|
257
|
-
|
273
|
+
it "should add an edge from the scope resource to the added resource" do
|
274
|
+
resource = stub "noconflict", :ref => "File[yay]", :type => "file"
|
275
|
+
@compiler.add_resource(@scope, resource)
|
276
|
+
|
277
|
+
@compiler.catalog.should be_edge(@scope.resource, resource)
|
278
|
+
end
|
279
|
+
|
280
|
+
it "should add edges from the class resources to the main class" do
|
281
|
+
main = CompilerTestResource.new(:class, :main)
|
282
|
+
@compiler.add_resource(@scope, main)
|
283
|
+
resource = CompilerTestResource.new(:class, "foo")
|
284
|
+
@compiler.add_resource(@scope, resource)
|
285
|
+
|
286
|
+
@compiler.catalog.should be_edge(main, resource)
|
287
|
+
end
|
288
|
+
|
289
|
+
it "should just add edges to the scope resource for the class resources when no main class can be found" do
|
290
|
+
resource = CompilerTestResource.new(:class, "foo")
|
291
|
+
@compiler.add_resource(@scope, resource)
|
292
|
+
|
293
|
+
@compiler.catalog.should be_edge(@scope.resource, resource)
|
258
294
|
end
|
259
295
|
|
260
296
|
it "should have a method for looking up resources" do
|
261
|
-
resource = stub 'resource', :ref => "Yay[foo]"
|
297
|
+
resource = stub 'resource', :ref => "Yay[foo]", :type => "file"
|
262
298
|
@compiler.add_resource(@scope, resource)
|
263
299
|
@compiler.findresource("Yay[foo]").should equal(resource)
|
264
300
|
end
|
265
301
|
|
266
302
|
it "should be able to look resources up by type and title" do
|
267
|
-
resource = stub 'resource', :ref => "Yay[foo]"
|
303
|
+
resource = stub 'resource', :ref => "Yay[foo]", :type => "file"
|
268
304
|
@compiler.add_resource(@scope, resource)
|
269
305
|
@compiler.findresource("Yay", "foo").should equal(resource)
|
270
306
|
end
|
271
307
|
|
272
308
|
it "should not evaluate virtual defined resources" do
|
273
|
-
resource = stub 'notevaluated', :ref => "File[testing]", :builtin? => false, :evaluated? => false, :virtual? => true
|
309
|
+
resource = stub 'notevaluated', :ref => "File[testing]", :builtin? => false, :evaluated? => false, :virtual? => true, :type => "file"
|
274
310
|
@compiler.add_resource(@scope, resource)
|
275
311
|
|
276
312
|
resource.expects(:evaluate).never
|
277
|
-
|
313
|
+
|
278
314
|
@compiler.compile
|
279
315
|
end
|
280
316
|
end
|
281
317
|
|
282
|
-
describe
|
318
|
+
describe "when evaluating collections" do
|
283
319
|
|
284
320
|
it "should evaluate each collection" do
|
285
321
|
2.times { |i|
|
286
322
|
coll = mock 'coll%s' % i
|
287
323
|
@compiler.add_collection(coll)
|
288
|
-
|
324
|
+
|
289
325
|
# This is the hard part -- we have to emulate the fact that
|
290
326
|
# collections delete themselves if they are done evaluating.
|
291
327
|
coll.expects(:evaluate).with do
|
@@ -324,7 +360,7 @@ describe Puppet::Parser::Compiler do
|
|
324
360
|
end
|
325
361
|
end
|
326
362
|
|
327
|
-
describe
|
363
|
+
describe "when told to evaluate missing classes" do
|
328
364
|
|
329
365
|
it "should fail if there's no source listed for the scope" do
|
330
366
|
scope = stub 'scope', :source => nil
|
@@ -333,18 +369,18 @@ describe Puppet::Parser::Compiler do
|
|
333
369
|
|
334
370
|
it "should tag the catalog with the name of each not-found class" do
|
335
371
|
@compiler.catalog.expects(:tag).with("notfound")
|
336
|
-
@scope.expects(:
|
372
|
+
@scope.expects(:find_hostclass).with("notfound").returns(nil)
|
337
373
|
@compiler.evaluate_classes(%w{notfound}, @scope)
|
338
374
|
end
|
339
375
|
end
|
340
376
|
|
341
|
-
describe
|
377
|
+
describe "when evaluating found classes" do
|
342
378
|
|
343
379
|
before do
|
344
380
|
@class = stub 'class', :classname => "my::class"
|
345
|
-
@scope.stubs(:
|
381
|
+
@scope.stubs(:find_hostclass).with("myclass").returns(@class)
|
346
382
|
|
347
|
-
@resource = stub 'resource', :ref => "Class[myclass]"
|
383
|
+
@resource = stub 'resource', :ref => "Class[myclass]", :type => "file"
|
348
384
|
end
|
349
385
|
|
350
386
|
it "should evaluate each class" do
|
@@ -387,11 +423,21 @@ describe Puppet::Parser::Compiler do
|
|
387
423
|
@compiler.evaluate_classes(%w{myclass}, @scope, false)
|
388
424
|
end
|
389
425
|
|
426
|
+
it "should skip classes previously evaluated with different capitalization" do
|
427
|
+
@compiler.catalog.stubs(:tag)
|
428
|
+
@scope.stubs(:find_hostclass).with("MyClass").returns(@class)
|
429
|
+
@compiler.expects(:class_scope).with(@class).returns("something")
|
430
|
+
@compiler.expects(:add_resource).never
|
431
|
+
@resource.expects(:evaluate).never
|
432
|
+
Puppet::Parser::Resource.expects(:new).never
|
433
|
+
@compiler.evaluate_classes(%w{MyClass}, @scope, false)
|
434
|
+
end
|
435
|
+
|
390
436
|
it "should return the list of found classes" do
|
391
437
|
@compiler.catalog.stubs(:tag)
|
392
438
|
|
393
439
|
@compiler.stubs(:add_resource)
|
394
|
-
@scope.stubs(:
|
440
|
+
@scope.stubs(:find_hostclass).with("notfound").returns(nil)
|
395
441
|
|
396
442
|
Puppet::Parser::Resource.stubs(:new).returns(@resource)
|
397
443
|
@class.stubs :evaluate
|
@@ -399,7 +445,7 @@ describe Puppet::Parser::Compiler do
|
|
399
445
|
end
|
400
446
|
end
|
401
447
|
|
402
|
-
describe
|
448
|
+
describe "when evaluating AST nodes with no AST nodes present" do
|
403
449
|
|
404
450
|
it "should do nothing" do
|
405
451
|
@compiler.expects(:ast_nodes?).returns(false)
|
@@ -410,21 +456,19 @@ describe Puppet::Parser::Compiler do
|
|
410
456
|
end
|
411
457
|
end
|
412
458
|
|
413
|
-
describe
|
459
|
+
describe "when evaluating AST nodes with AST nodes present" do
|
414
460
|
|
415
461
|
before do
|
416
|
-
@nodes
|
417
|
-
@compiler.stubs(:ast_nodes?).returns(true)
|
418
|
-
@compiler.parser.stubs(:nodes).returns(@nodes)
|
462
|
+
@compiler.parser.stubs(:nodes?).returns true
|
419
463
|
|
420
464
|
# Set some names for our test
|
421
465
|
@node.stubs(:names).returns(%w{a b c})
|
422
|
-
@
|
423
|
-
@
|
424
|
-
@
|
466
|
+
@compiler.parser.stubs(:node).with("a").returns(nil)
|
467
|
+
@compiler.parser.stubs(:node).with("b").returns(nil)
|
468
|
+
@compiler.parser.stubs(:node).with("c").returns(nil)
|
425
469
|
|
426
470
|
# It should check this last, of course.
|
427
|
-
@
|
471
|
+
@compiler.parser.stubs(:node).with("default").returns(nil)
|
428
472
|
end
|
429
473
|
|
430
474
|
it "should fail if the named node cannot be found" do
|
@@ -433,9 +477,9 @@ describe Puppet::Parser::Compiler do
|
|
433
477
|
|
434
478
|
it "should evaluate the first node class matching the node name" do
|
435
479
|
node_class = stub 'node', :classname => "c", :evaluate_code => nil
|
436
|
-
@
|
480
|
+
@compiler.parser.stubs(:node).with("c").returns(node_class)
|
437
481
|
|
438
|
-
node_resource = stub 'node resource', :ref => "Node[c]", :evaluate => nil
|
482
|
+
node_resource = stub 'node resource', :ref => "Node[c]", :evaluate => nil, :type => "node"
|
439
483
|
node_class.expects(:evaluate).returns(node_resource)
|
440
484
|
|
441
485
|
@compiler.compile
|
@@ -443,9 +487,9 @@ describe Puppet::Parser::Compiler do
|
|
443
487
|
|
444
488
|
it "should match the default node if no matching node can be found" do
|
445
489
|
node_class = stub 'node', :classname => "default", :evaluate_code => nil
|
446
|
-
@
|
490
|
+
@compiler.parser.stubs(:node).with("default").returns(node_class)
|
447
491
|
|
448
|
-
node_resource = stub 'node resource', :ref => "Node[default]", :evaluate => nil
|
492
|
+
node_resource = stub 'node resource', :ref => "Node[default]", :evaluate => nil, :type => "node"
|
449
493
|
node_class.expects(:evaluate).returns(node_resource)
|
450
494
|
|
451
495
|
@compiler.compile
|
@@ -453,9 +497,9 @@ describe Puppet::Parser::Compiler do
|
|
453
497
|
|
454
498
|
it "should evaluate the node resource immediately rather than using lazy evaluation" do
|
455
499
|
node_class = stub 'node', :classname => "c"
|
456
|
-
@
|
500
|
+
@compiler.parser.stubs(:node).with("c").returns(node_class)
|
457
501
|
|
458
|
-
node_resource = stub 'node resource', :ref => "Node[c]"
|
502
|
+
node_resource = stub 'node resource', :ref => "Node[c]", :type => "node"
|
459
503
|
node_class.expects(:evaluate).returns(node_resource)
|
460
504
|
|
461
505
|
node_resource.expects(:evaluate)
|
@@ -464,10 +508,10 @@ describe Puppet::Parser::Compiler do
|
|
464
508
|
end
|
465
509
|
|
466
510
|
it "should set the node's scope as the top scope" do
|
467
|
-
node_resource = stub 'node resource', :ref => "Node[c]", :evaluate => nil
|
511
|
+
node_resource = stub 'node resource', :ref => "Node[c]", :evaluate => nil, :type => "node"
|
468
512
|
node_class = stub 'node', :classname => "c", :evaluate => node_resource
|
469
513
|
|
470
|
-
@
|
514
|
+
@compiler.parser.stubs(:node).with("c").returns(node_class)
|
471
515
|
|
472
516
|
# The #evaluate method normally does this.
|
473
517
|
scope = stub 'scope', :source => "mysource"
|
@@ -480,31 +524,11 @@ describe Puppet::Parser::Compiler do
|
|
480
524
|
end
|
481
525
|
end
|
482
526
|
|
483
|
-
describe
|
484
|
-
|
485
|
-
it "should store the resources" do
|
486
|
-
Puppet.features.expects(:rails?).returns(true)
|
487
|
-
Puppet::Rails.expects(:connect)
|
488
|
-
|
489
|
-
@compiler.catalog.expects(:vertices).returns(:resources)
|
490
|
-
|
491
|
-
@compiler.expects(:store_to_active_record).with(@node, :resources)
|
492
|
-
@compiler.send(:store)
|
493
|
-
end
|
494
|
-
|
495
|
-
it "should store to active_record" do
|
496
|
-
@node.expects(:name).returns("myname")
|
497
|
-
Puppet::Rails::Host.stubs(:transaction).yields
|
498
|
-
Puppet::Rails::Host.expects(:store).with(@node, :resources)
|
499
|
-
@compiler.send(:store_to_active_record, @node, :resources)
|
500
|
-
end
|
501
|
-
end
|
502
|
-
|
503
|
-
describe Puppet::Parser::Compiler, "when managing resource overrides" do
|
527
|
+
describe "when managing resource overrides" do
|
504
528
|
|
505
529
|
before do
|
506
|
-
@override = stub 'override', :ref => "My[ref]"
|
507
|
-
@resource = stub 'resource', :ref => "My[ref]", :builtin? => true
|
530
|
+
@override = stub 'override', :ref => "My[ref]", :type => "my"
|
531
|
+
@resource = stub 'resource', :ref => "My[ref]", :builtin? => true, :type => "my"
|
508
532
|
end
|
509
533
|
|
510
534
|
it "should be able to store overrides" do
|
@@ -541,7 +565,7 @@ describe Puppet::Parser::Compiler do
|
|
541
565
|
end
|
542
566
|
|
543
567
|
# #620 - Nodes and classes should conflict, else classes don't get evaluated
|
544
|
-
describe
|
568
|
+
describe "when evaluating nodes and classes with the same name (#620)" do
|
545
569
|
|
546
570
|
before do
|
547
571
|
@node = stub :nodescope? => true
|
@@ -0,0 +1,190 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/parser/files'
|
6
|
+
|
7
|
+
describe Puppet::Parser::Files do
|
8
|
+
it "should have a method for finding a template" do
|
9
|
+
Puppet::Parser::Files.should respond_to(:find_template)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should have a method for finding manifests" do
|
13
|
+
Puppet::Parser::Files.should respond_to(:find_manifests)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "when searching for templates" do
|
17
|
+
it "should return fully-qualified templates directly" do
|
18
|
+
Puppet::Parser::Files.expects(:modulepath).never
|
19
|
+
Puppet::Parser::Files.find_template("/my/template").should == "/my/template"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return the template from the first found module" do
|
23
|
+
mod = mock 'module'
|
24
|
+
Puppet::Node::Environment.new.expects(:module).with("mymod").returns mod
|
25
|
+
|
26
|
+
mod.expects(:template).returns("/one/mymod/templates/mytemplate")
|
27
|
+
Puppet::Parser::Files.find_template("mymod/mytemplate").should == "/one/mymod/templates/mytemplate"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return the file in the templatedir if it exists" do
|
31
|
+
Puppet.settings.expects(:value).with(:templatedir, nil).returns("/my/templates")
|
32
|
+
Puppet[:modulepath] = "/one:/two"
|
33
|
+
File.stubs(:directory?).returns(true)
|
34
|
+
FileTest.stubs(:exist?).returns(true)
|
35
|
+
Puppet::Parser::Files.find_template("mymod/mytemplate").should == "/my/templates/mymod/mytemplate"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should not raise an error if no valid templatedir exists and the template exists in a module" do
|
39
|
+
mod = mock 'module'
|
40
|
+
Puppet::Node::Environment.new.expects(:module).with("mymod").returns mod
|
41
|
+
|
42
|
+
mod.expects(:template).returns("/one/mymod/templates/mytemplate")
|
43
|
+
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(nil)
|
44
|
+
|
45
|
+
Puppet::Parser::Files.find_template("mymod/mytemplate").should == "/one/mymod/templates/mytemplate"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return unqualified templates if they exist in the template dir" do
|
49
|
+
FileTest.stubs(:exist?).returns true
|
50
|
+
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
51
|
+
Puppet::Parser::Files.find_template("mytemplate").should == "/my/templates/mytemplate"
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should only return templates if they actually exist" do
|
55
|
+
FileTest.expects(:exist?).with("/my/templates/mytemplate").returns true
|
56
|
+
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
57
|
+
Puppet::Parser::Files.find_template("mytemplate").should == "/my/templates/mytemplate"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should return nil when asked for a template that doesn't exist" do
|
61
|
+
FileTest.expects(:exist?).with("/my/templates/mytemplate").returns false
|
62
|
+
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
63
|
+
Puppet::Parser::Files.find_template("mytemplate").should be_nil
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should search in the template directories before modules" do
|
67
|
+
FileTest.stubs(:exist?).returns true
|
68
|
+
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
69
|
+
Puppet::Module.expects(:find).never
|
70
|
+
Puppet::Parser::Files.find_template("mytemplate")
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should accept relative templatedirs" do
|
74
|
+
FileTest.stubs(:exist?).returns true
|
75
|
+
Puppet[:templatedir] = "my/templates"
|
76
|
+
File.expects(:directory?).with(File.join(Dir.getwd,"my/templates")).returns(true)
|
77
|
+
Puppet::Parser::Files.find_template("mytemplate").should == File.join(Dir.getwd,"my/templates/mytemplate")
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should use the environment templatedir if no module is found and an environment is specified" do
|
81
|
+
FileTest.stubs(:exist?).returns true
|
82
|
+
Puppet::Parser::Files.stubs(:templatepath).with("myenv").returns(["/myenv/templates"])
|
83
|
+
Puppet::Parser::Files.find_template("mymod/mytemplate", "myenv").should == "/myenv/templates/mymod/mytemplate"
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should use first dir from environment templatedir if no module is found and an environment is specified" do
|
87
|
+
FileTest.stubs(:exist?).returns true
|
88
|
+
Puppet::Parser::Files.stubs(:templatepath).with("myenv").returns(["/myenv/templates", "/two/templates"])
|
89
|
+
Puppet::Parser::Files.find_template("mymod/mytemplate", "myenv").should == "/myenv/templates/mymod/mytemplate"
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should use a valid dir when templatedir is a path for unqualified templates and the first dir contains template" do
|
93
|
+
Puppet::Parser::Files.stubs(:templatepath).returns(["/one/templates", "/two/templates"])
|
94
|
+
FileTest.expects(:exist?).with("/one/templates/mytemplate").returns(true)
|
95
|
+
Puppet::Parser::Files.find_template("mytemplate").should == "/one/templates/mytemplate"
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should use a valid dir when templatedir is a path for unqualified templates and only second dir contains template" do
|
99
|
+
Puppet::Parser::Files.stubs(:templatepath).returns(["/one/templates", "/two/templates"])
|
100
|
+
FileTest.expects(:exist?).with("/one/templates/mytemplate").returns(false)
|
101
|
+
FileTest.expects(:exist?).with("/two/templates/mytemplate").returns(true)
|
102
|
+
Puppet::Parser::Files.find_template("mytemplate").should == "/two/templates/mytemplate"
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should use the node environment if specified" do
|
106
|
+
mod = mock 'module'
|
107
|
+
Puppet::Node::Environment.new("myenv").expects(:module).with("mymod").returns mod
|
108
|
+
|
109
|
+
mod.expects(:template).returns("/my/modules/mymod/templates/envtemplate")
|
110
|
+
|
111
|
+
Puppet::Parser::Files.find_template("mymod/envtemplate", "myenv").should == "/my/modules/mymod/templates/envtemplate"
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should return nil if no template can be found" do
|
115
|
+
Puppet::Parser::Files.find_template("foomod/envtemplate", "myenv").should be_nil
|
116
|
+
end
|
117
|
+
|
118
|
+
after { Puppet.settings.clear }
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "when searching for manifests" do
|
122
|
+
it "should ignore invalid modules" do
|
123
|
+
mod = mock 'module'
|
124
|
+
Puppet::Node::Environment.new.expects(:module).with("mymod").raises Puppet::Module::InvalidName
|
125
|
+
Puppet.expects(:value).with(:modulepath).never
|
126
|
+
Dir.stubs(:glob).returns %w{foo}
|
127
|
+
|
128
|
+
Puppet::Parser::Files.find_manifests("mymod/init.pp").should == %w{foo}
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "when searching for manifests when no module is found" do
|
133
|
+
before do
|
134
|
+
File.stubs(:find).returns(nil)
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should not look for modules when paths are fully qualified" do
|
138
|
+
Puppet.expects(:value).with(:modulepath).never
|
139
|
+
file = "/fully/qualified/file.pp"
|
140
|
+
Dir.stubs(:glob).with(file).returns([file])
|
141
|
+
Puppet::Parser::Files.find_manifests(file)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should directly return fully qualified files" do
|
145
|
+
file = "/fully/qualified/file.pp"
|
146
|
+
Dir.stubs(:glob).with(file).returns([file])
|
147
|
+
Puppet::Parser::Files.find_manifests(file).should == [file]
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should match against provided fully qualified patterns" do
|
151
|
+
pattern = "/fully/qualified/pattern/*"
|
152
|
+
Dir.expects(:glob).with(pattern).returns(%w{my file list})
|
153
|
+
Puppet::Parser::Files.find_manifests(pattern).should == %w{my file list}
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should look for files relative to the current directory" do
|
157
|
+
cwd = Dir.getwd
|
158
|
+
Dir.expects(:glob).with("#{cwd}/foobar/init.pp").returns(["#{cwd}/foobar/init.pp"])
|
159
|
+
Puppet::Parser::Files.find_manifests("foobar/init.pp").should == ["#{cwd}/foobar/init.pp"]
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should only return files, not directories" do
|
163
|
+
pattern = "/fully/qualified/pattern/*"
|
164
|
+
file = "/my/file"
|
165
|
+
dir = "/my/directory"
|
166
|
+
Dir.expects(:glob).with(pattern).returns([file, dir])
|
167
|
+
FileTest.expects(:directory?).with(file).returns(false)
|
168
|
+
FileTest.expects(:directory?).with(dir).returns(true)
|
169
|
+
Puppet::Parser::Files.find_manifests(pattern).should == [file]
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
describe "when searching for manifests in a found module" do
|
174
|
+
it "should return the manifests from the first found module" do
|
175
|
+
mod = mock 'module'
|
176
|
+
Puppet::Node::Environment.new.expects(:module).with("mymod").returns mod
|
177
|
+
mod.expects(:match_manifests).with("init.pp").returns(%w{/one/mymod/manifests/init.pp})
|
178
|
+
Puppet::Parser::Files.find_manifests("mymod/init.pp").should == ["/one/mymod/manifests/init.pp"]
|
179
|
+
end
|
180
|
+
|
181
|
+
it "should use the node environment if specified" do
|
182
|
+
mod = mock 'module'
|
183
|
+
Puppet::Node::Environment.new("myenv").expects(:module).with("mymod").returns mod
|
184
|
+
mod.expects(:match_manifests).with("init.pp").returns(%w{/one/mymod/manifests/init.pp})
|
185
|
+
Puppet::Parser::Files.find_manifests("mymod/init.pp", :environment => "myenv").should == ["/one/mymod/manifests/init.pp"]
|
186
|
+
end
|
187
|
+
|
188
|
+
after { Puppet.settings.clear }
|
189
|
+
end
|
190
|
+
end
|