puppet 5.5.22-x64-mingw32 → 6.0.0-x64-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 +4 -4
- data/Gemfile +46 -72
- data/Gemfile.lock +86 -102
- data/MAINTAINERS +47 -0
- data/Rakefile +15 -19
- data/ext/build_defaults.yaml +0 -1
- data/ext/cert_inspector +3 -3
- data/ext/debian/copyright +0 -22
- data/ext/project_data.yaml +8 -10
- data/ext/puppet-test +2 -2
- data/ext/redhat/puppet.spec.erb +0 -4
- data/ext/regexp_nodes/regexp_nodes.rb +4 -4
- data/ext/solaris/smf/puppet.xml +0 -2
- data/ext/solaris/smf/svc-puppetd +1 -8
- data/ext/solaris/smf/svc-puppetmasterd +1 -8
- data/ext/windows/eventlog/Rakefile +32 -0
- data/ext/windows/eventlog/puppetres.dll +0 -0
- data/ext/windows/eventlog/puppetres.mc +18 -0
- data/ext/windows/service/daemon.rb +8 -54
- data/install.rb +24 -6
- data/lib/hiera/scope.rb +0 -7
- data/lib/puppet.rb +10 -21
- data/lib/puppet/agent.rb +13 -5
- data/lib/puppet/application.rb +10 -8
- data/lib/puppet/application/agent.rb +3 -21
- data/lib/puppet/application/apply.rb +22 -12
- data/lib/puppet/application/cert.rb +25 -180
- data/lib/puppet/application/describe.rb +9 -3
- data/lib/puppet/application/device.rb +41 -74
- data/lib/puppet/application/doc.rb +5 -3
- data/lib/puppet/application/filebucket.rb +1 -23
- data/lib/puppet/application/lookup.rb +2 -2
- data/lib/puppet/application/resource.rb +4 -4
- data/lib/puppet/application/script.rb +3 -3
- data/lib/puppet/application/ssl.rb +133 -0
- data/lib/puppet/application_support.rb +1 -2
- data/lib/puppet/configurer.rb +62 -127
- data/lib/puppet/configurer/downloader.rb +17 -34
- data/lib/puppet/configurer/fact_handler.rb +5 -1
- data/lib/puppet/configurer/plugin_handler.rb +2 -3
- data/lib/puppet/confine/false.rb +1 -7
- data/lib/puppet/confine/true.rb +1 -7
- data/lib/puppet/daemon.rb +2 -2
- data/lib/puppet/datatypes.rb +1 -1
- data/lib/puppet/defaults.rb +126 -286
- data/lib/puppet/environments.rb +2 -7
- data/lib/puppet/error.rb +14 -10
- data/lib/puppet/etc.rb +4 -25
- data/lib/puppet/external/dot.rb +23 -17
- data/lib/puppet/face/config.rb +50 -12
- data/lib/puppet/face/epp.rb +2 -2
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +21 -7
- data/lib/puppet/face/help/global.erb +2 -2
- data/lib/puppet/face/module/build.rb +4 -59
- data/lib/puppet/face/module/generate.rb +5 -247
- data/lib/puppet/face/module/install.rb +0 -4
- data/lib/puppet/face/module/list.rb +5 -10
- data/lib/puppet/face/module/search.rb +2 -2
- data/lib/puppet/face/module/uninstall.rb +1 -5
- data/lib/puppet/face/module/upgrade.rb +1 -5
- data/lib/puppet/face/node/clean.rb +14 -10
- data/lib/puppet/face/plugin.rb +2 -9
- data/lib/puppet/feature/base.rb +7 -26
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/base.rb +7 -7
- data/lib/puppet/file_serving/fileset.rb +2 -2
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +4 -3
- data/lib/puppet/file_serving/mount/locales.rb +2 -1
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
- data/lib/puppet/file_serving/mount/plugins.rb +2 -1
- data/lib/puppet/file_system.rb +8 -0
- data/lib/puppet/file_system/memory_file.rb +1 -1
- data/lib/puppet/file_system/posix.rb +2 -3
- data/lib/puppet/file_system/uniquefile.rb +0 -4
- data/lib/puppet/forge.rb +8 -12
- data/lib/puppet/functions.rb +138 -0
- data/lib/puppet/functions/abs.rb +61 -0
- data/lib/puppet/functions/call.rb +38 -2
- data/lib/puppet/functions/camelcase.rb +62 -0
- data/lib/puppet/functions/capitalize.rb +61 -0
- data/lib/puppet/functions/ceiling.rb +37 -0
- data/lib/puppet/functions/chomp.rb +57 -0
- data/lib/puppet/functions/chop.rb +67 -0
- data/lib/puppet/functions/compare.rb +125 -0
- data/lib/puppet/functions/convert_to.rb +3 -2
- data/lib/puppet/functions/dig.rb +21 -1
- data/lib/puppet/functions/downcase.rb +89 -0
- data/lib/puppet/functions/epp.rb +4 -4
- data/lib/puppet/functions/eyaml_lookup_key.rb +4 -5
- data/lib/puppet/functions/filter.rb +7 -6
- data/lib/puppet/functions/floor.rb +37 -0
- data/lib/puppet/functions/get.rb +150 -0
- data/lib/puppet/functions/getvar.rb +87 -0
- data/lib/puppet/functions/inline_epp.rb +5 -5
- data/lib/puppet/functions/lstrip.rb +58 -0
- data/lib/puppet/functions/max.rb +183 -0
- data/lib/puppet/functions/min.rb +182 -0
- data/lib/puppet/functions/new.rb +3 -8
- data/lib/puppet/functions/reduce.rb +4 -2
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/round.rb +24 -0
- data/lib/puppet/functions/rstrip.rb +58 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/sort.rb +74 -0
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +58 -0
- data/lib/puppet/functions/upcase.rb +89 -0
- data/lib/puppet/functions/yaml_data.rb +4 -5
- data/lib/puppet/gettext/config.rb +1 -1
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/graph.rb +0 -2
- data/lib/puppet/graph/rb_tree_map.rb +2 -2
- data/lib/puppet/graph/simple_graph.rb +10 -7
- data/lib/puppet/indirector/catalog/compiler.rb +0 -8
- data/lib/puppet/indirector/catalog/json.rb +14 -3
- data/lib/puppet/indirector/catalog/yaml.rb +0 -16
- data/lib/puppet/indirector/certificate/file.rb +0 -1
- data/lib/puppet/indirector/facts/yaml.rb +4 -2
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +0 -6
- data/lib/puppet/indirector/indirection.rb +8 -12
- data/lib/puppet/indirector/key/file.rb +1 -6
- data/lib/puppet/indirector/node/exec.rb +1 -3
- data/lib/puppet/indirector/node/yaml.rb +0 -6
- data/lib/puppet/indirector/request.rb +20 -27
- data/lib/puppet/indirector/resource/ral.rb +3 -1
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/indirector/rest.rb +7 -65
- data/lib/puppet/indirector/ssl_file.rb +3 -44
- data/lib/puppet/indirector/terminus.rb +1 -1
- data/lib/puppet/indirector/yaml.rb +4 -4
- data/lib/puppet/info_service/task_information_service.rb +7 -3
- data/lib/puppet/interface.rb +2 -3
- data/lib/puppet/interface/action.rb +2 -5
- data/lib/puppet/interface/face_collection.rb +3 -1
- data/lib/puppet/loaders.rb +2 -0
- data/lib/puppet/metatype/manager.rb +3 -5
- data/lib/puppet/module.rb +5 -31
- data/lib/puppet/module/task.rb +208 -30
- data/lib/puppet/module_tool.rb +2 -5
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/application.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +7 -8
- data/lib/puppet/module_tool/applications/uninstaller.rb +4 -5
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +5 -6
- data/lib/puppet/module_tool/installed_modules.rb +2 -2
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -2
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
- data/lib/puppet/module_tool/tar/mini.rb +2 -12
- data/lib/puppet/network/authconfig.rb +0 -13
- data/lib/puppet/network/format_support.rb +13 -8
- data/lib/puppet/network/formats.rb +93 -2
- data/lib/puppet/network/http.rb +0 -2
- data/lib/puppet/network/http/api.rb +1 -10
- data/lib/puppet/network/http/api/indirected_routes.rb +22 -16
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -3
- data/lib/puppet/network/http/connection.rb +14 -57
- data/lib/puppet/network/http/factory.rb +13 -7
- data/lib/puppet/network/http/handler.rb +59 -27
- data/lib/puppet/network/http/pool.rb +1 -7
- data/lib/puppet/network/http/site.rb +1 -1
- data/lib/puppet/network/resolver.rb +140 -67
- data/lib/puppet/node.rb +1 -2
- data/lib/puppet/node/environment.rb +5 -30
- data/lib/puppet/node/facts.rb +11 -1
- data/lib/puppet/parameter.rb +4 -7
- data/lib/puppet/parser/ast.rb +5 -9
- data/lib/puppet/parser/ast/branch.rb +3 -3
- data/lib/puppet/parser/ast/leaf.rb +5 -0
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/catalog_compiler.rb +32 -0
- data/lib/puppet/parser/compiler.rb +2 -3
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -2
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -2
- data/lib/puppet/parser/environment_compiler.rb +0 -3
- data/lib/puppet/parser/functions.rb +48 -18
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/filter.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +1 -1
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- data/lib/puppet/parser/resource.rb +2 -4
- data/lib/puppet/parser/resource/param.rb +12 -11
- data/lib/puppet/parser/scope.rb +6 -8
- data/lib/puppet/parser/script_compiler.rb +7 -2
- data/lib/puppet/pops.rb +1 -0
- data/lib/puppet/pops/adaptable.rb +13 -7
- data/lib/puppet/pops/adapters.rb +18 -8
- data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +3 -1
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +127 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +17 -2
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +23 -4
- data/lib/puppet/pops/evaluator/runtime3_support.rb +7 -8
- data/lib/puppet/pops/functions/dispatch.rb +6 -0
- data/lib/puppet/pops/issues.rb +9 -10
- data/lib/puppet/pops/loader/loader.rb +1 -1
- data/lib/puppet/pops/loader/loader_paths.rb +5 -3
- data/lib/puppet/pops/loader/module_loaders.rb +47 -21
- data/lib/puppet/pops/loader/null_loader.rb +60 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +54 -0
- data/lib/puppet/pops/loader/static_loader.rb +0 -36
- data/lib/puppet/pops/loader/task_instantiator.rb +72 -44
- data/lib/puppet/pops/loaders.rb +21 -33
- data/lib/puppet/pops/lookup/hiera_config.rb +1 -2
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +18 -22
- data/lib/puppet/pops/model/ast.pp +16 -0
- data/lib/puppet/pops/model/ast.rb +94 -0
- data/lib/puppet/pops/model/factory.rb +17 -38
- data/lib/puppet/pops/model/model_label_provider.rb +8 -1
- data/lib/puppet/pops/parser/egrammar.ra +14 -3
- data/lib/puppet/pops/parser/eparser.rb +1537 -1492
- data/lib/puppet/pops/parser/epp_support.rb +6 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +8 -17
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/lexer2.rb +2 -7
- data/lib/puppet/pops/parser/locator.rb +87 -107
- data/lib/puppet/pops/parser/parser_support.rb +2 -11
- data/lib/puppet/pops/parser/pn_parser.rb +16 -17
- data/lib/puppet/pops/pcore.rb +19 -8
- data/lib/puppet/pops/puppet_stack.rb +48 -51
- data/lib/puppet/pops/resource/resource_type_impl.rb +0 -2
- data/lib/puppet/pops/serialization.rb +3 -2
- data/lib/puppet/pops/serialization/from_data_converter.rb +4 -3
- data/lib/puppet/pops/serialization/to_data_converter.rb +3 -3
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
- data/lib/puppet/pops/types/iterable.rb +8 -34
- data/lib/puppet/pops/types/p_binary_type.rb +1 -2
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +3 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +0 -4
- data/lib/puppet/pops/types/string_converter.rb +12 -21
- data/lib/puppet/pops/types/type_calculator.rb +0 -24
- data/lib/puppet/pops/types/type_factory.rb +17 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +7 -32
- data/lib/puppet/pops/validation/checker4_0.rb +23 -33
- data/lib/puppet/pops/validation/tasks_checker.rb +47 -6
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +7 -10
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider.rb +14 -2
- data/lib/puppet/provider/exec.rb +58 -59
- data/lib/puppet/provider/file/posix.rb +0 -5
- data/lib/puppet/provider/file/windows.rb +2 -50
- data/lib/puppet/provider/group/aix.rb +2 -18
- data/lib/puppet/provider/group/groupadd.rb +19 -19
- data/lib/puppet/provider/group/windows_adsi.rb +4 -11
- data/lib/puppet/provider/nameservice.rb +28 -11
- data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
- data/lib/puppet/provider/nameservice/pw.rb +2 -2
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/aix.rb +2 -17
- data/lib/puppet/provider/package/apt.rb +3 -14
- data/lib/puppet/provider/package/dnf.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +7 -18
- data/lib/puppet/provider/package/fink.rb +3 -20
- data/lib/puppet/provider/package/gem.rb +43 -105
- data/lib/puppet/provider/package/openbsd.rb +2 -14
- data/lib/puppet/provider/package/pip.rb +108 -160
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +5 -18
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +4 -16
- data/lib/puppet/provider/package/portage.rb +6 -6
- data/lib/puppet/provider/package/puppet_gem.rb +2 -7
- data/lib/puppet/provider/package/rpm.rb +33 -82
- data/lib/puppet/provider/package/windows.rb +2 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +10 -16
- data/lib/puppet/provider/package/windows/msi_package.rb +0 -8
- data/lib/puppet/provider/package/windows/package.rb +2 -10
- data/lib/puppet/provider/package/yum.rb +25 -37
- data/lib/puppet/provider/package/zypper.rb +0 -1
- data/lib/puppet/provider/parsedfile.rb +5 -26
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +9 -9
- data/lib/puppet/provider/service/debian.rb +1 -0
- data/lib/puppet/provider/service/launchd.rb +8 -39
- data/lib/puppet/provider/service/openbsd.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +8 -2
- data/lib/puppet/provider/service/smf.rb +0 -54
- data/lib/puppet/provider/service/systemd.rb +24 -35
- data/lib/puppet/provider/service/upstart.rb +1 -3
- data/lib/puppet/provider/service/windows.rb +3 -23
- data/lib/puppet/provider/user/aix.rb +2 -48
- data/lib/puppet/provider/user/directoryservice.rb +8 -45
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +3 -12
- data/lib/puppet/provider/user/user_role_add.rb +1 -5
- data/lib/puppet/provider/user/useradd.rb +44 -74
- data/lib/puppet/provider/user/windows_adsi.rb +0 -7
- data/lib/puppet/reference/indirection.rb +2 -2
- data/lib/puppet/reference/metaparameter.rb +3 -1
- data/lib/puppet/reference/providers.rb +1 -1
- data/lib/puppet/reference/type.rb +9 -3
- data/lib/puppet/reports.rb +3 -3
- data/lib/puppet/resource.rb +22 -22
- data/lib/puppet/resource/catalog.rb +8 -14
- data/lib/puppet/resource/type.rb +1 -10
- data/lib/puppet/rest/client.rb +83 -0
- data/lib/puppet/rest/errors.rb +14 -0
- data/lib/puppet/rest/response.rb +34 -0
- data/lib/puppet/rest/route.rb +84 -0
- data/lib/puppet/rest/routes.rb +154 -0
- data/lib/puppet/rest/ssl_context.rb +13 -0
- data/lib/puppet/settings.rb +9 -54
- data/lib/puppet/settings/config_file.rb +1 -2
- data/lib/puppet/settings/environment_conf.rb +0 -1
- data/lib/puppet/settings/file_setting.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +0 -9
- data/lib/puppet/ssl.rb +0 -1
- data/lib/puppet/ssl/base.rb +1 -9
- data/lib/puppet/ssl/certificate.rb +7 -4
- data/lib/puppet/ssl/certificate_request.rb +6 -14
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/host.rb +400 -174
- data/lib/puppet/ssl/key.rb +1 -5
- data/lib/puppet/ssl/oids.rb +3 -3
- data/lib/puppet/ssl/validator/default_validator.rb +33 -49
- data/lib/puppet/test/test_helper.rb +12 -18
- data/lib/puppet/transaction.rb +7 -12
- data/lib/puppet/transaction/event.rb +37 -14
- data/lib/puppet/transaction/event_manager.rb +3 -11
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/transaction/resource_harness.rb +2 -5
- data/lib/puppet/type.rb +7 -10
- data/lib/puppet/type/exec.rb +16 -50
- data/lib/puppet/type/file.rb +7 -16
- data/lib/puppet/type/file/content.rb +2 -3
- data/lib/puppet/type/file/data_sync.rb +1 -5
- data/lib/puppet/type/file/mode.rb +2 -7
- data/lib/puppet/type/file/source.rb +2 -1
- data/lib/puppet/type/filebucket.rb +8 -12
- data/lib/puppet/type/group.rb +3 -33
- data/lib/puppet/type/notify.rb +2 -3
- data/lib/puppet/type/package.rb +18 -154
- data/lib/puppet/type/resources.rb +2 -12
- data/lib/puppet/type/schedule.rb +34 -96
- data/lib/puppet/type/service.rb +10 -9
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +30 -14
- data/lib/puppet/util.rb +28 -52
- data/lib/puppet/util/autoload.rb +62 -56
- data/lib/puppet/util/character_encoding.rb +0 -22
- data/lib/puppet/util/classgen.rb +0 -6
- data/lib/puppet/util/command_line.rb +4 -7
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/connection.rb +74 -0
- data/lib/puppet/util/execution.rb +7 -22
- data/lib/puppet/util/feature.rb +63 -41
- data/lib/puppet/util/fileparsing.rb +27 -5
- data/lib/puppet/util/filetype.rb +8 -56
- data/lib/puppet/util/http_proxy.rb +18 -27
- data/lib/puppet/util/instance_loader.rb +3 -21
- data/lib/puppet/util/json.rb +0 -8
- data/lib/puppet/util/ldap/connection.rb +7 -7
- data/lib/puppet/util/log.rb +3 -8
- data/lib/puppet/util/log/destinations.rb +13 -5
- data/lib/puppet/util/logging.rb +19 -31
- data/lib/puppet/util/metric.rb +2 -2
- data/lib/puppet/util/monkey_patches.rb +1 -1
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/pidlock.rb +3 -23
- data/lib/puppet/util/platform.rb +3 -0
- data/lib/puppet/util/plist.rb +0 -6
- data/lib/puppet/util/posix.rb +0 -15
- data/lib/puppet/util/provider_features.rb +6 -7
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/reference.rb +8 -7
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/rubygems.rb +1 -13
- data/lib/puppet/util/run_mode.rb +1 -1
- data/lib/puppet/util/selinux.rb +3 -9
- data/lib/puppet/util/ssl.rb +40 -1
- data/lib/puppet/util/storage.rb +1 -13
- data/lib/puppet/util/suidmanager.rb +7 -5
- data/lib/puppet/util/tag_set.rb +1 -1
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/windows.rb +15 -0
- data/lib/puppet/util/windows/adsi.rb +7 -116
- data/lib/puppet/util/windows/api_types.rb +33 -46
- data/lib/puppet/util/windows/eventlog.rb +6 -1
- data/lib/puppet/util/windows/principal.rb +6 -8
- data/lib/puppet/util/windows/process.rb +3 -94
- data/lib/puppet/util/windows/registry.rb +14 -46
- data/lib/puppet/util/windows/security.rb +2 -40
- data/lib/puppet/util/windows/service.rb +72 -431
- data/lib/puppet/util/windows/sid.rb +3 -4
- data/lib/puppet/util/windows/user.rb +9 -17
- data/lib/puppet/util/yaml.rb +41 -5
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +246 -23
- data/locales/ja/puppet.po +11128 -0
- data/locales/puppet.pot +1321 -2527
- data/man/man5/puppet.conf.5 +31 -191
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +3 -3
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +19 -23
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +2 -21
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -7
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +10 -100
- data/man/man8/puppet-node.8 +4 -7
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +28 -0
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +12 -3
- data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +22 -0
- data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +18 -0
- data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +7 -0
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
- data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -1
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -2
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -9
- data/spec/integration/agent/logging_spec.rb +9 -7
- data/spec/integration/application/apply_spec.rb +31 -26
- data/spec/integration/application/doc_spec.rb +2 -1
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +8 -76
- data/spec/integration/data_binding_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +13 -16
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +4 -3
- data/spec/integration/faces/documentation_spec.rb +1 -0
- data/spec/integration/faces/plugin_spec.rb +49 -29
- data/spec/integration/file_bucket/file_spec.rb +4 -19
- data/spec/integration/file_serving/content_spec.rb +1 -0
- data/spec/integration/file_serving/fileset_spec.rb +1 -0
- data/spec/integration/file_serving/metadata_spec.rb +1 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
- data/spec/integration/file_system/uniquefile_spec.rb +26 -29
- data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -22
- data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
- data/spec/integration/network/authconfig_spec.rb +24 -23
- data/spec/integration/network/formats_spec.rb +1 -0
- data/spec/integration/network/http/api/indirected_routes_spec.rb +6 -34
- data/spec/integration/node/environment_spec.rb +2 -1
- data/spec/integration/node/facts_spec.rb +10 -9
- data/spec/integration/node_spec.rb +7 -10
- data/spec/integration/parser/catalog_spec.rb +8 -6
- data/spec/integration/parser/collection_spec.rb +9 -4
- data/spec/integration/parser/compiler_spec.rb +7 -25
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +9 -6
- data/spec/integration/provider/service/systemd_spec.rb +14 -11
- data/spec/integration/provider/service/windows_spec.rb +11 -8
- data/spec/integration/reference/providers_spec.rb +7 -0
- data/spec/integration/reports_spec.rb +2 -1
- data/spec/integration/resource/catalog_spec.rb +17 -14
- data/spec/integration/resource/type_collection_spec.rb +5 -4
- data/spec/integration/ssl/certificate_request_spec.rb +1 -2
- data/spec/integration/ssl/host_spec.rb +17 -24
- data/spec/integration/ssl/key_spec.rb +7 -2
- data/spec/integration/test/test_helper_spec.rb +32 -0
- data/spec/integration/transaction/report_spec.rb +14 -9
- data/spec/integration/type/exec_spec.rb +2 -1
- data/spec/integration/type/file_spec.rb +38 -46
- data/spec/integration/type/package_spec.rb +25 -21
- data/spec/integration/type/tidy_spec.rb +2 -1
- data/spec/integration/type_spec.rb +1 -0
- data/spec/integration/util/autoload_spec.rb +11 -7
- data/spec/integration/util/execution_spec.rb +5 -32
- data/spec/integration/util/rdoc/parser_spec.rb +14 -23
- data/spec/integration/util/settings_spec.rb +2 -1
- data/spec/integration/util/windows/adsi_spec.rb +8 -11
- data/spec/integration/util/windows/principal_spec.rb +2 -1
- data/spec/integration/util/windows/process_spec.rb +9 -7
- data/spec/integration/util/windows/registry_spec.rb +46 -127
- data/spec/integration/util/windows/security_spec.rb +15 -16
- data/spec/integration/util/windows/user_spec.rb +29 -66
- data/spec/integration/util_spec.rb +10 -7
- data/spec/lib/matchers/json.rb +12 -18
- data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +5 -6
- data/spec/lib/puppet/test_ca.rb +109 -0
- data/spec/lib/puppet_spec/compiler.rb +28 -1
- data/spec/lib/puppet_spec/files.rb +29 -23
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/modules.rb +11 -1
- data/spec/lib/puppet_spec/scope.rb +2 -1
- data/spec/lib/puppet_spec/ssl.rb +265 -0
- data/spec/lib/puppet_spec/validators.rb +37 -0
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +9 -8
- data/spec/shared_behaviours/file_serving.rb +8 -6
- data/spec/shared_behaviours/file_serving_model.rb +5 -22
- data/spec/shared_behaviours/hiera_indirections.rb +4 -3
- data/spec/shared_behaviours/iterative_functions.rb +1 -0
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_behaviours/path_parameters.rb +1 -1
- data/spec/shared_contexts/types_setup.rb +0 -2
- data/spec/shared_examples/rhel_package_provider.rb +70 -112
- data/spec/spec_helper.rb +1 -15
- data/spec/unit/agent/disabler_spec.rb +5 -4
- data/spec/unit/agent/locker_spec.rb +13 -12
- data/spec/unit/agent_spec.rb +102 -105
- data/spec/unit/application/agent_spec.rb +95 -114
- data/spec/unit/application/apply_spec.rb +92 -119
- data/spec/unit/application/config_spec.rb +1 -0
- data/spec/unit/application/describe_spec.rb +7 -6
- data/spec/unit/application/device_spec.rb +180 -181
- data/spec/unit/application/doc_spec.rb +46 -44
- data/spec/unit/application/face_base_spec.rb +62 -61
- data/spec/unit/application/facts_spec.rb +4 -3
- data/spec/unit/application/filebucket_spec.rb +74 -66
- data/spec/unit/application/indirection_base_spec.rb +6 -8
- data/spec/unit/application/lookup_spec.rb +44 -37
- data/spec/unit/application/resource_spec.rb +48 -42
- data/spec/unit/application/ssl_spec.rb +322 -0
- data/spec/unit/application_spec.rb +108 -90
- data/spec/unit/capability_spec.rb +15 -16
- data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +13 -20
- data/spec/unit/configurer/downloader_spec.rb +22 -31
- data/spec/unit/configurer/fact_handler_spec.rb +7 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
- data/spec/unit/configurer_spec.rb +475 -520
- data/spec/unit/confine/exists_spec.rb +15 -17
- data/spec/unit/confine/false_spec.rb +6 -32
- data/spec/unit/confine/feature_spec.rb +5 -7
- data/spec/unit/confine/true_spec.rb +6 -32
- data/spec/unit/confine/variable_spec.rb +15 -14
- data/spec/unit/confine_collection_spec.rb +29 -28
- data/spec/unit/confine_spec.rb +14 -13
- data/spec/unit/confiner_spec.rb +11 -10
- data/spec/unit/context/trusted_information_spec.rb +4 -3
- data/spec/unit/daemon_spec.rb +38 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
- data/spec/unit/datatypes_spec.rb +4 -3
- data/spec/unit/defaults_spec.rb +61 -32
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +29 -52
- data/spec/unit/external/pson_spec.rb +1 -0
- data/spec/unit/face/catalog_spec.rb +1 -0
- data/spec/unit/face/config_spec.rb +35 -31
- data/spec/unit/face/epp_face_spec.rb +4 -3
- data/spec/unit/face/facts_spec.rb +6 -14
- data/spec/unit/face/generate_spec.rb +5 -4
- data/spec/unit/face/help_spec.rb +8 -7
- data/spec/unit/face/key_spec.rb +1 -0
- data/spec/unit/face/man_spec.rb +2 -1
- data/spec/unit/face/module/install_spec.rb +5 -3
- data/spec/unit/face/module/list_spec.rb +12 -62
- data/spec/unit/face/module/search_spec.rb +9 -11
- data/spec/unit/face/module/uninstall_spec.rb +8 -4
- data/spec/unit/face/node_spec.rb +30 -52
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +9 -44
- data/spec/unit/face/status_spec.rb +1 -0
- data/spec/unit/file_bucket/dipper_spec.rb +24 -28
- data/spec/unit/file_bucket/file_spec.rb +2 -0
- data/spec/unit/file_serving/base_spec.rb +18 -20
- data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
- data/spec/unit/file_serving/configuration_spec.rb +66 -63
- data/spec/unit/file_serving/content_spec.rb +11 -10
- data/spec/unit/file_serving/fileset_spec.rb +58 -63
- data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
- data/spec/unit/file_serving/metadata_spec.rb +40 -40
- data/spec/unit/file_serving/mount/file_spec.rb +32 -31
- data/spec/unit/file_serving/mount/locales_spec.rb +26 -25
- data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +26 -25
- data/spec/unit/file_serving/mount/plugins_spec.rb +26 -25
- data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
- data/spec/unit/file_serving/mount_spec.rb +1 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
- data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
- data/spec/unit/file_system/path_pattern_spec.rb +1 -1
- data/spec/unit/file_system/uniquefile_spec.rb +6 -17
- data/spec/unit/file_system_spec.rb +9 -6
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +16 -15
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +30 -27
- data/spec/unit/forge_spec.rb +11 -15
- data/spec/unit/functions/abs_spec.rb +70 -0
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/call_spec.rb +59 -5
- data/spec/unit/functions/camelcase_spec.rb +34 -0
- data/spec/unit/functions/capitalize_spec.rb +34 -0
- data/spec/unit/functions/ceiling_spec.rb +65 -0
- data/spec/unit/functions/chomp_spec.rb +46 -0
- data/spec/unit/functions/chop_spec.rb +38 -0
- data/spec/unit/functions/compare_spec.rb +147 -0
- data/spec/unit/functions/contain_spec.rb +2 -0
- data/spec/unit/functions/convert_to_spec.rb +3 -0
- data/spec/unit/functions/defined_spec.rb +1 -0
- data/spec/unit/functions/downcase_spec.rb +34 -0
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/filter_spec.rb +4 -4
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/floor_spec.rb +65 -0
- data/spec/unit/functions/get_spec.rb +135 -0
- data/spec/unit/functions/getvar_spec.rb +121 -0
- data/spec/unit/functions/hiera_spec.rb +14 -48
- data/spec/unit/functions/include_spec.rb +4 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +37 -62
- data/spec/unit/functions/lstrip_spec.rb +30 -0
- data/spec/unit/functions/match_spec.rb +3 -4
- data/spec/unit/functions/max_spec.rb +129 -0
- data/spec/unit/functions/min_spec.rb +129 -0
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/new_spec.rb +0 -15
- data/spec/unit/functions/regsubst_spec.rb +3 -4
- data/spec/unit/functions/require_spec.rb +3 -0
- data/spec/unit/functions/round_spec.rb +41 -0
- data/spec/unit/functions/rstrip_spec.rb +30 -0
- data/spec/unit/functions/shared.rb +8 -5
- data/spec/unit/functions/size_spec.rb +50 -0
- data/spec/unit/functions/sort_spec.rb +79 -0
- data/spec/unit/functions/split_spec.rb +3 -4
- data/spec/unit/functions/strip_spec.rb +30 -0
- data/spec/unit/functions/upcase_spec.rb +34 -0
- data/spec/unit/functions/versioncmp_spec.rb +4 -4
- data/spec/unit/functions4_spec.rb +78 -51
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
- data/spec/unit/graph/relationship_graph_spec.rb +2 -1
- data/spec/unit/graph/simple_graph_spec.rb +52 -11
- data/spec/unit/hiera/scope_spec.rb +0 -7
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +166 -183
- data/spec/unit/indirector/catalog/json_spec.rb +2 -1
- data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
- data/spec/unit/indirector/certificate/file_spec.rb +1 -8
- data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
- data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +49 -57
- data/spec/unit/indirector/envelope_spec.rb +2 -1
- data/spec/unit/indirector/exec_spec.rb +31 -26
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +43 -37
- data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
- data/spec/unit/indirector/facts/rest_spec.rb +8 -7
- data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +90 -77
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +13 -9
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
- data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_content/file_spec.rb +1 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
- data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_server_spec.rb +145 -145
- data/spec/unit/indirector/indirection_spec.rb +226 -249
- data/spec/unit/indirector/json_spec.rb +9 -7
- data/spec/unit/indirector/key/file_spec.rb +22 -38
- data/spec/unit/indirector/memory_spec.rb +7 -6
- data/spec/unit/indirector/msgpack_spec.rb +9 -7
- data/spec/unit/indirector/node/exec_spec.rb +43 -22
- data/spec/unit/indirector/node/memory_spec.rb +4 -2
- data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/node/plain_spec.rb +4 -2
- data/spec/unit/indirector/node/rest_spec.rb +1 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/node/yaml_spec.rb +1 -0
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +8 -7
- data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/report/processor_spec.rb +22 -21
- data/spec/unit/indirector/report/rest_spec.rb +12 -11
- data/spec/unit/indirector/report/yaml_spec.rb +1 -0
- data/spec/unit/indirector/request_spec.rb +18 -15
- data/spec/unit/indirector/resource/ral_spec.rb +55 -47
- data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/rest_spec.rb +110 -113
- data/spec/unit/indirector/ssl_file_spec.rb +100 -119
- data/spec/unit/indirector/status/local_spec.rb +1 -0
- data/spec/unit/indirector/status/rest_spec.rb +1 -0
- data/spec/unit/indirector/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/terminus_spec.rb +30 -32
- data/spec/unit/indirector/yaml_spec.rb +90 -68
- data/spec/unit/indirector_spec.rb +2 -1
- data/spec/unit/info_service_spec.rb +144 -10
- data/spec/unit/interface/action_builder_spec.rb +1 -0
- data/spec/unit/interface/action_manager_spec.rb +1 -0
- data/spec/unit/interface/action_spec.rb +3 -2
- data/spec/unit/interface/documentation_spec.rb +1 -0
- data/spec/unit/interface/face_collection_spec.rb +12 -19
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +4 -3
- data/spec/unit/module_spec.rb +52 -102
- data/spec/unit/module_tool/applications/installer_spec.rb +13 -12
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +6 -6
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +13 -12
- data/spec/unit/module_tool_spec.rb +12 -29
- data/spec/unit/network/auth_config_parser_spec.rb +13 -11
- data/spec/unit/network/authconfig_spec.rb +18 -17
- data/spec/unit/network/authorization_spec.rb +5 -4
- data/spec/unit/network/authstore_spec.rb +1 -0
- data/spec/unit/network/format_handler_spec.rb +1 -0
- data/spec/unit/network/format_spec.rb +10 -9
- data/spec/unit/network/format_support_spec.rb +29 -28
- data/spec/unit/network/formats_spec.rb +31 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +41 -51
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +7 -9
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -2
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
- data/spec/unit/network/http/api_spec.rb +2 -26
- data/spec/unit/network/http/compression_spec.rb +28 -24
- data/spec/unit/network/http/connection_spec.rb +122 -72
- data/spec/unit/network/http/factory_spec.rb +11 -40
- data/spec/unit/network/http/handler_spec.rb +18 -9
- data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
- data/spec/unit/network/http/pool_spec.rb +29 -60
- data/spec/unit/network/http/request_spec.rb +2 -0
- data/spec/unit/network/http/response_spec.rb +13 -11
- data/spec/unit/network/http/route_spec.rb +1 -0
- data/spec/unit/network/http/session_spec.rb +2 -1
- data/spec/unit/network/http/site_spec.rb +1 -0
- data/spec/unit/network/http_pool_spec.rb +9 -18
- data/spec/unit/network/http_spec.rb +1 -0
- data/spec/unit/network/resolver_spec.rb +104 -28
- data/spec/unit/network/rights_spec.rb +53 -52
- data/spec/unit/node/environment_spec.rb +17 -18
- data/spec/unit/node/facts_spec.rb +21 -6
- data/spec/unit/node_spec.rb +23 -17
- data/spec/unit/other/selinux_spec.rb +1 -71
- data/spec/unit/parameter/boolean_spec.rb +2 -1
- data/spec/unit/parameter/package_options_spec.rb +2 -1
- data/spec/unit/parameter/path_spec.rb +1 -0
- data/spec/unit/parameter/value_collection_spec.rb +1 -0
- data/spec/unit/parameter/value_spec.rb +1 -0
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
- data/spec/unit/parser/ast/leaf_spec.rb +21 -20
- data/spec/unit/parser/compiler_spec.rb +96 -84
- data/spec/unit/parser/environment_compiler_spec.rb +16 -23
- data/spec/unit/parser/files_spec.rb +1 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +1 -4
- data/spec/unit/parser/functions/fail_spec.rb +2 -5
- data/spec/unit/parser/functions/file_spec.rb +14 -17
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
- data/spec/unit/parser/functions/generate_spec.rb +37 -38
- data/spec/unit/parser/functions/inline_template_spec.rb +1 -4
- data/spec/unit/parser/functions/regsubst_spec.rb +1 -4
- data/spec/unit/parser/functions/scanf_spec.rb +1 -4
- data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
- data/spec/unit/parser/functions/split_spec.rb +1 -4
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -4
- data/spec/unit/parser/functions/tag_spec.rb +2 -5
- data/spec/unit/parser/functions/tagged_spec.rb +3 -6
- data/spec/unit/parser/functions/template_spec.rb +13 -17
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -5
- data/spec/unit/parser/functions_spec.rb +29 -3
- data/spec/unit/parser/relationship_spec.rb +1 -0
- data/spec/unit/parser/resource/param_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +35 -39
- data/spec/unit/parser/templatewrapper_spec.rb +12 -11
- data/spec/unit/parser/type_loader_spec.rb +19 -17
- data/spec/unit/pops/adaptable_spec.rb +1 -0
- data/spec/unit/pops/benchmark_spec.rb +1 -0
- data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +11 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +78 -18
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +5 -4
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
- data/spec/unit/pops/factory_spec.rb +4 -3
- data/spec/unit/pops/issues_spec.rb +20 -19
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
- data/spec/unit/pops/loaders/loader_spec.rb +12 -36
- data/spec/unit/pops/loaders/loaders_spec.rb +57 -54
- data/spec/unit/pops/loaders/module_loaders_spec.rb +35 -3
- data/spec/unit/pops/loaders/static_loader_spec.rb +0 -36
- data/spec/unit/pops/lookup/context_spec.rb +1 -0
- data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
- data/spec/unit/pops/merge_strategy_spec.rb +1 -0
- data/spec/unit/pops/migration_spec.rb +5 -3
- data/spec/unit/pops/model/model_spec.rb +1 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +1 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +60 -21
- data/spec/unit/pops/parser/locator_spec.rb +6 -48
- data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +12 -124
- data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
- data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
- data/spec/unit/pops/pn_spec.rb +1 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +7 -5
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +29 -4
- data/spec/unit/pops/serialization/to_stringified_spec.rb +157 -0
- data/spec/unit/pops/types/deferred_spec.rb +87 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +20 -0
- data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -22
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -19
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/string_converter_spec.rb +11 -22
- data/spec/unit/pops/types/task_spec.rb +148 -16
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/types/types_spec.rb +12 -6
- data/spec/unit/pops/validator/validator_spec.rb +162 -82
- data/spec/unit/pops/visitor_spec.rb +1 -0
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +1 -0
- data/spec/unit/property/keyvalue_spec.rb +34 -32
- data/spec/unit/property/list_spec.rb +27 -26
- data/spec/unit/property/ordered_list_spec.rb +14 -10
- data/spec/unit/property_spec.rb +53 -43
- data/spec/unit/provider/aix_object_spec.rb +45 -47
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +9 -8
- data/spec/unit/provider/exec/shell_spec.rb +3 -1
- data/spec/unit/provider/exec/windows_spec.rb +6 -4
- data/spec/unit/provider/exec_spec.rb +1 -209
- data/spec/unit/provider/file/posix_spec.rb +24 -22
- data/spec/unit/provider/file/windows_spec.rb +19 -17
- data/spec/unit/provider/group/aix_spec.rb +7 -22
- data/spec/unit/provider/group/groupadd_spec.rb +27 -60
- data/spec/unit/provider/group/ldap_spec.rb +36 -33
- data/spec/unit/provider/group/pw_spec.rb +18 -15
- data/spec/unit/provider/group/windows_adsi_spec.rb +80 -128
- data/spec/unit/provider/ldap_spec.rb +62 -61
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +109 -102
- data/spec/unit/provider/nameservice_spec.rb +41 -39
- data/spec/unit/provider/package/aix_spec.rb +22 -48
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +35 -60
- data/spec/unit/provider/package/aptitude_spec.rb +7 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +13 -8
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +23 -34
- data/spec/unit/provider/package/dpkg_spec.rb +72 -114
- data/spec/unit/provider/package/freebsd_spec.rb +18 -15
- data/spec/unit/provider/package/gem_spec.rb +86 -163
- data/spec/unit/provider/package/hpux_spec.rb +18 -15
- data/spec/unit/provider/package/macports_spec.rb +54 -56
- data/spec/unit/provider/package/nim_spec.rb +49 -33
- data/spec/unit/provider/package/openbsd_spec.rb +49 -60
- data/spec/unit/provider/package/opkg_spec.rb +26 -23
- data/spec/unit/provider/package/pacman_spec.rb +118 -97
- data/spec/unit/provider/package/pip3_spec.rb +6 -20
- data/spec/unit/provider/package/pip_spec.rb +129 -185
- data/spec/unit/provider/package/pkg_spec.rb +119 -129
- data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
- data/spec/unit/provider/package/pkgin_spec.rb +23 -20
- data/spec/unit/provider/package/pkgng_spec.rb +35 -67
- data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
- data/spec/unit/provider/package/portage_spec.rb +76 -72
- data/spec/unit/provider/package/puppet_gem_spec.rb +21 -45
- data/spec/unit/provider/package/rpm_spec.rb +79 -291
- data/spec/unit/provider/package/sun_spec.rb +18 -16
- data/spec/unit/provider/package/tdnf_spec.rb +12 -9
- data/spec/unit/provider/package/up2date_spec.rb +4 -2
- data/spec/unit/provider/package/urpmi_spec.rb +17 -15
- data/spec/unit/provider/package/windows/exe_package_spec.rb +18 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +23 -20
- data/spec/unit/provider/package/windows/package_spec.rb +43 -38
- data/spec/unit/provider/package/windows_spec.rb +36 -51
- data/spec/unit/provider/package/yum_spec.rb +24 -128
- data/spec/unit/provider/package/zypper_spec.rb +106 -117
- data/spec/unit/provider/parsedfile_spec.rb +45 -44
- data/spec/unit/provider/service/base_spec.rb +6 -5
- data/spec/unit/provider/service/bsd_spec.rb +54 -47
- data/spec/unit/provider/service/daemontools_spec.rb +53 -70
- data/spec/unit/provider/service/debian_spec.rb +58 -46
- data/spec/unit/provider/service/freebsd_spec.rb +23 -20
- data/spec/unit/provider/service/gentoo_spec.rb +81 -74
- data/spec/unit/provider/service/init_spec.rb +66 -65
- data/spec/unit/provider/service/launchd_spec.rb +114 -181
- data/spec/unit/provider/service/openbsd_spec.rb +94 -87
- data/spec/unit/provider/service/openrc_spec.rb +74 -70
- data/spec/unit/provider/service/openwrt_spec.rb +38 -30
- data/spec/unit/provider/service/rcng_spec.rb +24 -19
- data/spec/unit/provider/service/redhat_spec.rb +60 -60
- data/spec/unit/provider/service/runit_spec.rb +44 -61
- data/spec/unit/provider/service/smf_spec.rb +74 -143
- data/spec/unit/provider/service/src_spec.rb +69 -60
- data/spec/unit/provider/service/systemd_spec.rb +160 -222
- data/spec/unit/provider/service/upstart_spec.rb +99 -83
- data/spec/unit/provider/service/windows_spec.rb +42 -84
- data/spec/unit/provider/user/aix_spec.rb +24 -65
- data/spec/unit/provider/user/directoryservice_spec.rb +114 -187
- data/spec/unit/provider/user/hpux_spec.rb +21 -17
- data/spec/unit/provider/user/ldap_spec.rb +83 -80
- data/spec/unit/provider/user/openbsd_spec.rb +12 -11
- data/spec/unit/provider/user/pw_spec.rb +44 -80
- data/spec/unit/provider/user/user_role_add_spec.rb +94 -94
- data/spec/unit/provider/user/useradd_spec.rb +100 -208
- data/spec/unit/provider/user/windows_adsi_spec.rb +63 -62
- data/spec/unit/provider_spec.rb +189 -41
- data/spec/unit/puppet_pal_2pec.rb +26 -12
- data/spec/unit/puppet_pal_catalog_spec.rb +801 -0
- data/spec/unit/puppet_pal_spec.rb +2 -8
- data/spec/unit/puppet_spec.rb +7 -27
- data/spec/unit/relationship_spec.rb +1 -0
- data/spec/unit/reports/http_spec.rb +23 -21
- data/spec/unit/reports/store_spec.rb +4 -3
- data/spec/unit/reports_spec.rb +14 -12
- data/spec/unit/resource/capability_finder_spec.rb +26 -29
- data/spec/unit/resource/catalog_spec.rb +77 -81
- data/spec/unit/resource/status_spec.rb +8 -6
- data/spec/unit/resource/type_collection_spec.rb +18 -17
- data/spec/unit/resource/type_spec.rb +35 -34
- data/spec/unit/resource_spec.rb +79 -67
- data/spec/unit/rest/client_spec.rb +135 -0
- data/spec/unit/rest/route_spec.rb +132 -0
- data/spec/unit/scheduler/job_spec.rb +1 -0
- data/spec/unit/scheduler/scheduler_spec.rb +1 -0
- data/spec/unit/scheduler/splay_job_spec.rb +2 -1
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +10 -0
- data/spec/unit/settings/directory_setting_spec.rb +7 -2
- data/spec/unit/settings/duration_setting_spec.rb +2 -1
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +6 -4
- data/spec/unit/settings/file_setting_spec.rb +50 -46
- data/spec/unit/settings/ini_file_spec.rb +2 -4
- data/spec/unit/settings/path_setting_spec.rb +3 -2
- data/spec/unit/settings/priority_setting_spec.rb +2 -1
- data/spec/unit/settings/string_setting_spec.rb +15 -14
- data/spec/unit/settings/terminus_setting_spec.rb +2 -1
- data/spec/unit/settings/value_translator_spec.rb +1 -0
- data/spec/unit/settings_spec.rb +226 -253
- data/spec/unit/ssl/base_spec.rb +15 -14
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +22 -8
- data/spec/unit/ssl/certificate_request_spec.rb +63 -92
- data/spec/unit/ssl/certificate_spec.rb +29 -37
- data/spec/unit/ssl/digest_spec.rb +1 -0
- data/spec/unit/ssl/host_spec.rb +305 -685
- data/spec/unit/ssl/key_spec.rb +34 -46
- data/spec/unit/ssl/validator_spec.rb +70 -203
- data/spec/unit/task_spec.rb +172 -26
- data/spec/unit/transaction/additional_resource_generator_spec.rb +68 -67
- data/spec/unit/transaction/event_manager_spec.rb +84 -95
- data/spec/unit/transaction/event_spec.rb +15 -16
- data/spec/unit/transaction/persistence_spec.rb +18 -17
- data/spec/unit/transaction/report_spec.rb +24 -18
- data/spec/unit/transaction/resource_harness_spec.rb +33 -72
- data/spec/unit/transaction_spec.rb +106 -176
- data/spec/unit/type/component_spec.rb +1 -0
- data/spec/unit/type/exec_spec.rb +66 -120
- data/spec/unit/type/file/checksum_spec.rb +11 -10
- data/spec/unit/type/file/checksum_value_spec.rb +32 -31
- data/spec/unit/type/file/content_spec.rb +62 -65
- data/spec/unit/type/file/ctime_spec.rb +1 -0
- data/spec/unit/type/file/ensure_spec.rb +13 -12
- data/spec/unit/type/file/group_spec.rb +7 -5
- data/spec/unit/type/file/mode_spec.rb +6 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -0
- data/spec/unit/type/file/owner_spec.rb +8 -6
- data/spec/unit/type/file/selinux_spec.rb +19 -17
- data/spec/unit/type/file/source_spec.rb +110 -113
- data/spec/unit/type/file/type_spec.rb +1 -0
- data/spec/unit/type/file_spec.rb +190 -204
- data/spec/unit/type/filebucket_spec.rb +10 -11
- data/spec/unit/type/group_spec.rb +9 -15
- data/spec/unit/type/noop_metaparam_spec.rb +2 -1
- data/spec/unit/type/package/package_settings_spec.rb +23 -44
- data/spec/unit/type/package_spec.rb +64 -61
- data/spec/unit/type/resources_spec.rb +101 -103
- data/spec/unit/type/schedule_spec.rb +28 -28
- data/spec/unit/type/service_spec.rb +85 -76
- data/spec/unit/type/stage_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +63 -62
- data/spec/unit/type/user_spec.rb +26 -147
- data/spec/unit/type/whit_spec.rb +1 -0
- data/spec/unit/type_spec.rb +164 -125
- data/spec/unit/util/at_fork_spec.rb +19 -18
- data/spec/unit/util/autoload_spec.rb +122 -93
- data/spec/unit/util/backups_spec.rb +35 -34
- data/spec/unit/util/character_encoding_spec.rb +5 -48
- data/spec/unit/util/checksums_spec.rb +39 -38
- data/spec/unit/util/colors_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +20 -40
- data/spec/unit/util/constant_inflector_spec.rb +1 -0
- data/spec/unit/util/diff_spec.rb +8 -7
- data/spec/unit/util/errors_spec.rb +1 -0
- data/spec/unit/util/execution_spec.rb +167 -285
- data/spec/unit/util/execution_stub_spec.rb +3 -2
- data/spec/unit/util/feature_spec.rb +46 -28
- data/spec/unit/util/filetype_spec.rb +53 -61
- data/spec/unit/util/http_proxy_spec.rb +13 -133
- data/spec/unit/util/inifile_spec.rb +31 -26
- data/spec/unit/util/json_lockfile_spec.rb +5 -3
- data/spec/unit/util/ldap/connection_spec.rb +25 -26
- data/spec/unit/util/ldap/generator_spec.rb +1 -0
- data/spec/unit/util/ldap/manager_spec.rb +102 -118
- data/spec/unit/util/lockfile_spec.rb +2 -1
- data/spec/unit/util/log/destinations_spec.rb +40 -23
- data/spec/unit/util/log_spec.rb +146 -48
- data/spec/unit/util/logging_spec.rb +114 -252
- data/spec/unit/util/metric_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +12 -24
- data/spec/unit/util/multi_match_spec.rb +1 -0
- data/spec/unit/util/network_device/config_spec.rb +1 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
- data/spec/unit/util/network_device_spec.rb +9 -7
- data/spec/unit/util/package_spec.rb +1 -0
- data/spec/unit/util/pidlock_spec.rb +14 -86
- data/spec/unit/util/plist_spec.rb +33 -60
- data/spec/unit/util/posix_spec.rb +47 -78
- data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
- data/spec/unit/util/rdoc_spec.rb +10 -9
- data/spec/unit/util/reference_spec.rb +1 -0
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +8 -7
- data/spec/unit/util/rubygems_spec.rb +7 -41
- data/spec/unit/util/run_mode_spec.rb +11 -10
- data/spec/unit/util/selinux_spec.rb +73 -84
- data/spec/unit/util/splayer_spec.rb +9 -8
- data/spec/unit/util/ssl_spec.rb +1 -0
- data/spec/unit/util/storage_spec.rb +17 -111
- data/spec/unit/util/suidmanager_spec.rb +58 -47
- data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
- data/spec/unit/util/tag_set_spec.rb +9 -1
- data/spec/unit/util/tagging_spec.rb +12 -0
- data/spec/unit/util/terminal_spec.rb +10 -9
- data/spec/unit/util/user_attr_spec.rb +2 -1
- data/spec/unit/util/warnings_spec.rb +4 -3
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +21 -51
- data/spec/unit/util/windows/access_control_entry_spec.rb +2 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +2 -1
- data/spec/unit/util/windows/adsi_spec.rb +134 -278
- data/spec/unit/util/windows/api_types_spec.rb +42 -105
- data/spec/unit/util/windows/eventlog_spec.rb +13 -10
- data/spec/unit/util/windows/file_spec.rb +1 -0
- data/spec/unit/util/windows/root_certs_spec.rb +1 -0
- data/spec/unit/util/windows/security_descriptor_spec.rb +3 -1
- data/spec/unit/util/windows/service_spec.rb +180 -432
- data/spec/unit/util/windows/sid_spec.rb +17 -15
- data/spec/unit/util/windows/string_spec.rb +2 -1
- data/spec/unit/util/yaml_spec.rb +162 -28
- data/spec/unit/util_spec.rb +74 -119
- data/spec/unit/version_spec.rb +6 -6
- data/tasks/benchmark.rake +5 -1
- data/tasks/ci.rake +0 -5
- data/tasks/manpages.rake +9 -2
- data/tasks/parser.rake +11 -3
- metadata +162 -479
- data/CODEOWNERS +0 -30
- data/ext/rack/config.ru +0 -44
- data/ext/rack/example-passenger-vhost.conf +0 -57
- data/lib/puppet/application/ca.rb +0 -11
- data/lib/puppet/application/certificate.rb +0 -17
- data/lib/puppet/application/certificate_request.rb +0 -7
- data/lib/puppet/application/certificate_revocation_list.rb +0 -7
- data/lib/puppet/application/master.rb +0 -319
- data/lib/puppet/confine/boolean.rb +0 -45
- data/lib/puppet/external/nagios.rb +0 -46
- data/lib/puppet/external/nagios/base.rb +0 -472
- data/lib/puppet/external/nagios/grammar.ry +0 -248
- data/lib/puppet/external/nagios/makefile +0 -9
- data/lib/puppet/external/nagios/parser.rb +0 -400
- data/lib/puppet/face/ca.rb +0 -266
- data/lib/puppet/face/certificate.rb +0 -167
- data/lib/puppet/face/certificate_request.rb +0 -56
- data/lib/puppet/face/certificate_revocation_list.rb +0 -56
- data/lib/puppet/feature/rack.rb +0 -19
- data/lib/puppet/graph/random_prioritizer.rb +0 -16
- data/lib/puppet/graph/title_hash_prioritizer.rb +0 -16
- data/lib/puppet/indirector/certificate/ca.rb +0 -9
- data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_request/ca.rb +0 -22
- data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +0 -8
- data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +0 -8
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +0 -22
- data/lib/puppet/indirector/certificate_status.rb +0 -4
- data/lib/puppet/indirector/certificate_status/file.rb +0 -91
- data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
- data/lib/puppet/indirector/key/ca.rb +0 -16
- data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/ldap.rb +0 -86
- data/lib/puppet/indirector/node/ldap.rb +0 -275
- data/lib/puppet/indirector/node/write_only_yaml.rb +0 -39
- data/lib/puppet/module_tool/applications/builder.rb +0 -152
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
- data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
- data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
- data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +0 -1
- data/lib/puppet/network/http/api/ca.rb +0 -2
- data/lib/puppet/network/http/api/ca/v1.rb +0 -11
- data/lib/puppet/network/http/rack.rb +0 -33
- data/lib/puppet/network/http/rack/rest.rb +0 -162
- data/lib/puppet/network/http/webrick.rb +0 -124
- data/lib/puppet/network/http/webrick/rest.rb +0 -114
- data/lib/puppet/network/server.rb +0 -39
- data/lib/puppet/provider/augeas/augeas.rb +0 -767
- data/lib/puppet/provider/cisco.rb +0 -9
- data/lib/puppet/provider/computer/computer.rb +0 -20
- data/lib/puppet/provider/cron/crontab.rb +0 -297
- data/lib/puppet/provider/host/parsed.rb +0 -46
- data/lib/puppet/provider/interface/cisco.rb +0 -27
- data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -298
- data/lib/puppet/provider/mailalias/aliases.rb +0 -50
- data/lib/puppet/provider/maillist/mailman.rb +0 -108
- data/lib/puppet/provider/mcx/mcxcontent.rb +0 -173
- data/lib/puppet/provider/mount.rb +0 -76
- data/lib/puppet/provider/mount/parsed.rb +0 -285
- data/lib/puppet/provider/naginator.rb +0 -63
- data/lib/puppet/provider/package/dnfmodule.rb +0 -141
- data/lib/puppet/provider/package_targetable.rb +0 -69
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +0 -590
- data/lib/puppet/provider/selboolean/getsetsebool.rb +0 -47
- data/lib/puppet/provider/selmodule/semodule.rb +0 -157
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +0 -105
- data/lib/puppet/provider/sshkey/parsed.rb +0 -50
- data/lib/puppet/provider/vlan/cisco.rb +0 -28
- data/lib/puppet/provider/yumrepo/inifile.rb +0 -315
- data/lib/puppet/provider/zfs/zfs.rb +0 -108
- data/lib/puppet/provider/zone/solaris.rb +0 -364
- data/lib/puppet/provider/zpool/zpool.rb +0 -125
- data/lib/puppet/ssl/certificate_authority.rb +0 -554
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +0 -45
- data/lib/puppet/ssl/certificate_authority/interface.rb +0 -324
- data/lib/puppet/ssl/certificate_revocation_list.rb +0 -111
- data/lib/puppet/ssl/configuration.rb +0 -61
- data/lib/puppet/ssl/inventory.rb +0 -55
- data/lib/puppet/type/augeas.rb +0 -211
- data/lib/puppet/type/computer.rb +0 -66
- data/lib/puppet/type/cron.rb +0 -480
- data/lib/puppet/type/host.rb +0 -95
- data/lib/puppet/type/interface.rb +0 -121
- data/lib/puppet/type/k5login.rb +0 -165
- data/lib/puppet/type/macauthorization.rb +0 -167
- data/lib/puppet/type/mailalias.rb +0 -46
- data/lib/puppet/type/maillist.rb +0 -62
- data/lib/puppet/type/mcx.rb +0 -98
- data/lib/puppet/type/mount.rb +0 -314
- data/lib/puppet/type/nagios_command.rb +0 -3
- data/lib/puppet/type/nagios_contact.rb +0 -3
- data/lib/puppet/type/nagios_contactgroup.rb +0 -3
- data/lib/puppet/type/nagios_host.rb +0 -3
- data/lib/puppet/type/nagios_hostdependency.rb +0 -3
- data/lib/puppet/type/nagios_hostescalation.rb +0 -3
- data/lib/puppet/type/nagios_hostextinfo.rb +0 -3
- data/lib/puppet/type/nagios_hostgroup.rb +0 -3
- data/lib/puppet/type/nagios_service.rb +0 -3
- data/lib/puppet/type/nagios_servicedependency.rb +0 -3
- data/lib/puppet/type/nagios_serviceescalation.rb +0 -3
- data/lib/puppet/type/nagios_serviceextinfo.rb +0 -3
- data/lib/puppet/type/nagios_servicegroup.rb +0 -3
- data/lib/puppet/type/nagios_timeperiod.rb +0 -3
- data/lib/puppet/type/router.rb +0 -17
- data/lib/puppet/type/scheduled_task.rb +0 -183
- data/lib/puppet/type/selboolean.rb +0 -40
- data/lib/puppet/type/selmodule.rb +0 -58
- data/lib/puppet/type/ssh_authorized_key.rb +0 -143
- data/lib/puppet/type/sshkey.rb +0 -83
- data/lib/puppet/type/vlan.rb +0 -26
- data/lib/puppet/type/yumrepo.rb +0 -430
- data/lib/puppet/type/zfs.rb +0 -154
- data/lib/puppet/type/zone.rb +0 -382
- data/lib/puppet/type/zpool.rb +0 -91
- data/lib/puppet/util/methodhelper.rb +0 -32
- data/lib/puppet/util/nagios_maker.rb +0 -85
- data/lib/puppet/util/network_device/cisco.rb +0 -4
- data/lib/puppet/util/network_device/cisco/device.rb +0 -285
- data/lib/puppet/util/network_device/cisco/facts.rb +0 -72
- data/lib/puppet/util/network_device/cisco/interface.rb +0 -94
- data/lib/puppet/util/network_device/ipcalc.rb +0 -68
- data/lib/puppet/util/network_device/transport/ssh.rb +0 -126
- data/lib/puppet/util/network_device/transport/telnet.rb +0 -47
- data/lib/puppet/util/windows/taskscheduler.rb +0 -1267
- data/lib/puppet/vendor/load_semantic.rb +0 -1
- data/lib/puppet/vendor/load_semantic_puppet.rb +0 -1
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -5
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +0 -11
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +0 -181
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +0 -60
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +0 -117
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +0 -58
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +0 -25
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +0 -31
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +0 -3
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +0 -203
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +0 -758
- data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +0 -21
- data/man/man8/puppet-ca.8 +0 -196
- data/man/man8/puppet-cert.8 +0 -118
- data/man/man8/puppet-certificate.8 +0 -240
- data/man/man8/puppet-certificate_request.8 +0 -161
- data/man/man8/puppet-certificate_revocation_list.8 +0 -139
- data/man/man8/puppet-master.8 +0 -85
- data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +0 -19
- data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +0 -18
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +0 -15
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +0 -4
- data/spec/fixtures/integration/provider/cron/crontab/modify_entry +0 -13
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +0 -15
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +0 -6
- data/spec/fixtures/integration/provider/cron/crontab/purged +0 -8
- data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +0 -12
- data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +0 -14
- data/spec/fixtures/integration/provider/cron/crontab/unspecialized +0 -15
- data/spec/fixtures/integration/provider/mailalias/aliases/test1 +0 -32
- data/spec/fixtures/integration/provider/sshkey/sample +0 -21
- data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +0 -13
- data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +0 -10
- data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +0 -6
- data/spec/fixtures/unit/provider/augeas/augeas/etc/test +0 -3
- data/spec/fixtures/unit/provider/augeas/augeas/test.aug +0 -13
- data/spec/fixtures/unit/provider/host/parsed/valid_hosts +0 -19
- data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +0 -7
- data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +0 -152
- data/spec/fixtures/unit/provider/mount/parsed/aix.mount +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +0 -6
- data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +0 -9
- data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -4
- data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
- data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -12
- data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -6
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -10
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -9
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -5
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -5
- data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +0 -6
- data/spec/fixtures/unit/provider/naginator/define_empty_param +0 -6
- data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +0 -19
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +0 -9
- data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
- data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +0 -7
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +0 -3
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +0 -1
- data/spec/fixtures/unit/provider/sshkey/parsed/sample +0 -21
- data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +0 -8
- data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +0 -2
- data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +0 -2
- data/spec/integration/faces/ca_spec.rb +0 -353
- data/spec/integration/indirector/node/ldap_spec.rb +0 -13
- data/spec/integration/network/http_pool_spec.rb +0 -120
- data/spec/integration/provider/cron/crontab_spec.rb +0 -240
- data/spec/integration/provider/file/windows_spec.rb +0 -162
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -9
- data/spec/integration/provider/mount_spec.rb +0 -163
- data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -217
- data/spec/integration/provider/sshkey_spec.rb +0 -153
- data/spec/integration/provider/yumrepo_spec.rb +0 -126
- data/spec/integration/ssl/autosign_spec.rb +0 -145
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -161
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -33
- data/spec/integration/transaction_spec.rb +0 -553
- data/spec/integration/type/nagios_spec.rb +0 -69
- data/spec/integration/type/notify_spec.rb +0 -46
- data/spec/integration/type/user_spec.rb +0 -63
- data/spec/lib/puppet_spec/https.rb +0 -166
- data/spec/unit/application/cert_spec.rb +0 -272
- data/spec/unit/application/certificate_spec.rb +0 -21
- data/spec/unit/application/master_spec.rb +0 -414
- data/spec/unit/face/ca_spec.rb +0 -9
- data/spec/unit/face/certificate_request_spec.rb +0 -9
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -9
- data/spec/unit/face/certificate_spec.rb +0 -228
- data/spec/unit/face/module/build_spec.rb +0 -69
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -50
- data/spec/unit/indirector/certificate/ca_spec.rb +0 -21
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -32
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -56
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -32
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -15
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -32
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -16
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -33
- data/spec/unit/indirector/certificate_status/file_spec.rb +0 -190
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -17
- data/spec/unit/indirector/code_spec.rb +0 -30
- data/spec/unit/indirector/key/ca_spec.rb +0 -22
- data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -32
- data/spec/unit/indirector/ldap_spec.rb +0 -151
- data/spec/unit/indirector/node/ldap_spec.rb +0 -463
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -11
- data/spec/unit/module_tool/applications/builder_spec.rb +0 -439
- data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
- data/spec/unit/network/http/rack/rest_spec.rb +0 -322
- data/spec/unit/network/http/rack_spec.rb +0 -42
- data/spec/unit/network/http/webrick/rest_spec.rb +0 -230
- data/spec/unit/network/http/webrick_spec.rb +0 -277
- data/spec/unit/network/server_spec.rb +0 -94
- data/spec/unit/provider/augeas/augeas_spec.rb +0 -1096
- data/spec/unit/provider/cisco_spec.rb +0 -14
- data/spec/unit/provider/cron/crontab_spec.rb +0 -206
- data/spec/unit/provider/cron/parsed_spec.rb +0 -355
- data/spec/unit/provider/host/parsed_spec.rb +0 -219
- data/spec/unit/provider/interface/cisco_spec.rb +0 -53
- data/spec/unit/provider/macauthorization_spec.rb +0 -134
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -190
- data/spec/unit/provider/mount/parsed_spec.rb +0 -318
- data/spec/unit/provider/mount_spec.rb +0 -169
- data/spec/unit/provider/naginator_spec.rb +0 -78
- data/spec/unit/provider/network_device_spec.rb +0 -152
- data/spec/unit/provider/package/dnfmodule_spec.rb +0 -247
- data/spec/unit/provider/package_targetable_spec.rb +0 -60
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2050
- data/spec/unit/provider/selboolean_spec.rb +0 -34
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule_spec.rb +0 -154
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -259
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -92
- data/spec/unit/provider/vlan/cisco_spec.rb +0 -53
- data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -413
- data/spec/unit/provider/zfs/zfs_spec.rb +0 -171
- data/spec/unit/provider/zone/solaris_spec.rb +0 -261
- data/spec/unit/provider/zpool/zpool_spec.rb +0 -250
- data/spec/unit/settings/server_list_setting_spec.rb +0 -21
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -29
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -563
- data/spec/unit/ssl/certificate_authority_spec.rb +0 -1165
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
- data/spec/unit/ssl/configuration_spec.rb +0 -138
- data/spec/unit/ssl/inventory_spec.rb +0 -155
- data/spec/unit/test/test_helper_spec.rb +0 -17
- data/spec/unit/type/augeas_spec.rb +0 -120
- data/spec/unit/type/computer_spec.rb +0 -77
- data/spec/unit/type/cron_spec.rb +0 -539
- data/spec/unit/type/host_spec.rb +0 -680
- data/spec/unit/type/interface_spec.rb +0 -128
- data/spec/unit/type/k5login_spec.rb +0 -204
- data/spec/unit/type/macauthorization_spec.rb +0 -111
- data/spec/unit/type/mailalias_spec.rb +0 -48
- data/spec/unit/type/maillist_spec.rb +0 -38
- data/spec/unit/type/mcx_spec.rb +0 -75
- data/spec/unit/type/mount_spec.rb +0 -622
- data/spec/unit/type/nagios_spec.rb +0 -312
- data/spec/unit/type/scheduled_task_spec.rb +0 -117
- data/spec/unit/type/selboolean_spec.rb +0 -41
- data/spec/unit/type/selmodule_spec.rb +0 -16
- data/spec/unit/type/ssh_authorized_key_spec.rb +0 -228
- data/spec/unit/type/sshkey_spec.rb +0 -75
- data/spec/unit/type/vlan_spec.rb +0 -42
- data/spec/unit/type/yumrepo_spec.rb +0 -476
- data/spec/unit/type/zfs_spec.rb +0 -45
- data/spec/unit/type/zone_spec.rb +0 -182
- data/spec/unit/type/zpool_spec.rb +0 -108
- data/spec/unit/util/nagios_maker_spec.rb +0 -121
- data/spec/unit/util/network_device/cisco/device_spec.rb +0 -491
- data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -63
- data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -97
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -61
- data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -252
- data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -90
@@ -1,3 +1,4 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'puppet_spec/compiler'
|
3
4
|
|
@@ -8,18 +9,17 @@ describe 'Capability types' do
|
|
8
9
|
let(:loaders) { Puppet::Pops::Loaders.new(env) }
|
9
10
|
|
10
11
|
before(:each) do
|
11
|
-
|
12
|
+
Puppet::Parser::Compiler.any_instance.stubs(:loaders).returns(loaders)
|
13
|
+
Puppet.push_context({:loaders => loaders, :current_environment => env})
|
14
|
+
Puppet::Type.newtype :cap, :is_capability => true do
|
15
|
+
newparam :name
|
16
|
+
newparam :host
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
|
-
|
15
|
-
Puppet.
|
16
|
-
|
17
|
-
newparam :name
|
18
|
-
newparam :host
|
19
|
-
end
|
20
|
-
example.run
|
21
|
-
Puppet::Type.rmtype(:cap)
|
22
|
-
end
|
20
|
+
after(:each) do
|
21
|
+
Puppet::Type.rmtype(:cap)
|
22
|
+
Puppet.pop_context()
|
23
23
|
end
|
24
24
|
|
25
25
|
context 'annotations' do
|
@@ -86,7 +86,7 @@ describe 'Capability types' do
|
|
86
86
|
parse_results << parser.parse
|
87
87
|
|
88
88
|
main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
|
89
|
-
|
89
|
+
Puppet::Node::Environment.any_instance.stubs(:perform_initial_import).returns main
|
90
90
|
|
91
91
|
type = compile_to_catalog(nil).environment_instance.known_resource_types.definition(:test)
|
92
92
|
expect(type.produces).to be_instance_of(Array)
|
@@ -120,7 +120,7 @@ describe 'Capability types' do
|
|
120
120
|
parse_results << parser.parse
|
121
121
|
|
122
122
|
main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
|
123
|
-
|
123
|
+
Puppet::Node::Environment.any_instance.stubs(:perform_initial_import).returns main
|
124
124
|
|
125
125
|
type = compile_to_catalog(nil).environment_instance.known_resource_types.definition('Mod::Test')
|
126
126
|
expect(type.produces).to be_instance_of(Array)
|
@@ -131,7 +131,6 @@ describe 'Capability types' do
|
|
131
131
|
expect(cns[:mappings]).to be_instance_of(Hash)
|
132
132
|
expect(cns[:mappings]['host']).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
|
133
133
|
end
|
134
|
-
|
135
134
|
it "does not allow operator '+>' in a mapping" do
|
136
135
|
expect do
|
137
136
|
compile_to_catalog(<<-MANIFEST, node)
|
@@ -257,12 +256,12 @@ test { one: hostname => "ahost", export => Cap[two] }
|
|
257
256
|
def mock_cap_finding
|
258
257
|
cap = Puppet::Resource.new("Cap", "two")
|
259
258
|
cap["host"] = "ahost"
|
260
|
-
|
259
|
+
Puppet::Resource::CapabilityFinder.expects(:find).returns(cap)
|
261
260
|
cap
|
262
261
|
end
|
263
262
|
|
264
263
|
it "does not fetch a consumed resource when consume metaparam not set" do
|
265
|
-
|
264
|
+
Puppet::Resource::CapabilityFinder.expects(:find).never
|
266
265
|
catalog = make_catalog("test { one: }")
|
267
266
|
expect(catalog.resource_keys.find { |type, _| type == "Cap" }).to be_nil
|
268
267
|
expect(catalog.resource("Test", "one")["hostname"]).to eq("nohost")
|
@@ -394,7 +393,7 @@ test { one: hostname => "ahost", export => Cap[two] }
|
|
394
393
|
end
|
395
394
|
|
396
395
|
context 'and aliased resources' do
|
397
|
-
let(:drive) { Puppet.
|
396
|
+
let(:drive) { Puppet::Util::Platform.windows? ? 'C:' : '' }
|
398
397
|
let(:code) { <<-PUPPET }
|
399
398
|
$dir='#{drive}/tmp/test'
|
400
399
|
$same_dir='#{drive}/tmp/test/'
|
@@ -1,8 +1,10 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
3
|
+
require 'puppet/test_ca'
|
2
4
|
|
3
|
-
require 'puppet/
|
5
|
+
require 'puppet/certificate_factory'
|
4
6
|
|
5
|
-
describe Puppet::
|
7
|
+
describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
|
6
8
|
let :serial do OpenSSL::BN.new('12') end
|
7
9
|
let :name do "example.local" end
|
8
10
|
let :x509_name do OpenSSL::X509::Name.new([['CN', name]]) end
|
@@ -12,17 +14,15 @@ describe Puppet::SSL::CertificateFactory do
|
|
12
14
|
csr.generate(key)
|
13
15
|
csr
|
14
16
|
end
|
15
|
-
let
|
16
|
-
cert = Puppet::SSL::CertificateAuthority.new
|
17
|
-
cert.generate_ca_certificate
|
18
|
-
cert.host.certificate.content
|
19
|
-
end
|
17
|
+
let(:issuer) { Puppet::TestCa.new.ca_cert }
|
20
18
|
|
21
19
|
describe "when generating the certificate" do
|
22
20
|
it "should return a new X509 certificate" do
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
a = subject.build(:server, csr, issuer, serial)
|
22
|
+
b = subject.build(:server, csr, issuer, serial)
|
23
|
+
# The two instances are equal in every aspect except that they are
|
24
|
+
# different instances - they are `==`, but not hash `eql?`
|
25
|
+
expect(a).not_to eql(b)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should set the certificate's version to 2" do
|
@@ -55,14 +55,6 @@ describe Puppet::SSL::CertificateFactory do
|
|
55
55
|
expect(cert.not_before).to be_within(30).of(Time.now - 24*60*60)
|
56
56
|
end
|
57
57
|
|
58
|
-
it "should set the default TTL of the certificate to the `ca_ttl` setting" do
|
59
|
-
Puppet[:ca_ttl] = 12
|
60
|
-
now = Time.now.utc
|
61
|
-
expect(Time).to receive(:now).at_least(:once).and_return(now)
|
62
|
-
cert = subject.build(:server, csr, issuer, serial)
|
63
|
-
expect(cert.not_after.to_i).to eq(now.to_i + 12)
|
64
|
-
end
|
65
|
-
|
66
58
|
it "should not allow a non-integer TTL" do
|
67
59
|
[ 'foo', 1.2, Time.now, true ].each do |ttl|
|
68
60
|
expect { subject.build(:server, csr, issuer, serial, ttl) }.to raise_error(ArgumentError)
|
@@ -71,7 +63,7 @@ describe Puppet::SSL::CertificateFactory do
|
|
71
63
|
|
72
64
|
it "should respect a custom TTL for the CA" do
|
73
65
|
now = Time.now.utc
|
74
|
-
|
66
|
+
Time.expects(:now).at_least_once.returns(now)
|
75
67
|
cert = subject.build(:server, csr, issuer, serial, 12)
|
76
68
|
expect(cert.not_after.to_i).to eq(now.to_i + 12)
|
77
69
|
end
|
@@ -95,6 +87,7 @@ describe Puppet::SSL::CertificateFactory do
|
|
95
87
|
)
|
96
88
|
end
|
97
89
|
|
90
|
+
|
98
91
|
it "should add an extension for the authorityKeyIdentifer" do
|
99
92
|
cert = subject.build(:server, csr, issuer, serial)
|
100
93
|
ef = OpenSSL::X509::ExtensionFactory.new(issuer, cert)
|
@@ -138,7 +131,7 @@ describe Puppet::SSL::CertificateFactory do
|
|
138
131
|
csr = Puppet::SSL::CertificateRequest.new(name)
|
139
132
|
csr.generate(key)
|
140
133
|
|
141
|
-
|
134
|
+
csr.stubs(:request_extensions).returns([
|
142
135
|
{'oid' => '1.3.6.1.4.1.34380.1.2.1', 'value' => 'some-value'},
|
143
136
|
{'oid' => 'pp_uuid', 'value' => 'some-uuid'},
|
144
137
|
])
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
require 'puppet/configurer/downloader'
|
@@ -89,21 +90,21 @@ describe Puppet::Configurer::Downloader do
|
|
89
90
|
end
|
90
91
|
|
91
92
|
it "should always set the owner to the current UID" do
|
92
|
-
|
93
|
+
Process.expects(:uid).returns 51
|
93
94
|
|
94
95
|
file = generate_file_resource(:path => '/path')
|
95
96
|
expect(file[:owner]).to eq(51)
|
96
97
|
end
|
97
98
|
|
98
99
|
it "should always set the group to the current GID" do
|
99
|
-
|
100
|
+
Process.expects(:gid).returns 61
|
100
101
|
|
101
102
|
file = generate_file_resource(:path => '/path')
|
102
103
|
expect(file[:group]).to eq(61)
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
106
|
-
describe "on Windows", :if => Puppet.
|
107
|
+
describe "on Windows", :if => Puppet::Util::Platform.windows? do
|
107
108
|
it "should omit the owner" do
|
108
109
|
file = generate_file_resource(:path => 'C:/path')
|
109
110
|
|
@@ -160,7 +161,7 @@ describe Puppet::Configurer::Downloader do
|
|
160
161
|
end
|
161
162
|
|
162
163
|
it "should not issue a deprecation warning for source_permissions" do
|
163
|
-
|
164
|
+
Puppet.expects(:puppet_deprecation_warning).never
|
164
165
|
catalog = @dler.catalog
|
165
166
|
expect(catalog.resources.size).to eq(1) # Must consume catalog to fix warnings
|
166
167
|
end
|
@@ -183,37 +184,37 @@ describe Puppet::Configurer::Downloader do
|
|
183
184
|
end
|
184
185
|
|
185
186
|
it "should log that it is downloading" do
|
186
|
-
|
187
|
+
Puppet.expects(:info)
|
187
188
|
|
188
189
|
@dler.evaluate
|
189
190
|
end
|
190
191
|
|
191
192
|
it "should return all changed file paths" do
|
192
|
-
trans =
|
193
|
+
trans = mock 'transaction'
|
193
194
|
|
194
|
-
catalog =
|
195
|
-
|
196
|
-
|
195
|
+
catalog = mock 'catalog'
|
196
|
+
@dler.expects(:catalog).returns(catalog)
|
197
|
+
catalog.expects(:apply).yields(trans)
|
197
198
|
|
198
|
-
resource =
|
199
|
-
|
199
|
+
resource = mock 'resource'
|
200
|
+
resource.expects(:[]).with(:path).returns "/changed/file"
|
200
201
|
|
201
|
-
|
202
|
+
trans.expects(:changed?).returns([resource])
|
202
203
|
|
203
204
|
expect(@dler.evaluate).to eq(%w{/changed/file})
|
204
205
|
end
|
205
206
|
|
206
207
|
it "should yield the resources if a block is given" do
|
207
|
-
trans =
|
208
|
+
trans = mock 'transaction'
|
208
209
|
|
209
|
-
catalog =
|
210
|
-
|
211
|
-
|
210
|
+
catalog = mock 'catalog'
|
211
|
+
@dler.expects(:catalog).returns(catalog)
|
212
|
+
catalog.expects(:apply).yields(trans)
|
212
213
|
|
213
|
-
resource =
|
214
|
-
|
214
|
+
resource = mock 'resource'
|
215
|
+
resource.expects(:[]).with(:path).returns "/changed/file"
|
215
216
|
|
216
|
-
|
217
|
+
trans.expects(:changed?).returns([resource])
|
217
218
|
|
218
219
|
yielded = nil
|
219
220
|
@dler.evaluate { |r| yielded = r }
|
@@ -221,22 +222,12 @@ describe Puppet::Configurer::Downloader do
|
|
221
222
|
end
|
222
223
|
|
223
224
|
it "should catch and log exceptions" do
|
224
|
-
|
225
|
+
Puppet.expects(:err)
|
225
226
|
# The downloader creates a new catalog for each apply, and really the only object
|
226
227
|
# that it is possible to stub for the purpose of generating a puppet error
|
227
|
-
|
228
|
+
Puppet::Resource::Catalog.any_instance.stubs(:apply).raises(Puppet::Error, "testing")
|
228
229
|
|
229
230
|
expect { @dler.evaluate }.not_to raise_error
|
230
231
|
end
|
231
|
-
|
232
|
-
it "raises an exception if catalog application fails" do
|
233
|
-
Puppet[:ignore_plugin_errors] = false
|
234
|
-
|
235
|
-
expect(@dler.file).to receive(:retrieve).and_raise(Puppet::Error, "testing")
|
236
|
-
|
237
|
-
expect {
|
238
|
-
@dler.evaluate
|
239
|
-
}.to raise_error(Puppet::Error, /testing/)
|
240
|
-
end
|
241
232
|
end
|
242
233
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'puppet/configurer'
|
3
4
|
require 'puppet/configurer/fact_handler'
|
@@ -22,6 +23,10 @@ describe Puppet::Configurer::FactHandler do
|
|
22
23
|
|
23
24
|
let(:facthandler) { FactHandlerTester.new('production') }
|
24
25
|
|
26
|
+
before :each do
|
27
|
+
Puppet::Node::Facts.indirection.terminus_class = :memory
|
28
|
+
end
|
29
|
+
|
25
30
|
describe "when finding facts" do
|
26
31
|
it "should use the node name value to retrieve the facts" do
|
27
32
|
foo_facts = Puppet::Node::Facts.new('foo')
|
@@ -53,13 +58,13 @@ describe Puppet::Configurer::FactHandler do
|
|
53
58
|
end
|
54
59
|
|
55
60
|
it "should fail if finding facts fails" do
|
56
|
-
|
61
|
+
Puppet::Node::Facts.indirection.expects(:find).raises RuntimeError
|
57
62
|
|
58
63
|
expect { facthandler.find_facts }.to raise_error(Puppet::Error, /Could not retrieve local facts/)
|
59
64
|
end
|
60
65
|
|
61
66
|
it "should only load fact plugins once" do
|
62
|
-
|
67
|
+
Puppet::Node::Facts.indirection.expects(:find).once
|
63
68
|
facthandler.find_facts
|
64
69
|
end
|
65
70
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'puppet/configurer'
|
3
4
|
require 'puppet/configurer/plugin_handler'
|
@@ -10,35 +11,21 @@ describe Puppet::Configurer::PluginHandler do
|
|
10
11
|
before :each do
|
11
12
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
12
13
|
# this mock is to make sure that we don't silently ignore errors
|
13
|
-
|
14
|
+
Puppet.expects(:err).never
|
14
15
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
15
16
|
Puppet.push_context({:server_agent_version => "5.3.4"})
|
16
17
|
end
|
17
18
|
|
18
19
|
it "downloads plugins, facts, and locales" do
|
19
|
-
|
20
|
-
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
|
20
|
+
Puppet::Configurer::Downloader.any_instance.expects(:evaluate).times(3).returns([])
|
21
21
|
|
22
22
|
pluginhandler.download_plugins(environment)
|
23
|
-
expect(times_called).to eq(3)
|
24
23
|
end
|
25
24
|
|
26
25
|
it "returns downloaded plugin, fact, and locale filenames" do
|
27
|
-
|
28
|
-
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
29
|
-
times_called += 1
|
30
|
-
|
31
|
-
if times_called == 1
|
32
|
-
%w[/a]
|
33
|
-
elsif times_called == 2
|
34
|
-
%w[/b]
|
35
|
-
else
|
36
|
-
%w[/c]
|
37
|
-
end
|
38
|
-
end
|
26
|
+
Puppet::Configurer::Downloader.any_instance.expects(:evaluate).times(3).returns(%w[/a]).then.returns(%w[/b]).then.returns(%w[/c])
|
39
27
|
|
40
28
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
|
41
|
-
expect(times_called).to eq(3)
|
42
29
|
end
|
43
30
|
end
|
44
31
|
|
@@ -46,25 +33,15 @@ describe Puppet::Configurer::PluginHandler do
|
|
46
33
|
before :each do
|
47
34
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
48
35
|
# this mock is to make sure that we don't silently ignore errors
|
49
|
-
|
36
|
+
Puppet.expects(:err).never
|
50
37
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
51
38
|
Puppet.push_context({:server_agent_version => "5.3.3"})
|
52
39
|
end
|
53
40
|
|
54
41
|
it "returns downloaded plugin, fact, but not locale filenames" do
|
55
|
-
|
56
|
-
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
57
|
-
times_called += 1
|
58
|
-
|
59
|
-
if times_called == 1
|
60
|
-
%w[/a]
|
61
|
-
else
|
62
|
-
%w[/b]
|
63
|
-
end
|
64
|
-
end
|
42
|
+
Puppet::Configurer::Downloader.any_instance.expects(:evaluate).times(2).returns(%w[/a]).then.returns(%w[/b])
|
65
43
|
|
66
44
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
|
67
|
-
expect(times_called).to eq(2)
|
68
45
|
end
|
69
46
|
end
|
70
47
|
|
@@ -72,26 +49,16 @@ describe Puppet::Configurer::PluginHandler do
|
|
72
49
|
before :each do
|
73
50
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
74
51
|
# this mock is to make sure that we don't silently ignore errors
|
75
|
-
|
52
|
+
Puppet.expects(:err).never
|
76
53
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
77
54
|
# A blank version will default to 0.0
|
78
55
|
Puppet.push_context({:server_agent_version => ""})
|
79
56
|
end
|
80
57
|
|
81
58
|
it "returns downloaded plugin, fact, but not locale filenames" do
|
82
|
-
|
83
|
-
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
84
|
-
times_called += 1
|
85
|
-
|
86
|
-
if times_called == 1
|
87
|
-
%w[/a]
|
88
|
-
else
|
89
|
-
%w[/b]
|
90
|
-
end
|
91
|
-
end
|
59
|
+
Puppet::Configurer::Downloader.any_instance.expects(:evaluate).times(2).returns(%w[/a]).then.returns(%w[/b])
|
92
60
|
|
93
61
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
|
94
|
-
expect(times_called).to eq(2)
|
95
62
|
end
|
96
63
|
end
|
97
64
|
end
|
@@ -1,325 +1,367 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'puppet/configurer'
|
3
|
-
require 'webmock/rspec'
|
4
4
|
|
5
5
|
describe Puppet::Configurer do
|
6
6
|
before do
|
7
|
+
Puppet.settings.stubs(:use).returns(true)
|
8
|
+
@agent = Puppet::Configurer.new
|
9
|
+
@agent.stubs(:init_storage)
|
10
|
+
Puppet::Util::Storage.stubs(:store)
|
7
11
|
Puppet[:server] = "puppetmaster"
|
8
12
|
Puppet[:report] = true
|
9
|
-
|
10
|
-
catalog.add_resource(resource)
|
11
|
-
|
12
|
-
allow(Puppet::SSL::Host).to receive(:localhost).and_return(double('host'))
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
let(:resource) { Puppet::Resource.new(:notice, 'a') }
|
19
|
-
let(:facts) { Puppet::Node::Facts.new(Puppet[:node_name_value]) }
|
15
|
+
it "should include the Fact Handler module" do
|
16
|
+
expect(Puppet::Configurer.ancestors).to be_include(Puppet::Configurer::FactHandler)
|
17
|
+
end
|
20
18
|
|
21
19
|
describe "when executing a pre-run hook" do
|
22
20
|
it "should do nothing if the hook is set to an empty string" do
|
23
21
|
Puppet.settings[:prerun_command] = ""
|
24
|
-
|
22
|
+
Puppet::Util.expects(:exec).never
|
25
23
|
|
26
|
-
|
24
|
+
@agent.execute_prerun_command
|
27
25
|
end
|
28
26
|
|
29
27
|
it "should execute any pre-run command provided via the 'prerun_command' setting" do
|
30
28
|
Puppet.settings[:prerun_command] = "/my/command"
|
31
|
-
|
29
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
32
30
|
|
33
|
-
|
31
|
+
@agent.execute_prerun_command
|
34
32
|
end
|
35
33
|
|
36
34
|
it "should fail if the command fails" do
|
37
35
|
Puppet.settings[:prerun_command] = "/my/command"
|
38
|
-
|
36
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
39
37
|
|
40
|
-
expect(
|
38
|
+
expect(@agent.execute_prerun_command).to be_falsey
|
41
39
|
end
|
42
40
|
end
|
43
41
|
|
44
42
|
describe "when executing a post-run hook" do
|
45
43
|
it "should do nothing if the hook is set to an empty string" do
|
46
44
|
Puppet.settings[:postrun_command] = ""
|
47
|
-
|
45
|
+
Puppet::Util.expects(:exec).never
|
48
46
|
|
49
|
-
|
47
|
+
@agent.execute_postrun_command
|
50
48
|
end
|
51
49
|
|
52
50
|
it "should execute any post-run command provided via the 'postrun_command' setting" do
|
53
51
|
Puppet.settings[:postrun_command] = "/my/command"
|
54
|
-
|
52
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
55
53
|
|
56
|
-
|
54
|
+
@agent.execute_postrun_command
|
57
55
|
end
|
58
56
|
|
59
57
|
it "should fail if the command fails" do
|
60
58
|
Puppet.settings[:postrun_command] = "/my/command"
|
61
|
-
|
59
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
62
60
|
|
63
|
-
expect(
|
61
|
+
expect(@agent.execute_postrun_command).to be_falsey
|
64
62
|
end
|
65
63
|
end
|
66
64
|
|
67
65
|
describe "when executing a catalog run" do
|
68
66
|
before do
|
67
|
+
Puppet.settings.stubs(:use).returns(true)
|
68
|
+
@agent.stubs(:download_plugins)
|
69
|
+
Puppet::Node::Facts.indirection.terminus_class = :memory
|
70
|
+
@facts = Puppet::Node::Facts.new(Puppet[:node_name_value])
|
71
|
+
Puppet::Node::Facts.indirection.save(@facts)
|
72
|
+
|
73
|
+
@catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
74
|
+
@catalog.stubs(:to_ral).returns(@catalog)
|
69
75
|
Puppet::Resource::Catalog.indirection.terminus_class = :rest
|
70
|
-
|
76
|
+
Puppet::Resource::Catalog.indirection.stubs(:find).returns(@catalog)
|
77
|
+
@agent.stubs(:send_report)
|
78
|
+
@agent.stubs(:save_last_run_summary)
|
79
|
+
|
80
|
+
Puppet::Util::Log.stubs(:close_all)
|
81
|
+
end
|
82
|
+
|
83
|
+
after :all do
|
84
|
+
Puppet::Node::Facts.indirection.reset_terminus_class
|
85
|
+
Puppet::Resource::Catalog.indirection.reset_terminus_class
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should initialize storage" do
|
89
|
+
Puppet::Util::Storage.expects(:load)
|
90
|
+
@agent.run
|
71
91
|
end
|
72
92
|
|
73
93
|
it "downloads plugins when told" do
|
74
|
-
|
75
|
-
|
94
|
+
@agent.expects(:download_plugins)
|
95
|
+
@agent.run(:pluginsync => true)
|
76
96
|
end
|
77
97
|
|
78
98
|
it "does not download plugins when told" do
|
79
|
-
|
80
|
-
|
99
|
+
@agent.expects(:download_plugins).never
|
100
|
+
@agent.run(:pluginsync => false)
|
81
101
|
end
|
82
102
|
|
83
103
|
it "should carry on when it can't fetch its node definition" do
|
84
104
|
error = Net::HTTPError.new(400, 'dummy server communication error')
|
85
|
-
|
86
|
-
expect(
|
105
|
+
Puppet::Node.indirection.expects(:find).raises(error)
|
106
|
+
expect(@agent.run).to eq(0)
|
87
107
|
end
|
88
108
|
|
89
|
-
it "
|
90
|
-
|
91
|
-
|
92
|
-
# --test implies these, set them so we don't fall back to a cached catalog
|
93
|
-
Puppet[:use_cached_catalog] = false
|
94
|
-
Puppet[:usecacheonfailure] = false
|
95
|
-
|
96
|
-
body = "{\"message\":\"Not Found: Could not find environment 'fasdfad'\",\"issue_kind\":\"RUNTIME_ERROR\"}"
|
97
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas/pluginfacts}).to_return(
|
98
|
-
status: 404, body: body, headers: {'Content-Type' => 'application/json'}
|
99
|
-
)
|
100
|
-
stub_request(:get, %r{/puppet/v3/file_metadata/pluginfacts}).to_return(
|
101
|
-
status: 404, body: body, headers: {'Content-Type' => 'application/json'}
|
102
|
-
)
|
109
|
+
it "applies a cached catalog when it can't connect to the master" do
|
110
|
+
error = Errno::ECONNREFUSED.new('Connection refused - connect(2)')
|
103
111
|
|
104
|
-
|
112
|
+
Puppet::Node.indirection.expects(:find).raises(error)
|
113
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entry(:ignore_cache => true)).raises(error)
|
114
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entry(:ignore_terminus => true)).returns(@catalog)
|
105
115
|
|
106
|
-
expect(@
|
116
|
+
expect(@agent.run).to eq(0)
|
107
117
|
end
|
108
118
|
|
109
|
-
it "
|
110
|
-
|
111
|
-
|
112
|
-
Puppet[:use_cached_catalog] = false
|
113
|
-
Puppet[:usecacheonfailure] = true
|
114
|
-
|
115
|
-
body = "{\"message\":\"Not Found: Could not find environment 'fasdfad'\",\"issue_kind\":\"RUNTIME_ERROR\"}"
|
116
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas/pluginfacts}).to_return(
|
117
|
-
status: 404, body: body, headers: {'Content-Type' => 'application/json'}
|
118
|
-
)
|
119
|
-
stub_request(:get, %r{/puppet/v3/file_metadata/pluginfacts}).to_return(
|
120
|
-
status: 404, body: body, headers: {'Content-Type' => 'application/json'}
|
121
|
-
)
|
119
|
+
it "should initialize a transaction report if one is not provided" do
|
120
|
+
report = Puppet::Transaction::Report.new
|
121
|
+
Puppet::Transaction::Report.expects(:new).returns report
|
122
122
|
|
123
|
-
|
124
|
-
expect(report.cached_catalog_status).to eq('on_failure')
|
123
|
+
@agent.run
|
125
124
|
end
|
126
125
|
|
127
|
-
it "
|
128
|
-
|
126
|
+
it "should respect node_name_fact when setting the host on a report" do
|
127
|
+
Puppet[:node_name_fact] = 'my_name_fact'
|
128
|
+
@facts.values = {'my_name_fact' => 'node_name_from_fact'}
|
129
129
|
|
130
|
-
|
131
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_cache => true)).and_raise(error)
|
132
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_terminus => true)).and_return(catalog)
|
130
|
+
report = Puppet::Transaction::Report.new
|
133
131
|
|
134
|
-
|
132
|
+
@agent.run(:report => report)
|
133
|
+
expect(report.host).to eq('node_name_from_fact')
|
135
134
|
end
|
136
135
|
|
137
|
-
it "should
|
138
|
-
|
139
|
-
|
136
|
+
it "should pass the new report to the catalog" do
|
137
|
+
report = Puppet::Transaction::Report.new
|
138
|
+
Puppet::Transaction::Report.stubs(:new).returns report
|
139
|
+
@catalog.expects(:apply).with{|options| options[:report] == report}
|
140
140
|
|
141
|
-
|
141
|
+
@agent.run
|
142
142
|
end
|
143
143
|
|
144
|
-
it "should
|
145
|
-
|
146
|
-
|
147
|
-
Puppet::Node::Facts.indirection.save(facts)
|
144
|
+
it "should use the provided report if it was passed one" do
|
145
|
+
report = Puppet::Transaction::Report.new
|
146
|
+
@catalog.expects(:apply).with {|options| options[:report] == report}
|
148
147
|
|
149
|
-
|
150
|
-
expect(report.host).to eq('node_name_from_fact')
|
148
|
+
@agent.run(:report => report)
|
151
149
|
end
|
152
150
|
|
153
|
-
it "
|
154
|
-
|
155
|
-
|
151
|
+
it "should set the report as a log destination" do
|
152
|
+
report = Puppet::Transaction::Report.new
|
153
|
+
|
154
|
+
report.expects(:<<).with(instance_of(Puppet::Util::Log)).at_least_once
|
156
155
|
|
157
|
-
|
156
|
+
@agent.run(:report => report)
|
158
157
|
end
|
159
158
|
|
160
|
-
it "
|
161
|
-
|
159
|
+
it "should retrieve the catalog" do
|
160
|
+
@agent.expects(:retrieve_catalog)
|
162
161
|
|
163
|
-
|
162
|
+
@agent.run
|
164
163
|
end
|
165
164
|
|
166
165
|
it "should log a failure and do nothing if no catalog can be retrieved" do
|
167
|
-
|
166
|
+
@agent.expects(:retrieve_catalog).returns nil
|
167
|
+
|
168
|
+
Puppet.expects(:err).with "Could not retrieve catalog; skipping run"
|
169
|
+
|
170
|
+
@agent.run
|
171
|
+
end
|
168
172
|
|
169
|
-
|
173
|
+
it "should apply the catalog with all options to :run" do
|
174
|
+
@agent.expects(:retrieve_catalog).returns @catalog
|
170
175
|
|
171
|
-
|
176
|
+
@catalog.expects(:apply).with { |args| args[:one] == true }
|
177
|
+
@agent.run :one => true
|
172
178
|
end
|
173
179
|
|
174
|
-
it "
|
175
|
-
|
180
|
+
it "should accept a catalog and use it instead of retrieving a different one" do
|
181
|
+
@agent.expects(:retrieve_catalog).never
|
176
182
|
|
177
|
-
|
183
|
+
@catalog.expects(:apply)
|
184
|
+
@agent.run :one => true, :catalog => @catalog
|
178
185
|
end
|
179
186
|
|
180
187
|
it "should benchmark how long it takes to apply the catalog" do
|
181
|
-
|
188
|
+
@agent.expects(:benchmark).with(:notice, instance_of(String))
|
182
189
|
|
183
|
-
|
190
|
+
@agent.expects(:retrieve_catalog).returns @catalog
|
191
|
+
|
192
|
+
@catalog.expects(:apply).never # because we're not yielding
|
193
|
+
@agent.run
|
194
|
+
end
|
195
|
+
|
196
|
+
it "should execute post-run hooks after the run" do
|
197
|
+
@agent.expects(:execute_postrun_command)
|
198
|
+
|
199
|
+
@agent.run
|
184
200
|
end
|
185
201
|
|
186
202
|
it "should create report with passed transaction_uuid and job_id" do
|
187
|
-
|
203
|
+
@agent = Puppet::Configurer.new("test_tuuid", "test_jid")
|
204
|
+
@agent.stubs(:init_storage)
|
188
205
|
|
189
206
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
190
|
-
|
191
|
-
|
207
|
+
Puppet::Transaction::Report.expects(:new).with(anything, anything, 'test_tuuid', 'test_jid').returns(report)
|
208
|
+
@agent.expects(:send_report).with(report)
|
192
209
|
|
193
|
-
|
210
|
+
@agent.run
|
194
211
|
end
|
195
212
|
|
196
213
|
it "should send the report" do
|
197
214
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
198
|
-
|
199
|
-
|
215
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
216
|
+
@agent.expects(:send_report).with(report)
|
200
217
|
|
201
218
|
expect(report.environment).to eq("test")
|
202
219
|
expect(report.transaction_uuid).to eq("aaaa")
|
203
220
|
|
204
|
-
|
221
|
+
@agent.run
|
205
222
|
end
|
206
223
|
|
207
224
|
it "should send the transaction report even if the catalog could not be retrieved" do
|
208
|
-
|
225
|
+
@agent.expects(:retrieve_catalog).returns nil
|
209
226
|
|
210
227
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
211
|
-
|
212
|
-
|
228
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
229
|
+
@agent.expects(:send_report).with(report)
|
213
230
|
|
214
231
|
expect(report.environment).to eq("test")
|
215
232
|
expect(report.transaction_uuid).to eq("aaaa")
|
216
233
|
|
217
|
-
|
234
|
+
@agent.run
|
218
235
|
end
|
219
236
|
|
220
237
|
it "should send the transaction report even if there is a failure" do
|
221
|
-
|
238
|
+
@agent.expects(:retrieve_catalog).raises "whatever"
|
222
239
|
|
223
240
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
224
|
-
|
225
|
-
|
241
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
242
|
+
@agent.expects(:send_report).with(report)
|
226
243
|
|
227
244
|
expect(report.environment).to eq("test")
|
228
245
|
expect(report.transaction_uuid).to eq("aaaa")
|
229
246
|
|
230
|
-
expect(
|
247
|
+
expect(@agent.run).to be_nil
|
231
248
|
end
|
232
249
|
|
233
250
|
it "should remove the report as a log destination when the run is finished" do
|
234
|
-
|
251
|
+
report = Puppet::Transaction::Report.new
|
252
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
253
|
+
|
254
|
+
@agent.run
|
235
255
|
|
236
256
|
expect(Puppet::Util::Log.destinations).not_to include(report)
|
237
257
|
end
|
238
258
|
|
239
|
-
it "should return
|
240
|
-
|
241
|
-
|
259
|
+
it "should return the report exit_status as the result of the run" do
|
260
|
+
report = Puppet::Transaction::Report.new
|
261
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
262
|
+
report.expects(:exit_status).returns(1234)
|
242
263
|
|
243
|
-
expect(
|
264
|
+
expect(@agent.run).to eq(1234)
|
244
265
|
end
|
245
266
|
|
246
267
|
it "should return nil if catalog application fails" do
|
247
|
-
|
248
|
-
|
249
|
-
expect(
|
268
|
+
@catalog.expects(:apply).raises(Puppet::Error, 'One or more resource dependency cycles detected in graph')
|
269
|
+
report = Puppet::Transaction::Report.new
|
270
|
+
expect(@agent.run(catalog: @catalog, report: report)).to be_nil
|
250
271
|
end
|
251
272
|
|
252
273
|
it "should send the transaction report even if the pre-run command fails" do
|
253
|
-
|
274
|
+
report = Puppet::Transaction::Report.new
|
275
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
254
276
|
|
255
277
|
Puppet.settings[:prerun_command] = "/my/command"
|
256
|
-
|
257
|
-
|
278
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
279
|
+
@agent.expects(:send_report).with(report)
|
258
280
|
|
259
|
-
expect(
|
281
|
+
expect(@agent.run).to be_nil
|
260
282
|
end
|
261
283
|
|
262
284
|
it "should include the pre-run command failure in the report" do
|
285
|
+
report = Puppet::Transaction::Report.new
|
286
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
287
|
+
|
263
288
|
Puppet.settings[:prerun_command] = "/my/command"
|
264
|
-
|
289
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
265
290
|
|
266
|
-
expect(
|
291
|
+
expect(@agent.run).to be_nil
|
267
292
|
expect(report.logs.find { |x| x.message =~ /Could not run command from prerun_command/ }).to be
|
268
293
|
end
|
269
294
|
|
270
295
|
it "should send the transaction report even if the post-run command fails" do
|
296
|
+
report = Puppet::Transaction::Report.new
|
297
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
298
|
+
|
271
299
|
Puppet.settings[:postrun_command] = "/my/command"
|
272
|
-
|
273
|
-
|
300
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
301
|
+
@agent.expects(:send_report).with(report)
|
274
302
|
|
275
|
-
expect(
|
303
|
+
expect(@agent.run).to be_nil
|
276
304
|
end
|
277
305
|
|
278
306
|
it "should include the post-run command failure in the report" do
|
307
|
+
report = Puppet::Transaction::Report.new
|
308
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
309
|
+
|
279
310
|
Puppet.settings[:postrun_command] = "/my/command"
|
280
|
-
|
311
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
281
312
|
|
282
|
-
|
313
|
+
report.expects(:<<).with { |log| log.message.include?("Could not run command from postrun_command") }
|
283
314
|
|
284
|
-
expect(
|
315
|
+
expect(@agent.run).to be_nil
|
285
316
|
end
|
286
317
|
|
287
318
|
it "should execute post-run command even if the pre-run command fails" do
|
288
319
|
Puppet.settings[:prerun_command] = "/my/precommand"
|
289
320
|
Puppet.settings[:postrun_command] = "/my/postcommand"
|
290
|
-
|
291
|
-
|
321
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/precommand"]).raises(Puppet::ExecutionFailure, "Failed")
|
322
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/postcommand"])
|
292
323
|
|
293
|
-
expect(
|
324
|
+
expect(@agent.run).to be_nil
|
294
325
|
end
|
295
326
|
|
296
327
|
it "should finalize the report" do
|
297
|
-
|
298
|
-
|
328
|
+
report = Puppet::Transaction::Report.new
|
329
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
330
|
+
|
331
|
+
report.expects(:finalize_report)
|
332
|
+
@agent.run
|
299
333
|
end
|
300
334
|
|
301
335
|
it "should not apply the catalog if the pre-run command fails" do
|
336
|
+
report = Puppet::Transaction::Report.new
|
337
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
338
|
+
|
302
339
|
Puppet.settings[:prerun_command] = "/my/command"
|
303
|
-
|
340
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
304
341
|
|
305
|
-
|
306
|
-
|
342
|
+
@catalog.expects(:apply).never()
|
343
|
+
@agent.expects(:send_report)
|
307
344
|
|
308
|
-
expect(
|
345
|
+
expect(@agent.run).to be_nil
|
309
346
|
end
|
310
347
|
|
311
348
|
it "should apply the catalog, send the report, and return nil if the post-run command fails" do
|
349
|
+
report = Puppet::Transaction::Report.new
|
350
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
351
|
+
|
312
352
|
Puppet.settings[:postrun_command] = "/my/command"
|
313
|
-
|
353
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
314
354
|
|
315
|
-
|
316
|
-
|
355
|
+
@catalog.expects(:apply)
|
356
|
+
@agent.expects(:send_report)
|
317
357
|
|
318
|
-
expect(
|
358
|
+
expect(@agent.run).to be_nil
|
319
359
|
end
|
320
360
|
|
321
361
|
it 'includes total time metrics in the report after successfully applying the catalog' do
|
322
|
-
|
362
|
+
report = Puppet::Transaction::Report.new
|
363
|
+
@catalog.stubs(:apply).with() {|options| options[:report] == report }
|
364
|
+
@agent.run(report: report)
|
323
365
|
|
324
366
|
expect(report.metrics['time']).to be
|
325
367
|
expect(report.metrics['time']['total']).to be_a_kind_of(Numeric)
|
@@ -327,17 +369,19 @@ describe Puppet::Configurer do
|
|
327
369
|
|
328
370
|
it 'includes total time metrics in the report even if prerun fails' do
|
329
371
|
Puppet.settings[:prerun_command] = "/my/command"
|
330
|
-
|
372
|
+
Puppet::Util::Execution.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
|
331
373
|
|
332
|
-
|
374
|
+
report = Puppet::Transaction::Report.new
|
375
|
+
@agent.run(report: report)
|
333
376
|
|
334
377
|
expect(report.metrics['time']).to be
|
335
378
|
expect(report.metrics['time']['total']).to be_a_kind_of(Numeric)
|
336
379
|
end
|
337
380
|
|
338
381
|
it 'includes total time metrics in the report even if catalog retrieval fails' do
|
339
|
-
|
340
|
-
|
382
|
+
report = Puppet::Transaction::Report.new
|
383
|
+
@agent.stubs(:prepare_and_retrieve_catalog_from_cache).raises
|
384
|
+
@agent.run(:report => report)
|
341
385
|
|
342
386
|
expect(report.metrics['time']).to be
|
343
387
|
expect(report.metrics['time']['total']).to be_a_kind_of(Numeric)
|
@@ -345,155 +389,170 @@ describe Puppet::Configurer do
|
|
345
389
|
|
346
390
|
it "should refetch the catalog if the server specifies a new environment in the catalog" do
|
347
391
|
catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
348
|
-
|
392
|
+
@agent.expects(:retrieve_catalog).returns(catalog).twice
|
349
393
|
|
350
|
-
|
394
|
+
@agent.run
|
351
395
|
end
|
352
396
|
|
353
|
-
it "
|
354
|
-
|
397
|
+
it "should change the environment setting if the server specifies a new environment in the catalog" do
|
398
|
+
@catalog.stubs(:environment).returns("second_env")
|
355
399
|
|
356
|
-
|
400
|
+
@agent.run
|
357
401
|
|
358
|
-
expect(
|
402
|
+
expect(@agent.environment).to eq("second_env")
|
359
403
|
end
|
360
404
|
|
361
|
-
it "
|
362
|
-
|
405
|
+
it "should fix the report if the server specifies a new environment in the catalog" do
|
406
|
+
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
407
|
+
Puppet::Transaction::Report.expects(:new).returns(report)
|
408
|
+
@agent.expects(:send_report).with(report)
|
363
409
|
|
364
|
-
|
410
|
+
@catalog.stubs(:environment).returns("second_env")
|
411
|
+
@agent.stubs(:retrieve_catalog).returns(@catalog)
|
412
|
+
|
413
|
+
@agent.run
|
365
414
|
|
366
415
|
expect(report.environment).to eq("second_env")
|
367
416
|
end
|
368
417
|
|
369
418
|
it "sends the transaction uuid in a catalog request" do
|
370
|
-
|
371
|
-
|
372
|
-
|
419
|
+
@agent.instance_variable_set(:@transaction_uuid, 'aaa')
|
420
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:transaction_uuid => 'aaa'))
|
421
|
+
@agent.run
|
373
422
|
end
|
374
423
|
|
375
424
|
it "sends the transaction uuid in a catalog request" do
|
376
|
-
|
377
|
-
|
378
|
-
|
425
|
+
@agent.instance_variable_set(:@job_id, 'aaa')
|
426
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:job_id => 'aaa'))
|
427
|
+
@agent.run
|
379
428
|
end
|
380
429
|
|
381
430
|
it "sets the static_catalog query param to true in a catalog request" do
|
382
|
-
|
383
|
-
|
431
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:static_catalog => true))
|
432
|
+
@agent.run
|
384
433
|
end
|
385
434
|
|
386
435
|
it "sets the checksum_type query param to the default supported_checksum_types in a catalog request" do
|
387
|
-
|
388
|
-
|
389
|
-
|
436
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything,
|
437
|
+
has_entries(:checksum_type => 'md5.sha256.sha384.sha512.sha224'))
|
438
|
+
@agent.run
|
390
439
|
end
|
391
440
|
|
392
441
|
it "sets the checksum_type query param to the supported_checksum_types setting in a catalog request" do
|
393
|
-
Puppet[:supported_checksum_types] = ['sha256']
|
394
442
|
# Regenerate the agent to pick up the new setting
|
395
|
-
|
443
|
+
Puppet[:supported_checksum_types] = ['sha256']
|
444
|
+
@agent = Puppet::Configurer.new
|
445
|
+
@agent.stubs(:init_storage)
|
446
|
+
@agent.stubs(:download_plugins)
|
447
|
+
@agent.stubs(:send_report)
|
448
|
+
@agent.stubs(:save_last_run_summary)
|
396
449
|
|
397
|
-
|
398
|
-
|
450
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:checksum_type => 'sha256'))
|
451
|
+
@agent.run
|
399
452
|
end
|
400
453
|
|
401
454
|
describe "when not using a REST terminus for catalogs" do
|
402
455
|
it "should not pass any facts when retrieving the catalog" do
|
403
|
-
# This is weird, we collect facts when constructing the node,
|
404
|
-
# but we don't send them in the indirector request. Then the compiler
|
405
|
-
# looks up the node, and collects its facts, which we could have sent
|
406
|
-
# in the first place. This seems like a bug.
|
407
456
|
Puppet::Resource::Catalog.indirection.terminus_class = :compiler
|
457
|
+
@agent.expects(:facts_for_uploading).never
|
458
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options|
|
459
|
+
options[:facts].nil?
|
460
|
+
}.returns @catalog
|
408
461
|
|
409
|
-
|
410
|
-
expect(options[:facts]).to be_nil
|
411
|
-
end.and_return(catalog)
|
412
|
-
|
413
|
-
configurer.run
|
462
|
+
@agent.run
|
414
463
|
end
|
415
464
|
end
|
416
465
|
|
417
466
|
describe "when using a REST terminus for catalogs" do
|
418
|
-
it "should pass the
|
467
|
+
it "should pass the prepared facts and the facts format as arguments when retrieving the catalog" do
|
419
468
|
Puppet::Resource::Catalog.indirection.terminus_class = :rest
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
).
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
configurer.run
|
469
|
+
# the "facts_for_uploading" are prepeared by first finding facts, and then encoding them
|
470
|
+
# this mocks the "find" with a special value 12345, which is then expected back in the
|
471
|
+
# call to "encode" - the encode in turn returns mocked data that is asserted as being
|
472
|
+
# presented to the catalog terminus as options.
|
473
|
+
#
|
474
|
+
@agent.expects(:find_facts).returns(12345)
|
475
|
+
@agent.expects(:encode_facts).with(12345).returns(:facts => "myfacts", :facts_format => :foo)
|
476
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options|
|
477
|
+
options[:facts] == "myfacts" and options[:facts_format] == :foo
|
478
|
+
}.returns @catalog
|
479
|
+
|
480
|
+
@agent.run
|
434
481
|
end
|
435
482
|
end
|
436
483
|
end
|
437
484
|
|
485
|
+
describe "when initialized with a transaction_uuid" do
|
486
|
+
it "stores it" do
|
487
|
+
SecureRandom.expects(:uuid).never
|
488
|
+
configurer = Puppet::Configurer.new('foo')
|
489
|
+
expect(configurer.instance_variable_get(:@transaction_uuid) == 'foo')
|
490
|
+
end
|
491
|
+
end
|
492
|
+
|
438
493
|
describe "when sending a report" do
|
439
494
|
include PuppetSpec::Files
|
440
495
|
|
441
496
|
before do
|
497
|
+
Puppet.settings.stubs(:use).returns(true)
|
498
|
+
@configurer = Puppet::Configurer.new
|
442
499
|
Puppet[:lastrunfile] = tmpfile('last_run_file')
|
500
|
+
|
501
|
+
@report = Puppet::Transaction::Report.new
|
443
502
|
Puppet[:reports] = "none"
|
444
503
|
end
|
445
504
|
|
446
505
|
it "should print a report summary if configured to do so" do
|
447
506
|
Puppet.settings[:summarize] = true
|
448
507
|
|
449
|
-
|
508
|
+
@report.expects(:summary).returns "stuff"
|
450
509
|
|
451
|
-
|
452
|
-
configurer.send_report(report)
|
510
|
+
@configurer.expects(:puts).with("stuff")
|
511
|
+
@configurer.send_report(@report)
|
453
512
|
end
|
454
513
|
|
455
514
|
it "should not print a report summary if not configured to do so" do
|
456
515
|
Puppet.settings[:summarize] = false
|
457
516
|
|
458
|
-
|
459
|
-
configurer.send_report(report)
|
517
|
+
@configurer.expects(:puts).never
|
518
|
+
@configurer.send_report(@report)
|
460
519
|
end
|
461
520
|
|
462
521
|
it "should save the report if reporting is enabled" do
|
463
522
|
Puppet.settings[:report] = true
|
464
523
|
|
465
|
-
|
466
|
-
configurer.send_report(report)
|
524
|
+
Puppet::Transaction::Report.indirection.expects(:save).with(@report, nil, instance_of(Hash))
|
525
|
+
@configurer.send_report(@report)
|
467
526
|
end
|
468
527
|
|
469
528
|
it "should not save the report if reporting is disabled" do
|
470
529
|
Puppet.settings[:report] = false
|
471
530
|
|
472
|
-
|
473
|
-
configurer.send_report(report)
|
531
|
+
Puppet::Transaction::Report.indirection.expects(:save).with(@report, nil, instance_of(Hash)).never
|
532
|
+
@configurer.send_report(@report)
|
474
533
|
end
|
475
534
|
|
476
535
|
it "should save the last run summary if reporting is enabled" do
|
477
536
|
Puppet.settings[:report] = true
|
478
537
|
|
479
|
-
|
480
|
-
configurer.send_report(report)
|
538
|
+
@configurer.expects(:save_last_run_summary).with(@report)
|
539
|
+
@configurer.send_report(@report)
|
481
540
|
end
|
482
541
|
|
483
542
|
it "should save the last run summary if reporting is disabled" do
|
484
543
|
Puppet.settings[:report] = false
|
485
544
|
|
486
|
-
|
487
|
-
configurer.send_report(report)
|
545
|
+
@configurer.expects(:save_last_run_summary).with(@report)
|
546
|
+
@configurer.send_report(@report)
|
488
547
|
end
|
489
548
|
|
490
549
|
it "should log but not fail if saving the report fails" do
|
491
550
|
Puppet.settings[:report] = true
|
492
551
|
|
493
|
-
|
552
|
+
Puppet::Transaction::Report.indirection.expects(:save).raises("whatever")
|
494
553
|
|
495
|
-
|
496
|
-
expect { configurer.send_report(report) }.not_to raise_error
|
554
|
+
Puppet.expects(:err)
|
555
|
+
expect { @configurer.send_report(@report) }.not_to raise_error
|
497
556
|
end
|
498
557
|
end
|
499
558
|
|
@@ -501,17 +560,22 @@ describe Puppet::Configurer do
|
|
501
560
|
include PuppetSpec::Files
|
502
561
|
|
503
562
|
before do
|
563
|
+
Puppet.settings.stubs(:use).returns(true)
|
564
|
+
@configurer = Puppet::Configurer.new
|
565
|
+
|
566
|
+
@report = stub 'report', :raw_summary => {}
|
567
|
+
|
504
568
|
Puppet[:lastrunfile] = tmpfile('last_run_file')
|
505
569
|
end
|
506
570
|
|
507
571
|
it "should write the last run file" do
|
508
|
-
configurer.save_last_run_summary(report)
|
572
|
+
@configurer.save_last_run_summary(@report)
|
509
573
|
expect(Puppet::FileSystem.exist?(Puppet[:lastrunfile])).to be_truthy
|
510
574
|
end
|
511
575
|
|
512
576
|
it "should write the raw summary as yaml" do
|
513
|
-
|
514
|
-
configurer.save_last_run_summary(report)
|
577
|
+
@report.expects(:raw_summary).returns("summary")
|
578
|
+
@configurer.save_last_run_summary(@report)
|
515
579
|
expect(File.read(Puppet[:lastrunfile])).to eq(YAML.dump("summary"))
|
516
580
|
end
|
517
581
|
|
@@ -524,15 +588,15 @@ describe Puppet::Configurer do
|
|
524
588
|
end
|
525
589
|
end.new
|
526
590
|
|
527
|
-
|
591
|
+
Puppet::Util.expects(:replace_file).yields(fh)
|
528
592
|
|
529
|
-
|
530
|
-
expect { configurer.save_last_run_summary(report) }.to_not raise_error
|
593
|
+
Puppet.expects(:err)
|
594
|
+
expect { @configurer.save_last_run_summary(@report) }.to_not raise_error
|
531
595
|
end
|
532
596
|
|
533
597
|
it "should create the last run file with the correct mode" do
|
534
|
-
|
535
|
-
configurer.save_last_run_summary(report)
|
598
|
+
Puppet.settings.setting(:lastrunfile).expects(:mode).returns('664')
|
599
|
+
@configurer.save_last_run_summary(@report)
|
536
600
|
|
537
601
|
if Puppet::Util::Platform.windows?
|
538
602
|
require 'puppet/util/windows/security'
|
@@ -544,68 +608,66 @@ describe Puppet::Configurer do
|
|
544
608
|
end
|
545
609
|
|
546
610
|
it "should report invalid last run file permissions" do
|
547
|
-
|
548
|
-
|
549
|
-
configurer.save_last_run_summary(report)
|
611
|
+
Puppet.settings.setting(:lastrunfile).expects(:mode).returns('892')
|
612
|
+
Puppet.expects(:err).with(regexp_matches(/Could not save last run local report.*892 is invalid/))
|
613
|
+
@configurer.save_last_run_summary(@report)
|
550
614
|
end
|
551
615
|
end
|
552
616
|
|
553
617
|
describe "when requesting a node" do
|
554
618
|
it "uses the transaction uuid in the request" do
|
555
|
-
|
556
|
-
|
619
|
+
Puppet::Node.indirection.expects(:find).with(anything, has_entries(:transaction_uuid => anything)).twice
|
620
|
+
@agent.run
|
557
621
|
end
|
558
622
|
|
559
623
|
it "sends an explicitly configured environment request" do
|
560
|
-
|
561
|
-
|
562
|
-
|
624
|
+
Puppet.settings.expects(:set_by_config?).with(:environment).returns(true)
|
625
|
+
Puppet::Node.indirection.expects(:find).with(anything, has_entries(:configured_environment => Puppet[:environment])).twice
|
626
|
+
@agent.run
|
563
627
|
end
|
564
628
|
|
565
629
|
it "does not send a configured_environment when using the default" do
|
566
|
-
|
567
|
-
|
630
|
+
Puppet::Node.indirection.expects(:find).with(anything, has_entries(:configured_environment => nil)).twice
|
631
|
+
@agent.run
|
568
632
|
end
|
569
633
|
end
|
570
634
|
|
571
|
-
def expects_pluginsync
|
572
|
-
metadata = "[{\"path\":\"/etc/puppetlabs/code\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":0,\"group\":0,\"mode\":420,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-07-10 14:00:00 -0700\"},\"type\":\"directory\",\"destination\":null}]"
|
573
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas/(plugins|locales)}).to_return(status: 200, body: metadata, headers: {'Content-Type' => 'application/json'})
|
574
|
-
|
575
|
-
# response retains owner/group/mode due to source_permissions => use
|
576
|
-
facts_metadata = "[{\"path\":\"/etc/puppetlabs/code\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":500,\"group\":500,\"mode\":493,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-07-10 14:00:00 -0700\"},\"type\":\"directory\",\"destination\":null}]"
|
577
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas/pluginfacts}).to_return(status: 200, body: facts_metadata, headers: {'Content-Type' => 'application/json'})
|
578
|
-
end
|
579
|
-
|
580
635
|
def expects_new_catalog_only(catalog)
|
581
|
-
|
582
|
-
|
636
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns catalog
|
637
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.never
|
583
638
|
end
|
584
639
|
|
585
640
|
def expects_cached_catalog_only(catalog)
|
586
|
-
|
587
|
-
|
641
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns catalog
|
642
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.never
|
588
643
|
end
|
589
644
|
|
590
645
|
def expects_fallback_to_cached_catalog(catalog)
|
591
|
-
|
592
|
-
|
646
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
|
647
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns catalog
|
593
648
|
end
|
594
649
|
|
595
650
|
def expects_fallback_to_new_catalog(catalog)
|
596
|
-
|
597
|
-
|
598
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
|
651
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
|
652
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns catalog
|
599
653
|
end
|
600
654
|
|
601
655
|
def expects_neither_new_or_cached_catalog
|
602
|
-
|
603
|
-
|
656
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
|
657
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
|
604
658
|
end
|
605
659
|
|
606
660
|
describe "when retrieving a catalog" do
|
607
661
|
before do
|
608
|
-
|
662
|
+
Puppet.settings.stubs(:use).returns(true)
|
663
|
+
@agent.stubs(:facts_for_uploading).returns({})
|
664
|
+
@agent.stubs(:download_plugins)
|
665
|
+
|
666
|
+
# retrieve a catalog in the current environment, so we don't try to converge unexpectedly
|
667
|
+
@catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
668
|
+
|
669
|
+
# this is the default when using a Configurer instance
|
670
|
+
Puppet::Resource::Catalog.indirection.stubs(:terminus_class).returns :rest
|
609
671
|
end
|
610
672
|
|
611
673
|
describe "and configured to only retrieve a catalog from the cache" do
|
@@ -614,127 +676,100 @@ describe Puppet::Configurer do
|
|
614
676
|
end
|
615
677
|
|
616
678
|
it "should first look in the cache for a catalog" do
|
617
|
-
expects_cached_catalog_only(catalog)
|
679
|
+
expects_cached_catalog_only(@catalog)
|
618
680
|
|
619
|
-
|
681
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
620
682
|
end
|
621
683
|
|
622
684
|
it "should not make a node request or pluginsync when a cached catalog is successfully retrieved" do
|
623
|
-
|
624
|
-
expects_cached_catalog_only(catalog)
|
625
|
-
|
685
|
+
Puppet::Node.indirection.expects(:find).never
|
686
|
+
expects_cached_catalog_only(@catalog)
|
687
|
+
@agent.expects(:download_plugins).never
|
626
688
|
|
627
|
-
|
689
|
+
@agent.run
|
628
690
|
end
|
629
691
|
|
630
692
|
it "should make a node request and pluginsync when a cached catalog cannot be retrieved" do
|
631
|
-
|
632
|
-
expects_fallback_to_new_catalog(catalog)
|
693
|
+
Puppet::Node.indirection.expects(:find).returns nil
|
694
|
+
expects_fallback_to_new_catalog(@catalog)
|
695
|
+
@agent.expects(:download_plugins)
|
633
696
|
|
634
|
-
|
697
|
+
@agent.run
|
635
698
|
end
|
636
699
|
|
637
700
|
it "should set its cached_catalog_status to 'explicitly_requested'" do
|
638
|
-
expects_cached_catalog_only(catalog)
|
639
|
-
|
640
|
-
options = {}
|
641
|
-
configurer.run(options)
|
701
|
+
expects_cached_catalog_only(@catalog)
|
642
702
|
|
643
|
-
|
703
|
+
@agent.retrieve_catalog({})
|
704
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('explicitly_requested')
|
644
705
|
end
|
645
706
|
|
646
707
|
it "should set its cached_catalog_status to 'explicitly requested' if the cached catalog is from a different environment" do
|
647
708
|
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
648
709
|
expects_cached_catalog_only(cached_catalog)
|
649
710
|
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
expect(options[:report].cached_catalog_status).to eq('explicitly_requested')
|
711
|
+
@agent.retrieve_catalog({})
|
712
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('explicitly_requested')
|
654
713
|
end
|
655
714
|
|
656
715
|
it "should compile a new catalog if none is found in the cache" do
|
657
|
-
expects_fallback_to_new_catalog(catalog)
|
716
|
+
expects_fallback_to_new_catalog(@catalog)
|
717
|
+
|
718
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
719
|
+
end
|
658
720
|
|
659
|
-
|
660
|
-
|
721
|
+
it "should set its cached_catalog_status to 'not_used' if no catalog is found in the cache" do
|
722
|
+
expects_fallback_to_new_catalog(@catalog)
|
661
723
|
|
662
|
-
|
724
|
+
@agent.retrieve_catalog({})
|
725
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
663
726
|
end
|
664
727
|
|
665
728
|
it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
|
666
|
-
|
729
|
+
Puppet::Node.indirection.expects(:find).returns(nil)
|
667
730
|
expects_neither_new_or_cached_catalog
|
668
|
-
expects_pluginsync
|
669
731
|
|
670
|
-
|
732
|
+
@agent.run
|
671
733
|
end
|
672
734
|
|
673
735
|
it "should return the cached catalog when the environment doesn't match" do
|
674
736
|
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
675
737
|
expects_cached_catalog_only(cached_catalog)
|
676
738
|
|
677
|
-
|
678
|
-
expect(
|
679
|
-
|
680
|
-
configurer.run
|
681
|
-
end
|
682
|
-
|
683
|
-
it "applies the catalog passed as options when the catalog cache terminus is not set" do
|
684
|
-
expects_pluginsync
|
685
|
-
|
686
|
-
catalog.add_resource(Puppet::Resource.new('notify', 'from apply'))
|
687
|
-
configurer.run(catalog: catalog.to_ral)
|
688
|
-
|
689
|
-
# make sure cache class is not set to avoid surprises later
|
690
|
-
expect(Puppet::Resource::Catalog.indirection).to_not be_cache
|
691
|
-
expect(@logs).to include(an_object_having_attributes(level: :notice, message: /defined 'message' as 'from apply'/))
|
692
|
-
end
|
693
|
-
|
694
|
-
it "applies the cached catalog when the catalog cache terminus is set, ignoring the catalog passed as options" do
|
695
|
-
Puppet::Resource::Catalog.indirection.cache_class = :json
|
696
|
-
|
697
|
-
cached_catalog = Puppet::Resource::Catalog.new(Puppet[:node_name_value], Puppet[:environment])
|
698
|
-
cached_catalog.add_resource(Puppet::Resource.new('notify', 'from cache'))
|
699
|
-
|
700
|
-
# update cached catalog
|
701
|
-
Puppet.settings.use(:main, :agent)
|
702
|
-
path = Puppet::Resource::Catalog.indirection.cache.path(cached_catalog.name)
|
703
|
-
FileUtils.mkdir(File.dirname(path))
|
704
|
-
File.write(path, cached_catalog.render(:json))
|
705
|
-
|
706
|
-
configurer.run(catalog: catalog.to_ral)
|
707
|
-
|
708
|
-
expect(@logs).to include(an_object_having_attributes(level: :notice, message: /defined 'message' as 'from cache'/))
|
739
|
+
Puppet.expects(:info).with("Using cached catalog from environment 'second_env'")
|
740
|
+
expect(@agent.retrieve_catalog({})).to eq(cached_catalog)
|
709
741
|
end
|
710
742
|
end
|
711
743
|
|
712
744
|
describe "and strict environment mode is set" do
|
713
745
|
before do
|
746
|
+
@catalog.stubs(:to_ral).returns(@catalog)
|
747
|
+
@catalog.stubs(:write_class_file)
|
748
|
+
@catalog.stubs(:write_resource_file)
|
749
|
+
@agent.stubs(:send_report)
|
750
|
+
@agent.stubs(:save_last_run_summary)
|
714
751
|
Puppet.settings[:strict_environment_mode] = true
|
715
752
|
end
|
716
753
|
|
717
754
|
it "should not make a node request" do
|
718
|
-
|
755
|
+
Puppet::Node.indirection.expects(:find).never
|
719
756
|
|
720
|
-
|
757
|
+
@agent.run
|
721
758
|
end
|
722
759
|
|
723
760
|
it "should return nil when the catalog's environment doesn't match the agent specified environment" do
|
724
|
-
|
725
|
-
|
761
|
+
@agent.instance_variable_set(:@environment, 'second_env')
|
762
|
+
expects_new_catalog_only(@catalog)
|
726
763
|
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
expect(Puppet).to receive(:err).with("Not using catalog because its environment 'production' does not match agent specified environment 'second_env' and strict_environment_mode is set")
|
731
|
-
expect(configurer.run).to be_nil
|
764
|
+
Puppet.expects(:err).with("Not using catalog because its environment 'production' does not match agent specified environment 'second_env' and strict_environment_mode is set")
|
765
|
+
expect(@agent.run).to be_nil
|
732
766
|
end
|
733
767
|
|
734
|
-
it "should return
|
735
|
-
|
768
|
+
it "should not return nil when the catalog's environment matches the agent specified environment" do
|
769
|
+
@agent.instance_variable_set(:@environment, 'production')
|
770
|
+
expects_new_catalog_only(@catalog)
|
736
771
|
|
737
|
-
expect(
|
772
|
+
expect(@agent.run).to eq(0)
|
738
773
|
end
|
739
774
|
|
740
775
|
describe "and a cached catalog is explicitly requested" do
|
@@ -743,274 +778,209 @@ describe Puppet::Configurer do
|
|
743
778
|
end
|
744
779
|
|
745
780
|
it "should return nil when the cached catalog's environment doesn't match the agent specified environment" do
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote("production"))
|
750
|
-
expects_cached_catalog_only(catalog)
|
781
|
+
@agent.instance_variable_set(:@environment, 'second_env')
|
782
|
+
expects_cached_catalog_only(@catalog)
|
751
783
|
|
752
|
-
|
753
|
-
expect(
|
784
|
+
Puppet.expects(:err).with("Not using catalog because its environment 'production' does not match agent specified environment 'second_env' and strict_environment_mode is set")
|
785
|
+
expect(@agent.run).to be_nil
|
754
786
|
end
|
755
787
|
|
756
788
|
it "should proceed with the cached catalog if its environment matchs the local environment" do
|
757
|
-
|
789
|
+
Puppet.settings[:use_cached_catalog] = true
|
790
|
+
@agent.instance_variable_set(:@environment, 'production')
|
791
|
+
expects_cached_catalog_only(@catalog)
|
758
792
|
|
759
|
-
expect(
|
793
|
+
expect(@agent.run).to eq(0)
|
760
794
|
end
|
761
795
|
end
|
762
796
|
end
|
763
797
|
|
764
|
-
it "should
|
765
|
-
|
798
|
+
it "should use the Catalog class to get its catalog" do
|
799
|
+
Puppet::Resource::Catalog.indirection.expects(:find).returns @catalog
|
766
800
|
|
767
|
-
|
768
|
-
|
801
|
+
@agent.retrieve_catalog({})
|
802
|
+
end
|
803
|
+
|
804
|
+
it "should set its cached_catalog_status to 'not_used' when downloading a new catalog" do
|
805
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
|
769
806
|
|
770
|
-
|
807
|
+
@agent.retrieve_catalog({})
|
808
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
771
809
|
end
|
772
810
|
|
773
811
|
it "should use its node_name_value to retrieve the catalog" do
|
774
|
-
|
775
|
-
Puppet::Node::Facts.indirection.save(myhost_facts)
|
776
|
-
|
812
|
+
Facter.stubs(:value).returns "eh"
|
777
813
|
Puppet.settings[:node_name_value] = "myhost.domain.com"
|
778
|
-
|
814
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| name == "myhost.domain.com" }.returns @catalog
|
779
815
|
|
780
|
-
|
816
|
+
@agent.retrieve_catalog({})
|
781
817
|
end
|
782
818
|
|
783
|
-
it "should
|
784
|
-
|
819
|
+
it "should default to returning a catalog retrieved directly from the server, skipping the cache" do
|
820
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
|
785
821
|
|
786
|
-
|
787
|
-
expect(Puppet).to receive(:info).with("Using cached catalog from environment 'production'")
|
788
|
-
configurer.run
|
822
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
789
823
|
end
|
790
824
|
|
791
|
-
it "should
|
792
|
-
expects_fallback_to_cached_catalog(catalog)
|
825
|
+
it "should log and return the cached catalog when no catalog can be retrieved from the server" do
|
826
|
+
expects_fallback_to_cached_catalog(@catalog)
|
793
827
|
|
794
|
-
|
795
|
-
|
828
|
+
Puppet.expects(:info).with("Using cached catalog from environment 'production'")
|
829
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
830
|
+
end
|
796
831
|
|
797
|
-
|
832
|
+
it "should set its cached_catalog_status to 'on_failure' when no catalog can be retrieved from the server" do
|
833
|
+
expects_fallback_to_cached_catalog(@catalog)
|
834
|
+
|
835
|
+
@agent.retrieve_catalog({})
|
836
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('on_failure')
|
798
837
|
end
|
799
838
|
|
800
839
|
it "should not look in the cache for a catalog if one is returned from the server" do
|
801
|
-
expects_new_catalog_only(catalog)
|
840
|
+
expects_new_catalog_only(@catalog)
|
802
841
|
|
803
|
-
|
842
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
804
843
|
end
|
805
844
|
|
806
845
|
it "should return the cached catalog when retrieving the remote catalog throws an exception" do
|
807
|
-
|
808
|
-
|
846
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.raises "eh"
|
847
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
|
809
848
|
|
810
|
-
|
849
|
+
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
811
850
|
end
|
812
851
|
|
813
852
|
it "should set its cached_catalog_status to 'on_failure' when retrieving the remote catalog throws an exception" do
|
814
|
-
|
815
|
-
|
853
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.raises "eh"
|
854
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
|
816
855
|
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
expect(options[:report].cached_catalog_status).to eq('on_failure')
|
856
|
+
@agent.retrieve_catalog({})
|
857
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('on_failure')
|
821
858
|
end
|
822
859
|
|
823
860
|
it "should log and return nil if no catalog can be retrieved from the server and :usecacheonfailure is disabled" do
|
824
861
|
Puppet[:usecacheonfailure] = false
|
825
|
-
|
862
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
|
826
863
|
|
827
|
-
|
864
|
+
Puppet.expects(:warning).with('Not using cache on failed catalog')
|
828
865
|
|
829
|
-
expect(
|
866
|
+
expect(@agent.retrieve_catalog({})).to be_nil
|
830
867
|
end
|
831
868
|
|
832
869
|
it "should set its cached_catalog_status to 'not_used' if no catalog can be retrieved from the server and :usecacheonfailure is disabled or fails to retrieve a catalog" do
|
833
870
|
Puppet[:usecacheonfailure] = false
|
834
|
-
|
835
|
-
|
836
|
-
options = {}
|
837
|
-
configurer.run(options)
|
871
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
|
838
872
|
|
839
|
-
|
873
|
+
@agent.retrieve_catalog({})
|
874
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
840
875
|
end
|
841
876
|
|
842
877
|
it "should return nil if no cached catalog is available and no catalog can be retrieved from the server" do
|
843
878
|
expects_neither_new_or_cached_catalog
|
844
879
|
|
845
|
-
expect(
|
880
|
+
expect(@agent.retrieve_catalog({})).to be_nil
|
846
881
|
end
|
847
882
|
|
848
883
|
it "should return nil if its cached catalog environment doesn't match server-specified environment" do
|
849
884
|
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
885
|
+
@agent.instance_variable_set(:@node_environment, 'production')
|
850
886
|
|
851
887
|
expects_fallback_to_cached_catalog(cached_catalog)
|
852
888
|
|
853
|
-
|
854
|
-
expect(
|
855
|
-
expect(configurer.run).to be_nil
|
889
|
+
Puppet.expects(:err).with("Not using cached catalog because its environment 'second_env' does not match 'production'")
|
890
|
+
expect(@agent.retrieve_catalog({})).to be_nil
|
856
891
|
end
|
857
892
|
|
858
893
|
it "should set its cached_catalog_status to 'not_used' if the cached catalog environment doesn't match server-specified environment" do
|
859
894
|
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
895
|
+
@agent.instance_variable_set(:@node_environment, 'production')
|
860
896
|
|
861
897
|
expects_fallback_to_cached_catalog(cached_catalog)
|
862
898
|
|
863
|
-
|
864
|
-
|
865
|
-
expect(options[:report].cached_catalog_status).to eq('not_used')
|
899
|
+
@agent.retrieve_catalog({})
|
900
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
866
901
|
end
|
867
902
|
|
868
|
-
it "should
|
869
|
-
|
903
|
+
it "should return its cached catalog if the environment matches the server-specified environment" do
|
904
|
+
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment]))
|
905
|
+
@agent.instance_variable_set(:@node_environment, cached_catalog.environment)
|
870
906
|
|
871
|
-
|
872
|
-
configurer.run(options)
|
873
|
-
expect(options[:report].cached_catalog_status).to eq('on_failure')
|
874
|
-
end
|
875
|
-
|
876
|
-
it "should not update the cached catalog in noop mode" do
|
877
|
-
Puppet[:noop] = true
|
878
|
-
|
879
|
-
stub_request(:get, %r{/puppet/v3/catalog}).to_return(:status => 200, :body => catalog.render(:json), :headers => {'Content-Type' => 'application/json'})
|
880
|
-
|
881
|
-
Puppet::Resource::Catalog.indirection.cache_class = :json
|
882
|
-
path = Puppet::Resource::Catalog.indirection.cache.path(catalog.name)
|
907
|
+
expects_fallback_to_cached_catalog(cached_catalog)
|
883
908
|
|
884
|
-
expect(
|
885
|
-
configurer.run
|
886
|
-
expect(File).to_not be_exist(path)
|
909
|
+
expect(@agent.retrieve_catalog({})).to eq(cached_catalog)
|
887
910
|
end
|
888
911
|
|
889
|
-
it "should
|
890
|
-
Puppet[:
|
891
|
-
|
892
|
-
|
893
|
-
stub_request(:get, %r{/puppet/v3/catalog}).to_return(:status => 200, :body => catalog.render(:json), :headers => {'Content-Type' => 'application/json'})
|
894
|
-
|
895
|
-
Puppet::Resource::Catalog.indirection.cache_class = :json
|
896
|
-
cache_path = Puppet::Resource::Catalog.indirection.cache.path(Puppet[:node_name_value])
|
912
|
+
it "should set its cached_catalog_status to 'on_failure' if the cached catalog environment matches server-specified environment" do
|
913
|
+
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment]))
|
914
|
+
@agent.instance_variable_set(:@node_environment, cached_catalog.environment)
|
897
915
|
|
898
|
-
|
899
|
-
configurer.run
|
900
|
-
expect(File).to be_exist(cache_path)
|
916
|
+
expects_fallback_to_cached_catalog(cached_catalog)
|
901
917
|
|
902
|
-
|
918
|
+
@agent.retrieve_catalog({})
|
919
|
+
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('on_failure')
|
903
920
|
end
|
904
921
|
|
905
|
-
it "
|
906
|
-
|
907
|
-
|
908
|
-
Puppet::Resource::Catalog.indirection.cache_class = nil
|
922
|
+
it "should not update the cached catalog in noop mode" do
|
923
|
+
Puppet[:noop] = true
|
924
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:ignore_cache => true, :ignore_cache_save => true)).returns(@catalog)
|
909
925
|
|
910
|
-
|
926
|
+
@agent.retrieve_catalog({})
|
911
927
|
end
|
912
928
|
|
913
|
-
it "should
|
914
|
-
Puppet
|
915
|
-
|
929
|
+
it "should update the cached catalog when not in noop mode" do
|
930
|
+
Puppet[:noop] = false
|
931
|
+
Puppet::Resource::Catalog.indirection.expects(:find).with(anything, has_entries(:ignore_cache => true, :ignore_cache_save => false)).returns(@catalog)
|
916
932
|
|
917
|
-
|
918
|
-
configurer.run(catalog: catalog)
|
919
|
-
expect(File).to_not be_exist(path)
|
933
|
+
@agent.retrieve_catalog({})
|
920
934
|
end
|
921
935
|
end
|
922
936
|
|
923
|
-
describe "when
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
before :each do
|
928
|
-
apple.add_resource(resource)
|
929
|
-
banana.add_resource(resource)
|
930
|
-
end
|
931
|
-
|
932
|
-
it "converges after multiple attempts" do
|
933
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(apple, banana, banana)
|
934
|
-
|
935
|
-
allow(Puppet).to receive(:notice)
|
936
|
-
expect(Puppet).to receive(:notice).with("Local environment: 'production' doesn't match server specified environment 'apple', restarting agent run with environment 'apple'")
|
937
|
-
expect(Puppet).to receive(:notice).with("Local environment: 'apple' doesn't match server specified environment 'banana', restarting agent run with environment 'banana'")
|
938
|
-
|
939
|
-
configurer.run
|
940
|
-
end
|
941
|
-
|
942
|
-
it "raises if it can't converge after 4 tries after the initial catalog request" do
|
943
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(apple, banana, apple, banana, apple)
|
944
|
-
|
945
|
-
expect(Puppet).to receive(:err).with("Failed to apply catalog: Catalog environment didn't stabilize after 4 fetches, aborting run")
|
937
|
+
describe "when converting the catalog" do
|
938
|
+
before do
|
939
|
+
Puppet.settings.stubs(:use).returns(true)
|
946
940
|
|
947
|
-
|
941
|
+
catalog.stubs(:to_ral).returns ral_catalog
|
948
942
|
end
|
949
|
-
end
|
950
943
|
|
951
|
-
|
952
|
-
|
953
|
-
expect(configurer).to receive(:apply_catalog) do |ral, _|
|
954
|
-
expect(ral.resources).to contain(an_instance_of(Puppet::Type::Notify))
|
955
|
-
end
|
944
|
+
let (:catalog) { Puppet::Resource::Catalog.new('tester', Puppet::Node::Environment.remote(Puppet[:environment].to_sym)) }
|
945
|
+
let (:ral_catalog) { Puppet::Resource::Catalog.new('tester', Puppet::Node::Environment.remote(Puppet[:environment].to_sym)) }
|
956
946
|
|
957
|
-
|
947
|
+
it "should convert the catalog to a RAL-formed catalog" do
|
948
|
+
expect(@agent.convert_catalog(catalog, 10)).to equal(ral_catalog)
|
958
949
|
end
|
959
950
|
|
960
|
-
it "
|
961
|
-
|
962
|
-
expect(ral.resources.map(&:to_ref)).to contain(%w{Schedule[puppet] Schedule[hourly] Schedule[daily] Schedule[weekly] Schedule[monthly] Schedule[never]})
|
963
|
-
end
|
951
|
+
it "should finalize the catalog" do
|
952
|
+
ral_catalog.expects(:finalize)
|
964
953
|
|
965
|
-
|
954
|
+
@agent.convert_catalog(catalog, 10)
|
966
955
|
end
|
967
956
|
|
968
|
-
it "
|
969
|
-
|
970
|
-
expect(ral.retrieval_duration).to be_an_instance_of(Float)
|
971
|
-
end
|
957
|
+
it "should record the passed retrieval time with the RAL catalog" do
|
958
|
+
ral_catalog.expects(:retrieval_duration=).with 10
|
972
959
|
|
973
|
-
|
960
|
+
@agent.convert_catalog(catalog, 10)
|
974
961
|
end
|
975
962
|
|
976
|
-
it "
|
977
|
-
|
963
|
+
it "should write the RAL catalog's class file" do
|
964
|
+
ral_catalog.expects(:write_class_file)
|
978
965
|
|
979
|
-
|
980
|
-
|
981
|
-
expect(File.read(Puppet[:classfile]).chomp).to eq('settings')
|
966
|
+
@agent.convert_catalog(catalog, 10)
|
982
967
|
end
|
983
968
|
|
984
|
-
it "
|
985
|
-
|
986
|
-
|
987
|
-
configurer.run
|
969
|
+
it "should write the RAL catalog's resource file" do
|
970
|
+
ral_catalog.expects(:write_resource_file)
|
988
971
|
|
989
|
-
|
972
|
+
@agent.convert_catalog(catalog, 10)
|
990
973
|
end
|
991
974
|
|
992
|
-
it "
|
993
|
-
|
975
|
+
it "should set catalog conversion time on the report" do
|
976
|
+
report = Puppet::Transaction::Report.new
|
994
977
|
|
995
|
-
|
978
|
+
report.expects(:add_times).with(:convert_catalog, kind_of(Numeric))
|
979
|
+
@agent.convert_catalog(catalog, 10, {:report => report})
|
996
980
|
end
|
997
981
|
end
|
998
982
|
|
999
983
|
describe "when determining whether to pluginsync" do
|
1000
|
-
it "should default to Puppet[:pluginsync] when explicitly set by the commandline" do
|
1001
|
-
Puppet.settings[:pluginsync] = false
|
1002
|
-
expect(Puppet.settings).to receive(:set_by_cli?).and_return(true)
|
1003
|
-
|
1004
|
-
expect(described_class).not_to be_should_pluginsync
|
1005
|
-
end
|
1006
|
-
|
1007
|
-
it "should default to Puppet[:pluginsync] when explicitly set by config" do
|
1008
|
-
Puppet.settings[:pluginsync] = false
|
1009
|
-
expect(Puppet.settings).to receive(:set_by_config?).and_return(true)
|
1010
|
-
|
1011
|
-
expect(described_class).not_to be_should_pluginsync
|
1012
|
-
end
|
1013
|
-
|
1014
984
|
it "should be true if use_cached_catalog is false" do
|
1015
985
|
Puppet.settings[:use_cached_catalog] = false
|
1016
986
|
|
@@ -1027,70 +997,55 @@ describe Puppet::Configurer do
|
|
1027
997
|
describe "when attempting failover" do
|
1028
998
|
it "should not failover if server_list is not set" do
|
1029
999
|
Puppet.settings[:server_list] = []
|
1030
|
-
|
1000
|
+
@agent.expects(:find_functional_server).never
|
1001
|
+
@agent.run
|
1031
1002
|
end
|
1032
1003
|
|
1033
1004
|
it "should not failover during an apply run" do
|
1034
1005
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1006
|
+
@agent.expects(:find_functional_server).never
|
1035
1007
|
catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
1036
|
-
|
1008
|
+
@agent.run :catalog => catalog
|
1037
1009
|
end
|
1038
1010
|
|
1039
|
-
it "should select a server when
|
1011
|
+
it "should select a server when provided" do
|
1040
1012
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1041
|
-
|
1042
|
-
|
1013
|
+
response = Net::HTTPOK.new(nil, 200, 'OK')
|
1014
|
+
Puppet::Network::HttpPool.stubs(:http_ssl_instance).with('myserver', '123').returns(mock('request', get: response))
|
1015
|
+
@agent.stubs(:run_internal)
|
1043
1016
|
|
1044
1017
|
options = {}
|
1045
|
-
|
1046
|
-
expect(options[:report].master_used).to eq('myserver:123')
|
1047
|
-
end
|
1048
|
-
|
1049
|
-
it "should select a server when it receives 403 Forbidden" do
|
1050
|
-
Puppet.settings[:server_list] = ["myserver:123"]
|
1051
|
-
|
1052
|
-
stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 403)
|
1053
|
-
|
1054
|
-
options = {}
|
1055
|
-
configurer.run(options)
|
1018
|
+
@agent.run(options)
|
1056
1019
|
expect(options[:report].master_used).to eq('myserver:123')
|
1057
1020
|
end
|
1058
1021
|
|
1059
1022
|
it "should report when a server is unavailable" do
|
1060
1023
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1024
|
+
response = Net::HTTPInternalServerError.new(nil, 500, 'Internal Server Error')
|
1025
|
+
Puppet::Network::HttpPool.stubs(:http_ssl_instance).with('myserver', '123').returns(mock('request', get: response))
|
1026
|
+
@agent.stubs(:run_internal)
|
1061
1027
|
|
1062
|
-
|
1063
|
-
|
1064
|
-
allow(Puppet).to receive(:debug)
|
1065
|
-
expect(Puppet).to receive(:debug).with("Puppet server myserver:123 is unavailable: 500 Internal Server Error")
|
1066
|
-
expect {
|
1067
|
-
configurer.run
|
1068
|
-
}.to raise_error(Puppet::Error, /Could not select a functional puppet master from server_list:/)
|
1028
|
+
Puppet.expects(:debug).with("Puppet server myserver:123 is unavailable: 500 Internal Server Error")
|
1029
|
+
@agent.run
|
1069
1030
|
end
|
1070
1031
|
|
1071
|
-
it "should
|
1072
|
-
Puppet.settings[:server_list] = "myserver:123
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1032
|
+
it "should fallback to an empty server when failover fails" do
|
1033
|
+
Puppet.settings[:server_list] = ["myserver:123"]
|
1034
|
+
error = Net::HTTPError.new(400, 'dummy server communication error')
|
1035
|
+
Puppet::Network::HttpPool.stubs(:http_ssl_instance).with('myserver', '123').returns(error)
|
1036
|
+
@agent.stubs(:run_internal)
|
1076
1037
|
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1038
|
+
options = {}
|
1039
|
+
@agent.run(options)
|
1040
|
+
expect(options[:report].master_used).to be_nil
|
1080
1041
|
end
|
1081
1042
|
|
1082
|
-
it "should not make multiple node
|
1043
|
+
it "should not make multiple node requets when the server is found" do
|
1083
1044
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1084
|
-
Puppet::
|
1085
|
-
|
1086
|
-
|
1087
|
-
stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
|
1088
|
-
stub_request(:get, %r{https://myserver:123/puppet/v3/catalog}).to_return(status: 200)
|
1089
|
-
node_request = stub_request(:get, %r{https://myserver:123/puppet/v3/node/}).to_return(status: 200)
|
1090
|
-
|
1091
|
-
configurer.run
|
1045
|
+
Puppet::Network::HttpPool.expects(:http_ssl_instance).once
|
1046
|
+
@agent.stubs(:run_internal)
|
1092
1047
|
|
1093
|
-
|
1048
|
+
@agent.run
|
1094
1049
|
end
|
1095
1050
|
end
|
1096
1051
|
end
|