puppet 3.2.4 → 3.3.0.rc2
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/COMMITTERS.md +101 -42
- data/Gemfile +15 -4
- data/README.md +5 -1
- data/README_DEVELOPER.md +117 -54
- data/Rakefile +4 -0
- data/ext/build_defaults.yaml +3 -2
- data/ext/debian/puppet-common.manpages +33 -1
- data/ext/gentoo/init.d/puppet +1 -1
- data/ext/gentoo/init.d/puppetmaster +1 -1
- data/ext/redhat/puppet.spec.erb +0 -1
- data/install.rb +2 -1
- data/lib/hiera/backend/puppet_backend.rb +1 -1
- data/lib/puppet/application.rb +10 -9
- data/lib/puppet/application/agent.rb +87 -93
- data/lib/puppet/application/apply.rb +0 -2
- data/lib/puppet/application/device.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +41 -19
- data/lib/puppet/application/queue.rb +5 -3
- data/lib/puppet/bindings.rb +147 -0
- data/lib/puppet/configurer.rb +25 -15
- data/lib/puppet/configurer/fact_handler.rb +2 -9
- data/lib/puppet/daemon.rb +44 -33
- data/lib/puppet/defaults.rb +57 -26
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +2 -2
- data/lib/puppet/external/nagios/base.rb +1 -6
- data/lib/puppet/external/pson/common.rb +2 -2
- data/lib/puppet/external/pson/pure/generator.rb +2 -2
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/ca.rb +1 -1
- data/lib/puppet/face/config.rb +1 -1
- data/lib/puppet/face/help.rb +2 -2
- data/lib/puppet/face/module/list.rb +2 -2
- data/lib/puppet/feature/rails.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +0 -1
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +20 -14
- data/lib/puppet/forge.rb +0 -32
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/forge/repository.rb +7 -42
- data/lib/puppet/graph.rb +11 -0
- data/lib/puppet/graph/key.rb +26 -0
- data/lib/puppet/graph/prioritizer.rb +29 -0
- data/lib/puppet/graph/random_prioritizer.rb +16 -0
- data/lib/puppet/{rb_tree_map.rb → graph/rb_tree_map.rb} +3 -3
- data/lib/puppet/graph/relationship_graph.rb +246 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/lib/puppet/{simple_graph.rb → graph/simple_graph.rb} +22 -3
- data/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/indirector/catalog/compiler.rb +10 -7
- data/lib/puppet/indirector/catalog/static_compiler.rb +50 -0
- data/lib/puppet/indirector/certificate/rest.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +2 -2
- data/lib/puppet/indirector/facts/inventory_active_record.rb +0 -1
- data/lib/puppet/indirector/facts/network_device.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +0 -1
- data/lib/puppet/indirector/indirection.rb +2 -2
- data/lib/puppet/indirector/memory.rb +9 -0
- data/lib/puppet/indirector/node/ldap.rb +2 -4
- data/lib/puppet/indirector/report/processor.rb +1 -2
- data/lib/puppet/indirector/report/rest.rb +1 -1
- data/lib/puppet/indirector/request.rb +32 -10
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +31 -12
- data/lib/puppet/interface.rb +1 -1
- data/lib/puppet/interface/documentation.rb +7 -11
- data/lib/puppet/interface/option.rb +1 -1
- data/lib/puppet/interface/option_builder.rb +1 -1
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module.rb +7 -1
- data/lib/puppet/module_tool.rb +1 -1
- data/lib/puppet/module_tool/applications/application.rb +10 -0
- data/lib/puppet/module_tool/applications/installer.rb +6 -3
- data/lib/puppet/module_tool/dependency.rb +2 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
- data/lib/puppet/module_tool/metadata.rb +25 -13
- data/lib/puppet/module_tool/modulefile.rb +7 -7
- data/lib/puppet/module_tool/shared_behaviors.rb +4 -2
- data/lib/puppet/module_tool/skeleton.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +5 -5
- data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +5 -4
- data/lib/puppet/network/auth_config_parser.rb +3 -0
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +1 -1
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/format_handler.rb +25 -114
- data/lib/puppet/network/format_support.rb +106 -0
- data/lib/puppet/network/formats.rb +10 -4
- data/lib/puppet/network/http/compression.rb +1 -1
- data/lib/puppet/network/http/connection.rb +76 -32
- data/lib/puppet/network/http/handler.rb +122 -61
- data/lib/puppet/network/http/rack/rest.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +9 -3
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/network/resolver.rb +1 -0
- data/lib/puppet/network/server.rb +5 -81
- data/lib/puppet/node/environment.rb +256 -13
- data/lib/puppet/node/facts.rb +28 -2
- data/lib/puppet/parameter.rb +27 -18
- data/lib/puppet/parameter/boolean.rb +20 -0
- data/lib/puppet/parameter/path.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +1 -1
- data/lib/puppet/parser/ast/arithmetic_operator.rb +8 -0
- data/lib/puppet/parser/ast/casestatement.rb +0 -3
- data/lib/puppet/parser/ast/lambda.rb +25 -6
- data/lib/puppet/parser/ast/leaf.rb +10 -3
- data/lib/puppet/parser/ast/nop.rb +1 -1
- data/lib/puppet/parser/ast/resource_override.rb +0 -2
- data/lib/puppet/parser/compiler.rb +92 -34
- data/lib/puppet/parser/files.rb +0 -5
- data/lib/puppet/parser/functions/create_resources.rb +23 -46
- data/lib/puppet/parser/functions/each.rb +0 -2
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/foreach.rb +0 -2
- data/lib/puppet/parser/functions/hiera_include.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +44 -0
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/grammar.ra +0 -1
- data/lib/puppet/parser/lexer.rb +0 -1
- data/lib/puppet/parser/parser.rb +0 -1
- data/lib/puppet/parser/parser_factory.rb +3 -2
- data/lib/puppet/parser/parser_support.rb +1 -1
- data/lib/puppet/parser/relationship.rb +1 -1
- data/lib/puppet/parser/scope.rb +49 -24
- data/lib/puppet/parser/type_loader.rb +13 -18
- data/lib/puppet/pops.rb +45 -0
- data/lib/puppet/pops/adaptable.rb +2 -2
- data/lib/puppet/pops/adapters.rb +4 -0
- data/lib/puppet/pops/binder/binder.rb +421 -0
- data/lib/puppet/pops/binder/binder_issues.rb +142 -0
- data/lib/puppet/pops/binder/bindings_checker.rb +217 -0
- data/lib/puppet/pops/binder/bindings_composer.rb +241 -0
- data/lib/puppet/pops/binder/bindings_factory.rb +847 -0
- data/lib/puppet/pops/binder/bindings_label_provider.rb +46 -0
- data/lib/puppet/pops/binder/bindings_loader.rb +79 -0
- data/lib/puppet/pops/binder/bindings_model.rb +215 -0
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +205 -0
- data/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
- data/lib/puppet/pops/binder/config/binder_config.rb +139 -0
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +183 -0
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
- data/lib/puppet/pops/binder/config/issues.rb +106 -0
- data/lib/puppet/pops/binder/hiera2.rb +10 -0
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +148 -0
- data/lib/puppet/pops/binder/hiera2/config.rb +69 -0
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +68 -0
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +36 -0
- data/lib/puppet/pops/binder/hiera2/issues.rb +67 -0
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +18 -0
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +21 -0
- data/lib/puppet/pops/binder/injector.rb +688 -0
- data/lib/puppet/pops/binder/injector_entry.rb +53 -0
- data/lib/puppet/pops/binder/key_factory.rb +61 -0
- data/lib/puppet/pops/binder/producers.rb +829 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +67 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +92 -0
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +54 -0
- data/lib/puppet/pops/binder/system_bindings.rb +72 -0
- data/lib/puppet/pops/issue_reporter.rb +75 -0
- data/lib/puppet/pops/issues.rb +9 -5
- data/lib/puppet/pops/model/ast_transformer.rb +4 -4
- data/lib/puppet/pops/model/ast_tree_dumper.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +25 -13
- data/lib/puppet/pops/model/model.rb +1 -1
- data/lib/puppet/pops/model/tree_dumper.rb +2 -2
- data/lib/puppet/pops/parser/egrammar.ra +0 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +162 -0
- data/lib/puppet/pops/parser/lexer.rb +8 -6
- data/lib/puppet/pops/types/class_loader.rb +118 -0
- data/lib/puppet/pops/types/type_calculator.rb +557 -0
- data/lib/puppet/pops/types/type_factory.rb +147 -0
- data/lib/puppet/pops/types/type_parser.rb +117 -0
- data/lib/puppet/pops/types/types.rb +132 -0
- data/lib/puppet/pops/validation.rb +146 -17
- data/lib/puppet/pops/validation/checker3_1.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +6 -16
- data/lib/puppet/property.rb +3 -3
- data/lib/puppet/property/keyvalue.rb +1 -1
- data/lib/puppet/provider.rb +2 -2
- data/lib/puppet/provider/aixobject.rb +19 -21
- data/lib/puppet/provider/augeas/augeas.rb +3 -1
- data/lib/puppet/provider/command.rb +2 -2
- data/lib/puppet/provider/group/aix.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +3 -8
- data/lib/puppet/provider/mcx/mcxcontent.rb +7 -1
- data/lib/puppet/provider/mount.rb +8 -3
- data/lib/puppet/provider/nameservice.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +86 -32
- data/lib/puppet/provider/package/fink.rb +0 -2
- data/lib/puppet/provider/package/freebsd.rb +0 -2
- data/lib/puppet/provider/package/openbsd.rb +57 -10
- data/lib/puppet/provider/package/opkg.rb +0 -1
- data/lib/puppet/provider/package/pacman.rb +0 -1
- data/lib/puppet/provider/package/pip.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +17 -6
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +9 -1
- data/lib/puppet/provider/package/ports.rb +2 -2
- data/lib/puppet/provider/package/rpm.rb +29 -12
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/urpmi.rb +11 -15
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -26
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/package/zypper.rb +22 -3
- data/lib/puppet/provider/parsedfile.rb +1 -12
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +1 -1
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +3 -3
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/init.rb +14 -20
- data/lib/puppet/provider/service/openrc.rb +3 -1
- data/lib/puppet/provider/service/redhat.rb +5 -8
- data/lib/puppet/provider/service/runit.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -2
- data/lib/puppet/provider/user/aix.rb +25 -12
- data/lib/puppet/provider/user/directoryservice.rb +4 -7
- data/lib/puppet/provider/user/ldap.rb +0 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -0
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +1 -2
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +1 -1
- data/lib/puppet/resource.rb +16 -4
- data/lib/puppet/resource/catalog.rb +111 -173
- data/lib/puppet/resource/status.rb +42 -3
- data/lib/puppet/resource/type.rb +33 -46
- data/lib/puppet/resource/type_collection.rb +19 -15
- data/lib/puppet/run.rb +5 -1
- data/lib/puppet/scheduler/scheduler.rb +14 -15
- data/lib/puppet/settings.rb +78 -41
- data/lib/puppet/settings/boolean_setting.rb +0 -2
- data/lib/puppet/settings/config_file.rb +0 -2
- data/lib/puppet/settings/directory_setting.rb +0 -2
- data/lib/puppet/settings/duration_setting.rb +0 -2
- data/lib/puppet/settings/enum_setting.rb +16 -0
- data/lib/puppet/settings/file_setting.rb +0 -2
- data/lib/puppet/settings/path_setting.rb +0 -2
- data/lib/puppet/settings/string_setting.rb +0 -3
- data/lib/puppet/settings/terminus_setting.rb +0 -2
- data/lib/puppet/ssl/certificate_authority.rb +102 -9
- data/lib/puppet/test/test_helper.rb +1 -0
- data/lib/puppet/transaction.rb +130 -292
- data/lib/puppet/transaction/additional_resource_generator.rb +126 -0
- data/lib/puppet/transaction/event.rb +16 -1
- data/lib/puppet/transaction/report.rb +34 -14
- data/lib/puppet/transaction/resource_harness.rb +16 -19
- data/lib/puppet/type.rb +59 -53
- data/lib/puppet/type/component.rb +0 -2
- data/lib/puppet/type/cron.rb +13 -2
- data/lib/puppet/type/exec.rb +5 -7
- data/lib/puppet/type/file.rb +9 -32
- data/lib/puppet/type/file/content.rb +4 -1
- data/lib/puppet/type/file/ctime.rb +3 -1
- data/lib/puppet/type/file/ensure.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -1
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/group.rb +7 -9
- data/lib/puppet/type/host.rb +1 -2
- data/lib/puppet/type/mcx.rb +0 -1
- data/lib/puppet/type/mount.rb +38 -6
- data/lib/puppet/type/package.rb +2 -2
- data/lib/puppet/type/resources.rb +5 -4
- data/lib/puppet/type/schedule.rb +1 -4
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +1 -3
- data/lib/puppet/type/tidy.rb +3 -3
- data/lib/puppet/type/user.rb +9 -13
- data/lib/puppet/type/yumrepo.rb +11 -7
- data/lib/puppet/util.rb +14 -7
- data/lib/puppet/util/autoload.rb +0 -1
- data/lib/puppet/util/backups.rb +1 -3
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -3
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/constant_inflector.rb +1 -2
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +28 -0
- data/lib/puppet/util/fileparsing.rb +1 -3
- data/lib/puppet/util/filetype.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +38 -0
- data/lib/puppet/util/ldap/manager.rb +1 -2
- data/lib/puppet/util/log.rb +31 -10
- data/lib/puppet/util/log/destinations.rb +0 -50
- data/lib/puppet/util/metric.rb +8 -1
- data/lib/puppet/util/monkey_patches.rb +14 -148
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +6 -9
- data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
- data/lib/puppet/util/pidlock.rb +3 -0
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -1
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -42
- data/lib/puppet/util/retryaction.rb +0 -1
- data/lib/puppet/util/symbolic_file_mode.rb +5 -1
- data/lib/puppet/util/tagging.rb +0 -2
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +37 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/lib/puppet/util/watcher/timer.rb +19 -0
- data/lib/puppet/util/windows/user.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +109 -0
- data/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
- data/lib/puppetx/puppet/hiera2_backend.rb +31 -0
- data/lib/puppetx/puppet/syntax_checker.rb +91 -0
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +39 -0
- data/lib/semver.rb +1 -1
- data/man/man8/puppet-kick.8 +1 -1
- data/spec/fixtures/integration/provider/cron/crontab/unspecialized +15 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +19 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +13 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +4 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_scheme_handler.rb +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +5 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +7 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +4 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/empty/common.yaml +0 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +2 -0
- data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +2 -0
- data/spec/integration/agent/logging_spec.rb +178 -0
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +0 -6
- data/spec/integration/network/authconfig_spec.rb +19 -0
- data/spec/integration/network/server/webrick_spec.rb +10 -11
- data/spec/integration/parser/catalog_spec.rb +85 -0
- data/spec/integration/provider/cron/crontab_spec.rb +11 -0
- data/spec/integration/provider/mount_spec.rb +1 -0
- data/spec/integration/transaction_spec.rb +8 -8
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +58 -11
- data/spec/lib/matchers/include_in_order.rb +21 -0
- data/spec/lib/matchers/include_in_order_spec.rb +30 -0
- data/spec/lib/matchers/relationship_graph_matchers.rb +48 -0
- data/spec/lib/puppet_spec/compiler.rb +24 -0
- data/spec/lib/puppet_spec/pops.rb +16 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/unit/application/agent_spec.rb +145 -145
- data/spec/unit/application/apply_spec.rb +1 -1
- data/spec/unit/application/doc_spec.rb +1 -1
- data/spec/unit/application/face_base_spec.rb +3 -3
- data/spec/unit/application/facts_spec.rb +1 -0
- data/spec/unit/application/master_spec.rb +0 -15
- data/spec/unit/application/queue_spec.rb +6 -12
- data/spec/unit/application/resource_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +19 -50
- data/spec/unit/configurer_spec.rb +23 -7
- data/spec/unit/daemon_spec.rb +97 -121
- data/spec/unit/defaults_spec.rb +44 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -33
- data/spec/unit/file_serving/configuration_spec.rb +2 -2
- data/spec/unit/file_serving/mount/file_spec.rb +4 -4
- data/spec/unit/forge/repository_spec.rb +9 -29
- data/spec/unit/graph/key_spec.rb +41 -0
- data/spec/unit/{rb_tree_map_spec.rb → graph/rb_tree_map_spec.rb} +7 -7
- data/spec/unit/graph/relationship_graph_spec.rb +393 -0
- data/spec/unit/graph/sequential_prioritizer_spec.rb +32 -0
- data/spec/unit/{simple_graph_spec.rb → graph/simple_graph.rb} +42 -254
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +49 -0
- data/spec/unit/hiera_puppet_spec.rb +1 -1
- data/spec/unit/indirector/catalog/active_record_spec.rb +4 -2
- data/spec/unit/indirector/catalog/compiler_spec.rb +20 -26
- data/spec/unit/indirector/face_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +11 -1
- data/spec/unit/indirector/facts/network_device_spec.rb +11 -1
- data/spec/unit/indirector/hiera_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_data/local_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_listener/local_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +92 -39
- data/spec/unit/indirector/rest_spec.rb +1 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/option_builder_spec.rb +1 -0
- data/spec/unit/interface/option_spec.rb +1 -0
- data/spec/unit/interface_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +49 -2
- data/spec/unit/module_tool/metadata_spec.rb +13 -0
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/format_handler_spec.rb +33 -282
- data/spec/unit/network/format_support_spec.rb +199 -0
- data/spec/unit/network/formats_spec.rb +2 -2
- data/spec/unit/network/http/connection_spec.rb +88 -7
- data/spec/unit/network/http/handler_spec.rb +271 -249
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +73 -22
- data/spec/unit/network/http_pool_spec.rb +40 -0
- data/spec/unit/network/server_spec.rb +18 -207
- data/spec/unit/node/facts_spec.rb +68 -17
- data/spec/unit/other/selinux_spec.rb +24 -20
- data/spec/unit/parameter/boolean_spec.rb +25 -0
- data/spec/unit/parameter/value_collection_spec.rb +7 -7
- data/spec/unit/parameter_spec.rb +10 -13
- data/spec/unit/parser/ast/function_spec.rb +4 -4
- data/spec/unit/parser/ast/leaf_spec.rb +45 -6
- data/spec/unit/parser/collector_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +4 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +9 -25
- data/spec/unit/parser/functions/extlookup_spec.rb +2 -2
- data/spec/unit/parser/functions/hiera_include_spec.rb +12 -0
- data/spec/unit/parser/functions/lookup_spec.rb +96 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +2 -2
- data/spec/unit/parser/functions/split_spec.rb +2 -2
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -1
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -2
- data/spec/unit/parser/functions_spec.rb +7 -7
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/collect_spec.rb +43 -0
- data/spec/unit/parser/resource_spec.rb +9 -9
- data/spec/unit/parser/scope_spec.rb +45 -2
- data/spec/unit/parser/type_loader_spec.rb +159 -175
- data/spec/unit/pops/binder/binder_spec.rb +62 -0
- data/spec/unit/pops/binder/bindings_checker_spec.rb +196 -0
- data/spec/unit/pops/binder/bindings_composer_spec.rb +89 -0
- data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +18 -0
- data/spec/unit/pops/binder/config/binder_config_spec.rb +48 -0
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +74 -0
- data/spec/unit/pops/binder/hiera2/config_spec.rb +61 -0
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +33 -0
- data/spec/unit/pops/binder/injector_spec.rb +789 -0
- data/spec/unit/pops/containment_spec.rb +1 -0
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +88 -0
- data/spec/unit/pops/parser/lexer_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +4 -0
- data/spec/unit/pops/parser/parser_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +484 -0
- data/spec/unit/pops/types/type_factory_spec.rb +65 -0
- data/spec/unit/pops/types/type_parser_spec.rb +93 -0
- data/spec/unit/property/list_spec.rb +1 -1
- data/spec/unit/property/ordered_list_spec.rb +1 -1
- data/spec/unit/provider/aixobject_spec.rb +101 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +14 -3
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +52 -16
- data/spec/unit/provider/mount/parsed_spec.rb +44 -56
- data/spec/unit/provider/mount_spec.rb +11 -2
- data/spec/unit/provider/naginator_spec.rb +8 -0
- data/spec/unit/provider/package/apt_spec.rb +5 -1
- data/spec/unit/provider/package/aptitude_spec.rb +9 -5
- data/spec/unit/provider/package/aptrpm_spec.rb +2 -2
- data/spec/unit/provider/package/dpkg_spec.rb +274 -99
- data/spec/unit/provider/package/openbsd_spec.rb +84 -1
- data/spec/unit/provider/package/opkg_spec.rb +3 -3
- data/spec/unit/provider/package/pip_spec.rb +16 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +62 -7
- data/spec/unit/provider/package/rpm_spec.rb +112 -21
- data/spec/unit/provider/package/urpmi.rb +80 -0
- data/spec/unit/provider/package/windows/exe_package_spec.rb +1 -1
- data/spec/unit/provider/package/yum_spec.rb +85 -0
- data/spec/unit/provider/package/zypper_spec.rb +25 -6
- data/spec/unit/provider/parsedfile_spec.rb +3 -2
- data/spec/unit/provider/service/init_spec.rb +10 -10
- data/spec/unit/provider/service/openrc_spec.rb +16 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +7 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -2
- data/spec/unit/provider/user/aix_spec.rb +89 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +11 -4
- data/spec/unit/provider/user/user_role_add_spec.rb +18 -0
- data/spec/unit/provider_spec.rb +2 -13
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/resource/catalog_spec.rb +23 -97
- data/spec/unit/resource/resource_type.json +34 -0
- data/spec/unit/resource/status_spec.rb +56 -0
- data/spec/unit/resource/type_collection_spec.rb +6 -6
- data/spec/unit/resource/type_spec.rb +25 -5
- data/spec/unit/resource_spec.rb +68 -24
- data/spec/unit/run_spec.rb +16 -0
- data/spec/unit/scheduler/scheduler_spec.rb +14 -27
- data/spec/unit/semver_spec.rb +5 -0
- data/spec/unit/settings/enum_setting_spec.rb +27 -0
- data/spec/unit/settings_spec.rb +53 -44
- data/spec/unit/ssl/certificate_authority_spec.rb +155 -19
- data/spec/unit/transaction/additional_resource_generator_spec.rb +419 -0
- data/spec/unit/transaction/event_manager_spec.rb +2 -2
- data/spec/unit/transaction/event_spec.rb +57 -0
- data/spec/unit/transaction/report_spec.rb +66 -0
- data/spec/unit/transaction/resource_harness_spec.rb +27 -20
- data/spec/unit/transaction_spec.rb +182 -390
- data/spec/unit/type/augeas_spec.rb +3 -3
- data/spec/unit/type/component_spec.rb +0 -9
- data/spec/unit/type/computer_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +2 -2
- data/spec/unit/type/exec_spec.rb +4 -2
- data/spec/unit/type/file/content_spec.rb +11 -0
- data/spec/unit/type/file/group_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +16 -8
- data/spec/unit/type/mount_spec.rb +445 -259
- data/spec/unit/type/package_spec.rb +4 -4
- data/spec/unit/type/resources_spec.rb +30 -1
- data/spec/unit/type/user_spec.rb +26 -3
- data/spec/unit/type/yumrepo_spec.rb +7 -27
- data/spec/unit/type/zone_spec.rb +4 -1
- data/spec/unit/type_spec.rb +66 -33
- data/spec/unit/util/backups_spec.rb +3 -3
- data/spec/unit/util/http_proxy_spec.rb +83 -0
- data/spec/unit/util/log_spec.rb +79 -8
- data/spec/unit/util/metric_spec.rb +12 -0
- data/spec/unit/util/monkey_patches_spec.rb +6 -0
- data/spec/unit/util/network_device/config_spec.rb +26 -64
- data/spec/unit/util/pidlock_spec.rb +4 -1
- data/spec/unit/util/tagging_spec.rb +5 -9
- data/spec/unit/util/warnings_spec.rb +1 -1
- data/spec/unit/util/watched_file_spec.rb +52 -0
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +52 -0
- data/spec/unit/util/watcher_spec.rb +56 -0
- data/spec/unit/util_spec.rb +16 -0
- metadata +2767 -2576
- data/ext/debian/puppet.manpages +0 -32
- data/ext/osx/PackageInfo.plist +0 -36
- data/ext/osx/createpackage.sh +0 -187
- data/ext/redhat/rundir-perms.patch +0 -28
- data/lib/puppet/external/base64.rb +0 -19
- data/lib/puppet/util/graph.rb +0 -27
- data/lib/puppet/util/loadedfile.rb +0 -61
- data/lib/puppet/util/log_paths.rb +0 -22
- data/lib/puppet/util/subclass_loader.rb +0 -78
- data/spec/monkey_patches/publicize_methods.rb +0 -11
- data/spec/unit/util/loadedfile_spec.rb +0 -71
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet'
|
2
|
+
require 'puppet/parameter/boolean'
|
2
3
|
|
3
4
|
Puppet::Type.newtype(:resources) do
|
4
5
|
@doc = "This is a metatype that can manage other resource types. Any
|
@@ -17,15 +18,15 @@ Puppet::Type.newtype(:resources) do
|
|
17
18
|
munge { |v| v.to_s }
|
18
19
|
end
|
19
20
|
|
20
|
-
newparam(:purge, :boolean => true) do
|
21
|
+
newparam(:purge, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
21
22
|
desc "Purge unmanaged resources. This will delete any resource
|
22
23
|
that is not specified in your configuration
|
23
24
|
and is not required by any specified resources."
|
24
25
|
|
25
|
-
|
26
|
+
defaultto :false
|
26
27
|
|
27
28
|
validate do |value|
|
28
|
-
if
|
29
|
+
if munge(value)
|
29
30
|
unless @resource.resource_type.respond_to?(:instances)
|
30
31
|
raise ArgumentError, "Purging resources of type #{@resource[:name]} is not supported, since they cannot be queried from the system"
|
31
32
|
end
|
@@ -76,7 +77,7 @@ Puppet::Type.newtype(:resources) do
|
|
76
77
|
|
77
78
|
def able_to_ensure_absent?(resource)
|
78
79
|
resource[:ensure] = :absent
|
79
|
-
rescue ArgumentError, Puppet::Error
|
80
|
+
rescue ArgumentError, Puppet::Error
|
80
81
|
err "The 'ensure' attribute on #{self[:name]} resources does not accept 'absent' as a value"
|
81
82
|
false
|
82
83
|
end
|
data/lib/puppet/type/schedule.rb
CHANGED
@@ -130,7 +130,7 @@ module Puppet
|
|
130
130
|
def match?(previous, now)
|
131
131
|
# The lowest-level array is of the hour, minute, second triad
|
132
132
|
# then it's an array of two of those, to present the limits
|
133
|
-
# then it's array of those ranges
|
133
|
+
# then it's an array of those ranges
|
134
134
|
@value = [@value] unless @value[0][0].is_a?(Array)
|
135
135
|
|
136
136
|
@value.each do |value|
|
@@ -304,9 +304,6 @@ module Puppet
|
|
304
304
|
# than the unit of time, we match. We divide the scale
|
305
305
|
# by the repeat, so that we'll repeat that often within
|
306
306
|
# the scale.
|
307
|
-
diff = (now.to_i - previous.to_i)
|
308
|
-
comparison = (scale / @resource[:repeat])
|
309
|
-
|
310
307
|
return (now.to_i - previous.to_i) >= (scale / @resource[:repeat])
|
311
308
|
end
|
312
309
|
end
|
data/lib/puppet/type/service.rb
CHANGED
@@ -142,9 +142,7 @@ module Puppet
|
|
142
142
|
|
143
143
|
munge do |value|
|
144
144
|
value = [value] unless value.is_a?(Array)
|
145
|
-
|
146
|
-
# It affects stand-alone blocks, too.
|
147
|
-
paths = value.flatten.collect { |p| x = p.split(File::PATH_SEPARATOR) }.flatten
|
145
|
+
value.flatten.collect { |p| p.split(File::PATH_SEPARATOR) }.flatten
|
148
146
|
end
|
149
147
|
|
150
148
|
defaultto { provider.class.defpath if provider.class.respond_to?(:defpath) }
|
data/lib/puppet/type/tidy.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'puppet/parameter/boolean'
|
2
|
+
|
1
3
|
Puppet::Type.newtype(:tidy) do
|
2
4
|
require 'puppet/file_serving/fileset'
|
3
5
|
require 'puppet/file_bucket/dipper'
|
@@ -185,13 +187,11 @@ Puppet::Type.newtype(:tidy) do
|
|
185
187
|
defaultto :atime
|
186
188
|
end
|
187
189
|
|
188
|
-
newparam(:rmdirs, :boolean => true) do
|
190
|
+
newparam(:rmdirs, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
189
191
|
desc "Tidy directories in addition to files; that is, remove
|
190
192
|
directories whose age is older than the specified criteria.
|
191
193
|
This will only remove empty directories, so all contained
|
192
194
|
files must also be tidied before a directory gets removed."
|
193
|
-
|
194
|
-
newvalues :true, :false
|
195
195
|
end
|
196
196
|
|
197
197
|
# Erase PFile's validate method
|
data/lib/puppet/type/user.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'etc'
|
2
2
|
require 'facter'
|
3
|
+
require 'puppet/parameter/boolean'
|
3
4
|
require 'puppet/property/list'
|
4
5
|
require 'puppet/property/ordered_list'
|
5
6
|
require 'puppet/property/keyvalue'
|
@@ -283,35 +284,29 @@ module Puppet
|
|
283
284
|
defaultto :minimum
|
284
285
|
end
|
285
286
|
|
286
|
-
newparam(:system, :boolean => true) do
|
287
|
+
newparam(:system, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
287
288
|
desc "Whether the user is a system user, according to the OS's criteria;
|
288
289
|
on most platforms, a UID less than or equal to 500 indicates a system
|
289
290
|
user. Defaults to `false`."
|
290
291
|
|
291
|
-
newvalues(:true, :false)
|
292
|
-
|
293
292
|
defaultto false
|
294
293
|
end
|
295
294
|
|
296
|
-
newparam(:allowdupe, :boolean => true) do
|
295
|
+
newparam(:allowdupe, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
297
296
|
desc "Whether to allow duplicate UIDs. Defaults to `false`."
|
298
297
|
|
299
|
-
newvalues(:true, :false)
|
300
|
-
|
301
298
|
defaultto false
|
302
299
|
end
|
303
300
|
|
304
|
-
newparam(:managehome, :boolean => true) do
|
301
|
+
newparam(:managehome, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
305
302
|
desc "Whether to manage the home directory when managing the user.
|
306
303
|
This will create the home directory when `ensure => present`, and
|
307
304
|
delete the home directory when `ensure => absent`. Defaults to `false`."
|
308
305
|
|
309
|
-
newvalues(:true, :false)
|
310
|
-
|
311
306
|
defaultto false
|
312
307
|
|
313
308
|
validate do |val|
|
314
|
-
if val
|
309
|
+
if munge(val)
|
315
310
|
raise ArgumentError, "User provider #{provider.class.name} can not manage home directories" if provider and not provider.class.manages_homedir?
|
316
311
|
end
|
317
312
|
end
|
@@ -370,7 +365,7 @@ module Puppet
|
|
370
365
|
#
|
371
366
|
# (see Puppet::Settings#service_user_available?)
|
372
367
|
#
|
373
|
-
# @
|
368
|
+
# @return [Boolean] if the user exists on the system
|
374
369
|
# @api private
|
375
370
|
def exists?
|
376
371
|
provider.exists?
|
@@ -559,10 +554,11 @@ module Puppet
|
|
559
554
|
end
|
560
555
|
end
|
561
556
|
|
562
|
-
newparam(:forcelocal, :boolean => true,
|
557
|
+
newparam(:forcelocal, :boolean => true,
|
558
|
+
:required_features => :libuser,
|
559
|
+
:parent => Puppet::Parameter::Boolean) do
|
563
560
|
desc "Forces the mangement of local accounts when accounts are also
|
564
561
|
being managed by some other NSS"
|
565
|
-
newvalues(:true, :false)
|
566
562
|
defaultto false
|
567
563
|
end
|
568
564
|
end
|
data/lib/puppet/type/yumrepo.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# Description of yum repositories
|
2
|
-
|
3
1
|
require 'puppet/util/inifile'
|
4
2
|
|
5
3
|
module Puppet
|
@@ -232,7 +230,7 @@ module Puppet
|
|
232
230
|
desc "Whether this repository is enabled, as represented by a
|
233
231
|
`0` or `1`. #{ABSENT_DOC}"
|
234
232
|
newvalue(:absent) { self.should = :absent }
|
235
|
-
newvalue(
|
233
|
+
newvalue(/^(0|1)$/) { }
|
236
234
|
end
|
237
235
|
|
238
236
|
newproperty(:gpgcheck, :parent => Puppet::IniProperty) do
|
@@ -240,7 +238,7 @@ module Puppet
|
|
240
238
|
from this repository, as represented by a `0` or `1`.
|
241
239
|
#{ABSENT_DOC}"
|
242
240
|
newvalue(:absent) { self.should = :absent }
|
243
|
-
newvalue(
|
241
|
+
newvalue(/^(0|1)$/) { }
|
244
242
|
end
|
245
243
|
|
246
244
|
newproperty(:gpgkey, :parent => Puppet::IniProperty) do
|
@@ -280,7 +278,7 @@ module Puppet
|
|
280
278
|
desc "Whether yum will allow the use of package groups for this
|
281
279
|
repository, as represented by a `0` or `1`. #{ABSENT_DOC}"
|
282
280
|
newvalue(:absent) { self.should = :absent }
|
283
|
-
newvalue(
|
281
|
+
newvalue(/^(0|1)$/) { }
|
284
282
|
end
|
285
283
|
|
286
284
|
newproperty(:failovermethod, :parent => Puppet::IniProperty) do
|
@@ -294,7 +292,7 @@ module Puppet
|
|
294
292
|
desc "Whether HTTP/1.1 keepalive should be used with this repository, as
|
295
293
|
represented by a `0` or `1`. #{ABSENT_DOC}"
|
296
294
|
newvalue(:absent) { self.should = :absent }
|
297
|
-
newvalue(
|
295
|
+
newvalue(/^(0|1)$/) { }
|
298
296
|
end
|
299
297
|
|
300
298
|
newproperty(:http_caching, :parent => Puppet::IniProperty) do
|
@@ -322,7 +320,7 @@ module Puppet
|
|
322
320
|
that the `protectbase` plugin is installed and enabled.
|
323
321
|
#{ABSENT_DOC}"
|
324
322
|
newvalue(:absent) { self.should = :absent }
|
325
|
-
newvalue(
|
323
|
+
newvalue(/^(0|1)$/) { }
|
326
324
|
end
|
327
325
|
|
328
326
|
newproperty(:priority, :parent => Puppet::IniProperty) do
|
@@ -358,6 +356,12 @@ module Puppet
|
|
358
356
|
newvalue(/.*/) { }
|
359
357
|
end
|
360
358
|
|
359
|
+
newproperty(:s3_enabled, :parent => Puppet::IniProperty) do
|
360
|
+
desc "Access the repo via S3. #{ABSENT_DOC}"
|
361
|
+
newvalue(:absent) { self.should = :absent }
|
362
|
+
newvalue(/^(0|1)$/) { }
|
363
|
+
end
|
364
|
+
|
361
365
|
newproperty(:sslcacert, :parent => Puppet::IniProperty) do
|
362
366
|
desc "Path to the directory containing the databases of the
|
363
367
|
certificate authorities yum should use to verify SSL certificates.\n#{ABSENT_DOC}"
|
data/lib/puppet/util.rb
CHANGED
@@ -11,6 +11,8 @@ require 'tempfile'
|
|
11
11
|
require 'pathname'
|
12
12
|
require 'ostruct'
|
13
13
|
require 'puppet/util/platform'
|
14
|
+
require 'puppet/util/symbolic_file_mode'
|
15
|
+
require 'securerandom'
|
14
16
|
|
15
17
|
module Puppet
|
16
18
|
module Util
|
@@ -22,6 +24,8 @@ module Util
|
|
22
24
|
require 'puppet/util/posix'
|
23
25
|
extend Puppet::Util::POSIX
|
24
26
|
|
27
|
+
extend Puppet::Util::SymbolicFileMode
|
28
|
+
|
25
29
|
@@sync_objects = {}.extend MonitorMixin
|
26
30
|
|
27
31
|
|
@@ -174,7 +178,6 @@ module Util
|
|
174
178
|
|
175
179
|
# Only benchmark if our log level is high enough
|
176
180
|
if level != :none and Puppet::Util::Log.sendlevel?(level)
|
177
|
-
result = nil
|
178
181
|
seconds = Benchmark.realtime {
|
179
182
|
yield
|
180
183
|
}
|
@@ -396,15 +399,19 @@ module Util
|
|
396
399
|
#
|
397
400
|
# The default_mode is the mode to use when the target file doesn't already
|
398
401
|
# exist; if the file is present we copy the existing mode/owner/group values
|
399
|
-
# across.
|
402
|
+
# across. The default_mode can be expressed as an octal integer, a numeric string (ie '0664')
|
403
|
+
# or a symbolic file mode.
|
400
404
|
def replace_file(file, default_mode, &block)
|
401
405
|
raise Puppet::DevError, "replace_file requires a block" unless block_given?
|
402
406
|
|
407
|
+
unless valid_symbolic_mode?(default_mode)
|
408
|
+
raise Puppet::DevError, "replace_file default_mode: #{default_mode} is invalid"
|
409
|
+
end
|
410
|
+
mode = symbolic_mode_to_int(normalize_symbolic_mode(default_mode))
|
411
|
+
|
403
412
|
file = Pathname(file)
|
404
413
|
tempfile = Tempfile.new(file.basename.to_s, file.dirname.to_s)
|
405
414
|
|
406
|
-
file_exists = file.exist?
|
407
|
-
|
408
415
|
# Set properties of the temporary file before we write the content, because
|
409
416
|
# Tempfile doesn't promise to be safe from reading by other people, just
|
410
417
|
# that it avoids races around creating the file.
|
@@ -415,7 +422,7 @@ module Util
|
|
415
422
|
# secure" tempfile permissions instead. Magic happens later.
|
416
423
|
unless Puppet.features.microsoft_windows?
|
417
424
|
# Grab the current file mode, and fall back to the defaults.
|
418
|
-
stat = file.lstat rescue OpenStruct.new(:mode =>
|
425
|
+
stat = file.lstat rescue OpenStruct.new(:mode => mode,
|
419
426
|
:uid => Process.euid,
|
420
427
|
:gid => Process.egid)
|
421
428
|
|
@@ -456,7 +463,7 @@ module Util
|
|
456
463
|
# Yes, the arguments are reversed compared to the rename in the rest
|
457
464
|
# of the world.
|
458
465
|
Puppet::Util::Windows::File.replace_file(file, tempfile.path)
|
459
|
-
rescue Puppet::Util::Windows::Error
|
466
|
+
rescue Puppet::Util::Windows::Error
|
460
467
|
# This might race, but there are enough possible cases that there
|
461
468
|
# isn't a good, solid "better" way to do this, and the next call
|
462
469
|
# should fail in the same way anyhow.
|
@@ -475,7 +482,7 @@ module Util
|
|
475
482
|
end
|
476
483
|
|
477
484
|
# Set the permissions to what we want.
|
478
|
-
Puppet::Util::Windows::Security.set_mode(
|
485
|
+
Puppet::Util::Windows::Security.set_mode(mode, file.to_s)
|
479
486
|
|
480
487
|
# ...and finally retry the operation.
|
481
488
|
retry
|
data/lib/puppet/util/autoload.rb
CHANGED
@@ -85,7 +85,6 @@ class Puppet::Util::Autoload
|
|
85
85
|
# returns nil if no file is found
|
86
86
|
def get_file(name, env=nil)
|
87
87
|
name = name + '.rb' unless name =~ /\.rb$/
|
88
|
-
dirname, base = File.split(name)
|
89
88
|
path = search_directories(env).find { |dir| File.exist?(File.join(dir, name)) }
|
90
89
|
path and File.join(path, name)
|
91
90
|
end
|
data/lib/puppet/util/backups.rb
CHANGED
@@ -19,7 +19,7 @@ module Puppet::Util::Backups
|
|
19
19
|
|
20
20
|
def perform_backup_with_bucket(fileobj)
|
21
21
|
file = (fileobj.class == String) ? fileobj : fileobj.name
|
22
|
-
case File.
|
22
|
+
case File.lstat(file).ftype
|
23
23
|
when "directory"
|
24
24
|
# we don't need to backup directories when recurse is on
|
25
25
|
return true if self[:recurse]
|
@@ -40,8 +40,6 @@ module Puppet::Util::Backups
|
|
40
40
|
begin
|
41
41
|
bfile = file + backup
|
42
42
|
|
43
|
-
# Ruby 1.8.1 requires the 'preserve' addition, but
|
44
|
-
# later versions do not appear to require it.
|
45
43
|
# N.B. cp_r works on both files and directories
|
46
44
|
FileUtils.cp_r(file, bfile, :preserve => true)
|
47
45
|
return true
|
data/lib/puppet/util/classgen.rb
CHANGED
@@ -36,7 +36,7 @@ module Puppet::Util::ClassGen
|
|
36
36
|
|
37
37
|
# Creates a new module.
|
38
38
|
# @param name [String] the name of the generated module
|
39
|
-
# @param
|
39
|
+
# @param options [Hash] hash with options
|
40
40
|
# @option options [Array<Class>] :array if specified, the generated class is appended to this array
|
41
41
|
# @option options [Hash<{String => Object}>] :attributes a hash that is applied to the generated class
|
42
42
|
# by calling setter methods corresponding to this hash's keys/value pairs. This is done before the given
|
@@ -11,7 +11,7 @@ module Puppet
|
|
11
11
|
# This is a command line option parser. It is intended to have an API that is very similar to
|
12
12
|
# the ruby stdlib 'OptionParser' API, for ease of integration into our existing code... however,
|
13
13
|
# However, we've removed the OptionParser-based implementation and are only maintaining the
|
14
|
-
# it's
|
14
|
+
# it's implemented based on the third-party "trollop" library. This was done because there
|
15
15
|
# are places where the stdlib OptionParser is not flexible enough to meet our needs.
|
16
16
|
|
17
17
|
class PuppetOptionParser
|
@@ -22,8 +22,6 @@ module Puppet
|
|
22
22
|
|
23
23
|
@parser = Trollop::Parser.new do
|
24
24
|
banner usage_msg
|
25
|
-
create_default_short_options = false
|
26
|
-
handle_help_and_version = false
|
27
25
|
end
|
28
26
|
|
29
27
|
end
|
@@ -454,7 +454,7 @@ class Parser
|
|
454
454
|
# chronic is not available
|
455
455
|
end
|
456
456
|
time ? Date.new(time.year, time.month, time.day) : Date.parse(param)
|
457
|
-
rescue ArgumentError
|
457
|
+
rescue ArgumentError
|
458
458
|
raise CommandlineError, "option '#{arg}' needs a date"
|
459
459
|
end
|
460
460
|
end
|
@@ -11,8 +11,7 @@ module Puppet
|
|
11
11
|
module Util
|
12
12
|
module ConstantInflector
|
13
13
|
def file2constant(file)
|
14
|
-
|
15
|
-
x = file.split("/").collect { |name| name.capitalize }.join("::").gsub(/_+(.)/) { |term| $1.capitalize }
|
14
|
+
file.split("/").collect { |name| name.capitalize }.join("::").gsub(/_+(.)/) { |term| $1.capitalize }
|
16
15
|
end
|
17
16
|
module_function :file2constant
|
18
17
|
|
data/lib/puppet/util/errors.rb
CHANGED
@@ -22,6 +22,7 @@ module Puppet::Util::Errors
|
|
22
22
|
def adderrorcontext(error, other = nil)
|
23
23
|
error.line ||= self.line if error.respond_to?(:line=) and self.respond_to?(:line) and self.line
|
24
24
|
error.file ||= self.file if error.respond_to?(:file=) and self.respond_to?(:file) and self.file
|
25
|
+
error.original ||= other if error.respond_to?(:original=)
|
25
26
|
|
26
27
|
error.set_backtrace(other.backtrace) if other and other.respond_to?(:backtrace)
|
27
28
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Puppet::Util::FileWatcher
|
2
|
+
include Enumerable
|
3
|
+
|
4
|
+
def each(&blk)
|
5
|
+
@files.keys.each(&blk)
|
6
|
+
end
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@files = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def changed?
|
13
|
+
@files.values.any?(&:changed?)
|
14
|
+
end
|
15
|
+
|
16
|
+
def watch(filename)
|
17
|
+
return if watching?(filename)
|
18
|
+
@files[filename] = Puppet::Util::WatchedFile.new(filename)
|
19
|
+
end
|
20
|
+
|
21
|
+
def watching?(filename)
|
22
|
+
@files.has_key?(filename)
|
23
|
+
end
|
24
|
+
|
25
|
+
def clear
|
26
|
+
@files.clear
|
27
|
+
end
|
28
|
+
end
|
@@ -161,7 +161,6 @@ module Puppet::Util::FileParsing
|
|
161
161
|
# In this case, we try to match the whole line and then use the
|
162
162
|
# match captures to get our fields.
|
163
163
|
if match = regex.match(line)
|
164
|
-
fields = []
|
165
164
|
ret = {}
|
166
165
|
record.fields.zip(match.captures).each do |field, value|
|
167
166
|
if value == record.absent
|
@@ -216,8 +215,7 @@ module Puppet::Util::FileParsing
|
|
216
215
|
# Split text into separate lines using the record separator.
|
217
216
|
def lines(text)
|
218
217
|
# Remove any trailing separators, and then split based on them
|
219
|
-
|
220
|
-
x = text.sub(/#{self.line_separator}\Q/,'').split(self.line_separator)
|
218
|
+
text.sub(/#{self.line_separator}\Q/,'').split(self.line_separator)
|
221
219
|
end
|
222
220
|
|
223
221
|
# Split a bunch of text into lines and then parse them individually.
|
data/lib/puppet/util/filetype.rb
CHANGED
@@ -203,7 +203,6 @@ class Puppet::Util::FileType
|
|
203
203
|
# Only add the -u flag when the @path is different. Fedora apparently
|
204
204
|
# does not think I should be allowed to set the @path to my own user name
|
205
205
|
def cmdbase
|
206
|
-
cmd = nil
|
207
206
|
if @uid == Puppet::Util::SUIDManager.uid || Facter.value(:operatingsystem) == "HP-UX"
|
208
207
|
return "crontab"
|
209
208
|
else
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Puppet::Util::HttpProxy
|
2
|
+
|
3
|
+
def self.http_proxy_env
|
4
|
+
# Returns a URI object if proxy is set, or nil
|
5
|
+
proxy_env = ENV["http_proxy"] || ENV["HTTP_PROXY"]
|
6
|
+
begin
|
7
|
+
return URI.parse(proxy_env) if proxy_env
|
8
|
+
rescue URI::InvalidURIError
|
9
|
+
return nil
|
10
|
+
end
|
11
|
+
return nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.http_proxy_host
|
15
|
+
env = self.http_proxy_env
|
16
|
+
|
17
|
+
if env and env.host then
|
18
|
+
return env.host
|
19
|
+
end
|
20
|
+
|
21
|
+
if Puppet.settings[:http_proxy_host] == 'none'
|
22
|
+
return nil
|
23
|
+
end
|
24
|
+
|
25
|
+
return Puppet.settings[:http_proxy_host]
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.http_proxy_port
|
29
|
+
env = self.http_proxy_env
|
30
|
+
|
31
|
+
if env and env.port then
|
32
|
+
return env.port
|
33
|
+
end
|
34
|
+
|
35
|
+
return Puppet.settings[:http_proxy_port]
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|