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
@@ -24,7 +24,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
24
24
|
|
25
25
|
file = nil
|
26
26
|
assert_nothing_raised {
|
27
|
-
file = Puppet.type(:file).
|
27
|
+
file = Puppet::Type.type(:file).new(
|
28
28
|
:title => "somethingelse",
|
29
29
|
:ensure => path,
|
30
30
|
:path => link
|
@@ -42,54 +42,6 @@ class TestFileTarget < Test::Unit::TestCase
|
|
42
42
|
assert_events([], file)
|
43
43
|
assert_events([], file)
|
44
44
|
end
|
45
|
-
|
46
|
-
def test_linkrecurse
|
47
|
-
dest = tempfile()
|
48
|
-
link = @file.create :path => tempfile(), :recurse => true, :ensure => dest
|
49
|
-
mk_catalog link
|
50
|
-
|
51
|
-
ret = nil
|
52
|
-
|
53
|
-
# Start with nothing, just to make sure we get nothing back
|
54
|
-
assert_nothing_raised { ret = link.linkrecurse(true) }
|
55
|
-
assert_nil(ret, "got a return when the dest doesn't exist")
|
56
|
-
|
57
|
-
# then with a directory with only one file
|
58
|
-
Dir.mkdir(dest)
|
59
|
-
one = File.join(dest, "one")
|
60
|
-
File.open(one, "w") { |f| f.puts "" }
|
61
|
-
link[:ensure] = dest
|
62
|
-
assert_nothing_raised { ret = link.linkrecurse(true) }
|
63
|
-
|
64
|
-
assert_equal(:directory, link.should(:ensure), "ensure was not set to directory")
|
65
|
-
assert_equal([File.join(link.title, "one")], ret.collect { |f| f.title },
|
66
|
-
"Did not get linked file")
|
67
|
-
oneobj = @file[File.join(link.title, "one")]
|
68
|
-
assert_equal(one, oneobj.should(:target), "target was not set correctly")
|
69
|
-
|
70
|
-
oneobj.remove
|
71
|
-
File.unlink(one)
|
72
|
-
|
73
|
-
# Then make sure we get multiple files
|
74
|
-
returns = []
|
75
|
-
5.times do |i|
|
76
|
-
path = File.join(dest, i.to_s)
|
77
|
-
returns << File.join(link.title, i.to_s)
|
78
|
-
File.open(path, "w") { |f| f.puts "" }
|
79
|
-
end
|
80
|
-
assert_nothing_raised { ret = link.linkrecurse(true) }
|
81
|
-
|
82
|
-
assert_equal(returns.sort, ret.collect { |f| f.title }.sort,
|
83
|
-
"Did not get links back")
|
84
|
-
|
85
|
-
returns.each do |path|
|
86
|
-
obj = @file[path]
|
87
|
-
assert(path, "did not get obj for %s" % path)
|
88
|
-
sdest = File.join(dest, File.basename(path))
|
89
|
-
assert_equal(sdest, obj.should(:target),
|
90
|
-
"target was not set correctly for %s" % path)
|
91
|
-
end
|
92
|
-
end
|
93
45
|
|
94
46
|
def test_simplerecursivelinking
|
95
47
|
source = tempfile()
|
@@ -100,16 +52,14 @@ class TestFileTarget < Test::Unit::TestCase
|
|
100
52
|
system("mkdir -p %s" % subdir)
|
101
53
|
system("touch %s" % file)
|
102
54
|
|
103
|
-
link =
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
:recurse => true
|
109
|
-
)
|
110
|
-
}
|
55
|
+
link = Puppet::Type.type(:file).new(
|
56
|
+
:ensure => source,
|
57
|
+
:path => path,
|
58
|
+
:recurse => true
|
59
|
+
)
|
111
60
|
|
112
|
-
|
61
|
+
catalog = mk_catalog(link)
|
62
|
+
catalog.apply
|
113
63
|
|
114
64
|
sublink = File.join(path, "subdir")
|
115
65
|
linkpath = File.join(sublink, "file")
|
@@ -118,7 +68,8 @@ class TestFileTarget < Test::Unit::TestCase
|
|
118
68
|
assert(File.symlink?(linkpath), "path is not a link")
|
119
69
|
assert_equal(file, File.readlink(linkpath))
|
120
70
|
|
121
|
-
|
71
|
+
# Use classes for comparison, because the resource inspection is so large
|
72
|
+
assert_equal(NilClass, catalog.resource(:file, sublink).class, "dynamically generated resources were not removed")
|
122
73
|
assert_equal([], link.evaluate, "Link is not in sync")
|
123
74
|
end
|
124
75
|
|
@@ -146,7 +97,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
146
97
|
|
147
98
|
link = nil
|
148
99
|
assert_nothing_raised {
|
149
|
-
link = Puppet.type(:file).
|
100
|
+
link = Puppet::Type.type(:file).new(
|
150
101
|
:ensure => source,
|
151
102
|
:path => dest,
|
152
103
|
:recurse => true
|
@@ -181,7 +132,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
181
132
|
|
182
133
|
link = nil
|
183
134
|
assert_nothing_raised {
|
184
|
-
link = Puppet.type(:file).
|
135
|
+
link = Puppet::Type.type(:file).new(
|
185
136
|
:path => dest,
|
186
137
|
:ensure => "source"
|
187
138
|
)
|
@@ -197,20 +148,20 @@ class TestFileTarget < Test::Unit::TestCase
|
|
197
148
|
source = tempfile()
|
198
149
|
dest = tempfile()
|
199
150
|
|
200
|
-
|
201
|
-
|
151
|
+
resources = []
|
152
|
+
resources << Puppet::Type.type(:exec).new(
|
202
153
|
:command => "mkdir %s; touch %s/file" % [source, source],
|
203
154
|
:title => "yay",
|
204
155
|
:path => ENV["PATH"]
|
205
156
|
)
|
206
|
-
|
157
|
+
resources << Puppet::Type.type(:file).new(
|
207
158
|
:ensure => source,
|
208
159
|
:path => dest,
|
209
160
|
:recurse => true,
|
210
|
-
:require =>
|
161
|
+
:require => resources[0]
|
211
162
|
)
|
212
163
|
|
213
|
-
assert_apply(*
|
164
|
+
assert_apply(*resources)
|
214
165
|
|
215
166
|
link = File.join(dest, "file")
|
216
167
|
assert(FileTest.symlink?(link), "Did not make link")
|
@@ -252,7 +203,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
252
203
|
|
253
204
|
file = nil
|
254
205
|
assert_nothing_raised {
|
255
|
-
file = Puppet.type(:file).
|
206
|
+
file = Puppet::Type.type(:file).new(
|
256
207
|
:ensure => path,
|
257
208
|
:path => link,
|
258
209
|
:backup => false
|
@@ -283,7 +234,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
283
234
|
File.open(file, "w") { |f| f.puts "yayness" }
|
284
235
|
File.symlink(file, link)
|
285
236
|
|
286
|
-
obj = Puppet::Type.type(:file).
|
237
|
+
obj = Puppet::Type.type(:file).new(
|
287
238
|
:path => link,
|
288
239
|
:ensure => "file"
|
289
240
|
)
|
@@ -314,7 +265,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
314
265
|
File.open(sourcefile, "w") { |f| f.puts "source" }
|
315
266
|
File.symlink(file, link)
|
316
267
|
|
317
|
-
obj = Puppet::Type.type(:file).
|
268
|
+
obj = Puppet::Type.type(:file).new(
|
318
269
|
:path => dirs["target"],
|
319
270
|
:ensure => :file,
|
320
271
|
:source => dirs["source"],
|
@@ -344,7 +295,7 @@ class TestFileTarget < Test::Unit::TestCase
|
|
344
295
|
File.open(dest, "w") { |f| f.puts "boo" }
|
345
296
|
File.open(otherdest, "w") { |f| f.puts "yay" }
|
346
297
|
|
347
|
-
obj = Puppet::Type.type(:file).
|
298
|
+
obj = Puppet::Type.type(:file).new(
|
348
299
|
:path => link,
|
349
300
|
:ensure => otherdest
|
350
301
|
)
|
@@ -10,7 +10,7 @@ require 'fileutils'
|
|
10
10
|
class TestFileIgnoreSources < Test::Unit::TestCase
|
11
11
|
include PuppetTest::Support::Utils
|
12
12
|
include PuppetTest::FileTesting
|
13
|
-
|
13
|
+
|
14
14
|
def setup
|
15
15
|
super
|
16
16
|
begin
|
@@ -18,6 +18,8 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
18
18
|
rescue
|
19
19
|
system("rm -rf %s" % Puppet[:statefile])
|
20
20
|
end
|
21
|
+
|
22
|
+
Facter.stubs(:to_hash).returns({})
|
21
23
|
end
|
22
24
|
|
23
25
|
#This is not needed unless using md5 (correct me if I'm wrong)
|
@@ -54,40 +56,38 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
54
56
|
|
55
57
|
#create source files
|
56
58
|
|
57
|
-
File.open(File.join(frompath,sourcefile1),
|
59
|
+
File.open(File.join(frompath,sourcefile1),
|
58
60
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
59
61
|
of.puts "yayness"
|
60
62
|
}
|
61
|
-
|
62
|
-
File.open(File.join(frompath,sourcefile2),
|
63
|
+
|
64
|
+
File.open(File.join(frompath,sourcefile2),
|
63
65
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
64
66
|
of.puts "even yayer"
|
65
67
|
}
|
66
|
-
|
68
|
+
|
67
69
|
|
68
70
|
#makes Puppet file Object
|
69
71
|
assert_nothing_raised {
|
70
|
-
tofile = Puppet.type(:file).
|
72
|
+
tofile = Puppet::Type.type(:file).new(
|
71
73
|
:name => topath,
|
72
74
|
:source => frompath,
|
73
|
-
:recurse => true,
|
74
|
-
:ignore => "sourcefile2"
|
75
|
+
:recurse => true,
|
76
|
+
:ignore => "sourcefile2"
|
75
77
|
)
|
76
78
|
}
|
77
79
|
|
78
80
|
config = mk_catalog(tofile)
|
79
81
|
config.apply
|
80
|
-
|
81
|
-
|
82
|
+
|
83
|
+
|
82
84
|
#topath should exist as a directory with sourcedir as a directory
|
83
|
-
|
85
|
+
|
84
86
|
#This file should exist
|
85
87
|
assert(FileTest.exists?(File.join(topath,sourcefile1)))
|
86
88
|
|
87
89
|
#This file should not
|
88
90
|
assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
|
89
|
-
|
90
|
-
Puppet::Type.allclear
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_ignore_with_wildcard
|
@@ -104,7 +104,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
104
104
|
|
105
105
|
frompath = File.join(path,sourcedir)
|
106
106
|
FileUtils.mkdir_p frompath
|
107
|
-
|
107
|
+
|
108
108
|
FileUtils.mkdir_p(File.join(frompath, subdir))
|
109
109
|
FileUtils.mkdir_p(File.join(frompath, subdir2))
|
110
110
|
dir = Dir.glob(File.join(path,"**/*"))
|
@@ -117,35 +117,35 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
117
117
|
trans = nil
|
118
118
|
|
119
119
|
#create source files
|
120
|
-
|
121
|
-
dir.each { |dir|
|
122
|
-
File.open(File.join(dir,sourcefile1),
|
120
|
+
|
121
|
+
dir.each { |dir|
|
122
|
+
File.open(File.join(dir,sourcefile1),
|
123
123
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
124
124
|
of.puts "yayness"
|
125
125
|
}
|
126
|
-
|
127
|
-
File.open(File.join(dir,sourcefile2),
|
126
|
+
|
127
|
+
File.open(File.join(dir,sourcefile2),
|
128
128
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
129
129
|
of.puts "even yayer"
|
130
130
|
}
|
131
|
-
|
131
|
+
|
132
132
|
}
|
133
133
|
|
134
134
|
#makes Puppet file Object
|
135
135
|
assert_nothing_raised {
|
136
|
-
tofile = Puppet.type(:file).
|
136
|
+
tofile = Puppet::Type.type(:file).new(
|
137
137
|
:name => topath,
|
138
138
|
:source => frompath,
|
139
|
-
:recurse => true,
|
140
|
-
:ignore => "*2"
|
139
|
+
:recurse => true,
|
140
|
+
:ignore => "*2"
|
141
141
|
)
|
142
142
|
}
|
143
143
|
|
144
144
|
config = mk_catalog(tofile)
|
145
145
|
config.apply
|
146
|
-
|
146
|
+
|
147
147
|
#topath should exist as a directory with sourcedir as a directory
|
148
|
-
|
148
|
+
|
149
149
|
#This file should exist
|
150
150
|
assert(FileTest.exists?(File.join(topath,sourcefile1)))
|
151
151
|
assert(FileTest.exists?(File.join(topath,subdir)))
|
@@ -155,8 +155,6 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
155
155
|
assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
|
156
156
|
assert(!(FileTest.exists?(File.join(topath,subdir2))))
|
157
157
|
assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))))
|
158
|
-
Puppet::Type.allclear
|
159
|
-
|
160
158
|
end
|
161
159
|
|
162
160
|
def test_ignore_array
|
@@ -174,7 +172,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
174
172
|
|
175
173
|
frompath = File.join(path,sourcedir)
|
176
174
|
FileUtils.mkdir_p frompath
|
177
|
-
|
175
|
+
|
178
176
|
FileUtils.mkdir_p(File.join(frompath, subdir))
|
179
177
|
FileUtils.mkdir_p(File.join(frompath, subdir2))
|
180
178
|
FileUtils.mkdir_p(File.join(frompath, subdir3))
|
@@ -188,31 +186,31 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
188
186
|
trans = nil
|
189
187
|
|
190
188
|
#create source files
|
191
|
-
|
192
189
|
|
193
|
-
|
194
|
-
|
195
|
-
|
190
|
+
|
191
|
+
|
192
|
+
sourcedir.each { |dir|
|
193
|
+
File.open(File.join(dir,sourcefile1),
|
196
194
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
197
195
|
of.puts "yayness"
|
198
196
|
}
|
199
|
-
|
200
|
-
File.open(File.join(dir,sourcefile2),
|
197
|
+
|
198
|
+
File.open(File.join(dir,sourcefile2),
|
201
199
|
File::WRONLY|File::CREAT|File::APPEND) { |of|
|
202
200
|
of.puts "even yayer"
|
203
201
|
}
|
204
|
-
|
202
|
+
|
205
203
|
}
|
206
204
|
|
207
205
|
|
208
206
|
#makes Puppet file Object
|
209
207
|
assert_nothing_raised {
|
210
|
-
tofile = Puppet.type(:file).
|
208
|
+
tofile = Puppet::Type.type(:file).new(
|
211
209
|
:name => topath,
|
212
210
|
:source => frompath,
|
213
211
|
:recurse => true,
|
214
|
-
:ignore => ["*2", "an*"]
|
215
|
-
# :ignore => ["*2", "an*", "nomatch"]
|
212
|
+
:ignore => ["*2", "an*"]
|
213
|
+
# :ignore => ["*2", "an*", "nomatch"]
|
216
214
|
)
|
217
215
|
}
|
218
216
|
|
@@ -226,7 +224,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
226
224
|
assert(FileTest.exists?(File.join(topath,sourcefile1)), "file1 not in destdir")
|
227
225
|
assert(FileTest.exists?(File.join(topath,subdir)), "subdir1 not in destdir")
|
228
226
|
assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)), "file1 not in subdir")
|
229
|
-
# proper files in source
|
227
|
+
# proper files in source
|
230
228
|
assert(FileTest.exists?(File.join(frompath,subdir)), "subdir not in source")
|
231
229
|
assert(FileTest.exists?(File.join(frompath,subdir2)), "subdir2 not in source")
|
232
230
|
assert(FileTest.exists?(File.join(frompath,subdir3)), "subdir3 not in source")
|
@@ -236,10 +234,5 @@ class TestFileIgnoreSources < Test::Unit::TestCase
|
|
236
234
|
assert(!(FileTest.exists?(File.join(topath,subdir2))), "subdir2 in dest")
|
237
235
|
assert(!(FileTest.exists?(File.join(topath,subdir3))), "anotherdir in dest")
|
238
236
|
assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))), "file2 in dest/sub")
|
239
|
-
|
240
|
-
|
241
|
-
Puppet::Type.allclear
|
242
|
-
|
243
237
|
end
|
244
|
-
|
245
238
|
end
|
@@ -20,14 +20,15 @@ class TestFileSources < Test::Unit::TestCase
|
|
20
20
|
end
|
21
21
|
@file = Puppet::Type.type(:file)
|
22
22
|
Puppet[:filetimeout] = -1
|
23
|
-
Puppet::Util::SUIDManager.stubs(:asuser).yields
|
23
|
+
Puppet::Util::SUIDManager.stubs(:asuser).yields
|
24
|
+
Facter.stubs(:to_hash).returns({})
|
24
25
|
end
|
25
26
|
|
26
27
|
def teardown
|
27
28
|
super
|
28
29
|
Puppet::Network::HttpPool.clear_http_instances
|
29
30
|
end
|
30
|
-
|
31
|
+
|
31
32
|
def use_storage
|
32
33
|
begin
|
33
34
|
initstorage
|
@@ -40,321 +41,34 @@ class TestFileSources < Test::Unit::TestCase
|
|
40
41
|
Puppet::Util::Storage.init
|
41
42
|
Puppet::Util::Storage.load
|
42
43
|
end
|
43
|
-
|
44
|
+
|
44
45
|
# Make a simple recursive tree.
|
45
46
|
def mk_sourcetree
|
46
47
|
source = tempfile()
|
47
48
|
sourcefile = File.join(source, "file")
|
48
49
|
Dir.mkdir source
|
49
50
|
File.open(sourcefile, "w") { |f| f.puts "yay" }
|
50
|
-
|
51
|
+
|
51
52
|
dest = tempfile()
|
52
53
|
destfile = File.join(dest, "file")
|
53
54
|
return source, dest, sourcefile, destfile
|
54
55
|
end
|
55
56
|
|
56
|
-
def test_newchild
|
57
|
-
path = tempfile()
|
58
|
-
@@tmpfiles.push path
|
59
|
-
|
60
|
-
FileUtils.mkdir_p path
|
61
|
-
File.open(File.join(path,"childtest"), "w") { |of|
|
62
|
-
of.puts "yayness"
|
63
|
-
}
|
64
|
-
file = nil
|
65
|
-
comp = nil
|
66
|
-
trans = nil
|
67
|
-
assert_nothing_raised {
|
68
|
-
file = Puppet.type(:file).create(
|
69
|
-
:name => path
|
70
|
-
)
|
71
|
-
}
|
72
|
-
config = mk_catalog(file)
|
73
|
-
child = nil
|
74
|
-
assert_nothing_raised {
|
75
|
-
child = file.newchild("childtest", true)
|
76
|
-
}
|
77
|
-
assert(child)
|
78
|
-
assert_raise(Puppet::DevError) {
|
79
|
-
file.newchild(File.join(path,"childtest"), true)
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_describe
|
84
|
-
source = tempfile()
|
85
|
-
dest = tempfile()
|
86
|
-
|
87
|
-
file = Puppet::Type.newfile :path => dest, :source => source, :title => "copier"
|
88
|
-
|
89
|
-
property = file.property(:source)
|
90
|
-
|
91
|
-
# First try describing with a normal source
|
92
|
-
result = nil
|
93
|
-
assert_nothing_raised do
|
94
|
-
result = property.describe(source)
|
95
|
-
end
|
96
|
-
assert_nil(result, "Got a result back when source is missing")
|
97
|
-
|
98
|
-
# Now make a remote directory
|
99
|
-
Dir.mkdir(source)
|
100
|
-
assert_nothing_raised do
|
101
|
-
result = property.describe(source)
|
102
|
-
end
|
103
|
-
assert_equal("directory", result[:type])
|
104
|
-
|
105
|
-
# And as a file
|
106
|
-
Dir.rmdir(source)
|
107
|
-
File.open(source, "w") { |f| f.puts "yay" }
|
108
|
-
assert_nothing_raised do
|
109
|
-
result = property.describe(source)
|
110
|
-
end
|
111
|
-
assert_equal("file", result[:type])
|
112
|
-
assert(result[:checksum], "did not get value for checksum")
|
113
|
-
if Puppet::Util::SUIDManager.uid == 0
|
114
|
-
assert(result.has_key?(:owner), "Lost owner in describe")
|
115
|
-
else
|
116
|
-
assert(! result.has_key?(:owner),
|
117
|
-
"Kept owner in describe even tho not root")
|
118
|
-
end
|
119
|
-
|
120
|
-
# Now let's do the various link things
|
121
|
-
File.unlink(source)
|
122
|
-
target = tempfile()
|
123
|
-
File.open(target, "w") { |f| f.puts "yay" }
|
124
|
-
File.symlink(target, source)
|
125
|
-
|
126
|
-
file[:links] = :manage
|
127
|
-
assert_equal("link", property.describe(source)[:type])
|
128
|
-
|
129
|
-
# And then make sure links get followed
|
130
|
-
file[:links] = :follow
|
131
|
-
assert_equal("file", property.describe(source)[:type])
|
132
|
-
end
|
133
|
-
|
134
|
-
def test_source_retrieve
|
135
|
-
source = tempfile()
|
136
|
-
dest = tempfile()
|
137
|
-
|
138
|
-
file = Puppet::Type.newfile :path => dest, :source => source,
|
139
|
-
:title => "copier"
|
140
|
-
|
141
|
-
assert(file.property(:checksum), "source property did not create checksum property")
|
142
|
-
property = file.property(:source)
|
143
|
-
assert(property, "did not get source property")
|
144
|
-
|
145
|
-
# Make sure the munge didn't actually change the source
|
146
|
-
assert_equal([source], property.should, "munging changed the source")
|
147
|
-
|
148
|
-
currentvalue = nil
|
149
|
-
# Now make the dest a directory, and make sure the object sets :ensure
|
150
|
-
# up to create a directory
|
151
|
-
Dir.mkdir(source)
|
152
|
-
assert_nothing_raised do
|
153
|
-
currentvalue = property.retrieve
|
154
|
-
end
|
155
|
-
assert_equal(:directory, file.should(:ensure),
|
156
|
-
"Did not set to create directory")
|
157
|
-
|
158
|
-
# And make sure the source property won't try to do anything with a
|
159
|
-
# remote dir
|
160
|
-
assert(property.insync?(currentvalue), "Source was out of sync even tho remote is dir")
|
161
|
-
|
162
|
-
# Now remove the source, and make sure :ensure was not modified
|
163
|
-
Dir.rmdir(source)
|
164
|
-
assert_equal(:directory, file.should(:ensure),
|
165
|
-
"Did not keep :ensure setting")
|
166
|
-
|
167
|
-
# Now have a remote file and make sure things work correctly
|
168
|
-
File.open(source, "w") { |f| f.puts "yay" }
|
169
|
-
File.chmod(0755, source)
|
170
|
-
|
171
|
-
assert_nothing_raised do
|
172
|
-
property.retrieve
|
173
|
-
end
|
174
|
-
assert_equal(:file, file.should(:ensure),
|
175
|
-
"Did not make correct :ensure setting")
|
176
|
-
assert_equal(0755, file.should(:mode),
|
177
|
-
"Mode was not copied over")
|
178
|
-
|
179
|
-
# Now let's make sure that we get the first found source
|
180
|
-
fake = tempfile()
|
181
|
-
property.should = [fake, source]
|
182
|
-
assert_nothing_raised do
|
183
|
-
property.retrieve
|
184
|
-
end
|
185
|
-
assert_equal(Digest::MD5.hexdigest(File.read(source)), property.checksum.sub(/^\{\w+\}/, ''),
|
186
|
-
"Did not catch later source")
|
187
|
-
end
|
188
|
-
|
189
|
-
def test_insync
|
190
|
-
source = tempfile()
|
191
|
-
dest = tempfile()
|
192
|
-
|
193
|
-
file = Puppet::Type.newfile :path => dest, :source => source,
|
194
|
-
:title => "copier"
|
195
|
-
|
196
|
-
property = file.property(:source)
|
197
|
-
assert(property, "did not get source property")
|
198
|
-
|
199
|
-
# with a directory
|
200
|
-
Dir.mkdir(source)
|
201
|
-
currentvalues = file.retrieve
|
202
|
-
assert(property.insync?(currentvalues[property]), "source property not in sync with directory as source")
|
203
|
-
Dir.rmdir(source)
|
204
|
-
|
205
|
-
# with a file
|
206
|
-
File.open(source, "w") { |f| f.puts "yay" }
|
207
|
-
currentvalues = file.retrieve
|
208
|
-
assert(!property.insync?(currentvalues[property]), "source property was in sync when file was missing")
|
209
|
-
|
210
|
-
# With a different file
|
211
|
-
File.open(dest, "w") { |f| f.puts "foo" }
|
212
|
-
currentvalues = file.retrieve
|
213
|
-
assert(!property.insync?(currentvalues[property]), "source property was in sync with different file")
|
214
|
-
|
215
|
-
# with matching files
|
216
|
-
File.open(dest, "w") { |f| f.puts "yay" }
|
217
|
-
currentvalues = file.retrieve
|
218
|
-
assert(property.insync?(currentvalues[property]), "source property was not in sync with matching file")
|
219
|
-
end
|
220
|
-
|
221
|
-
def test_source_sync
|
222
|
-
source = tempfile()
|
223
|
-
dest = tempfile()
|
224
|
-
|
225
|
-
file = Puppet::Type.newfile :path => dest, :source => source,
|
226
|
-
:title => "copier"
|
227
|
-
property = file.property(:source)
|
228
|
-
|
229
|
-
File.open(source, "w") { |f| f.puts "yay" }
|
230
|
-
|
231
|
-
currentvalues = file.retrieve
|
232
|
-
assert(! property.insync?(currentvalues[property]), "source thinks it's in sync")
|
233
|
-
|
234
|
-
event = nil
|
235
|
-
assert_nothing_raised do
|
236
|
-
event = property.sync
|
237
|
-
end
|
238
|
-
assert_equal(:file_created, event)
|
239
|
-
assert_equal(File.read(source), File.read(dest),
|
240
|
-
"File was not copied correctly")
|
241
|
-
|
242
|
-
# Now write something different
|
243
|
-
File.open(source, "w") { |f| f.puts "rah" }
|
244
|
-
currentvalues = file.retrieve
|
245
|
-
assert(! property.insync?(currentvalues[property]), "source should be out of sync")
|
246
|
-
assert_nothing_raised do
|
247
|
-
event = property.sync
|
248
|
-
end
|
249
|
-
assert_equal(:file_changed, event)
|
250
|
-
assert_equal(File.read(source), File.read(dest),
|
251
|
-
"File was not copied correctly")
|
252
|
-
end
|
253
|
-
|
254
|
-
# XXX This test doesn't cover everything. Specifically,
|
255
|
-
# it doesn't handle 'ignore' and 'links'.
|
256
|
-
def test_sourcerecurse
|
257
|
-
source, dest, sourcefile, destfile = mk_sourcetree
|
258
|
-
|
259
|
-
# The sourcerecurse method will only ever get called when we're
|
260
|
-
# recursing, so we go ahead and set it.
|
261
|
-
obj = Puppet::Type.newfile :source => source, :path => dest, :recurse => true
|
262
|
-
config = mk_catalog(obj)
|
263
|
-
|
264
|
-
result = nil
|
265
|
-
sourced = nil
|
266
|
-
assert_nothing_raised do
|
267
|
-
result, sourced = obj.sourcerecurse(true)
|
268
|
-
end
|
269
|
-
|
270
|
-
assert_equal([destfile], sourced, "Did not get correct list of sourced objects")
|
271
|
-
dfileobj = @file[destfile]
|
272
|
-
assert(dfileobj, "Did not create destfile object")
|
273
|
-
assert_equal([dfileobj], result)
|
274
|
-
|
275
|
-
# Clean this up so it can be recreated
|
276
|
-
config.remove_resource(dfileobj)
|
277
|
-
|
278
|
-
# Make sure we correctly iterate over the sources
|
279
|
-
nosource = tempfile()
|
280
|
-
obj[:source] = [nosource, source]
|
281
|
-
|
282
|
-
result = nil
|
283
|
-
assert_nothing_raised do
|
284
|
-
result, sourced = obj.sourcerecurse(true)
|
285
|
-
end
|
286
|
-
assert_equal([destfile], sourced, "Did not get correct list of sourced objects")
|
287
|
-
dfileobj = @file[destfile]
|
288
|
-
assert(dfileobj, "Did not create destfile object with a missing source")
|
289
|
-
assert_equal([dfileobj], result)
|
290
|
-
dfileobj.remove
|
291
|
-
|
292
|
-
# Lastly, make sure we return an empty array when no sources are there
|
293
|
-
obj[:source] = [nosource, tempfile()]
|
294
|
-
|
295
|
-
assert_raise(Puppet::Error) do
|
296
|
-
result, sourced = obj.sourcerecurse(true)
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
def test_simplelocalsource
|
301
|
-
path = tempfile()
|
302
|
-
FileUtils.mkdir_p path
|
303
|
-
frompath = File.join(path,"source")
|
304
|
-
topath = File.join(path,"dest")
|
305
|
-
fromfile = nil
|
306
|
-
tofile = nil
|
307
|
-
trans = nil
|
308
|
-
|
309
|
-
File.open(frompath, File::WRONLY|File::CREAT|File::APPEND) { |of|
|
310
|
-
of.puts "yayness"
|
311
|
-
}
|
312
|
-
assert_nothing_raised {
|
313
|
-
tofile = Puppet.type(:file).create(
|
314
|
-
:name => topath,
|
315
|
-
:source => frompath
|
316
|
-
)
|
317
|
-
}
|
318
|
-
|
319
|
-
assert_apply(tofile)
|
320
|
-
|
321
|
-
assert(FileTest.exists?(topath), "File #{topath} is missing")
|
322
|
-
from = File.open(frompath) { |o| o.read }
|
323
|
-
to = File.open(topath) { |o| o.read }
|
324
|
-
assert_equal(from,to)
|
325
|
-
end
|
326
|
-
|
327
|
-
# Make sure a simple recursive copy works
|
328
|
-
def test_simple_recursive_source
|
329
|
-
source, dest, sourcefile, destfile = mk_sourcetree
|
330
|
-
|
331
|
-
file = Puppet::Type.newfile :path => dest, :source => source, :recurse => true
|
332
|
-
|
333
|
-
assert_events([:directory_created, :file_created], file)
|
334
|
-
|
335
|
-
assert(FileTest.directory?(dest), "Dest dir was not created")
|
336
|
-
assert(FileTest.file?(destfile), "dest file was not created")
|
337
|
-
assert_equal("yay\n", File.read(destfile), "dest file was not copied correctly")
|
338
|
-
end
|
339
|
-
|
340
57
|
def recursive_source_test(fromdir, todir)
|
341
|
-
Puppet::Type.allclear
|
342
58
|
initstorage
|
343
59
|
tofile = nil
|
344
60
|
trans = nil
|
345
61
|
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
assert_apply(tofile)
|
62
|
+
tofile = Puppet::Type.type(:file).new(
|
63
|
+
:path => todir,
|
64
|
+
:recurse => true,
|
65
|
+
:backup => false,
|
66
|
+
:source => fromdir
|
67
|
+
)
|
68
|
+
catalog = mk_catalog(tofile)
|
69
|
+
catalog.apply
|
355
70
|
|
356
71
|
assert(FileTest.exists?(todir), "Created dir %s does not exist" % todir)
|
357
|
-
Puppet::Type.allclear
|
358
72
|
end
|
359
73
|
|
360
74
|
def run_complex_sources(networked = false)
|
@@ -396,9 +110,6 @@ class TestFileSources < Test::Unit::TestCase
|
|
396
110
|
def test_sources_with_deleted_destfiles
|
397
111
|
fromdir, todir, one, two = run_complex_sources
|
398
112
|
assert(FileTest.exists?(todir))
|
399
|
-
|
400
|
-
# We shouldn't have a 'two' file object in memory
|
401
|
-
assert_nil(@file[two], "object for 'two' is still in memory")
|
402
113
|
|
403
114
|
# then delete a file
|
404
115
|
File.unlink(two)
|
@@ -420,7 +131,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
420
131
|
|
421
132
|
# and make sure they're still equal
|
422
133
|
assert_trees_equal(fromdir,todir)
|
423
|
-
|
134
|
+
|
424
135
|
# Now try it with the directory being read-only
|
425
136
|
File.chmod(0111, todir)
|
426
137
|
recursive_source_test(fromdir, todir)
|
@@ -433,7 +144,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
433
144
|
fromdir, todir, one, two = run_complex_sources
|
434
145
|
|
435
146
|
assert(FileTest.exists?(todir))
|
436
|
-
|
147
|
+
|
437
148
|
# Modify a dest file
|
438
149
|
File.open(two, "w") { |f| f.puts "something else" }
|
439
150
|
|
@@ -460,7 +171,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
460
171
|
FileUtils.cd(todir) {
|
461
172
|
%x{find . 2>/dev/null}.chomp.split(/\n/).each { |file|
|
462
173
|
if file =~ /file[0-9]+/
|
463
|
-
|
174
|
+
FileUtils.rm_rf(file)
|
464
175
|
end
|
465
176
|
}
|
466
177
|
}
|
@@ -481,14 +192,14 @@ class TestFileSources < Test::Unit::TestCase
|
|
481
192
|
File.open(file1, "w") { |f| f.puts "yay" }
|
482
193
|
rootobj = nil
|
483
194
|
assert_nothing_raised {
|
484
|
-
rootobj = Puppet.type(:file).
|
195
|
+
rootobj = Puppet::Type.type(:file).new(
|
485
196
|
:name => basedir,
|
486
197
|
:recurse => true,
|
487
198
|
:check => %w{type owner},
|
488
199
|
:mode => 0755
|
489
200
|
)
|
490
201
|
}
|
491
|
-
|
202
|
+
|
492
203
|
assert_apply(rootobj)
|
493
204
|
assert_equal(0755, filemode(file1))
|
494
205
|
|
@@ -514,53 +225,6 @@ class TestFileSources < Test::Unit::TestCase
|
|
514
225
|
return file
|
515
226
|
end
|
516
227
|
|
517
|
-
def test_NetworkSources
|
518
|
-
server = nil
|
519
|
-
mounts = {
|
520
|
-
"/" => "root"
|
521
|
-
}
|
522
|
-
|
523
|
-
fileserverconf = mkfileserverconf(mounts)
|
524
|
-
|
525
|
-
Puppet[:autosign] = true
|
526
|
-
|
527
|
-
Puppet[:masterport] = 8762
|
528
|
-
Puppet[:name] = "puppetmasterd"
|
529
|
-
Puppet[:certdnsnames] = "localhost"
|
530
|
-
|
531
|
-
serverpid = nil
|
532
|
-
assert_nothing_raised() {
|
533
|
-
server = Puppet::Network::HTTPServer::WEBrick.new(
|
534
|
-
:Handlers => {
|
535
|
-
:CA => {}, # so that certs autogenerate
|
536
|
-
:FileServer => {
|
537
|
-
:Config => fileserverconf
|
538
|
-
}
|
539
|
-
}
|
540
|
-
)
|
541
|
-
|
542
|
-
}
|
543
|
-
serverpid = fork {
|
544
|
-
assert_nothing_raised() {
|
545
|
-
#trap(:INT) { server.shutdown; Kernel.exit! }
|
546
|
-
trap(:INT) { server.shutdown }
|
547
|
-
server.start
|
548
|
-
}
|
549
|
-
}
|
550
|
-
@@tmppids << serverpid
|
551
|
-
|
552
|
-
sleep(1)
|
553
|
-
|
554
|
-
fromdir, todir = run_complex_sources("root")
|
555
|
-
assert_trees_equal(fromdir,todir)
|
556
|
-
recursive_source_test(fromdir, todir)
|
557
|
-
assert_trees_equal(fromdir,todir)
|
558
|
-
|
559
|
-
assert_nothing_raised {
|
560
|
-
system("kill -INT %s" % serverpid)
|
561
|
-
}
|
562
|
-
end
|
563
|
-
|
564
228
|
def test_unmountedNetworkSources
|
565
229
|
server = nil
|
566
230
|
mounts = {
|
@@ -600,14 +264,14 @@ class TestFileSources < Test::Unit::TestCase
|
|
600
264
|
sleep(1)
|
601
265
|
|
602
266
|
name = File.join(tmpdir(), "nosourcefile")
|
603
|
-
file = Puppet.type(:file).
|
267
|
+
file = Puppet::Type.type(:file).new(
|
604
268
|
:source => "puppet://localhost/noexist/file",
|
605
269
|
:name => name
|
606
270
|
)
|
607
271
|
|
608
|
-
assert_raise Puppet::Error do
|
272
|
+
assert_raise Puppet::Error do
|
609
273
|
file.retrieve
|
610
|
-
end
|
274
|
+
end
|
611
275
|
|
612
276
|
comp = mk_catalog(file)
|
613
277
|
comp.apply
|
@@ -627,7 +291,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
627
291
|
# Now the files should be exactly the same, so we should not see attempts
|
628
292
|
# at copying
|
629
293
|
assert_nothing_raised {
|
630
|
-
file = Puppet.type(:file).
|
294
|
+
file = Puppet::Type.type(:file).new(
|
631
295
|
:path => to,
|
632
296
|
:source => from
|
633
297
|
)
|
@@ -635,7 +299,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
635
299
|
|
636
300
|
currentvalue = file.retrieve
|
637
301
|
|
638
|
-
assert(currentvalue[file.property(:checksum)],
|
302
|
+
assert(currentvalue[file.property(:checksum)],
|
639
303
|
"File does not have a checksum property")
|
640
304
|
|
641
305
|
assert_equal(0, file.evaluate.length, "File produced changes")
|
@@ -643,7 +307,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
643
307
|
|
644
308
|
def test_sourcepaths
|
645
309
|
files = []
|
646
|
-
3.times {
|
310
|
+
3.times {
|
647
311
|
files << tempfile()
|
648
312
|
}
|
649
313
|
|
@@ -653,7 +317,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
653
317
|
|
654
318
|
file = nil
|
655
319
|
assert_nothing_raised {
|
656
|
-
file = Puppet.type(:file).
|
320
|
+
file = Puppet::Type.type(:file).new(
|
657
321
|
:name => to,
|
658
322
|
:source => files
|
659
323
|
)
|
@@ -679,7 +343,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
679
343
|
|
680
344
|
file = nil
|
681
345
|
assert_nothing_raised {
|
682
|
-
file = Puppet.type(:file).
|
346
|
+
file = Puppet::Type.type(:file).new(
|
683
347
|
:name => dest,
|
684
348
|
:source => source
|
685
349
|
)
|
@@ -700,7 +364,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
700
364
|
|
701
365
|
file = nil
|
702
366
|
assert_nothing_raised {
|
703
|
-
file = Puppet.type(:file).
|
367
|
+
file = Puppet::Type.type(:file).new(
|
704
368
|
:name => dest,
|
705
369
|
:ensure => "file",
|
706
370
|
:source => source
|
@@ -723,77 +387,18 @@ class TestFileSources < Test::Unit::TestCase
|
|
723
387
|
File.open(source, "w") { |f| f.puts "yay" }
|
724
388
|
File.symlink(source, link)
|
725
389
|
|
726
|
-
file =
|
727
|
-
assert_nothing_raised {
|
728
|
-
file = Puppet.type(:file).create(
|
729
|
-
:name => dest,
|
730
|
-
:source => link,
|
731
|
-
:links => :follow
|
732
|
-
)
|
733
|
-
}
|
734
|
-
|
735
|
-
assert_events([:file_created], file)
|
736
|
-
assert(FileTest.file?(dest), "Destination is not a file")
|
737
|
-
|
738
|
-
# Now copy the links
|
739
|
-
file[:links] = :manage
|
740
|
-
assert_events([:link_created], file)
|
741
|
-
assert(FileTest.symlink?(dest), "Destination is not a link")
|
742
|
-
end
|
743
|
-
|
744
|
-
def test_changes
|
745
|
-
source = tempfile()
|
746
|
-
dest = tempfile()
|
747
|
-
|
748
|
-
File.open(source, "w") { |f| f.puts "yay" }
|
749
|
-
|
750
|
-
obj = nil
|
751
|
-
assert_nothing_raised {
|
752
|
-
obj = Puppet.type(:file).create(
|
753
|
-
:name => dest,
|
754
|
-
:source => source
|
755
|
-
)
|
756
|
-
}
|
757
|
-
|
758
|
-
assert_events([:file_created], obj)
|
759
|
-
assert_equal(File.read(source), File.read(dest), "Files are not equal")
|
760
|
-
assert_events([], obj)
|
761
|
-
|
762
|
-
File.open(source, "w") { |f| f.puts "boo" }
|
763
|
-
|
764
|
-
assert_events([:file_changed], obj)
|
765
|
-
assert_equal(File.read(source), File.read(dest), "Files are not equal")
|
766
|
-
assert_events([], obj)
|
767
|
-
|
768
|
-
File.open(dest, "w") { |f| f.puts "kaboom" }
|
769
|
-
|
770
|
-
# There are two changes, because first the checksum is noticed, and
|
771
|
-
# then the source causes a change
|
772
|
-
assert_events([:file_changed, :file_changed], obj)
|
773
|
-
assert_equal(File.read(source), File.read(dest), "Files are not equal")
|
774
|
-
assert_events([], obj)
|
775
|
-
end
|
776
|
-
|
777
|
-
def test_file_source_with_space
|
778
|
-
dir = tempfile()
|
779
|
-
source = File.join(dir, "file with spaces")
|
780
|
-
Dir.mkdir(dir)
|
781
|
-
File.open(source, "w") { |f| f.puts "yayness" }
|
782
|
-
|
783
|
-
newdir = tempfile()
|
784
|
-
newpath = File.join(newdir, "file with spaces")
|
785
|
-
|
786
|
-
file = Puppet::Type.newfile(
|
787
|
-
:path => newdir,
|
788
|
-
:source => dir,
|
789
|
-
:recurse => true
|
790
|
-
)
|
390
|
+
file = Puppet::Type.type(:file).new(:name => dest, :source => link)
|
791
391
|
|
392
|
+
catalog = mk_catalog(file)
|
792
393
|
|
793
|
-
|
394
|
+
# Default to managing links
|
395
|
+
catalog.apply
|
396
|
+
assert(FileTest.symlink?(dest), "Did not create link")
|
794
397
|
|
795
|
-
|
796
|
-
|
398
|
+
# Now follow the links
|
399
|
+
file[:links] = :follow
|
400
|
+
catalog.apply
|
401
|
+
assert(FileTest.file?(dest), "Destination is not a file")
|
797
402
|
end
|
798
403
|
|
799
404
|
# Make sure files aren't replaced when replace is false, but otherwise
|
@@ -828,49 +433,14 @@ class TestFileSources < Test::Unit::TestCase
|
|
828
433
|
"File got replaced when :replace was false")
|
829
434
|
|
830
435
|
# Now set it to true and make sure it does change.
|
831
|
-
|
832
|
-
file[:replace] = true
|
833
|
-
}
|
436
|
+
file[:replace] = true
|
834
437
|
assert_apply(file)
|
835
438
|
|
836
|
-
# Make sure it
|
439
|
+
# Make sure it changes.
|
837
440
|
assert_equal("funtest\n", File.read(dest),
|
838
441
|
"File was not replaced when :replace was true")
|
839
442
|
end
|
840
443
|
|
841
|
-
# Testing #285. This just makes sure that URI parsing works correctly.
|
842
|
-
def test_fileswithpoundsigns
|
843
|
-
dir = tstdir()
|
844
|
-
subdir = File.join(dir, "#dir")
|
845
|
-
Dir.mkdir(subdir)
|
846
|
-
file = File.join(subdir, "file")
|
847
|
-
File.open(file, "w") { |f| f.puts "yayness" }
|
848
|
-
|
849
|
-
dest = tempfile()
|
850
|
-
source = "file://localhost#{dir}"
|
851
|
-
obj = Puppet::Type.newfile(
|
852
|
-
:path => dest,
|
853
|
-
:source => source,
|
854
|
-
:recurse => true
|
855
|
-
)
|
856
|
-
|
857
|
-
newfile = File.join(dest, "#dir", "file")
|
858
|
-
|
859
|
-
poundsource = "file://localhost#{subdir}"
|
860
|
-
|
861
|
-
sourceobj = path = nil
|
862
|
-
assert_nothing_raised {
|
863
|
-
sourceobj, path = obj.uri2obj(poundsource)
|
864
|
-
}
|
865
|
-
|
866
|
-
assert_equal("/localhost" + URI.escape(subdir), path)
|
867
|
-
|
868
|
-
assert_apply(obj)
|
869
|
-
|
870
|
-
assert(FileTest.exists?(newfile), "File did not get created")
|
871
|
-
assert_equal("yayness\n", File.read(newfile))
|
872
|
-
end
|
873
|
-
|
874
444
|
def test_sourceselect
|
875
445
|
dest = tempfile()
|
876
446
|
sources = []
|
@@ -919,7 +489,7 @@ class TestFileSources < Test::Unit::TestCase
|
|
919
489
|
assert(FileTest.exists?(file3), "File from source 1 was not copied")
|
920
490
|
assert_equal("0", File.read(file3), "file3 got wrong contents")
|
921
491
|
end
|
922
|
-
|
492
|
+
|
923
493
|
def test_recursive_sourceselect
|
924
494
|
dest = tempfile()
|
925
495
|
source1 = tempfile()
|
@@ -936,15 +506,15 @@ class TestFileSources < Test::Unit::TestCase
|
|
936
506
|
File.open(file, "w") { |f| f.puts "yaysecond-%s" % i}
|
937
507
|
files << file
|
938
508
|
end
|
939
|
-
|
509
|
+
|
940
510
|
obj = Puppet::Type.newfile(:path => dest, :source => [source1, source2], :sourceselect => :all, :recurse => true)
|
941
|
-
|
511
|
+
|
942
512
|
assert_apply(obj)
|
943
|
-
|
513
|
+
|
944
514
|
["file0", "file1", "second-file0", "second-file1", "subdir/file2", "subdir/second-file2", "subdir/file3", "subdir/second-file3"].each do |file|
|
945
515
|
path = File.join(dest, file)
|
946
516
|
assert(FileTest.exists?(path), "did not create %s" % file)
|
947
|
-
|
517
|
+
|
948
518
|
assert_equal("yay%s\n" % File.basename(file).sub("file", ''), File.read(path), "file was not copied correctly")
|
949
519
|
end
|
950
520
|
end
|