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
@@ -38,6 +38,9 @@ describe Puppet::Network::HTTP::Handler do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
class Puppet::TestModel::Memory < Puppet::Indirector::Memory
|
41
|
+
def supports_remote_requests?
|
42
|
+
true
|
43
|
+
end
|
41
44
|
end
|
42
45
|
|
43
46
|
Puppet::TestModel.indirection.terminus_class = :memory
|
@@ -150,9 +153,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
150
153
|
|
151
154
|
describe "when processing a request" do
|
152
155
|
let(:response) do
|
153
|
-
|
154
|
-
obj.stubs(:[]=).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION, Puppet.version)
|
155
|
-
obj
|
156
|
+
{ :status => 200 }
|
156
157
|
end
|
157
158
|
|
158
159
|
before do
|
@@ -163,7 +164,6 @@ describe Puppet::Network::HTTP::Handler do
|
|
163
164
|
it "should check the client certificate for upcoming expiration" do
|
164
165
|
request = a_request
|
165
166
|
cert = mock 'cert'
|
166
|
-
handler.stubs(:uri2indirection).returns(["facts", :mymethod, "key", {:node => "name"}])
|
167
167
|
handler.expects(:client_cert).returns(cert).with(request)
|
168
168
|
handler.expects(:warn_if_near_expiration).with(cert)
|
169
169
|
|
@@ -201,33 +201,31 @@ describe Puppet::Network::HTTP::Handler do
|
|
201
201
|
handler.process(request, response)
|
202
202
|
end
|
203
203
|
|
204
|
-
it "should
|
204
|
+
it "should return 403 if the request is not authorized" do
|
205
205
|
request = a_request
|
206
206
|
handler.expects(:uri2indirection).returns(["facts", :mymethod, "key", {:node => "name"}])
|
207
207
|
|
208
|
-
handler.expects(:do_mymethod).
|
208
|
+
handler.expects(:do_mymethod).never
|
209
|
+
|
210
|
+
handler.expects(:check_authorization).with("facts", :mymethod, "key", {:node => "name"}).raises(Puppet::Network::AuthorizationError.new("forbidden"))
|
209
211
|
|
210
|
-
handler.expects(:
|
212
|
+
handler.expects(:set_response).with(anything, anything, 403)
|
211
213
|
|
212
214
|
handler.process(request, response)
|
213
215
|
end
|
214
216
|
|
215
|
-
it "should return
|
217
|
+
it "should return an error code if the indirection does not support remote requests" do
|
216
218
|
request = a_request
|
217
|
-
handler.expects(:uri2indirection).returns(["facts", :mymethod, "key", {:node => "name"}])
|
218
219
|
|
219
|
-
|
220
|
-
|
221
|
-
handler.expects(:check_authorization).with("facts", :mymethod, "key", {:node => "name"}).raises(Puppet::Network::AuthorizationError.new("forbidden"))
|
222
|
-
|
223
|
-
handler.expects(:set_response).with(anything, anything, 403)
|
220
|
+
indirection.expects(:allow_remote_requests?).returns(false)
|
224
221
|
|
225
222
|
handler.process(request, response)
|
223
|
+
|
224
|
+
expect(response[:status]).to eq 404
|
226
225
|
end
|
227
226
|
|
228
227
|
it "should serialize a controller exception when an exception is thrown while finding the model instance" do
|
229
|
-
request =
|
230
|
-
handler.expects(:uri2indirection).returns(["facts", :find, "key", {:node => "name"}])
|
228
|
+
request = a_request_that_finds(Puppet::TestModel.new("key"))
|
231
229
|
|
232
230
|
handler.expects(:do_find).raises(ArgumentError, "The exception")
|
233
231
|
handler.expects(:set_response).with(anything, "The exception", 400)
|
@@ -302,7 +300,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
302
300
|
handler.expects(:set_response).with(response, data.render(:pson))
|
303
301
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
304
302
|
|
305
|
-
handler.do_find(indirection
|
303
|
+
handler.do_find(indirection, "my data", {}, request, response)
|
306
304
|
end
|
307
305
|
|
308
306
|
it "responds with a 406 error when no accept header is provided" do
|
@@ -311,7 +309,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
311
309
|
request = a_request_that_finds(data, :accept_header => nil)
|
312
310
|
|
313
311
|
expect do
|
314
|
-
handler.do_find(indirection
|
312
|
+
handler.do_find(indirection, "my data", {}, request, response)
|
315
313
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotAcceptableError)
|
316
314
|
end
|
317
315
|
|
@@ -321,7 +319,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
321
319
|
request = a_request_that_finds(data, :accept_header => "unknown, also/unknown")
|
322
320
|
|
323
321
|
expect do
|
324
|
-
handler.do_find(indirection
|
322
|
+
handler.do_find(indirection, "my data", {}, request, response)
|
325
323
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotAcceptableError)
|
326
324
|
end
|
327
325
|
|
@@ -334,7 +332,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
334
332
|
handler.expects(:set_response).with(response, data_string)
|
335
333
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
336
334
|
|
337
|
-
handler.do_find(indirection
|
335
|
+
handler.do_find(indirection, "my data", {}, request, response)
|
338
336
|
end
|
339
337
|
|
340
338
|
it "should return a 404 when no model instance can be found" do
|
@@ -342,7 +340,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
342
340
|
request = a_request_that_finds(data, :accept_header => "unknown, pson, yaml")
|
343
341
|
|
344
342
|
expect do
|
345
|
-
handler.do_find(indirection
|
343
|
+
handler.do_find(indirection, "my data", {}, request, response)
|
346
344
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotFoundError)
|
347
345
|
end
|
348
346
|
end
|
@@ -377,7 +375,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
377
375
|
handler.expects(:set_response).with(response, Puppet::TestModel.render_multiple(:pson, [data]))
|
378
376
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
379
377
|
|
380
|
-
handler.do_search(indirection
|
378
|
+
handler.do_search(indirection, "my", {}, request, response)
|
381
379
|
end
|
382
380
|
|
383
381
|
it "should return [] when searching returns an empty array" do
|
@@ -386,7 +384,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
386
384
|
handler.expects(:set_response).with(response, Puppet::TestModel.render_multiple(:pson, []))
|
387
385
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
388
386
|
|
389
|
-
handler.do_search(indirection
|
387
|
+
handler.do_search(indirection, "nothing", {}, request, response)
|
390
388
|
end
|
391
389
|
|
392
390
|
it "should return a 404 when searching returns nil" do
|
@@ -394,7 +392,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
394
392
|
indirection.expects(:search).returns(nil)
|
395
393
|
|
396
394
|
expect do
|
397
|
-
handler.do_search(indirection
|
395
|
+
handler.do_search(indirection, "nothing", {}, request, response)
|
398
396
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotFoundError)
|
399
397
|
end
|
400
398
|
end
|
@@ -405,7 +403,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
405
403
|
indirection.save(data, "my data")
|
406
404
|
request = a_request_that_destroys(data)
|
407
405
|
|
408
|
-
handler.do_destroy(indirection
|
406
|
+
handler.do_destroy(indirection, "my data", {}, request, response)
|
409
407
|
|
410
408
|
Puppet::TestModel.indirection.find("my data").should be_nil
|
411
409
|
end
|
@@ -418,7 +416,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
418
416
|
handler.expects(:set_response).with(response, data.render(:yaml))
|
419
417
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:yaml))
|
420
418
|
|
421
|
-
handler.do_destroy(indirection
|
419
|
+
handler.do_destroy(indirection, "my data", {}, request, response)
|
422
420
|
end
|
423
421
|
|
424
422
|
it "uses the first supported format for the response" do
|
@@ -429,7 +427,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
429
427
|
handler.expects(:set_response).with(response, data.render(:pson))
|
430
428
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
431
429
|
|
432
|
-
handler.do_destroy(indirection
|
430
|
+
handler.do_destroy(indirection, "my data", {}, request, response)
|
433
431
|
end
|
434
432
|
|
435
433
|
it "raises an error and does not destory when no accepted formats are known" do
|
@@ -438,7 +436,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
438
436
|
request = a_request_that_submits(data, :accept_header => "unknown, also/unknown")
|
439
437
|
|
440
438
|
expect do
|
441
|
-
handler.do_destroy(indirection
|
439
|
+
handler.do_destroy(indirection, "my data", {}, request, response)
|
442
440
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotAcceptableError)
|
443
441
|
|
444
442
|
Puppet::TestModel.indirection.find("my data").should_not be_nil
|
@@ -460,7 +458,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
460
458
|
request[:content_type_header] = "application/x-raw"
|
461
459
|
request[:body] = ''
|
462
460
|
|
463
|
-
handler.do_save(indirection
|
461
|
+
handler.do_save(indirection, "test", {}, request, response)
|
464
462
|
|
465
463
|
Puppet::TestModel.indirection.find("test").data.should == ''
|
466
464
|
end
|
@@ -469,7 +467,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
469
467
|
data = Puppet::TestModel.new("my data", "some data")
|
470
468
|
request = a_request_that_submits(data)
|
471
469
|
|
472
|
-
handler.do_save(indirection
|
470
|
+
handler.do_save(indirection, "my data", {}, request, response)
|
473
471
|
|
474
472
|
Puppet::TestModel.indirection.find("my data").should == data
|
475
473
|
end
|
@@ -481,7 +479,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
481
479
|
handler.expects(:set_response).with(response, data.render(:yaml))
|
482
480
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:yaml))
|
483
481
|
|
484
|
-
handler.do_save(indirection
|
482
|
+
handler.do_save(indirection, "my data", {}, request, response)
|
485
483
|
end
|
486
484
|
|
487
485
|
it "uses the first supported format for the response" do
|
@@ -491,7 +489,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
491
489
|
handler.expects(:set_response).with(response, data.render(:pson))
|
492
490
|
handler.expects(:set_content_type).with(response, Puppet::Network::FormatHandler.format(:pson))
|
493
491
|
|
494
|
-
handler.do_save(indirection
|
492
|
+
handler.do_save(indirection, "my data", {}, request, response)
|
495
493
|
end
|
496
494
|
|
497
495
|
it "raises an error and does not save when no accepted formats are known" do
|
@@ -499,7 +497,7 @@ describe Puppet::Network::HTTP::Handler do
|
|
499
497
|
request = a_request_that_submits(data, :accept_header => "unknown, also/unknown")
|
500
498
|
|
501
499
|
expect do
|
502
|
-
handler.do_save(indirection
|
500
|
+
handler.do_save(indirection, "my data", {}, request, response)
|
503
501
|
end.to raise_error(Puppet::Network::HTTP::Handler::HTTPNotAcceptableError)
|
504
502
|
|
505
503
|
Puppet::TestModel.indirection.find("my data").should be_nil
|
@@ -543,7 +541,8 @@ describe Puppet::Network::HTTP::Handler do
|
|
543
541
|
end
|
544
542
|
|
545
543
|
def set_response(response, body, status = 200)
|
546
|
-
|
544
|
+
response[:body] = body
|
545
|
+
response[:status] = status
|
547
546
|
end
|
548
547
|
|
549
548
|
def http_method(request)
|
@@ -3,6 +3,10 @@ require 'spec_helper'
|
|
3
3
|
require 'puppet/network/http_pool'
|
4
4
|
|
5
5
|
describe Puppet::Network::HttpPool do
|
6
|
+
before :each do
|
7
|
+
Puppet::SSL::Key.indirection.terminus_class = :memory
|
8
|
+
Puppet::SSL::CertificateRequest.indirection.terminus_class = :memory
|
9
|
+
end
|
6
10
|
|
7
11
|
describe "when managing http instances" do
|
8
12
|
|
@@ -26,15 +30,14 @@ describe Puppet::Network::HttpPool do
|
|
26
30
|
describe 'peer verification' do
|
27
31
|
def setup_standard_ssl_configuration
|
28
32
|
ca_cert_file = File.expand_path('/path/to/ssl/certs/ca_cert.pem')
|
29
|
-
FileTest.stubs(:exist?).with(ca_cert_file).returns(true)
|
30
33
|
|
31
|
-
|
32
|
-
Puppet::
|
34
|
+
Puppet[:ssl_client_ca_auth] = ca_cert_file
|
35
|
+
Puppet::FileSystem::File.stubs(:exist?).with(ca_cert_file).returns(true)
|
33
36
|
end
|
34
37
|
|
35
38
|
def setup_standard_hostcert
|
36
39
|
host_cert_file = File.expand_path('/path/to/ssl/certs/host_cert.pem')
|
37
|
-
|
40
|
+
Puppet::FileSystem::File.stubs(:exist?).with(host_cert_file).returns(true)
|
38
41
|
|
39
42
|
Puppet[:hostcert] = host_cert_file
|
40
43
|
end
|
@@ -44,7 +47,7 @@ describe Puppet::Network::HttpPool do
|
|
44
47
|
key = stub('key', :content => 'real_key')
|
45
48
|
host = stub('host', :certificate => cert, :key => key, :ssl_store => stub('store'))
|
46
49
|
|
47
|
-
Puppet::
|
50
|
+
Puppet::SSL::Host.stubs(:localhost).returns(host)
|
48
51
|
end
|
49
52
|
|
50
53
|
before do
|
@@ -20,111 +20,97 @@ describe Puppet::Node::Environment do
|
|
20
20
|
it "should use the filetimeout for the ttl for the modulepath" do
|
21
21
|
Puppet::Node::Environment.attr_ttl(:modulepath).should == Integer(Puppet[:filetimeout])
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should use the filetimeout for the ttl for the module list" do
|
25
25
|
Puppet::Node::Environment.attr_ttl(:modules).should == Integer(Puppet[:filetimeout])
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should use the default environment if no name is provided while initializing an environment" do
|
29
29
|
Puppet[:environment] = "one"
|
30
30
|
Puppet::Node::Environment.new.name.should == :one
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should treat environment instances as singletons" do
|
34
34
|
Puppet::Node::Environment.new("one").should equal(Puppet::Node::Environment.new("one"))
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should treat an environment specified as names or strings as equivalent" do
|
38
38
|
Puppet::Node::Environment.new(:one).should equal(Puppet::Node::Environment.new("one"))
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should return its name when converted to a string" do
|
42
42
|
Puppet::Node::Environment.new(:one).to_s.should == "one"
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should just return any provided environment if an environment is provided as the name" do
|
46
46
|
one = Puppet::Node::Environment.new(:one)
|
47
47
|
Puppet::Node::Environment.new(one).should equal(one)
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
describe "when managing known resource types" do
|
51
51
|
before do
|
52
52
|
@collection = Puppet::Resource::TypeCollection.new(env)
|
53
53
|
env.stubs(:perform_initial_import).returns(Puppet::Parser::AST::Hostclass.new(''))
|
54
|
-
|
54
|
+
$known_resource_types = nil
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
it "should create a resource type collection if none exists" do
|
58
58
|
Puppet::Resource::TypeCollection.expects(:new).with(env).returns @collection
|
59
59
|
env.known_resource_types.should equal(@collection)
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
it "should reuse any existing resource type collection" do
|
63
63
|
env.known_resource_types.should equal(env.known_resource_types)
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
it "should perform the initial import when creating a new collection" do
|
67
67
|
env.expects(:perform_initial_import).returns(Puppet::Parser::AST::Hostclass.new(''))
|
68
68
|
env.known_resource_types
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
it "should return the same collection even if stale if it's the same thread" do
|
72
72
|
Puppet::Resource::TypeCollection.stubs(:new).returns @collection
|
73
73
|
env.known_resource_types.stubs(:stale?).returns true
|
74
|
-
|
74
|
+
|
75
75
|
env.known_resource_types.should equal(@collection)
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
it "should return the current thread associated collection if there is one" do
|
79
|
-
|
80
|
-
|
79
|
+
$known_resource_types = @collection
|
80
|
+
|
81
81
|
env.known_resource_types.should equal(@collection)
|
82
82
|
end
|
83
|
-
|
84
|
-
it "should give to all threads using the same environment the same collection if the collection isn't stale" do
|
85
|
-
@original_thread_type_collection = Puppet::Resource::TypeCollection.new(env)
|
86
|
-
Puppet::Resource::TypeCollection.expects(:new).with(env).returns @original_thread_type_collection
|
87
|
-
env.known_resource_types.should equal(@original_thread_type_collection)
|
88
|
-
|
89
|
-
@original_thread_type_collection.expects(:require_reparse?).returns(false)
|
90
|
-
Puppet::Resource::TypeCollection.stubs(:new).with(env).returns @collection
|
91
|
-
|
92
|
-
t = Thread.new {
|
93
|
-
env.known_resource_types.should equal(@original_thread_type_collection)
|
94
|
-
}
|
95
|
-
t.join
|
96
|
-
end
|
97
|
-
|
83
|
+
|
98
84
|
it "should generate a new TypeCollection if the current one requires reparsing" do
|
99
85
|
old_type_collection = env.known_resource_types
|
100
86
|
old_type_collection.stubs(:require_reparse?).returns true
|
101
|
-
|
87
|
+
$known_resource_types = nil
|
102
88
|
new_type_collection = env.known_resource_types
|
103
|
-
|
89
|
+
|
104
90
|
new_type_collection.should be_a Puppet::Resource::TypeCollection
|
105
91
|
new_type_collection.should_not equal(old_type_collection)
|
106
92
|
end
|
107
93
|
end
|
108
|
-
|
94
|
+
|
109
95
|
it "should validate the modulepath directories" do
|
110
96
|
real_file = tmpdir('moduledir')
|
111
97
|
path = %W[/one /two #{real_file}].join(File::PATH_SEPARATOR)
|
112
|
-
|
98
|
+
|
113
99
|
Puppet[:modulepath] = path
|
114
|
-
|
100
|
+
|
115
101
|
env.modulepath.should == [real_file]
|
116
102
|
end
|
117
|
-
|
103
|
+
|
118
104
|
it "should prefix the value of the 'PUPPETLIB' environment variable to the module path if present" do
|
119
105
|
Puppet::Util.withenv("PUPPETLIB" => %w{/l1 /l2}.join(File::PATH_SEPARATOR)) do
|
120
106
|
module_path = %w{/one /two}.join(File::PATH_SEPARATOR)
|
121
107
|
env.expects(:validate_dirs).with(%w{/l1 /l2 /one /two}).returns %w{/l1 /l2 /one /two}
|
122
108
|
env.expects(:[]).with(:modulepath).returns module_path
|
123
|
-
|
109
|
+
|
124
110
|
env.modulepath.should == %w{/l1 /l2 /one /two}
|
125
111
|
end
|
126
112
|
end
|
127
|
-
|
113
|
+
|
128
114
|
describe "when validating modulepath or manifestdir directories" do
|
129
115
|
before :each do
|
130
116
|
@path_one = tmpdir("path_one")
|
@@ -132,69 +118,69 @@ describe Puppet::Node::Environment do
|
|
132
118
|
sep = File::PATH_SEPARATOR
|
133
119
|
Puppet[:modulepath] = "#{@path_one}#{sep}#{@path_two}"
|
134
120
|
end
|
135
|
-
|
121
|
+
|
136
122
|
it "should not return non-directories" do
|
137
123
|
FileTest.expects(:directory?).with(@path_one).returns true
|
138
124
|
FileTest.expects(:directory?).with(@path_two).returns false
|
139
|
-
|
125
|
+
|
140
126
|
env.validate_dirs([@path_one, @path_two]).should == [@path_one]
|
141
127
|
end
|
142
|
-
|
128
|
+
|
143
129
|
it "should use the current working directory to fully-qualify unqualified paths" do
|
144
130
|
FileTest.stubs(:directory?).returns true
|
145
|
-
|
146
131
|
two = File.expand_path("two")
|
132
|
+
|
147
133
|
env.validate_dirs([@path_one, 'two']).should == [@path_one, two]
|
148
134
|
end
|
149
135
|
end
|
150
|
-
|
136
|
+
|
151
137
|
describe "when modeling a specific environment" do
|
152
138
|
it "should have a method for returning the environment name" do
|
153
139
|
Puppet::Node::Environment.new("testing").name.should == :testing
|
154
140
|
end
|
155
|
-
|
141
|
+
|
156
142
|
it "should provide an array-like accessor method for returning any environment-specific setting" do
|
157
143
|
env.should respond_to(:[])
|
158
144
|
end
|
159
|
-
|
145
|
+
|
160
146
|
it "should ask the Puppet settings instance for the setting qualified with the environment name" do
|
161
147
|
Puppet.settings.set_value(:server, "myval", :testing)
|
162
148
|
env[:server].should == "myval"
|
163
149
|
end
|
164
|
-
|
150
|
+
|
165
151
|
it "should be able to return an individual module that exists in its module path" do
|
166
152
|
env.stubs(:modules).returns [Puppet::Module.new('one', "/one", mock("env"))]
|
167
|
-
|
153
|
+
|
168
154
|
mod = env.module('one')
|
169
155
|
mod.should be_a(Puppet::Module)
|
170
156
|
mod.name.should == 'one'
|
171
157
|
end
|
172
|
-
|
158
|
+
|
173
159
|
it "should not return a module if the module doesn't exist" do
|
174
160
|
env.stubs(:modules).returns [Puppet::Module.new('one', "/one", mock("env"))]
|
175
|
-
|
161
|
+
|
176
162
|
env.module('two').should be_nil
|
177
163
|
end
|
178
|
-
|
164
|
+
|
179
165
|
it "should return nil if asked for a module that does not exist in its path" do
|
180
166
|
modpath = tmpdir('modpath')
|
181
167
|
env.modulepath = [modpath]
|
182
|
-
|
168
|
+
|
183
169
|
env.module("one").should be_nil
|
184
170
|
end
|
185
|
-
|
171
|
+
|
186
172
|
describe "module data" do
|
187
173
|
before do
|
188
174
|
dir = tmpdir("deep_path")
|
189
|
-
|
175
|
+
|
190
176
|
@first = File.join(dir, "first")
|
191
177
|
@second = File.join(dir, "second")
|
192
178
|
Puppet[:modulepath] = "#{@first}#{File::PATH_SEPARATOR}#{@second}"
|
193
|
-
|
179
|
+
|
194
180
|
FileUtils.mkdir_p(@first)
|
195
181
|
FileUtils.mkdir_p(@second)
|
196
182
|
end
|
197
|
-
|
183
|
+
|
198
184
|
describe "#modules_by_path" do
|
199
185
|
it "should return an empty list if there are no modules" do
|
200
186
|
env.modules_by_path.should == {
|
@@ -202,19 +188,19 @@ describe Puppet::Node::Environment do
|
|
202
188
|
@second => []
|
203
189
|
}
|
204
190
|
end
|
205
|
-
|
191
|
+
|
206
192
|
it "should include modules even if they exist in multiple dirs in the modulepath" do
|
207
193
|
modpath1 = File.join(@first, "foo")
|
208
194
|
FileUtils.mkdir_p(modpath1)
|
209
195
|
modpath2 = File.join(@second, "foo")
|
210
196
|
FileUtils.mkdir_p(modpath2)
|
211
|
-
|
197
|
+
|
212
198
|
env.modules_by_path.should == {
|
213
199
|
@first => [Puppet::Module.new('foo', modpath1, env)],
|
214
200
|
@second => [Puppet::Module.new('foo', modpath2, env)]
|
215
201
|
}
|
216
202
|
end
|
217
|
-
|
203
|
+
|
218
204
|
it "should ignore modules with invalid names" do
|
219
205
|
FileUtils.mkdir_p(File.join(@first, 'foo'))
|
220
206
|
FileUtils.mkdir_p(File.join(@first, 'foo2'))
|
@@ -226,12 +212,12 @@ describe Puppet::Node::Environment do
|
|
226
212
|
FileUtils.mkdir_p(File.join(@first, '-foo'))
|
227
213
|
FileUtils.mkdir_p(File.join(@first, 'foo-'))
|
228
214
|
FileUtils.mkdir_p(File.join(@first, 'foo--bar'))
|
229
|
-
|
215
|
+
|
230
216
|
env.modules_by_path[@first].collect{|mod| mod.name}.sort.should == %w{foo foo-bar foo2 foo_bar}
|
231
217
|
end
|
232
|
-
|
218
|
+
|
233
219
|
end
|
234
|
-
|
220
|
+
|
235
221
|
describe "#module_requirements" do
|
236
222
|
it "should return a list of what modules depend on other modules" do
|
237
223
|
PuppetSpec::Modules.create(
|
@@ -266,7 +252,7 @@ describe Puppet::Node::Environment do
|
|
266
252
|
:dependencies => [{ 'name' => 'puppetlabs/bar', "version_requirement" => "~3.0.0" }]
|
267
253
|
}
|
268
254
|
)
|
269
|
-
|
255
|
+
|
270
256
|
env.module_requirements.should == {
|
271
257
|
'puppetlabs/alpha' => [],
|
272
258
|
'puppetlabs/foo' => [
|
@@ -297,7 +283,7 @@ describe Puppet::Node::Environment do
|
|
297
283
|
}
|
298
284
|
end
|
299
285
|
end
|
300
|
-
|
286
|
+
|
301
287
|
describe ".module_by_forge_name" do
|
302
288
|
it "should find modules by forge_name" do
|
303
289
|
mod = PuppetSpec::Modules.create(
|
@@ -308,7 +294,7 @@ describe Puppet::Node::Environment do
|
|
308
294
|
)
|
309
295
|
env.module_by_forge_name('puppetlabs/baz').should == mod
|
310
296
|
end
|
311
|
-
|
297
|
+
|
312
298
|
it "should not find modules with same name by the wrong author" do
|
313
299
|
mod = PuppetSpec::Modules.create(
|
314
300
|
'baz',
|
@@ -318,17 +304,17 @@ describe Puppet::Node::Environment do
|
|
318
304
|
)
|
319
305
|
env.module_by_forge_name('puppetlabs/baz').should == nil
|
320
306
|
end
|
321
|
-
|
307
|
+
|
322
308
|
it "should return nil when the module can't be found" do
|
323
309
|
env.module_by_forge_name('ima/nothere').should be_nil
|
324
310
|
end
|
325
311
|
end
|
326
|
-
|
312
|
+
|
327
313
|
describe ".modules" do
|
328
314
|
it "should return an empty list if there are no modules" do
|
329
315
|
env.modules.should == []
|
330
316
|
end
|
331
|
-
|
317
|
+
|
332
318
|
it "should return a module named for every directory in each module path" do
|
333
319
|
%w{foo bar}.each do |mod_name|
|
334
320
|
FileUtils.mkdir_p(File.join(@first, mod_name))
|
@@ -338,14 +324,14 @@ describe Puppet::Node::Environment do
|
|
338
324
|
end
|
339
325
|
env.modules.collect{|mod| mod.name}.sort.should == %w{foo bar bee baz}.sort
|
340
326
|
end
|
341
|
-
|
327
|
+
|
342
328
|
it "should remove duplicates" do
|
343
329
|
FileUtils.mkdir_p(File.join(@first, 'foo'))
|
344
330
|
FileUtils.mkdir_p(File.join(@second, 'foo'))
|
345
|
-
|
331
|
+
|
346
332
|
env.modules.collect{|mod| mod.name}.sort.should == %w{foo}
|
347
333
|
end
|
348
|
-
|
334
|
+
|
349
335
|
it "should ignore modules with invalid names" do
|
350
336
|
FileUtils.mkdir_p(File.join(@first, 'foo'))
|
351
337
|
FileUtils.mkdir_p(File.join(@first, 'foo2'))
|
@@ -353,63 +339,63 @@ describe Puppet::Node::Environment do
|
|
353
339
|
FileUtils.mkdir_p(File.join(@first, 'foo_bar'))
|
354
340
|
FileUtils.mkdir_p(File.join(@first, 'foo=bar'))
|
355
341
|
FileUtils.mkdir_p(File.join(@first, 'foo bar'))
|
356
|
-
|
342
|
+
|
357
343
|
env.modules.collect{|mod| mod.name}.sort.should == %w{foo foo-bar foo2 foo_bar}
|
358
344
|
end
|
359
|
-
|
345
|
+
|
360
346
|
it "should create modules with the correct environment" do
|
361
347
|
FileUtils.mkdir_p(File.join(@first, 'foo'))
|
362
348
|
env.modules.each {|mod| mod.environment.should == env }
|
363
349
|
end
|
364
|
-
|
350
|
+
|
365
351
|
end
|
366
352
|
end
|
367
|
-
|
353
|
+
|
368
354
|
it "should cache the module list" do
|
369
355
|
env.modulepath = %w{/a}
|
370
356
|
Dir.expects(:entries).once.with("/a").returns %w{foo}
|
371
|
-
|
357
|
+
|
372
358
|
env.modules
|
373
359
|
env.modules
|
374
360
|
end
|
375
361
|
end
|
376
|
-
|
362
|
+
|
377
363
|
describe Puppet::Node::Environment::Helper do
|
378
364
|
before do
|
379
365
|
@helper = Object.new
|
380
366
|
@helper.extend(Puppet::Node::Environment::Helper)
|
381
367
|
end
|
382
|
-
|
368
|
+
|
383
369
|
it "should be able to set and retrieve the environment as a symbol" do
|
384
370
|
@helper.environment = :foo
|
385
371
|
@helper.environment.name.should == :foo
|
386
372
|
end
|
387
|
-
|
373
|
+
|
388
374
|
it "should accept an environment directly" do
|
389
375
|
@helper.environment = Puppet::Node::Environment.new(:foo)
|
390
376
|
@helper.environment.name.should == :foo
|
391
377
|
end
|
392
|
-
|
378
|
+
|
393
379
|
it "should accept an environment as a string" do
|
394
380
|
@helper.environment = 'foo'
|
395
381
|
@helper.environment.name.should == :foo
|
396
382
|
end
|
397
383
|
end
|
398
|
-
|
384
|
+
|
399
385
|
describe "when performing initial import" do
|
400
386
|
before do
|
401
387
|
@parser = Puppet::Parser::ParserFactory.parser("test")
|
402
388
|
# @parser = Puppet::Parser::EParserAdapter.new(Puppet::Parser::Parser.new("test")) # TODO: FIX PARSER FACTORY
|
403
389
|
Puppet::Parser::ParserFactory.stubs(:parser).returns @parser
|
404
390
|
end
|
405
|
-
|
391
|
+
|
406
392
|
it "should set the parser's string to the 'code' setting and parse if code is available" do
|
407
393
|
Puppet.settings[:code] = "my code"
|
408
394
|
@parser.expects(:string=).with "my code"
|
409
395
|
@parser.expects(:parse)
|
410
396
|
env.instance_eval { perform_initial_import }
|
411
397
|
end
|
412
|
-
|
398
|
+
|
413
399
|
it "should set the parser's file to the 'manifest' setting and parse if no code is available and the manifest is available" do
|
414
400
|
filename = tmpfile('myfile')
|
415
401
|
File.open(filename, 'w'){|f| }
|
@@ -418,7 +404,7 @@ describe Puppet::Node::Environment do
|
|
418
404
|
@parser.expects(:parse)
|
419
405
|
env.instance_eval { perform_initial_import }
|
420
406
|
end
|
421
|
-
|
407
|
+
|
422
408
|
it "should pass the manifest file to the parser even if it does not exist on disk" do
|
423
409
|
filename = tmpfile('myfile')
|
424
410
|
Puppet.settings[:code] = ""
|
@@ -427,15 +413,15 @@ describe Puppet::Node::Environment do
|
|
427
413
|
@parser.expects(:parse).once
|
428
414
|
env.instance_eval { perform_initial_import }
|
429
415
|
end
|
430
|
-
|
416
|
+
|
431
417
|
it "should fail helpfully if there is an error importing" do
|
432
|
-
File.stubs(:exist?).returns true
|
418
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
433
419
|
env.stubs(:known_resource_types).returns Puppet::Resource::TypeCollection.new(env)
|
434
420
|
@parser.expects(:file=).once
|
435
421
|
@parser.expects(:parse).raises ArgumentError
|
436
422
|
lambda { env.instance_eval { perform_initial_import } }.should raise_error(Puppet::Error)
|
437
423
|
end
|
438
|
-
|
424
|
+
|
439
425
|
it "should not do anything if the ignore_import settings is set" do
|
440
426
|
Puppet.settings[:ignoreimport] = true
|
441
427
|
@parser.expects(:string=).never
|
@@ -443,11 +429,11 @@ describe Puppet::Node::Environment do
|
|
443
429
|
@parser.expects(:parse).never
|
444
430
|
env.instance_eval { perform_initial_import }
|
445
431
|
end
|
446
|
-
|
432
|
+
|
447
433
|
it "should mark the type collection as needing a reparse when there is an error parsing" do
|
448
434
|
@parser.expects(:parse).raises Puppet::ParseError.new("Syntax error at ...")
|
449
435
|
env.stubs(:known_resource_types).returns Puppet::Resource::TypeCollection.new(env)
|
450
|
-
|
436
|
+
|
451
437
|
lambda { env.instance_eval { perform_initial_import } }.should raise_error(Puppet::Error, /Syntax error at .../)
|
452
438
|
env.known_resource_types.require_reparse?.should be_true
|
453
439
|
end
|
@@ -465,5 +451,5 @@ describe Puppet::Node::Environment do
|
|
465
451
|
end
|
466
452
|
it_behaves_like 'the environment'
|
467
453
|
end
|
468
|
-
|
454
|
+
|
469
455
|
end
|