puppet 4.5.3-x86-mingw32 → 4.6.1-x86-mingw32
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.
- checksums.yaml +7 -0
- data/Gemfile +10 -1
- data/ext/debian/control +2 -4
- data/ext/project_data.yaml +4 -4
- data/install.rb +6 -2
- data/lib/puppet.rb +3 -1
- data/lib/puppet/agent/locker.rb +1 -1
- data/lib/puppet/application.rb +6 -4
- data/lib/puppet/application/agent.rb +2 -1
- data/lib/puppet/application/cert.rb +35 -2
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/generate.rb +5 -0
- data/lib/puppet/application/lookup.rb +3 -3
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/compilable_resource_type.rb +15 -0
- data/lib/puppet/configurer.rb +67 -10
- data/lib/puppet/configurer/plugin_handler.rb +2 -4
- data/lib/puppet/data_providers/hiera_config.rb +1 -1
- data/lib/puppet/defaults.rb +34 -7
- data/lib/puppet/environments.rb +4 -2
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +1 -1
- data/lib/puppet/face/ca.rb +4 -1
- data/lib/puppet/face/certificate.rb +7 -1
- data/lib/puppet/face/epp.rb +5 -5
- data/lib/puppet/face/generate.rb +64 -0
- data/lib/puppet/face/help.rb +19 -13
- data/lib/puppet/face/man.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +1 -1
- data/lib/puppet/file_system.rb +16 -0
- data/lib/puppet/file_system/file_impl.rb +5 -0
- data/lib/puppet/file_system/memory_impl.rb +4 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/windows.rb +19 -0
- data/lib/puppet/functions.rb +3 -5
- data/lib/puppet/functions/assert_type.rb +1 -1
- data/lib/puppet/functions/defined.rb +7 -5
- data/lib/puppet/functions/dig.rb +2 -18
- data/lib/puppet/functions/hiera.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -37
- data/lib/puppet/functions/new.rb +2 -473
- data/lib/puppet/functions/reverse_each.rb +2 -59
- data/lib/puppet/functions/scanf.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -63
- data/lib/puppet/functions/then.rb +1 -61
- data/lib/puppet/functions/type.rb +1 -40
- data/lib/puppet/functions/unwrap.rb +40 -0
- data/lib/puppet/generate/models/type/property.rb +70 -0
- data/lib/puppet/generate/models/type/type.rb +57 -0
- data/lib/puppet/generate/templates/type/pcore.erb +41 -0
- data/lib/puppet/generate/type.rb +239 -0
- data/lib/puppet/graph/simple_graph.rb +2 -6
- data/lib/puppet/indirector/catalog/static_compiler.rb +5 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/key/ca.rb +2 -2
- data/lib/puppet/indirector/request.rb +25 -4
- data/lib/puppet/indirector/rest.rb +73 -3
- data/lib/puppet/info_service/class_information_service.rb +1 -2
- data/lib/puppet/interface/documentation.rb +1 -1
- data/lib/puppet/loaders.rb +2 -0
- data/lib/puppet/metatype/manager.rb +6 -6
- data/lib/puppet/module.rb +8 -1
- data/lib/puppet/module_tool.rb +2 -2
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/errors/installer.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +23 -32
- data/lib/puppet/network/http/rack/rest.rb +15 -1
- data/lib/puppet/network/rights.rb +1 -11
- data/lib/puppet/node/environment.rb +7 -3
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/parameter.rb +23 -3
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parser.rb +0 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
- data/lib/puppet/parser/ast/resource.rb +5 -0
- data/lib/puppet/parser/ast/resource_instance.rb +5 -1
- data/lib/puppet/parser/ast/resourceparam.rb +5 -0
- data/lib/puppet/parser/compiler.rb +14 -17
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -1
- data/lib/puppet/parser/environment_compiler.rb +10 -0
- data/lib/puppet/parser/functions/create_resources.rb +39 -24
- data/lib/puppet/parser/functions/defined.rb +2 -26
- data/lib/puppet/parser/functions/dig.rb +29 -0
- data/lib/puppet/parser/functions/lest.rb +49 -0
- data/lib/puppet/parser/functions/new.rb +530 -0
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/lib/puppet/parser/functions/scanf.rb +4 -4
- data/lib/puppet/parser/functions/step.rb +84 -0
- data/lib/puppet/parser/functions/then.rb +73 -0
- data/lib/puppet/parser/functions/type.rb +53 -0
- data/lib/puppet/parser/resource.rb +16 -7
- data/lib/puppet/parser/scope.rb +36 -28
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/data_providers/data_provider.rb +1 -1
- data/lib/puppet/pops.rb +13 -0
- data/lib/puppet/pops/adapters.rb +49 -49
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +39 -2
- data/lib/puppet/pops/evaluator/closure.rb +39 -13
- data/lib/puppet/pops/evaluator/collector_transformer.rb +10 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +16 -11
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +19 -45
- data/lib/puppet/pops/functions/function.rb +5 -0
- data/lib/puppet/pops/issues.rb +1 -1
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/base_loader.rb +12 -15
- data/lib/puppet/pops/loader/loader.rb +15 -50
- data/lib/puppet/pops/loader/loader_paths.rb +28 -2
- data/lib/puppet/pops/loader/module_loaders.rb +16 -1
- data/lib/puppet/pops/loader/null_loader.rb +17 -1
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +12 -11
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -3
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +52 -13
- data/lib/puppet/pops/loader/static_loader.rb +55 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +30 -14
- data/lib/puppet/pops/loader/typed_name.rb +50 -0
- data/lib/puppet/pops/loaders.rb +64 -19
- data/lib/puppet/pops/merge_strategy.rb +7 -7
- data/lib/puppet/pops/migration/migration_checker.rb +4 -0
- data/lib/puppet/pops/model/model_label_provider.rb +2 -0
- data/lib/puppet/pops/parser/egrammar.ra +8 -5
- data/lib/puppet/pops/parser/eparser.rb +1550 -1498
- data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
- data/lib/puppet/pops/parser/lexer2.rb +14 -1
- data/lib/puppet/pops/parser/locator.rb +30 -1
- data/lib/puppet/pops/parser/parser_support.rb +0 -3
- data/lib/puppet/pops/parser/slurp_support.rb +3 -3
- data/lib/puppet/pops/patterns.rb +9 -1
- data/lib/puppet/pops/pcore.rb +67 -11
- data/lib/puppet/pops/puppet_stack.rb +43 -0
- data/lib/puppet/pops/resource/param.rb +51 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +301 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +21 -0
- data/lib/puppet/pops/serialization.rb +17 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +149 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +179 -0
- data/lib/puppet/pops/serialization/deserializer.rb +60 -0
- data/lib/puppet/pops/serialization/extension.rb +126 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/lib/puppet/pops/serialization/json.rb +247 -0
- data/lib/puppet/pops/serialization/object.rb +63 -0
- data/lib/puppet/pops/serialization/rgen.rb +151 -0
- data/lib/puppet/pops/serialization/serializer.rb +91 -0
- data/lib/puppet/pops/serialization/time_factory.rb +66 -0
- data/lib/puppet/pops/types/annotatable.rb +36 -0
- data/lib/puppet/pops/types/implementation_registry.rb +3 -8
- data/lib/puppet/pops/types/p_meta_type.rb +83 -0
- data/lib/puppet/pops/types/p_object_type.rb +110 -117
- data/lib/puppet/pops/types/p_runtime_type.rb +13 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +23 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +30 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +69 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +361 -0
- data/lib/puppet/pops/types/puppet_object.rb +0 -5
- data/lib/puppet/pops/types/ruby_generator.rb +9 -2
- data/lib/puppet/pops/types/type_calculator.rb +6 -1
- data/lib/puppet/pops/types/type_factory.rb +14 -12
- data/lib/puppet/pops/types/type_formatter.rb +78 -33
- data/lib/puppet/pops/types/type_mismatch_describer.rb +0 -2
- data/lib/puppet/pops/types/type_parser.rb +27 -2
- data/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/lib/puppet/pops/types/types.rb +366 -13
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/validation/checker4_0.rb +5 -2
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property.rb +64 -5
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/group/aix.rb +4 -4
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +1 -1
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -2
- data/lib/puppet/provider/mount/parsed.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +3 -3
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +5 -0
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/pip.rb +5 -3
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +4 -4
- data/lib/puppet/provider/package/pkgin.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +48 -8
- data/lib/puppet/provider/package/sun.rb +1 -1
- data/lib/puppet/provider/package/tdnf.rb +28 -0
- data/lib/puppet/provider/package/yum.rb +22 -4
- data/lib/puppet/provider/parsedfile.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +2 -2
- data/lib/puppet/provider/service/debian.rb +3 -3
- data/lib/puppet/provider/service/init.rb +5 -3
- data/lib/puppet/provider/service/launchd.rb +16 -2
- data/lib/puppet/provider/service/runit.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +8 -1
- data/lib/puppet/provider/service/systemd.rb +39 -6
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +4 -3
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +3 -0
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/resource.rb +33 -7
- data/lib/puppet/resource/capability_finder.rb +74 -54
- data/lib/puppet/resource/status.rb +11 -2
- data/lib/puppet/settings.rb +17 -6
- data/lib/puppet/settings/environment_conf.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +20 -0
- data/lib/puppet/ssl/certificate_authority.rb +32 -9
- data/lib/puppet/ssl/certificate_authority/interface.rb +164 -24
- data/lib/puppet/ssl/host.rb +3 -3
- data/lib/puppet/ssl/oids.rb +10 -0
- data/lib/puppet/ssl/validator/default_validator.rb +2 -2
- data/lib/puppet/test/test_helper.rb +2 -2
- data/lib/puppet/transaction.rb +12 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +29 -2
- data/lib/puppet/transaction/event_manager.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +84 -0
- data/lib/puppet/transaction/report.rb +49 -2
- data/lib/puppet/transaction/resource_harness.rb +98 -18
- data/lib/puppet/type.rb +63 -21
- data/lib/puppet/type/augeas.rb +3 -3
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/file.rb +39 -2
- data/lib/puppet/type/file/data_sync.rb +13 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/mount.rb +2 -6
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +1 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/scheduled_task.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +3 -3
- data/lib/puppet/type/zone.rb +1 -1
- data/lib/puppet/util.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line.rb +6 -2
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +1 -1
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/logging.rb +1 -1
- data/lib/puppet/util/multi_match.rb +1 -1
- data/lib/puppet/util/plist.rb +15 -5
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/psych_support.rb +1 -1
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
- data/lib/puppet/util/windows/access_control_entry.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +30 -8
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/file.rb +59 -0
- data/lib/puppet/util/windows/process.rb +10 -0
- data/lib/puppet/util/windows/security.rb +1 -1
- data/lib/puppet/util/windows/user.rb +22 -4
- data/lib/puppet/util/yaml.rb +15 -3
- data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
- data/lib/puppet/vendor/rgen_patch.rb +1 -1
- data/lib/puppet/version.rb +2 -2
- data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
- data/spec/integration/agent/logging_spec.rb +15 -14
- data/spec/integration/application/apply_spec.rb +1 -0
- data/spec/integration/directory_environments_spec.rb +16 -0
- data/spec/integration/environments/settings_spec.rb +32 -4
- data/spec/integration/faces/documentation_spec.rb +1 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
- data/spec/integration/node/environment_spec.rb +21 -0
- data/spec/integration/parser/collection_spec.rb +10 -0
- data/spec/integration/parser/compiler_spec.rb +76 -840
- data/spec/integration/parser/functions/require_spec.rb +3 -3
- data/spec/integration/parser/parameter_defaults_spec.rb +6 -2
- data/spec/integration/parser/pcore_resource_spec.rb +208 -0
- data/spec/integration/parser/resource_expressions_spec.rb +4 -2
- data/spec/integration/provider/yumrepo_spec.rb +4 -1
- data/spec/integration/transaction/report_spec.rb +666 -0
- data/spec/integration/type/file_spec.rb +11 -12
- data/spec/integration/util/windows/adsi_spec.rb +99 -0
- data/spec/integration/util/windows/principal_spec.rb +109 -60
- data/spec/integration/util/windows/process_spec.rb +4 -2
- data/spec/integration/util/windows/security_spec.rb +34 -8
- data/spec/integration/util/windows/user_spec.rb +26 -4
- data/spec/lib/puppet_spec/files.rb +2 -2
- data/spec/lib/puppet_spec/network.rb +12 -8
- data/spec/shared_examples/rhel_package_provider.rb +341 -0
- data/spec/spec_helper.rb +8 -2
- data/spec/unit/application/cert_spec.rb +20 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +0 -26
- data/spec/unit/configurer_spec.rb +46 -0
- data/spec/unit/defaults_spec.rb +14 -0
- data/spec/unit/face/generate_spec.rb +230 -0
- data/spec/unit/face/help_spec.rb +53 -0
- data/spec/unit/face/parser_spec.rb +6 -0
- data/spec/unit/face/plugin_spec.rb +0 -4
- data/spec/unit/file_system_spec.rb +85 -0
- data/spec/unit/functions/lookup_spec.rb +4 -4
- data/spec/unit/functions/match_spec.rb +2 -2
- data/spec/unit/functions/regsubst_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +1 -1
- data/spec/unit/functions/unwrap_spec.rb +29 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +8 -8
- data/spec/unit/indirector/facts/facter_spec.rb +1 -9
- data/spec/unit/indirector/rest_spec.rb +95 -9
- data/spec/unit/module_spec.rb +43 -7
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +8 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
- data/spec/unit/network/http/api/indirected_routes_spec.rb +49 -58
- data/spec/unit/network/http/api/master/v3_spec.rb +7 -4
- data/spec/unit/network/rights_spec.rb +1 -1
- data/spec/unit/parameter_spec.rb +11 -0
- data/spec/unit/parser/compiler_spec.rb +19 -33
- data/spec/unit/{appmgmt_spec.rb → parser/environment_compiler_spec.rb} +12 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +76 -4
- data/spec/unit/parser/functions/require_spec.rb +2 -2
- data/spec/unit/parser/resource_spec.rb +21 -11
- data/spec/unit/parser/scope_spec.rb +1 -5
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1 -1
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
- data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +63 -5
- data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +27 -3
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +8 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +9 -0
- data/spec/unit/pops/puppet_stack_spec.rb +79 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +37 -0
- data/spec/unit/pops/serialization/packer_spec.rb +153 -0
- data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +228 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +44 -2
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +42 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +139 -0
- data/spec/unit/pops/types/p_type_set_type_spec.rb +424 -0
- data/spec/unit/pops/types/ruby_generator_spec.rb +497 -181
- data/spec/unit/pops/types/type_calculator_spec.rb +10 -4
- data/spec/unit/pops/types/type_formatter_spec.rb +1 -1
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +2 -2
- data/spec/unit/pops/types/type_parser_spec.rb +1 -1
- data/spec/unit/pops/types/types_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +18 -1
- data/spec/unit/property_spec.rb +48 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +11 -1
- data/spec/unit/provider/package/dnf_spec.rb +1 -99
- data/spec/unit/provider/package/pacman_spec.rb +4 -4
- data/spec/unit/provider/package/pip_spec.rb +14 -0
- data/spec/unit/provider/package/pkg_spec.rb +6 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -3
- data/spec/unit/provider/package/portage_spec.rb +64 -8
- data/spec/unit/provider/package/tdnf_spec.rb +18 -0
- data/spec/unit/provider/package/windows/package_spec.rb +4 -1
- data/spec/unit/provider/package/windows_spec.rb +8 -2
- data/spec/unit/provider/package/yum_spec.rb +6 -377
- data/spec/unit/provider/service/base_spec.rb +6 -0
- data/spec/unit/provider/service/debian_spec.rb +16 -7
- data/spec/unit/provider/service/gentoo_spec.rb +6 -0
- data/spec/unit/provider/service/init_spec.rb +7 -0
- data/spec/unit/provider/service/launchd_spec.rb +35 -4
- data/spec/unit/provider/service/openrc_spec.rb +6 -0
- data/spec/unit/provider/service/smf_spec.rb +31 -6
- data/spec/unit/provider/service/src_spec.rb +6 -0
- data/spec/unit/provider/service/systemd_spec.rb +70 -20
- data/spec/unit/provider/service/upstart_spec.rb +6 -0
- data/spec/unit/provider/user/aix_spec.rb +7 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +30 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +19 -0
- data/spec/unit/resource/capability_finder_spec.rb +51 -3
- data/spec/unit/resource/catalog_spec.rb +5 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +19 -0
- data/spec/unit/settings_spec.rb +13 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +176 -10
- data/spec/unit/ssl/certificate_authority_spec.rb +63 -22
- data/spec/unit/ssl/host_spec.rb +1 -1
- data/spec/unit/ssl/oids_spec.rb +24 -21
- data/spec/unit/transaction/event_spec.rb +3 -1
- data/spec/unit/transaction/persistence_spec.rb +173 -0
- data/spec/unit/transaction/report_spec.rb +64 -1
- data/spec/unit/transaction/resource_harness_spec.rb +91 -0
- data/spec/unit/type/file/content_spec.rb +47 -15
- data/spec/unit/type/file_spec.rb +28 -0
- data/spec/unit/type/mount_spec.rb +5 -12
- data/spec/unit/type/yumrepo_spec.rb +1 -5
- data/spec/unit/type_spec.rb +32 -0
- data/spec/unit/util/command_line_spec.rb +11 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/plist_spec.rb +16 -3
- data/spec/unit/util/storage_spec.rb +4 -1
- data/spec/unit/util/windows/adsi_spec.rb +23 -2
- data/spec/unit/util/windows/file_spec.rb +56 -1
- data/spec/unit/util/windows/sid_spec.rb +31 -7
- data/spec/unit/util/yaml_spec.rb +12 -0
- data/spec/unit/util_spec.rb +87 -20
- metadata +91 -48
- data/ext/puppetlisten/puppetlisten.rb +0 -77
- data/ext/puppetlisten/puppetrun.rb +0 -38
- data/lib/puppet/resource/type_collection_helper.rb +0 -7
- data/spec/unit/parser/functions/defined_spec.rb +0 -120
- data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
data/lib/puppet/type.rb
CHANGED
@@ -75,6 +75,7 @@ module Puppet
|
|
75
75
|
#
|
76
76
|
#
|
77
77
|
class Type
|
78
|
+
extend Puppet::CompilableResourceType
|
78
79
|
include Puppet::Util
|
79
80
|
include Puppet::Util::Errors
|
80
81
|
include Puppet::Util::Logging
|
@@ -90,9 +91,9 @@ class Type
|
|
90
91
|
# @see Comparable
|
91
92
|
#
|
92
93
|
def <=>(other)
|
93
|
-
#
|
94
|
-
|
95
|
-
|
94
|
+
# Order is only maintained against other types, not arbitrary objects.
|
95
|
+
# The natural order is based on the reference name used when comparing
|
96
|
+
return nil unless other.is_a?(Puppet::CompilableResourceType) || other.class.is_a?(Puppet::CompilableResourceType)
|
96
97
|
# against other type instances.
|
97
98
|
self.ref <=> other.ref
|
98
99
|
end
|
@@ -600,7 +601,7 @@ class Type
|
|
600
601
|
validattr?(name)
|
601
602
|
end
|
602
603
|
|
603
|
-
# @return [Boolean] Returns true if the wanted state of the
|
604
|
+
# @return [Boolean] Returns true if the wanted state of the resource is that it should be absent (i.e. to be deleted).
|
604
605
|
def deleting?
|
605
606
|
obj = @parameters[:ensure] and obj.should == :absent
|
606
607
|
end
|
@@ -741,7 +742,7 @@ class Type
|
|
741
742
|
(prop = @parameters[name] and prop.is_a?(Puppet::Property)) ? prop.should : nil
|
742
743
|
end
|
743
744
|
|
744
|
-
# Registers an attribute to this resource type
|
745
|
+
# Registers an attribute to this resource type instance.
|
745
746
|
# Requires either the attribute name or class as its argument.
|
746
747
|
# This is a noop if the named property/parameter is not supported
|
747
748
|
# by this resource. Otherwise, an attribute instance is created
|
@@ -861,7 +862,7 @@ class Type
|
|
861
862
|
self.class.name
|
862
863
|
end
|
863
864
|
|
864
|
-
# @todo Comment says "Return a specific value for an attribute.", as opposed to what "An
|
865
|
+
# @todo Comment says "Return a specific value for an attribute.", as opposed to what "An unspecific value"???
|
865
866
|
# @todo is this the 'is' or the 'should' value?
|
866
867
|
# @todo why is the return restricted to things that respond to :value? (Only non structural basic data types
|
867
868
|
# supported?
|
@@ -894,7 +895,7 @@ class Type
|
|
894
895
|
# See the overview of this class for a longer explanation of the concept _isomorphism_.
|
895
896
|
# Defaults to true.
|
896
897
|
#
|
897
|
-
# @return [
|
898
|
+
# @return [Boolean] true, if this type's name is isomorphic with the object
|
898
899
|
def self.isomorphic?
|
899
900
|
if defined?(@isomorphic)
|
900
901
|
return @isomorphic
|
@@ -1052,7 +1053,7 @@ class Type
|
|
1052
1053
|
|
1053
1054
|
# Retrieves the current value of all contained properties.
|
1054
1055
|
# Parameters and meta-parameters are not included in the result.
|
1055
|
-
# @todo As
|
1056
|
+
# @todo As opposed to all non contained properties? How is this different than any of the other
|
1056
1057
|
# methods that also "gets" properties/parameters/etc. ?
|
1057
1058
|
# @return [Puppet::Resource] array of all property values (mix of types)
|
1058
1059
|
# @raise [fail???] if there is a provider and it is not suitable for the host this is evaluated for.
|
@@ -1152,7 +1153,7 @@ class Type
|
|
1152
1153
|
# Retrieves all known instances.
|
1153
1154
|
# @todo Retrieves them from where? Known to whom?
|
1154
1155
|
# Either requires providers or must be overridden.
|
1155
|
-
# @raise [Puppet::DevError] when there are no providers and the implementation has not
|
1156
|
+
# @raise [Puppet::DevError] when there are no providers and the implementation has not overridden this method.
|
1156
1157
|
def self.instances
|
1157
1158
|
raise Puppet::DevError, "#{self.name} has no providers and has not overridden 'instances'" if provider_hash.empty?
|
1158
1159
|
|
@@ -1223,7 +1224,7 @@ class Type
|
|
1223
1224
|
end
|
1224
1225
|
|
1225
1226
|
|
1226
|
-
# Returns an array of strings representing the containment
|
1227
|
+
# Returns an array of strings representing the containment hierarchy
|
1227
1228
|
# (types/classes) that make up the path to the resource from the root
|
1228
1229
|
# of the catalog. This is mostly used for logging purposes.
|
1229
1230
|
#
|
@@ -1523,7 +1524,7 @@ class Type
|
|
1523
1524
|
end
|
1524
1525
|
|
1525
1526
|
# Are we requiring them, or vice versa? See the method docs
|
1526
|
-
# for
|
1527
|
+
# for further info on this.
|
1527
1528
|
if self.class.direction == :in
|
1528
1529
|
source = related_resource
|
1529
1530
|
target = @resource
|
@@ -1550,7 +1551,7 @@ class Type
|
|
1550
1551
|
end
|
1551
1552
|
end
|
1552
1553
|
|
1553
|
-
# @todo document this, have no clue what this does... it
|
1554
|
+
# @todo document this, have no clue what this does... it returns "RelationshipMetaparam.subclasses"
|
1554
1555
|
#
|
1555
1556
|
def self.relationship_params
|
1556
1557
|
RelationshipMetaparam.subclasses
|
@@ -1558,7 +1559,7 @@ class Type
|
|
1558
1559
|
|
1559
1560
|
|
1560
1561
|
# Note that the order in which the relationships params is defined
|
1561
|
-
# matters. The
|
1562
|
+
# matters. The labeled params (notify and subscribe) must be later,
|
1562
1563
|
# so that if both params are used, those ones win. It's a hackish
|
1563
1564
|
# solution, but it works.
|
1564
1565
|
|
@@ -2059,7 +2060,7 @@ end
|
|
2059
2060
|
end
|
2060
2061
|
|
2061
2062
|
# Provides iteration over added auto-requirements (see {autorequire}).
|
2062
|
-
# @yieldparam type [String] the name of the type to
|
2063
|
+
# @yieldparam type [String] the name of the type to autorequire an instance of
|
2063
2064
|
# @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autorequire}).
|
2064
2065
|
# @yieldreturn [void]
|
2065
2066
|
# @return [void]
|
@@ -2071,7 +2072,7 @@ end
|
|
2071
2072
|
end
|
2072
2073
|
|
2073
2074
|
# Provides iteration over added auto-requirements (see {autobefore}).
|
2074
|
-
# @yieldparam type [String] the name of the type to
|
2075
|
+
# @yieldparam type [String] the name of the type to autorequire an instance of
|
2075
2076
|
# @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autobefore}).
|
2076
2077
|
# @yieldreturn [void]
|
2077
2078
|
# @return [void]
|
@@ -2083,7 +2084,7 @@ end
|
|
2083
2084
|
end
|
2084
2085
|
|
2085
2086
|
# Provides iteration over added auto-requirements (see {autosubscribe}).
|
2086
|
-
# @yieldparam type [String] the name of the type to
|
2087
|
+
# @yieldparam type [String] the name of the type to autorequire an instance of
|
2087
2088
|
# @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autosubscribe}).
|
2088
2089
|
# @yieldreturn [void]
|
2089
2090
|
# @return [void]
|
@@ -2095,7 +2096,7 @@ end
|
|
2095
2096
|
end
|
2096
2097
|
|
2097
2098
|
# Provides iteration over added auto-requirements (see {autonotify}).
|
2098
|
-
# @yieldparam type [String] the name of the type to
|
2099
|
+
# @yieldparam type [String] the name of the type to autorequire an instance of
|
2099
2100
|
# @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autonotify}).
|
2100
2101
|
# @yieldreturn [void]
|
2101
2102
|
# @return [void]
|
@@ -2192,7 +2193,7 @@ end
|
|
2192
2193
|
# @comment - these two comments were floating around here, and turned up as documentation
|
2193
2194
|
# for the attribute "title", much to my surprise and amusement. Clearly these comments
|
2194
2195
|
# are orphaned ... I think they can just be removed as what they say should be covered
|
2195
|
-
# by the now added yardoc. <irony>(Yo! to quote some of the other actual
|
2196
|
+
# by the now added yardoc. <irony>(Yo! to quote some of the other actual awesome specific comments applicable
|
2196
2197
|
# to objects called from elsewhere, or not. ;-)</irony>
|
2197
2198
|
#
|
2198
2199
|
# @comment Types (which map to resources in the languages) are entirely composed of
|
@@ -2271,7 +2272,7 @@ end
|
|
2271
2272
|
# Returns the name of this type (if specified) or the parent type #to_s.
|
2272
2273
|
# The returned name is on the form "Puppet::Type::<name>", where the first letter of name is
|
2273
2274
|
# capitalized.
|
2274
|
-
# @return [String] the fully qualified name Puppet::Type::<name> where the first letter of name is
|
2275
|
+
# @return [String] the fully qualified name Puppet::Type::<name> where the first letter of name is capitalized
|
2275
2276
|
#
|
2276
2277
|
def self.to_s
|
2277
2278
|
if defined?(@name)
|
@@ -2393,6 +2394,47 @@ end
|
|
2393
2394
|
adderrorcontext(error, detail)
|
2394
2395
|
raise error
|
2395
2396
|
end
|
2397
|
+
|
2398
|
+
set_sensitive_parameters(resource.sensitive_parameters)
|
2399
|
+
end
|
2400
|
+
|
2401
|
+
protected
|
2402
|
+
|
2403
|
+
# Mark parameters associated with this type as sensitive, based on the associated resource.
|
2404
|
+
#
|
2405
|
+
# Currently, only instances of `Puppet::Property` can be easily marked for sensitive data handling
|
2406
|
+
# and information redaction is limited to redacting events generated while synchronizing
|
2407
|
+
# properties. While support for redaction will be broadened in the future we can't automatically
|
2408
|
+
# deduce how to redact arbitrary parameters, so if a parameter is marked for redaction the best
|
2409
|
+
# we can do is warn that we can't handle treating that parameter as sensitive and move on.
|
2410
|
+
#
|
2411
|
+
# In some unusual cases a given parameter will be marked as sensitive but that sensitive context
|
2412
|
+
# needs to be transferred to another parameter. In this case resource types may need to override
|
2413
|
+
# this method in order to copy the sensitive context from one parameter to another (and in the
|
2414
|
+
# process force the early generation of a parameter that might otherwise be lazily generated.)
|
2415
|
+
# See `Puppet::Type.type(:file)#set_sensitive_parameters` for an example of this.
|
2416
|
+
#
|
2417
|
+
# @note This method visibility is protected since it should only be called by #initialize, but is
|
2418
|
+
# marked as public as subclasses may need to override this method.
|
2419
|
+
#
|
2420
|
+
# @api public
|
2421
|
+
#
|
2422
|
+
# @param sensitive_parameters [Array<Symbol>] A list of parameters to mark as sensitive.
|
2423
|
+
#
|
2424
|
+
# @return [void]
|
2425
|
+
def set_sensitive_parameters(sensitive_parameters)
|
2426
|
+
sensitive_parameters.each do |name|
|
2427
|
+
p = parameter(name)
|
2428
|
+
if p.is_a?(Puppet::Property)
|
2429
|
+
p.sensitive = true
|
2430
|
+
elsif p.is_a?(Puppet::Parameter)
|
2431
|
+
warning("Unable to mark '#{name}' as sensitive: #{name} is a parameter and not a property, and cannot be automatically redacted.")
|
2432
|
+
elsif self.class.attrclass(name)
|
2433
|
+
warning("Unable to mark '#{name}' as sensitive: the property itself was not assigned a value.")
|
2434
|
+
else
|
2435
|
+
err("Unable to mark '#{name}' as sensitive: the property itself is not defined on #{type}.")
|
2436
|
+
end
|
2437
|
+
end
|
2396
2438
|
end
|
2397
2439
|
|
2398
2440
|
private
|
@@ -2543,14 +2585,14 @@ end
|
|
2543
2585
|
end
|
2544
2586
|
end
|
2545
2587
|
|
2546
|
-
# Returns the title of this object, or its name if title was not
|
2588
|
+
# Returns the title of this object, or its name if title was not explicitly set.
|
2547
2589
|
# If the title is not already set, it will be computed by looking up the {#name_var} and using
|
2548
2590
|
# that value as the title.
|
2549
2591
|
# @todo it is somewhat confusing that if the name_var is a valid parameter, it is assumed to
|
2550
2592
|
# be the name_var called :name, but if it is a property, it uses the name_var.
|
2551
2593
|
# It is further confusing as Type in some respects supports multiple namevars.
|
2552
2594
|
#
|
2553
|
-
# @return [String] Returns the title of this object, or its name if title was not
|
2595
|
+
# @return [String] Returns the title of this object, or its name if title was not explicitly set.
|
2554
2596
|
# @raise [??? devfail] if title is not set, and name_var can not be found.
|
2555
2597
|
def title
|
2556
2598
|
unless @title
|
data/lib/puppet/type/augeas.rb
CHANGED
@@ -106,7 +106,7 @@ Puppet::Type.newtype(:augeas) do
|
|
106
106
|
desc "The changes which should be applied to the filesystem. This
|
107
107
|
can be a command or an array of commands. The following commands are supported:
|
108
108
|
|
109
|
-
* `set <PATH> <VALUE>` --- Sets the value `VALUE` at
|
109
|
+
* `set <PATH> <VALUE>` --- Sets the value `VALUE` at location `PATH`
|
110
110
|
* `setm <PATH> <SUB> <VALUE>` --- Sets multiple nodes (matching `SUB` relative to `PATH`) to `VALUE`
|
111
111
|
* `rm <PATH>` --- Removes the node at location `PATH`
|
112
112
|
* `remove <PATH>` --- Synonym for `rm`
|
@@ -137,7 +137,7 @@ Puppet::Type.newtype(:augeas) do
|
|
137
137
|
|
138
138
|
newparam(:force) do
|
139
139
|
desc "Optional command to force the augeas type to execute even if it thinks changes
|
140
|
-
will not be made. This does not
|
140
|
+
will not be made. This does not override the `onlyif` parameter."
|
141
141
|
|
142
142
|
defaultto false
|
143
143
|
end
|
@@ -192,7 +192,7 @@ Puppet::Type.newtype(:augeas) do
|
|
192
192
|
end
|
193
193
|
|
194
194
|
# if the onlyif resource is provided, then the value is parsed.
|
195
|
-
# a return value of 0 will stop
|
195
|
+
# a return value of 0 will stop execution because it matches the
|
196
196
|
# default value.
|
197
197
|
def retrieve
|
198
198
|
if @resource.provider.need_to_run?()
|
data/lib/puppet/type/cron.rb
CHANGED
@@ -446,7 +446,7 @@ Puppet::Type.newtype(:cron) do
|
|
446
446
|
# @api public
|
447
447
|
#
|
448
448
|
# @note This overrides the Puppet::Type method in order to handle
|
449
|
-
# an edge case that has so far been observed during
|
449
|
+
# an edge case that has so far been observed during testing only.
|
450
450
|
# Without forcing the should-value for the user property to be
|
451
451
|
# identical to the original cron file, purging from a fixture
|
452
452
|
# will not work, because the user property defaults to the user
|
data/lib/puppet/type/file.rb
CHANGED
@@ -37,7 +37,9 @@ Puppet::Type.newtype(:file) do
|
|
37
37
|
"The provider can manage symbolic links."
|
38
38
|
|
39
39
|
def self.title_patterns
|
40
|
-
|
40
|
+
# strip trailing slashes from path but allow the root directory, including
|
41
|
+
# for example "/" or "C:/"
|
42
|
+
[ [ %r{^(/|.+:/|.*[^/])/*\Z}m, [ [ :path ] ] ] ]
|
41
43
|
end
|
42
44
|
|
43
45
|
newparam(:path) do
|
@@ -885,6 +887,41 @@ Puppet::Type.newtype(:file) do
|
|
885
887
|
|
886
888
|
private
|
887
889
|
|
890
|
+
# Carry the context of sensitive parameters to the the properties that will actually handle that
|
891
|
+
# sensitive data.
|
892
|
+
#
|
893
|
+
# The file type can accept file content from a number of origins and depending on the current
|
894
|
+
# state of the system different properties will be responsible for synchronizing the file
|
895
|
+
# content. This method handles the necessary mapping of originating parameters to the
|
896
|
+
# responsible parameters.
|
897
|
+
def set_sensitive_parameters(sensitive_parameters)
|
898
|
+
# If we have content that's marked as sensitive but the file doesn't exist then the ensure
|
899
|
+
# property will be responsible for syncing content, so we have to mark ensure as sensitive as well.
|
900
|
+
if sensitive_parameters.include?(:content)
|
901
|
+
# The `ensure` parameter is not guaranteed to be defined either and will be conditionally set when
|
902
|
+
# the `content` property is set, so we need to force the creation of the `ensure` property to
|
903
|
+
# set the sensitive context.
|
904
|
+
newattr(:ensure).sensitive = true
|
905
|
+
end
|
906
|
+
|
907
|
+
# The source parameter isn't actually a property but works by injecting information into the
|
908
|
+
# content property. In order to preserve the intended sensitive context we need to mark content
|
909
|
+
# as sensitive as well.
|
910
|
+
if sensitive_parameters.include?(:source)
|
911
|
+
sensitive_parameters.delete(:source)
|
912
|
+
parameter(:source).sensitive = true
|
913
|
+
# The `source` parameter will generate the `content` property when the resource state is retrieved
|
914
|
+
# but that's long after we've set the sensitive context. Force the early creation of the `content`
|
915
|
+
# attribute so we can mark it as sensitive.
|
916
|
+
newattr(:content).sensitive = true
|
917
|
+
# As noted above, making the `content` property sensitive requires making the `ensure` property
|
918
|
+
# sensitive as well.
|
919
|
+
newattr(:ensure).sensitive = true
|
920
|
+
end
|
921
|
+
|
922
|
+
super(sensitive_parameters)
|
923
|
+
end
|
924
|
+
|
888
925
|
# @return [String] The type of the current file, cast to a string.
|
889
926
|
def read_current_type
|
890
927
|
stat_info = stat
|
@@ -968,7 +1005,7 @@ Puppet::Type.newtype(:file) do
|
|
968
1005
|
properties.each do |thing|
|
969
1006
|
next unless [:mode, :owner, :group, :seluser, :selrole, :seltype, :selrange].include?(thing.name)
|
970
1007
|
|
971
|
-
# Make sure we get a new stat
|
1008
|
+
# Make sure we get a new stat object
|
972
1009
|
@stat = :needs_stat
|
973
1010
|
currentvalue = thing.retrieve
|
974
1011
|
thing.sync unless thing.safe_insync?(currentvalue)
|
@@ -34,14 +34,22 @@ module Puppet
|
|
34
34
|
|
35
35
|
return true if ! resource.replace?
|
36
36
|
|
37
|
-
|
37
|
+
is_insync = yield(is)
|
38
38
|
|
39
|
-
if
|
40
|
-
|
41
|
-
send resource[:loglevel], "
|
39
|
+
if show_diff?(!is_insync)
|
40
|
+
if param.sensitive
|
41
|
+
send resource[:loglevel], "[diff redacted]"
|
42
|
+
else
|
43
|
+
write_temporarily(param) do |path|
|
44
|
+
send resource[:loglevel], "\n" + diff(resource[:path], path)
|
45
|
+
end
|
42
46
|
end
|
43
47
|
end
|
44
|
-
|
48
|
+
is_insync
|
49
|
+
end
|
50
|
+
|
51
|
+
def show_diff?(has_changes)
|
52
|
+
has_changes && Puppet[:show_diff] && resource.show_diff?
|
45
53
|
end
|
46
54
|
|
47
55
|
def date_matches?(checksum_type, current, desired)
|
data/lib/puppet/type/host.rb
CHANGED
@@ -17,7 +17,7 @@ module Puppet
|
|
17
17
|
|
18
18
|
def valid_v6?(addr)
|
19
19
|
# http://forums.dartware.com/viewtopic.php?t=452
|
20
|
-
# ...and, yes, it is this hard.
|
20
|
+
# ...and, yes, it is this hard. Doing it programmatically is harder.
|
21
21
|
return true if addr =~ /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/
|
22
22
|
|
23
23
|
return false
|
data/lib/puppet/type/mount.rb
CHANGED
@@ -14,8 +14,7 @@ module Puppet
|
|
14
14
|
|
15
15
|
**Autorequires:** If Puppet is managing any parents of a mount resource ---
|
16
16
|
that is, other mount points higher up in the filesystem --- the child
|
17
|
-
mount will autorequire them.
|
18
|
-
mount point, the mount resource will autorequire it.
|
17
|
+
mount will autorequire them.
|
19
18
|
|
20
19
|
**Autobefores:** If Puppet is managing any child file paths of a mount
|
21
20
|
point, the mount resource will autobefore them."
|
@@ -297,14 +296,11 @@ module Puppet
|
|
297
296
|
dependencies[0..-2]
|
298
297
|
end
|
299
298
|
|
300
|
-
# Autorequire the mount point's file resource
|
301
|
-
autorequire(:file) { Pathname.new(self[:name]) }
|
302
|
-
|
303
299
|
# Autobefore the mount point's child file paths
|
304
300
|
autobefore(:file) do
|
305
301
|
dependencies = []
|
306
302
|
file_resources = catalog.resources.select { |resource| resource.type == :file }
|
307
|
-
children_file_resources = file_resources.select { |resource| File.expand_path(resource[:path]) =~ %r(
|
303
|
+
children_file_resources = file_resources.select { |resource| File.expand_path(resource[:path]) =~ %r(^#{self[:name]}/.) }
|
308
304
|
children_file_resources.each do |child|
|
309
305
|
dependencies.push Pathname.new(child[:path])
|
310
306
|
end
|
data/lib/puppet/type/notify.rb
CHANGED
@@ -6,7 +6,7 @@ module Puppet
|
|
6
6
|
Type.newtype(:notify) do
|
7
7
|
@doc = "Sends an arbitrary message to the agent run-time log."
|
8
8
|
|
9
|
-
newproperty(:message) do
|
9
|
+
newproperty(:message, :idempotent => false) do
|
10
10
|
desc "The message to be sent to the log."
|
11
11
|
def sync
|
12
12
|
case @resource["withpath"]
|
data/lib/puppet/type/package.rb
CHANGED
@@ -276,7 +276,7 @@ module Puppet
|
|
276
276
|
# provider. So far, the logic that determines uniqueness appears to just
|
277
277
|
# "Do The Right Thing™" when the provider is explicitly set by the user.
|
278
278
|
#
|
279
|
-
# The following resources will be seen as
|
279
|
+
# The following resources will be seen as unique by puppet:
|
280
280
|
#
|
281
281
|
# # Uniqueness Key: ['mysql', nil]
|
282
282
|
# package{'mysql': }
|
@@ -4,7 +4,7 @@ require 'puppet/parameter/boolean'
|
|
4
4
|
Puppet::Type.newtype(:resources) do
|
5
5
|
@doc = "This is a metatype that can manage other resource types. Any
|
6
6
|
metaparams specified here will be passed on to any generated resources,
|
7
|
-
so you can purge
|
7
|
+
so you can purge unmanaged resources but set `noop` to true so the
|
8
8
|
purging is only logged and does not actually happen."
|
9
9
|
|
10
10
|
|
@@ -118,7 +118,7 @@ Puppet::Type.newtype(:scheduled_task) do
|
|
118
118
|
* `months` --- Which months the task should run, as an array. Defaults to
|
119
119
|
all months. Each month must be an integer between 1 and 12.
|
120
120
|
* `on` **(Required)** --- Which days of the month the task should run,
|
121
|
-
as an array. Each day must
|
121
|
+
as an array. Each day must be either an integer between 1 and 31,
|
122
122
|
or the special value `last,` which is always the last day of the month.
|
123
123
|
* For `monthly` (by weekday) triggers:
|
124
124
|
* `months` --- Which months the task should run, as an array. Defaults to
|
@@ -6,14 +6,14 @@ module Puppet
|
|
6
6
|
resource type requires you to split that line into several attributes. Thus, a
|
7
7
|
key that appears in your `~/.ssh/id_rsa.pub` file like this...
|
8
8
|
|
9
|
-
ssh-rsa
|
9
|
+
ssh-rsa AAAAB3Nza[...]qXfdaQ== nick@magpie.puppetlabs.lan
|
10
10
|
|
11
11
|
...would translate to the following resource:
|
12
12
|
|
13
13
|
ssh_authorized_key { 'nick@magpie.puppetlabs.lan':
|
14
14
|
user => 'nick',
|
15
15
|
type => 'ssh-rsa',
|
16
|
-
key => '
|
16
|
+
key => 'AAAAB3Nza[...]qXfdaQ== nick@magpie.puppetlabs.lan',
|
17
17
|
}
|
18
18
|
|
19
19
|
To ensure that only the currently approved keys are present, you can purge
|
data/lib/puppet/type/tidy.rb
CHANGED
@@ -73,7 +73,7 @@ Puppet::Type.newtype(:tidy) do
|
|
73
73
|
Finally, note that you must now specify a non-zero/non-false value
|
74
74
|
for recurse if matches is used, as matches only apply to files found
|
75
75
|
by recursion (there's no reason to use static patterns match against
|
76
|
-
a statically determined path).
|
76
|
+
a statically determined path). Requiring explicit recursion clears
|
77
77
|
up a common source of confusion.
|
78
78
|
EOT
|
79
79
|
|