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/test/language/ast.rb
CHANGED
@@ -15,6 +15,7 @@ class TestAST < Test::Unit::TestCase
|
|
15
15
|
include PuppetTest::Support::Collection
|
16
16
|
|
17
17
|
def test_if
|
18
|
+
scope = mkscope
|
18
19
|
astif = nil
|
19
20
|
astelse = nil
|
20
21
|
fakeelse = FakeAST.new(:else)
|
@@ -35,14 +36,14 @@ class TestAST < Test::Unit::TestCase
|
|
35
36
|
# We initialized it to true, so we should get that first
|
36
37
|
ret = nil
|
37
38
|
assert_nothing_raised {
|
38
|
-
ret = astif.evaluate(
|
39
|
+
ret = astif.evaluate(scope)
|
39
40
|
}
|
40
41
|
assert_equal(:if, ret)
|
41
42
|
|
42
43
|
# Now set it to false and check that
|
43
44
|
faketest.evaluate = false
|
44
45
|
assert_nothing_raised {
|
45
|
-
ret = astif.evaluate(
|
46
|
+
ret = astif.evaluate(scope)
|
46
47
|
}
|
47
48
|
assert_equal(:else, ret)
|
48
49
|
end
|
@@ -9,21 +9,21 @@ require 'puppettest'
|
|
9
9
|
require 'puppettest/parsertesting'
|
10
10
|
|
11
11
|
class TestCaseStatement < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
|
+
|
16
|
+
class ActiveAST < FakeAST
|
17
|
+
def self.clear
|
18
|
+
$evaluated = []
|
19
19
|
end
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
def evaluate
|
21
|
+
$evaluated ||= []
|
22
|
+
$evaluated << @evaluate
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
26
|
-
|
25
|
+
|
26
|
+
def test_evaluate
|
27
27
|
ast = nil
|
28
28
|
scope = mkscope
|
29
29
|
param = nameobj("MyParam")
|
@@ -9,9 +9,9 @@ require 'puppettest'
|
|
9
9
|
require 'puppettest/parsertesting'
|
10
10
|
|
11
11
|
class TestASTResource< Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
15
|
|
16
16
|
def setup
|
17
17
|
super
|
@@ -31,7 +31,7 @@ class TestASTResource< Test::Unit::TestCase
|
|
31
31
|
@parser.newdefine "three"
|
32
32
|
twoscope = @scope.newscope(:namespace => "one")
|
33
33
|
twoscope.resource = @scope.resource
|
34
|
-
assert(twoscope.
|
34
|
+
assert(twoscope.find_definition("two"), "Could not find 'two' definition")
|
35
35
|
title = "title"
|
36
36
|
|
37
37
|
# First try a qualified type
|
@@ -9,10 +9,10 @@ require 'puppettest'
|
|
9
9
|
require 'puppettest/parsertesting'
|
10
10
|
|
11
11
|
class TestASTResourceReference < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
|
+
|
16
16
|
def newref(type, title)
|
17
17
|
AST::ResourceReference.new(:type => type, :title => AST::String.new(:value => title))
|
18
18
|
end
|
@@ -29,7 +29,7 @@ class TestASTResourceReference < Test::Unit::TestCase
|
|
29
29
|
@parser.newdefine "one::two"
|
30
30
|
@parser.newdefine "three"
|
31
31
|
twoscope = @scope.newscope(:namespace => "one")
|
32
|
-
assert(twoscope.
|
32
|
+
assert(twoscope.find_definition("two"), "Could not find 'two' definition")
|
33
33
|
title = "title"
|
34
34
|
|
35
35
|
# First try a qualified type
|
@@ -9,29 +9,29 @@ require 'puppettest'
|
|
9
9
|
require 'puppettest/parsertesting'
|
10
10
|
|
11
11
|
class TestSelector < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
|
+
|
16
16
|
def test_evaluate
|
17
17
|
scope = mkscope
|
18
18
|
upperparam = nameobj("MYPARAM")
|
19
19
|
lowerparam = nameobj("myparam")
|
20
|
-
|
20
|
+
|
21
21
|
should = {"MYPARAM" => "upper", "myparam" => "lower"}
|
22
|
-
|
22
|
+
|
23
23
|
maker = Proc.new do
|
24
24
|
{
|
25
25
|
:default => AST::ResourceParam.new(:param => AST::Default.new(:value => "default"), :value => FakeAST.new("default")),
|
26
26
|
:lower => AST::ResourceParam.new(:param => FakeAST.new("myparam"), :value => FakeAST.new("lower")),
|
27
27
|
:upper => AST::ResourceParam.new(:param => FakeAST.new("MYPARAM"), :value => FakeAST.new("upper")),
|
28
28
|
}
|
29
|
-
|
29
|
+
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
# Start out case-sensitive
|
33
33
|
Puppet[:casesensitive] = true
|
34
|
-
|
34
|
+
|
35
35
|
%w{MYPARAM myparam}.each do |str|
|
36
36
|
param = nameobj(str)
|
37
37
|
params = maker.call()
|
@@ -40,10 +40,10 @@ class TestSelector < Test::Unit::TestCase
|
|
40
40
|
assert_nothing_raised { result = sel.evaluate(scope) }
|
41
41
|
assert_equal(should[str], result, "did not case-sensitively match %s" % str)
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
# then insensitive
|
45
45
|
Puppet[:casesensitive] = false
|
46
|
-
|
46
|
+
|
47
47
|
%w{MYPARAM myparam}.each do |str|
|
48
48
|
param = nameobj(str)
|
49
49
|
params = maker.call()
|
@@ -9,10 +9,10 @@ require 'puppettest'
|
|
9
9
|
require 'puppettest/parsertesting'
|
10
10
|
|
11
11
|
class TestVariable < Test::Unit::TestCase
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
|
+
|
16
16
|
def setup
|
17
17
|
super
|
18
18
|
@interp = mkinterp
|
data/test/language/functions.rb
CHANGED
@@ -359,8 +359,8 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
359
359
|
end
|
360
360
|
|
361
361
|
def test_autoloading_functions
|
362
|
-
assert_equal(false, Puppet::Parser::Functions.function(:autofunc),
|
363
|
-
|
362
|
+
#assert_equal(false, Puppet::Parser::Functions.function(:autofunc),
|
363
|
+
# "Got told autofunc already exists")
|
364
364
|
|
365
365
|
dir = tempfile()
|
366
366
|
$: << dir
|
@@ -388,17 +388,17 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
388
388
|
def test_realize
|
389
389
|
scope = mkscope
|
390
390
|
parser = scope.compiler.parser
|
391
|
-
|
391
|
+
|
392
392
|
realize = Puppet::Parser::Functions.function(:realize)
|
393
393
|
|
394
394
|
# Make a definition
|
395
395
|
parser.newdefine("mytype")
|
396
|
-
|
396
|
+
|
397
397
|
[%w{file /tmp/virtual}, %w{mytype yay}].each do |type, title|
|
398
398
|
# Make a virtual resource
|
399
399
|
virtual = mkresource(:type => type, :title => title,
|
400
400
|
:virtual => true, :params => {}, :scope => scope)
|
401
|
-
|
401
|
+
|
402
402
|
scope.compiler.add_resource(scope, virtual)
|
403
403
|
|
404
404
|
ref = Puppet::Parser::Resource::Reference.new(
|
@@ -442,39 +442,39 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
442
442
|
assert_equal([none.to_s], scope.compiler.collections[0].resources,
|
443
443
|
"Did not set resources in collection")
|
444
444
|
end
|
445
|
-
|
445
|
+
|
446
446
|
def test_defined
|
447
447
|
scope = mkscope
|
448
448
|
parser = scope.compiler.parser
|
449
449
|
|
450
450
|
defined = Puppet::Parser::Functions.function(:defined)
|
451
|
-
|
451
|
+
|
452
452
|
parser.newclass("yayness")
|
453
453
|
parser.newdefine("rahness")
|
454
|
-
|
454
|
+
|
455
455
|
assert_nothing_raised do
|
456
456
|
assert(scope.function_defined("yayness"), "yayness class was not considered defined")
|
457
457
|
assert(scope.function_defined("rahness"), "rahness definition was not considered defined")
|
458
458
|
assert(scope.function_defined("service"), "service type was not considered defined")
|
459
459
|
assert(! scope.function_defined("fakness"), "fakeness was considered defined")
|
460
460
|
end
|
461
|
-
|
461
|
+
|
462
462
|
# Now make sure any match in a list will work
|
463
463
|
assert(scope.function_defined(["booness", "yayness", "fakeness"]),
|
464
464
|
"A single answer was not sufficient to return true")
|
465
|
-
|
465
|
+
|
466
466
|
# and make sure multiple falses are still false
|
467
467
|
assert(! scope.function_defined(%w{no otherno stillno}),
|
468
468
|
"Multiple falses were somehow true")
|
469
|
-
|
469
|
+
|
470
470
|
# Now make sure we can test resources
|
471
471
|
scope.compiler.add_resource(scope, mkresource(:type => "file", :title => "/tmp/rahness",
|
472
472
|
:scope => scope, :source => scope.source,
|
473
473
|
:params => {:owner => "root"}))
|
474
|
-
|
474
|
+
|
475
475
|
yep = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/rahness")
|
476
476
|
nope = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/fooness")
|
477
|
-
|
477
|
+
|
478
478
|
assert(scope.function_defined([yep]), "valid resource was not considered defined")
|
479
479
|
assert(! scope.function_defined([nope]), "invalid resource was considered defined")
|
480
480
|
end
|
@@ -482,7 +482,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
482
482
|
def test_search
|
483
483
|
parser = mkparser
|
484
484
|
scope = mkscope(:parser => parser)
|
485
|
-
|
485
|
+
|
486
486
|
fun = parser.newdefine("yay::ness")
|
487
487
|
foo = parser.newdefine("foo::bar")
|
488
488
|
|
@@ -493,8 +493,8 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
493
493
|
|
494
494
|
ffun = ffoo = nil
|
495
495
|
assert_nothing_raised("Search path change did not work") do
|
496
|
-
ffun = scope.
|
497
|
-
ffoo = scope.
|
496
|
+
ffun = scope.find_definition("ness")
|
497
|
+
ffoo = scope.find_definition('bar')
|
498
498
|
end
|
499
499
|
|
500
500
|
assert(ffun, "Could not find definition in 'fun' namespace")
|
data/test/language/parser.rb
CHANGED
@@ -26,15 +26,6 @@ class TestParser < Test::Unit::TestCase
|
|
26
26
|
parser.file = file
|
27
27
|
parser.parse
|
28
28
|
}
|
29
|
-
|
30
|
-
Puppet::Type.eachtype { |type|
|
31
|
-
type.each { |obj|
|
32
|
-
assert(obj.file, "File is not set on %s" % obj.ref)
|
33
|
-
assert(obj.name, "Name is not set on %s" % obj.ref)
|
34
|
-
assert(obj.line, "Line is not set on %s" % obj.ref)
|
35
|
-
}
|
36
|
-
}
|
37
|
-
Puppet::Type.allclear
|
38
29
|
}
|
39
30
|
end
|
40
31
|
|
@@ -47,9 +38,8 @@ class TestParser < Test::Unit::TestCase
|
|
47
38
|
ast = parser.parse
|
48
39
|
config = mkcompiler(parser)
|
49
40
|
config.compile
|
50
|
-
#ast.
|
41
|
+
#ast.hostclass("").evaluate config.topscope
|
51
42
|
}
|
52
|
-
Puppet::Type.allclear
|
53
43
|
}
|
54
44
|
end
|
55
45
|
|
@@ -293,7 +283,7 @@ class TestParser < Test::Unit::TestCase
|
|
293
283
|
ret = parser.parse
|
294
284
|
}
|
295
285
|
|
296
|
-
ret.
|
286
|
+
ret.hostclass("").code.each do |obj|
|
297
287
|
assert_instance_of(AST::Collection, obj)
|
298
288
|
end
|
299
289
|
end
|
@@ -318,7 +308,7 @@ class TestParser < Test::Unit::TestCase
|
|
318
308
|
f.puts %{
|
319
309
|
node nodeA, nodeB {
|
320
310
|
file { "#{other}": ensure => file }
|
321
|
-
|
311
|
+
|
322
312
|
}
|
323
313
|
}
|
324
314
|
end
|
@@ -384,13 +374,13 @@ file { "/tmp/yayness":
|
|
384
374
|
str1 = %{if true { #{exec.call("true")} }}
|
385
375
|
ret = nil
|
386
376
|
assert_nothing_raised {
|
387
|
-
ret = parser.parse(str1).
|
377
|
+
ret = parser.parse(str1).hostclass("").code[0]
|
388
378
|
}
|
389
379
|
assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
|
390
380
|
parser = mkparser
|
391
381
|
str2 = %{if true { #{exec.call("true")} } else { #{exec.call("false")} }}
|
392
382
|
assert_nothing_raised {
|
393
|
-
ret = parser.parse(str2).
|
383
|
+
ret = parser.parse(str2).hostclass("").code[0]
|
394
384
|
}
|
395
385
|
assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
|
396
386
|
assert_instance_of(Puppet::Parser::AST::Else, ret.else)
|
@@ -402,8 +392,8 @@ file { "/tmp/yayness":
|
|
402
392
|
assert_nothing_raised {
|
403
393
|
parser.parse %{class myclass { class other {} }}
|
404
394
|
}
|
405
|
-
assert(parser.
|
406
|
-
assert(parser.
|
395
|
+
assert(parser.hostclass("myclass"), "Could not find myclass")
|
396
|
+
assert(parser.hostclass("myclass::other"), "Could not find myclass::other")
|
407
397
|
|
408
398
|
assert_nothing_raised {
|
409
399
|
parser.parse "class base {}
|
@@ -411,17 +401,17 @@ file { "/tmp/yayness":
|
|
411
401
|
class deep::sub inherits base {}
|
412
402
|
}"
|
413
403
|
}
|
414
|
-
sub = parser.
|
404
|
+
sub = parser.hostclass("container::deep::sub")
|
415
405
|
assert(sub, "Could not find sub")
|
416
|
-
|
406
|
+
|
417
407
|
# Now try it with a parent class being a fq class
|
418
408
|
assert_nothing_raised {
|
419
409
|
parser.parse "class container::one inherits container::deep::sub {}"
|
420
410
|
}
|
421
|
-
sub = parser.
|
411
|
+
sub = parser.hostclass("container::one")
|
422
412
|
assert(sub, "Could not find one")
|
423
413
|
assert_equal("container::deep::sub", sub.parentclass)
|
424
|
-
|
414
|
+
|
425
415
|
# Finally, try including a qualified class
|
426
416
|
assert_nothing_raised("Could not include fully qualified class") {
|
427
417
|
parser.parse "include container::deep::sub"
|
@@ -436,17 +426,17 @@ file { "/tmp/yayness":
|
|
436
426
|
assert_nothing_raised do
|
437
427
|
out = parser.parse ""
|
438
428
|
|
439
|
-
assert_instance_of(Puppet::Parser::
|
440
|
-
assert_nil(parser.
|
429
|
+
assert_instance_of(Puppet::Parser::LoadedCode, out)
|
430
|
+
assert_nil(parser.hostclass(""), "Got a 'main' class when we had no code")
|
441
431
|
end
|
442
432
|
|
443
433
|
# Now try something a touch more complicated
|
444
434
|
parser.initvars
|
445
435
|
assert_nothing_raised do
|
446
436
|
out = parser.parse "Exec { path => '/usr/bin:/usr/sbin' }"
|
447
|
-
assert_instance_of(Puppet::Parser::
|
448
|
-
assert_equal("", parser.
|
449
|
-
assert_equal("", parser.
|
437
|
+
assert_instance_of(Puppet::Parser::LoadedCode, out)
|
438
|
+
assert_equal("", parser.hostclass("").classname)
|
439
|
+
assert_equal("", parser.hostclass("").namespace)
|
450
440
|
end
|
451
441
|
end
|
452
442
|
|
@@ -454,6 +444,9 @@ file { "/tmp/yayness":
|
|
454
444
|
def test_virtualresources
|
455
445
|
tests = [:virtual]
|
456
446
|
if Puppet.features.rails?
|
447
|
+
catalog_cache_class = Puppet::Resource::Catalog.indirection.cache_class
|
448
|
+
facts_cache_class = Puppet::Node::Facts.indirection.cache_class
|
449
|
+
node_cache_class = Puppet::Node.indirection.cache_class
|
457
450
|
Puppet[:storeconfigs] = true
|
458
451
|
tests << :exported
|
459
452
|
end
|
@@ -489,8 +482,8 @@ file { "/tmp/yayness":
|
|
489
482
|
ret = parser.parse("#{at}file { '/tmp/testing': owner => root }")
|
490
483
|
end
|
491
484
|
|
492
|
-
assert_instance_of(AST::ASTArray, ret.
|
493
|
-
resdef = ret.
|
485
|
+
assert_instance_of(AST::ASTArray, ret.hostclass("").code)
|
486
|
+
resdef = ret.hostclass("").code[0]
|
494
487
|
assert_instance_of(AST::Resource, resdef)
|
495
488
|
assert_equal("/tmp/testing", resdef.title.value)
|
496
489
|
# We always get an astarray back, so...
|
@@ -501,16 +494,25 @@ file { "/tmp/yayness":
|
|
501
494
|
ret = parser.parse("#{at}file { ['/tmp/1', '/tmp/2']: owner => root }")
|
502
495
|
end
|
503
496
|
|
504
|
-
ret.
|
497
|
+
ret.hostclass("").each do |res|
|
505
498
|
assert_instance_of(AST::Resource, res)
|
506
499
|
check.call(res, "multiresource")
|
507
500
|
end
|
508
501
|
end
|
502
|
+
if Puppet.features.rails?
|
503
|
+
Puppet[:storeconfigs] = false
|
504
|
+
Puppet::Resource::Catalog.cache_class = catalog_cache_class
|
505
|
+
Puppet::Node::Facts.cache_class = facts_cache_class
|
506
|
+
Puppet::Node.cache_class = node_cache_class
|
507
|
+
end
|
509
508
|
end
|
510
509
|
|
511
510
|
def test_collections
|
512
511
|
tests = [:virtual]
|
513
512
|
if Puppet.features.rails?
|
513
|
+
catalog_cache_class = Puppet::Resource::Catalog.indirection.cache_class
|
514
|
+
facts_cache_class = Puppet::Node::Facts.indirection.cache_class
|
515
|
+
node_cache_class = Puppet::Node.indirection.cache_class
|
514
516
|
Puppet[:storeconfigs] = true
|
515
517
|
tests << :exported
|
516
518
|
end
|
@@ -529,10 +531,16 @@ file { "/tmp/yayness":
|
|
529
531
|
ret = parser.parse("File #{arrow}")
|
530
532
|
end
|
531
533
|
|
532
|
-
coll = ret.
|
534
|
+
coll = ret.hostclass("").code[0]
|
533
535
|
assert_instance_of(AST::Collection, coll)
|
534
536
|
assert_equal(form, coll.form)
|
535
537
|
end
|
538
|
+
if Puppet.features.rails?
|
539
|
+
Puppet[:storeconfigs] = false
|
540
|
+
Puppet::Resource::Catalog.cache_class = catalog_cache_class
|
541
|
+
Puppet::Node::Facts.cache_class = facts_cache_class
|
542
|
+
Puppet::Node.cache_class = node_cache_class
|
543
|
+
end
|
536
544
|
end
|
537
545
|
|
538
546
|
def test_collectionexpressions
|
@@ -543,7 +551,7 @@ file { "/tmp/yayness":
|
|
543
551
|
|
544
552
|
res = nil
|
545
553
|
assert_nothing_raised do
|
546
|
-
res = parser.parse(str).
|
554
|
+
res = parser.parse(str).hostclass("").code[0]
|
547
555
|
end
|
548
556
|
|
549
557
|
assert_instance_of(AST::Collection, res)
|
@@ -566,7 +574,7 @@ file { "/tmp/yayness":
|
|
566
574
|
|
567
575
|
res = nil
|
568
576
|
assert_nothing_raised do
|
569
|
-
res = parser.parse(str).
|
577
|
+
res = parser.parse(str).hostclass("").code[0]
|
570
578
|
end
|
571
579
|
|
572
580
|
assert_instance_of(AST::Collection, res)
|
@@ -590,7 +598,7 @@ file { "/tmp/yayness":
|
|
590
598
|
|
591
599
|
res = nil
|
592
600
|
assert_nothing_raised("Could not parse '#{test}'") do
|
593
|
-
res = parser.parse(str).
|
601
|
+
res = parser.parse(str).hostclass("").code[0]
|
594
602
|
end
|
595
603
|
|
596
604
|
assert_instance_of(AST::Collection, res)
|
@@ -627,14 +635,14 @@ file { "/tmp/yayness":
|
|
627
635
|
assert(code.length == 1, "Did not get the file")
|
628
636
|
assert_instance_of(Puppet::TransObject, code[0])
|
629
637
|
end
|
630
|
-
|
638
|
+
|
631
639
|
def test_fully_qualified_definitions
|
632
640
|
parser = mkparser
|
633
641
|
|
634
642
|
assert_nothing_raised("Could not parse fully-qualified definition") {
|
635
643
|
parser.parse %{define one::two { }}
|
636
644
|
}
|
637
|
-
assert(parser.
|
645
|
+
assert(parser.definition("one::two"), "Could not find one::two with no namespace")
|
638
646
|
|
639
647
|
# Now try using the definition
|
640
648
|
assert_nothing_raised("Could not parse fully-qualified definition usage") {
|
@@ -693,7 +701,6 @@ file { "/tmp/yayness":
|
|
693
701
|
|
694
702
|
manifest = File.join(modpath, "manifest.pp")
|
695
703
|
manifest_texts.each do |txt|
|
696
|
-
Puppet::Type.allclear
|
697
704
|
File.open(manifest, "w") { |f| f.puts txt }
|
698
705
|
|
699
706
|
assert_nothing_raised {
|
@@ -775,7 +782,7 @@ file { "/tmp/yayness":
|
|
775
782
|
result = parser.parse %{$variable = undef}
|
776
783
|
}
|
777
784
|
|
778
|
-
main = result.
|
785
|
+
main = result.hostclass("").code
|
779
786
|
children = main.children
|
780
787
|
assert_instance_of(AST::VarDef, main.children[0])
|
781
788
|
assert_instance_of(AST::Undef, main.children[0].value)
|
@@ -785,17 +792,17 @@ file { "/tmp/yayness":
|
|
785
792
|
def test_parse
|
786
793
|
parser = mkparser
|
787
794
|
|
788
|
-
str = "file { '/tmp/yay': ensure => file }\nclass yay {}\nnode foo {}\ndefine bar {}\n"
|
795
|
+
str = "file { '/tmp/yay': ensure => file }\nclass yay {}\nnode foo {}\ndefine bar {}\n"
|
789
796
|
result = nil
|
790
797
|
assert_nothing_raised("Could not parse") do
|
791
798
|
result = parser.parse(str)
|
792
799
|
end
|
793
|
-
assert_instance_of(Puppet::Parser::
|
800
|
+
assert_instance_of(Puppet::Parser::LoadedCode, result, "Did not get a ASTSet back from parsing")
|
794
801
|
|
795
|
-
assert_instance_of(AST::HostClass, result.
|
796
|
-
assert_instance_of(AST::HostClass, result.
|
797
|
-
assert_instance_of(AST::Definition, result.
|
798
|
-
assert_instance_of(AST::Node, result.
|
802
|
+
assert_instance_of(AST::HostClass, result.hostclass("yay"), "Did not create 'yay' class")
|
803
|
+
assert_instance_of(AST::HostClass, result.hostclass(""), "Did not create main class")
|
804
|
+
assert_instance_of(AST::Definition, result.definition("bar"), "Did not create 'bar' definition")
|
805
|
+
assert_instance_of(AST::Node, result.node("foo"), "Did not create 'foo' node")
|
799
806
|
end
|
800
807
|
|
801
808
|
# Make sure our node gets added to the node table.
|
@@ -807,7 +814,7 @@ file { "/tmp/yayness":
|
|
807
814
|
parser.newnode("mynode", :code => :yay)
|
808
815
|
}
|
809
816
|
|
810
|
-
assert_equal(:yay, parser.
|
817
|
+
assert_equal(:yay, parser.node("mynode").code)
|
811
818
|
|
812
819
|
# Now make sure that trying to redefine it throws an error.
|
813
820
|
assert_raise(Puppet::ParseError) {
|
@@ -823,8 +830,8 @@ file { "/tmp/yayness":
|
|
823
830
|
parser.newnode(:foo)
|
824
831
|
|
825
832
|
# And make sure we get things back correctly
|
826
|
-
assert_equal(:foo, parser.
|
827
|
-
assert_nil(parser.
|
833
|
+
assert_equal(:foo, parser.node("simplenode").parentclass)
|
834
|
+
assert_nil(parser.node("simplenode").code)
|
828
835
|
|
829
836
|
# Now make sure that trying to redefine it throws an error.
|
830
837
|
assert_raise(Puppet::ParseError) {
|
@@ -838,8 +845,8 @@ file { "/tmp/yayness":
|
|
838
845
|
}
|
839
846
|
|
840
847
|
names.each do |name|
|
841
|
-
assert_equal(:yay, parser.
|
842
|
-
assert_equal(:foo, parser.
|
848
|
+
assert_equal(:yay, parser.node(name).code)
|
849
|
+
assert_equal(:foo, parser.node(name).parentclass)
|
843
850
|
# Now make sure that trying to redefine it throws an error.
|
844
851
|
assert_raise(Puppet::ParseError) {
|
845
852
|
parser.newnode(name, {})
|
@@ -855,7 +862,7 @@ file { "/tmp/yayness":
|
|
855
862
|
:arguments => ["a", stringobj("b")])
|
856
863
|
}
|
857
864
|
|
858
|
-
mydefine = parser.
|
865
|
+
mydefine = parser.definition("mydefine")
|
859
866
|
assert(mydefine, "Could not find definition")
|
860
867
|
assert_equal("", mydefine.namespace)
|
861
868
|
assert_equal("mydefine", mydefine.classname)
|
@@ -870,9 +877,9 @@ file { "/tmp/yayness":
|
|
870
877
|
parser.newdefine("other::mydefine", :code => :other,
|
871
878
|
:arguments => ["a", stringobj("b")])
|
872
879
|
}
|
873
|
-
other = parser.
|
880
|
+
other = parser.definition("other::mydefine")
|
874
881
|
assert(other, "Could not find definition")
|
875
|
-
assert(parser.
|
882
|
+
assert(parser.definition("other::mydefine"),
|
876
883
|
"Could not find other::mydefine")
|
877
884
|
assert_equal(:other, other.code)
|
878
885
|
assert_equal("other", other.namespace)
|
@@ -901,10 +908,10 @@ file { "/tmp/yayness":
|
|
901
908
|
|
902
909
|
assert(klass, "Did not return class")
|
903
910
|
|
904
|
-
assert(parser.
|
905
|
-
assert_equal("myclass", parser.
|
911
|
+
assert(parser.hostclass("myclass"), "Could not find definition")
|
912
|
+
assert_equal("myclass", parser.hostclass("myclass").classname)
|
906
913
|
assert_equal(%w{original code},
|
907
|
-
parser.
|
914
|
+
parser.hostclass("myclass").code.evaluate(scope))
|
908
915
|
|
909
916
|
# Newclass behaves differently than the others -- it just appends
|
910
917
|
# the code to the existing class.
|
@@ -914,7 +921,7 @@ file { "/tmp/yayness":
|
|
914
921
|
end
|
915
922
|
assert(klass, "Did not return class when appending")
|
916
923
|
assert_equal(%w{original code something new},
|
917
|
-
parser.
|
924
|
+
parser.hostclass("myclass").code.evaluate(scope))
|
918
925
|
|
919
926
|
# Now create the same class name in a different scope
|
920
927
|
assert_nothing_raised {
|
@@ -922,7 +929,7 @@ file { "/tmp/yayness":
|
|
922
929
|
:code => mkcode.call(%w{something diff}))
|
923
930
|
}
|
924
931
|
assert(klass, "Did not return class")
|
925
|
-
other = parser.
|
932
|
+
other = parser.hostclass("other::myclass")
|
926
933
|
assert(other, "Could not find class")
|
927
934
|
assert_equal("other::myclass", other.classname)
|
928
935
|
assert_equal("other::myclass", other.namespace)
|
@@ -938,7 +945,7 @@ file { "/tmp/yayness":
|
|
938
945
|
end
|
939
946
|
assert(klass, "Did not return class with no code")
|
940
947
|
assert_equal(%w{yay test},
|
941
|
-
parser.
|
948
|
+
parser.hostclass("nocode").code.evaluate(scope))
|
942
949
|
|
943
950
|
# Then try merging something into nothing
|
944
951
|
parser.newclass("nocode2", :code => mkcode.call(%w{foo test}))
|
@@ -949,7 +956,7 @@ file { "/tmp/yayness":
|
|
949
956
|
end
|
950
957
|
assert(klass, "Did not return class with no code")
|
951
958
|
assert_equal(%w{foo test},
|
952
|
-
parser.
|
959
|
+
parser.hostclass("nocode2").code.evaluate(scope))
|
953
960
|
|
954
961
|
# And lastly, nothing and nothing
|
955
962
|
klass = parser.newclass("nocode3")
|
@@ -959,7 +966,7 @@ file { "/tmp/yayness":
|
|
959
966
|
klass = parser.newclass("nocode3")
|
960
967
|
end
|
961
968
|
assert(klass, "Did not return class with no code")
|
962
|
-
assert_nil(parser.
|
969
|
+
assert_nil(parser.hostclass("nocode3").code)
|
963
970
|
end
|
964
971
|
|
965
972
|
# Make sure you can't have classes and defines with the same name in the
|
@@ -997,7 +1004,7 @@ file { "/tmp/yayness":
|
|
997
1004
|
end
|
998
1005
|
end
|
999
1006
|
end
|
1000
|
-
|
1007
|
+
|
1001
1008
|
# Now make sure we get appropriate behaviour with parent class conflicts.
|
1002
1009
|
def test_newclass_parentage
|
1003
1010
|
parser = mkparser
|
@@ -1008,8 +1015,8 @@ file { "/tmp/yayness":
|
|
1008
1015
|
assert_nothing_raised {
|
1009
1016
|
parser.newclass("sub")
|
1010
1017
|
}
|
1011
|
-
assert(parser.
|
1012
|
-
assert_nil(parser.
|
1018
|
+
assert(parser.hostclass("sub"), "Could not find definition")
|
1019
|
+
assert_nil(parser.hostclass("sub").parentclass)
|
1013
1020
|
|
1014
1021
|
# Make sure we can't set the parent class to ourself.
|
1015
1022
|
assert_raise(Puppet::ParseError) {
|
@@ -1023,7 +1030,7 @@ file { "/tmp/yayness":
|
|
1023
1030
|
|
1024
1031
|
# Make sure we get the right parent class, and make sure it's not an object.
|
1025
1032
|
assert_equal("base1",
|
1026
|
-
parser.
|
1033
|
+
parser.hostclass("sub").parentclass)
|
1027
1034
|
|
1028
1035
|
# Now make sure we get a failure if we try to conflict.
|
1029
1036
|
assert_raise(Puppet::ParseError) {
|
@@ -1032,45 +1039,16 @@ file { "/tmp/yayness":
|
|
1032
1039
|
|
1033
1040
|
# Make sure that failure didn't screw us up in any way.
|
1034
1041
|
assert_equal("base1",
|
1035
|
-
parser.
|
1042
|
+
parser.hostclass("sub").parentclass)
|
1036
1043
|
# But make sure we can create a class with a fq parent
|
1037
1044
|
assert_nothing_raised {
|
1038
1045
|
parser.newclass("another", :parent => "one::two::three")
|
1039
1046
|
}
|
1040
1047
|
assert_equal("one::two::three",
|
1041
|
-
parser.
|
1048
|
+
parser.hostclass("another").parentclass)
|
1042
1049
|
|
1043
1050
|
end
|
1044
1051
|
|
1045
|
-
def test_fqfind
|
1046
|
-
parser = mkparser
|
1047
|
-
|
1048
|
-
table = {}
|
1049
|
-
# Define a bunch of things.
|
1050
|
-
%w{a c a::b a::b::c a::c a::b::c::d a::b::c::d::e::f c::d}.each do |string|
|
1051
|
-
table[string] = string
|
1052
|
-
end
|
1053
|
-
|
1054
|
-
check = proc do |namespace, hash|
|
1055
|
-
hash.each do |thing, result|
|
1056
|
-
assert_equal(result, parser.fqfind(namespace, thing, table),
|
1057
|
-
"Could not find %s in %s" % [thing, namespace])
|
1058
|
-
end
|
1059
|
-
end
|
1060
|
-
|
1061
|
-
# Now let's do some test lookups.
|
1062
|
-
|
1063
|
-
# First do something really simple
|
1064
|
-
check.call "a", "b" => "a::b", "b::c" => "a::b::c", "d" => nil, "::c" => "c"
|
1065
|
-
|
1066
|
-
check.call "a::b", "c" => "a::b::c", "b" => "a::b", "a" => "a"
|
1067
|
-
|
1068
|
-
check.call "a::b::c::d::e", "c" => "a::b::c", "::c" => "c",
|
1069
|
-
"c::d" => "a::b::c::d", "::c::d" => "c::d"
|
1070
|
-
|
1071
|
-
check.call "", "a" => "a", "a::c" => "a::c"
|
1072
|
-
end
|
1073
|
-
|
1074
1052
|
# Setup a module.
|
1075
1053
|
def mk_module(name, files = {})
|
1076
1054
|
mdir = File.join(@dir, name)
|
@@ -1105,20 +1083,20 @@ file { "/tmp/yayness":
|
|
1105
1083
|
parser = mkparser
|
1106
1084
|
|
1107
1085
|
# Make sure we fail like normal for actually missing classes
|
1108
|
-
assert_nil(parser.
|
1086
|
+
assert_nil(parser.find_hostclass("", "nosuchclass"), "Did not return nil on missing classes")
|
1109
1087
|
|
1110
1088
|
# test the simple case -- the module class itself
|
1111
1089
|
name = "simple"
|
1112
1090
|
mk_module(name, :init => [name])
|
1113
1091
|
|
1114
1092
|
# Try to load the module automatically now
|
1115
|
-
klass = parser.
|
1093
|
+
klass = parser.find_hostclass("", name)
|
1116
1094
|
assert_instance_of(AST::HostClass, klass, "Did not autoload class from module init file")
|
1117
1095
|
assert_equal(name, klass.classname, "Incorrect class was returned")
|
1118
1096
|
|
1119
1097
|
# Try loading the simple module when we're in something other than the base namespace.
|
1120
1098
|
parser = mkparser
|
1121
|
-
klass = parser.
|
1099
|
+
klass = parser.find_hostclass("something::else", name)
|
1122
1100
|
assert_instance_of(AST::HostClass, klass, "Did not autoload class from module init file")
|
1123
1101
|
assert_equal(name, klass.classname, "Incorrect class was returned")
|
1124
1102
|
|
@@ -1126,7 +1104,7 @@ file { "/tmp/yayness":
|
|
1126
1104
|
name = "simpdef"
|
1127
1105
|
mk_module(name, :define => true, :init => [name])
|
1128
1106
|
|
1129
|
-
klass = parser.
|
1107
|
+
klass = parser.find_definition("", name)
|
1130
1108
|
assert_instance_of(AST::Definition, klass, "Did not autoload class from module init file")
|
1131
1109
|
assert_equal(name, klass.classname, "Incorrect class was returned")
|
1132
1110
|
|
@@ -1137,13 +1115,13 @@ file { "/tmp/yayness":
|
|
1137
1115
|
mk_module(modname, :init => %w{both both::sub})
|
1138
1116
|
|
1139
1117
|
# First try it with a namespace
|
1140
|
-
klass = parser.
|
1118
|
+
klass = parser.find_hostclass("both", name)
|
1141
1119
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from module init file with a namespace")
|
1142
1120
|
assert_equal("both::sub", klass.classname, "Incorrect class was returned")
|
1143
1121
|
|
1144
1122
|
# Now try it using the fully qualified name
|
1145
1123
|
parser = mkparser
|
1146
|
-
klass = parser.
|
1124
|
+
klass = parser.find_hostclass("", "both::sub")
|
1147
1125
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from module init file with no namespace")
|
1148
1126
|
assert_equal("both::sub", klass.classname, "Incorrect class was returned")
|
1149
1127
|
|
@@ -1155,13 +1133,13 @@ file { "/tmp/yayness":
|
|
1155
1133
|
mk_module(modname, :init => %w{separate}, :sub => %w{separate::sub})
|
1156
1134
|
|
1157
1135
|
# First try it with a namespace
|
1158
|
-
klass = parser.
|
1136
|
+
klass = parser.find_hostclass("separate", name)
|
1159
1137
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from separate file with a namespace")
|
1160
1138
|
assert_equal("separate::sub", klass.classname, "Incorrect class was returned")
|
1161
1139
|
|
1162
1140
|
# Now try it using the fully qualified name
|
1163
1141
|
parser = mkparser
|
1164
|
-
klass = parser.
|
1142
|
+
klass = parser.find_hostclass("", "separate::sub")
|
1165
1143
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from separate file with no namespace")
|
1166
1144
|
assert_equal("separate::sub", klass.classname, "Incorrect class was returned")
|
1167
1145
|
|
@@ -1173,14 +1151,14 @@ file { "/tmp/yayness":
|
|
1173
1151
|
|
1174
1152
|
# First try it with a namespace
|
1175
1153
|
assert_nothing_raised("Could not autoload file when module file is missing") do
|
1176
|
-
klass = parser.
|
1154
|
+
klass = parser.find_hostclass("alone", name)
|
1177
1155
|
end
|
1178
1156
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with a namespace")
|
1179
1157
|
assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
|
1180
1158
|
|
1181
1159
|
# Now try it using the fully qualified name
|
1182
1160
|
parser = mkparser
|
1183
|
-
klass = parser.
|
1161
|
+
klass = parser.find_hostclass("", "alone::sub")
|
1184
1162
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with no namespace")
|
1185
1163
|
assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
|
1186
1164
|
|
@@ -1188,25 +1166,25 @@ file { "/tmp/yayness":
|
|
1188
1166
|
name = "mymod"
|
1189
1167
|
mk_module(name, :define => true, :mydefine => ["mymod::mydefine"])
|
1190
1168
|
|
1191
|
-
klass = parser.
|
1169
|
+
klass = parser.find_definition("", "mymod::mydefine")
|
1192
1170
|
assert_instance_of(AST::Definition, klass, "Did not autoload definition from its own file")
|
1193
1171
|
assert_equal("mymod::mydefine", klass.classname, "Incorrect definition was returned")
|
1194
1172
|
end
|
1195
|
-
|
1173
|
+
|
1196
1174
|
# Make sure class, node, and define methods are case-insensitive
|
1197
1175
|
def test_structure_case_insensitivity
|
1198
1176
|
parser = mkparser
|
1199
|
-
|
1177
|
+
|
1200
1178
|
result = nil
|
1201
1179
|
assert_nothing_raised do
|
1202
1180
|
result = parser.newclass "Yayness"
|
1203
1181
|
end
|
1204
|
-
assert_equal(result, parser.
|
1182
|
+
assert_equal(result, parser.find_hostclass("", "yayNess"))
|
1205
1183
|
|
1206
1184
|
assert_nothing_raised do
|
1207
1185
|
result = parser.newdefine "FunTest"
|
1208
1186
|
end
|
1209
|
-
assert_equal(result, parser.
|
1187
|
+
assert_equal(result, parser.find_definition("", "fUntEst"),
|
1210
1188
|
"%s was not matched" % "fUntEst")
|
1211
1189
|
end
|
1212
1190
|
|
@@ -1215,10 +1193,10 @@ file { "/tmp/yayness":
|
|
1215
1193
|
|
1216
1194
|
# We use an exception to cut short the processing to simplify our stubbing
|
1217
1195
|
#Puppet::Module.expects(:find_manifests).with("test", {:cwd => ".", :environment => "something"}).raises(Puppet::ParseError)
|
1218
|
-
Puppet::
|
1196
|
+
Puppet::Parser::Files.expects(:find_manifests).with("test", {:cwd => ".", :environment => "something"}).returns([])
|
1219
1197
|
|
1220
1198
|
assert_raise(Puppet::ImportError) do
|
1221
|
-
parser.import("test")
|
1199
|
+
parser.import("test")
|
1222
1200
|
end
|
1223
1201
|
end
|
1224
1202
|
|