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
@@ -32,7 +32,7 @@ module Puppet
|
|
32
32
|
|
33
33
|
# Create our link.
|
34
34
|
def mklink
|
35
|
-
raise Puppet::Error, "Cannot symlink on
|
35
|
+
raise Puppet::Error, "Cannot symlink on this platform version" if !provider.feature?(:manages_symlinks)
|
36
36
|
|
37
37
|
target = self.should
|
38
38
|
|
@@ -40,17 +40,17 @@ module Puppet
|
|
40
40
|
# it doesn't determine what's removed.
|
41
41
|
@resource.remove_existing(target)
|
42
42
|
|
43
|
-
raise Puppet::Error, "Could not remove existing file" if
|
43
|
+
raise Puppet::Error, "Could not remove existing file" if Puppet::FileSystem::File.exist?(@resource[:path])
|
44
44
|
|
45
45
|
Dir.chdir(File.dirname(@resource[:path])) do
|
46
46
|
Puppet::Util::SUIDManager.asuser(@resource.asuser) do
|
47
47
|
mode = @resource.should(:mode)
|
48
48
|
if mode
|
49
49
|
Puppet::Util.withumask(000) do
|
50
|
-
File.symlink(
|
50
|
+
Puppet::FileSystem::File.new(target).symlink(@resource[:path])
|
51
51
|
end
|
52
52
|
else
|
53
|
-
File.symlink(
|
53
|
+
Puppet::FileSystem::File.new(target).symlink(@resource[:path])
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -63,7 +63,7 @@ module Puppet
|
|
63
63
|
def insync?(currentvalue)
|
64
64
|
if [:nochange, :notlink].include?(self.should) or @resource.recurse?
|
65
65
|
return true
|
66
|
-
elsif ! @resource.replace? and File.
|
66
|
+
elsif ! @resource.replace? and Puppet::FileSystem::File.exist?(@resource[:path])
|
67
67
|
return true
|
68
68
|
else
|
69
69
|
return super(currentvalue)
|
@@ -74,7 +74,7 @@ module Puppet
|
|
74
74
|
def retrieve
|
75
75
|
if stat = @resource.stat
|
76
76
|
if stat.ftype == "link"
|
77
|
-
return File.
|
77
|
+
return Puppet::FileSystem::File.new(@resource[:path]).readlink
|
78
78
|
else
|
79
79
|
return :notlink
|
80
80
|
end
|
File without changes
|
File without changes
|
data/lib/puppet/type/group.rb
CHANGED
@@ -87,6 +87,24 @@ module Puppet
|
|
87
87
|
newvalue = newvalue.join(",")
|
88
88
|
super(currentvalue, newvalue)
|
89
89
|
end
|
90
|
+
|
91
|
+
def insync?(current)
|
92
|
+
if provider.respond_to?(:members_insync?)
|
93
|
+
return provider.members_insync?(current, @should)
|
94
|
+
end
|
95
|
+
|
96
|
+
super(current)
|
97
|
+
end
|
98
|
+
|
99
|
+
def is_to_s(currentvalue)
|
100
|
+
if provider.respond_to?(:members_to_s)
|
101
|
+
currentvalue = '' if currentvalue.nil?
|
102
|
+
return provider.members_to_s(currentvalue.split(','))
|
103
|
+
end
|
104
|
+
|
105
|
+
super(currentvalue)
|
106
|
+
end
|
107
|
+
alias :should_to_s :is_to_s
|
90
108
|
end
|
91
109
|
|
92
110
|
newparam(:auth_membership) do
|
data/lib/puppet/type/host.rb
CHANGED
File without changes
|
data/lib/puppet/type/k5login.rb
CHANGED
@@ -37,7 +37,7 @@ Puppet::Type.newtype(:k5login) do
|
|
37
37
|
|
38
38
|
# Does this file exist?
|
39
39
|
def exists?
|
40
|
-
File.
|
40
|
+
Puppet::FileSystem::File.exist?(@resource[:name])
|
41
41
|
end
|
42
42
|
|
43
43
|
# create the file
|
@@ -51,12 +51,12 @@ Puppet::Type.newtype(:k5login) do
|
|
51
51
|
|
52
52
|
# remove the file
|
53
53
|
def destroy
|
54
|
-
File.unlink(@resource[:name])
|
54
|
+
Puppet::FileSystem::File.unlink(@resource[:name])
|
55
55
|
end
|
56
56
|
|
57
57
|
# Return the principals
|
58
58
|
def principals(dummy_argument=:work_arround_for_ruby_GC_bug)
|
59
|
-
if File.
|
59
|
+
if Puppet::FileSystem::File.exist?(@resource[:name])
|
60
60
|
File.readlines(@resource[:name]).collect { |line| line.chomp }
|
61
61
|
else
|
62
62
|
:absent
|
@@ -70,7 +70,7 @@ Puppet::Type.newtype(:k5login) do
|
|
70
70
|
|
71
71
|
# Return the mode as an octal string, not as an integer
|
72
72
|
def mode
|
73
|
-
"%o" % (File.
|
73
|
+
"%o" % (Puppet::FileSystem::File.new(@resource[:name]).stat.mode & 007777)
|
74
74
|
end
|
75
75
|
|
76
76
|
# Set the file mode, converting from a string to an integer.
|
File without changes
|
data/lib/puppet/type/maillist.rb
CHANGED
File without changes
|
data/lib/puppet/type/mount.rb
CHANGED
@@ -8,7 +8,11 @@ module Puppet
|
|
8
8
|
on the value of the 'ensure' parameter.
|
9
9
|
|
10
10
|
Note that if a `mount` receives an event from another resource,
|
11
|
-
it will try to remount the filesystems if `ensure` is set to `mounted`.
|
11
|
+
it will try to remount the filesystems if `ensure` is set to `mounted`.
|
12
|
+
|
13
|
+
**Autorequires:** If Puppet is managing any parents of a mount resource ---
|
14
|
+
that is, other mount points higher up in the filesystem --- the child
|
15
|
+
mount will autorequire them."
|
12
16
|
|
13
17
|
feature :refreshable, "The provider can remount the filesystem.",
|
14
18
|
:methods => [:remount]
|
@@ -268,5 +272,15 @@ module Puppet
|
|
268
272
|
return property.value
|
269
273
|
end
|
270
274
|
end
|
275
|
+
|
276
|
+
# Ensure that mounts higher up in the filesystem are mounted first
|
277
|
+
autorequire(:mount) do
|
278
|
+
dependencies = []
|
279
|
+
Pathname.new(@parameters[:name].value).ascend do |parent|
|
280
|
+
dependencies.unshift parent.to_s
|
281
|
+
end
|
282
|
+
dependencies[0..-2]
|
283
|
+
end
|
284
|
+
|
271
285
|
end
|
272
286
|
end
|
data/lib/puppet/type/package.rb
CHANGED
@@ -58,7 +58,7 @@ module Puppet
|
|
58
58
|
retrieve by specifying a version number or `latest` as the ensure
|
59
59
|
value. On packaging systems that manage configuration files separately
|
60
60
|
from "normal" system files, you can uninstall config files by
|
61
|
-
specifying `purged` as the ensure value.
|
61
|
+
specifying `purged` as the ensure value. This defaults to `installed`.
|
62
62
|
EOT
|
63
63
|
|
64
64
|
attr_accessor :latest
|
@@ -225,6 +225,12 @@ module Puppet
|
|
225
225
|
|
226
226
|
"
|
227
227
|
isnamevar
|
228
|
+
|
229
|
+
validate do |value|
|
230
|
+
if !value.is_a?(String)
|
231
|
+
raise ArgumentError, "Name must be a String not #{value.class}"
|
232
|
+
end
|
233
|
+
end
|
228
234
|
end
|
229
235
|
|
230
236
|
newparam(:source) do
|
data/lib/puppet/type/port.rb
CHANGED
File without changes
|
data/lib/puppet/type/schedule.rb
CHANGED
@@ -356,10 +356,10 @@ module Puppet
|
|
356
356
|
of the range, not necessarily the day that it is when it matches.
|
357
357
|
For example, consider this schedule:
|
358
358
|
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
359
|
+
schedule { 'maintenance_window':
|
360
|
+
range => '22:00 - 04:00',
|
361
|
+
weekday => 'Saturday',
|
362
|
+
}
|
363
363
|
|
364
364
|
This will match at 11 PM on Saturday and 2 AM on Sunday, but not
|
365
365
|
at 2 AM on Saturday.
|
@@ -418,6 +418,11 @@ module Puppet
|
|
418
418
|
|
419
419
|
def self.mkdefaultschedules
|
420
420
|
result = []
|
421
|
+
unless Puppet[:default_schedules]
|
422
|
+
Puppet.debug "Not creating default schedules: default_schedules is false"
|
423
|
+
return result
|
424
|
+
end
|
425
|
+
|
421
426
|
Puppet.debug "Creating default schedules"
|
422
427
|
|
423
428
|
result << self.new(
|
data/lib/puppet/type/service.rb
CHANGED
@@ -180,7 +180,7 @@ module Puppet
|
|
180
180
|
automatically, usually by looking for the service in the process
|
181
181
|
table.
|
182
182
|
|
183
|
-
[lsb-exit-codes]: http://refspecs.
|
183
|
+
[lsb-exit-codes]: http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html"
|
184
184
|
end
|
185
185
|
|
186
186
|
newparam(:stop) do
|
data/lib/puppet/type/sshkey.rb
CHANGED
File without changes
|
data/lib/puppet/type/tidy.rb
CHANGED
data/lib/puppet/type/user.rb
CHANGED
data/lib/puppet/type/yumrepo.rb
CHANGED
@@ -170,7 +170,7 @@ module Puppet
|
|
170
170
|
unless Puppet[:noop]
|
171
171
|
target_mode = 0644 # FIXME: should be configurable
|
172
172
|
inifile.each_file do |file|
|
173
|
-
current_mode = ::File.
|
173
|
+
current_mode = Puppet::FileSystem::File.new(file).stat.mode & 0777
|
174
174
|
unless current_mode == target_mode
|
175
175
|
Puppet::info "changing mode of #{file} from %03o to %03o" % [current_mode, target_mode]
|
176
176
|
::File.chmod(target_mode, file)
|
@@ -332,7 +332,7 @@ module Puppet
|
|
332
332
|
end
|
333
333
|
|
334
334
|
newproperty(:cost, :parent => Puppet::IniProperty) do
|
335
|
-
desc "Cost of this repository
|
335
|
+
desc "Cost of this repository. #{ABSENT_DOC}"
|
336
336
|
newvalue(:absent) { self.should = :absent }
|
337
337
|
newvalue(%r{\d+}) { }
|
338
338
|
end
|
@@ -364,28 +364,30 @@ module Puppet
|
|
364
364
|
|
365
365
|
newproperty(:sslcacert, :parent => Puppet::IniProperty) do
|
366
366
|
desc "Path to the directory containing the databases of the
|
367
|
-
certificate authorities yum should use to verify SSL certificates
|
367
|
+
certificate authorities yum should use to verify SSL certificates.
|
368
|
+
#{ABSENT_DOC}"
|
368
369
|
newvalue(:absent) { self.should = :absent }
|
369
370
|
newvalue(/.*/) { }
|
370
371
|
end
|
371
372
|
|
372
373
|
newproperty(:sslverify, :parent => Puppet::IniProperty) do
|
373
374
|
desc "Should yum verify SSL certificates/hosts at all.
|
374
|
-
Possible values are 'True' or 'False'
|
375
|
+
Possible values are 'True' or 'False'.
|
376
|
+
#{ABSENT_DOC}"
|
375
377
|
newvalue(:absent) { self.should = :absent }
|
376
378
|
newvalue(%r(True|False)) { }
|
377
379
|
end
|
378
380
|
|
379
381
|
newproperty(:sslclientcert, :parent => Puppet::IniProperty) do
|
380
382
|
desc "Path to the SSL client certificate yum should use to connect
|
381
|
-
to repos/remote sites
|
383
|
+
to repos/remote sites. #{ABSENT_DOC}"
|
382
384
|
newvalue(:absent) { self.should = :absent }
|
383
385
|
newvalue(/.*/) { }
|
384
386
|
end
|
385
387
|
|
386
388
|
newproperty(:sslclientkey, :parent => Puppet::IniProperty) do
|
387
389
|
desc "Path to the SSL client key yum should use to connect
|
388
|
-
to repos/remote sites
|
390
|
+
to repos/remote sites. #{ABSENT_DOC}"
|
389
391
|
newvalue(:absent) { self.should = :absent }
|
390
392
|
newvalue(/.*/) { }
|
391
393
|
end
|
data/lib/puppet/type/zpool.rb
CHANGED
File without changes
|
data/lib/puppet/util.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
# A module to collect utility functions.
|
2
2
|
|
3
3
|
require 'English'
|
4
|
-
require 'puppet/external/lock'
|
5
4
|
require 'puppet/error'
|
6
5
|
require 'puppet/util/execution_stub'
|
7
6
|
require 'uri'
|
8
|
-
require 'sync'
|
9
|
-
require 'monitor'
|
10
7
|
require 'tempfile'
|
11
8
|
require 'pathname'
|
12
9
|
require 'ostruct'
|
@@ -26,9 +23,6 @@ module Util
|
|
26
23
|
|
27
24
|
extend Puppet::Util::SymbolicFileMode
|
28
25
|
|
29
|
-
@@sync_objects = {}.extend MonitorMixin
|
30
|
-
|
31
|
-
|
32
26
|
def self.activerecord_version
|
33
27
|
if (defined?(::ActiveRecord) and defined?(::ActiveRecord::VERSION) and defined?(::ActiveRecord::VERSION::MAJOR) and defined?(::ActiveRecord::VERSION::MINOR))
|
34
28
|
([::ActiveRecord::VERSION::MAJOR, ::ActiveRecord::VERSION::MINOR].join('.').to_f)
|
@@ -67,20 +61,6 @@ module Util
|
|
67
61
|
end
|
68
62
|
|
69
63
|
|
70
|
-
def self.synchronize_on(x,type)
|
71
|
-
sync_object,users = 0,1
|
72
|
-
begin
|
73
|
-
@@sync_objects.synchronize {
|
74
|
-
(@@sync_objects[x] ||= [Sync.new,0])[users] += 1
|
75
|
-
}
|
76
|
-
@@sync_objects[x][sync_object].synchronize(type) { yield }
|
77
|
-
ensure
|
78
|
-
@@sync_objects.synchronize {
|
79
|
-
@@sync_objects.delete(x) unless (@@sync_objects[x][users] -= 1) > 0
|
80
|
-
}
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
64
|
# Change the process to a different user
|
85
65
|
def self.chuser
|
86
66
|
if group = Puppet[:group]
|
@@ -154,7 +134,6 @@ module Util
|
|
154
134
|
end
|
155
135
|
end
|
156
136
|
|
157
|
-
|
158
137
|
def benchmark(*args)
|
159
138
|
msg = args.pop
|
160
139
|
level = args.pop
|
@@ -187,6 +166,7 @@ module Util
|
|
187
166
|
yield
|
188
167
|
end
|
189
168
|
end
|
169
|
+
module_function :benchmark
|
190
170
|
|
191
171
|
# Resolve a path for an executable to the absolute path. This tries to behave
|
192
172
|
# in the same manner as the unix `which` command and uses the `PATH`
|
@@ -270,7 +250,7 @@ module Util
|
|
270
250
|
if Puppet.features.microsoft_windows?
|
271
251
|
path = path.gsub(/\\/, '/')
|
272
252
|
|
273
|
-
if unc = /^\/\/([^\/]+)(
|
253
|
+
if unc = /^\/\/([^\/]+)(\/.+)/.match(path)
|
274
254
|
params[:host] = unc[1]
|
275
255
|
path = unc[2]
|
276
256
|
elsif path =~ /^[a-z]:\//i
|
@@ -320,13 +300,6 @@ module Util
|
|
320
300
|
end
|
321
301
|
module_function :safe_posix_fork
|
322
302
|
|
323
|
-
# Create an exclusive lock.
|
324
|
-
def threadlock(resource, type = Sync::EX)
|
325
|
-
Puppet::Util.synchronize_on(resource,type) { yield }
|
326
|
-
end
|
327
|
-
|
328
|
-
module_function :benchmark
|
329
|
-
|
330
303
|
def memory
|
331
304
|
unless defined?(@pmap)
|
332
305
|
@pmap = which('pmap')
|
@@ -361,6 +334,7 @@ module Util
|
|
361
334
|
|
362
335
|
# Because IO#binread is only available in 1.9
|
363
336
|
def binread(file)
|
337
|
+
Puppet.deprecation_warning("Puppet::Util.binread is deprecated. Read the file without this method as it will be removed in a future version.")
|
364
338
|
File.open(file, 'rb') { |f| f.read }
|
365
339
|
end
|
366
340
|
module_function :binread
|
@@ -467,7 +441,7 @@ module Util
|
|
467
441
|
# This might race, but there are enough possible cases that there
|
468
442
|
# isn't a good, solid "better" way to do this, and the next call
|
469
443
|
# should fail in the same way anyhow.
|
470
|
-
raise if have_retried or File.exist?(file)
|
444
|
+
raise if have_retried or Puppet::FileSystem::File.exist?(file)
|
471
445
|
have_retried = true
|
472
446
|
|
473
447
|
# OK, so, we can't replace a file that doesn't exist, so let us put
|
@@ -499,7 +473,6 @@ module Util
|
|
499
473
|
end
|
500
474
|
module_function :replace_file
|
501
475
|
|
502
|
-
|
503
476
|
# Executes a block of code, wrapped with some special exception handling. Causes the ruby interpreter to
|
504
477
|
# exit if the block throws an exception.
|
505
478
|
#
|
data/lib/puppet/util/adsi.rb
CHANGED
@@ -41,6 +41,11 @@ module Puppet::Util::ADSI
|
|
41
41
|
"winmgmts:{impersonationLevel=impersonate}!//#{host}/root/cimv2"
|
42
42
|
end
|
43
43
|
|
44
|
+
def sid_uri(sid)
|
45
|
+
raise Puppet::Error.new( "Must use a valid SID object" ) if !sid.kind_of?(Win32::Security::SID)
|
46
|
+
"WinNT://#{sid.to_s}"
|
47
|
+
end
|
48
|
+
|
44
49
|
def uri(resource_name, resource_type, host = '.')
|
45
50
|
"#{computer_uri(host)}/#{resource_name},#{resource_type}"
|
46
51
|
end
|
@@ -64,22 +69,40 @@ module Puppet::Util::ADSI
|
|
64
69
|
extend Enumerable
|
65
70
|
|
66
71
|
attr_accessor :native_user
|
67
|
-
attr_reader :name
|
72
|
+
attr_reader :name, :sid
|
68
73
|
def initialize(name, native_user = nil)
|
69
74
|
@name = name
|
70
75
|
@native_user = native_user
|
71
76
|
end
|
72
77
|
|
78
|
+
def self.parse_name(name)
|
79
|
+
if name =~ /\//
|
80
|
+
raise Puppet::Error.new( "Value must be in DOMAIN\\user style syntax" )
|
81
|
+
end
|
82
|
+
|
83
|
+
matches = name.scan(/((.*)\\)?(.*)/)
|
84
|
+
domain = matches[0][1] || '.'
|
85
|
+
account = matches[0][2]
|
86
|
+
|
87
|
+
return account, domain
|
88
|
+
end
|
89
|
+
|
73
90
|
def native_user
|
74
|
-
@native_user ||= Puppet::Util::ADSI.connect(uri)
|
91
|
+
@native_user ||= Puppet::Util::ADSI.connect(self.class.uri(*self.class.parse_name(@name)))
|
92
|
+
end
|
93
|
+
|
94
|
+
def sid
|
95
|
+
@sid ||= Puppet::Util::Windows::Security.octet_string_to_sid_object(native_user.objectSID)
|
75
96
|
end
|
76
97
|
|
77
98
|
def self.uri(name, host = '.')
|
99
|
+
host = '.' if ['NT AUTHORITY', 'BUILTIN', Socket.gethostname].include?(host)
|
100
|
+
|
78
101
|
Puppet::Util::ADSI.uri(name, 'user', host)
|
79
102
|
end
|
80
103
|
|
81
104
|
def uri
|
82
|
-
self.class.uri(
|
105
|
+
self.class.uri(sid.account, sid.domain)
|
83
106
|
end
|
84
107
|
|
85
108
|
def self.logon(name, password)
|
@@ -131,14 +154,14 @@ module Puppet::Util::ADSI
|
|
131
154
|
|
132
155
|
def add_to_groups(*group_names)
|
133
156
|
group_names.each do |group_name|
|
134
|
-
Puppet::Util::ADSI::Group.new(group_name).
|
157
|
+
Puppet::Util::ADSI::Group.new(group_name).add_member_sids(sid)
|
135
158
|
end
|
136
159
|
end
|
137
160
|
alias add_to_group add_to_groups
|
138
161
|
|
139
162
|
def remove_from_groups(*group_names)
|
140
163
|
group_names.each do |group_name|
|
141
|
-
Puppet::Util::ADSI::Group.new(group_name).
|
164
|
+
Puppet::Util::ADSI::Group.new(group_name).remove_member_sids(sid)
|
142
165
|
end
|
143
166
|
end
|
144
167
|
alias remove_from_group remove_from_groups
|
@@ -167,7 +190,7 @@ module Puppet::Util::ADSI
|
|
167
190
|
end
|
168
191
|
|
169
192
|
def self.exists?(name)
|
170
|
-
Puppet::Util::ADSI::connectable?(User.uri(name))
|
193
|
+
Puppet::Util::ADSI::connectable?(User.uri(*User.parse_name(name)))
|
171
194
|
end
|
172
195
|
|
173
196
|
def self.delete(name)
|
@@ -233,20 +256,44 @@ module Puppet::Util::ADSI
|
|
233
256
|
self
|
234
257
|
end
|
235
258
|
|
236
|
-
def
|
237
|
-
names.
|
238
|
-
|
259
|
+
def self.name_sid_hash(names)
|
260
|
+
return [] if names.nil? or names.empty?
|
261
|
+
|
262
|
+
sids = names.map do |name|
|
263
|
+
sid = Puppet::Util::Windows::Security.name_to_sid_object(name)
|
264
|
+
raise Puppet::Error.new( "Could not resolve username: #{name}" ) if !sid
|
265
|
+
[sid.to_s, sid]
|
239
266
|
end
|
267
|
+
|
268
|
+
Hash[ sids ]
|
269
|
+
end
|
270
|
+
|
271
|
+
def add_members(*names)
|
272
|
+
Puppet.deprecation_warning('Puppet::Util::ADSI::Group#add_members is deprecated; please use Puppet::Util::ADSI::Group#add_member_sids')
|
273
|
+
sids = self.class.name_sid_hash(names)
|
274
|
+
add_member_sids(*sids.values)
|
240
275
|
end
|
241
276
|
alias add_member add_members
|
242
277
|
|
243
278
|
def remove_members(*names)
|
244
|
-
|
245
|
-
|
246
|
-
|
279
|
+
Puppet.deprecation_warning('Puppet::Util::ADSI::Group#remove_members is deprecated; please use Puppet::Util::ADSI::Group#remove_member_sids')
|
280
|
+
sids = self.class.name_sid_hash(names)
|
281
|
+
remove_member_sids(*sids.values)
|
247
282
|
end
|
248
283
|
alias remove_member remove_members
|
249
284
|
|
285
|
+
def add_member_sids(*sids)
|
286
|
+
sids.each do |sid|
|
287
|
+
native_group.Add(Puppet::Util::ADSI.sid_uri(sid))
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
def remove_member_sids(*sids)
|
292
|
+
sids.each do |sid|
|
293
|
+
native_group.Remove(Puppet::Util::ADSI.sid_uri(sid))
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
250
297
|
def members
|
251
298
|
# WIN32OLE objects aren't enumerable, so no map
|
252
299
|
members = []
|
@@ -254,18 +301,27 @@ module Puppet::Util::ADSI
|
|
254
301
|
members
|
255
302
|
end
|
256
303
|
|
304
|
+
def member_sids
|
305
|
+
sids = []
|
306
|
+
native_group.Members.each do |m|
|
307
|
+
sids << Puppet::Util::Windows::Security.octet_string_to_sid_object(m.objectSID)
|
308
|
+
end
|
309
|
+
sids
|
310
|
+
end
|
311
|
+
|
257
312
|
def set_members(desired_members)
|
258
313
|
return if desired_members.nil? or desired_members.empty?
|
259
314
|
|
260
|
-
|
315
|
+
current_hash = Hash[ self.member_sids.map { |sid| [sid.to_s, sid] } ]
|
316
|
+
desired_hash = self.class.name_sid_hash(desired_members)
|
261
317
|
|
262
318
|
# First we add all missing members
|
263
|
-
members_to_add =
|
264
|
-
|
319
|
+
members_to_add = (desired_hash.keys - current_hash.keys).map { |sid| desired_hash[sid] }
|
320
|
+
add_member_sids(*members_to_add)
|
265
321
|
|
266
322
|
# Then we remove all extra members
|
267
|
-
members_to_remove =
|
268
|
-
|
323
|
+
members_to_remove = (current_hash.keys - desired_hash.keys).map { |sid| current_hash[sid] }
|
324
|
+
remove_member_sids(*members_to_remove)
|
269
325
|
end
|
270
326
|
|
271
327
|
def self.create(name)
|