puppet 3.3.2 → 3.4.0.rc1
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/CONTRIBUTING.md +22 -0
- data/Gemfile +11 -2
- data/README.md +13 -17
- data/README_DEVELOPER.md +1 -1
- data/Rakefile +1 -1
- data/examples/hiera/README.md +4 -4
- data/ext/debian/puppetmaster.init +1 -0
- data/ext/debian/rules +2 -5
- data/ext/nagios/check_puppet.rb +7 -7
- data/ext/osx/file_mapping.yaml +1 -1
- data/ext/osx/preflight.erb +34 -19
- data/ext/rack/{files/config.ru → config.ru} +0 -0
- data/ext/rack/{files/apache2.conf → example-passenger-vhost.conf} +6 -0
- data/ext/redhat/puppet.spec.erb +20 -2
- data/ext/systemd/{puppetagent.service → puppet.service} +0 -0
- data/lib/hiera_puppet.rb +2 -2
- data/lib/puppet/agent.rb +1 -6
- data/lib/puppet/application.rb +15 -2
- data/lib/puppet/application/agent.rb +2 -7
- data/lib/puppet/application/apply.rb +8 -13
- data/lib/puppet/application/cert.rb +47 -7
- data/lib/puppet/application/device.rb +1 -6
- data/lib/puppet/application/face_base.rb +1 -1
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/inspect.rb +3 -12
- data/lib/puppet/application/master.rb +1 -6
- data/lib/puppet/application/queue.rb +1 -6
- data/lib/puppet/application/resource.rb +2 -6
- data/lib/puppet/coercion.rb +11 -0
- data/lib/puppet/configurer.rb +5 -3
- data/lib/puppet/configurer/downloader.rb +3 -1
- data/lib/puppet/configurer/plugin_handler.rb +10 -0
- data/lib/puppet/confine.rb +80 -0
- data/lib/puppet/{provider/confine → confine}/exists.rb +3 -3
- data/lib/puppet/{provider/confine → confine}/false.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/feature.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/true.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/variable.rb +2 -2
- data/lib/puppet/{provider/confine_collection.rb → confine_collection.rb} +4 -4
- data/lib/puppet/{provider/confiner.rb → confiner.rb} +4 -4
- data/lib/puppet/daemon.rb +2 -6
- data/lib/puppet/data_binding.rb +2 -30
- data/lib/puppet/defaults.rb +283 -174
- data/lib/puppet/error.rb +1 -0
- data/lib/puppet/external/nagios.rb +0 -2
- data/lib/puppet/external/nagios/base.rb +4 -3
- data/lib/puppet/external/nagios/grammar.ry +173 -112
- data/lib/puppet/external/nagios/parser.rb +233 -184
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/module/generate.rb +5 -7
- data/lib/puppet/face/parser.rb +12 -2
- data/lib/puppet/face/plugin.rb +6 -0
- data/lib/puppet/feature/base.rb +16 -0
- data/lib/puppet/feature/external_facts.rb +5 -0
- data/lib/puppet/feature/libuser.rb +1 -1
- data/lib/puppet/feature/msgpack.rb +1 -0
- data/lib/puppet/feature/rails.rb +2 -2
- data/lib/puppet/file_bucket/dipper.rb +8 -6
- data/lib/puppet/file_bucket/file.rb +17 -1
- data/lib/puppet/file_serving/base.rb +21 -10
- data/lib/puppet/file_serving/configuration.rb +5 -7
- data/lib/puppet/file_serving/configuration/parser.rb +1 -1
- data/lib/puppet/file_serving/content.rb +1 -1
- data/lib/puppet/file_serving/fileset.rb +3 -3
- data/lib/puppet/file_serving/metadata.rb +22 -18
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/lib/puppet/file_system.rb +3 -0
- data/lib/puppet/file_system/file.rb +261 -0
- data/lib/puppet/file_system/file18.rb +5 -0
- data/lib/puppet/file_system/file19.rb +5 -0
- data/lib/puppet/file_system/file19windows.rb +113 -0
- data/lib/puppet/file_system/memory_file.rb +31 -0
- data/lib/puppet/file_system/tempfile.rb +20 -0
- data/lib/puppet/indirector/active_record.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +28 -0
- data/lib/puppet/indirector/certificate_request/memory.rb +6 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +46 -2
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/facts/facter.rb +25 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +60 -74
- data/lib/puppet/indirector/indirection.rb +5 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/key/ca.rb +4 -0
- data/lib/puppet/indirector/key/file.rb +7 -3
- data/lib/puppet/indirector/key/memory.rb +6 -0
- data/lib/puppet/indirector/node/write_only_yaml.rb +2 -2
- data/lib/puppet/indirector/request.rb +17 -11
- data/lib/puppet/indirector/resource/ral.rb +5 -0
- data/lib/puppet/indirector/resource/rest.rb +1 -0
- data/lib/puppet/indirector/resource/store_configs.rb +4 -0
- data/lib/puppet/indirector/rest.rb +2 -1
- data/lib/puppet/indirector/ssl_file.rb +7 -7
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/interface/documentation.rb +4 -11
- data/lib/puppet/module.rb +19 -6
- data/lib/puppet/module_tool/applications/builder.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +1 -1
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/dependency.rb +7 -3
- data/lib/puppet/module_tool/metadata.rb +6 -2
- data/lib/puppet/module_tool/tar.rb +2 -1
- data/lib/puppet/module_tool/tar/gnu.rb +6 -2
- data/lib/puppet/module_tool/tar/mini.rb +2 -0
- data/lib/puppet/module_tool/tar/solaris.rb +2 -5
- data/lib/puppet/network/authconfig.rb +0 -2
- data/lib/puppet/network/authentication.rb +1 -1
- data/lib/puppet/network/authstore.rb +6 -7
- data/lib/puppet/network/format.rb +2 -3
- data/lib/puppet/network/format_handler.rb +16 -11
- data/lib/puppet/network/format_support.rb +14 -0
- data/lib/puppet/network/formats.rb +26 -0
- data/lib/puppet/network/http/connection.rb +8 -41
- data/lib/puppet/network/http/handler.rb +28 -32
- data/lib/puppet/network/http/webrick.rb +15 -22
- data/lib/puppet/network/http_pool.rb +43 -9
- data/lib/puppet/network/rights.rb +0 -0
- data/lib/puppet/node.rb +24 -8
- data/lib/puppet/node/environment.rb +18 -20
- data/lib/puppet/node/facts.rb +23 -6
- data/lib/puppet/parameter.rb +15 -2
- data/lib/puppet/parameter/boolean.rb +5 -0
- data/lib/puppet/parameter/value_collection.rb +6 -4
- data/lib/puppet/parser/ast/resourceparam.rb +2 -1
- data/lib/puppet/parser/compiler.rb +25 -9
- data/lib/puppet/parser/files.rb +1 -1
- data/lib/puppet/parser/functions.rb +12 -21
- data/lib/puppet/parser/functions/collect.rb +6 -35
- data/lib/puppet/parser/functions/contain.rb +26 -0
- data/lib/puppet/parser/functions/create_resources.rb +5 -0
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/{reject.rb → filter.rb} +13 -12
- data/lib/puppet/parser/functions/fqdn_rand.rb +13 -5
- data/lib/puppet/parser/functions/include.rb +18 -1
- data/lib/puppet/parser/functions/map.rb +44 -0
- data/lib/puppet/parser/functions/select.rb +6 -38
- data/lib/puppet/parser/lexer.rb +1 -1
- data/lib/puppet/parser/parser_support.rb +1 -1
- data/lib/puppet/parser/resource.rb +6 -45
- data/lib/puppet/parser/scope.rb +33 -2
- data/lib/puppet/parser/type_loader.rb +4 -60
- data/lib/puppet/pops/binder/bindings_loader.rb +1 -1
- data/lib/puppet/pops/binder/config/binder_config.rb +3 -3
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +1 -1
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +1 -1
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +2 -2
- data/lib/puppet/pops/issues.rb +4 -0
- data/lib/puppet/pops/model/ast_transformer.rb +4 -1
- data/lib/puppet/pops/model/model_label_provider.rb +1 -1
- data/lib/puppet/pops/parser/egrammar.ra +5 -24
- data/lib/puppet/pops/parser/eparser.rb +859 -902
- data/lib/puppet/pops/parser/lexer.rb +48 -30
- data/lib/puppet/pops/parser/parser_support.rb +1 -1
- data/lib/puppet/pops/patterns.rb +4 -4
- data/lib/puppet/pops/utils.rb +1 -1
- data/lib/puppet/pops/validation/checker3_1.rb +25 -20
- data/lib/puppet/provider.rb +23 -6
- data/lib/puppet/provider/aixobject.rb +0 -0
- data/lib/puppet/provider/augeas/augeas.rb +21 -5
- data/lib/puppet/provider/confine.rb +5 -79
- data/lib/puppet/provider/cron/crontab.rb +0 -0
- data/lib/puppet/provider/exec.rb +9 -7
- data/lib/puppet/provider/exec/posix.rb +10 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +16 -5
- data/lib/puppet/provider/group/aix.rb +0 -0
- data/lib/puppet/provider/group/windows_adsi.rb +33 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +0 -0
- data/lib/puppet/provider/maillist/mailman.rb +0 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +1 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -0
- data/lib/puppet/provider/package/blastwave.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -0
- data/lib/puppet/provider/package/gem.rb +0 -0
- data/lib/puppet/provider/package/macports.rb +0 -0
- data/lib/puppet/provider/package/msi.rb +4 -10
- data/lib/puppet/provider/package/nim.rb +8 -8
- data/lib/puppet/provider/package/openbsd.rb +1 -1
- data/lib/puppet/provider/package/opkg.rb +0 -0
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +0 -0
- data/lib/puppet/provider/package/rpm.rb +39 -3
- data/lib/puppet/provider/package/sun.rb +3 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -0
- data/lib/puppet/provider/package/windows.rb +12 -19
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/parsedfile.rb +0 -0
- data/lib/puppet/provider/port/parsed.rb +0 -0
- data/lib/puppet/provider/service/base.rb +0 -0
- data/lib/puppet/provider/service/bsd.rb +3 -3
- data/lib/puppet/provider/service/daemontools.rb +8 -8
- data/lib/puppet/provider/service/debian.rb +0 -0
- data/lib/puppet/provider/service/freebsd.rb +3 -3
- data/lib/puppet/provider/service/init.rb +5 -4
- data/lib/puppet/provider/service/launchd.rb +35 -24
- data/lib/puppet/provider/service/openbsd.rb +23 -0
- data/lib/puppet/provider/service/redhat.rb +0 -0
- data/lib/puppet/provider/service/runit.rb +3 -3
- data/lib/puppet/provider/service/smf.rb +0 -0
- data/lib/puppet/provider/service/src.rb +0 -0
- data/lib/puppet/provider/service/systemd.rb +0 -0
- data/lib/puppet/provider/service/upstart.rb +3 -3
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
- data/lib/puppet/provider/sshkey/parsed.rb +0 -0
- data/lib/puppet/provider/user/aix.rb +0 -0
- data/lib/puppet/provider/user/directoryservice.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +1 -1
- data/lib/puppet/rails/benchmark.rb +1 -1
- data/lib/puppet/reference/configuration.rb +1 -2
- data/lib/puppet/reference/indirection.rb +12 -14
- data/lib/puppet/relationship.rb +7 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +2 -2
- data/lib/puppet/resource.rb +66 -8
- data/lib/puppet/resource/catalog.rb +18 -25
- data/lib/puppet/resource/status.rb +10 -4
- data/lib/puppet/run.rb +6 -2
- data/lib/puppet/settings.rb +39 -119
- data/lib/puppet/settings/base_setting.rb +8 -9
- data/lib/puppet/settings/directory_setting.rb +8 -0
- data/lib/puppet/settings/file_setting.rb +35 -1
- data/lib/puppet/settings/priority_setting.rb +42 -0
- data/lib/puppet/ssl.rb +4 -0
- data/lib/puppet/ssl/certificate.rb +18 -0
- data/lib/puppet/ssl/certificate_authority.rb +101 -72
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +44 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +21 -17
- data/lib/puppet/ssl/certificate_factory.rb +38 -12
- data/lib/puppet/ssl/certificate_request.rb +201 -47
- data/lib/puppet/ssl/certificate_request_attributes.rb +34 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +2 -2
- data/lib/puppet/ssl/host.rb +21 -10
- data/lib/puppet/ssl/inventory.rb +6 -10
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/oids.rb +78 -0
- data/lib/puppet/ssl/validator.rb +41 -97
- data/lib/puppet/ssl/validator/default_validator.rb +153 -0
- data/lib/puppet/ssl/validator/no_validator.rb +17 -0
- data/lib/puppet/status.rb +4 -0
- data/lib/puppet/test/test_helper.rb +5 -0
- data/lib/puppet/transaction.rb +13 -0
- data/lib/puppet/transaction/event.rb +8 -3
- data/lib/puppet/transaction/report.rb +6 -2
- data/lib/puppet/transaction/resource_harness.rb +173 -115
- data/lib/puppet/type.rb +30 -13
- data/lib/puppet/type/augeas.rb +12 -46
- data/lib/puppet/type/component.rb +1 -7
- data/lib/puppet/type/cron.rb +0 -0
- data/lib/puppet/type/exec.rb +13 -1
- data/lib/puppet/type/file.rb +19 -10
- data/lib/puppet/type/file/checksum.rb +0 -0
- data/lib/puppet/type/file/content.rb +3 -0
- data/lib/puppet/type/file/ensure.rb +33 -15
- data/lib/puppet/type/file/group.rb +0 -0
- data/lib/puppet/type/file/mode.rb +6 -2
- data/lib/puppet/type/file/owner.rb +0 -0
- data/lib/puppet/type/file/source.rb +65 -14
- data/lib/puppet/type/file/target.rb +6 -6
- data/lib/puppet/type/file/type.rb +0 -0
- data/lib/puppet/type/filebucket.rb +0 -0
- data/lib/puppet/type/group.rb +18 -0
- data/lib/puppet/type/host.rb +0 -0
- data/lib/puppet/type/k5login.rb +4 -4
- data/lib/puppet/type/mailalias.rb +0 -0
- data/lib/puppet/type/maillist.rb +0 -0
- data/lib/puppet/type/mount.rb +15 -1
- data/lib/puppet/type/package.rb +7 -1
- data/lib/puppet/type/port.rb +0 -0
- data/lib/puppet/type/schedule.rb +9 -4
- data/lib/puppet/type/service.rb +1 -1
- data/lib/puppet/type/sshkey.rb +0 -0
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +3 -0
- data/lib/puppet/type/yumrepo.rb +8 -6
- data/lib/puppet/type/zpool.rb +0 -0
- data/lib/puppet/util.rb +4 -31
- data/lib/puppet/util/adsi.rb +73 -17
- data/lib/puppet/util/autoload.rb +3 -3
- data/lib/puppet/util/backups.rb +4 -4
- data/lib/puppet/util/cacher.rb +7 -13
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +3 -1
- data/lib/puppet/util/colors.rb +1 -0
- data/lib/puppet/util/command_line.rb +5 -0
- data/lib/puppet/util/docs.rb +33 -27
- data/lib/puppet/util/execution.rb +42 -18
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/instance_loader.rb +2 -2
- data/lib/puppet/util/instrumentation.rb +23 -42
- data/lib/puppet/util/instrumentation/data.rb +11 -4
- data/lib/puppet/util/instrumentation/indirection_probe.rb +11 -4
- data/lib/puppet/util/instrumentation/instrumentable.rb +7 -14
- data/lib/puppet/util/instrumentation/listener.rb +15 -8
- data/lib/puppet/util/instrumentation/listeners/log.rb +4 -10
- data/lib/puppet/util/instrumentation/listeners/performance.rb +8 -14
- data/lib/puppet/util/limits.rb +12 -0
- data/lib/puppet/util/lockfile.rb +2 -2
- data/lib/puppet/util/log.rb +14 -6
- data/lib/puppet/util/log/destinations.rb +23 -1
- data/lib/puppet/util/metric.rb +9 -3
- data/lib/puppet/util/monkey_patches.rb +7 -2
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/plugins.rb +1 -1
- data/lib/puppet/util/posix.rb +0 -0
- data/lib/puppet/util/profiler.rb +7 -2
- data/lib/puppet/util/provider_features.rb +2 -2
- data/lib/puppet/util/rdoc.rb +28 -30
- data/lib/puppet/util/rdoc/code_objects.rb +75 -25
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +12 -487
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +477 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +19 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +1 -1
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/suidmanager.rb +1 -1
- data/lib/puppet/util/tag_set.rb +29 -0
- data/lib/puppet/util/tagging.rb +8 -24
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +1 -1
- data/lib/puppet/util/windows.rb +3 -0
- data/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/lib/puppet/util/windows/access_control_list.rb +106 -0
- data/lib/puppet/util/windows/file.rb +213 -0
- data/lib/puppet/util/windows/process.rb +199 -0
- data/lib/puppet/util/windows/root_certs.rb +52 -37
- data/lib/puppet/util/windows/security.rb +270 -245
- data/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/lib/puppet/util/windows/sid.rb +26 -4
- data/lib/puppet/version.rb +2 -2
- data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
- data/spec/fixtures/unit/indirector/{hiera → data_binding/hiera}/global.yaml +0 -0
- data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +1 -0
- data/spec/fixtures/unit/module/trailing-comma.json +24 -0
- data/spec/fixtures/unit/util/monkey_patches/x509.pem +32 -0
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/doc_spec.rb +1 -1
- data/spec/integration/configurer_spec.rb +4 -2
- data/spec/integration/data_binding.rb +100 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +16 -13
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/integration/node/facts_spec.rb +1 -1
- data/spec/integration/node_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +90 -0
- data/spec/integration/parser/parser_spec.rb +2 -2
- data/spec/integration/provider/cron/crontab_spec.rb +3 -5
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/ssl/autosign_spec.rb +90 -0
- data/spec/integration/ssl/certificate_authority_spec.rb +62 -69
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/host_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +13 -13
- data/spec/integration/type/exec_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +287 -45
- data/spec/integration/type/tidy_spec.rb +3 -3
- data/spec/integration/util/rdoc/parser_spec.rb +236 -35
- data/spec/integration/util/settings_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +22 -0
- data/spec/integration/util/windows/security_spec.rb +316 -106
- data/spec/lib/matchers/containment_matchers.rb +52 -0
- data/spec/lib/puppet_spec/compiler.rb +6 -0
- data/spec/lib/puppet_spec/files.rb +20 -21
- data/spec/shared_behaviours/documentation_on_faces.rb +3 -3
- data/spec/shared_behaviours/file_server_terminus.rb +2 -2
- data/spec/shared_contexts/platform.rb +1 -0
- data/spec/spec_helper.rb +13 -1
- data/spec/unit/agent_spec.rb +0 -12
- data/spec/unit/application/agent_spec.rb +4 -4
- data/spec/unit/application/apply_spec.rb +18 -2
- data/spec/unit/application/cert_spec.rb +8 -6
- data/spec/unit/application/device_spec.rb +1 -1
- data/spec/unit/application/filebucket_spec.rb +1 -1
- data/spec/unit/application/inspect_spec.rb +1 -1
- data/spec/unit/application_spec.rb +24 -0
- data/spec/unit/configurer/downloader_spec.rb +8 -7
- data/spec/unit/configurer/fact_handler_spec.rb +23 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +7 -2
- data/spec/unit/configurer_spec.rb +15 -5
- data/spec/unit/{provider/confine → confine}/exists_spec.rb +12 -12
- data/spec/unit/{provider/confine → confine}/false_spec.rb +9 -9
- data/spec/unit/{provider/confine → confine}/feature_spec.rb +10 -10
- data/spec/unit/{provider/confine → confine}/true_spec.rb +7 -7
- data/spec/unit/{provider/confine → confine}/variable_spec.rb +16 -16
- data/spec/unit/{provider/confine_collection_spec.rb → confine_collection_spec.rb} +30 -30
- data/spec/unit/{provider/confine_spec.rb → confine_spec.rb} +11 -11
- data/spec/unit/{provider/confiner_spec.rb → confiner_spec.rb} +4 -4
- data/spec/unit/face/parser_spec.rb +54 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/base_spec.rb +32 -9
- data/spec/unit/file_serving/configuration_spec.rb +7 -7
- data/spec/unit/file_serving/content_spec.rb +12 -7
- data/spec/unit/file_serving/fileset_spec.rb +57 -27
- data/spec/unit/file_serving/metadata_spec.rb +74 -12
- data/spec/unit/file_serving/mount/file_spec.rb +10 -10
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +73 -0
- data/spec/unit/file_system/file_spec.rb +486 -0
- data/spec/unit/file_system/tempfile_spec.rb +48 -0
- data/spec/unit/graph/relationship_graph_spec.rb +0 -6
- data/spec/unit/hiera_puppet_spec.rb +2 -2
- data/spec/unit/indirector/catalog/compiler_spec.rb +15 -19
- data/spec/unit/indirector/certificate_status/file_spec.rb +30 -40
- data/spec/unit/indirector/data_binding/hiera_spec.rb +95 -2
- data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
- data/spec/unit/indirector/facts/facter_spec.rb +33 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +61 -52
- data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
- data/spec/unit/indirector/file_server_spec.rb +4 -4
- data/spec/unit/indirector/json_spec.rb +4 -4
- data/spec/unit/indirector/key/file_spec.rb +13 -14
- data/spec/unit/indirector/resource/ral_spec.rb +7 -0
- data/spec/unit/indirector/resource/store_configs_spec.rb +11 -0
- data/spec/unit/indirector/rest_spec.rb +7 -3
- data/spec/unit/indirector/ssl_file_spec.rb +14 -17
- data/spec/unit/indirector/yaml_spec.rb +4 -4
- data/spec/unit/module_spec.rb +43 -15
- data/spec/unit/module_tool/tar/gnu_spec.rb +2 -2
- data/spec/unit/module_tool/tar/solaris_spec.rb +2 -2
- data/spec/unit/module_tool/tar_spec.rb +45 -0
- data/spec/unit/network/authconfig_spec.rb +2 -1
- data/spec/unit/network/authentication_spec.rb +2 -2
- data/spec/unit/network/format_handler_spec.rb +2 -2
- data/spec/unit/network/formats_spec.rb +24 -0
- data/spec/unit/network/http/connection_spec.rb +76 -199
- data/spec/unit/network/http/handler_spec.rb +33 -34
- data/spec/unit/network/http_pool_spec.rb +8 -5
- data/spec/unit/node/environment_spec.rb +76 -90
- data/spec/unit/node/facts_spec.rb +20 -3
- data/spec/unit/node_spec.rb +43 -0
- data/spec/unit/parameter/boolean_spec.rb +22 -12
- data/spec/unit/parser/ast/resourceparam_spec.rb +51 -0
- data/spec/unit/parser/compiler_spec.rb +103 -35
- data/spec/unit/parser/eparser_adapter_spec.rb +12 -12
- data/spec/unit/parser/files_spec.rb +11 -11
- data/spec/unit/parser/functions/contain_spec.rb +185 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +13 -5
- data/spec/unit/parser/functions/generate_spec.rb +1 -1
- data/spec/unit/parser/functions_spec.rb +2 -2
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/each_spec.rb +1 -1
- data/spec/unit/parser/methods/{select_spec.rb → filter_spec.rb} +11 -11
- data/spec/unit/parser/methods/map_spec.rb +95 -0
- data/spec/unit/parser/methods/reduce_spec.rb +12 -11
- data/spec/unit/parser/methods/shared.rb +5 -5
- data/spec/unit/parser/methods/slice_spec.rb +13 -13
- data/spec/unit/parser/parser_spec.rb +1 -1
- data/spec/unit/parser/resource/param_spec.rb +44 -0
- data/spec/unit/parser/resource_spec.rb +16 -15
- data/spec/unit/pops/model/ast_transformer_spec.rb +18 -4
- data/spec/unit/pops/parser/lexer_spec.rb +22 -5
- data/spec/unit/pops/parser/parse_calls_spec.rb +5 -5
- data/spec/unit/pops/transformer/transform_calls_spec.rb +6 -6
- data/spec/unit/pops/transformer/transform_containers_spec.rb +2 -2
- data/spec/unit/pops/validator/validator_spec.rb +31 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +57 -2
- data/spec/unit/provider/exec/posix_spec.rb +8 -3
- data/spec/unit/provider/file/posix_spec.rb +2 -2
- data/spec/unit/provider/group/windows_adsi_spec.rb +70 -3
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +1 -1
- data/spec/unit/provider/package/msi_spec.rb +15 -42
- data/spec/unit/provider/package/openbsd_spec.rb +3 -3
- data/spec/unit/provider/package/rpm_spec.rb +56 -13
- data/spec/unit/provider/package/windows_spec.rb +15 -19
- data/spec/unit/provider/service/base_spec.rb +1 -1
- data/spec/unit/provider/service/daemontools_spec.rb +18 -8
- data/spec/unit/provider/service/freebsd_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_spec.rb +5 -2
- data/spec/unit/provider/service/init_spec.rb +17 -17
- data/spec/unit/provider/service/launchd_spec.rb +76 -23
- data/spec/unit/provider/service/openbsd_spec.rb +125 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +12 -5
- data/spec/unit/provider/service/upstart_spec.rb +4 -4
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +5 -5
- data/spec/unit/provider/user/directoryservice_spec.rb +4 -4
- data/spec/unit/provider/zone/solaris_spec.rb +1 -1
- data/spec/unit/provider_spec.rb +2 -2
- data/spec/unit/reports/http_spec.rb +19 -34
- data/spec/unit/reports/store_spec.rb +2 -2
- data/spec/unit/resource/catalog_spec.rb +81 -11
- data/spec/unit/resource/status_spec.rb +11 -1
- data/spec/unit/resource/type_spec.rb +30 -1
- data/spec/unit/resource_spec.rb +40 -4
- data/spec/unit/settings/file_setting_spec.rb +2 -2
- data/spec/unit/settings/path_setting_spec.rb +2 -2
- data/spec/unit/settings/priority_setting_spec.rb +66 -0
- data/spec/unit/settings_spec.rb +16 -31
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +30 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +129 -134
- data/spec/unit/ssl/certificate_factory_spec.rb +18 -0
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +61 -0
- data/spec/unit/ssl/certificate_request_spec.rb +103 -0
- data/spec/unit/ssl/certificate_spec.rb +31 -18
- data/spec/unit/ssl/host_spec.rb +34 -8
- data/spec/unit/ssl/inventory_spec.rb +27 -62
- data/spec/unit/ssl/key_spec.rb +4 -4
- data/spec/unit/ssl/oids_spec.rb +48 -0
- data/spec/unit/ssl/validator_spec.rb +49 -6
- data/spec/unit/status_spec.rb +9 -0
- data/spec/unit/transaction/event_spec.rb +1 -9
- data/spec/unit/transaction/report_spec.rb +20 -1
- data/spec/unit/transaction/resource_harness_spec.rb +60 -210
- data/spec/unit/transaction_spec.rb +54 -8
- data/spec/unit/type/component_spec.rb +2 -2
- data/spec/unit/type/exec_spec.rb +14 -7
- data/spec/unit/type/file/content_spec.rb +13 -2
- data/spec/unit/type/file/ctime_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +48 -2
- data/spec/unit/type/file/mtime_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +177 -7
- data/spec/unit/type/file_spec.rb +63 -71
- data/spec/unit/type/group_spec.rb +20 -0
- data/spec/unit/type/k5login_spec.rb +3 -3
- data/spec/unit/type/mount_spec.rb +53 -0
- data/spec/unit/type/nagios_spec.rb +216 -0
- data/spec/unit/type/package_spec.rb +7 -1
- data/spec/unit/type/schedule_spec.rb +6 -0
- data/spec/unit/type/service_spec.rb +3 -3
- data/spec/unit/type/tidy_spec.rb +14 -14
- data/spec/unit/type/user_spec.rb +9 -0
- data/spec/unit/type_spec.rb +86 -4
- data/spec/unit/util/adsi_spec.rb +120 -12
- data/spec/unit/util/autoload_spec.rb +14 -14
- data/spec/unit/util/backups_spec.rb +29 -21
- data/spec/unit/util/checksums_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +41 -0
- data/spec/unit/util/docs_spec.rb +91 -0
- data/spec/unit/util/execution_spec.rb +26 -2
- data/spec/unit/util/filetype_spec.rb +7 -7
- data/spec/unit/util/lockfile_spec.rb +2 -2
- data/spec/unit/util/log/destinations_spec.rb +32 -0
- data/spec/unit/util/monkey_patches_spec.rb +41 -0
- data/spec/unit/util/pidlock_spec.rb +6 -6
- data/spec/unit/util/rdoc/parser_spec.rb +15 -13
- data/spec/unit/util/rdoc_spec.rb +18 -24
- data/spec/unit/util/resource_template_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +4 -2
- data/spec/unit/util/storage_spec.rb +4 -4
- data/spec/unit/util/suidmanager_spec.rb +7 -0
- data/spec/unit/util/tag_set_spec.rb +46 -0
- data/spec/unit/util/tagging_spec.rb +82 -45
- data/spec/unit/util/watcher_spec.rb +4 -1
- data/spec/unit/util/windows/access_control_entry_spec.rb +67 -0
- data/spec/unit/util/windows/access_control_list_spec.rb +133 -0
- data/spec/unit/util/windows/root_certs_spec.rb +10 -8
- data/spec/unit/util/windows/security_descriptor_spec.rb +117 -0
- data/spec/unit/util/windows/sid_spec.rb +69 -0
- data/spec/unit/util_spec.rb +7 -7
- data/tasks/ci.rake +17 -36
- metadata +2811 -2746
- checksums.yaml +0 -7
- data/examples/mac_automount.pp +0 -16
- data/examples/mcx_dock_absent.pp +0 -4
- data/examples/mcx_dock_default.pp +0 -118
- data/examples/mcx_dock_full.pp +0 -125
- data/examples/mcx_dock_invalid.pp +0 -9
- data/examples/mcx_nogroup.pp +0 -118
- data/examples/mcx_notexists_absent.pp +0 -4
- data/ext/rack/README +0 -58
- data/ext/rack/manifest.pp +0 -59
- data/lib/puppet/external/lock.rb +0 -63
- data/lib/puppet/indirector/hiera.rb +0 -39
- data/lib/puppet/parser/functions/foreach.rb +0 -95
- data/spec/integration/network/server/webrick_spec.rb +0 -76
- data/spec/integration/parser/functions_spec.rb +0 -16
- data/spec/unit/indirector/hiera_spec.rb +0 -154
- data/spec/unit/parser/methods/collect_spec.rb +0 -153
- data/spec/unit/parser/methods/foreach_spec.rb +0 -91
- data/spec/unit/parser/methods/reject_spec.rb +0 -73
- data/spec/unit/resource/resource_type.json +0 -34
@@ -71,7 +71,7 @@ describe Puppet::Util::Autoload do
|
|
71
71
|
|
72
72
|
[RuntimeError, LoadError, SyntaxError].each do |error|
|
73
73
|
it "should die with Puppet::Error if a #{error.to_s} exception is thrown" do
|
74
|
-
File.stubs(:exist?).returns true
|
74
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
75
75
|
|
76
76
|
Kernel.expects(:load).raises error
|
77
77
|
|
@@ -84,7 +84,7 @@ describe Puppet::Util::Autoload do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it "should register loaded files with the autoloader" do
|
87
|
-
File.stubs(:exist?).returns true
|
87
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
88
88
|
Kernel.stubs(:load)
|
89
89
|
@autoload.load("myfile")
|
90
90
|
|
@@ -94,7 +94,7 @@ describe Puppet::Util::Autoload do
|
|
94
94
|
end
|
95
95
|
|
96
96
|
it "should be seen by loaded? on the instance using the short name" do
|
97
|
-
File.stubs(:exist?).returns true
|
97
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
98
98
|
Kernel.stubs(:load)
|
99
99
|
@autoload.load("myfile")
|
100
100
|
|
@@ -104,7 +104,7 @@ describe Puppet::Util::Autoload do
|
|
104
104
|
end
|
105
105
|
|
106
106
|
it "should register loaded files with the main loaded file list so they are not reloaded by ruby" do
|
107
|
-
File.stubs(:exist?).returns true
|
107
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
108
108
|
Kernel.stubs(:load)
|
109
109
|
|
110
110
|
@autoload.load("myfile")
|
@@ -117,7 +117,7 @@ describe Puppet::Util::Autoload do
|
|
117
117
|
it "should load the first file in the searchpath" do
|
118
118
|
@autoload.stubs(:search_directories).returns [make_absolute("/a"), make_absolute("/b")]
|
119
119
|
FileTest.stubs(:directory?).returns true
|
120
|
-
File.stubs(:exist?).returns true
|
120
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
121
121
|
Kernel.expects(:load).with(make_absolute("/a/tmp/myfile.rb"), optionally(anything))
|
122
122
|
|
123
123
|
@autoload.load("myfile")
|
@@ -126,7 +126,7 @@ describe Puppet::Util::Autoload do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should treat equivalent paths to a loaded file as loaded" do
|
129
|
-
File.stubs(:exist?).returns true
|
129
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
130
130
|
Kernel.stubs(:load)
|
131
131
|
@autoload.load("myfile")
|
132
132
|
|
@@ -144,7 +144,7 @@ describe Puppet::Util::Autoload do
|
|
144
144
|
@autoload.class.stubs(:search_directories).returns [make_absolute("/a")]
|
145
145
|
FileTest.stubs(:directory?).returns true
|
146
146
|
Dir.stubs(:glob).returns [make_absolute("/a/foo/file.rb")]
|
147
|
-
File.stubs(:exist?).returns true
|
147
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
148
148
|
@time_a = Time.utc(2010, 'jan', 1, 6, 30)
|
149
149
|
File.stubs(:mtime).returns @time_a
|
150
150
|
|
@@ -185,7 +185,7 @@ describe Puppet::Util::Autoload do
|
|
185
185
|
|
186
186
|
it "changes should be seen by changed? on the instance using the short name" do
|
187
187
|
File.stubs(:mtime).returns(@first_time)
|
188
|
-
File.stubs(:exist?).returns true
|
188
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
189
189
|
Kernel.stubs(:load)
|
190
190
|
@autoload.load("myfile")
|
191
191
|
@autoload.loaded?("myfile").should be
|
@@ -206,14 +206,14 @@ describe Puppet::Util::Autoload do
|
|
206
206
|
|
207
207
|
it "should reload if mtime changes" do
|
208
208
|
File.stubs(:mtime).with(@file_a).returns(@first_time + 60)
|
209
|
-
File.stubs(:exist?).with(@file_a).returns true
|
209
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_a).returns true
|
210
210
|
Kernel.expects(:load).with(@file_a, optionally(anything))
|
211
211
|
@autoload.class.reload_changed
|
212
212
|
end
|
213
213
|
|
214
214
|
it "should do nothing if the file is deleted" do
|
215
215
|
File.stubs(:mtime).with(@file_a).raises(Errno::ENOENT)
|
216
|
-
File.stubs(:exist?).with(@file_a).returns false
|
216
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_a).returns false
|
217
217
|
Kernel.expects(:load).never
|
218
218
|
@autoload.class.reload_changed
|
219
219
|
end
|
@@ -228,8 +228,8 @@ describe Puppet::Util::Autoload do
|
|
228
228
|
File.expects(:mtime).with(@file_a).returns(@first_time)
|
229
229
|
@autoload.class.mark_loaded("file", @file_a)
|
230
230
|
File.stubs(:mtime).with(@file_a).raises(Errno::ENOENT)
|
231
|
-
File.stubs(:exist?).with(@file_a).returns false
|
232
|
-
File.stubs(:exist?).with(@file_b).returns true
|
231
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_a).returns false
|
232
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_b).returns true
|
233
233
|
File.stubs(:mtime).with(@file_b).returns @first_time
|
234
234
|
Kernel.expects(:load).with(@file_b, optionally(anything))
|
235
235
|
@autoload.class.reload_changed
|
@@ -238,11 +238,11 @@ describe Puppet::Util::Autoload do
|
|
238
238
|
|
239
239
|
it "should load a/file when b/file is loaded and a/file is created" do
|
240
240
|
File.stubs(:mtime).with(@file_b).returns @first_time
|
241
|
-
File.stubs(:exist?).with(@file_b).returns true
|
241
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_b).returns true
|
242
242
|
@autoload.class.mark_loaded("file", @file_b)
|
243
243
|
|
244
244
|
File.stubs(:mtime).with(@file_a).returns @first_time
|
245
|
-
File.stubs(:exist?).with(@file_a).returns true
|
245
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@file_a).returns true
|
246
246
|
Kernel.expects(:load).with(@file_a, optionally(anything))
|
247
247
|
@autoload.class.reload_changed
|
248
248
|
@autoload.class.send(:loaded)["file"].should == [@file_a, @first_time]
|
@@ -20,7 +20,7 @@ describe Puppet::Util::Backups do
|
|
20
20
|
file = Puppet::Type.type(:file).new(:name => path)
|
21
21
|
|
22
22
|
file.expects(:bucket).never
|
23
|
-
|
23
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns false
|
24
24
|
|
25
25
|
file.perform_backup
|
26
26
|
end
|
@@ -29,23 +29,25 @@ describe Puppet::Util::Backups do
|
|
29
29
|
file = Puppet::Type.type(:file).new(:name => path, :backup => false)
|
30
30
|
|
31
31
|
file.expects(:bucket).never
|
32
|
-
|
32
|
+
Puppet::FileSystem::File.expects(:exist?).never
|
33
33
|
|
34
34
|
file.perform_backup
|
35
35
|
end
|
36
36
|
|
37
37
|
it "a bucket should be used when provided" do
|
38
|
-
|
38
|
+
stub_file = stub(path, :lstat => mock('lstat', :ftype => 'file'))
|
39
|
+
Puppet::FileSystem::File.expects(:new).with(path).returns stub_file
|
39
40
|
bucket.expects(:backup).with(path).returns("mysum")
|
40
|
-
|
41
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns(true)
|
41
42
|
|
42
43
|
file.perform_backup
|
43
44
|
end
|
44
45
|
|
45
46
|
it "should propagate any exceptions encountered when backing up to a filebucket" do
|
46
|
-
|
47
|
+
stub_file = stub(path, :lstat => mock('lstat', :ftype => 'file'))
|
48
|
+
Puppet::FileSystem::File.expects(:new).with(path).returns stub_file
|
47
49
|
bucket.expects(:backup).raises ArgumentError
|
48
|
-
|
50
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns(true)
|
49
51
|
|
50
52
|
lambda { file.perform_backup }.should raise_error(ArgumentError)
|
51
53
|
end
|
@@ -56,35 +58,39 @@ describe Puppet::Util::Backups do
|
|
56
58
|
let(:file) { Puppet::Type.type(:file).new(:name => path, :backup => '.'+ext) }
|
57
59
|
|
58
60
|
it "should remove any local backup if one exists" do
|
59
|
-
|
60
|
-
File.expects(:
|
61
|
+
stub_file = stub(backup, :lstat => stub('stat', :ftype => 'file'))
|
62
|
+
Puppet::FileSystem::File.expects(:new).with(backup).returns stub_file
|
63
|
+
Puppet::FileSystem::File.expects(:unlink).with(backup)
|
61
64
|
FileUtils.stubs(:cp_r)
|
62
|
-
|
65
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns(true)
|
63
66
|
|
64
67
|
file.perform_backup
|
65
68
|
end
|
66
69
|
|
67
70
|
it "should fail when the old backup can't be removed" do
|
68
|
-
|
69
|
-
File.expects(:
|
71
|
+
stub_file = stub(backup, :lstat => stub('stat', :ftype => 'file'))
|
72
|
+
Puppet::FileSystem::File.expects(:new).with(backup).returns stub_file
|
73
|
+
Puppet::FileSystem::File.expects(:unlink).with(backup).raises ArgumentError
|
70
74
|
FileUtils.expects(:cp_r).never
|
71
|
-
|
75
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns(true)
|
72
76
|
|
73
77
|
lambda { file.perform_backup }.should raise_error(Puppet::Error)
|
74
78
|
end
|
75
79
|
|
76
80
|
it "should not try to remove backups that don't exist" do
|
77
|
-
|
78
|
-
File.expects(:
|
81
|
+
stub_file = stub(backup)
|
82
|
+
Puppet::FileSystem::File.expects(:new).with(backup).returns stub_file
|
83
|
+
stub_file.expects(:lstat).raises(Errno::ENOENT)
|
84
|
+
Puppet::FileSystem::File.expects(:unlink).with(backup).never
|
79
85
|
FileUtils.stubs(:cp_r)
|
80
|
-
|
86
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns(true)
|
81
87
|
|
82
88
|
file.perform_backup
|
83
89
|
end
|
84
90
|
|
85
91
|
it "a copy should be created in the local directory" do
|
86
92
|
FileUtils.expects(:cp_r).with(path, backup, :preserve => true)
|
87
|
-
|
93
|
+
Puppet::FileSystem::File.stubs(:exist?).with(path).returns(true)
|
88
94
|
|
89
95
|
file.perform_backup.should be_true
|
90
96
|
end
|
@@ -92,7 +98,7 @@ describe Puppet::Util::Backups do
|
|
92
98
|
it "should propagate exceptions if no backup can be created" do
|
93
99
|
FileUtils.expects(:cp_r).raises ArgumentError
|
94
100
|
|
95
|
-
|
101
|
+
Puppet::FileSystem::File.stubs(:exist?).with(path).returns(true)
|
96
102
|
lambda { file.perform_backup }.should raise_error(Puppet::Error)
|
97
103
|
end
|
98
104
|
end
|
@@ -108,10 +114,11 @@ describe Puppet::Util::Backups do
|
|
108
114
|
|
109
115
|
bucket.expects(:backup).with(filename).returns true
|
110
116
|
|
111
|
-
|
117
|
+
stub_file = stub(path, :lstat => stub('stat', :ftype => 'directory'))
|
118
|
+
Puppet::FileSystem::File.expects(:new).with(path).returns stub_file
|
112
119
|
|
113
|
-
|
114
|
-
|
120
|
+
Puppet::FileSystem::File.stubs(:exist?).with(path).returns(true)
|
121
|
+
Puppet::FileSystem::File.stubs(:exist?).with(filename).returns(true)
|
115
122
|
|
116
123
|
file.perform_backup
|
117
124
|
end
|
@@ -120,7 +127,8 @@ describe Puppet::Util::Backups do
|
|
120
127
|
file = Puppet::Type.type(:file).new(:name => path, :backup => 'foo', :recurse => true)
|
121
128
|
|
122
129
|
bucket.expects(:backup).never
|
123
|
-
|
130
|
+
stub_file = stub('file', :stat => stub('stat', :ftype => 'directory'))
|
131
|
+
Puppet::FileSystem::File.stubs(:new).with(path).returns stub_file
|
124
132
|
Find.expects(:find).never
|
125
133
|
|
126
134
|
file.perform_backup
|
@@ -132,7 +132,8 @@ describe Puppet::Util::Checksums do
|
|
132
132
|
file = "/my/file"
|
133
133
|
stat = mock 'stat', sum => "mysum"
|
134
134
|
|
135
|
-
|
135
|
+
stub_file = stub(file, :stat => stat)
|
136
|
+
Puppet::FileSystem::File.expects(:new).with(file).returns stub_file
|
136
137
|
|
137
138
|
@summer.send(sum.to_s + "_file", file).should == "mysum"
|
138
139
|
end
|
@@ -143,5 +143,46 @@ describe Puppet::Util::CommandLine do
|
|
143
143
|
Puppet::Util::CommandLine.available_subcommands
|
144
144
|
end
|
145
145
|
end
|
146
|
+
|
147
|
+
describe 'when setting process priority' do
|
148
|
+
let(:command_line) do
|
149
|
+
Puppet::Util::CommandLine.new("puppet", %w{ agent })
|
150
|
+
end
|
151
|
+
|
152
|
+
before :each do
|
153
|
+
Puppet::Util::CommandLine::ApplicationSubcommand.any_instance.stubs(:run)
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'should never set priority by default' do
|
157
|
+
Process.expects(:setpriority).never
|
158
|
+
|
159
|
+
command_line.execute
|
160
|
+
end
|
161
|
+
|
162
|
+
it 'should lower the process priority if one has been specified' do
|
163
|
+
Puppet[:priority] = 10
|
164
|
+
|
165
|
+
Process.expects(:setpriority).with(0, Process.pid, 10)
|
166
|
+
command_line.execute
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'should warn if trying to raise priority, but not privileged user' do
|
170
|
+
Puppet[:priority] = -10
|
171
|
+
|
172
|
+
Process.expects(:setpriority).raises(Errno::EACCES, 'Permission denied')
|
173
|
+
Puppet.expects(:warning).with("Failed to set process priority to '-10'")
|
174
|
+
|
175
|
+
command_line.execute
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should warn if the platform doesn't support `Process.setpriority`" do
|
179
|
+
Puppet[:priority] = 15
|
180
|
+
|
181
|
+
Process.expects(:setpriority).raises(NotImplementedError, 'NotImplementedError: setpriority() function is unimplemented on this machine')
|
182
|
+
Puppet.expects(:warning).with("Failed to set process priority to '15'")
|
183
|
+
|
184
|
+
command_line.execute
|
185
|
+
end
|
186
|
+
end
|
146
187
|
end
|
147
188
|
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Puppet::Util::Docs do
|
4
|
+
|
5
|
+
describe '.scrub' do
|
6
|
+
let(:my_cleaned_output) do
|
7
|
+
%q{This resource type uses the prescribed native tools for creating
|
8
|
+
groups and generally uses POSIX APIs for retrieving information
|
9
|
+
about them. It does not directly modify `/etc/passwd` or anything.
|
10
|
+
|
11
|
+
* Just for fun, we'll add a list.
|
12
|
+
* list item two,
|
13
|
+
which has some add'l lines included in it.
|
14
|
+
|
15
|
+
And here's a code block:
|
16
|
+
|
17
|
+
this is the piece of code
|
18
|
+
it does something cool
|
19
|
+
|
20
|
+
**Autorequires:** I would be listing autorequired resources here.}
|
21
|
+
end
|
22
|
+
|
23
|
+
it "strips the least common indent from multi-line strings, without mangling indentation beyond the least common indent" do
|
24
|
+
input = <<EOT
|
25
|
+
This resource type uses the prescribed native tools for creating
|
26
|
+
groups and generally uses POSIX APIs for retrieving information
|
27
|
+
about them. It does not directly modify `/etc/passwd` or anything.
|
28
|
+
|
29
|
+
* Just for fun, we'll add a list.
|
30
|
+
* list item two,
|
31
|
+
which has some add'l lines included in it.
|
32
|
+
|
33
|
+
And here's a code block:
|
34
|
+
|
35
|
+
this is the piece of code
|
36
|
+
it does something cool
|
37
|
+
|
38
|
+
**Autorequires:** I would be listing autorequired resources here.
|
39
|
+
EOT
|
40
|
+
output = Puppet::Util::Docs.scrub(input)
|
41
|
+
expect(output).to eq my_cleaned_output
|
42
|
+
end
|
43
|
+
|
44
|
+
it "ignores the first line when calculating least common indent" do
|
45
|
+
input = "This resource type uses the prescribed native tools for creating
|
46
|
+
groups and generally uses POSIX APIs for retrieving information
|
47
|
+
about them. It does not directly modify `/etc/passwd` or anything.
|
48
|
+
|
49
|
+
* Just for fun, we'll add a list.
|
50
|
+
* list item two,
|
51
|
+
which has some add'l lines included in it.
|
52
|
+
|
53
|
+
And here's a code block:
|
54
|
+
|
55
|
+
this is the piece of code
|
56
|
+
it does something cool
|
57
|
+
|
58
|
+
**Autorequires:** I would be listing autorequired resources here."
|
59
|
+
output = Puppet::Util::Docs.scrub(input)
|
60
|
+
expect(output).to eq my_cleaned_output
|
61
|
+
end
|
62
|
+
|
63
|
+
it "strips trailing whitespace from each line, and strips trailing newlines at end" do
|
64
|
+
input = "This resource type uses the prescribed native tools for creating \n groups and generally uses POSIX APIs for retrieving information \n about them. It does not directly modify `/etc/passwd` or anything. \n\n * Just for fun, we'll add a list. \n * list item two,\n which has some add'l lines included in it. \n\n And here's a code block:\n\n this is the piece of code \n it does something cool \n\n **Autorequires:** I would be listing autorequired resources here. \n\n"
|
65
|
+
output = Puppet::Util::Docs.scrub(input)
|
66
|
+
expect(output).to eq my_cleaned_output
|
67
|
+
end
|
68
|
+
|
69
|
+
it "has no side effects on original input string" do
|
70
|
+
input = "First line \n second line \n \n indented line \n \n last line\n\n"
|
71
|
+
clean_input = "First line \n second line \n \n indented line \n \n last line\n\n"
|
72
|
+
not_used = Puppet::Util::Docs.scrub(input)
|
73
|
+
expect(input).to eq clean_input
|
74
|
+
end
|
75
|
+
|
76
|
+
it "does not include whitespace-only lines when calculating least common indent" do
|
77
|
+
input = "First line\n second line\n \n indented line\n\n last line"
|
78
|
+
expected_output = "First line\nsecond line\n\n indented line\n\nlast line"
|
79
|
+
#bogus_output = "First line\nsecond line\n\n indented line\n\nlast line"
|
80
|
+
output = Puppet::Util::Docs.scrub(input)
|
81
|
+
expect(output).to eq expected_output
|
82
|
+
end
|
83
|
+
|
84
|
+
it "accepts a least common indent of zero, thus not adding errors when input string is already scrubbed" do
|
85
|
+
expect(Puppet::Util::Docs.scrub(my_cleaned_output)).to eq my_cleaned_output
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
@@ -311,6 +311,16 @@ describe Puppet::Util::Execution do
|
|
311
311
|
|
312
312
|
expect { Puppet::Util::Execution.execute('test command') }.to raise_error(RuntimeError)
|
313
313
|
end
|
314
|
+
|
315
|
+
it "should return the correct exit status even when exit status is greater than 256" do
|
316
|
+
real_exit_status = 3010
|
317
|
+
|
318
|
+
Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
|
319
|
+
stub_process_wait(real_exit_status)
|
320
|
+
$CHILD_STATUS.stubs(:exitstatus).returns(real_exit_status % 256) # The exitstatus is changed to be mod 256 so that ruby can fit it into 8 bits.
|
321
|
+
|
322
|
+
Puppet::Util::Execution.execute('test command', :failonfail => false).exitstatus.should == real_exit_status
|
323
|
+
end
|
314
324
|
end
|
315
325
|
end
|
316
326
|
|
@@ -509,7 +519,7 @@ describe Puppet::Util::Execution do
|
|
509
519
|
Tempfile.stubs(:new).returns(stdout)
|
510
520
|
stdout.write("My expected command output")
|
511
521
|
|
512
|
-
Puppet::Util::Execution.execute('test command', :squelch => true).should ==
|
522
|
+
Puppet::Util::Execution.execute('test command', :squelch => true).should == ''
|
513
523
|
end
|
514
524
|
|
515
525
|
it "should delete the file used for output if squelch is false" do
|
@@ -519,7 +529,7 @@ describe Puppet::Util::Execution do
|
|
519
529
|
|
520
530
|
Puppet::Util::Execution.execute('test command')
|
521
531
|
|
522
|
-
File.
|
532
|
+
Puppet::FileSystem::File.exist?(path).should be_false
|
523
533
|
end
|
524
534
|
|
525
535
|
it "should not raise an error if the file is open" do
|
@@ -591,6 +601,20 @@ describe Puppet::Util::Execution do
|
|
591
601
|
Puppet::Util::Execution.execpipe('echo hello').should == 'hello'
|
592
602
|
end
|
593
603
|
|
604
|
+
it "should print meaningful debug message for string argument" do
|
605
|
+
Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
|
606
|
+
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
607
|
+
$CHILD_STATUS.expects(:==).with(0).returns(true)
|
608
|
+
Puppet::Util::Execution.execpipe('echo hello')
|
609
|
+
end
|
610
|
+
|
611
|
+
it "should print meaningful debug message for array argument" do
|
612
|
+
Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
|
613
|
+
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
614
|
+
$CHILD_STATUS.expects(:==).with(0).returns(true)
|
615
|
+
Puppet::Util::Execution.execpipe(['echo','hello'])
|
616
|
+
end
|
617
|
+
|
594
618
|
it "should execute an array by pasting together with spaces" do
|
595
619
|
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
596
620
|
$CHILD_STATUS.expects(:==).with(0).returns(true)
|
@@ -16,15 +16,15 @@ describe Puppet::Util::FileType do
|
|
16
16
|
|
17
17
|
describe "when the file already exists" do
|
18
18
|
it "should return the file's contents when asked to read it" do
|
19
|
-
File.expects(:exist?).with(path).returns true
|
19
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns true
|
20
20
|
File.expects(:read).with(path).returns "my text"
|
21
21
|
|
22
22
|
file.read.should == "my text"
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should unlink the file when asked to remove it" do
|
26
|
-
File.expects(:exist?).with(path).returns true
|
27
|
-
File.expects(:unlink).with(path)
|
26
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns true
|
27
|
+
Puppet::FileSystem::File.expects(:unlink).with(path)
|
28
28
|
|
29
29
|
file.remove
|
30
30
|
end
|
@@ -32,7 +32,7 @@ describe Puppet::Util::FileType do
|
|
32
32
|
|
33
33
|
describe "when the file does not exist" do
|
34
34
|
it "should return an empty string when asked to read the file" do
|
35
|
-
File.expects(:exist?).with(path).returns false
|
35
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns false
|
36
36
|
|
37
37
|
file.read.should == ""
|
38
38
|
end
|
@@ -63,13 +63,13 @@ describe Puppet::Util::FileType do
|
|
63
63
|
|
64
64
|
describe "when backing up a file" do
|
65
65
|
it "should do nothing if the file does not exist" do
|
66
|
-
File.expects(:
|
66
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns false
|
67
67
|
file.expects(:bucket).never
|
68
68
|
file.backup
|
69
69
|
end
|
70
70
|
|
71
71
|
it "should use its filebucket to backup the file if it exists" do
|
72
|
-
File.expects(:
|
72
|
+
Puppet::FileSystem::File.expects(:exist?).with(path).returns true
|
73
73
|
|
74
74
|
bucket = mock 'bucket'
|
75
75
|
bucket.expects(:backup).with(path)
|
@@ -155,7 +155,7 @@ describe Puppet::Util::FileType do
|
|
155
155
|
end
|
156
156
|
|
157
157
|
after :each do
|
158
|
-
File.
|
158
|
+
Puppet::FileSystem::File.exist?(@tmp_cron_path).should be_false
|
159
159
|
end
|
160
160
|
|
161
161
|
it "should run crontab as the target user on a temporary file" do
|