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
@@ -2,18 +2,11 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
require 'puppet/indirector/file_bucket_file/file'
|
5
|
+
require 'puppet/util/platform'
|
5
6
|
|
6
7
|
describe Puppet::FileBucketFile::File do
|
7
8
|
include PuppetSpec::Files
|
8
9
|
|
9
|
-
it "should be a subclass of the Code terminus class" do
|
10
|
-
Puppet::FileBucketFile::File.superclass.should equal(Puppet::Indirector::Code)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should have documentation" do
|
14
|
-
Puppet::FileBucketFile::File.doc.should be_instance_of(String)
|
15
|
-
end
|
16
|
-
|
17
10
|
describe "non-stubbing tests" do
|
18
11
|
include PuppetSpec::Files
|
19
12
|
|
@@ -23,7 +16,7 @@ describe Puppet::FileBucketFile::File do
|
|
23
16
|
|
24
17
|
def save_bucket_file(contents, path = "/who_cares")
|
25
18
|
bucket_file = Puppet::FileBucket::File.new(contents)
|
26
|
-
Puppet::FileBucket::File.indirection.save(bucket_file, "
|
19
|
+
Puppet::FileBucket::File.indirection.save(bucket_file, "#{bucket_file.name}#{path}")
|
27
20
|
bucket_file.checksum_data
|
28
21
|
end
|
29
22
|
|
@@ -34,17 +27,58 @@ describe Puppet::FileBucketFile::File do
|
|
34
27
|
result.contents.should be_empty
|
35
28
|
end
|
36
29
|
|
30
|
+
it "deals with multiple processes saving at the same time", :unless => Puppet::Util::Platform.windows? do
|
31
|
+
bucket_file = Puppet::FileBucket::File.new("contents")
|
32
|
+
|
33
|
+
children = []
|
34
|
+
5.times do |count|
|
35
|
+
children << Kernel.fork do
|
36
|
+
save_bucket_file("contents", "/testing")
|
37
|
+
exit(0)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
children.each { |child| Process.wait(child) }
|
41
|
+
|
42
|
+
paths = File.read("#{Puppet[:bucketdir]}/9/8/b/f/7/d/8/c/98bf7d8c15784f0a3d63204441e1e2aa/paths").lines.to_a
|
43
|
+
paths.length.should == 1
|
44
|
+
Puppet::FileBucket::File.indirection.head("#{bucket_file.checksum_type}/#{bucket_file.checksum_data}/testing").should be_true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "fails if the contents collide with existing contents" do
|
48
|
+
# This is the shortest known MD5 collision. See http://eprint.iacr.org/2010/643.pdf
|
49
|
+
first_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
|
50
|
+
0x6503cf04,0x854f709e,0xfb0fc034,0x874c9c65,
|
51
|
+
0x2f94cc40,0x15a12deb,0x5c15f4a3,0x490786bb,
|
52
|
+
0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a].pack("I" * 16)
|
53
|
+
|
54
|
+
collision_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
|
55
|
+
0x6503cf04,0x854f749e,0xfb0fc034,0x874c9c65,
|
56
|
+
0x2f94cc40,0x15a12deb,0xdc15f4a3,0x490786bb,
|
57
|
+
0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a].pack("I" * 16)
|
58
|
+
|
59
|
+
save_bucket_file(first_contents, "/foo/bar")
|
60
|
+
|
61
|
+
expect do
|
62
|
+
save_bucket_file(collision_contents, "/foo/bar")
|
63
|
+
end.to raise_error(Puppet::FileBucket::BucketError, /Got passed new contents/)
|
64
|
+
end
|
65
|
+
|
37
66
|
describe "when supplying a path" do
|
38
67
|
it "should store the path if not already stored" do
|
39
68
|
checksum = save_bucket_file("stuff\r\n", "/foo/bar")
|
69
|
+
|
40
70
|
dir_path = "#{Puppet[:bucketdir]}/f/c/7/7/7/c/0/b/fc777c0bc467e1ab98b4c6915af802ec"
|
41
|
-
|
42
|
-
File.
|
71
|
+
contents_file = Puppet::FileSystem::File.new("#{dir_path}/contents")
|
72
|
+
paths_file = Puppet::FileSystem::File.new("#{dir_path}/paths")
|
73
|
+
contents_file.binread.should == "stuff\r\n"
|
74
|
+
paths_file.read.should == "foo/bar\n"
|
43
75
|
end
|
44
76
|
|
45
77
|
it "should leave the paths file alone if the path is already stored" do
|
46
78
|
checksum = save_bucket_file("stuff", "/foo/bar")
|
79
|
+
|
47
80
|
checksum = save_bucket_file("stuff", "/foo/bar")
|
81
|
+
|
48
82
|
dir_path = "#{Puppet[:bucketdir]}/c/1/3/d/8/8/c/b/c13d88cb4cb02003daedb8a84e5d272a"
|
49
83
|
File.read("#{dir_path}/contents").should == "stuff"
|
50
84
|
File.read("#{dir_path}/paths").should == "foo/bar\n"
|
@@ -52,7 +86,9 @@ describe Puppet::FileBucketFile::File do
|
|
52
86
|
|
53
87
|
it "should store an additional path if the new path differs from those already stored" do
|
54
88
|
checksum = save_bucket_file("stuff", "/foo/bar")
|
89
|
+
|
55
90
|
checksum = save_bucket_file("stuff", "/foo/baz")
|
91
|
+
|
56
92
|
dir_path = "#{Puppet[:bucketdir]}/c/1/3/d/8/8/c/b/c13d88cb4cb02003daedb8a84e5d272a"
|
57
93
|
File.read("#{dir_path}/contents").should == "stuff"
|
58
94
|
File.read("#{dir_path}/paths").should == "foo/bar\nfoo/baz\n"
|
@@ -62,6 +98,7 @@ describe Puppet::FileBucketFile::File do
|
|
62
98
|
describe "when not supplying a path" do
|
63
99
|
it "should save the file and create an empty paths file" do
|
64
100
|
checksum = save_bucket_file("stuff", "")
|
101
|
+
|
65
102
|
dir_path = "#{Puppet[:bucketdir]}/c/1/3/d/8/8/c/b/c13d88cb4cb02003daedb8a84e5d272a"
|
66
103
|
File.read("#{dir_path}/contents").should == "stuff"
|
67
104
|
File.read("#{dir_path}/paths").should == ""
|
@@ -78,16 +115,18 @@ describe Puppet::FileBucketFile::File do
|
|
78
115
|
|
79
116
|
it "should return false/nil if the file is bucketed but with a different path" do
|
80
117
|
checksum = save_bucket_file("I'm the contents of a file", '/foo/bar')
|
118
|
+
|
81
119
|
Puppet::FileBucket::File.indirection.head("md5/#{checksum}/foo/baz").should == false
|
82
120
|
Puppet::FileBucket::File.indirection.find("md5/#{checksum}/foo/baz").should == nil
|
83
121
|
end
|
84
122
|
|
85
123
|
it "should return true/file if the file is already bucketed with the given path" do
|
86
124
|
contents = "I'm the contents of a file"
|
125
|
+
|
87
126
|
checksum = save_bucket_file(contents, '/foo/bar')
|
127
|
+
|
88
128
|
Puppet::FileBucket::File.indirection.head("md5/#{checksum}/foo/bar").should == true
|
89
129
|
find_result = Puppet::FileBucket::File.indirection.find("md5/#{checksum}/foo/bar")
|
90
|
-
find_result.should be_a(Puppet::FileBucket::File)
|
91
130
|
find_result.checksum.should == "{md5}#{checksum}"
|
92
131
|
find_result.to_s.should == contents
|
93
132
|
end
|
@@ -105,10 +144,11 @@ describe Puppet::FileBucketFile::File do
|
|
105
144
|
|
106
145
|
it "should return true/file if the file is already bucketed" do
|
107
146
|
contents = "I'm the contents of a file"
|
147
|
+
|
108
148
|
checksum = save_bucket_file(contents, '/foo/bar')
|
149
|
+
|
109
150
|
Puppet::FileBucket::File.indirection.head("md5/#{checksum}#{trailing_string}").should == true
|
110
151
|
find_result = Puppet::FileBucket::File.indirection.find("md5/#{checksum}#{trailing_string}")
|
111
|
-
find_result.should be_a(Puppet::FileBucket::File)
|
112
152
|
find_result.checksum.should == "{md5}#{checksum}"
|
113
153
|
find_result.to_s.should == contents
|
114
154
|
end
|
@@ -126,6 +166,7 @@ describe Puppet::FileBucketFile::File do
|
|
126
166
|
it "should generate a proper diff if there is a diff" do
|
127
167
|
checksum1 = save_bucket_file("foo\nbar\nbaz")
|
128
168
|
checksum2 = save_bucket_file("foo\nbiz\nbaz")
|
169
|
+
|
129
170
|
diff = Puppet::FileBucket::File.indirection.find("md5/#{checksum1}", :diff_with => checksum2)
|
130
171
|
diff.should == <<HERE
|
131
172
|
2c2
|
@@ -136,27 +177,23 @@ HERE
|
|
136
177
|
end
|
137
178
|
|
138
179
|
it "should raise an exception if the hash to diff against isn't found" do
|
139
|
-
checksum = save_bucket_file("whatever")
|
140
180
|
bogus_checksum = "d1bf072d0e2c6e20e3fbd23f022089a1"
|
141
|
-
|
181
|
+
checksum = save_bucket_file("whatever")
|
182
|
+
|
183
|
+
expect do
|
184
|
+
Puppet::FileBucket::File.indirection.find("md5/#{checksum}", :diff_with => bogus_checksum)
|
185
|
+
end.to raise_error "could not find diff_with #{bogus_checksum}"
|
142
186
|
end
|
143
187
|
|
144
188
|
it "should return nil if the hash to diff from isn't found" do
|
145
|
-
checksum = save_bucket_file("whatever")
|
146
189
|
bogus_checksum = "d1bf072d0e2c6e20e3fbd23f022089a1"
|
190
|
+
checksum = save_bucket_file("whatever")
|
191
|
+
|
147
192
|
Puppet::FileBucket::File.indirection.find("md5/#{bogus_checksum}", :diff_with => checksum).should == nil
|
148
193
|
end
|
149
194
|
end
|
150
195
|
end
|
151
196
|
|
152
|
-
describe "when initializing" do
|
153
|
-
it "should use the filebucket settings section" do
|
154
|
-
Puppet.settings.expects(:use).with(:filebucket)
|
155
|
-
Puppet::FileBucketFile::File.new
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
|
160
197
|
[true, false].each do |override_bucket_path|
|
161
198
|
describe "when bucket path #{if override_bucket_path then 'is' else 'is not' end} overridden" do
|
162
199
|
[true, false].each do |supply_path|
|
@@ -245,32 +282,4 @@ HERE
|
|
245
282
|
end
|
246
283
|
end
|
247
284
|
end
|
248
|
-
|
249
|
-
describe "when verifying identical files" do
|
250
|
-
let(:contents) { "file\r\n contents" }
|
251
|
-
let(:digest) { "8b3702ad1aed1ace7e32bde76ffffb2d" }
|
252
|
-
let(:checksum) { "{md5}#{@digest}" }
|
253
|
-
let(:bucketdir) { tmpdir('file_bucket_file') }
|
254
|
-
let(:destdir) { "#{bucketdir}/8/b/3/7/0/2/a/d/8b3702ad1aed1ace7e32bde76ffffb2d" }
|
255
|
-
let(:bucket) { Puppet::FileBucket::File.new(contents) }
|
256
|
-
|
257
|
-
before :each do
|
258
|
-
Puppet[:bucketdir] = bucketdir
|
259
|
-
FileUtils.mkdir_p(destdir)
|
260
|
-
end
|
261
|
-
|
262
|
-
it "should raise an error if the files don't match" do
|
263
|
-
File.open(File.join(destdir, 'contents'), 'wb') { |f| f.print "corrupt contents" }
|
264
|
-
|
265
|
-
lambda{
|
266
|
-
Puppet::FileBucketFile::File.new.send(:verify_identical_file!, bucket)
|
267
|
-
}.should raise_error(Puppet::FileBucket::BucketError)
|
268
|
-
end
|
269
|
-
|
270
|
-
it "should do nothing if the files match" do
|
271
|
-
File.open(File.join(destdir, 'contents'), 'wb') { |f| f.print contents }
|
272
|
-
|
273
|
-
Puppet::FileBucketFile::File.new.send(:verify_identical_file!, bucket)
|
274
|
-
end
|
275
|
-
end
|
276
285
|
end
|
@@ -19,7 +19,7 @@ describe Puppet::Indirector::FileMetadata::File do
|
|
19
19
|
@uri = Puppet::Util.path_to_uri(@path).to_s
|
20
20
|
@data = mock 'metadata'
|
21
21
|
@data.stubs(:collect)
|
22
|
-
|
22
|
+
Puppet::FileSystem::File.expects(:exist?).with(@path).returns true
|
23
23
|
|
24
24
|
@request = Puppet::Indirector::Request.new(:file_metadata, :find, @uri, nil)
|
25
25
|
end
|
@@ -42,7 +42,7 @@ describe Puppet::Indirector::FileMetadata::File do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should collect the attributes of the instances returned" do
|
45
|
-
|
45
|
+
Puppet::FileSystem::File.expects(:exist?).with(@path).returns true
|
46
46
|
@metadata.expects(:path2instances).returns( [mock("one", :collect => nil), mock("two", :collect => nil)] )
|
47
47
|
@metadata.search(@request)
|
48
48
|
end
|
@@ -154,7 +154,7 @@ describe Puppet::Indirector::FileServer do
|
|
154
154
|
|
155
155
|
@mount.expects(:search).with { |key, request| key == "rel/path" }.returns %w{/one /two}
|
156
156
|
|
157
|
-
|
157
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
158
158
|
|
159
159
|
one = mock 'fileset_one'
|
160
160
|
Puppet::FileServing::Fileset.expects(:new).with("/one", @request).returns(one)
|
@@ -171,7 +171,7 @@ describe Puppet::Indirector::FileServer do
|
|
171
171
|
|
172
172
|
@mount.expects(:search).with { |key, request| key == "rel/path" }.returns []
|
173
173
|
|
174
|
-
|
174
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
175
175
|
|
176
176
|
Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one", "two" => "/two")
|
177
177
|
|
@@ -193,7 +193,7 @@ describe Puppet::Indirector::FileServer do
|
|
193
193
|
|
194
194
|
@mount.expects(:search).with { |key, request| key == "rel/path" }.returns []
|
195
195
|
|
196
|
-
|
196
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
197
197
|
|
198
198
|
Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one")
|
199
199
|
|
@@ -211,7 +211,7 @@ describe Puppet::Indirector::FileServer do
|
|
211
211
|
|
212
212
|
@mount.expects(:search).with { |key, options| key == "rel/path" }.returns []
|
213
213
|
|
214
|
-
|
214
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
215
215
|
|
216
216
|
Puppet::FileServing::Fileset.expects(:merge).returns("one" => "/one")
|
217
217
|
|
@@ -131,20 +131,20 @@ describe Puppet::Indirector::JSON do
|
|
131
131
|
with_content('hello') do
|
132
132
|
subject.destroy(request)
|
133
133
|
end
|
134
|
-
File.
|
134
|
+
Puppet::FileSystem::File.exist?(file).should be_false
|
135
135
|
end
|
136
136
|
|
137
137
|
it "silently succeeds when files don't exist" do
|
138
|
-
File.unlink(file) rescue nil
|
138
|
+
Puppet::FileSystem::File.unlink(file) rescue nil
|
139
139
|
subject.destroy(request).should be_true
|
140
140
|
end
|
141
141
|
|
142
142
|
it "raises an informative error for other failures" do
|
143
|
-
File.stubs(:unlink).with(file).raises(Errno::EPERM, 'fake permission problem')
|
143
|
+
Puppet::FileSystem::File.stubs(:unlink).with(file).raises(Errno::EPERM, 'fake permission problem')
|
144
144
|
with_content('hello') do
|
145
145
|
expect { subject.destroy(request) }.to raise_error Puppet::Error
|
146
146
|
end
|
147
|
-
File.unstub(:unlink) # thanks, mocha
|
147
|
+
Puppet::FileSystem::File.unstub(:unlink) # thanks, mocha
|
148
148
|
end
|
149
149
|
end
|
150
150
|
end
|
@@ -64,33 +64,32 @@ describe Puppet::SSL::Key::File do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should save the public key when saving the private key" do
|
67
|
-
|
67
|
+
fh = StringIO.new
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
Puppet.settings.expects(:writesub).with(:publickeydir, @public_key_path).yields fh
|
69
|
+
Puppet.settings.setting(:publickeydir).expects(:open_file).with(@public_key_path, 'w').yields fh
|
70
|
+
Puppet.settings.setting(:privatekeydir).stubs(:open_file)
|
72
71
|
@public_key.expects(:to_pem).returns "my pem"
|
73
72
|
|
74
|
-
fh.expects(:print).with "my pem"
|
75
|
-
|
76
73
|
@searcher.save(@request)
|
74
|
+
|
75
|
+
expect(fh.string).to eq("my pem")
|
77
76
|
end
|
78
77
|
|
79
78
|
it "should destroy the public key when destroying the private key" do
|
80
|
-
File.stubs(:unlink).with(@private_key_path)
|
81
|
-
|
82
|
-
|
83
|
-
File.expects(:unlink).with(@public_key_path)
|
79
|
+
Puppet::FileSystem::File.stubs(:unlink).with(@private_key_path)
|
80
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@private_key_path).returns true
|
81
|
+
Puppet::FileSystem::File.expects(:exist?).with(@public_key_path).returns true
|
82
|
+
Puppet::FileSystem::File.expects(:unlink).with(@public_key_path)
|
84
83
|
|
85
84
|
@searcher.destroy(@request)
|
86
85
|
end
|
87
86
|
|
88
87
|
it "should not fail if the public key does not exist when deleting the private key" do
|
89
|
-
File.stubs(:unlink).with(@private_key_path)
|
88
|
+
Puppet::FileSystem::File.stubs(:unlink).with(@private_key_path)
|
90
89
|
|
91
|
-
|
92
|
-
|
93
|
-
File.expects(:unlink).with(@public_key_path).never
|
90
|
+
Puppet::FileSystem::File.stubs(:exist?).with(@private_key_path).returns true
|
91
|
+
Puppet::FileSystem::File.expects(:exist?).with(@public_key_path).returns false
|
92
|
+
Puppet::FileSystem::File.expects(:unlink).with(@public_key_path).never
|
94
93
|
|
95
94
|
@searcher.destroy(@request)
|
96
95
|
end
|
@@ -2,6 +2,13 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe "Puppet::Resource::Ral" do
|
5
|
+
|
6
|
+
it "is deprecated on the network, but still allows requests" do
|
7
|
+
Puppet.expects(:deprecation_warning)
|
8
|
+
|
9
|
+
expect(Puppet::Resource::Ral.new.allow_remote_requests?).to eq(true)
|
10
|
+
end
|
11
|
+
|
5
12
|
describe "find" do
|
6
13
|
before do
|
7
14
|
@request = stub 'request', :key => "user/root"
|
@@ -9,4 +9,15 @@ end
|
|
9
9
|
|
10
10
|
describe Puppet::Resource::StoreConfigs do
|
11
11
|
it_should_behave_like "a StoreConfigs terminus"
|
12
|
+
|
13
|
+
before :each do
|
14
|
+
Puppet[:storeconfigs] = true
|
15
|
+
Puppet[:storeconfigs_backend] = "store_configs_testing"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "is deprecated on the network, but still allows requests" do
|
19
|
+
Puppet.expects(:deprecation_warning)
|
20
|
+
|
21
|
+
expect(Puppet::Resource::StoreConfigs.new.allow_remote_requests?).to eq(true)
|
22
|
+
end
|
12
23
|
end
|
@@ -109,6 +109,10 @@ describe Puppet::Indirector::REST do
|
|
109
109
|
string.split(',').collect { |s| convert_from(format, s) }
|
110
110
|
end
|
111
111
|
|
112
|
+
def to_data_hash
|
113
|
+
{ 'name' => @name, 'data' => @data }
|
114
|
+
end
|
115
|
+
|
112
116
|
def ==(other)
|
113
117
|
other.is_a? Puppet::TestModel and other.name == name and other.data == data
|
114
118
|
end
|
@@ -205,21 +209,21 @@ describe Puppet::Indirector::REST do
|
|
205
209
|
@request = stub 'request', :key => "foo", :server => nil, :port => nil
|
206
210
|
terminus.class.expects(:port).returns 321
|
207
211
|
terminus.class.expects(:server).returns "myserver"
|
208
|
-
Puppet::Network::
|
212
|
+
Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
|
209
213
|
terminus.network(@request).should == "myconn"
|
210
214
|
end
|
211
215
|
|
212
216
|
it "should use the server from the indirection request if one is present" do
|
213
217
|
@request = stub 'request', :key => "foo", :server => "myserver", :port => nil
|
214
218
|
terminus.class.stubs(:port).returns 321
|
215
|
-
Puppet::Network::
|
219
|
+
Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
|
216
220
|
terminus.network(@request).should == "myconn"
|
217
221
|
end
|
218
222
|
|
219
223
|
it "should use the port from the indirection request if one is present" do
|
220
224
|
@request = stub 'request', :key => "foo", :server => nil, :port => 321
|
221
225
|
terminus.class.stubs(:server).returns "myserver"
|
222
|
-
Puppet::Network::
|
226
|
+
Puppet::Network::HttpPool.expects(:http_instance).with("myserver", 321).returns "myconn"
|
223
227
|
terminus.network(@request).should == "myconn"
|
224
228
|
end
|
225
229
|
end
|
@@ -121,9 +121,9 @@ describe Puppet::Indirector::SslFile do
|
|
121
121
|
describe "when finding certificates on disk" do
|
122
122
|
describe "and no certificate is present" do
|
123
123
|
it "should return nil" do
|
124
|
-
|
124
|
+
Puppet::FileSystem::File.expects(:exist?).with(@path).returns(true)
|
125
125
|
Dir.expects(:entries).with(@path).returns([])
|
126
|
-
|
126
|
+
Puppet::FileSystem::File.expects(:exist?).with(@certpath).returns(false)
|
127
127
|
|
128
128
|
@searcher.find(@request).should be_nil
|
129
129
|
end
|
@@ -139,7 +139,7 @@ describe Puppet::Indirector::SslFile do
|
|
139
139
|
|
140
140
|
context "is readable" do
|
141
141
|
it "should return an instance of the model, which it should use to read the certificate" do
|
142
|
-
|
142
|
+
Puppet::FileSystem::File.expects(:exist?).with(@certpath).returns true
|
143
143
|
|
144
144
|
model.expects(:new).with("myname").returns cert
|
145
145
|
cert.expects(:read).with(@certpath)
|
@@ -150,7 +150,7 @@ describe Puppet::Indirector::SslFile do
|
|
150
150
|
|
151
151
|
context "is unreadable" do
|
152
152
|
it "should raise an exception" do
|
153
|
-
|
153
|
+
Puppet::FileSystem::File.expects(:exist?).with(@certpath).returns(true)
|
154
154
|
|
155
155
|
model.expects(:new).with("myname").returns cert
|
156
156
|
cert.expects(:read).with(@certpath).raises(Errno::EACCES)
|
@@ -171,9 +171,9 @@ describe Puppet::Indirector::SslFile do
|
|
171
171
|
# the support for upper-case certs can be removed around mid-2009.
|
172
172
|
it "should rename the existing file to the lower-case path" do
|
173
173
|
@path = @searcher.path("myhost")
|
174
|
-
|
174
|
+
Puppet::FileSystem::File.expects(:exist?).with(@path).returns(false)
|
175
175
|
dir, file = File.split(@path)
|
176
|
-
|
176
|
+
Puppet::FileSystem::File.expects(:exist?).with(dir).returns true
|
177
177
|
Dir.expects(:entries).with(dir).returns [".", "..", "something.pem", file.upcase]
|
178
178
|
|
179
179
|
File.expects(:rename).with(File.join(dir, file.upcase), @path)
|
@@ -221,7 +221,7 @@ describe Puppet::Indirector::SslFile do
|
|
221
221
|
@searcher.class.store_in @setting
|
222
222
|
fh = mock 'filehandle'
|
223
223
|
fh.stubs :print
|
224
|
-
Puppet.settings.expects(:
|
224
|
+
Puppet.settings.setting(@setting).expects(:open_file).with(@certpath, 'w').yields fh
|
225
225
|
|
226
226
|
@searcher.save(@request)
|
227
227
|
end
|
@@ -233,7 +233,7 @@ describe Puppet::Indirector::SslFile do
|
|
233
233
|
|
234
234
|
fh = mock 'filehandle'
|
235
235
|
fh.stubs :print
|
236
|
-
Puppet.settings.expects(:
|
236
|
+
Puppet.settings.setting(@setting).expects(:open).with('w').yields fh
|
237
237
|
@searcher.save(@request)
|
238
238
|
end
|
239
239
|
end
|
@@ -246,7 +246,7 @@ describe Puppet::Indirector::SslFile do
|
|
246
246
|
|
247
247
|
fh = mock 'filehandle'
|
248
248
|
fh.stubs :print
|
249
|
-
Puppet.settings.expects(:
|
249
|
+
Puppet.settings.setting(:cakey).expects(:open).with('w').yields fh
|
250
250
|
@searcher.stubs(:ca?).returns true
|
251
251
|
@searcher.save(@request)
|
252
252
|
end
|
@@ -256,7 +256,7 @@ describe Puppet::Indirector::SslFile do
|
|
256
256
|
describe "when destroying certificates" do
|
257
257
|
describe "that do not exist" do
|
258
258
|
before do
|
259
|
-
|
259
|
+
Puppet::FileSystem::File.expects(:exist?).with(@certpath).returns false
|
260
260
|
end
|
261
261
|
|
262
262
|
it "should return false" do
|
@@ -265,18 +265,15 @@ describe Puppet::Indirector::SslFile do
|
|
265
265
|
end
|
266
266
|
|
267
267
|
describe "that exist" do
|
268
|
-
before do
|
269
|
-
FileTest.expects(:exist?).with(@certpath).returns true
|
270
|
-
end
|
271
|
-
|
272
268
|
it "should unlink the certificate file" do
|
273
|
-
File.expects(:
|
269
|
+
Puppet::FileSystem::File.expects(:exist?).with(@certpath).returns true
|
270
|
+
Puppet::FileSystem::File.expects(:unlink).with(@certpath)
|
274
271
|
@searcher.destroy(@request)
|
275
272
|
end
|
276
273
|
|
277
274
|
it "should log that is removing the file" do
|
278
|
-
File.stubs(:exist?).returns true
|
279
|
-
File.stubs(:unlink)
|
275
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
276
|
+
Puppet::FileSystem::File.stubs(:unlink)
|
280
277
|
Puppet.expects(:notice)
|
281
278
|
@searcher.destroy(@request)
|
282
279
|
end
|