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
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 80b6299ad20ad298803d5e6bd203bf3a88ac8a71
|
4
|
+
data.tar.gz: e112b8cad91d8759539494a46e891db5312cec6d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3fe1a58626e6882b774ade4c0d4e0cd5338ff519c055a6c89c60c2d42c590cd561d63c646a7e4c754f5177b0b53bb828d831b64ad3197f0262a583f244245245
|
7
|
+
data.tar.gz: 51057690e1d4c44dd5e625ee1d1b9e1deb4327bdcf3d004fcdcf943af8bfdd87df151e2d5a53a76fcb12e164a0c188365caf2d39c8d26fcde059ec7cc8d1e0ec
|
data/Gemfile
CHANGED
@@ -27,6 +27,9 @@ gem "puppet", :path => File.dirname(__FILE__), :require => false
|
|
27
27
|
gem "facter", *location_for(ENV['FACTER_LOCATION'] || ['> 2.0', '< 4'])
|
28
28
|
gem "hiera", *location_for(ENV['HIERA_LOCATION'] || ['>= 2.0', '< 4'])
|
29
29
|
gem "rake", "10.1.1", :require => false
|
30
|
+
# Hiera has an unbound dependency on json_pure
|
31
|
+
# json_pure 2.0.2+ officially requires Ruby >= 2.0, but should have specified that in 2.0
|
32
|
+
gem 'json_pure', '~> 1.8', :require => false
|
30
33
|
|
31
34
|
group(:development, :test) do
|
32
35
|
gem "rspec", "~> 3.1", :require => false
|
@@ -77,10 +80,16 @@ data['gem_platform_dependencies'].each_pair do |gem_platform, info|
|
|
77
80
|
next if gem_platform == 'x64-mingw32' && !x64_platform
|
78
81
|
if bundle_deps = info['gem_runtime_dependencies']
|
79
82
|
bundle_platform = bundle_platforms[gem_platform] or raise "Missing bundle_platform"
|
80
|
-
|
83
|
+
if bundle_platform == "all"
|
81
84
|
bundle_deps.each_pair do |name, version|
|
82
85
|
gem(name, version, :require => false)
|
83
86
|
end
|
87
|
+
else
|
88
|
+
platform(bundle_platform.intern) do
|
89
|
+
bundle_deps.each_pair do |name, version|
|
90
|
+
gem(name, version, :require => false)
|
91
|
+
end
|
92
|
+
end
|
84
93
|
end
|
85
94
|
end
|
86
95
|
end
|
data/ext/debian/control
CHANGED
@@ -123,17 +123,15 @@ Description: Centralised configuration management - master setup to run under mo
|
|
123
123
|
|
124
124
|
Package: vim-puppet
|
125
125
|
Architecture: all
|
126
|
-
Depends: ${misc:Depends}
|
126
|
+
Depends: ${misc:Depends}, puppet (= ${source:Version})
|
127
127
|
Recommends: vim-addon-manager
|
128
|
-
Conflicts: puppet (<< ${source:Version})
|
129
128
|
Description: syntax highlighting for puppet manifests in vim
|
130
129
|
The vim-puppet package provides filetype detection and syntax highlighting for
|
131
130
|
puppet manifests (files ending with ".pp").
|
132
131
|
|
133
132
|
Package: puppet-el
|
134
133
|
Architecture: all
|
135
|
-
Depends: ${misc:Depends}, emacsen-common
|
136
|
-
Conflicts: puppet (<< ${source:Version})
|
134
|
+
Depends: ${misc:Depends}, emacsen-common, puppet (= ${source:Version})
|
137
135
|
Description: syntax highlighting for puppet manifests in emacs
|
138
136
|
The puppet-el package provides syntax highlighting for puppet manifests
|
139
137
|
|
data/ext/project_data.yaml
CHANGED
@@ -19,7 +19,7 @@ gem_required_rubygems_version: '> 1.3.1'
|
|
19
19
|
gem_runtime_dependencies:
|
20
20
|
facter: ['> 2.0', '< 4']
|
21
21
|
hiera: ['>= 2.0', '< 4']
|
22
|
-
json_pure:
|
22
|
+
json_pure: '~> 1.8'
|
23
23
|
gem_rdoc_options:
|
24
24
|
- --title
|
25
25
|
- "Puppet - Configuration Management"
|
@@ -40,7 +40,7 @@ gem_platform_dependencies:
|
|
40
40
|
win32-process: '= 0.7.5'
|
41
41
|
# Use of win32-security is deprecated
|
42
42
|
win32-security: '= 0.2.5'
|
43
|
-
win32-service: '= 0.8.
|
43
|
+
win32-service: '= 0.8.8'
|
44
44
|
minitar: '~> 0.5.4'
|
45
45
|
x64-mingw32:
|
46
46
|
gem_runtime_dependencies:
|
@@ -51,10 +51,10 @@ gem_platform_dependencies:
|
|
51
51
|
win32-process: '= 0.7.5'
|
52
52
|
# Use of win32-security is deprecated
|
53
53
|
win32-security: '= 0.2.5'
|
54
|
-
win32-service: '= 0.8.
|
54
|
+
win32-service: '= 0.8.8'
|
55
55
|
minitar: '~> 0.5.4'
|
56
56
|
bundle_platforms:
|
57
|
-
universal-darwin:
|
57
|
+
universal-darwin: all
|
58
58
|
x86-mingw32: mingw
|
59
59
|
x64-mingw32: x64_mingw
|
60
60
|
pre_tasks:
|
data/install.rb
CHANGED
@@ -141,6 +141,7 @@ end
|
|
141
141
|
def prepare_installation
|
142
142
|
InstallOptions.configs = true
|
143
143
|
InstallOptions.check_prereqs = true
|
144
|
+
InstallOptions.batch_files = true
|
144
145
|
|
145
146
|
# Only try to do docs if we're sure they have rdoc
|
146
147
|
if $haverdoc
|
@@ -201,6 +202,9 @@ def prepare_installation
|
|
201
202
|
opts.on('--[no-]check-prereqs', 'Prevents validation of prerequisite libraries', 'Default on') do |prereq|
|
202
203
|
InstallOptions.check_prereqs = prereq
|
203
204
|
end
|
205
|
+
opts.on('--no-batch-files', 'Prevents installation of batch files for windows', 'Default off') do |batch_files|
|
206
|
+
InstallOptions.batch_files = false
|
207
|
+
end
|
204
208
|
opts.on('--quick', 'Performs a quick installation. Only the', 'installation is done.') do |quick|
|
205
209
|
InstallOptions.rdoc = false
|
206
210
|
InstallOptions.ri = false
|
@@ -413,7 +417,7 @@ def install_binfile(from, op_file, target)
|
|
413
417
|
end
|
414
418
|
end
|
415
419
|
|
416
|
-
if $operatingsystem == "windows"
|
420
|
+
if $operatingsystem == "windows" && InstallOptions.batch_files
|
417
421
|
installed_wrapper = false
|
418
422
|
|
419
423
|
unless File.extname(from).match(/\.(cmd|bat)/)
|
@@ -471,7 +475,7 @@ FileUtils.cd File.dirname(__FILE__) do
|
|
471
475
|
#build_ri(ri) if InstallOptions.ri
|
472
476
|
do_configs(configs, InstallOptions.config_dir) if InstallOptions.configs
|
473
477
|
do_bins(bins, InstallOptions.bin_dir)
|
474
|
-
do_bins(windows_bins, InstallOptions.bin_dir, 'ext/windows/') if $operatingsystem == "windows"
|
478
|
+
do_bins(windows_bins, InstallOptions.bin_dir, 'ext/windows/') if $operatingsystem == "windows" && InstallOptions.batch_files
|
475
479
|
do_libs(libs)
|
476
480
|
do_man(man) unless $operatingsystem == "windows"
|
477
481
|
end
|
data/lib/puppet.rb
CHANGED
@@ -197,7 +197,8 @@ module Puppet
|
|
197
197
|
:http_pool => proc {
|
198
198
|
require 'puppet/network/http'
|
199
199
|
Puppet::Network::HTTP::NoCachePool.new
|
200
|
-
}
|
200
|
+
},
|
201
|
+
:ssl_host => proc { Puppet::SSL::Host.localhost },
|
201
202
|
}
|
202
203
|
end
|
203
204
|
|
@@ -273,6 +274,7 @@ end
|
|
273
274
|
# effort, but I think we should strive for it and revisit this at some point. --cprice 2012-03-16
|
274
275
|
|
275
276
|
require 'puppet/indirector'
|
277
|
+
require 'puppet/compilable_resource_type'
|
276
278
|
require 'puppet/type'
|
277
279
|
require 'puppet/resource'
|
278
280
|
require 'puppet/parser'
|
data/lib/puppet/agent/locker.rb
CHANGED
data/lib/puppet/application.rb
CHANGED
@@ -75,7 +75,7 @@ module Puppet
|
|
75
75
|
# Refer to +OptionParser+ documentation for the exact format.
|
76
76
|
# * If the option method is given a block, this one will be called whenever
|
77
77
|
# the option is encountered in the command-line argument.
|
78
|
-
# * If the option method has no block, a default
|
78
|
+
# * If the option method has no block, a default functionality will be used, that
|
79
79
|
# stores the argument (or true/false if the option doesn't require an argument) in
|
80
80
|
# the global (to the application) options array.
|
81
81
|
# * If a given option was not defined by a the +option+ method, but it exists as a Puppet settings:
|
@@ -83,7 +83,7 @@ module Puppet
|
|
83
83
|
# * if +unknown+ wasn't used, then the option/argument is handed to Puppet.settings.handlearg for
|
84
84
|
# a default behavior
|
85
85
|
#
|
86
|
-
# --help is managed directly by the Puppet::Application class, but can be
|
86
|
+
# --help is managed directly by the Puppet::Application class, but can be overridden.
|
87
87
|
#
|
88
88
|
# === Setup
|
89
89
|
# Applications can use the setup block to perform any initialization.
|
@@ -357,8 +357,10 @@ class Application
|
|
357
357
|
end
|
358
358
|
|
359
359
|
def setup_logs
|
360
|
-
|
361
|
-
|
360
|
+
unless options[:setdest]
|
361
|
+
if options[:debug] || options[:verbose]
|
362
|
+
Puppet::Util::Log.newdestination(:console)
|
363
|
+
end
|
362
364
|
end
|
363
365
|
|
364
366
|
set_log_level
|
@@ -264,7 +264,7 @@ generated by running puppet agent with '--genconfig'.
|
|
264
264
|
* --test:
|
265
265
|
Enable the most common options used for testing. These are 'onetime',
|
266
266
|
'verbose', 'no-daemonize', 'no-usecacheonfailure', 'detailed-exitcodes',
|
267
|
-
'no-splay', and '
|
267
|
+
'no-splay', 'show_diff', and 'no-use_cached_catalog'.
|
268
268
|
|
269
269
|
* --verbose:
|
270
270
|
Turn on verbose reporting.
|
@@ -377,6 +377,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
377
377
|
Puppet.settings.handlearg("--no-splay")
|
378
378
|
Puppet.settings.handlearg("--show_diff")
|
379
379
|
Puppet.settings.handlearg("--no-daemonize")
|
380
|
+
Puppet.settings.handlearg("--no-use_cached_catalog")
|
380
381
|
options[:verbose] = true
|
381
382
|
Puppet[:onetime] = true
|
382
383
|
options[:detailed_exitcodes] = true
|
@@ -74,11 +74,31 @@ class Puppet::Application::Cert < Puppet::Application
|
|
74
74
|
options[:allow_dns_alt_names] = value
|
75
75
|
end
|
76
76
|
|
77
|
+
option("--[no-]allow-authorization-extensions") do |value|
|
78
|
+
options[:allow_authorization_extensions] = value
|
79
|
+
end
|
80
|
+
|
77
81
|
option("--verbose", "-v") do |arg|
|
78
82
|
options[:verbose] = true
|
79
83
|
set_log_level
|
80
84
|
end
|
81
85
|
|
86
|
+
option("--human-readable", "-H") do |arg|
|
87
|
+
options[:format] = :human
|
88
|
+
end
|
89
|
+
|
90
|
+
option("--machine-readable", "-m") do |arg|
|
91
|
+
options[:format] = :machine
|
92
|
+
end
|
93
|
+
|
94
|
+
option("--interactive", "-i") do |arg|
|
95
|
+
options[:interactive] = true
|
96
|
+
end
|
97
|
+
|
98
|
+
option("--assume-yes", "-y") do |arg|
|
99
|
+
options[:yes] = true
|
100
|
+
end
|
101
|
+
|
82
102
|
def help
|
83
103
|
<<-'HELP'
|
84
104
|
|
@@ -132,7 +152,10 @@ The most important actions for day-to-day use are 'list' and 'sign'.
|
|
132
152
|
List outstanding certificate requests. If '--all' is specified, signed
|
133
153
|
certificates are also listed, prefixed by '+', and revoked or invalid
|
134
154
|
certificates are prefixed by '-' (the verification outcome is printed
|
135
|
-
in parenthesis).
|
155
|
+
in parenthesis). If '--human-readable' or '-H' is specified,
|
156
|
+
certificates are formatted in a way to improve human scan-ability. If
|
157
|
+
'--machine-readable' or '-m' is specified, output is formatted concisely
|
158
|
+
for consumption by a script.
|
136
159
|
|
137
160
|
* print:
|
138
161
|
Print the full-text version of a host's certificate.
|
@@ -145,7 +168,10 @@ The most important actions for day-to-day use are 'list' and 'sign'.
|
|
145
168
|
needs to be restarted after revoking certificates.
|
146
169
|
|
147
170
|
* sign:
|
148
|
-
Sign an outstanding certificate request.
|
171
|
+
Sign an outstanding certificate request. If '--interactive' or '-i' is
|
172
|
+
supplied the user will be prompted to confirm that they are signing the
|
173
|
+
correct certificate (recommended). If '--assume-yes' or '-y' is supplied
|
174
|
+
the interactive prompt will assume the answer of 'yes'.
|
149
175
|
|
150
176
|
* verify:
|
151
177
|
Verify the named certificate against the local CA certificate.
|
@@ -187,6 +213,11 @@ configuration options can also be generated by running puppet cert with
|
|
187
213
|
command line. The output of 'puppet cert list' shows any requested alt names
|
188
214
|
for pending certificate requests.
|
189
215
|
|
216
|
+
* --allow-authorization-extensions:
|
217
|
+
Enable the signing of a request with authorization extensions. Such requests
|
218
|
+
are sensitive because they can be used to write access rules in Puppet Server.
|
219
|
+
Currently, this is the only means by which such requests can be signed.
|
220
|
+
|
190
221
|
* --digest:
|
191
222
|
Set the digest for fingerprinting (defaults to the digest used when
|
192
223
|
signing the cert). Valid values depends on your openssl and openssl ruby
|
@@ -246,6 +277,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
246
277
|
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
247
278
|
|
248
279
|
Puppet::SSL::Oids.register_puppet_oids
|
280
|
+
Puppet::SSL::Oids.load_custom_oid_file(Puppet[:trusted_oid_mapping_file])
|
249
281
|
|
250
282
|
Puppet::Util::Log.newdestination :console
|
251
283
|
|
@@ -283,6 +315,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
283
315
|
exit
|
284
316
|
end
|
285
317
|
end
|
318
|
+
|
286
319
|
result
|
287
320
|
end
|
288
321
|
|
@@ -118,7 +118,7 @@ parameter, so you can specify '--server <servername>' as an argument.
|
|
118
118
|
code of '1' means at least one device had a compile failure, an exit code of
|
119
119
|
'2' means at least one device had resource changes, and an exit code of '4'
|
120
120
|
means at least one device had resource failures. Exit codes of '3', '5', '6',
|
121
|
-
or '7' means that a bitwise combination of the
|
121
|
+
or '7' means that a bitwise combination of the preceding exit codes happened.
|
122
122
|
|
123
123
|
* --help:
|
124
124
|
Print this help message
|
@@ -144,7 +144,7 @@ http://links.puppetlabs.com/lookup-docs
|
|
144
144
|
|
145
145
|
OPTIONS
|
146
146
|
-------
|
147
|
-
These options and their effects are
|
147
|
+
These options and their effects are described in more detail in
|
148
148
|
the puppet lookup function linked to above.
|
149
149
|
|
150
150
|
* --help:
|
@@ -174,7 +174,7 @@ the puppet lookup function linked to above.
|
|
174
174
|
|
175
175
|
* --explain
|
176
176
|
Print an explanation for the details of how the lookup performed rather
|
177
|
-
than the value returned for the key. The
|
177
|
+
than the value returned for the key. The explanation will describe how
|
178
178
|
the result was obtained or why lookup failed to obtain the result.
|
179
179
|
|
180
180
|
* --explain-options
|
@@ -294,7 +294,7 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
294
294
|
generate_scope do |scope|
|
295
295
|
lookup_invocation = Puppet::Pops::Lookup::Invocation.new(scope, {}, {}, explain ? Puppet::Pops::Lookup::Explainer.new(explain_options, only_explain_options) : nil)
|
296
296
|
begin
|
297
|
-
type = options.include?(:type) ? Puppet::Pops::Types::TypeParser.
|
297
|
+
type = options.include?(:type) ? Puppet::Pops::Types::TypeParser.singleton.parse(options[:type], scope) : nil
|
298
298
|
result = Puppet::Pops::Lookup.lookup(keys, type, options[:default_value], use_default_value, merge_options, lookup_invocation)
|
299
299
|
puts renderer.render(result) unless explain
|
300
300
|
rescue Puppet::DataBinding::LookupError
|
@@ -36,7 +36,7 @@ module Puppet
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# Reads the routes YAML settings from the file specified by Puppet[:route_file]
|
39
|
-
# and resets indirector
|
39
|
+
# and resets indirector termini for the current application class if listed.
|
40
40
|
#
|
41
41
|
# For instance, PE uses this to set the master facts terminus
|
42
42
|
# to 'puppetdb' and its cache terminus to 'yaml'.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'puppet'
|
2
|
+
# The CompilableResourceType module should be either included in a class or used as a class extension
|
3
|
+
# to mark that the instance used as the 'resource type' of a resource instance
|
4
|
+
# is an object that is compatible with Puppet::Type's API wrt. compiling.
|
5
|
+
# Puppet Resource Types written in Ruby use a meta programmed Ruby Class as the type. Those classes
|
6
|
+
# are subtypes of Puppet::Type. Meta data (Pcore/puppet language) based resource types uses instances of
|
7
|
+
# a class instead.
|
8
|
+
#
|
9
|
+
module Puppet::CompilableResourceType
|
10
|
+
# All 3.x resource types implemented in Ruby using Puppet::Type respond true.
|
11
|
+
# Other kinds of implementations should reimplement and return false.
|
12
|
+
def is_3x_ruby_plugin?
|
13
|
+
true
|
14
|
+
end
|
15
|
+
end
|
data/lib/puppet/configurer.rb
CHANGED
@@ -181,9 +181,45 @@ class Puppet::Configurer
|
|
181
181
|
# which accepts :tags and :ignoreschedules.
|
182
182
|
def run(options = {})
|
183
183
|
pool = Puppet::Network::HTTP::Pool.new(Puppet[:http_keepalive_timeout])
|
184
|
+
# We create the report pre-populated with default settings for
|
185
|
+
# environment and transaction_uuid very early, this is to ensure
|
186
|
+
# they are sent regardless of any catalog compilation failures or
|
187
|
+
# exceptions.
|
188
|
+
options[:report] ||= Puppet::Transaction::Report.new("apply", nil, @environment, @transaction_uuid)
|
189
|
+
report = options[:report]
|
190
|
+
init_storage
|
191
|
+
|
192
|
+
Puppet::Util::Log.newdestination(report)
|
193
|
+
|
184
194
|
begin
|
185
195
|
Puppet.override(:http_pool => pool) do
|
186
|
-
|
196
|
+
|
197
|
+
# Skip failover logic if the server_list setting is empty
|
198
|
+
if Puppet.settings[:server_list].nil? || Puppet.settings[:server_list].empty?
|
199
|
+
do_failover = false;
|
200
|
+
else
|
201
|
+
do_failover = true
|
202
|
+
end
|
203
|
+
# When we are passed a catalog, that means we're in apply
|
204
|
+
# mode. We shouldn't try to do any failover in that case.
|
205
|
+
if options[:catalog].nil? && do_failover
|
206
|
+
found = find_functional_server()
|
207
|
+
server = found[:server]
|
208
|
+
if server.nil?
|
209
|
+
Puppet.warning "Could not select a functional puppet master"
|
210
|
+
server = [nil, nil]
|
211
|
+
end
|
212
|
+
Puppet.override(:server => server[0], :serverport => server[1]) do
|
213
|
+
if !server.first.nil?
|
214
|
+
Puppet.debug "Selected master: #{server[0]}:#{server[1]}"
|
215
|
+
report.master_used = "#{server[0]}:#{server[1]}"
|
216
|
+
end
|
217
|
+
|
218
|
+
run_internal(options.merge(:node => found[:node]))
|
219
|
+
end
|
220
|
+
else
|
221
|
+
run_internal(options)
|
222
|
+
end
|
187
223
|
end
|
188
224
|
ensure
|
189
225
|
pool.close
|
@@ -191,15 +227,7 @@ class Puppet::Configurer
|
|
191
227
|
end
|
192
228
|
|
193
229
|
def run_internal(options)
|
194
|
-
# We create the report pre-populated with default settings for
|
195
|
-
# environment and transaction_uuid very early, this is to ensure
|
196
|
-
# they are sent regardless of any catalog compilation failures or
|
197
|
-
# exceptions.
|
198
|
-
options[:report] ||= Puppet::Transaction::Report.new("apply", nil, @environment, @transaction_uuid)
|
199
230
|
report = options[:report]
|
200
|
-
init_storage
|
201
|
-
|
202
|
-
Puppet::Util::Log.newdestination(report)
|
203
231
|
|
204
232
|
# If a cached catalog is explicitly requested, attempt to retrieve it. Skip the node request,
|
205
233
|
# don't pluginsync and switch to the catalog's environment if we successfully retrieve it.
|
@@ -233,7 +261,7 @@ class Puppet::Configurer
|
|
233
261
|
# We only need to find out the environment to run in if we don't already have a catalog
|
234
262
|
unless (options[:catalog] || Puppet[:strict_environment_mode])
|
235
263
|
begin
|
236
|
-
if node = Puppet::Node.indirection.find(Puppet[:node_name_value],
|
264
|
+
if node = options[:node] || Puppet::Node.indirection.find(Puppet[:node_name_value],
|
237
265
|
:environment => Puppet::Node::Environment.remote(@environment),
|
238
266
|
:configured_environment => configured_environment,
|
239
267
|
:ignore_cache => true,
|
@@ -328,6 +356,35 @@ class Puppet::Configurer
|
|
328
356
|
end
|
329
357
|
private :run_internal
|
330
358
|
|
359
|
+
def find_functional_server()
|
360
|
+
configured_environment = Puppet[:environment] if Puppet.settings.set_by_config?(:environment)
|
361
|
+
|
362
|
+
node = nil
|
363
|
+
selected_server = Puppet.settings[:server_list].find do |server|
|
364
|
+
# Puppet.override doesn't return the result of its block, so we
|
365
|
+
# need to handle this manually
|
366
|
+
found = false
|
367
|
+
server[1] ||= Puppet[:masterport]
|
368
|
+
Puppet.override(:server => server[0], :serverport => server[1]) do
|
369
|
+
begin
|
370
|
+
node = Puppet::Node.indirection.find(Puppet[:node_name_value],
|
371
|
+
:environment => Puppet::Node::Environment.remote(@environment),
|
372
|
+
:configured_environment => configured_environment,
|
373
|
+
:ignore_cache => true,
|
374
|
+
:transaction_uuid => @transaction_uuid,
|
375
|
+
:fail_on_404 => false)
|
376
|
+
found = true
|
377
|
+
rescue Exception => e
|
378
|
+
# Nothing to see here
|
379
|
+
end
|
380
|
+
end
|
381
|
+
found
|
382
|
+
end
|
383
|
+
{ :node => node,
|
384
|
+
:server => selected_server }
|
385
|
+
end
|
386
|
+
private :find_functional_server
|
387
|
+
|
331
388
|
def send_report(report)
|
332
389
|
puts report.summary if Puppet[:summarize]
|
333
390
|
save_last_run_summary(report)
|