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
@@ -60,20 +60,20 @@ describe "transformation to Puppet AST for function calls" do
|
|
60
60
|
astdump(parse("$a.foo")).should == "(call-method (. $a foo))"
|
61
61
|
end
|
62
62
|
|
63
|
-
it "$a.foo {
|
63
|
+
it "$a.foo ||{ }" do
|
64
64
|
astdump(parse("$a.foo || { }")).should == "(call-method (. $a foo) (lambda ()))"
|
65
65
|
end
|
66
66
|
|
67
|
-
it "$a.foo {
|
68
|
-
astdump(parse("$a.foo || {
|
67
|
+
it "$a.foo ||{[]} # check transformation to block with empty array" do
|
68
|
+
astdump(parse("$a.foo || {[]}")).should == "(call-method (. $a foo) (lambda (block ([]))))"
|
69
69
|
end
|
70
70
|
|
71
71
|
it "$a.foo {|$x| }" do
|
72
|
-
astdump(parse("$a.foo
|
72
|
+
astdump(parse("$a.foo |$x| { }")).should == "(call-method (. $a foo) (lambda (parameters x) ()))"
|
73
73
|
end
|
74
74
|
|
75
|
-
it "$a.foo
|
76
|
-
astdump(parse("$a.foo
|
75
|
+
it "$a.foo |$x| { $b = $x}" do
|
76
|
+
astdump(parse("$a.foo |$x| { $b = $x}")).should ==
|
77
77
|
"(call-method (. $a foo) (lambda (parameters x) (block (= $b $x))))"
|
78
78
|
end
|
79
79
|
end
|
@@ -154,12 +154,12 @@ describe "transformation to Puppet AST for containers" do
|
|
154
154
|
|
155
155
|
it "node foo inherits 'bar' {}" do
|
156
156
|
# AST can not differentiate between bare word and string
|
157
|
-
astdump(parse("node foo inherits 'bar' {}")).should == "(node (matches 'foo') (parent
|
157
|
+
astdump(parse("node foo inherits 'bar' {}")).should == "(node (matches 'foo') (parent bar) ())"
|
158
158
|
end
|
159
159
|
|
160
160
|
it "node foo inherits default {}" do
|
161
161
|
# AST can not differentiate between bare word and string
|
162
|
-
astdump(parse("node foo inherits default {}")).should == "(node (matches 'foo') (parent
|
162
|
+
astdump(parse("node foo inherits default {}")).should == "(node (matches 'foo') (parent default) ())"
|
163
163
|
end
|
164
164
|
|
165
165
|
it "node /web.*/ {}" do
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'puppet/pops'
|
4
|
+
require 'puppet_spec/pops'
|
5
|
+
|
6
|
+
# relative to this spec file (./) does not work as this file is loaded by rspec
|
7
|
+
require File.join(File.dirname(__FILE__), '../parser/parser_rspec_helper')
|
8
|
+
|
9
|
+
describe "validating 3x" do
|
10
|
+
include ParserRspecHelper
|
11
|
+
include PuppetSpec::Pops
|
12
|
+
|
13
|
+
let(:acceptor) { Puppet::Pops::Validation::Acceptor.new() }
|
14
|
+
let(:validator) { Puppet::Pops::Validation::ValidatorFactory_3_1.new().validator(acceptor) }
|
15
|
+
|
16
|
+
def validate(model)
|
17
|
+
validator.validate(model)
|
18
|
+
acceptor
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should raise error for illegal names' do
|
22
|
+
expect(validate(fqn('Aaa'))).to have_issue(Puppet::Pops::Issues::ILLEGAL_NAME)
|
23
|
+
expect(validate(fqn('AAA'))).to have_issue(Puppet::Pops::Issues::ILLEGAL_NAME)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should raise error for illegal variable names' do
|
27
|
+
expect(validate(fqn('Aaa').var())).to have_issue(Puppet::Pops::Issues::ILLEGAL_NAME)
|
28
|
+
expect(validate(fqn('AAA').var())).to have_issue(Puppet::Pops::Issues::ILLEGAL_NAME)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -276,6 +276,61 @@ describe provider_class do
|
|
276
276
|
@provider.need_to_run?.should == true
|
277
277
|
end
|
278
278
|
|
279
|
+
describe "performing numeric comparisons (#22617)" do
|
280
|
+
it "should return true when a get string compare is true" do
|
281
|
+
@resource[:onlyif] = "get bpath > a"
|
282
|
+
@augeas.stubs("get").returns("b")
|
283
|
+
@provider.need_to_run?.should == true
|
284
|
+
end
|
285
|
+
|
286
|
+
it "should return false when a get string compare is false" do
|
287
|
+
@resource[:onlyif] = "get a19path > a2"
|
288
|
+
@augeas.stubs("get").returns("a19")
|
289
|
+
@provider.need_to_run?.should == false
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should return true when a get int gt compare is true" do
|
293
|
+
@resource[:onlyif] = "get path19 > 2"
|
294
|
+
@augeas.stubs("get").returns("19")
|
295
|
+
@provider.need_to_run?.should == true
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should return true when a get int ge compare is true" do
|
299
|
+
@resource[:onlyif] = "get path19 >= 2"
|
300
|
+
@augeas.stubs("get").returns("19")
|
301
|
+
@provider.need_to_run?.should == true
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should return true when a get int lt compare is true" do
|
305
|
+
@resource[:onlyif] = "get path2 < 19"
|
306
|
+
@augeas.stubs("get").returns("2")
|
307
|
+
@provider.need_to_run?.should == true
|
308
|
+
end
|
309
|
+
|
310
|
+
it "should return false when a get int le compare is false" do
|
311
|
+
@resource[:onlyif] = "get path39 <= 4"
|
312
|
+
@augeas.stubs("get").returns("39")
|
313
|
+
@provider.need_to_run?.should == false
|
314
|
+
end
|
315
|
+
end
|
316
|
+
describe "performing is_numeric checks (#22617)" do
|
317
|
+
it "should return false for nil" do
|
318
|
+
@provider.is_numeric?(nil).should == false
|
319
|
+
end
|
320
|
+
it "should return true for Fixnums" do
|
321
|
+
@provider.is_numeric?(9).should == true
|
322
|
+
end
|
323
|
+
it "should return true for numbers in Strings" do
|
324
|
+
@provider.is_numeric?('9').should == true
|
325
|
+
end
|
326
|
+
it "should return false for non-number Strings" do
|
327
|
+
@provider.is_numeric?('x9').should == false
|
328
|
+
end
|
329
|
+
it "should return false for other types" do
|
330
|
+
@provider.is_numeric?([true]).should == false
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
279
334
|
it "should return false when a get filter does not match" do
|
280
335
|
@resource[:onlyif] = "get path == another value"
|
281
336
|
@augeas.stubs("get").returns("value")
|
@@ -619,7 +674,7 @@ describe provider_class do
|
|
619
674
|
link = tmpfile('link')
|
620
675
|
target = tmpfile('target')
|
621
676
|
FileUtils.touch(target)
|
622
|
-
|
677
|
+
Puppet::FileSystem::File.new(target).symlink(link)
|
623
678
|
|
624
679
|
resource = Puppet::Type.type(:augeas).new(
|
625
680
|
:name => 'test',
|
@@ -634,7 +689,7 @@ describe provider_class do
|
|
634
689
|
catalog.apply
|
635
690
|
|
636
691
|
File.ftype(link).should == 'link'
|
637
|
-
File.
|
692
|
+
Puppet::FileSystem::File.new(link).readlink().should == target
|
638
693
|
File.read(target).should =~ /PermitRootLogin no/
|
639
694
|
end
|
640
695
|
end
|
@@ -64,7 +64,7 @@ describe Puppet::Type.type(:exec).provider(:posix) do
|
|
64
64
|
provider.resource[:path] = [File.dirname(command)]
|
65
65
|
filename = File.basename(command)
|
66
66
|
|
67
|
-
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == filename) && (arguments.is_a? Hash) }
|
67
|
+
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == filename) && (arguments.is_a? Hash) }.returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
68
68
|
|
69
69
|
provider.run(filename)
|
70
70
|
end
|
@@ -95,7 +95,7 @@ describe Puppet::Type.type(:exec).provider(:posix) do
|
|
95
95
|
provider.resource[:path] = ['/bogus/bin']
|
96
96
|
command = make_exe
|
97
97
|
|
98
|
-
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == "#{command} bar --sillyarg=true --blah") && (arguments.is_a? Hash) }
|
98
|
+
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == "#{command} bar --sillyarg=true --blah") && (arguments.is_a? Hash) }.returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
99
99
|
provider.run("#{command} bar --sillyarg=true --blah")
|
100
100
|
end
|
101
101
|
|
@@ -110,11 +110,16 @@ describe Puppet::Type.type(:exec).provider(:posix) do
|
|
110
110
|
provider.resource[:environment] = ['WHATEVER=/something/else', 'WHATEVER=/foo']
|
111
111
|
command = make_exe
|
112
112
|
|
113
|
-
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == command) && (arguments.is_a? Hash) }
|
113
|
+
Puppet::Util::Execution.expects(:execute).with { |cmdline, arguments| (cmdline == command) && (arguments.is_a? Hash) }.returns(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
114
114
|
provider.run(command)
|
115
115
|
@logs.map {|l| "#{l.level}: #{l.message}" }.should == ["warning: Overriding environment setting 'WHATEVER' with '/foo'"]
|
116
116
|
end
|
117
117
|
|
118
|
+
it "should set umask before execution if umask parameter is in use" do
|
119
|
+
provider.resource[:umask] = '0027'
|
120
|
+
Puppet::Util.expects(:withumask).with(0027)
|
121
|
+
provider.run(provider.resource[:command])
|
122
|
+
end
|
118
123
|
|
119
124
|
describe "posix locale settings", :unless => Puppet.features.microsoft_windows? do
|
120
125
|
# a sentinel value that we can use to emulate what locale environment variables might be set to on an international
|
@@ -85,7 +85,7 @@ describe Puppet::Type.type(:file).provider(:posix), :if => Puppet.features.posix
|
|
85
85
|
describe "#owner" do
|
86
86
|
it "should return the uid of the file owner" do
|
87
87
|
FileUtils.touch(path)
|
88
|
-
owner = File.
|
88
|
+
owner = Puppet::FileSystem::File.new(path).stat.uid
|
89
89
|
|
90
90
|
provider.owner.should == owner
|
91
91
|
end
|
@@ -178,7 +178,7 @@ describe Puppet::Type.type(:file).provider(:posix), :if => Puppet.features.posix
|
|
178
178
|
describe "#group" do
|
179
179
|
it "should return the gid of the file group" do
|
180
180
|
FileUtils.touch(path)
|
181
|
-
group = File.
|
181
|
+
group = Puppet::FileSystem::File.new(path).stat.gid
|
182
182
|
|
183
183
|
provider.group.should == group
|
184
184
|
end
|
@@ -30,6 +30,58 @@ describe Puppet::Type.type(:group).provider(:windows_adsi) do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
describe "group type :members property helpers", :if => Puppet.features.microsoft_windows? do
|
34
|
+
|
35
|
+
let(:user1) { stub(:account => 'user1', :domain => '.', :to_s => 'user1sid') }
|
36
|
+
let(:user2) { stub(:account => 'user2', :domain => '.', :to_s => 'user2sid') }
|
37
|
+
|
38
|
+
before :each do
|
39
|
+
Puppet::Util::Windows::Security.stubs(:name_to_sid_object).with('user1').returns(user1)
|
40
|
+
Puppet::Util::Windows::Security.stubs(:name_to_sid_object).with('user2').returns(user2)
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#members_insync?" do
|
44
|
+
it "should return false when current is nil" do
|
45
|
+
provider.members_insync?(nil, ['user2']).should be_false
|
46
|
+
end
|
47
|
+
it "should return false when should is nil" do
|
48
|
+
provider.members_insync?(['user1'], nil).should be_false
|
49
|
+
end
|
50
|
+
it "should return false for differing lists of members" do
|
51
|
+
provider.members_insync?(['user1'], ['user2']).should be_false
|
52
|
+
provider.members_insync?(['user1'], []).should be_false
|
53
|
+
provider.members_insync?([], ['user2']).should be_false
|
54
|
+
end
|
55
|
+
it "should return true for same lists of members" do
|
56
|
+
provider.members_insync?(['user1', 'user2'], ['user1', 'user2']).should be_true
|
57
|
+
end
|
58
|
+
it "should return true for same lists of unordered members" do
|
59
|
+
provider.members_insync?(['user1', 'user2'], ['user2', 'user1']).should be_true
|
60
|
+
end
|
61
|
+
it "should return true for same lists of members irrespective of duplicates" do
|
62
|
+
provider.members_insync?(['user1', 'user2', 'user2'], ['user2', 'user1', 'user1']).should be_true
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#members_to_s" do
|
67
|
+
it "should return an empty string on non-array input" do
|
68
|
+
[Object.new, {}, 1, :symbol, ''].each do |input|
|
69
|
+
provider.members_to_s(input).should be_empty
|
70
|
+
end
|
71
|
+
end
|
72
|
+
it "should return an empty string on empty or nil users" do
|
73
|
+
provider.members_to_s([]).should be_empty
|
74
|
+
provider.members_to_s(nil).should be_empty
|
75
|
+
end
|
76
|
+
it "should return a user string like DOMAIN\\USER" do
|
77
|
+
provider.members_to_s(['user1']).should == '.\user1'
|
78
|
+
end
|
79
|
+
it "should return a user string like DOMAIN\\USER,DOMAIN2\\USER2" do
|
80
|
+
provider.members_to_s(['user1', 'user2']).should == '.\user1,.\user2'
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
33
85
|
describe "when managing members" do
|
34
86
|
it "should be able to provide a list of members" do
|
35
87
|
provider.group.stubs(:members).returns ['user1', 'user2', 'user3']
|
@@ -37,11 +89,22 @@ describe Puppet::Type.type(:group).provider(:windows_adsi) do
|
|
37
89
|
provider.members.should =~ ['user1', 'user2', 'user3']
|
38
90
|
end
|
39
91
|
|
40
|
-
it "should be able to set group members" do
|
92
|
+
it "should be able to set group members", :if => Puppet.features.microsoft_windows? do
|
41
93
|
provider.group.stubs(:members).returns ['user1', 'user2']
|
42
94
|
|
43
|
-
|
44
|
-
|
95
|
+
member_sids = [
|
96
|
+
stub(:account => 'user1', :domain => 'testcomputername'),
|
97
|
+
stub(:account => 'user2', :domain => 'testcomputername'),
|
98
|
+
stub(:account => 'user3', :domain => 'testcomputername'),
|
99
|
+
]
|
100
|
+
|
101
|
+
provider.group.stubs(:member_sids).returns(member_sids[0..1])
|
102
|
+
|
103
|
+
Puppet::Util::Windows::Security.expects(:name_to_sid_object).with('user2').returns(member_sids[1])
|
104
|
+
Puppet::Util::Windows::Security.expects(:name_to_sid_object).with('user3').returns(member_sids[2])
|
105
|
+
|
106
|
+
provider.group.expects(:remove_member_sids).with(member_sids[0])
|
107
|
+
provider.group.expects(:add_member_sids).with(member_sids[2])
|
45
108
|
|
46
109
|
provider.members = ['user2', 'user3']
|
47
110
|
end
|
@@ -97,4 +160,8 @@ describe Puppet::Type.type(:group).provider(:windows_adsi) do
|
|
97
160
|
provider.expects(:fail).with { |msg| msg =~ /gid is read-only/ }
|
98
161
|
provider.send(:gid=, 500)
|
99
162
|
end
|
163
|
+
|
164
|
+
it "should prefer the domain component from the resolved SID", :if => Puppet.features.microsoft_windows? do
|
165
|
+
provider.members_to_s(['.\Administrators']).should == 'BUILTIN\Administrators'
|
166
|
+
end
|
100
167
|
end
|
@@ -110,7 +110,7 @@ describe 'DirectoryService password behavior' do
|
|
110
110
|
|
111
111
|
it 'should execute convert_binary_to_xml once when getting the password on >= 10.7' do
|
112
112
|
subject.expects(:convert_binary_to_xml).returns({'SALTED-SHA512' => StringIO.new(pw_string)})
|
113
|
-
File.expects(:
|
113
|
+
Puppet::FileSystem::File.expects(:exist?).with(plist_path).once.returns(true)
|
114
114
|
Plist.expects(:parse_xml).returns(shadow_hash_data)
|
115
115
|
# On Mac OS X 10.7 we first need to convert to xml when reading the password
|
116
116
|
subject.expects(:plutil).with('-convert', 'xml1', '-o', '/dev/stdout', plist_path)
|
@@ -126,7 +126,7 @@ describe 'DirectoryService password behavior' do
|
|
126
126
|
it 'should convert xml-to-binary and binary-to-xml when setting the pw on >= 10.7' do
|
127
127
|
subject.expects(:convert_binary_to_xml).returns({'SALTED-SHA512' => StringIO.new(pw_string)})
|
128
128
|
subject.expects(:convert_xml_to_binary).returns(binary_plist)
|
129
|
-
File.expects(:
|
129
|
+
Puppet::FileSystem::File.expects(:exist?).with(plist_path).once.returns(true)
|
130
130
|
Plist.expects(:parse_xml).returns(shadow_hash_data)
|
131
131
|
# On Mac OS X 10.7 we first need to convert to xml
|
132
132
|
subject.expects(:plutil).with('-convert', 'xml1', '-o', '/dev/stdout', plist_path)
|
@@ -138,7 +138,7 @@ describe 'DirectoryService password behavior' do
|
|
138
138
|
|
139
139
|
it '[#13686] should handle an empty ShadowHashData field in the users plist' do
|
140
140
|
subject.expects(:convert_xml_to_binary).returns(binary_plist)
|
141
|
-
File.expects(:
|
141
|
+
Puppet::FileSystem::File.expects(:exist?).with(plist_path).once.returns(true)
|
142
142
|
Plist.expects(:parse_xml).returns({'ShadowHashData' => nil})
|
143
143
|
subject.expects(:plutil).with('-convert', 'xml1', '-o', '/dev/stdout', plist_path)
|
144
144
|
subject.expects(:plutil).with('-convert', 'binary1', plist_path)
|
@@ -63,7 +63,7 @@ Version table:
|
|
63
63
|
|
64
64
|
it "should preseed with the provided responsefile when preseeding is called for" do
|
65
65
|
@resource.expects(:[]).with(:responsefile).returns "/my/file"
|
66
|
-
|
66
|
+
Puppet::FileSystem::File.expects(:exist?).with("/my/file").returns true
|
67
67
|
|
68
68
|
@provider.expects(:info)
|
69
69
|
@provider.expects(:preseed).with("/my/file")
|
@@ -24,9 +24,8 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
24
24
|
MsiPackage.stubs(:installer).returns(installer)
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
provider.expects(:execute).never
|
27
|
+
def expect_execute(command, status)
|
28
|
+
provider.expects(:execute).with(command, execute_options).returns(Puppet::Util::Execution::ProcessOutput.new('',status))
|
30
29
|
end
|
31
30
|
|
32
31
|
describe 'provider features' do
|
@@ -38,6 +37,7 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
38
37
|
|
39
38
|
describe 'on Windows', :as_platform => :windows do
|
40
39
|
it 'should not be the default provider' do
|
40
|
+
# provider.expects(:execute).never
|
41
41
|
Puppet::Type.type(:package).defaultprovider.should_not == subject.class
|
42
42
|
end
|
43
43
|
end
|
@@ -90,9 +90,7 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
context '#install' do
|
93
|
-
|
94
|
-
provider.stubs(:execute)
|
95
|
-
end
|
93
|
+
let (:command) { "msiexec.exe /qn /norestart /i #{source}" }
|
96
94
|
|
97
95
|
it 'should require the source parameter' do
|
98
96
|
resource = Puppet::Type.type(:package).new(:name => name, :provider => :msi)
|
@@ -104,40 +102,27 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
104
102
|
|
105
103
|
it 'should install using the source and install_options' do
|
106
104
|
resource[:install_options] = { 'INSTALLDIR' => 'C:\mysql-5.1' }
|
107
|
-
|
108
|
-
provider.expects(:execute).with("msiexec.exe /qn /norestart /i #{source} INSTALLDIR=C:\\mysql-5.1", execute_options)
|
109
|
-
provider.expects(:exit_status).returns(0)
|
110
|
-
|
111
|
-
provider.install
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'should warn if the package requests a reboot' do
|
115
|
-
provider.stubs(:exit_status).returns(194)
|
116
|
-
|
117
|
-
provider.expects(:warning).with('The package requested a reboot to finish the operation.')
|
105
|
+
expect_execute("#{command} INSTALLDIR=C:\\mysql-5.1", 0)
|
118
106
|
|
119
107
|
provider.install
|
120
108
|
end
|
121
109
|
|
122
110
|
it 'should warn if reboot initiated' do
|
123
|
-
|
124
|
-
|
111
|
+
expect_execute(command, 1641)
|
125
112
|
provider.expects(:warning).with('The package installed successfully and the system is rebooting now.')
|
126
113
|
|
127
114
|
provider.install
|
128
115
|
end
|
129
116
|
|
130
117
|
it 'should warn if reboot required' do
|
131
|
-
|
132
|
-
|
118
|
+
expect_execute(command, 3010)
|
133
119
|
provider.expects(:warning).with('The package installed successfully, but the system must be rebooted.')
|
134
120
|
|
135
121
|
provider.install
|
136
122
|
end
|
137
123
|
|
138
124
|
it 'should fail otherwise', :if => Puppet.features.microsoft_windows? do
|
139
|
-
|
140
|
-
provider.stubs(:exit_status).returns(5)
|
125
|
+
expect_execute(command, 5)
|
141
126
|
|
142
127
|
expect do
|
143
128
|
provider.install
|
@@ -146,6 +131,9 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
146
131
|
end
|
147
132
|
|
148
133
|
context '#uninstall' do
|
134
|
+
|
135
|
+
let (:command) { "msiexec.exe /qn /norestart /x #{productcode}" }
|
136
|
+
|
149
137
|
before :each do
|
150
138
|
resource[:ensure] = :absent
|
151
139
|
provider.set(:productcode => productcode)
|
@@ -159,42 +147,27 @@ describe Puppet::Type.type(:package).provider(:msi) do
|
|
159
147
|
end
|
160
148
|
|
161
149
|
it 'should uninstall using the productcode' do
|
162
|
-
|
163
|
-
provider.expects(:exit_status).returns(0)
|
164
|
-
|
165
|
-
provider.uninstall
|
166
|
-
end
|
167
|
-
|
168
|
-
it 'should warn if the package requests a reboot' do
|
169
|
-
provider.stubs(:execute)
|
170
|
-
provider.stubs(:exit_status).returns(194)
|
171
|
-
|
172
|
-
provider.expects(:warning).with('The package requested a reboot to finish the operation.')
|
150
|
+
expect_execute(command, 0)
|
173
151
|
|
174
152
|
provider.uninstall
|
175
153
|
end
|
176
154
|
|
177
155
|
it 'should warn if reboot initiated' do
|
178
|
-
|
179
|
-
provider.stubs(:exit_status).returns(1641)
|
180
|
-
|
156
|
+
expect_execute(command, 1641)
|
181
157
|
provider.expects(:warning).with('The package uninstalled successfully and the system is rebooting now.')
|
182
158
|
|
183
159
|
provider.uninstall
|
184
160
|
end
|
185
161
|
|
186
162
|
it 'should warn if reboot required' do
|
187
|
-
|
188
|
-
provider.stubs(:exit_status).returns(3010)
|
189
|
-
|
163
|
+
expect_execute(command, 3010)
|
190
164
|
provider.expects(:warning).with('The package uninstalled successfully, but the system must be rebooted.')
|
191
165
|
|
192
166
|
provider.uninstall
|
193
167
|
end
|
194
168
|
|
195
169
|
it 'should fail otherwise', :if => Puppet.features.microsoft_windows? do
|
196
|
-
|
197
|
-
provider.stubs(:exit_status).returns(5)
|
170
|
+
expect_execute(command, 5)
|
198
171
|
|
199
172
|
expect do
|
200
173
|
provider.uninstall
|