puppet 0.23.2 → 0.24.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 +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'puppettest'
|
2
2
|
|
3
|
-
module PuppetTest
|
3
|
+
module PuppetTest::Support
|
4
|
+
end
|
5
|
+
module PuppetTest::Support::Utils
|
4
6
|
def gcdebug(type)
|
5
7
|
Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
|
6
8
|
end
|
@@ -19,6 +21,25 @@ module PuppetTest
|
|
19
21
|
}
|
20
22
|
end
|
21
23
|
|
24
|
+
# Turn a list of resources, or possibly a catalog and some resources,
|
25
|
+
# into a catalog object.
|
26
|
+
def resources2catalog(*resources)
|
27
|
+
if resources[0].is_a?(Puppet::Node::Catalog)
|
28
|
+
config = resources.shift
|
29
|
+
unless resources.empty?
|
30
|
+
resources.each { |r| config.add_resource r }
|
31
|
+
end
|
32
|
+
elsif resources[0].is_a?(Puppet.type(:component))
|
33
|
+
raise ArgumentError, "resource2config() no longer accpts components"
|
34
|
+
comp = resources.shift
|
35
|
+
comp.delve
|
36
|
+
else
|
37
|
+
config = Puppet::Node::Catalog.new
|
38
|
+
resources.each { |res| config.add_resource res }
|
39
|
+
end
|
40
|
+
return config
|
41
|
+
end
|
42
|
+
|
22
43
|
# stop any services that might be hanging around
|
23
44
|
def stopservices
|
24
45
|
if stype = Puppet::Type.type(:service)
|
@@ -31,6 +52,7 @@ module PuppetTest
|
|
31
52
|
|
32
53
|
# TODO: rewrite this to use the 'etc' module.
|
33
54
|
|
55
|
+
# Define a variable that contains the name of my user.
|
34
56
|
def setme
|
35
57
|
# retrieve the user name
|
36
58
|
id = %x{id}.chomp
|
@@ -44,6 +66,16 @@ module PuppetTest
|
|
44
66
|
end
|
45
67
|
end
|
46
68
|
|
69
|
+
# Define a variable that contains a group I'm in.
|
70
|
+
def set_mygroup
|
71
|
+
# retrieve the user name
|
72
|
+
group = %x{groups}.chomp.split(/ /)[0]
|
73
|
+
unless group
|
74
|
+
raise "Could not find group to set in @mygroup"
|
75
|
+
end
|
76
|
+
@mygroup = group
|
77
|
+
end
|
78
|
+
|
47
79
|
def run_events(type, trans, events, msg)
|
48
80
|
case type
|
49
81
|
when :evaluate, :rollback: # things are hunky-dory
|
@@ -82,7 +114,7 @@ module PuppetTest
|
|
82
114
|
end
|
83
115
|
|
84
116
|
def fakefile(name)
|
85
|
-
ary = [basedir, "test"]
|
117
|
+
ary = [PuppetTest.basedir, "test"]
|
86
118
|
ary += name.split("/")
|
87
119
|
file = File.join(ary)
|
88
120
|
unless FileTest.exists?(file)
|
@@ -127,34 +159,20 @@ module PuppetTest
|
|
127
159
|
}
|
128
160
|
end
|
129
161
|
|
130
|
-
def
|
131
|
-
|
132
|
-
|
133
|
-
name = ary.shift
|
162
|
+
def mk_catalog(*resources)
|
163
|
+
if resources[0].is_a?(String)
|
164
|
+
name = resources.shift
|
134
165
|
else
|
135
|
-
name =
|
166
|
+
name = :testing
|
136
167
|
end
|
137
|
-
|
138
|
-
|
139
|
-
ary.each { |item|
|
140
|
-
comp.push item
|
141
|
-
}
|
142
|
-
|
143
|
-
return comp
|
144
|
-
end
|
145
|
-
|
146
|
-
def setme
|
147
|
-
# retrieve the user name
|
148
|
-
id = %x{id}.chomp
|
149
|
-
if id =~ /uid=\d+\(([^\)]+)\)/
|
150
|
-
@me = $1
|
151
|
-
else
|
152
|
-
puts id
|
153
|
-
end
|
154
|
-
unless defined? @me
|
155
|
-
raise "Could not retrieve user name; 'id' did not work"
|
168
|
+
config = Puppet::Node::Catalog.new :testing do |conf|
|
169
|
+
resources.each { |resource| conf.add_resource resource }
|
156
170
|
end
|
171
|
+
|
172
|
+
return config
|
157
173
|
end
|
158
174
|
end
|
159
175
|
|
160
|
-
|
176
|
+
module PuppetTest
|
177
|
+
include PuppetTest::Support::Utils
|
178
|
+
end
|
@@ -4,28 +4,11 @@
|
|
4
4
|
# Copyright (c) 2007. All rights reserved.
|
5
5
|
|
6
6
|
require 'puppettest'
|
7
|
+
require 'puppettest/runnable_test'
|
7
8
|
|
8
9
|
class PuppetTest::TestCase < Test::Unit::TestCase
|
9
10
|
include PuppetTest
|
10
|
-
|
11
|
-
@confines ||= {}
|
12
|
-
hash.each do |message, result|
|
13
|
-
@confines[message] = result
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.runnable?
|
18
|
-
@messages ||= []
|
19
|
-
return false unless @messages.empty?
|
20
|
-
return true unless defined? @confines
|
21
|
-
@confines.find_all do |message, result|
|
22
|
-
! result
|
23
|
-
end.each do |message, result|
|
24
|
-
@messages << message
|
25
|
-
end
|
26
|
-
|
27
|
-
return @messages.empty?
|
28
|
-
end
|
11
|
+
extend PuppetTest::RunnableTest
|
29
12
|
|
30
13
|
def self.suite
|
31
14
|
# Always skip this parent class. It'd be nice if there were a
|
@@ -44,5 +27,3 @@ class PuppetTest::TestCase < Test::Unit::TestCase
|
|
44
27
|
end
|
45
28
|
end
|
46
29
|
end
|
47
|
-
|
48
|
-
# $Id: testcase.rb 2267 2007-03-08 06:03:36Z luke $
|
data/test/network/authconfig.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
|
@@ -68,5 +68,4 @@ class TestAuthConfig < Test::Unit::TestCase
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
# $Id: authconfig.rb 2259 2007-03-06 19:03:05Z luke $
|
72
71
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'puppet/network/authorization'
|
@@ -134,5 +134,4 @@ class TestAuthConfig < Test::Unit::TestCase
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
-
# $Id: authorization.rb 2259 2007-03-06 19:03:05Z luke $
|
138
137
|
|
data/test/network/authstore.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'mocha'
|
@@ -446,5 +446,4 @@ class TestAuthStoreDeclaration < PuppetTest::TestCase
|
|
446
446
|
end
|
447
447
|
end
|
448
448
|
|
449
|
-
# $Id: authstore.rb 2262 2007-03-08 00:16:53Z luke $
|
450
449
|
|
data/test/network/client/ca.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../../lib/puppettest'
|
4
4
|
|
5
5
|
require 'mocha'
|
6
6
|
require 'puppettest'
|
@@ -11,6 +11,7 @@ class TestClientCA < Test::Unit::TestCase
|
|
11
11
|
include PuppetTest::ServerTest
|
12
12
|
|
13
13
|
def setup
|
14
|
+
Puppet::Util::SUIDManager.stubs(:asuser).yields
|
14
15
|
super
|
15
16
|
@ca = Puppet::Network::Handler.ca.new
|
16
17
|
@client = Puppet::Network::Client.ca.new :CA => @ca
|
@@ -22,17 +23,22 @@ class TestClientCA < Test::Unit::TestCase
|
|
22
23
|
end
|
23
24
|
|
24
25
|
[:hostprivkey, :hostcert, :localcacert].each do |name|
|
25
|
-
assert(FileTest.exists?(Puppet.
|
26
|
+
assert(FileTest.exists?(Puppet.settings[name]),
|
26
27
|
"Did not create cert %s" % name)
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
30
31
|
# Make sure the ca defaults to specific ports and names
|
31
32
|
def test_ca_server
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
Puppet.settings.expects(:value).with(:ca_server).returns("myca")
|
34
|
+
Puppet.settings.expects(:value).with(:ca_port).returns(321)
|
35
|
+
Puppet.settings.stubs(:value).with(:http_proxy_host).returns(nil)
|
36
|
+
Puppet.settings.stubs(:value).with(:http_proxy_port).returns(nil)
|
37
|
+
Puppet.settings.stubs(:value).with(:http_keepalive).returns(false)
|
38
|
+
|
39
|
+
# Just throw an error; the important thing is the values, not what happens next.
|
40
|
+
Net::HTTP.stubs(:new).with("myca", 321, nil, nil).raises(ArgumentError)
|
41
|
+
assert_raise(ArgumentError) { Puppet::Network::Client.ca.new }
|
36
42
|
end
|
37
43
|
|
38
44
|
# #578
|
@@ -61,4 +67,3 @@ class TestClientCA < Test::Unit::TestCase
|
|
61
67
|
end
|
62
68
|
end
|
63
69
|
|
64
|
-
# $Id: ca.rb 2612 2007-06-18 19:51:17Z luke $
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'mocha'
|
@@ -46,13 +46,13 @@ class TestClient < Test::Unit::TestCase
|
|
46
46
|
assert(File.exists?(certfile))
|
47
47
|
assert(File.exists?(publickeyfile))
|
48
48
|
|
49
|
-
# verify we can retrieve the
|
50
|
-
assert_nothing_raised("Client could not retrieve
|
49
|
+
# verify we can retrieve the catalog
|
50
|
+
assert_nothing_raised("Client could not retrieve catalog") {
|
51
51
|
client.getconfig
|
52
52
|
}
|
53
53
|
|
54
54
|
# and apply it
|
55
|
-
assert_nothing_raised("Client could not apply
|
55
|
+
assert_nothing_raised("Client could not apply catalog") {
|
56
56
|
client.apply
|
57
57
|
}
|
58
58
|
|
@@ -113,9 +113,9 @@ class TestClient < Test::Unit::TestCase
|
|
113
113
|
# Create a new ssl root.
|
114
114
|
confdir = tempfile()
|
115
115
|
Puppet[:ssldir] = confdir
|
116
|
-
Puppet.
|
117
|
-
Puppet.
|
118
|
-
Puppet.
|
116
|
+
Puppet.settings.mkdir(:ssldir)
|
117
|
+
Puppet.settings.clearused
|
118
|
+
Puppet.settings.use(:ssl, :ca)
|
119
119
|
|
120
120
|
mkserver
|
121
121
|
|
@@ -141,17 +141,13 @@ class TestClient < Test::Unit::TestCase
|
|
141
141
|
end
|
142
142
|
|
143
143
|
def test_classfile
|
144
|
-
|
144
|
+
Puppet[:code] = "class yaytest {}\n class bootest {}\n include yaytest, bootest"
|
145
145
|
|
146
|
-
|
147
|
-
file.puts "class yaytest {}\n class bootest {}\n include yaytest, bootest"
|
148
|
-
end
|
146
|
+
Puppet::Node::Facts.indirection.stubs(:save)
|
149
147
|
|
150
148
|
master = client = nil
|
151
149
|
assert_nothing_raised() {
|
152
150
|
master = Puppet::Network::Handler.master.new(
|
153
|
-
:Manifest => manifest,
|
154
|
-
:UseNodes => false,
|
155
151
|
:Local => false
|
156
152
|
)
|
157
153
|
}
|
@@ -164,15 +160,13 @@ class TestClient < Test::Unit::TestCase
|
|
164
160
|
# Fake that it's local, so it creates the class file
|
165
161
|
client.local = false
|
166
162
|
|
163
|
+
# We can't guarantee class ordering
|
164
|
+
client.expects(:setclasses).with do |array|
|
165
|
+
array.length == 2 and array.include?("yaytest") and array.include?("bootest")
|
166
|
+
end
|
167
167
|
assert_nothing_raised {
|
168
168
|
client.getconfig
|
169
169
|
}
|
170
|
-
|
171
|
-
assert(FileTest.exists?(Puppet[:classfile]), "Class file does not exist")
|
172
|
-
|
173
|
-
classes = File.read(Puppet[:classfile]).split("\n")
|
174
|
-
|
175
|
-
assert_equal(%w{bootest yaytest}, classes.sort)
|
176
170
|
end
|
177
171
|
|
178
172
|
def test_client_loading
|
@@ -230,6 +224,8 @@ class TestClient < Test::Unit::TestCase
|
|
230
224
|
|
231
225
|
# Make sure that reading the cert in also sets up the cert stuff for the driver
|
232
226
|
def test_read_cert
|
227
|
+
Puppet::Util::SUIDManager.stubs(:asuser).yields
|
228
|
+
|
233
229
|
ca = Puppet::Network::Handler.ca.new
|
234
230
|
caclient = Puppet::Network::Client.ca.new :CA => ca
|
235
231
|
|
@@ -247,8 +243,8 @@ class TestClient < Test::Unit::TestCase
|
|
247
243
|
client = FakeClient.new :Test => FakeDriver.new
|
248
244
|
|
249
245
|
driver = client.driver
|
250
|
-
driver.meta_def(:
|
251
|
-
driver.expects(:
|
246
|
+
driver.meta_def(:recycle_connection) { |c| }
|
247
|
+
driver.expects(:recycle_connection).with(client)
|
252
248
|
|
253
249
|
assert_nothing_raised("Could not read cert") do
|
254
250
|
client.read_cert
|
@@ -256,4 +252,3 @@ class TestClient < Test::Unit::TestCase
|
|
256
252
|
end
|
257
253
|
end
|
258
254
|
|
259
|
-
# $Id: client.rb 2497 2007-05-09 16:21:56Z luke $
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'puppet/network/client/resource'
|
@@ -32,4 +32,3 @@ class TestDipperClient < Test::Unit::TestCase
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
# $Id: dipper.rb 2348 2007-03-24 21:16:20Z luke $
|
@@ -1,213 +1,65 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'mocha'
|
7
7
|
|
8
8
|
class TestMasterClient < Test::Unit::TestCase
|
9
9
|
include PuppetTest::ServerTest
|
10
|
-
|
11
|
-
class FakeTrans
|
12
|
-
def initialize
|
13
|
-
@counters = Hash.new { |h,k| h[k] = 0 }
|
14
|
-
end
|
15
|
-
[:evaluate, :report, :cleanup, :addtimes, :tags, :ignoreschedules].each do |m|
|
16
|
-
define_method(m.to_s + "=") do |*args|
|
17
|
-
@counters[m] += 1
|
18
|
-
end
|
19
|
-
define_method(m) do |*args|
|
20
|
-
@counters[m] += 1
|
21
|
-
end
|
22
|
-
define_method(m.to_s + "?") do
|
23
|
-
@counters[m]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
class FakeComponent
|
28
|
-
attr_accessor :trans
|
29
|
-
def evaluate
|
30
|
-
@trans = FakeTrans.new
|
31
|
-
@trans
|
32
|
-
end
|
33
|
-
|
34
|
-
def finalize
|
35
|
-
@finalized = true
|
36
|
-
end
|
37
|
-
|
38
|
-
def finalized?
|
39
|
-
@finalized
|
40
|
-
end
|
41
|
-
end
|
42
10
|
|
43
11
|
def setup
|
44
12
|
super
|
45
13
|
@master = Puppet::Network::Client.master
|
46
14
|
end
|
47
15
|
|
48
|
-
def mkmaster(
|
49
|
-
|
50
|
-
|
51
|
-
|
16
|
+
def mkmaster(options = {})
|
17
|
+
options[:UseNodes] = false
|
18
|
+
options[:Local] = true
|
19
|
+
if code = options[:Code]
|
20
|
+
Puppet[:code] = code
|
21
|
+
else
|
22
|
+
Puppet[:manifest] = options[:Manifest] || mktestmanifest
|
23
|
+
end
|
52
24
|
# create our master
|
53
|
-
|
54
|
-
|
55
|
-
master = Puppet::Network::Handler.master.new(
|
56
|
-
:Manifest => file,
|
57
|
-
:UseNodes => false,
|
58
|
-
:Local => true
|
59
|
-
)
|
60
|
-
}
|
25
|
+
# this is the default server setup
|
26
|
+
master = Puppet::Network::Handler.master.new(options)
|
61
27
|
return master
|
62
28
|
end
|
63
29
|
|
64
30
|
def mkclient(master = nil)
|
65
31
|
master ||= mkmaster()
|
66
|
-
client =
|
67
|
-
|
68
|
-
|
69
|
-
:Master => master
|
70
|
-
)
|
71
|
-
}
|
32
|
+
client = Puppet::Network::Client.master.new(
|
33
|
+
:Master => master
|
34
|
+
)
|
72
35
|
|
73
36
|
return client
|
74
37
|
end
|
75
|
-
|
76
|
-
def mk_fake_client
|
77
|
-
server = Puppet::Network::Handler.master.new :Code => ""
|
78
|
-
master = Puppet::Network::Client.master.new :Server => server, :Local => true
|
79
|
-
|
80
|
-
# Now create some objects
|
81
|
-
objects = FakeComponent.new
|
82
|
-
|
83
|
-
master.send(:instance_variable_set, "@objects", objects)
|
84
|
-
|
85
|
-
class << master
|
86
|
-
def report(r)
|
87
|
-
@reported ||= 0
|
88
|
-
@reported += 1
|
89
|
-
end
|
90
|
-
def reported
|
91
|
-
@reported ||= 0
|
92
|
-
@reported
|
93
|
-
end
|
94
|
-
end
|
95
|
-
return master, objects
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_apply
|
99
|
-
master, objects = mk_fake_client
|
100
|
-
|
101
|
-
check = Proc.new do |hash|
|
102
|
-
assert(objects.trans, "transaction was not created")
|
103
|
-
trans = objects.trans
|
104
|
-
hash[:yes].each do |m|
|
105
|
-
assert_equal(1, trans.send(m.to_s + "?"), "did not call #{m} enough times")
|
106
|
-
end
|
107
|
-
hash[:no].each do |m|
|
108
|
-
assert_equal(0, trans.send(m.to_s + "?"), "called #{m} too many times")
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
# First try it with no arguments
|
113
|
-
assert_nothing_raised do
|
114
|
-
master.apply
|
115
|
-
end
|
116
|
-
check.call :yes => %w{evaluate cleanup addtimes}, :no => %w{report tags ignoreschedules}
|
117
|
-
assert_equal(0, master.reported, "master sent report with reports disabled")
|
118
|
-
|
119
|
-
|
120
|
-
# Now enable reporting and make sure the report method gets called
|
121
|
-
Puppet[:report] = true
|
122
|
-
assert_nothing_raised do
|
123
|
-
master.apply
|
124
|
-
end
|
125
|
-
check.call :yes => %w{evaluate cleanup addtimes}, :no => %w{tags ignoreschedules}
|
126
|
-
assert_equal(1, master.reported, "master did not send report")
|
127
|
-
|
128
|
-
# Now try it with tags enabled
|
129
|
-
assert_nothing_raised do
|
130
|
-
master.apply("tags")
|
131
|
-
end
|
132
|
-
check.call :yes => %w{evaluate cleanup tags addtimes}, :no => %w{ignoreschedules}
|
133
|
-
assert_equal(2, master.reported, "master did not send report")
|
134
|
-
|
135
|
-
# and ignoreschedules
|
136
|
-
assert_nothing_raised do
|
137
|
-
master.apply("tags", true)
|
138
|
-
end
|
139
|
-
check.call :yes => %w{evaluate cleanup tags ignoreschedules addtimes}, :no => %w{}
|
140
|
-
assert_equal(3, master.reported, "master did not send report")
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_getconfig
|
144
|
-
client = mkclient
|
145
|
-
|
146
|
-
$methodsrun = []
|
147
|
-
cleanup { $methodsrun = nil }
|
148
|
-
client.meta_def(:getplugins) do
|
149
|
-
$methodsrun << :getplugins
|
150
|
-
end
|
151
|
-
client.meta_def(:get_actual_config) do
|
152
|
-
$methodsrun << :get_actual_config
|
153
|
-
result = Puppet::TransBucket.new()
|
154
|
-
result.type = "testing"
|
155
|
-
result.name = "yayness"
|
156
|
-
result
|
157
|
-
end
|
158
|
-
|
159
|
-
assert_nothing_raised do
|
160
|
-
client.getconfig
|
161
|
-
end
|
162
|
-
[:get_actual_config].each do |method|
|
163
|
-
assert($methodsrun.include?(method), "method %s was not run" % method)
|
164
|
-
end
|
165
|
-
assert(! $methodsrun.include?(:getplugins), "plugins were synced even tho disabled")
|
166
|
-
|
167
|
-
# Now set pluginsync
|
168
|
-
Puppet[:pluginsync] = true
|
169
|
-
$methodsrun.clear
|
170
|
-
|
171
|
-
assert_nothing_raised do
|
172
|
-
client.getconfig
|
173
|
-
end
|
174
|
-
[:getplugins, :get_actual_config].each do |method|
|
175
|
-
assert($methodsrun.include?(method), "method %s was not run" % method)
|
176
|
-
end
|
177
|
-
|
178
|
-
objects = client.objects
|
179
|
-
assert(objects.finalized?, "objects were not finalized")
|
180
|
-
end
|
181
38
|
|
182
39
|
def test_disable
|
183
40
|
FileUtils.mkdir_p(Puppet[:statedir])
|
184
41
|
manifest = mktestmanifest
|
185
42
|
|
186
|
-
master = mkmaster(manifest)
|
43
|
+
master = mkmaster(:Manifest => manifest)
|
187
44
|
|
188
45
|
client = mkclient(master)
|
189
46
|
|
190
|
-
|
191
|
-
|
192
|
-
assert_nothing_raised {
|
47
|
+
assert_nothing_raised("Could not disable client") {
|
193
48
|
client.disable
|
194
49
|
}
|
195
50
|
|
196
|
-
|
197
|
-
client.run
|
198
|
-
}
|
51
|
+
client.expects(:getconfig).never
|
199
52
|
|
200
|
-
|
53
|
+
client.run
|
201
54
|
|
202
|
-
|
203
|
-
client.enable
|
204
|
-
}
|
55
|
+
client = mkclient(master)
|
205
56
|
|
206
|
-
|
207
|
-
client.run
|
208
|
-
}
|
57
|
+
client.expects(:getconfig)
|
209
58
|
|
210
|
-
|
59
|
+
assert_nothing_raised("Could not enable client") {
|
60
|
+
client.enable
|
61
|
+
}
|
62
|
+
client.run
|
211
63
|
end
|
212
64
|
|
213
65
|
# Make sure we're getting the client version in our list of facts
|
@@ -240,7 +92,7 @@ class TestMasterClient < Test::Unit::TestCase
|
|
240
92
|
}
|
241
93
|
end
|
242
94
|
|
243
|
-
# This method is
|
95
|
+
# This method downloads files, and yields each file object if a block is given.
|
244
96
|
def test_download
|
245
97
|
source = tempfile()
|
246
98
|
dest = tempfile()
|
@@ -327,6 +179,7 @@ end
|
|
327
179
|
|
328
180
|
assert_equal(hostname, Facter.value(:hostname),
|
329
181
|
"Lost value to hostname")
|
182
|
+
|
330
183
|
assert_equal("yayness", Facter.value(:myfact),
|
331
184
|
"Did not get correct fact value")
|
332
185
|
|
@@ -432,7 +285,7 @@ end
|
|
432
285
|
facts = Puppet::Network::Client.master.facts
|
433
286
|
end
|
434
287
|
Facter.to_hash.each do |fact, value|
|
435
|
-
assert_equal(facts[fact.downcase], value, "%s is not equal" % fact.inspect)
|
288
|
+
assert_equal(facts[fact.downcase], value.to_s, "%s is not equal" % fact.inspect)
|
436
289
|
end
|
437
290
|
|
438
291
|
# Make sure the puppet version got added
|
@@ -448,7 +301,9 @@ end
|
|
448
301
|
manifest = tempfile()
|
449
302
|
File.open(manifest, "w") { |f| f.puts "file { '#{file}': content => yay }" }
|
450
303
|
|
451
|
-
|
304
|
+
Puppet::Node::Facts.indirection.stubs(:save)
|
305
|
+
|
306
|
+
driver = mkmaster(:Manifest => manifest)
|
452
307
|
driver.local = false
|
453
308
|
master = mkclient(driver)
|
454
309
|
|
@@ -457,7 +312,7 @@ end
|
|
457
312
|
|
458
313
|
assert(! master.fresh?(master.class.facts),
|
459
314
|
"Considered fresh with no compile at all")
|
460
|
-
|
315
|
+
|
461
316
|
assert_nothing_raised { master.run }
|
462
317
|
assert(master.fresh?(master.class.facts),
|
463
318
|
"not considered fresh after compile")
|
@@ -532,7 +387,9 @@ end
|
|
532
387
|
master.local = false
|
533
388
|
driver = master.send(:instance_variable_get, "@driver")
|
534
389
|
driver.local = false
|
390
|
+
Puppet::Node::Facts.indirection.stubs(:save)
|
535
391
|
# Retrieve the configuration
|
392
|
+
|
536
393
|
master.getconfig
|
537
394
|
|
538
395
|
# Now the config is up to date, so get rid of the @objects var and
|
@@ -560,6 +417,8 @@ end
|
|
560
417
|
driver = master.send(:instance_variable_get, "@driver")
|
561
418
|
driver.local = false
|
562
419
|
|
420
|
+
Puppet::Node::Facts.indirection.stubs(:save)
|
421
|
+
|
563
422
|
assert_nothing_raised("Could not compile config") do
|
564
423
|
master.getconfig
|
565
424
|
end
|
@@ -682,20 +541,32 @@ end
|
|
682
541
|
end
|
683
542
|
end
|
684
543
|
|
544
|
+
def test_environment_is_added_to_facts
|
545
|
+
facts = Puppet::Network::Client::Master.facts
|
546
|
+
assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
|
547
|
+
|
548
|
+
# Now set it to a real value
|
549
|
+
Puppet[:environments] = "something,else"
|
550
|
+
Puppet[:environment] = "something"
|
551
|
+
facts = Puppet::Network::Client::Master.facts
|
552
|
+
assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
|
553
|
+
end
|
554
|
+
|
685
555
|
# This is partially to fix #532, but also to save on memory.
|
686
556
|
def test_remove_objects_after_every_run
|
687
557
|
client = mkclient
|
688
558
|
|
689
559
|
ftype = Puppet::Type.type(:file)
|
560
|
+
file = ftype.create :title => "/what/ever", :ensure => :present
|
561
|
+
config = Puppet::Node::Catalog.new
|
562
|
+
config.add_resource(file)
|
690
563
|
|
691
|
-
|
692
|
-
assert(! FileTest.exists?(@createdfile), "File already exists on disk")
|
564
|
+
config.expects :apply
|
693
565
|
|
694
|
-
|
695
|
-
|
696
|
-
|
566
|
+
client.catalog = config
|
567
|
+
client.expects(:getconfig)
|
568
|
+
client.run
|
697
569
|
|
698
|
-
assert(FileTest.exists?(@createdfile), "File does not exist on disk")
|
699
570
|
assert_nil(ftype[@createdfile], "file object was not removed from memory")
|
700
571
|
end
|
701
572
|
|
@@ -709,6 +580,21 @@ end
|
|
709
580
|
client.run
|
710
581
|
end
|
711
582
|
end
|
712
|
-
end
|
713
583
|
|
714
|
-
|
584
|
+
def test_invalid_catalogs_do_not_get_cached
|
585
|
+
master = mkmaster :Code => "notify { one: require => File[yaytest] }"
|
586
|
+
master.local = false # so it gets cached
|
587
|
+
client = mkclient(master)
|
588
|
+
client.stubs(:facts).returns({})
|
589
|
+
client.local = false
|
590
|
+
|
591
|
+
Puppet::Node::Facts.indirection.stubs(:terminus_class).returns(:memory)
|
592
|
+
|
593
|
+
# Make sure the config is not cached.
|
594
|
+
client.expects(:cache).never
|
595
|
+
|
596
|
+
client.getconfig
|
597
|
+
# Doesn't throw an exception, but definitely fails.
|
598
|
+
client.run
|
599
|
+
end
|
600
|
+
end
|