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
@@ -8,11 +8,86 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
|
|
8
8
|
require 'puppet/indirector/file_content/file_server'
|
9
9
|
require 'shared_behaviours/file_server_terminus'
|
10
10
|
|
11
|
+
require 'puppet_spec/files'
|
12
|
+
|
11
13
|
describe Puppet::Indirector::FileContent::FileServer, " when finding files" do
|
12
14
|
it_should_behave_like "Puppet::Indirector::FileServerTerminus"
|
15
|
+
include PuppetSpec::Files
|
13
16
|
|
14
17
|
before do
|
15
18
|
@terminus = Puppet::Indirector::FileContent::FileServer.new
|
16
19
|
@test_class = Puppet::FileServing::Content
|
17
20
|
end
|
21
|
+
|
22
|
+
it "should find plugin file content in the environment specified in the request" do
|
23
|
+
path = tmpfile("file_content_with_env")
|
24
|
+
|
25
|
+
Dir.mkdir(path)
|
26
|
+
|
27
|
+
modpath = File.join(path, "mod")
|
28
|
+
FileUtils.mkdir_p(File.join(modpath, "lib"))
|
29
|
+
file = File.join(modpath, "lib", "file.rb")
|
30
|
+
File.open(file, "w") { |f| f.puts "1" }
|
31
|
+
|
32
|
+
env = Puppet::Node::Environment.new("foo")
|
33
|
+
env.stubs(:modulepath).returns [path]
|
34
|
+
Puppet.settings[:modulepath] = "/no/such/file"
|
35
|
+
|
36
|
+
result = Puppet::FileServing::Content.search("plugins", :environment => "foo", :recurse => true)
|
37
|
+
|
38
|
+
result.should_not be_nil
|
39
|
+
result.length.should == 2
|
40
|
+
result[1].should be_instance_of(Puppet::FileServing::Content)
|
41
|
+
result[1].content.should == "1\n"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should find file content in modules" do
|
45
|
+
path = tmpfile("file_content")
|
46
|
+
|
47
|
+
Dir.mkdir(path)
|
48
|
+
|
49
|
+
modpath = File.join(path, "mymod")
|
50
|
+
FileUtils.mkdir_p(File.join(modpath, "files"))
|
51
|
+
file = File.join(modpath, "files", "myfile")
|
52
|
+
File.open(file, "w") { |f| f.puts "1" }
|
53
|
+
|
54
|
+
Puppet.settings[:modulepath] = path
|
55
|
+
|
56
|
+
result = Puppet::FileServing::Content.find("modules/mymod/myfile")
|
57
|
+
|
58
|
+
result.should_not be_nil
|
59
|
+
result.should be_instance_of(Puppet::FileServing::Content)
|
60
|
+
result.content.should == "1\n"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should find file content in files when node name expansions are used" do
|
64
|
+
Puppet::Util::Cacher.expire
|
65
|
+
FileTest.stubs(:exists?).returns true
|
66
|
+
FileTest.stubs(:exists?).with(Puppet[:fileserverconfig]).returns(true)
|
67
|
+
|
68
|
+
@path = tmpfile("file_server_testing")
|
69
|
+
|
70
|
+
Dir.mkdir(@path)
|
71
|
+
subdir = File.join(@path, "mynode")
|
72
|
+
Dir.mkdir(subdir)
|
73
|
+
File.open(File.join(subdir, "myfile"), "w") { |f| f.puts "1" }
|
74
|
+
|
75
|
+
# Use a real mount, so the integration is a bit deeper.
|
76
|
+
@mount1 = Puppet::FileServing::Configuration::Mount::File.new("one")
|
77
|
+
@mount1.stubs(:allowed?).returns true
|
78
|
+
@mount1.path = File.join(@path, "%h")
|
79
|
+
|
80
|
+
@parser = stub 'parser', :changed? => false
|
81
|
+
@parser.stubs(:parse).returns("one" => @mount1)
|
82
|
+
|
83
|
+
Puppet::FileServing::Configuration::Parser.stubs(:new).returns(@parser)
|
84
|
+
|
85
|
+
path = File.join(@path, "myfile")
|
86
|
+
|
87
|
+
result = Puppet::FileServing::Content.find("one/myfile", :environment => "foo", :node => "mynode")
|
88
|
+
|
89
|
+
result.should_not be_nil
|
90
|
+
result.should be_instance_of(Puppet::FileServing::Content)
|
91
|
+
result.content.should == "1\n"
|
92
|
+
end
|
18
93
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
require 'puppet/transaction/report'
|
6
|
+
require 'puppet/network/server'
|
7
|
+
require 'puppet/network/http/webrick/rest'
|
8
|
+
|
9
|
+
describe "Report REST Terminus" do
|
10
|
+
before do
|
11
|
+
Puppet[:masterport] = 34343
|
12
|
+
Puppet[:server] = "localhost"
|
13
|
+
|
14
|
+
# Get a safe temporary file
|
15
|
+
@tmpfile = Tempfile.new("webrick_integration_testing")
|
16
|
+
@dir = @tmpfile.path + "_dir"
|
17
|
+
|
18
|
+
Puppet.settings[:confdir] = @dir
|
19
|
+
Puppet.settings[:vardir] = @dir
|
20
|
+
Puppet.settings[:server] = "127.0.0.1"
|
21
|
+
Puppet.settings[:masterport] = "34343"
|
22
|
+
Puppet.settings[:http_enable_post_connection_check] = false
|
23
|
+
|
24
|
+
Puppet::Util::Cacher.expire
|
25
|
+
|
26
|
+
Puppet[:servertype] = 'webrick'
|
27
|
+
Puppet[:server] = '127.0.0.1'
|
28
|
+
Puppet[:certname] = '127.0.0.1'
|
29
|
+
|
30
|
+
# Generate the certificate with a local CA
|
31
|
+
Puppet::SSL::Host.ca_location = :local
|
32
|
+
ca = Puppet::SSL::CertificateAuthority.new
|
33
|
+
ca.generate(Puppet[:certname]) unless Puppet::SSL::Certificate.find(Puppet[:certname])
|
34
|
+
ca.generate("foo.madstop.com") unless Puppet::SSL::Certificate.find(Puppet[:certname])
|
35
|
+
|
36
|
+
@host = Puppet::SSL::Host.new(Puppet[:certname])
|
37
|
+
|
38
|
+
@params = { :port => 34343, :handlers => [ :report ] }
|
39
|
+
@server = Puppet::Network::Server.new(@params)
|
40
|
+
@server.listen
|
41
|
+
|
42
|
+
# Let's use REST for our reports :-)
|
43
|
+
@old_terminus = Puppet::Transaction::Report.indirection.terminus_class
|
44
|
+
Puppet::Transaction::Report.terminus_class = :rest
|
45
|
+
|
46
|
+
# LAK:NOTE We need to have a fake model here so that our indirected methods get
|
47
|
+
# passed through REST; otherwise we'd be stubbing 'save', which would cause an immediate
|
48
|
+
# return.
|
49
|
+
@report = stub_everything 'report'
|
50
|
+
@mock_model = stub_everything 'faked model', :name => "report", :convert_from => @report
|
51
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
52
|
+
|
53
|
+
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:check_authorization)
|
54
|
+
end
|
55
|
+
|
56
|
+
after do
|
57
|
+
Puppet::Network::HttpPool.expire
|
58
|
+
Puppet::SSL::Host.ca_location = :none
|
59
|
+
Puppet.settings.clear
|
60
|
+
@server.unlisten
|
61
|
+
Puppet::Transaction::Report.terminus_class = @old_terminus
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be able to send a report to the server" do
|
65
|
+
@report.expects(:save)
|
66
|
+
|
67
|
+
report = Puppet::Transaction::Report.new
|
68
|
+
|
69
|
+
resourcemetrics = {
|
70
|
+
:total => 12,
|
71
|
+
:out_of_sync => 20,
|
72
|
+
:applied => 45,
|
73
|
+
:skipped => 1,
|
74
|
+
:restarted => 23,
|
75
|
+
:failed_restarts => 1,
|
76
|
+
:scheduled => 10
|
77
|
+
}
|
78
|
+
report.newmetric(:resources, resourcemetrics)
|
79
|
+
|
80
|
+
timemetrics = {
|
81
|
+
:resource1 => 10,
|
82
|
+
:resource2 => 50,
|
83
|
+
:resource3 => 40,
|
84
|
+
:resource4 => 20,
|
85
|
+
}
|
86
|
+
report.newmetric(:times, timemetrics)
|
87
|
+
|
88
|
+
report.newmetric(:changes,
|
89
|
+
:total => 20
|
90
|
+
)
|
91
|
+
|
92
|
+
report.time = Time.now
|
93
|
+
report.save
|
94
|
+
end
|
95
|
+
end
|
@@ -7,19 +7,19 @@ require 'puppet/indirector/rest'
|
|
7
7
|
|
8
8
|
# a fake class that will be indirected via REST
|
9
9
|
class Puppet::TestIndirectedFoo
|
10
|
-
extend Puppet::Indirector
|
10
|
+
extend Puppet::Indirector
|
11
11
|
indirects :test_indirected_foo, :terminus_setting => :test_indirected_foo_terminus
|
12
|
-
|
12
|
+
|
13
13
|
attr_reader :value
|
14
|
-
|
14
|
+
|
15
15
|
def initialize(value = 0)
|
16
16
|
@value = value
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def self.from_yaml(yaml)
|
20
20
|
YAML.load(yaml)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def name
|
24
24
|
"bob"
|
25
25
|
end
|
@@ -31,66 +31,109 @@ end
|
|
31
31
|
|
32
32
|
|
33
33
|
describe Puppet::Indirector::REST do
|
34
|
+
before do
|
35
|
+
# Get a safe temporary file
|
36
|
+
@tmpfile = Tempfile.new("webrick_integration_testing")
|
37
|
+
@dir = @tmpfile.path + "_dir"
|
38
|
+
|
39
|
+
Puppet.settings[:confdir] = @dir
|
40
|
+
Puppet.settings[:vardir] = @dir
|
41
|
+
Puppet.settings[:server] = "127.0.0.1"
|
42
|
+
Puppet.settings[:masterport] = "34343"
|
43
|
+
Puppet.settings[:http_enable_post_connection_check] = false
|
44
|
+
|
45
|
+
Puppet::SSL::Host.ca_location = :local
|
46
|
+
|
47
|
+
Puppet::TestIndirectedFoo.terminus_class = :rest
|
48
|
+
end
|
49
|
+
|
50
|
+
after do
|
51
|
+
Puppet::Network::HttpPool.expire
|
52
|
+
Puppet::SSL::Host.ca_location = :none
|
53
|
+
Puppet.settings.clear
|
54
|
+
end
|
55
|
+
|
34
56
|
describe "when using webrick" do
|
35
57
|
before :each do
|
58
|
+
Puppet::Util::Cacher.expire
|
59
|
+
|
36
60
|
Puppet[:servertype] = 'webrick'
|
37
|
-
|
61
|
+
Puppet[:server] = '127.0.0.1'
|
62
|
+
Puppet[:certname] = '127.0.0.1'
|
63
|
+
|
64
|
+
ca = Puppet::SSL::CertificateAuthority.new
|
65
|
+
ca.generate(Puppet[:certname]) unless Puppet::SSL::Certificate.find(Puppet[:certname])
|
66
|
+
|
67
|
+
@params = { :port => 34343, :handlers => [ :test_indirected_foo ], :xmlrpc_handlers => [ :status ] }
|
38
68
|
@server = Puppet::Network::Server.new(@params)
|
39
69
|
@server.listen
|
40
70
|
|
41
|
-
#
|
42
|
-
|
43
|
-
|
71
|
+
# LAK:NOTE We need to have a fake model here so that our indirected methods get
|
72
|
+
# passed through REST; otherwise we'd be stubbing 'find', which would cause an immediate
|
73
|
+
# return.
|
74
|
+
@mock_model = stub('faked model', :name => "foo")
|
75
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
44
76
|
|
45
|
-
#
|
46
|
-
Puppet::
|
77
|
+
# do not trigger the authorization layer
|
78
|
+
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:check_authorization).returns(true)
|
47
79
|
end
|
48
|
-
|
80
|
+
|
49
81
|
describe "when finding a model instance over REST" do
|
50
82
|
describe "when a matching model instance can be found" do
|
51
83
|
before :each do
|
52
84
|
@model_instance = Puppet::TestIndirectedFoo.new(23)
|
53
|
-
@mock_model
|
54
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
|
85
|
+
@mock_model.stubs(:find).returns @model_instance
|
55
86
|
end
|
56
|
-
|
87
|
+
|
57
88
|
it "should not fail" do
|
58
89
|
lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
|
59
90
|
end
|
60
|
-
|
91
|
+
|
61
92
|
it 'should return an instance of the model class' do
|
62
93
|
Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
|
63
94
|
end
|
64
|
-
|
95
|
+
|
96
|
+
it "should pass options all the way through" do
|
97
|
+
@mock_model.expects(:find).with { |key, args| args[:one] == "two" and args[:three] == "four" }.returns @model_instance
|
98
|
+
Puppet::TestIndirectedFoo.find('bar', :one => "two", :three => "four")
|
99
|
+
end
|
100
|
+
|
65
101
|
it 'should return the instance of the model class associated with the provided lookup key' do
|
66
102
|
Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
|
67
103
|
end
|
68
|
-
|
104
|
+
|
69
105
|
it 'should set an expiration on model instance' do
|
70
106
|
Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
|
71
107
|
end
|
108
|
+
|
109
|
+
it "should use a supported format" do
|
110
|
+
Puppet::TestIndirectedFoo.expects(:supported_formats).returns ["marshal"]
|
111
|
+
text = Marshal.dump(@model_instance)
|
112
|
+
@model_instance.expects(:render).with(Puppet::Network::FormatHandler.format("marshal")).returns text
|
113
|
+
Puppet::TestIndirectedFoo.find('bar')
|
114
|
+
end
|
72
115
|
end
|
73
|
-
|
116
|
+
|
74
117
|
describe "when no matching model instance can be found" do
|
75
118
|
before :each do
|
76
|
-
@mock_model = stub('faked model', :find => nil)
|
77
|
-
Puppet::
|
119
|
+
@mock_model = stub('faked model', :name => "foo", :find => nil)
|
120
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
78
121
|
end
|
79
|
-
|
122
|
+
|
80
123
|
it "should return nil" do
|
81
124
|
Puppet::TestIndirectedFoo.find('bar').should be_nil
|
82
125
|
end
|
83
126
|
end
|
84
|
-
|
127
|
+
|
85
128
|
describe "when an exception is encountered in looking up a model instance" do
|
86
129
|
before :each do
|
87
|
-
@mock_model = stub('faked model')
|
130
|
+
@mock_model = stub('faked model', :name => "foo")
|
88
131
|
@mock_model.stubs(:find).raises(RuntimeError)
|
89
|
-
Puppet::
|
132
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
90
133
|
end
|
91
|
-
|
134
|
+
|
92
135
|
it "should raise an exception" do
|
93
|
-
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(
|
136
|
+
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
|
94
137
|
end
|
95
138
|
end
|
96
139
|
end
|
@@ -99,57 +142,58 @@ describe Puppet::Indirector::REST do
|
|
99
142
|
describe "when matching model instances can be found" do
|
100
143
|
before :each do
|
101
144
|
@model_instances = [ Puppet::TestIndirectedFoo.new(23), Puppet::TestIndirectedFoo.new(24) ]
|
102
|
-
@mock_model
|
103
|
-
|
145
|
+
@mock_model.stubs(:search).returns @model_instances
|
146
|
+
|
147
|
+
# Force yaml, because otherwise our mocks can't work correctly
|
148
|
+
Puppet::TestIndirectedFoo.stubs(:supported_formats).returns %w{yaml}
|
149
|
+
|
150
|
+
@mock_model.stubs(:render_multiple).returns @model_instances.to_yaml
|
104
151
|
end
|
105
|
-
|
152
|
+
|
106
153
|
it "should not fail" do
|
107
154
|
lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
|
108
155
|
end
|
109
|
-
|
156
|
+
|
110
157
|
it 'should return all matching results' do
|
111
158
|
Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
|
112
159
|
end
|
113
|
-
|
160
|
+
|
161
|
+
it "should pass options all the way through" do
|
162
|
+
@mock_model.expects(:search).with { |key, args| args[:one] == "two" and args[:three] == "four" }.returns @model_instances
|
163
|
+
Puppet::TestIndirectedFoo.search("foo", :one => "two", :three => "four")
|
164
|
+
end
|
165
|
+
|
114
166
|
it 'should return model instances' do
|
115
|
-
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
167
|
+
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
116
168
|
result.class.should == Puppet::TestIndirectedFoo
|
117
169
|
end
|
118
170
|
end
|
119
|
-
|
171
|
+
|
120
172
|
it 'should return the instance of the model class associated with the provided lookup key' do
|
121
173
|
Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
|
122
174
|
end
|
123
|
-
|
124
|
-
it 'should set a version timestamp on model instances' do
|
125
|
-
pending("Luke looking at why this version magic might not be working") do
|
126
|
-
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
127
|
-
result.version.should_not be_nil
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
175
|
end
|
132
|
-
|
176
|
+
|
133
177
|
describe "when no matching model instance can be found" do
|
134
178
|
before :each do
|
135
|
-
@mock_model = stub('faked model', :find => nil)
|
136
|
-
Puppet::
|
179
|
+
@mock_model = stub('faked model', :name => "foo", :find => nil)
|
180
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
137
181
|
end
|
138
|
-
|
182
|
+
|
139
183
|
it "should return nil" do
|
140
184
|
Puppet::TestIndirectedFoo.find('bar').should be_nil
|
141
185
|
end
|
142
186
|
end
|
143
|
-
|
187
|
+
|
144
188
|
describe "when an exception is encountered in looking up a model instance" do
|
145
189
|
before :each do
|
146
190
|
@mock_model = stub('faked model')
|
147
191
|
@mock_model.stubs(:find).raises(RuntimeError)
|
148
|
-
Puppet::
|
192
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
149
193
|
end
|
150
|
-
|
194
|
+
|
151
195
|
it "should raise an exception" do
|
152
|
-
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(
|
196
|
+
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
|
153
197
|
end
|
154
198
|
end
|
155
199
|
end
|
@@ -157,39 +201,35 @@ describe Puppet::Indirector::REST do
|
|
157
201
|
describe "when destroying a model instance over REST" do
|
158
202
|
describe "when a matching model instance can be found" do
|
159
203
|
before :each do
|
160
|
-
@mock_model
|
161
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
|
204
|
+
@mock_model.stubs(:destroy).returns true
|
162
205
|
end
|
163
|
-
|
206
|
+
|
164
207
|
it "should not fail" do
|
165
208
|
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
|
166
209
|
end
|
167
|
-
|
210
|
+
|
168
211
|
it 'should return success' do
|
169
212
|
Puppet::TestIndirectedFoo.destroy('bar').should == true
|
170
213
|
end
|
171
214
|
end
|
172
|
-
|
215
|
+
|
173
216
|
describe "when no matching model instance can be found" do
|
174
217
|
before :each do
|
175
|
-
@mock_model
|
176
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
|
218
|
+
@mock_model.stubs(:destroy).returns false
|
177
219
|
end
|
178
|
-
|
220
|
+
|
179
221
|
it "should return failure" do
|
180
222
|
Puppet::TestIndirectedFoo.destroy('bar').should == false
|
181
223
|
end
|
182
224
|
end
|
183
|
-
|
225
|
+
|
184
226
|
describe "when an exception is encountered in destroying a model instance" do
|
185
227
|
before :each do
|
186
|
-
@mock_model = stub('faked model')
|
187
228
|
@mock_model.stubs(:destroy).raises(RuntimeError)
|
188
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
|
189
229
|
end
|
190
|
-
|
230
|
+
|
191
231
|
it "should raise an exception" do
|
192
|
-
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(
|
232
|
+
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError)
|
193
233
|
end
|
194
234
|
end
|
195
235
|
end
|
@@ -197,45 +237,45 @@ describe Puppet::Indirector::REST do
|
|
197
237
|
describe "when saving a model instance over REST" do
|
198
238
|
before :each do
|
199
239
|
@instance = Puppet::TestIndirectedFoo.new(42)
|
200
|
-
@mock_model
|
201
|
-
|
202
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(@instance)
|
240
|
+
@mock_model.stubs(:save_object).returns @instance
|
241
|
+
@mock_model.stubs(:convert_from).returns @instance
|
242
|
+
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(@instance)
|
203
243
|
end
|
204
|
-
|
244
|
+
|
205
245
|
describe "when a successful save can be performed" do
|
206
246
|
before :each do
|
207
247
|
end
|
208
|
-
|
248
|
+
|
209
249
|
it "should not fail" do
|
210
250
|
lambda { @instance.save }.should_not raise_error
|
211
251
|
end
|
212
|
-
|
252
|
+
|
213
253
|
it 'should return an instance of the model class' do
|
214
254
|
@instance.save.class.should == Puppet::TestIndirectedFoo
|
215
255
|
end
|
216
|
-
|
256
|
+
|
217
257
|
it 'should return a matching instance of the model class' do
|
218
258
|
@instance.save.value.should == @instance.value
|
219
259
|
end
|
220
260
|
end
|
221
|
-
|
261
|
+
|
222
262
|
describe "when a save cannot be completed" do
|
223
263
|
before :each do
|
224
264
|
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(false)
|
225
265
|
end
|
226
|
-
|
266
|
+
|
227
267
|
it "should return failure" do
|
228
268
|
@instance.save.should == false
|
229
269
|
end
|
230
270
|
end
|
231
|
-
|
271
|
+
|
232
272
|
describe "when an exception is encountered in performing a save" do
|
233
273
|
before :each do
|
234
|
-
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).raises(RuntimeError)
|
274
|
+
Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).raises(RuntimeError)
|
235
275
|
end
|
236
|
-
|
276
|
+
|
237
277
|
it "should raise an exception" do
|
238
|
-
lambda { @instance.save }.should raise_error(
|
278
|
+
lambda { @instance.save }.should raise_error(Net::HTTPError)
|
239
279
|
end
|
240
280
|
end
|
241
281
|
end
|
@@ -247,66 +287,88 @@ describe Puppet::Indirector::REST do
|
|
247
287
|
|
248
288
|
describe "when using mongrel" do
|
249
289
|
confine "Mongrel is not available" => Puppet.features.mongrel?
|
250
|
-
|
290
|
+
|
251
291
|
before :each do
|
252
292
|
Puppet[:servertype] = 'mongrel'
|
253
|
-
@params = { :
|
293
|
+
@params = { :port => 34343, :handlers => [ :test_indirected_foo ] }
|
294
|
+
|
295
|
+
# Make sure we never get a cert, since mongrel can't speak ssl
|
296
|
+
Puppet::SSL::Certificate.stubs(:find).returns nil
|
297
|
+
|
298
|
+
# We stub ssl to be off, since mongrel can't speak ssl
|
299
|
+
Net::HTTP.any_instance.stubs(:use_ssl?).returns false
|
300
|
+
|
254
301
|
@server = Puppet::Network::Server.new(@params)
|
255
302
|
@server.listen
|
256
303
|
|
257
|
-
#
|
258
|
-
|
259
|
-
|
304
|
+
# LAK:NOTE We need to have a fake model here so that our indirected methods get
|
305
|
+
# passed through REST; otherwise we'd be stubbing 'find', which would cause an immediate
|
306
|
+
# return.
|
307
|
+
@mock_model = stub('faked model', :name => "foo")
|
308
|
+
Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
|
309
|
+
|
310
|
+
# do not trigger the authorization layer
|
311
|
+
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:check_authorization).returns(true)
|
312
|
+
end
|
260
313
|
|
261
|
-
|
262
|
-
|
314
|
+
after do
|
315
|
+
@server.unlisten
|
263
316
|
end
|
264
|
-
|
317
|
+
|
265
318
|
describe "when finding a model instance over REST" do
|
266
319
|
describe "when a matching model instance can be found" do
|
267
320
|
before :each do
|
268
321
|
@model_instance = Puppet::TestIndirectedFoo.new(23)
|
269
|
-
@mock_model
|
270
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
322
|
+
@mock_model.stubs(:find).returns @model_instance
|
271
323
|
end
|
272
|
-
|
324
|
+
|
273
325
|
it "should not fail" do
|
274
326
|
lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
|
275
327
|
end
|
276
|
-
|
328
|
+
|
277
329
|
it 'should return an instance of the model class' do
|
278
330
|
Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
|
279
331
|
end
|
280
|
-
|
332
|
+
|
333
|
+
it "should pass options all the way through" do
|
334
|
+
@mock_model.expects(:find).with { |key, args| args[:one] == "two" and args[:three] == "four" }.returns @model_instance
|
335
|
+
Puppet::TestIndirectedFoo.find('bar', :one => "two", :three => "four")
|
336
|
+
end
|
337
|
+
|
281
338
|
it 'should return the instance of the model class associated with the provided lookup key' do
|
282
339
|
Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
|
283
340
|
end
|
284
|
-
|
341
|
+
|
285
342
|
it 'should set an expiration on model instance' do
|
286
343
|
Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
|
287
344
|
end
|
345
|
+
|
346
|
+
it "should use a supported format" do
|
347
|
+
Puppet::TestIndirectedFoo.expects(:supported_formats).returns ["marshal"]
|
348
|
+
format = stub 'format'
|
349
|
+
text = Marshal.dump(@model_instance)
|
350
|
+
@model_instance.expects(:render).with(Puppet::Network::FormatHandler.format("marshal")).returns text
|
351
|
+
Puppet::TestIndirectedFoo.find('bar')
|
352
|
+
end
|
288
353
|
end
|
289
|
-
|
354
|
+
|
290
355
|
describe "when no matching model instance can be found" do
|
291
356
|
before :each do
|
292
|
-
@mock_model
|
293
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
357
|
+
@mock_model.stubs(:find).returns nil
|
294
358
|
end
|
295
|
-
|
359
|
+
|
296
360
|
it "should return nil" do
|
297
361
|
Puppet::TestIndirectedFoo.find('bar').should be_nil
|
298
362
|
end
|
299
363
|
end
|
300
|
-
|
364
|
+
|
301
365
|
describe "when an exception is encountered in looking up a model instance" do
|
302
366
|
before :each do
|
303
|
-
@mock_model = stub('faked model')
|
304
367
|
@mock_model.stubs(:find).raises(RuntimeError)
|
305
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
306
368
|
end
|
307
|
-
|
369
|
+
|
308
370
|
it "should raise an exception" do
|
309
|
-
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(
|
371
|
+
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
|
310
372
|
end
|
311
373
|
end
|
312
374
|
end
|
@@ -315,55 +377,62 @@ describe Puppet::Indirector::REST do
|
|
315
377
|
describe "when matching model instances can be found" do
|
316
378
|
before :each do
|
317
379
|
@model_instances = [ Puppet::TestIndirectedFoo.new(23), Puppet::TestIndirectedFoo.new(24) ]
|
318
|
-
|
319
|
-
|
380
|
+
|
381
|
+
# Force yaml, because otherwise our mocks can't work correctly
|
382
|
+
Puppet::TestIndirectedFoo.stubs(:supported_formats).returns %w{yaml}
|
383
|
+
|
384
|
+
@mock_model.stubs(:search).returns @model_instances
|
385
|
+
@mock_model.stubs(:render_multiple).returns @model_instances.to_yaml
|
320
386
|
end
|
321
|
-
|
387
|
+
|
322
388
|
it "should not fail" do
|
323
389
|
lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
|
324
390
|
end
|
325
|
-
|
391
|
+
|
326
392
|
it 'should return all matching results' do
|
327
393
|
Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
|
328
394
|
end
|
329
|
-
|
395
|
+
|
396
|
+
it "should pass options all the way through" do
|
397
|
+
@mock_model.expects(:search).with { |key, args| args[:one] == "two" and args[:three] == "four" }.returns @model_instances
|
398
|
+
Puppet::TestIndirectedFoo.search('bar', :one => "two", :three => "four")
|
399
|
+
end
|
400
|
+
|
330
401
|
it 'should return model instances' do
|
331
|
-
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
402
|
+
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
332
403
|
result.class.should == Puppet::TestIndirectedFoo
|
333
404
|
end
|
334
405
|
end
|
335
|
-
|
406
|
+
|
336
407
|
it 'should return the instance of the model class associated with the provided lookup key' do
|
337
408
|
Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
|
338
409
|
end
|
339
|
-
|
410
|
+
|
340
411
|
it 'should set an expiration on model instances' do
|
341
412
|
Puppet::TestIndirectedFoo.search('bar').each do |result|
|
342
413
|
result.expiration.should_not be_nil
|
343
414
|
end
|
344
415
|
end
|
345
416
|
end
|
346
|
-
|
417
|
+
|
347
418
|
describe "when no matching model instance can be found" do
|
348
419
|
before :each do
|
349
|
-
@mock_model
|
350
|
-
|
420
|
+
@mock_model.stubs(:search).returns nil
|
421
|
+
@mock_model.stubs(:render_multiple).returns nil.to_yaml
|
351
422
|
end
|
352
|
-
|
423
|
+
|
353
424
|
it "should return nil" do
|
354
|
-
Puppet::TestIndirectedFoo.
|
425
|
+
Puppet::TestIndirectedFoo.search('bar').should == []
|
355
426
|
end
|
356
427
|
end
|
357
|
-
|
428
|
+
|
358
429
|
describe "when an exception is encountered in looking up a model instance" do
|
359
430
|
before :each do
|
360
|
-
@mock_model = stub('faked model')
|
361
431
|
@mock_model.stubs(:find).raises(RuntimeError)
|
362
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
363
432
|
end
|
364
|
-
|
433
|
+
|
365
434
|
it "should raise an exception" do
|
366
|
-
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(
|
435
|
+
lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
|
367
436
|
end
|
368
437
|
end
|
369
438
|
end
|
@@ -371,39 +440,35 @@ describe Puppet::Indirector::REST do
|
|
371
440
|
describe "when destroying a model instance over REST" do
|
372
441
|
describe "when a matching model instance can be found" do
|
373
442
|
before :each do
|
374
|
-
@mock_model
|
375
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
443
|
+
@mock_model.stubs(:destroy).returns true
|
376
444
|
end
|
377
|
-
|
445
|
+
|
378
446
|
it "should not fail" do
|
379
447
|
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
|
380
448
|
end
|
381
|
-
|
449
|
+
|
382
450
|
it 'should return success' do
|
383
451
|
Puppet::TestIndirectedFoo.destroy('bar').should == true
|
384
452
|
end
|
385
453
|
end
|
386
|
-
|
454
|
+
|
387
455
|
describe "when no matching model instance can be found" do
|
388
456
|
before :each do
|
389
|
-
@mock_model
|
390
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
457
|
+
@mock_model.stubs(:destroy).returns false
|
391
458
|
end
|
392
|
-
|
459
|
+
|
393
460
|
it "should return failure" do
|
394
461
|
Puppet::TestIndirectedFoo.destroy('bar').should == false
|
395
462
|
end
|
396
463
|
end
|
397
|
-
|
464
|
+
|
398
465
|
describe "when an exception is encountered in destroying a model instance" do
|
399
466
|
before :each do
|
400
|
-
@mock_model = stub('faked model')
|
401
467
|
@mock_model.stubs(:destroy).raises(RuntimeError)
|
402
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
403
468
|
end
|
404
|
-
|
469
|
+
|
405
470
|
it "should raise an exception" do
|
406
|
-
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(
|
471
|
+
lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError)
|
407
472
|
end
|
408
473
|
end
|
409
474
|
end
|
@@ -411,54 +476,49 @@ describe Puppet::Indirector::REST do
|
|
411
476
|
describe "when saving a model instance over REST" do
|
412
477
|
before :each do
|
413
478
|
@instance = Puppet::TestIndirectedFoo.new(42)
|
414
|
-
@mock_model
|
415
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
|
479
|
+
@mock_model.stubs(:convert_from).returns @instance
|
416
480
|
|
417
481
|
# LAK:NOTE This stub is necessary to prevent the REST call from calling
|
418
482
|
# REST.save again, thus producing painful infinite recursion.
|
419
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(@instance)
|
483
|
+
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(@instance)
|
420
484
|
end
|
421
|
-
|
485
|
+
|
422
486
|
describe "when a successful save can be performed" do
|
423
487
|
before :each do
|
424
488
|
end
|
425
|
-
|
489
|
+
|
426
490
|
it "should not fail" do
|
427
491
|
lambda { @instance.save }.should_not raise_error
|
428
492
|
end
|
429
|
-
|
493
|
+
|
430
494
|
it 'should return an instance of the model class' do
|
431
495
|
@instance.save.class.should == Puppet::TestIndirectedFoo
|
432
496
|
end
|
433
|
-
|
497
|
+
|
434
498
|
it 'should return a matching instance of the model class' do
|
435
499
|
@instance.save.value.should == @instance.value
|
436
500
|
end
|
437
501
|
end
|
438
|
-
|
502
|
+
|
439
503
|
describe "when a save cannot be completed" do
|
440
504
|
before :each do
|
441
505
|
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(false)
|
442
506
|
end
|
443
|
-
|
507
|
+
|
444
508
|
it "should return failure" do
|
445
509
|
@instance.save.should == false
|
446
510
|
end
|
447
511
|
end
|
448
|
-
|
512
|
+
|
449
513
|
describe "when an exception is encountered in performing a save" do
|
450
514
|
before :each do
|
451
|
-
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).raises(RuntimeError)
|
515
|
+
Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).raises(RuntimeError)
|
452
516
|
end
|
453
|
-
|
517
|
+
|
454
518
|
it "should raise an exception" do
|
455
|
-
lambda { @instance.save }.should raise_error(
|
519
|
+
lambda { @instance.save }.should raise_error(Net::HTTPError)
|
456
520
|
end
|
457
521
|
end
|
458
522
|
end
|
459
|
-
|
460
|
-
after :each do
|
461
|
-
@server.unlisten
|
462
|
-
end
|
463
523
|
end
|
464
524
|
end
|