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
data/lib/puppet/type/cron.rb
CHANGED
@@ -243,15 +243,26 @@ Puppet::Type.newtype(:cron) do
|
|
243
243
|
newproperty(:special) do
|
244
244
|
desc "A special value such as 'reboot' or 'annually'.
|
245
245
|
Only available on supported systems such as Vixie Cron.
|
246
|
-
Overrides more specific time of day/week settings.
|
246
|
+
Overrides more specific time of day/week settings.
|
247
|
+
Set to 'absent' to make puppet revert to a plain numeric schedule."
|
247
248
|
|
248
249
|
def specials
|
249
|
-
%w{reboot yearly annually monthly weekly daily midnight hourly}
|
250
|
+
%w{reboot yearly annually monthly weekly daily midnight hourly absent} +
|
251
|
+
[ :absent ]
|
250
252
|
end
|
251
253
|
|
252
254
|
validate do |value|
|
253
255
|
raise ArgumentError, "Invalid special schedule #{value.inspect}" unless specials.include?(value)
|
254
256
|
end
|
257
|
+
|
258
|
+
def munge(value)
|
259
|
+
# Support value absent so that a schedule can be
|
260
|
+
# forced to change to numeric.
|
261
|
+
if value == "absent" or value == :absent
|
262
|
+
return :absent
|
263
|
+
end
|
264
|
+
value
|
265
|
+
end
|
255
266
|
end
|
256
267
|
|
257
268
|
newproperty(:minute, :parent => CronParam) do
|
data/lib/puppet/type/exec.rb
CHANGED
@@ -79,11 +79,6 @@ module Puppet
|
|
79
79
|
|
80
80
|
# Actually execute the command.
|
81
81
|
def sync
|
82
|
-
olddir = nil
|
83
|
-
|
84
|
-
# We need a dir to change to, even if it's just the cwd
|
85
|
-
dir = self.resource[:cwd] || Dir.pwd
|
86
|
-
|
87
82
|
event = :executed_command
|
88
83
|
tries = self.resource[:tries]
|
89
84
|
try_sleep = self.resource[:try_sleep]
|
@@ -161,7 +156,10 @@ module Puppet
|
|
161
156
|
use this then any error output is not currently captured. This
|
162
157
|
is because of a bug within Ruby. If you are using Puppet to
|
163
158
|
create this user, the exec will automatically require the user,
|
164
|
-
as long as it is specified by name.
|
159
|
+
as long as it is specified by name.
|
160
|
+
|
161
|
+
Please note that the $HOME environment variable is not automatically set
|
162
|
+
when using this attribute."
|
165
163
|
|
166
164
|
# Most validation is handled by the SUIDManager class.
|
167
165
|
validate do |user|
|
@@ -232,7 +230,7 @@ module Puppet
|
|
232
230
|
value = value.shift if value.is_a?(Array)
|
233
231
|
begin
|
234
232
|
value = Float(value)
|
235
|
-
rescue ArgumentError
|
233
|
+
rescue ArgumentError
|
236
234
|
raise ArgumentError, "The timeout must be a number."
|
237
235
|
end
|
238
236
|
[value, 0.0].max
|
data/lib/puppet/type/file.rb
CHANGED
@@ -5,6 +5,7 @@ require 'uri'
|
|
5
5
|
require 'fileutils'
|
6
6
|
require 'enumerator'
|
7
7
|
require 'pathname'
|
8
|
+
require 'puppet/parameter/boolean'
|
8
9
|
require 'puppet/util/diff'
|
9
10
|
require 'puppet/util/checksums'
|
10
11
|
require 'puppet/util/backups'
|
@@ -53,7 +54,7 @@ Puppet::Type.newtype(:file) do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
munge do |value|
|
56
|
-
::File.expand_path(value)
|
57
|
+
::File.join(::File.split(::File.expand_path(value)))
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
@@ -160,26 +161,22 @@ Puppet::Type.newtype(:file) do
|
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
163
|
-
newparam(:replace, :boolean => true) do
|
164
|
+
newparam(:replace, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
164
165
|
desc "Whether to replace a file or symlink that already exists on the local system but
|
165
166
|
whose content doesn't match what the `source` or `content` attribute
|
166
167
|
specifies. Setting this to false allows file resources to initialize files
|
167
168
|
without overwriting future changes. Note that this only affects content;
|
168
169
|
Puppet will still manage ownership and permissions. Defaults to `true`."
|
169
|
-
newvalues(:true, :false)
|
170
|
-
aliasvalue(:yes, :true)
|
171
|
-
aliasvalue(:no, :false)
|
172
170
|
defaultto :true
|
173
171
|
end
|
174
172
|
|
175
|
-
newparam(:force, :boolean => true) do
|
173
|
+
newparam(:force, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
176
174
|
desc "Perform the file operation even if it will destroy one or more directories.
|
177
175
|
You must use `force` in order to:
|
178
176
|
|
179
177
|
* `purge` subdirectories
|
180
178
|
* Replace directories with files or links
|
181
179
|
* Remove a directory when `ensure => absent`"
|
182
|
-
newvalues(:true, :false)
|
183
180
|
defaultto false
|
184
181
|
end
|
185
182
|
|
@@ -210,7 +207,7 @@ Puppet::Type.newtype(:file) do
|
|
210
207
|
defaultto :manage
|
211
208
|
end
|
212
209
|
|
213
|
-
newparam(:purge, :boolean => true) do
|
210
|
+
newparam(:purge, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
214
211
|
desc "Whether unmanaged files should be purged. This option only makes
|
215
212
|
sense when managing directories with `recurse => true`.
|
216
213
|
|
@@ -225,8 +222,6 @@ Puppet::Type.newtype(:file) do
|
|
225
222
|
but if you do not, this will destroy data."
|
226
223
|
|
227
224
|
defaultto :false
|
228
|
-
|
229
|
-
newvalues(:true, :false)
|
230
225
|
end
|
231
226
|
|
232
227
|
newparam(:sourceselect) do
|
@@ -242,7 +237,7 @@ Puppet::Type.newtype(:file) do
|
|
242
237
|
newvalues(:first, :all)
|
243
238
|
end
|
244
239
|
|
245
|
-
newparam(:show_diff, :boolean => true) do
|
240
|
+
newparam(:show_diff, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
246
241
|
desc "Whether to display differences when the file changes, defaulting to
|
247
242
|
true. This parameter is useful for files that may contain passwords or
|
248
243
|
other secret data, which might otherwise be included in Puppet reports or
|
@@ -250,8 +245,6 @@ Puppet::Type.newtype(:file) do
|
|
250
245
|
is false, then no diffs will be shown even if this parameter is true."
|
251
246
|
|
252
247
|
defaultto :true
|
253
|
-
|
254
|
-
newvalues(:true, :false)
|
255
248
|
end
|
256
249
|
|
257
250
|
# Autorequire the nearest ancestor directory found in the catalog.
|
@@ -380,12 +373,6 @@ Puppet::Type.newtype(:file) do
|
|
380
373
|
return [] unless self.recurse?
|
381
374
|
|
382
375
|
recurse
|
383
|
-
#recurse.reject do |resource|
|
384
|
-
# catalog.resource(:file, resource[:path])
|
385
|
-
#end.each do |child|
|
386
|
-
# catalog.add_resource child
|
387
|
-
# catalog.relationship_graph.add_edge self, child
|
388
|
-
#end
|
389
376
|
end
|
390
377
|
|
391
378
|
def ancestors
|
@@ -475,16 +462,6 @@ Puppet::Type.newtype(:file) do
|
|
475
462
|
end
|
476
463
|
end
|
477
464
|
|
478
|
-
# Should we be purging?
|
479
|
-
def purge?
|
480
|
-
@parameters.include?(:purge) and (self[:purge] == :true or self[:purge] == "true")
|
481
|
-
end
|
482
|
-
|
483
|
-
# Should we be showing diffs?
|
484
|
-
def show_diff?
|
485
|
-
@parameters.include?(:show_diff) and (self[:show_diff] == :true or self[:show_diff] == "true")
|
486
|
-
end
|
487
|
-
|
488
465
|
# Recursively generate a list of file resources, which will
|
489
466
|
# be used to copy remote files, manage local files, and/or make links
|
490
467
|
# to map to another directory.
|
@@ -773,7 +750,7 @@ Puppet::Type.newtype(:file) do
|
|
773
750
|
|
774
751
|
# @return [Boolean] If the current file can be backed up and needs to be backed up.
|
775
752
|
def can_backup?(type)
|
776
|
-
if type == "directory" and
|
753
|
+
if type == "directory" and not force?
|
777
754
|
# (#18110) Directories cannot be removed without :force, so it doesn't
|
778
755
|
# make sense to back them up.
|
779
756
|
false
|
@@ -785,7 +762,7 @@ Puppet::Type.newtype(:file) do
|
|
785
762
|
# @return [Boolean] True if the directory was removed
|
786
763
|
# @api private
|
787
764
|
def remove_directory(wanted_type)
|
788
|
-
if
|
765
|
+
if force?
|
789
766
|
debug "Removing existing directory for replacement with #{wanted_type}"
|
790
767
|
FileUtils.rmtree(self[:path])
|
791
768
|
stat_needed
|
@@ -842,7 +819,7 @@ Puppet::Type.newtype(:file) do
|
|
842
819
|
def write_temporary_file?
|
843
820
|
# unfortunately we don't know the source file size before fetching it
|
844
821
|
# so let's assume the file won't be empty
|
845
|
-
(c = property(:content) and c.length) ||
|
822
|
+
(c = property(:content) and c.length) || @parameters[:source]
|
846
823
|
end
|
847
824
|
|
848
825
|
# There are some cases where all of the work does not get done on
|
@@ -75,7 +75,7 @@ module Puppet
|
|
75
75
|
def checksum_type
|
76
76
|
if source = resource.parameter(:source)
|
77
77
|
result = source.checksum
|
78
|
-
else
|
78
|
+
else
|
79
79
|
result = resource[:checksum]
|
80
80
|
end
|
81
81
|
if result =~ /^\{(\w+)\}.+/
|
@@ -100,6 +100,9 @@ module Puppet
|
|
100
100
|
if resource.should_be_file?
|
101
101
|
return false if is == :absent
|
102
102
|
else
|
103
|
+
if resource[:ensure] == :present and resource[:content] and s = resource.stat
|
104
|
+
resource.warning "Ensure set to :present but file type is #{s.ftype} so no content will be synced"
|
105
|
+
end
|
103
106
|
return true
|
104
107
|
end
|
105
108
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Puppet
|
2
2
|
Puppet::Type.type(:file).newproperty(:ctime) do
|
3
|
-
desc
|
3
|
+
desc %q{A read-only state to check the file ctime. On most modern \*nix-like
|
4
|
+
systems, this is the time of the most recent change to the owner, group,
|
5
|
+
permissions, or content of the file.}
|
4
6
|
|
5
7
|
def retrieve
|
6
8
|
current_value = :absent
|
@@ -80,7 +80,6 @@ module Puppet
|
|
80
80
|
# If we're a directory, we need to be executable for all cases
|
81
81
|
# that are readable. This should probably be selectable, but eh.
|
82
82
|
def dirmask(value)
|
83
|
-
orig = value
|
84
83
|
if FileTest.directory?(resource[:path]) and value =~ /^\d+$/ then
|
85
84
|
value = value.to_i(8)
|
86
85
|
value |= 0100 if value & 0400 != 0
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Puppet
|
2
2
|
Puppet::Type.type(:file).newproperty(:mtime) do
|
3
|
-
desc
|
3
|
+
desc %q{A read-only state to check the file mtime. On \*nix-like systems, this
|
4
|
+
is the time of the most recent change to the content of the file.}
|
4
5
|
|
5
6
|
def retrieve
|
6
7
|
current_value = :absent
|
data/lib/puppet/type/group.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'etc'
|
2
2
|
require 'facter'
|
3
3
|
require 'puppet/property/keyvalue'
|
4
|
+
require 'puppet/parameter/boolean'
|
4
5
|
|
5
6
|
module Puppet
|
6
7
|
newtype(:group) do
|
@@ -104,11 +105,9 @@ module Puppet
|
|
104
105
|
isnamevar
|
105
106
|
end
|
106
107
|
|
107
|
-
newparam(:allowdupe, :boolean => true) do
|
108
|
+
newparam(:allowdupe, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
108
109
|
desc "Whether to allow duplicate GIDs. Defaults to `false`."
|
109
110
|
|
110
|
-
newvalues(:true, :false)
|
111
|
-
|
112
111
|
defaultto false
|
113
112
|
end
|
114
113
|
|
@@ -142,18 +141,17 @@ module Puppet
|
|
142
141
|
defaultto :minimum
|
143
142
|
end
|
144
143
|
|
145
|
-
newparam(:system, :boolean => true) do
|
144
|
+
newparam(:system, :boolean => true, :parent => Puppet::Parameter::Boolean) do
|
146
145
|
desc "Whether the group is a system group with lower GID."
|
147
146
|
|
148
|
-
newvalues(:true, :false)
|
149
|
-
|
150
147
|
defaultto false
|
151
148
|
end
|
152
149
|
|
153
|
-
newparam(:forcelocal, :boolean => true,
|
150
|
+
newparam(:forcelocal, :boolean => true,
|
151
|
+
:required_features => :libuser,
|
152
|
+
:parent => Puppet::Parameter::Boolean) do
|
154
153
|
desc "Forces the mangement of local accounts when accounts are also
|
155
154
|
being managed by some other NSS"
|
156
|
-
newvalues(:true, :false)
|
157
155
|
defaultto false
|
158
156
|
end
|
159
157
|
|
@@ -163,7 +161,7 @@ module Puppet
|
|
163
161
|
#
|
164
162
|
# (see Puppet::Settings#service_group_available?)
|
165
163
|
#
|
166
|
-
# @
|
164
|
+
# @return [Boolean] if the group exists on the system
|
167
165
|
# @api private
|
168
166
|
def exists?
|
169
167
|
provider.exists?
|
data/lib/puppet/type/host.rb
CHANGED
@@ -71,8 +71,7 @@ module Puppet
|
|
71
71
|
isnamevar
|
72
72
|
|
73
73
|
validate do |value|
|
74
|
-
|
75
|
-
x = value.split('.').each do |hostpart|
|
74
|
+
value.split('.').each do |hostpart|
|
76
75
|
unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/
|
77
76
|
raise Puppet::Error, "Invalid host name"
|
78
77
|
end
|
data/lib/puppet/type/mcx.rb
CHANGED
data/lib/puppet/type/mount.rb
CHANGED
@@ -118,6 +118,10 @@ module Puppet
|
|
118
118
|
device is supporting by the mount, including network
|
119
119
|
devices or devices specified by UUID rather than device
|
120
120
|
path, depending on the operating system."
|
121
|
+
|
122
|
+
validate do |value|
|
123
|
+
raise Puppet::Error, "device must not contain whitespace: #{value}" if value =~ /\s/
|
124
|
+
end
|
121
125
|
end
|
122
126
|
|
123
127
|
# Solaris specifies two devices, not just one.
|
@@ -128,10 +132,11 @@ module Puppet
|
|
128
132
|
|
129
133
|
# Default to the device but with "dsk" replaced with "rdsk".
|
130
134
|
defaultto do
|
131
|
-
if Facter
|
132
|
-
device =
|
133
|
-
if device =~ %r{/dsk/}
|
135
|
+
if Facter.value(:osfamily) == "Solaris"
|
136
|
+
if device = resource[:device] and device =~ %r{/dsk/}
|
134
137
|
device.sub(%r{/dsk/}, "/rdsk/")
|
138
|
+
elsif fstype = resource[:fstype] and fstype == 'nfs'
|
139
|
+
'-'
|
135
140
|
else
|
136
141
|
nil
|
137
142
|
end
|
@@ -139,36 +144,56 @@ module Puppet
|
|
139
144
|
nil
|
140
145
|
end
|
141
146
|
end
|
147
|
+
|
148
|
+
validate do |value|
|
149
|
+
raise Puppet::Error, "blockdevice must not contain whitespace: #{value}" if value =~ /\s/
|
150
|
+
end
|
142
151
|
end
|
143
152
|
|
144
153
|
newproperty(:fstype) do
|
145
154
|
desc "The mount type. Valid values depend on the
|
146
155
|
operating system. This is a required option."
|
156
|
+
|
157
|
+
validate do |value|
|
158
|
+
raise Puppet::Error, "fstype must not contain whitespace: #{value}" if value =~ /\s/
|
159
|
+
end
|
147
160
|
end
|
148
161
|
|
149
162
|
newproperty(:options) do
|
150
163
|
desc "Mount options for the mounts, as they would
|
151
164
|
appear in the fstab."
|
165
|
+
|
166
|
+
validate do |value|
|
167
|
+
raise Puppet::Error, "option must not contain whitespace: #{value}" if value =~ /\s/
|
168
|
+
end
|
152
169
|
end
|
153
170
|
|
154
171
|
newproperty(:pass) do
|
155
172
|
desc "The pass in which the mount is checked."
|
156
173
|
|
157
174
|
defaultto {
|
158
|
-
|
175
|
+
if @resource.managed?
|
176
|
+
if Facter.value(:osfamily) == 'Solaris'
|
177
|
+
'-'
|
178
|
+
else
|
179
|
+
0
|
180
|
+
end
|
181
|
+
end
|
159
182
|
}
|
160
183
|
end
|
161
184
|
|
162
185
|
newproperty(:atboot) do
|
163
186
|
desc "Whether to mount the mount at boot. Not all platforms
|
164
187
|
support this."
|
188
|
+
|
189
|
+
newvalues :yes, :no
|
165
190
|
end
|
166
191
|
|
167
192
|
newproperty(:dump) do
|
168
193
|
desc "Whether to dump the mount. Not all platform support this.
|
169
194
|
Valid values are `1` or `0`. or `2` on FreeBSD, Default is `0`."
|
170
195
|
|
171
|
-
if Facter
|
196
|
+
if Facter.value(:operatingsystem) == "FreeBSD"
|
172
197
|
newvalue(%r{(0|1|2)})
|
173
198
|
else
|
174
199
|
newvalue(%r{(0|1)})
|
@@ -197,6 +222,14 @@ module Puppet
|
|
197
222
|
desc "The mount path for the mount."
|
198
223
|
|
199
224
|
isnamevar
|
225
|
+
|
226
|
+
validate do |value|
|
227
|
+
raise Puppet::Error, "name must not contain whitespace: #{value}" if value =~ /\s/
|
228
|
+
end
|
229
|
+
|
230
|
+
munge do |value|
|
231
|
+
value.gsub(/^(.+?)\/*$/, '\1')
|
232
|
+
end
|
200
233
|
end
|
201
234
|
|
202
235
|
newparam(:remounts) do
|
@@ -222,7 +255,6 @@ module Puppet
|
|
222
255
|
|
223
256
|
def value(name)
|
224
257
|
name = name.intern
|
225
|
-
ret = nil
|
226
258
|
if property = @parameters[name]
|
227
259
|
return property.value
|
228
260
|
end
|
data/lib/puppet/type/package.rb
CHANGED
@@ -294,8 +294,8 @@ module Puppet
|
|
294
294
|
end
|
295
295
|
|
296
296
|
newparam(:flavor) do
|
297
|
-
desc "
|
298
|
-
|
297
|
+
desc "OpenBSD supports 'flavors', which are further specifications for
|
298
|
+
which type of package you want."
|
299
299
|
end
|
300
300
|
|
301
301
|
newparam(:install_options, :parent => Puppet::Parameter::PackageOptions, :required_features => :install_options) do
|