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
@@ -1,8 +1,17 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
require 'spec_helper'
|
3
|
-
require 'matchers/json'
|
4
3
|
require 'puppet/node/facts'
|
5
4
|
|
5
|
+
# the json-schema gem doesn't support windows
|
6
|
+
if not Puppet.features.microsoft_windows?
|
7
|
+
describe "catalog facts schema" do
|
8
|
+
it "should validate against the json meta-schema" do
|
9
|
+
JSON::Validator.validate!(JSON_META_SCHEMA, FACTS_SCHEMA)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
6
15
|
describe Puppet::Node::Facts, "when indirecting" do
|
7
16
|
before do
|
8
17
|
@facts = Puppet::Node::Facts.new("me")
|
@@ -143,8 +152,16 @@ describe Puppet::Node::Facts, "when indirecting" do
|
|
143
152
|
result = PSON.parse(facts.to_pson)
|
144
153
|
result['name'].should == facts.name
|
145
154
|
result['values'].should == facts.values.reject { |key, value| key.to_s =~ /_/ }
|
146
|
-
result['timestamp'].should == facts.timestamp.
|
147
|
-
result['expiration'].should == facts.expiration.
|
155
|
+
result['timestamp'].should == facts.timestamp.iso8601(9)
|
156
|
+
result['expiration'].should == facts.expiration.iso8601(9)
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should generate valid facts data against the facts schema", :unless => Puppet.features.microsoft_windows? do
|
160
|
+
Time.stubs(:now).returns(@timestamp)
|
161
|
+
facts = Puppet::Node::Facts.new("foo", {'a' => 1, 'b' => 2, 'c' => 3})
|
162
|
+
facts.expiration = @expiration
|
163
|
+
|
164
|
+
JSON::Validator.validate!(FACTS_SCHEMA, facts.to_pson)
|
148
165
|
end
|
149
166
|
|
150
167
|
it "should not include nil values" do
|
data/spec/unit/node_spec.rb
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'matchers/json'
|
4
4
|
|
5
|
+
# the json-schema gem doesn't support windows
|
6
|
+
if not Puppet.features.microsoft_windows?
|
7
|
+
NODE_SCHEMA = JSON.parse(File.read(File.join(File.dirname(__FILE__), '../../api/schemas/node.json')))
|
8
|
+
|
9
|
+
describe "node schema" do
|
10
|
+
it "should validate against the json meta-schema" do
|
11
|
+
JSON::Validator.validate!(JSON_META_SCHEMA, NODE_SCHEMA)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
5
16
|
describe Puppet::Node do
|
6
17
|
it "should register its document type as Node" do
|
7
18
|
PSON.registered_document_types["Node"].should equal(Puppet::Node)
|
@@ -55,6 +66,38 @@ describe Puppet::Node do
|
|
55
66
|
new_node.name.should == node.name
|
56
67
|
end
|
57
68
|
|
69
|
+
it "can round-trip through pson" do
|
70
|
+
facts = Puppet::Node::Facts.new("hello", "one" => "c", "two" => "b")
|
71
|
+
node = Puppet::Node.new("hello",
|
72
|
+
:environment => 'kjhgrg',
|
73
|
+
:classes => ['erth', 'aiu'],
|
74
|
+
:parameters => {"hostname"=>"food"}
|
75
|
+
)
|
76
|
+
new_node = Puppet::Node.convert_from('pson', node.render('pson'))
|
77
|
+
new_node.environment.should == node.environment
|
78
|
+
new_node.parameters.should == node.parameters
|
79
|
+
new_node.classes.should == node.classes
|
80
|
+
new_node.name.should == node.name
|
81
|
+
end
|
82
|
+
|
83
|
+
it "validates against the node json schema", :unless => Puppet.features.microsoft_windows? do
|
84
|
+
facts = Puppet::Node::Facts.new("hello", "one" => "c", "two" => "b")
|
85
|
+
node = Puppet::Node.new("hello",
|
86
|
+
:environment => 'kjhgrg',
|
87
|
+
:classes => ['erth', 'aiu'],
|
88
|
+
:parameters => {"hostname"=>"food"}
|
89
|
+
)
|
90
|
+
JSON::Validator.validate!(NODE_SCHEMA, node.to_pson)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "when missing optional parameters validates against the node json schema", :unless => Puppet.features.microsoft_windows? do
|
94
|
+
facts = Puppet::Node::Facts.new("hello", "one" => "c", "two" => "b")
|
95
|
+
node = Puppet::Node.new("hello",
|
96
|
+
:environment => 'kjhgrg'
|
97
|
+
)
|
98
|
+
JSON::Validator.validate!(NODE_SCHEMA, node.to_pson)
|
99
|
+
end
|
100
|
+
|
58
101
|
describe "when converting to json" do
|
59
102
|
before do
|
60
103
|
@node = Puppet::Node.new("mynode")
|
@@ -5,21 +5,31 @@ require 'puppet/parameter/boolean'
|
|
5
5
|
|
6
6
|
describe Puppet::Parameter::Boolean do
|
7
7
|
let (:resource) { mock('resource') }
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
describe "after initvars" do
|
9
|
+
before { described_class.initvars }
|
10
|
+
it "should have the correct value_collection" do
|
11
|
+
described_class.value_collection.values.sort.should ==
|
12
|
+
[:true, :false, :yes, :no].sort
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
|
16
|
+
describe "instances" do
|
17
|
+
subject { described_class.new(:resource => resource) }
|
18
|
+
|
19
|
+
[ true, :true, 'true', :yes, 'yes', 'TrUe', 'yEs' ].each do |arg|
|
20
|
+
it "should munge #{arg.inspect} as true" do
|
21
|
+
subject.munge(arg).should == true
|
22
|
+
end
|
18
23
|
end
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
24
|
+
[ false, :false, 'false', :no, 'no', 'FaLSE', 'nO' ].each do |arg|
|
25
|
+
it "should munge #{arg.inspect} as false" do
|
26
|
+
subject.munge(arg).should == false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
[ nil, :undef, 'undef', '0', 0, '1', 1, 9284 ].each do |arg|
|
30
|
+
it "should fail to munge #{arg.inspect}" do
|
31
|
+
expect { subject.munge(arg) }.to raise_error Puppet::Error
|
32
|
+
end
|
23
33
|
end
|
24
34
|
end
|
25
35
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Puppet::Parser::AST::ResourceParam do
|
5
|
+
|
6
|
+
ast = Puppet::Parser::AST
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
@compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("mynode"))
|
10
|
+
@scope = Puppet::Parser::Scope.new(@compiler)
|
11
|
+
@params = ast::ASTArray.new({})
|
12
|
+
@compiler.stubs(:add_override)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should evaluate the parameter value" do
|
16
|
+
object = mock 'object'
|
17
|
+
object.expects(:safeevaluate).with(@scope).returns('value')
|
18
|
+
ast::ResourceParam.new(:param => 'myparam', :value => object).evaluate(@scope)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return a Puppet::Parser::Resource::Param on evaluation" do
|
22
|
+
object = mock 'object'
|
23
|
+
object.expects(:safeevaluate).with(@scope).returns('value')
|
24
|
+
evaled = ast::ResourceParam.new(:param => 'myparam', :value => object).evaluate(@scope)
|
25
|
+
evaled.should be_a(Puppet::Parser::Resource::Param)
|
26
|
+
evaled.name.to_s.should == 'myparam'
|
27
|
+
evaled.value.to_s.should == 'value'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should copy line numbers to Puppet::Parser::Resource::Param" do
|
31
|
+
object = mock 'object'
|
32
|
+
object.expects(:safeevaluate).with(@scope).returns('value')
|
33
|
+
evaled = ast::ResourceParam.new(:param => 'myparam', :value => object, :line => 42).evaluate(@scope)
|
34
|
+
evaled.line.should == 42
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should copy source file to Puppet::Parser::Resource::Param" do
|
38
|
+
object = mock 'object'
|
39
|
+
object.expects(:safeevaluate).with(@scope).returns('value')
|
40
|
+
evaled = ast::ResourceParam.new(:param => 'myparam', :value => object, :file => 'foo.pp').evaluate(@scope)
|
41
|
+
evaled.file.should == 'foo.pp'
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should change nil parameter values to undef" do
|
45
|
+
object = mock 'object'
|
46
|
+
object.expects(:safeevaluate).with(@scope).returns(nil)
|
47
|
+
evaled = ast::ResourceParam.new(:param => 'myparam', :value => object).evaluate(@scope)
|
48
|
+
evaled.should be_a(Puppet::Parser::Resource::Param)
|
49
|
+
evaled.value.should == :undef
|
50
|
+
end
|
51
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
require 'spec_helper'
|
3
|
+
require 'puppet_spec/compiler'
|
3
4
|
|
4
5
|
class CompilerTestResource
|
5
6
|
attr_accessor :builtin, :virtual, :evaluated, :type, :title
|
@@ -106,22 +107,20 @@ describe Puppet::Parser::Compiler do
|
|
106
107
|
@compiler.classlist.sort.should == %w{one two}.sort
|
107
108
|
end
|
108
109
|
|
109
|
-
it "should clear the
|
110
|
+
it "should clear the global caches before compile" do
|
110
111
|
compiler = stub 'compiler'
|
111
112
|
Puppet::Parser::Compiler.expects(:new).with(@node).returns compiler
|
112
113
|
catalog = stub 'catalog'
|
113
114
|
compiler.expects(:compile).returns catalog
|
114
115
|
catalog.expects(:to_resource)
|
115
116
|
|
116
|
-
|
117
|
-
|
118
|
-
end
|
117
|
+
$known_resource_types = "rspec"
|
118
|
+
$env_module_directories = "rspec"
|
119
119
|
|
120
120
|
Puppet::Parser::Compiler.compile(@node)
|
121
121
|
|
122
|
-
|
123
|
-
|
124
|
-
end
|
122
|
+
$known_resource_types = nil
|
123
|
+
$env_module_directories = nil
|
125
124
|
end
|
126
125
|
|
127
126
|
describe "when initializing" do
|
@@ -218,27 +217,6 @@ describe Puppet::Parser::Compiler do
|
|
218
217
|
@compiler.catalog.server_version.should == "3"
|
219
218
|
end
|
220
219
|
|
221
|
-
it "should evaluate any existing classes named in the node" do
|
222
|
-
classes = %w{one two three four}
|
223
|
-
main = stub 'main'
|
224
|
-
one = stub 'one', :name => "one"
|
225
|
-
three = stub 'three', :name => "three"
|
226
|
-
@node.stubs(:name).returns("whatever")
|
227
|
-
@node.stubs(:classes).returns(classes)
|
228
|
-
compile_stub(:evaluate_node_classes)
|
229
|
-
|
230
|
-
@compiler.expects(:evaluate_classes).with(classes, @compiler.topscope)
|
231
|
-
@compiler.compile
|
232
|
-
end
|
233
|
-
|
234
|
-
it "should evaluate any parameterized classes named in the node" do
|
235
|
-
classes = {'foo'=>{'p1'=>'one'}, 'bar'=>{'p2'=>'two'}}
|
236
|
-
@node.stubs(:classes).returns(classes)
|
237
|
-
@compiler.expects(:evaluate_classes).with(classes, @compiler.topscope)
|
238
|
-
@compiler.compile
|
239
|
-
end
|
240
|
-
|
241
|
-
|
242
220
|
it "should evaluate the main class if it exists" do
|
243
221
|
compile_stub(:evaluate_main)
|
244
222
|
main_class = @known_resource_types.add Puppet::Resource::Type.new(:hostclass, "")
|
@@ -262,12 +240,6 @@ describe Puppet::Parser::Compiler do
|
|
262
240
|
@compiler.catalog.edge?(stage, klass).should be_true
|
263
241
|
end
|
264
242
|
|
265
|
-
it "should evaluate any node classes" do
|
266
|
-
@node.stubs(:classes).returns(%w{one two three four})
|
267
|
-
@compiler.expects(:evaluate_classes).with(%w{one two three four}, @compiler.topscope)
|
268
|
-
@compiler.send(:evaluate_node_classes)
|
269
|
-
end
|
270
|
-
|
271
243
|
it "should evaluate all added collections" do
|
272
244
|
colls = []
|
273
245
|
# And when the collections fail to evaluate.
|
@@ -655,7 +627,7 @@ describe Puppet::Parser::Compiler do
|
|
655
627
|
catalog = @compiler.compile
|
656
628
|
|
657
629
|
r2 = catalog.resources.detect {|r| r.title == 'Bar::Foo' }
|
658
|
-
r2.tags.should
|
630
|
+
r2.tags.should == Puppet::Util::TagSet.new(['bar::foo', 'class', 'bar', 'foo'])
|
659
631
|
end
|
660
632
|
end
|
661
633
|
|
@@ -791,6 +763,102 @@ describe Puppet::Parser::Compiler do
|
|
791
763
|
end
|
792
764
|
end
|
793
765
|
|
766
|
+
describe "when evaluating node classes" do
|
767
|
+
include PuppetSpec::Compiler
|
768
|
+
|
769
|
+
describe "when provided classes in array format" do
|
770
|
+
let(:node) { Puppet::Node.new('someone', :classes => ['something']) }
|
771
|
+
|
772
|
+
describe "when the class exists" do
|
773
|
+
it "should succeed if the class is already included" do
|
774
|
+
manifest = <<-MANIFEST
|
775
|
+
class something {}
|
776
|
+
include something
|
777
|
+
MANIFEST
|
778
|
+
|
779
|
+
catalog = compile_to_catalog(manifest, node)
|
780
|
+
|
781
|
+
catalog.resource('Class', 'Something').should_not be_nil
|
782
|
+
end
|
783
|
+
|
784
|
+
it "should evaluate the class without parameters if it's not already included" do
|
785
|
+
manifest = "class something {}"
|
786
|
+
|
787
|
+
catalog = compile_to_catalog(manifest, node)
|
788
|
+
|
789
|
+
catalog.resource('Class', 'Something').should_not be_nil
|
790
|
+
end
|
791
|
+
end
|
792
|
+
|
793
|
+
it "should fail if the class doesn't exist" do
|
794
|
+
expect { compile_to_catalog('', node) }.to raise_error(Puppet::Error, /Could not find class something/)
|
795
|
+
end
|
796
|
+
end
|
797
|
+
|
798
|
+
describe "when provided classes in hash format" do
|
799
|
+
describe "for classes without parameters" do
|
800
|
+
let(:node) { Puppet::Node.new('someone', :classes => {'something' => {}}) }
|
801
|
+
|
802
|
+
describe "when the class exists" do
|
803
|
+
it "should succeed if the class is already included" do
|
804
|
+
manifest = <<-MANIFEST
|
805
|
+
class something {}
|
806
|
+
include something
|
807
|
+
MANIFEST
|
808
|
+
|
809
|
+
catalog = compile_to_catalog(manifest, node)
|
810
|
+
|
811
|
+
catalog.resource('Class', 'Something').should_not be_nil
|
812
|
+
end
|
813
|
+
|
814
|
+
it "should evaluate the class if it's not already included" do
|
815
|
+
manifest = <<-MANIFEST
|
816
|
+
class something {}
|
817
|
+
MANIFEST
|
818
|
+
|
819
|
+
catalog = compile_to_catalog(manifest, node)
|
820
|
+
|
821
|
+
catalog.resource('Class', 'Something').should_not be_nil
|
822
|
+
end
|
823
|
+
end
|
824
|
+
|
825
|
+
it "should fail if the class doesn't exist" do
|
826
|
+
expect { compile_to_catalog('', node) }.to raise_error(Puppet::Error, /Could not find class something/)
|
827
|
+
end
|
828
|
+
end
|
829
|
+
|
830
|
+
describe "for classes with parameters" do
|
831
|
+
let(:node) { Puppet::Node.new('someone', :classes => {'something' => {'configuron' => 'defrabulated'}}) }
|
832
|
+
|
833
|
+
describe "when the class exists" do
|
834
|
+
it "should fail if the class is already included" do
|
835
|
+
manifest = <<-MANIFEST
|
836
|
+
class something($configuron=frabulated) {}
|
837
|
+
include something
|
838
|
+
MANIFEST
|
839
|
+
|
840
|
+
expect { compile_to_catalog(manifest, node) }.to raise_error(Puppet::Error, /Class\[Something\] is already declared/)
|
841
|
+
end
|
842
|
+
|
843
|
+
it "should evaluate the class if it's not already included" do
|
844
|
+
manifest = <<-MANIFEST
|
845
|
+
class something($configuron=frabulated) {}
|
846
|
+
MANIFEST
|
847
|
+
|
848
|
+
catalog = compile_to_catalog(manifest, node)
|
849
|
+
|
850
|
+
resource = catalog.resource('Class', 'Something')
|
851
|
+
resource['configuron'].should == 'defrabulated'
|
852
|
+
end
|
853
|
+
end
|
854
|
+
|
855
|
+
it "should fail if the class doesn't exist" do
|
856
|
+
expect { compile_to_catalog('', node) }.to raise_error(Puppet::Error, /Could not find class something/)
|
857
|
+
end
|
858
|
+
end
|
859
|
+
end
|
860
|
+
end
|
861
|
+
|
794
862
|
describe "when managing resource overrides" do
|
795
863
|
|
796
864
|
before do
|
@@ -365,42 +365,42 @@ describe Puppet::Parser do
|
|
365
365
|
end
|
366
366
|
context "when parsing method calls" do
|
367
367
|
it "should parse method call with one param lambda" do
|
368
|
-
expect { @parser.parse("$a.
|
368
|
+
expect { @parser.parse("$a.each |$a|{ debug $a }") }.to_not raise_error
|
369
369
|
end
|
370
370
|
it "should parse method call with two param lambda" do
|
371
|
-
expect { @parser.parse("$a.
|
371
|
+
expect { @parser.parse("$a.each |$a,$b|{ debug $a }") }.to_not raise_error
|
372
372
|
end
|
373
373
|
it "should parse method call with two param lambda and default value" do
|
374
|
-
expect { @parser.parse("$a.
|
374
|
+
expect { @parser.parse("$a.each |$a,$b=1|{ debug $a }") }.to_not raise_error
|
375
375
|
end
|
376
376
|
it "should parse method call without lambda (statement)" do
|
377
|
-
expect { @parser.parse("$a.
|
377
|
+
expect { @parser.parse("$a.each") }.to_not raise_error
|
378
378
|
end
|
379
379
|
it "should parse method call without lambda (expression)" do
|
380
|
-
expect { @parser.parse("$x = $a.
|
380
|
+
expect { @parser.parse("$x = $a.each + 1") }.to_not raise_error
|
381
381
|
end
|
382
382
|
context "a receiver expression of type" do
|
383
383
|
it "variable should be allowed" do
|
384
|
-
expect { @parser.parse("$a.
|
384
|
+
expect { @parser.parse("$a.each") }.to_not raise_error
|
385
385
|
end
|
386
386
|
it "hasharrayaccess should be allowed" do
|
387
|
-
expect { @parser.parse("$a[0][1].
|
387
|
+
expect { @parser.parse("$a[0][1].each") }.to_not raise_error
|
388
388
|
end
|
389
389
|
it "quoted text should be allowed" do
|
390
|
-
expect { @parser.parse("\"monkey\".
|
391
|
-
expect { @parser.parse("'monkey'.
|
390
|
+
expect { @parser.parse("\"monkey\".each") }.to_not raise_error
|
391
|
+
expect { @parser.parse("'monkey'.each") }.to_not raise_error
|
392
392
|
end
|
393
393
|
it "selector text should be allowed" do
|
394
|
-
expect { @parser.parse("$a ? { 'banana'=>[1,2,3]}.
|
394
|
+
expect { @parser.parse("$a ? { 'banana'=>[1,2,3]}.each") }.to_not raise_error
|
395
395
|
end
|
396
396
|
it "function call should be allowed" do
|
397
|
-
expect { @parser.parse("duh(1,2,3).
|
397
|
+
expect { @parser.parse("duh(1,2,3).each") }.to_not raise_error
|
398
398
|
end
|
399
399
|
it "method call should be allowed" do
|
400
400
|
expect { @parser.parse("$a.foo.bar") }.to_not raise_error
|
401
401
|
end
|
402
402
|
it "chained method calls with lambda should be allowed" do
|
403
|
-
expect { @parser.parse("$a.foo{
|
403
|
+
expect { @parser.parse("$a.foo||{}.bar||{}") }.to_not raise_error
|
404
404
|
end
|
405
405
|
end
|
406
406
|
end
|
@@ -28,7 +28,7 @@ describe Puppet::Parser::Files do
|
|
28
28
|
Puppet[:templatedir] = "/my/templates"
|
29
29
|
Puppet[:modulepath] = "/one:/two"
|
30
30
|
File.stubs(:directory?).returns(true)
|
31
|
-
|
31
|
+
Puppet::FileSystem::File.stubs(:exist?).returns(true)
|
32
32
|
Puppet::Parser::Files.find_template("mymod/mytemplate").should == File.join(Puppet[:templatedir], "mymod/mytemplate")
|
33
33
|
end
|
34
34
|
|
@@ -43,59 +43,59 @@ describe Puppet::Parser::Files do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should return unqualified templates if they exist in the template dir" do
|
46
|
-
|
46
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
47
47
|
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
48
48
|
Puppet::Parser::Files.find_template("mytemplate").should == "/my/templates/mytemplate"
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should only return templates if they actually exist" do
|
52
|
-
|
52
|
+
Puppet::FileSystem::File.expects(:exist?).with("/my/templates/mytemplate").returns true
|
53
53
|
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
54
54
|
Puppet::Parser::Files.find_template("mytemplate").should == "/my/templates/mytemplate"
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should return nil when asked for a template that doesn't exist" do
|
58
|
-
|
58
|
+
Puppet::FileSystem::File.expects(:exist?).with("/my/templates/mytemplate").returns false
|
59
59
|
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
60
60
|
Puppet::Parser::Files.find_template("mytemplate").should be_nil
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should search in the template directories before modules" do
|
64
|
-
|
64
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
65
65
|
Puppet::Parser::Files.stubs(:templatepath).with(nil).returns(["/my/templates"])
|
66
66
|
Puppet::Module.expects(:find).never
|
67
67
|
Puppet::Parser::Files.find_template("mytemplate")
|
68
68
|
end
|
69
69
|
|
70
70
|
it "should accept relative templatedirs" do
|
71
|
-
|
71
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
72
72
|
Puppet[:templatedir] = "my/templates"
|
73
73
|
File.expects(:directory?).with(File.expand_path("my/templates")).returns(true)
|
74
74
|
Puppet::Parser::Files.find_template("mytemplate").should == File.expand_path("my/templates/mytemplate")
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should use the environment templatedir if no module is found and an environment is specified" do
|
78
|
-
|
78
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
79
79
|
Puppet::Parser::Files.stubs(:templatepath).with("myenv").returns(["/myenv/templates"])
|
80
80
|
Puppet::Parser::Files.find_template("mymod/mytemplate", "myenv").should == "/myenv/templates/mymod/mytemplate"
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should use first dir from environment templatedir if no module is found and an environment is specified" do
|
84
|
-
|
84
|
+
Puppet::FileSystem::File.stubs(:exist?).returns true
|
85
85
|
Puppet::Parser::Files.stubs(:templatepath).with("myenv").returns(["/myenv/templates", "/two/templates"])
|
86
86
|
Puppet::Parser::Files.find_template("mymod/mytemplate", "myenv").should == "/myenv/templates/mymod/mytemplate"
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should use a valid dir when templatedir is a path for unqualified templates and the first dir contains template" do
|
90
90
|
Puppet::Parser::Files.stubs(:templatepath).returns(["/one/templates", "/two/templates"])
|
91
|
-
|
91
|
+
Puppet::FileSystem::File.expects(:exist?).with("/one/templates/mytemplate").returns(true)
|
92
92
|
Puppet::Parser::Files.find_template("mytemplate").should == "/one/templates/mytemplate"
|
93
93
|
end
|
94
94
|
|
95
95
|
it "should use a valid dir when templatedir is a path for unqualified templates and only second dir contains template" do
|
96
96
|
Puppet::Parser::Files.stubs(:templatepath).returns(["/one/templates", "/two/templates"])
|
97
|
-
|
98
|
-
|
97
|
+
Puppet::FileSystem::File.expects(:exist?).with("/one/templates/mytemplate").returns(false)
|
98
|
+
Puppet::FileSystem::File.expects(:exist?).with("/two/templates/mytemplate").returns(true)
|
99
99
|
Puppet::Parser::Files.find_template("mytemplate").should == "/two/templates/mytemplate"
|
100
100
|
end
|
101
101
|
|