puppet 5.3.4 → 6.29.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/CODEOWNERS +11 -0
- data/CODE_OF_CONDUCT.md +70 -0
- data/CONTRIBUTING.md +59 -55
- data/Gemfile +52 -70
- data/Gemfile.lock +251 -0
- data/Guardfile.example +76 -0
- data/LICENSE +189 -4
- data/README.md +31 -37
- data/Rakefile +53 -52
- data/conf/auth.conf +7 -2
- data/conf/environment.conf +1 -1
- data/conf/fileserver.conf +1 -1
- data/conf/puppet.conf +4 -4
- data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
- data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
- data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +19 -20
- data/{ext → examples}/nagios/check_puppet.rb +2 -2
- data/ext/README.md +13 -0
- data/ext/build_defaults.yaml +1 -2
- data/ext/hiera/hiera.yaml +1 -1
- data/ext/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +16 -12
- data/ext/redhat/client.init +2 -2
- data/ext/solaris/smf/puppet +11 -11
- data/ext/solaris/smf/puppet.xml +2 -0
- data/ext/windows/service/daemon.rb +40 -10
- data/install.rb +8 -27
- data/lib/hiera/puppet_function.rb +1 -1
- data/lib/hiera/scope.rb +31 -2
- data/lib/hiera_puppet.rb +2 -1
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/agent.rb +68 -26
- data/lib/puppet/application/agent.rb +107 -59
- data/lib/puppet/application/apply.rb +144 -74
- data/lib/puppet/application/cert.rb +27 -285
- data/lib/puppet/application/describe.rb +10 -15
- data/lib/puppet/application/device.rb +241 -89
- data/lib/puppet/application/doc.rb +8 -5
- data/lib/puppet/application/face_base.rb +23 -16
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/filebucket.rb +51 -16
- data/lib/puppet/application/lookup.rb +92 -20
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/resource.rb +39 -23
- data/lib/puppet/application/script.rb +264 -0
- data/lib/puppet/application/ssl.rb +288 -0
- data/lib/puppet/application.rb +25 -9
- data/lib/puppet/application_support.rb +9 -3
- data/lib/puppet/concurrent/lock.rb +16 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +17 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +36 -18
- data/lib/puppet/configurer/fact_handler.rb +5 -1
- data/lib/puppet/configurer/plugin_handler.rb +36 -11
- data/lib/puppet/configurer.rb +367 -152
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/confine/boolean.rb +45 -0
- data/lib/puppet/confine/false.rb +7 -1
- data/lib/puppet/confine/true.rb +7 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +6 -3
- data/lib/puppet/confine_collection.rb +2 -1
- data/lib/puppet/context/trusted_information.rb +48 -4
- data/lib/puppet/context.rb +120 -48
- data/lib/puppet/daemon.rb +17 -30
- data/lib/puppet/datatypes/error.rb +21 -0
- data/lib/puppet/datatypes/impl/error.rb +40 -0
- data/lib/puppet/datatypes.rb +213 -0
- data/lib/puppet/defaults.rb +651 -371
- data/lib/puppet/environments.rb +218 -105
- data/lib/puppet/error.rb +52 -4
- data/lib/puppet/etc.rb +26 -7
- data/lib/puppet/external/dot.rb +23 -24
- data/lib/puppet/external/pson/pure/generator.rb +1 -1
- data/lib/puppet/external/pson/pure/parser.rb +3 -2
- data/lib/puppet/face/catalog.rb +20 -1
- data/lib/puppet/face/config.rb +167 -32
- data/lib/puppet/face/epp.rb +52 -15
- data/lib/puppet/face/facts.rb +210 -0
- data/lib/puppet/face/generate.rb +2 -0
- data/lib/puppet/face/help/action.erb +5 -1
- data/lib/puppet/face/help/face.erb +2 -1
- data/lib/puppet/face/help/global.erb +2 -2
- data/lib/puppet/face/help/man.erb +1 -1
- data/lib/puppet/face/help.rb +80 -41
- data/lib/puppet/face/key.rb +1 -1
- data/lib/puppet/face/man.rb +55 -12
- data/lib/puppet/face/module/build.rb +5 -54
- data/lib/puppet/face/module/changes.rb +2 -1
- data/lib/puppet/face/module/generate.rb +6 -243
- data/lib/puppet/face/module/install.rb +1 -4
- data/lib/puppet/face/module/list.rb +5 -10
- data/lib/puppet/face/module/search.rb +13 -4
- data/lib/puppet/face/module/uninstall.rb +2 -5
- data/lib/puppet/face/module/upgrade.rb +2 -5
- data/lib/puppet/face/node/clean.rb +26 -12
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/parser.rb +78 -12
- data/lib/puppet/face/plugin.rb +9 -4
- data/lib/puppet/face/status.rb +3 -3
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/feature/base.rb +9 -28
- data/lib/puppet/feature/bolt.rb +3 -0
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/file_bucket/dipper.rb +5 -5
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +16 -16
- data/lib/puppet/file_serving/configuration/parser.rb +2 -0
- data/lib/puppet/file_serving/configuration.rb +5 -1
- data/lib/puppet/file_serving/fileset.rb +17 -5
- data/lib/puppet/file_serving/http_metadata.rb +19 -5
- data/lib/puppet/file_serving/metadata.rb +12 -4
- data/lib/puppet/file_serving/mount/file.rb +6 -5
- data/lib/puppet/file_serving/mount/locales.rb +3 -3
- data/lib/puppet/file_serving/mount/modules.rb +4 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +3 -3
- data/lib/puppet/file_serving/mount/plugins.rb +3 -3
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_serving/mount/tasks.rb +4 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +45 -11
- data/lib/puppet/file_system/jruby.rb +23 -0
- data/lib/puppet/file_system/memory_file.rb +15 -2
- data/lib/puppet/file_system/memory_impl.rb +13 -0
- data/lib/puppet/file_system/posix.rb +3 -2
- data/lib/puppet/file_system/uniquefile.rb +15 -17
- data/lib/puppet/file_system/windows.rb +85 -2
- data/lib/puppet/file_system.rb +29 -15
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +5 -5
- data/lib/puppet/forge/repository.rb +28 -87
- data/lib/puppet/forge.rb +45 -22
- data/lib/puppet/functions/abs.rb +61 -0
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +15 -11
- data/lib/puppet/functions/annotate.rb +11 -11
- data/lib/puppet/functions/any.rb +15 -11
- data/lib/puppet/functions/assert_type.rb +7 -7
- data/lib/puppet/functions/binary_file.rb +14 -2
- data/lib/puppet/functions/break.rb +34 -9
- data/lib/puppet/functions/call.rb +43 -5
- 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/contain.rb +25 -3
- data/lib/puppet/functions/convert_to.rb +34 -0
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +11 -12
- data/lib/puppet/functions/dig.rb +47 -3
- data/lib/puppet/functions/downcase.rb +89 -0
- data/lib/puppet/functions/each.rb +20 -16
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +85 -0
- data/lib/puppet/functions/epp.rb +5 -4
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +21 -15
- data/lib/puppet/functions/filter.rb +31 -23
- data/lib/puppet/functions/find_file.rb +15 -2
- data/lib/puppet/functions/find_template.rb +63 -0
- data/lib/puppet/functions/flatten.rb +64 -0
- 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/group_by.rb +62 -0
- data/lib/puppet/functions/hiera.rb +11 -11
- data/lib/puppet/functions/hiera_array.rb +11 -11
- data/lib/puppet/functions/hiera_hash.rb +12 -12
- data/lib/puppet/functions/hiera_include.rb +15 -15
- data/lib/puppet/functions/hocon_data.rb +1 -1
- data/lib/puppet/functions/include.rb +34 -2
- data/lib/puppet/functions/index.rb +167 -0
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +8 -7
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +3 -3
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +3 -2
- data/lib/puppet/functions/lstrip.rb +58 -0
- data/lib/puppet/functions/map.rb +22 -18
- data/lib/puppet/functions/match.rb +19 -9
- data/lib/puppet/functions/max.rb +183 -0
- data/lib/puppet/functions/min.rb +182 -0
- data/lib/puppet/functions/module_directory.rb +41 -0
- data/lib/puppet/functions/new.rb +987 -8
- data/lib/puppet/functions/next.rb +20 -10
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/partition.rb +62 -0
- data/lib/puppet/functions/reduce.rb +9 -11
- data/lib/puppet/functions/regsubst.rb +60 -35
- data/lib/puppet/functions/require.rb +42 -2
- data/lib/puppet/functions/return.rb +2 -9
- data/lib/puppet/functions/reverse_each.rb +72 -3
- 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/slice.rb +23 -9
- data/lib/puppet/functions/sort.rb +74 -0
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +74 -2
- data/lib/puppet/functions/strftime.rb +179 -10
- data/lib/puppet/functions/strip.rb +58 -0
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +32 -35
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +25 -6
- data/lib/puppet/functions/upcase.rb +89 -0
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +7 -3
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +9 -7
- data/lib/puppet/functions/yaml_data.rb +11 -9
- data/lib/puppet/functions.rb +208 -91
- data/lib/puppet/generate/type.rb +12 -2
- data/lib/puppet/gettext/config.rb +31 -8
- data/lib/puppet/gettext/module_translations.rb +5 -5
- data/lib/puppet/gettext/stubs.rb +1 -1
- data/lib/puppet/graph/rb_tree_map.rb +2 -2
- data/lib/puppet/graph/relationship_graph.rb +2 -1
- data/lib/puppet/graph/simple_graph.rb +16 -10
- data/lib/puppet/graph.rb +0 -2
- data/lib/puppet/http/client.rb +468 -0
- data/lib/puppet/http/errors.rb +32 -0
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +89 -0
- data/lib/puppet/http/resolver/server_list.rb +91 -0
- data/lib/puppet/http/resolver/settings.rb +26 -0
- data/lib/puppet/http/resolver/srv.rb +45 -0
- data/lib/puppet/http/resolver.rb +58 -0
- data/lib/puppet/http/response.rb +120 -0
- data/lib/puppet/http/retry_after_handler.rb +86 -0
- data/lib/puppet/http/service/ca.rb +112 -0
- data/lib/puppet/http/service/compiler.rb +393 -0
- data/lib/puppet/http/service/file_server.rb +207 -0
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/service/report.rb +66 -0
- data/lib/puppet/http/service.rb +196 -0
- data/lib/puppet/http/session.rb +131 -0
- data/lib/puppet/http.rb +37 -0
- data/lib/puppet/indirector/catalog/compiler.rb +60 -22
- data/lib/puppet/indirector/catalog/json.rb +14 -3
- data/lib/puppet/indirector/catalog/rest.rb +35 -0
- data/lib/puppet/indirector/catalog/yaml.rb +0 -16
- data/lib/puppet/indirector/certificate/file.rb +1 -1
- data/lib/puppet/indirector/certificate/rest.rb +3 -1
- data/lib/puppet/indirector/certificate_request/file.rb +1 -0
- data/lib/puppet/indirector/certificate_request/memory.rb +1 -0
- data/lib/puppet/indirector/certificate_request/rest.rb +1 -0
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/face.rb +2 -2
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +31 -12
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +63 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -64
- data/lib/puppet/indirector/file_bucket_file/file.rb +7 -3
- data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
- data/lib/puppet/indirector/file_content/http.rb +8 -1
- data/lib/puppet/indirector/file_content/rest.rb +30 -0
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +53 -0
- data/lib/puppet/indirector/file_server.rb +5 -3
- data/lib/puppet/indirector/hiera.rb +6 -0
- data/lib/puppet/indirector/indirection.rb +59 -31
- data/lib/puppet/indirector/json.rb +6 -2
- data/lib/puppet/indirector/key/file.rb +2 -6
- data/lib/puppet/indirector/key/memory.rb +1 -0
- data/lib/puppet/indirector/msgpack.rb +2 -2
- data/lib/puppet/indirector/node/exec.rb +4 -5
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +24 -0
- data/lib/puppet/indirector/node/yaml.rb +0 -6
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +4 -3
- data/lib/puppet/indirector/report/rest.rb +19 -0
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +49 -28
- data/lib/puppet/indirector/resource/ral.rb +7 -4
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/indirector/rest.rb +30 -66
- data/lib/puppet/indirector/ssl_file.rb +13 -52
- data/lib/puppet/indirector/status/rest.rb +18 -0
- data/lib/puppet/indirector/terminus.rb +11 -4
- data/lib/puppet/indirector/yaml.rb +5 -5
- data/lib/puppet/indirector.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +1 -1
- data/lib/puppet/info_service/plan_information_service.rb +36 -0
- data/lib/puppet/info_service/task_information_service.rb +7 -3
- data/lib/puppet/info_service.rb +9 -0
- data/lib/puppet/interface/action.rb +23 -10
- data/lib/puppet/interface/action_builder.rb +8 -0
- data/lib/puppet/interface/action_manager.rb +2 -1
- data/lib/puppet/interface/documentation.rb +11 -7
- data/lib/puppet/interface/face_collection.rb +9 -4
- data/lib/puppet/interface/option.rb +4 -2
- data/lib/puppet/interface/option_manager.rb +5 -3
- data/lib/puppet/interface.rb +5 -3
- data/lib/puppet/loaders.rb +10 -1
- data/lib/puppet/metatype/manager.rb +81 -83
- data/lib/puppet/module/plan.rb +159 -0
- data/lib/puppet/module/task.rb +216 -32
- data/lib/puppet/module.rb +51 -39
- data/lib/puppet/module_tool/applications/application.rb +7 -6
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/installer.rb +72 -13
- data/lib/puppet/module_tool/applications/uninstaller.rb +6 -5
- data/lib/puppet/module_tool/applications/unpacker.rb +4 -4
- data/lib/puppet/module_tool/applications/upgrader.rb +12 -8
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/contents_description.rb +2 -1
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/shared.rb +34 -2
- data/lib/puppet/module_tool/installed_modules.rb +3 -3
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +5 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +8 -7
- data/lib/puppet/module_tool/tar/mini.rb +14 -4
- data/lib/puppet/module_tool.rb +4 -6
- data/lib/puppet/network/authconfig.rb +5 -16
- data/lib/puppet/network/authstore.rb +3 -2
- data/lib/puppet/network/format_support.rb +15 -10
- data/lib/puppet/network/formats.rb +168 -10
- data/lib/puppet/network/http/api/indirected_routes.rb +31 -20
- data/lib/puppet/network/http/api/master/v3/environment.rb +5 -2
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -3
- data/lib/puppet/network/http/api.rb +1 -10
- data/lib/puppet/network/http/base_pool.rb +36 -0
- data/lib/puppet/network/http/compression.rb +8 -1
- data/lib/puppet/network/http/connection.rb +59 -36
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/error.rb +3 -3
- data/lib/puppet/network/http/factory.rb +16 -18
- data/lib/puppet/network/http/handler.rb +60 -27
- data/lib/puppet/network/http/nocache_pool.rb +11 -4
- data/lib/puppet/network/http/pool.rb +24 -16
- data/lib/puppet/network/http/request.rb +2 -1
- data/lib/puppet/network/http/route.rb +4 -3
- data/lib/puppet/network/http/session.rb +3 -2
- data/lib/puppet/network/http/site.rb +5 -1
- data/lib/puppet/network/http.rb +2 -7
- data/lib/puppet/network/http_pool.rb +35 -1
- data/lib/puppet/network/resolver.rb +140 -67
- data/lib/puppet/network/rights.rb +3 -2
- data/lib/puppet/network/uri.rb +18 -0
- data/lib/puppet/node/environment.rb +65 -62
- data/lib/puppet/node/facts.rb +28 -1
- data/lib/puppet/node.rb +65 -8
- data/lib/puppet/pal/catalog_compiler.rb +108 -0
- data/lib/puppet/pal/compiler.rb +222 -0
- data/lib/puppet/pal/function_signature.rb +52 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
- data/lib/puppet/pal/pal_api.rb +15 -0
- data/lib/puppet/pal/pal_impl.rb +588 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +73 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +8 -8
- data/lib/puppet/parameter.rb +17 -10
- data/lib/puppet/parser/abstract_compiler.rb +36 -0
- data/lib/puppet/parser/ast/branch.rb +4 -4
- data/lib/puppet/parser/ast/leaf.rb +10 -4
- data/lib/puppet/parser/ast/pops_bridge.rb +34 -68
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/ast.rb +5 -9
- data/lib/puppet/parser/catalog_compiler.rb +56 -0
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +3 -1
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +9 -2
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/compiler.rb +73 -93
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/files.rb +2 -1
- data/lib/puppet/parser/functions/assert_type.rb +3 -3
- data/lib/puppet/parser/functions/create_resources.rb +18 -14
- data/lib/puppet/parser/functions/each.rb +2 -2
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +8 -1
- data/lib/puppet/parser/functions/filter.rb +3 -2
- data/lib/puppet/parser/functions/fqdn_rand.rb +27 -4
- data/lib/puppet/parser/functions/generate.rb +8 -7
- data/lib/puppet/parser/functions/hiera.rb +4 -4
- data/lib/puppet/parser/functions/hiera_array.rb +5 -5
- data/lib/puppet/parser/functions/hiera_hash.rb +6 -6
- data/lib/puppet/parser/functions/hiera_include.rb +10 -11
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- data/lib/puppet/parser/functions/inline_template.rb +7 -1
- data/lib/puppet/parser/functions/lest.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +32 -47
- data/lib/puppet/parser/functions/realize.rb +6 -0
- data/lib/puppet/parser/functions/reduce.rb +1 -1
- data/lib/puppet/parser/functions/return.rb +22 -1
- data/lib/puppet/parser/functions/reverse_each.rb +2 -2
- data/lib/puppet/parser/functions/scanf.rb +1 -1
- data/lib/puppet/parser/functions/sha256.rb +5 -0
- data/lib/puppet/parser/functions/sprintf.rb +12 -1
- data/lib/puppet/parser/functions/step.rb +1 -1
- data/lib/puppet/parser/functions/tag.rb +6 -0
- data/lib/puppet/parser/functions/tagged.rb +6 -3
- data/lib/puppet/parser/functions/template.rb +5 -0
- data/lib/puppet/parser/functions/then.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +4 -4
- data/lib/puppet/parser/functions.rb +60 -17
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/relationship.rb +2 -1
- data/lib/puppet/parser/resource/param.rb +18 -5
- data/lib/puppet/parser/resource.rb +11 -8
- data/lib/puppet/parser/scope.rb +48 -22
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +4 -2
- data/lib/puppet/parser/type_loader.rb +15 -14
- data/lib/puppet/parser.rb +1 -0
- data/lib/puppet/plugins/configuration.rb +5 -1
- data/lib/puppet/pops/adaptable.rb +8 -17
- data/lib/puppet/pops/adapters.rb +22 -4
- data/lib/puppet/pops/evaluator/access_operator.rb +39 -5
- data/lib/puppet/pops/evaluator/closure.rb +19 -9
- data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- 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 +3 -2
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +2 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +7 -5
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +132 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +15 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +82 -16
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +6 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +24 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +5 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +18 -21
- data/lib/puppet/pops/functions/dispatch.rb +13 -6
- data/lib/puppet/pops/functions/function.rb +2 -2
- data/lib/puppet/pops/issue_reporter.rb +18 -1
- data/lib/puppet/pops/issues.rb +73 -10
- data/lib/puppet/pops/loader/base_loader.rb +14 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +11 -2
- data/lib/puppet/pops/loader/gem_support.rb +4 -2
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +28 -0
- data/lib/puppet/pops/loader/loader.rb +26 -5
- data/lib/puppet/pops/loader/loader_paths.rb +221 -32
- data/lib/puppet/pops/loader/module_loaders.rb +242 -40
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +93 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -9
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +121 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +10 -3
- data/lib/puppet/pops/loader/static_loader.rb +23 -44
- data/lib/puppet/pops/loader/task_instantiator.rb +44 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -1
- data/lib/puppet/pops/loaders.rb +169 -50
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +16 -2
- data/lib/puppet/pops/lookup/interpolation.rb +3 -2
- data/lib/puppet/pops/lookup/invocation.rb +10 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +18 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +65 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/lookup.rb +1 -0
- data/lib/puppet/pops/merge_strategy.rb +22 -18
- data/lib/puppet/pops/model/ast.pp +19 -0
- data/lib/puppet/pops/model/ast.rb +129 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +93 -13
- data/lib/puppet/pops/model/model_label_provider.rb +9 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +16 -1
- data/lib/puppet/pops/model/pn_transformer.rb +401 -0
- data/lib/puppet/pops/model/tree_dumper.rb +1 -1
- data/lib/puppet/pops/parser/code_merger.rb +4 -4
- data/lib/puppet/pops/parser/egrammar.ra +60 -18
- data/lib/puppet/pops/parser/eparser.rb +1926 -1745
- data/lib/puppet/pops/parser/epp_parser.rb +1 -1
- data/lib/puppet/pops/parser/epp_support.rb +9 -6
- data/lib/puppet/pops/parser/evaluating_parser.rb +9 -12
- data/lib/puppet/pops/parser/heredoc_support.rb +20 -10
- data/lib/puppet/pops/parser/interpolation_support.rb +16 -11
- data/lib/puppet/pops/parser/lexer2.rb +109 -100
- data/lib/puppet/pops/parser/lexer_support.rb +5 -4
- data/lib/puppet/pops/parser/locatable.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +116 -103
- data/lib/puppet/pops/parser/parser_support.rb +14 -5
- data/lib/puppet/pops/parser/pn_parser.rb +317 -0
- data/lib/puppet/pops/parser/slurp_support.rb +1 -3
- data/lib/puppet/pops/pcore.rb +43 -10
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/puppet_stack.rb +55 -37
- data/lib/puppet/pops/resource/param.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +4 -2
- data/lib/puppet/pops/serialization/abstract_reader.rb +4 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +6 -0
- data/lib/puppet/pops/serialization/extension.rb +1 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +68 -13
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/serialization/json_path.rb +5 -4
- data/lib/puppet/pops/serialization/object.rb +3 -4
- data/lib/puppet/pops/serialization/serializer.rb +2 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +24 -12
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
- data/lib/puppet/pops/serialization.rb +4 -2
- data/lib/puppet/pops/time/timespan.rb +4 -6
- data/lib/puppet/pops/types/class_loader.rb +6 -3
- data/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/lib/puppet/pops/types/iterable.rb +68 -13
- data/lib/puppet/pops/types/p_binary_type.rb +1 -2
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_meta_type.rb +5 -1
- data/lib/puppet/pops/types/p_object_type.rb +152 -17
- data/lib/puppet/pops/types/p_object_type_extension.rb +228 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +0 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +18 -4
- data/lib/puppet/pops/types/p_sensitive_type.rb +11 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +4 -4
- data/lib/puppet/pops/types/p_type_set_type.rb +28 -2
- data/lib/puppet/pops/types/p_uri_type.rb +190 -0
- data/lib/puppet/pops/types/puppet_object.rb +15 -1
- data/lib/puppet/pops/types/ruby_generator.rb +49 -58
- data/lib/puppet/pops/types/string_converter.rb +55 -23
- data/lib/puppet/pops/types/tree_iterators.rb +5 -1
- data/lib/puppet/pops/types/type_acceptor.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +45 -16
- data/lib/puppet/pops/types/type_factory.rb +46 -9
- data/lib/puppet/pops/types/type_formatter.rb +79 -17
- data/lib/puppet/pops/types/type_mismatch_describer.rb +3 -3
- data/lib/puppet/pops/types/type_parser.rb +112 -15
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +231 -115
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +181 -12
- data/lib/puppet/pops/validation/tasks_checker.rb +105 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +14 -8
- data/lib/puppet/pops/validation.rb +13 -20
- data/lib/puppet/pops/visitor.rb +12 -6
- data/lib/puppet/pops.rb +2 -1
- data/lib/puppet/property/ensure.rb +3 -2
- data/lib/puppet/property/keyvalue.rb +72 -9
- data/lib/puppet/property/list.rb +3 -2
- data/lib/puppet/property.rb +21 -18
- data/lib/puppet/provider/aix_object.rb +485 -0
- data/lib/puppet/provider/exec/posix.rb +16 -4
- data/lib/puppet/provider/exec.rb +71 -64
- data/lib/puppet/provider/file/posix.rb +11 -3
- data/lib/puppet/provider/file/windows.rb +50 -2
- data/lib/puppet/provider/group/aix.rb +69 -113
- data/lib/puppet/provider/group/groupadd.rb +92 -24
- data/lib/puppet/provider/group/ldap.rb +7 -4
- data/lib/puppet/provider/group/pw.rb +4 -2
- data/lib/puppet/provider/group/windows_adsi.rb +12 -8
- data/lib/puppet/provider/ldap.rb +8 -4
- data/lib/puppet/provider/nameservice/directoryservice.rb +12 -8
- data/lib/puppet/provider/nameservice/objectadd.rb +13 -24
- data/lib/puppet/provider/nameservice/pw.rb +14 -14
- data/lib/puppet/provider/nameservice.rb +20 -29
- data/lib/puppet/provider/network_device.rb +4 -2
- data/lib/puppet/provider/package/aix.rb +21 -4
- data/lib/puppet/provider/package/appdmg.rb +4 -3
- data/lib/puppet/provider/package/apple.rb +2 -2
- data/lib/puppet/provider/package/apt.rb +156 -10
- data/lib/puppet/provider/package/aptitude.rb +7 -1
- data/lib/puppet/provider/package/blastwave.rb +2 -1
- data/lib/puppet/provider/package/dnf.rb +7 -4
- data/lib/puppet/provider/package/dnfmodule.rb +141 -0
- data/lib/puppet/provider/package/dpkg.rb +51 -14
- data/lib/puppet/provider/package/fink.rb +22 -4
- data/lib/puppet/provider/package/gem.rb +151 -53
- data/lib/puppet/provider/package/macports.rb +8 -5
- data/lib/puppet/provider/package/nim.rb +19 -10
- data/lib/puppet/provider/package/openbsd.rb +30 -12
- data/lib/puppet/provider/package/opkg.rb +2 -1
- data/lib/puppet/provider/package/pacman.rb +9 -12
- data/lib/puppet/provider/package/pip.rb +271 -115
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pip3.rb +2 -5
- data/lib/puppet/provider/package/pkg.rb +57 -10
- data/lib/puppet/provider/package/pkgdmg.rb +8 -7
- data/lib/puppet/provider/package/pkgng.rb +56 -26
- data/lib/puppet/provider/package/pkgutil.rb +4 -3
- data/lib/puppet/provider/package/portage.rb +32 -23
- data/lib/puppet/provider/package/portupgrade.rb +2 -1
- data/lib/puppet/provider/package/puppet_gem.rb +12 -3
- data/lib/puppet/provider/package/puppetserver_gem.rb +171 -0
- data/lib/puppet/provider/package/rpm.rb +87 -242
- data/lib/puppet/provider/package/sun.rb +2 -2
- data/lib/puppet/provider/package/windows/exe_package.rb +45 -10
- data/lib/puppet/provider/package/windows/msi_package.rb +8 -0
- data/lib/puppet/provider/package/windows/package.rb +14 -4
- data/lib/puppet/provider/package/windows.rb +21 -4
- data/lib/puppet/provider/package/yum.rb +143 -39
- data/lib/puppet/provider/package/zypper.rb +68 -7
- data/lib/puppet/provider/package.rb +4 -1
- data/lib/puppet/provider/package_targetable.rb +69 -0
- data/lib/puppet/provider/parsedfile.rb +43 -12
- data/lib/puppet/provider/service/base.rb +10 -7
- data/lib/puppet/provider/service/daemontools.rb +9 -9
- data/lib/puppet/provider/service/debian.rb +3 -0
- data/lib/puppet/provider/service/init.rb +11 -9
- data/lib/puppet/provider/service/launchd.rb +49 -17
- data/lib/puppet/provider/service/openbsd.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +2 -2
- data/lib/puppet/provider/service/redhat.rb +3 -2
- data/lib/puppet/provider/service/runit.rb +2 -8
- data/lib/puppet/provider/service/service.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +60 -6
- data/lib/puppet/provider/service/systemd.rb +70 -26
- data/lib/puppet/provider/service/upstart.rb +39 -13
- data/lib/puppet/provider/service/windows.rb +117 -41
- data/lib/puppet/provider/user/aix.rb +223 -244
- data/lib/puppet/provider/user/directoryservice.rb +72 -16
- data/lib/puppet/provider/user/hpux.rb +2 -2
- data/lib/puppet/provider/user/ldap.rb +8 -4
- data/lib/puppet/provider/user/openbsd.rb +3 -2
- data/lib/puppet/provider/user/pw.rb +15 -5
- data/lib/puppet/provider/user/user_role_add.rb +17 -5
- data/lib/puppet/provider/user/useradd.rb +237 -62
- data/lib/puppet/provider/user/windows_adsi.rb +26 -2
- data/lib/puppet/provider.rb +41 -19
- data/lib/puppet/reference/configuration.rb +12 -3
- data/lib/puppet/reference/indirection.rb +2 -2
- data/lib/puppet/reference/metaparameter.rb +1 -3
- data/lib/puppet/reference/providers.rb +6 -7
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/reference/type.rb +14 -19
- data/lib/puppet/relationship.rb +4 -9
- data/lib/puppet/reports/http.rb +15 -8
- data/lib/puppet/reports/store.rb +1 -1
- data/lib/puppet/reports.rb +3 -3
- data/lib/puppet/resource/capability_finder.rb +18 -14
- data/lib/puppet/resource/catalog.rb +49 -64
- data/lib/puppet/resource/status.rb +11 -3
- data/lib/puppet/resource/type.rb +28 -11
- data/lib/puppet/resource/type_collection.rb +27 -20
- data/lib/puppet/resource.rb +100 -24
- data/lib/puppet/rest/errors.rb +15 -0
- data/lib/puppet/rest/response.rb +35 -0
- data/lib/puppet/rest/route.rb +85 -0
- data/lib/puppet/rest/routes.rb +135 -0
- data/lib/puppet/runtime.rb +66 -0
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +34 -4
- data/lib/puppet/settings/config_file.rb +5 -5
- data/lib/puppet/settings/environment_conf.rb +12 -2
- data/lib/puppet/settings/file_setting.rb +3 -2
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/settings/ini_file.rb +67 -12
- data/lib/puppet/settings/server_list_setting.rb +9 -0
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/settings.rb +220 -67
- data/lib/puppet/ssl/base.rb +4 -11
- data/lib/puppet/ssl/certificate.rb +11 -4
- data/lib/puppet/ssl/certificate_request.rb +31 -23
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/certificate_signer.rb +11 -0
- data/lib/puppet/ssl/error.rb +26 -0
- data/lib/puppet/ssl/host.rb +291 -186
- data/lib/puppet/ssl/key.rb +5 -7
- data/lib/puppet/ssl/oids.rb +4 -3
- data/lib/puppet/ssl/openssl_loader.rb +24 -0
- data/lib/puppet/ssl/ssl_context.rb +30 -0
- data/lib/puppet/ssl/ssl_provider.rb +333 -0
- data/lib/puppet/ssl/state_machine.rb +472 -0
- data/lib/puppet/ssl/validator/default_validator.rb +61 -25
- data/lib/puppet/ssl/validator/no_validator.rb +3 -1
- data/lib/puppet/ssl/validator.rb +2 -1
- data/lib/puppet/ssl/verifier.rb +140 -0
- data/lib/puppet/ssl/verifier_adapter.rb +58 -0
- data/lib/puppet/ssl.rb +9 -3
- data/lib/puppet/syntax_checkers/base64.rb +1 -1
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/test/test_helper.rb +33 -18
- data/lib/puppet/thread_local.rb +7 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +3 -3
- data/lib/puppet/transaction/event.rb +40 -16
- data/lib/puppet/transaction/event_manager.rb +17 -5
- data/lib/puppet/transaction/persistence.rb +22 -2
- data/lib/puppet/transaction/report.rb +57 -34
- data/lib/puppet/transaction/resource_harness.rb +9 -4
- data/lib/puppet/transaction.rb +77 -23
- data/lib/puppet/trusted_external.rb +41 -0
- data/lib/puppet/type/component.rb +2 -1
- data/lib/puppet/type/exec.rb +156 -66
- data/lib/puppet/type/file/checksum.rb +10 -4
- data/lib/puppet/type/file/checksum_value.rb +4 -3
- data/lib/puppet/type/file/content.rb +24 -8
- data/lib/puppet/type/file/ctime.rb +2 -1
- data/lib/puppet/type/file/data_sync.rb +8 -3
- data/lib/puppet/type/file/ensure.rb +11 -8
- data/lib/puppet/type/file/mode.rb +15 -3
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/file/selcontext.rb +2 -1
- data/lib/puppet/type/file/source.rb +98 -75
- data/lib/puppet/type/file/target.rb +2 -1
- data/lib/puppet/type/file/type.rb +2 -1
- data/lib/puppet/type/file.rb +146 -51
- data/lib/puppet/type/filebucket.rb +15 -11
- data/lib/puppet/type/group.rb +43 -12
- data/lib/puppet/type/notify.rb +6 -5
- data/lib/puppet/type/package.rb +185 -35
- data/lib/puppet/type/resources.rb +15 -4
- data/lib/puppet/type/schedule.rb +59 -99
- data/lib/puppet/type/service.rb +76 -25
- data/lib/puppet/type/stage.rb +1 -1
- data/lib/puppet/type/tidy.rb +57 -18
- data/lib/puppet/type/user.rb +186 -101
- data/lib/puppet/type.rb +159 -90
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +51 -62
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/character_encoding.rb +11 -29
- data/lib/puppet/util/checksums.rb +101 -7
- data/lib/puppet/util/classgen.rb +12 -12
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/command_line.rb +16 -10
- data/lib/puppet/util/connection.rb +88 -0
- data/lib/puppet/util/diff.rb +4 -2
- data/lib/puppet/util/errors.rb +0 -2
- data/lib/puppet/util/execution.rb +28 -11
- data/lib/puppet/util/fact_dif.rb +81 -0
- data/lib/puppet/util/feature.rb +77 -43
- data/lib/puppet/util/fileparsing.rb +79 -46
- data/lib/puppet/util/filetype.rb +62 -13
- data/lib/puppet/util/http_proxy.rb +37 -25
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/instance_loader.rb +16 -29
- data/lib/puppet/util/json.rb +89 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/ldap/connection.rb +11 -9
- data/lib/puppet/util/ldap/manager.rb +6 -3
- data/lib/puppet/util/log/destinations.rb +21 -17
- data/lib/puppet/util/log.rb +26 -17
- data/lib/puppet/util/logging.rb +36 -47
- data/lib/puppet/util/metric.rb +4 -3
- data/lib/puppet/util/monkey_patches.rb +76 -23
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +2 -3
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/package.rb +25 -16
- data/lib/puppet/util/pidlock.rb +45 -5
- data/lib/puppet/util/platform.rb +48 -0
- data/lib/puppet/util/plist.rb +10 -4
- data/lib/puppet/util/posix.rb +69 -3
- data/lib/puppet/util/provider_features.rb +5 -10
- data/lib/puppet/util/rdoc/code_objects.rb +2 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +6 -4
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -2
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/reference.rb +10 -16
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/rubygems.rb +6 -14
- data/lib/puppet/util/run_mode.rb +6 -2
- data/lib/puppet/util/selinux.rb +41 -8
- data/lib/puppet/util/skip_tags.rb +4 -0
- data/lib/puppet/util/ssl.rb +31 -1
- data/lib/puppet/util/storage.rb +13 -2
- data/lib/puppet/util/suidmanager.rb +8 -7
- data/lib/puppet/util/symbolic_file_mode.rb +29 -17
- data/lib/puppet/util/tag_set.rb +1 -1
- data/lib/puppet/util/tagging.rb +19 -5
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +305 -206
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/file.rb +20 -2
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +24 -14
- data/lib/puppet/util/windows/process.rb +93 -4
- data/lib/puppet/util/windows/registry.rb +48 -16
- data/lib/puppet/util/windows/root_certs.rb +1 -1
- data/lib/puppet/util/windows/security.rb +66 -16
- data/lib/puppet/util/windows/service.rb +1147 -0
- data/lib/puppet/util/windows/sid.rb +68 -12
- data/lib/puppet/util/windows/user.rb +254 -14
- data/lib/puppet/util/windows.rb +23 -2
- data/lib/puppet/util/yaml.rb +62 -7
- data/lib/puppet/util.rb +130 -55
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +18 -18
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +2 -5
- data/lib/puppet/x509/cert_provider.rb +355 -0
- data/lib/puppet/x509/pem_store.rb +55 -0
- data/lib/puppet/x509.rb +7 -0
- data/lib/puppet.rb +83 -36
- data/lib/puppet_pal.rb +8 -0
- data/locales/puppet.pot +5 -9763
- data/man/man5/puppet.conf.5 +651 -390
- data/man/man8/puppet-agent.8 +88 -67
- data/man/man8/puppet-apply.8 +8 -5
- data/man/man8/puppet-catalog.8 +39 -11
- data/man/man8/puppet-config.8 +42 -8
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +55 -22
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +35 -13
- data/man/man8/puppet-facts.8 +144 -6
- data/man/man8/puppet-filebucket.8 +58 -12
- data/man/man8/puppet-generate.8 +2 -2
- data/man/man8/puppet-help.8 +7 -4
- data/man/man8/puppet-key.8 +9 -15
- data/man/man8/puppet-lookup.8 +10 -7
- data/man/man8/puppet-man.8 +11 -5
- data/man/man8/puppet-module.8 +28 -106
- data/man/man8/puppet-node.8 +13 -13
- data/man/man8/puppet-parser.8 +32 -9
- data/man/man8/puppet-plugin.8 +2 -2
- data/man/man8/puppet-report.8 +9 -6
- data/man/man8/puppet-resource.8 +2 -2
- data/man/man8/puppet-script.8 +70 -0
- data/man/man8/puppet-ssl.8 +59 -0
- data/man/man8/puppet-status.8 +7 -7
- data/man/man8/puppet.8 +12 -3
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +92 -0
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
- data/{lib/puppet/vendor/semantic_puppet → spec/fixtures/integration/l10n/envs/prod/modules/demo}/locales/config.yaml +8 -4
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +117 -0
- data/spec/fixtures/ssl/127.0.0.1.pem +69 -0
- data/spec/fixtures/ssl/bad-basic-constraints.pem +81 -0
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +81 -0
- data/spec/fixtures/ssl/ca.pem +81 -0
- data/spec/fixtures/ssl/crl.pem +40 -0
- data/spec/fixtures/ssl/ec-key.pem +18 -0
- data/spec/fixtures/ssl/ec.pem +49 -0
- data/spec/fixtures/ssl/encrypted-ec-key.pem +21 -0
- data/spec/fixtures/ssl/encrypted-key.pem +120 -0
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +40 -0
- data/spec/fixtures/ssl/intermediate-agent.pem +81 -0
- data/spec/fixtures/ssl/intermediate-crl.pem +46 -0
- data/spec/fixtures/ssl/intermediate.pem +81 -0
- data/spec/fixtures/ssl/netlock-arany-utf8.pem +23 -0
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +117 -0
- data/spec/fixtures/ssl/pluto.pem +66 -0
- data/spec/fixtures/ssl/request-key.pem +117 -0
- data/spec/fixtures/ssl/request.pem +60 -0
- data/spec/fixtures/ssl/revoked-key.pem +117 -0
- data/spec/fixtures/ssl/revoked.pem +66 -0
- data/spec/fixtures/ssl/signed-key.pem +117 -0
- data/spec/fixtures/ssl/signed.pem +66 -0
- data/spec/fixtures/ssl/tampered-cert.pem +66 -0
- data/spec/fixtures/ssl/tampered-csr.pem +60 -0
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +117 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +69 -0
- data/spec/fixtures/ssl/unknown-ca-key.pem +117 -0
- data/spec/fixtures/ssl/unknown-ca.pem +81 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.json +76 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- 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/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +11 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +11 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +11 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +11 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +12 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +9 -0
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +9 -0
- data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +1 -0
- data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +1 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/fixtures/unit/provider/parsedfile/aliases.txt +2 -0
- data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +6 -0
- data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +13 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +36 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +1 -102
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +1 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -102
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -98
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -102
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +1 -102
- data/spec/integration/agent/logging_spec.rb +7 -9
- data/spec/integration/application/agent_spec.rb +848 -0
- data/spec/integration/application/apply_spec.rb +338 -178
- data/spec/integration/application/doc_spec.rb +16 -7
- data/spec/integration/application/filebucket_spec.rb +255 -0
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +105 -40
- data/spec/integration/application/module_spec.rb +89 -0
- data/spec/integration/application/plugin_spec.rb +123 -0
- data/spec/integration/application/resource_spec.rb +68 -0
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/configurer_spec.rb +109 -12
- data/spec/integration/data_binding_spec.rb +83 -0
- data/spec/integration/defaults_spec.rb +30 -19
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/http/client_spec.rb +213 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +2 -4
- data/spec/integration/indirector/facts/facter_spec.rb +112 -63
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +9 -38
- data/spec/integration/network/http_pool_spec.rb +293 -0
- data/spec/integration/node/environment_spec.rb +16 -2
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -11
- data/spec/integration/parser/catalog_spec.rb +8 -8
- data/spec/integration/parser/collection_spec.rb +6 -11
- data/spec/integration/parser/compiler_spec.rb +60 -30
- data/spec/integration/parser/pcore_resource_spec.rb +13 -3
- data/spec/integration/parser/scope_spec.rb +3 -3
- data/spec/integration/parser/script_compiler_spec.rb +113 -0
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/file/windows_spec.rb +162 -0
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +3 -8
- data/spec/integration/transaction/report_spec.rb +12 -17
- data/spec/integration/transaction_spec.rb +37 -39
- data/spec/integration/type/exec_spec.rb +71 -47
- data/spec/integration/type/file_spec.rb +142 -42
- data/spec/integration/type/notify_spec.rb +46 -0
- data/spec/integration/type/package_spec.rb +27 -31
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type_spec.rb +1 -3
- data/spec/integration/util/autoload_spec.rb +10 -8
- data/spec/integration/util/execution_spec.rb +54 -5
- data/spec/integration/util/rdoc/parser_spec.rb +14 -25
- data/spec/integration/util/settings_spec.rb +2 -2
- data/spec/integration/util/windows/adsi_spec.rb +116 -8
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/principal_spec.rb +33 -4
- data/spec/integration/util/windows/process_spec.rb +28 -44
- data/spec/integration/util/windows/registry_spec.rb +130 -53
- data/spec/integration/util/windows/security_spec.rb +103 -12
- data/spec/integration/util/windows/user_spec.rb +108 -29
- data/spec/integration/util_spec.rb +9 -38
- data/spec/lib/matchers/json.rb +13 -19
- data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +7 -8
- data/spec/lib/puppet/test_ca.rb +164 -0
- data/spec/lib/puppet_spec/compiler.rb +28 -1
- data/spec/lib/puppet_spec/files.rb +28 -24
- data/spec/lib/puppet_spec/fixtures.rb +24 -0
- data/spec/lib/puppet_spec/https.rb +95 -0
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/matchers.rb +0 -93
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +3 -3
- data/spec/lib/puppet_spec/modules.rb +39 -4
- data/spec/lib/puppet_spec/puppetserver.rb +179 -0
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/lib/puppet_spec/ssl.rb +265 -0
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
- data/spec/shared_behaviours/file_server_terminus.rb +8 -11
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_behaviours/path_parameters.rb +1 -1
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/shared_contexts/checksum.rb +4 -1
- data/spec/shared_contexts/digests.rb +46 -1
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/shared_contexts/l10n.rb +32 -0
- data/spec/shared_contexts/types_setup.rb +10 -3
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +49 -22
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +181 -104
- data/spec/unit/application/agent_spec.rb +159 -130
- data/spec/unit/application/apply_spec.rb +199 -145
- data/spec/unit/application/config_spec.rb +224 -5
- data/spec/unit/application/describe_spec.rb +88 -51
- data/spec/unit/application/device_spec.rb +424 -300
- data/spec/unit/application/doc_spec.rb +46 -48
- data/spec/unit/application/face_base_spec.rb +69 -68
- data/spec/unit/application/facts_spec.rb +518 -9
- data/spec/unit/application/filebucket_spec.rb +98 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +176 -47
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +76 -51
- data/spec/unit/application/ssl_spec.rb +458 -0
- data/spec/unit/application_spec.rb +171 -94
- data/spec/unit/capability_spec.rb +17 -15
- data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +11 -22
- data/spec/unit/concurrent/lock_spec.rb +29 -0
- data/spec/unit/concurrent/thread_local_singleton_spec.rb +39 -0
- data/spec/unit/configurer/downloader_spec.rb +41 -21
- data/spec/unit/configurer/fact_handler_spec.rb +6 -11
- data/spec/unit/configurer/plugin_handler_spec.rb +71 -48
- data/spec/unit/configurer_spec.rb +851 -480
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +32 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +32 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +36 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +68 -5
- data/spec/unit/context_spec.rb +119 -38
- data/spec/unit/daemon_spec.rb +39 -107
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -5
- data/spec/unit/datatypes_spec.rb +352 -0
- data/spec/unit/defaults_spec.rb +182 -19
- data/spec/unit/environments_spec.rb +592 -104
- data/spec/unit/etc_spec.rb +52 -29
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/config_spec.rb +247 -33
- data/spec/unit/face/epp_face_spec.rb +63 -9
- data/spec/unit/face/facts_spec.rb +70 -1
- data/spec/unit/face/generate_spec.rb +68 -5
- data/spec/unit/face/help_spec.rb +67 -74
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -73
- data/spec/unit/face/module/search_spec.rb +39 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +22 -59
- data/spec/unit/face/parser_spec.rb +177 -25
- data/spec/unit/face/plugin_spec.rb +56 -19
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/facter_impl_spec.rb +31 -0
- data/spec/unit/file_bucket/dipper_spec.rb +39 -28
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +17 -21
- data/spec/unit/file_serving/configuration/parser_spec.rb +49 -28
- data/spec/unit/file_serving/configuration_spec.rb +77 -70
- data/spec/unit/file_serving/content_spec.rb +10 -12
- data/spec/unit/file_serving/fileset_spec.rb +123 -59
- data/spec/unit/file_serving/http_metadata_spec.rb +38 -14
- data/spec/unit/file_serving/metadata_spec.rb +41 -42
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +25 -26
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +25 -26
- data/spec/unit/file_serving/mount/plugins_spec.rb +25 -26
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +47 -45
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -29
- data/spec/unit/file_system/path_pattern_spec.rb +1 -1
- data/spec/unit/file_system/uniquefile_spec.rb +41 -6
- data/spec/unit/file_system_spec.rb +330 -9
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +14 -57
- data/spec/unit/forge/module_release_spec.rb +161 -48
- data/spec/unit/forge/repository_spec.rb +66 -163
- data/spec/unit/forge_spec.rb +47 -114
- data/spec/unit/functions/abs_spec.rb +70 -0
- data/spec/unit/functions/assert_type_spec.rb +2 -2
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/break_spec.rb +34 -2
- 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 -3
- data/spec/unit/functions/convert_to_spec.rb +25 -0
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/downcase_spec.rb +34 -0
- data/spec/unit/functions/empty_spec.rb +87 -0
- data/spec/unit/functions/epp_spec.rb +13 -5
- data/spec/unit/functions/filter_spec.rb +4 -4
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/find_template_spec.rb +69 -0
- data/spec/unit/functions/flatten_spec.rb +31 -0
- 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/group_by_spec.rb +40 -0
- data/spec/unit/functions/hiera_spec.rb +14 -48
- data/spec/unit/functions/include_spec.rb +16 -5
- data/spec/unit/functions/index_spec.rb +184 -0
- data/spec/unit/functions/inline_epp_spec.rb +27 -2
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/logging_spec.rb +11 -3
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -2
- data/spec/unit/functions/lookup_spec.rb +165 -63
- data/spec/unit/functions/lstrip_spec.rb +30 -0
- data/spec/unit/functions/match_spec.rb +21 -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 +43 -0
- data/spec/unit/functions/new_spec.rb +30 -14
- data/spec/unit/functions/partition_spec.rb +40 -0
- data/spec/unit/functions/regsubst_spec.rb +3 -4
- data/spec/unit/functions/require_spec.rb +1 -2
- data/spec/unit/functions/round_spec.rb +41 -0
- data/spec/unit/functions/rstrip_spec.rb +30 -0
- data/spec/unit/functions/shared.rb +15 -6
- 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/step_spec.rb +1 -1
- data/spec/unit/functions/strftime_spec.rb +2 -2
- data/spec/unit/functions/strip_spec.rb +30 -0
- data/spec/unit/functions/tree_each_spec.rb +49 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions/upcase_spec.rb +34 -0
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +43 -9
- data/spec/unit/functions4_spec.rb +154 -86
- data/spec/unit/gettext/config_spec.rb +45 -14
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +51 -12
- data/spec/unit/hiera/scope_spec.rb +7 -0
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/http/client_spec.rb +938 -0
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +133 -0
- data/spec/unit/http/response_spec.rb +75 -0
- data/spec/unit/http/service/ca_spec.rb +198 -0
- data/spec/unit/http/service/compiler_spec.rb +806 -0
- data/spec/unit/http/service/file_server_spec.rb +307 -0
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +117 -0
- data/spec/unit/http/service_spec.rb +144 -0
- data/spec/unit/http/session_spec.rb +307 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +343 -194
- data/spec/unit/indirector/catalog/json_spec.rb +10 -5
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +67 -3
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/file_spec.rb +0 -9
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/direct_file_server_spec.rb +47 -50
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +29 -24
- data/spec/unit/indirector/face_spec.rb +8 -9
- data/spec/unit/indirector/facts/facter_spec.rb +131 -43
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +99 -0
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +95 -79
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +156 -100
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -9
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +53 -3
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +110 -3
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +143 -137
- data/spec/unit/indirector/indirection_spec.rb +296 -231
- data/spec/unit/indirector/json_spec.rb +10 -12
- data/spec/unit/indirector/key/file_spec.rb +20 -39
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +10 -12
- data/spec/unit/indirector/node/exec_spec.rb +43 -23
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +57 -3
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/json_spec.rb +72 -0
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +58 -52
- data/spec/unit/indirector/report/yaml_spec.rb +72 -9
- data/spec/unit/indirector/request_spec.rb +27 -29
- data/spec/unit/indirector/resource/ral_spec.rb +40 -82
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +166 -107
- data/spec/unit/indirector/ssl_file_spec.rb +99 -122
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +43 -3
- data/spec/unit/indirector/terminus_spec.rb +29 -29
- data/spec/unit/indirector/yaml_spec.rb +92 -70
- data/spec/unit/indirector_spec.rb +2 -4
- data/spec/unit/info_service_spec.rb +195 -11
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +1 -2
- data/spec/unit/interface/action_spec.rb +36 -13
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +6 -6
- data/spec/unit/module_spec.rb +135 -113
- data/spec/unit/module_tool/applications/installer_spec.rb +116 -13
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +16 -0
- data/spec/unit/module_tool/applications/unpacker_spec.rb +17 -17
- data/spec/unit/module_tool/applications/upgrader_spec.rb +11 -5
- 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 +32 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -34
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +16 -20
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -16
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +29 -29
- data/spec/unit/network/formats_spec.rb +82 -18
- data/spec/unit/network/http/api/indirected_routes_spec.rb +54 -48
- 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 +11 -23
- data/spec/unit/network/http/api_spec.rb +0 -28
- data/spec/unit/network/http/compression_spec.rb +27 -25
- data/spec/unit/network/http/connection_spec.rb +537 -275
- data/spec/unit/network/http/factory_spec.rb +82 -36
- data/spec/unit/network/http/handler_spec.rb +10 -23
- data/spec/unit/network/http/nocache_pool_spec.rb +32 -11
- data/spec/unit/network/http/pool_spec.rb +166 -59
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +9 -3
- data/spec/unit/network/http/site_spec.rb +7 -1
- data/spec/unit/network/http_pool_spec.rb +99 -48
- data/spec/unit/network/http_spec.rb +1 -2
- data/spec/unit/network/resolver_spec.rb +103 -29
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/network/uri_spec.rb +47 -0
- data/spec/unit/node/environment_spec.rb +72 -24
- data/spec/unit/node/facts_spec.rb +20 -8
- data/spec/unit/node_spec.rb +38 -23
- data/spec/unit/other/selinux_spec.rb +0 -72
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +7 -9
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +93 -114
- data/spec/unit/parser/environment_compiler_spec.rb +67 -23
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +10 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -5
- data/spec/unit/parser/functions/fail_spec.rb +2 -7
- data/spec/unit/parser/functions/file_spec.rb +13 -18
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +39 -2
- data/spec/unit/parser/functions/generate_spec.rb +36 -39
- data/spec/unit/parser/functions/inline_template_spec.rb +7 -5
- data/spec/unit/parser/functions/realize_spec.rb +9 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -5
- data/spec/unit/parser/functions/scanf_spec.rb +0 -5
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -5
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -5
- data/spec/unit/parser/functions/tag_spec.rb +8 -6
- data/spec/unit/parser/functions/tagged_spec.rb +36 -0
- data/spec/unit/parser/functions/template_spec.rb +21 -17
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -6
- data/spec/unit/parser/functions_spec.rb +28 -4
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource/param_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +53 -48
- data/spec/unit/parser/scope_spec.rb +72 -39
- data/spec/unit/parser/templatewrapper_spec.rb +25 -15
- data/spec/unit/parser/type_loader_spec.rb +18 -20
- data/spec/unit/plan_spec.rb +65 -0
- data/spec/unit/pops/adaptable_spec.rb +0 -2
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +10 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -2
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +133 -17
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +24 -11
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +8 -9
- data/spec/unit/pops/issues_spec.rb +40 -26
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
- data/spec/unit/pops/loaders/loader_spec.rb +516 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +294 -46
- data/spec/unit/pops/loaders/module_loaders_spec.rb +112 -0
- data/spec/unit/pops/loaders/static_loader_spec.rb +16 -44
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +7 -3
- data/spec/unit/pops/lookup/lookup_spec.rb +81 -0
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +5 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +56 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +89 -26
- data/spec/unit/pops/parser/locator_spec.rb +63 -1
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +42 -10
- data/spec/unit/pops/parser/parse_calls_spec.rb +28 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +2 -14
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +124 -12
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +47 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -36
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +100 -0
- data/spec/unit/pops/pn_spec.rb +147 -0
- data/spec/unit/pops/puppet_stack_spec.rb +38 -9
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/packer_spec.rb +8 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +37 -5
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +74 -4
- data/spec/unit/pops/serialization/to_stringified_spec.rb +162 -0
- data/spec/unit/pops/types/deferred_spec.rb +87 -0
- data/spec/unit/pops/types/error_spec.rb +207 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_init_type_spec.rb +98 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +298 -13
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_timespan_type_spec.rb +33 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +28 -2
- data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
- data/spec/unit/pops/types/p_uri_type_spec.rb +191 -0
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +87 -54
- data/spec/unit/pops/types/string_converter_spec.rb +39 -6
- data/spec/unit/pops/types/task_spec.rb +411 -0
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +120 -53
- data/spec/unit/pops/types/type_formatter_spec.rb +31 -13
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +9 -0
- data/spec/unit/pops/types/type_parser_spec.rb +26 -14
- data/spec/unit/pops/types/types_spec.rb +99 -6
- data/spec/unit/pops/validator/validator_spec.rb +455 -7
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +127 -38
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +55 -46
- data/spec/unit/provider/aix_object_spec.rb +821 -0
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +38 -15
- data/spec/unit/provider/exec/shell_spec.rb +2 -2
- data/spec/unit/provider/exec/windows_spec.rb +4 -6
- data/spec/unit/provider/exec_spec.rb +210 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +17 -19
- data/spec/unit/provider/group/aix_spec.rb +91 -0
- data/spec/unit/provider/group/groupadd_spec.rb +237 -29
- data/spec/unit/provider/group/ldap_spec.rb +33 -36
- data/spec/unit/provider/group/pw_spec.rb +15 -18
- data/spec/unit/provider/group/windows_adsi_spec.rb +173 -68
- data/spec/unit/provider/ldap_spec.rb +61 -63
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +102 -109
- data/spec/unit/provider/nameservice_spec.rb +99 -100
- data/spec/unit/provider/package/aix_spec.rb +48 -22
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +174 -37
- data/spec/unit/provider/package/aptitude_spec.rb +8 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +8 -13
- data/spec/unit/provider/package/base_spec.rb +7 -6
- data/spec/unit/provider/package/dnf_spec.rb +43 -18
- data/spec/unit/provider/package/dnfmodule_spec.rb +256 -0
- data/spec/unit/provider/package/dpkg_spec.rb +348 -137
- data/spec/unit/provider/package/freebsd_spec.rb +15 -18
- data/spec/unit/provider/package/gem_spec.rb +210 -83
- data/spec/unit/provider/package/hpux_spec.rb +15 -18
- data/spec/unit/provider/package/macports_spec.rb +56 -54
- data/spec/unit/provider/package/nim_spec.rb +76 -59
- data/spec/unit/provider/package/openbsd_spec.rb +62 -49
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +103 -133
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip3_spec.rb +20 -6
- data/spec/unit/provider/package/pip_spec.rb +252 -157
- data/spec/unit/provider/package/pkg_spec.rb +194 -98
- data/spec/unit/provider/package/pkgdmg_spec.rb +64 -66
- data/spec/unit/provider/package/pkgin_spec.rb +21 -24
- data/spec/unit/provider/package/pkgng_spec.rb +80 -38
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +89 -74
- data/spec/unit/provider/package/puppet_gem_spec.rb +53 -21
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/rpm_spec.rb +280 -261
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +9 -12
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +18 -14
- data/spec/unit/provider/package/windows/exe_package_spec.rb +32 -18
- data/spec/unit/provider/package/windows/msi_package_spec.rb +20 -23
- data/spec/unit/provider/package/windows/package_spec.rb +38 -43
- data/spec/unit/provider/package/windows_spec.rb +51 -36
- data/spec/unit/provider/package/yum_spec.rb +442 -13
- data/spec/unit/provider/package/zypper_spec.rb +202 -106
- data/spec/unit/provider/package_targetable_spec.rb +60 -0
- data/spec/unit/provider/parsedfile_spec.rb +81 -46
- data/spec/unit/provider/service/base_spec.rb +6 -11
- data/spec/unit/provider/service/bsd_spec.rb +52 -51
- data/spec/unit/provider/service/daemontools_spec.rb +71 -52
- data/spec/unit/provider/service/debian_spec.rb +51 -53
- data/spec/unit/provider/service/freebsd_spec.rb +21 -21
- data/spec/unit/provider/service/gentoo_spec.rb +78 -82
- data/spec/unit/provider/service/init_spec.rb +117 -67
- data/spec/unit/provider/service/launchd_spec.rb +196 -114
- data/spec/unit/provider/service/openbsd_spec.rb +98 -92
- data/spec/unit/provider/service/openrc_spec.rb +73 -75
- data/spec/unit/provider/service/openwrt_spec.rb +36 -44
- data/spec/unit/provider/service/rcng_spec.rb +20 -21
- data/spec/unit/provider/service/redhat_spec.rb +76 -58
- data/spec/unit/provider/service/runit_spec.rb +62 -43
- data/spec/unit/provider/service/smf_spec.rb +143 -73
- data/spec/unit/provider/service/src_spec.rb +60 -69
- data/spec/unit/provider/service/systemd_spec.rb +330 -155
- data/spec/unit/provider/service/upstart_spec.rb +106 -84
- data/spec/unit/provider/service/windows_spec.rb +336 -91
- data/spec/unit/provider/user/aix_spec.rb +263 -112
- data/spec/unit/provider/user/directoryservice_spec.rb +229 -124
- data/spec/unit/provider/user/hpux_spec.rb +19 -20
- data/spec/unit/provider/user/ldap_spec.rb +80 -83
- data/spec/unit/provider/user/openbsd_spec.rb +11 -12
- data/spec/unit/provider/user/pw_spec.rb +82 -44
- data/spec/unit/provider/user/user_role_add_spec.rb +109 -92
- data/spec/unit/provider/user/useradd_spec.rb +479 -90
- data/spec/unit/provider/user/windows_adsi_spec.rb +144 -63
- data/spec/unit/provider_spec.rb +241 -47
- data/spec/unit/puppet_pal_2pec.rb +1033 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +962 -0
- data/spec/unit/puppet_pal_spec.rb +3 -0
- data/spec/unit/puppet_spec.rb +58 -25
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +70 -54
- data/spec/unit/reports/store_spec.rb +20 -17
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +31 -29
- data/spec/unit/resource/catalog_spec.rb +104 -82
- data/spec/unit/resource/status_spec.rb +23 -12
- data/spec/unit/resource/type_collection_spec.rb +19 -17
- data/spec/unit/resource/type_spec.rb +52 -38
- data/spec/unit/resource_spec.rb +207 -49
- data/spec/unit/rest/route_spec.rb +132 -0
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +11 -11
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +9 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +54 -48
- data/spec/unit/settings/http_extra_headers_spec.rb +64 -0
- data/spec/unit/settings/ini_file_spec.rb +314 -5
- data/spec/unit/settings/path_setting_spec.rb +2 -3
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/server_list_setting_spec.rb +21 -0
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +905 -448
- data/spec/unit/ssl/base_spec.rb +13 -15
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +21 -8
- data/spec/unit/ssl/certificate_request_spec.rb +84 -65
- data/spec/unit/ssl/certificate_spec.rb +34 -32
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +336 -649
- data/spec/unit/ssl/key_spec.rb +31 -49
- data/spec/unit/ssl/oids_spec.rb +1 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +630 -0
- data/spec/unit/ssl/state_machine_spec.rb +983 -0
- data/spec/unit/ssl/validator_spec.rb +74 -214
- data/spec/unit/ssl/verifier_spec.rb +123 -0
- data/spec/unit/task_spec.rb +216 -27
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +66 -72
- data/spec/unit/transaction/event_manager_spec.rb +114 -89
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +83 -27
- data/spec/unit/transaction/report_spec.rb +55 -27
- data/spec/unit/transaction/resource_harness_spec.rb +72 -33
- data/spec/unit/transaction_spec.rb +328 -115
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/exec_spec.rb +210 -95
- data/spec/unit/type/file/checksum_spec.rb +29 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +72 -58
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +13 -15
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +16 -21
- data/spec/unit/type/file/source_spec.rb +186 -126
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +321 -267
- data/spec/unit/type/filebucket_spec.rb +12 -11
- data/spec/unit/type/group_spec.rb +32 -11
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +76 -54
- data/spec/unit/type/resources_spec.rb +105 -75
- data/spec/unit/type/schedule_spec.rb +29 -29
- data/spec/unit/type/service_spec.rb +252 -76
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +92 -61
- data/spec/unit/type/user_spec.rb +79 -143
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type_spec.rb +288 -140
- data/spec/unit/util/at_fork_spec.rb +21 -21
- data/spec/unit/util/autoload_spec.rb +126 -94
- data/spec/unit/util/backups_spec.rb +33 -35
- data/spec/unit/util/character_encoding_spec.rb +5 -48
- data/spec/unit/util/checksums_spec.rb +57 -42
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +50 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +12 -5
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +288 -167
- data/spec/unit/util/execution_stub_spec.rb +2 -3
- data/spec/unit/util/feature_spec.rb +56 -29
- data/spec/unit/util/filetype_spec.rb +62 -50
- data/spec/unit/util/http_proxy_spec.rb +178 -17
- data/spec/unit/util/inifile_spec.rb +70 -52
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/json_spec.rb +126 -0
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +100 -129
- data/spec/unit/util/lockfile_spec.rb +1 -2
- data/spec/unit/util/log/destinations_spec.rb +68 -37
- data/spec/unit/util/log_spec.rb +55 -151
- data/spec/unit/util/logging_spec.rb +323 -105
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +23 -13
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package/version/debian_spec.rb +83 -0
- data/spec/unit/util/package/version/pip_spec.rb +464 -0
- data/spec/unit/util/package/version/range_spec.rb +175 -0
- data/spec/unit/util/package/version/rpm_spec.rb +121 -0
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +130 -15
- data/spec/unit/util/plist_spec.rb +66 -33
- data/spec/unit/util/posix_spec.rb +426 -47
- data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/rubygems_spec.rb +8 -43
- data/spec/unit/util/run_mode_spec.rb +16 -17
- data/spec/unit/util/selinux_spec.rb +204 -98
- data/spec/unit/util/skip_tags_spec.rb +14 -0
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +125 -12
- data/spec/unit/util/suidmanager_spec.rb +83 -91
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +8 -2
- data/spec/unit/util/tagging_spec.rb +27 -9
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -2
- data/spec/unit/util/windows/access_control_list_spec.rb +1 -2
- data/spec/unit/util/windows/adsi_spec.rb +285 -137
- data/spec/unit/util/windows/api_types_spec.rb +105 -42
- data/spec/unit/util/windows/eventlog_spec.rb +10 -13
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +1 -2
- data/spec/unit/util/windows/security_descriptor_spec.rb +1 -3
- data/spec/unit/util/windows/service_spec.rb +677 -0
- data/spec/unit/util/windows/sid_spec.rb +131 -21
- data/spec/unit/util/windows/string_spec.rb +1 -2
- data/spec/unit/util/windows_spec.rb +23 -0
- data/spec/unit/util/yaml_spec.rb +193 -34
- data/spec/unit/util_spec.rb +110 -130
- data/spec/unit/version_spec.rb +6 -6
- data/spec/unit/x509/cert_provider_spec.rb +606 -0
- data/spec/unit/x509/pem_store_spec.rb +160 -0
- data/tasks/benchmark.rake +41 -0
- data/tasks/ci.rake +0 -5
- data/tasks/generate_cert_fixtures.rake +194 -0
- data/tasks/manpages.rake +15 -36
- data/tasks/parallel.rake +3 -3
- data/tasks/parser.rake +11 -3
- metadata +3497 -3514
- data/COMMITTERS.md +0 -244
- data/MAINTAINERS +0 -66
- data/ext/README.environment +0 -8
- data/ext/autotest/Rakefile +0 -8
- data/ext/autotest/config +0 -43
- data/ext/autotest/readme.rst +0 -16
- data/ext/cert_inspector +0 -140
- data/ext/dbfix.sql +0 -132
- data/ext/debian/README.Debian +0 -8
- data/ext/debian/README.source +0 -2
- data/ext/debian/TODO.Debian +0 -1
- data/ext/debian/changelog.erb +0 -1122
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -144
- data/ext/debian/copyright +0 -361
- data/ext/debian/docs +0 -1
- data/ext/debian/fileserver.conf +0 -41
- data/ext/debian/puppet-common.dirs +0 -13
- data/ext/debian/puppet-common.install +0 -3
- data/ext/debian/puppet-common.lintian-overrides +0 -5
- data/ext/debian/puppet-common.manpages +0 -28
- data/ext/debian/puppet-common.postinst +0 -35
- data/ext/debian/puppet-common.postrm +0 -33
- data/ext/debian/puppet-el.dirs +0 -1
- data/ext/debian/puppet-el.emacsen-install +0 -25
- data/ext/debian/puppet-el.emacsen-remove +0 -11
- data/ext/debian/puppet-el.emacsen-startup +0 -9
- data/ext/debian/puppet-el.install +0 -1
- data/ext/debian/puppet-testsuite.install +0 -2
- data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
- data/ext/debian/puppet.lintian-overrides +0 -3
- data/ext/debian/puppet.logrotate +0 -20
- data/ext/debian/puppet.postinst +0 -20
- data/ext/debian/puppet.postrm +0 -20
- data/ext/debian/puppet.preinst +0 -20
- data/ext/debian/puppetmaster-common.install +0 -2
- data/ext/debian/puppetmaster-common.manpages +0 -2
- data/ext/debian/puppetmaster-common.postinst +0 -6
- data/ext/debian/puppetmaster-passenger.dirs +0 -4
- data/ext/debian/puppetmaster-passenger.postinst +0 -162
- data/ext/debian/puppetmaster-passenger.postrm +0 -61
- data/ext/debian/puppetmaster.README.debian +0 -17
- data/ext/debian/puppetmaster.default +0 -14
- data/ext/debian/puppetmaster.init +0 -137
- data/ext/debian/puppetmaster.lintian-overrides +0 -3
- data/ext/debian/puppetmaster.postinst +0 -20
- data/ext/debian/puppetmaster.postrm +0 -5
- data/ext/debian/puppetmaster.preinst +0 -22
- data/ext/debian/rules +0 -132
- data/ext/debian/source/format +0 -1
- data/ext/debian/source/options +0 -1
- data/ext/debian/vim-puppet.README.Debian +0 -13
- data/ext/debian/vim-puppet.dirs +0 -5
- data/ext/debian/vim-puppet.yaml +0 -7
- data/ext/debian/watch +0 -2
- data/ext/envpuppet +0 -139
- data/ext/envpuppet.bat +0 -14
- data/ext/freebsd/puppetd +0 -26
- data/ext/freebsd/puppetmasterd +0 -26
- data/ext/gentoo/conf.d/puppet +0 -5
- data/ext/gentoo/conf.d/puppetmaster +0 -12
- data/ext/gentoo/init.d/puppet +0 -38
- data/ext/gentoo/init.d/puppetmaster +0 -51
- data/ext/gentoo/puppet/fileserver.conf +0 -41
- data/ext/ips/puppet-agent +0 -44
- data/ext/ips/puppet-master +0 -44
- data/ext/ips/puppet.p5m.erb +0 -12
- data/ext/ips/puppetagent.xml +0 -42
- data/ext/ips/puppetmaster.xml +0 -42
- data/ext/ips/rules +0 -19
- data/ext/ips/transforms +0 -34
- data/ext/ldap/puppet.schema +0 -24
- data/ext/logcheck/puppet +0 -23
- data/ext/osx/file_mapping.yaml +0 -33
- data/ext/osx/postflight.erb +0 -109
- data/ext/osx/preflight.erb +0 -52
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/puppet-test +0 -477
- data/ext/pure_ruby_dsl/dsl_test.rb +0 -7
- data/ext/rack/config.ru +0 -44
- data/ext/rack/example-passenger-vhost.conf +0 -57
- data/ext/redhat/fileserver.conf +0 -41
- data/ext/redhat/logrotate +0 -21
- data/ext/redhat/puppet.spec.erb +0 -846
- data/ext/redhat/server.init +0 -128
- data/ext/redhat/server.sysconfig +0 -13
- data/ext/solaris/pkginfo +0 -6
- data/ext/solaris/smf/puppetd.xml +0 -77
- data/ext/solaris/smf/puppetmasterd.xml +0 -77
- data/ext/solaris/smf/svc-puppetd +0 -64
- data/ext/solaris/smf/svc-puppetmasterd +0 -60
- data/ext/suse/puppet.spec +0 -310
- data/ext/suse/server.init +0 -173
- data/ext/upload_facts.rb +0 -119
- data/ext/windows/eventlog/Rakefile +0 -32
- data/ext/windows/eventlog/puppetres.dll +0 -0
- data/ext/windows/eventlog/puppetres.mc +0 -18
- data/ext/yaml_nodes.rb +0 -105
- 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 -317
- data/lib/puppet/bindings.rb +0 -148
- data/lib/puppet/configurer/downloader_factory.rb +0 -44
- 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/external/nagios.rb +0 -46
- data/lib/puppet/face/ca.rb +0 -266
- data/lib/puppet/face/certificate.rb +0 -165
- 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/file.rb +0 -91
- data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
- data/lib/puppet/indirector/certificate_status.rb +0 -4
- 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 -80
- data/lib/puppet/indirector/node/ldap.rb +0 -259
- data/lib/puppet/indirector/node/write_only_yaml.rb +0 -39
- data/lib/puppet/module_tool/applications/builder.rb +0 -148
- 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/v1.rb +0 -11
- data/lib/puppet/network/http/api/ca.rb +0 -2
- data/lib/puppet/network/http/rack/rest.rb +0 -162
- data/lib/puppet/network/http/rack.rb +0 -33
- data/lib/puppet/network/http/webrick/rest.rb +0 -114
- data/lib/puppet/network/http/webrick.rb +0 -123
- data/lib/puppet/network/server.rb +0 -39
- data/lib/puppet/pops/loader/null_loader.rb +0 -60
- data/lib/puppet/provider/aixobject.rb +0 -392
- data/lib/puppet/provider/augeas/augeas.rb +0 -567
- 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/parsed.rb +0 -282
- data/lib/puppet/provider/mount.rb +0 -59
- data/lib/puppet/provider/naginator.rb +0 -63
- 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 -140
- 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 -305
- data/lib/puppet/provider/zfs/zfs.rb +0 -88
- data/lib/puppet/provider/zone/solaris.rb +0 -364
- data/lib/puppet/provider/zpool/zpool.rb +0 -125
- 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_authority.rb +0 -553
- data/lib/puppet/ssl/certificate_revocation_list.rb +0 -110
- 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 -475
- data/lib/puppet/type/host.rb +0 -95
- data/lib/puppet/type/interface.rb +0 -121
- data/lib/puppet/type/k5login.rb +0 -88
- 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 -310
- 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 -26
- data/lib/puppet/type/selmodule.rb +0 -59
- 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 -409
- data/lib/puppet/type/zfs.rb +0 -150
- 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/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/cisco.rb +0 -4
- 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 -1276
- data/lib/puppet/vendor/deep_merge/CHANGELOG +0 -45
- data/lib/puppet/vendor/deep_merge/Gemfile +0 -3
- data/lib/puppet/vendor/deep_merge/LICENSE +0 -21
- data/lib/puppet/vendor/deep_merge/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/deep_merge/README.md +0 -113
- data/lib/puppet/vendor/deep_merge/Rakefile +0 -19
- data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +0 -35
- data/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +0 -210
- data/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +0 -28
- data/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +0 -27
- data/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +0 -2
- data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +0 -608
- data/lib/puppet/vendor/load_deep_merge.rb +0 -1
- 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/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/dependency.rb +0 -181
- 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/lib/semantic_puppet.rb +0 -11
- data/locales/ja/puppet.po +0 -11234
- 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 -31
- 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 -8
- data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -3
- data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
- data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -5
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -9
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -8
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -4
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -4
- 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/pkgng/pkg.info +0 -8
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
- 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/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +0 -24
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +0 -24
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +0 -24
- data/spec/integration/faces/ca_spec.rb +0 -354
- data/spec/integration/faces/config_spec.rb +0 -80
- data/spec/integration/faces/documentation_spec.rb +0 -58
- data/spec/integration/faces/plugin_spec.rb +0 -59
- data/spec/integration/file_bucket/file_spec.rb +0 -69
- data/spec/integration/file_serving/content_spec.rb +0 -8
- data/spec/integration/file_serving/fileset_spec.rb +0 -13
- data/spec/integration/file_serving/metadata_spec.rb +0 -9
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -21
- data/spec/integration/file_system/uniquefile_spec.rb +0 -29
- data/spec/integration/indirector/node/ldap_spec.rb +0 -14
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/cron/crontab_spec.rb +0 -242
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -10
- data/spec/integration/provider/mount_spec.rb +0 -161
- data/spec/integration/provider/service/init_spec.rb +0 -46
- data/spec/integration/provider/service/systemd_spec.rb +0 -20
- data/spec/integration/provider/service/windows_spec.rb +0 -49
- data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -219
- data/spec/integration/provider/sshkey_spec.rb +0 -159
- data/spec/integration/provider/yumrepo_spec.rb +0 -130
- data/spec/integration/reference/providers_spec.rb +0 -16
- data/spec/integration/reports_spec.rb +0 -14
- data/spec/integration/ssl/autosign_spec.rb +0 -145
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -162
- data/spec/integration/ssl/certificate_request_spec.rb +0 -47
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -34
- data/spec/integration/ssl/host_spec.rb +0 -81
- data/spec/integration/ssl/key_spec.rb +0 -104
- data/spec/integration/test/test_helper_spec.rb +0 -32
- data/spec/integration/type/nagios_spec.rb +0 -71
- data/spec/integration/type/user_spec.rb +0 -64
- data/spec/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- data/spec/shared_behaviours/file_serving_model.rb +0 -72
- data/spec/unit/application/cert_spec.rb +0 -240
- data/spec/unit/application/certificate_spec.rb +0 -22
- data/spec/unit/application/master_spec.rb +0 -404
- data/spec/unit/configurer/downloader_factory_spec.rb +0 -129
- data/spec/unit/face/ca_spec.rb +0 -10
- data/spec/unit/face/catalog_spec.rb +0 -7
- data/spec/unit/face/certificate_request_spec.rb +0 -10
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -10
- data/spec/unit/face/certificate_spec.rb +0 -231
- data/spec/unit/face/module/build_spec.rb +0 -69
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -49
- data/spec/unit/indirector/certificate/ca_spec.rb +0 -23
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -57
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -16
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -17
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -34
- data/spec/unit/indirector/certificate_status/file_spec.rb +0 -191
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -18
- data/spec/unit/indirector/code_spec.rb +0 -31
- data/spec/unit/indirector/key/ca_spec.rb +0 -23
- data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/ldap_spec.rb +0 -137
- data/spec/unit/indirector/node/ldap_spec.rb +0 -462
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -12
- data/spec/unit/indirector/store_configs_spec.rb +0 -8
- data/spec/unit/man_spec.rb +0 -32
- data/spec/unit/module_tool/applications/builder_spec.rb +0 -432
- data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
- data/spec/unit/network/http/rack/rest_spec.rb +0 -325
- data/spec/unit/network/http/rack_spec.rb +0 -43
- data/spec/unit/network/http/webrick/rest_spec.rb +0 -231
- data/spec/unit/network/http/webrick_spec.rb +0 -280
- data/spec/unit/network/server_spec.rb +0 -95
- data/spec/unit/provider/aixobject_spec.rb +0 -101
- data/spec/unit/provider/augeas/augeas_spec.rb +0 -1025
- data/spec/unit/provider/cisco_spec.rb +0 -15
- data/spec/unit/provider/cron/crontab_spec.rb +0 -207
- data/spec/unit/provider/cron/parsed_spec.rb +0 -358
- data/spec/unit/provider/host/parsed_spec.rb +0 -233
- data/spec/unit/provider/interface/cisco_spec.rb +0 -57
- data/spec/unit/provider/macauthorization_spec.rb +0 -155
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -192
- data/spec/unit/provider/mount/parsed_spec.rb +0 -317
- data/spec/unit/provider/mount_spec.rb +0 -165
- data/spec/unit/provider/naginator_spec.rb +0 -79
- data/spec/unit/provider/network_device_spec.rb +0 -152
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2060
- data/spec/unit/provider/selboolean_spec.rb +0 -36
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule_spec.rb +0 -79
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -277
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -95
- data/spec/unit/provider/vlan/cisco_spec.rb +0 -55
- data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -326
- data/spec/unit/provider/zfs/zfs_spec.rb +0 -112
- data/spec/unit/provider/zone/solaris_spec.rb +0 -247
- data/spec/unit/provider/zpool/zpool_spec.rb +0 -251
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -30
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -560
- data/spec/unit/ssl/certificate_authority_spec.rb +0 -1184
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
- data/spec/unit/ssl/configuration_spec.rb +0 -141
- data/spec/unit/ssl/inventory_spec.rb +0 -151
- data/spec/unit/type/augeas_spec.rb +0 -119
- data/spec/unit/type/computer_spec.rb +0 -80
- data/spec/unit/type/cron_spec.rb +0 -543
- data/spec/unit/type/host_spec.rb +0 -681
- data/spec/unit/type/interface_spec.rb +0 -129
- data/spec/unit/type/k5login_spec.rb +0 -115
- data/spec/unit/type/macauthorization_spec.rb +0 -113
- data/spec/unit/type/mailalias_spec.rb +0 -49
- data/spec/unit/type/maillist_spec.rb +0 -41
- data/spec/unit/type/mcx_spec.rb +0 -79
- data/spec/unit/type/mount_spec.rb +0 -634
- data/spec/unit/type/nagios_spec.rb +0 -313
- data/spec/unit/type/scheduled_task_spec.rb +0 -103
- data/spec/unit/type/selboolean_spec.rb +0 -44
- data/spec/unit/type/selmodule_spec.rb +0 -17
- data/spec/unit/type/ssh_authorized_key_spec.rb +0 -258
- data/spec/unit/type/sshkey_spec.rb +0 -77
- data/spec/unit/type/vlan_spec.rb +0 -44
- data/spec/unit/type/yumrepo_spec.rb +0 -398
- data/spec/unit/type/zfs_spec.rb +0 -46
- data/spec/unit/type/zone_spec.rb +0 -172
- data/spec/unit/type/zpool_spec.rb +0 -109
- data/spec/unit/util/nagios_maker_spec.rb +0 -122
- data/spec/unit/util/network_device/cisco/device_spec.rb +0 -482
- data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -64
- data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -88
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -62
- data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -218
- data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -86
- data/spec/watchr.rb +0 -138
data/spec/unit/settings_spec.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'ostruct'
|
4
3
|
require 'puppet/settings/errors'
|
@@ -10,7 +9,7 @@ describe Puppet::Settings do
|
|
10
9
|
include Matchers::Resource
|
11
10
|
|
12
11
|
let(:main_config_file_default_location) do
|
13
|
-
File.join(Puppet::Util::RunMode[:
|
12
|
+
File.join(Puppet::Util::RunMode[:server].conf_dir, "puppet.conf")
|
14
13
|
end
|
15
14
|
|
16
15
|
let(:user_config_file_default_location) do
|
@@ -30,6 +29,17 @@ describe Puppet::Settings do
|
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
32
|
+
def stub_config_with(content)
|
33
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
34
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
35
|
+
with(user_config_file_default_location).
|
36
|
+
and_return(true).ordered
|
37
|
+
expect(@settings).to receive(:read_file).
|
38
|
+
with(user_config_file_default_location).
|
39
|
+
and_return(content).ordered
|
40
|
+
@settings.send(:parse_config_files)
|
41
|
+
end
|
42
|
+
|
33
43
|
describe "when specifying defaults" do
|
34
44
|
before do
|
35
45
|
@settings = Puppet::Settings.new
|
@@ -88,25 +98,15 @@ describe Puppet::Settings do
|
|
88
98
|
end
|
89
99
|
end
|
90
100
|
|
91
|
-
|
92
101
|
describe "when initializing application defaults do" do
|
93
|
-
let(:default_values) do
|
94
|
-
values = {}
|
95
|
-
PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
|
96
|
-
values[key] = 'default value'
|
97
|
-
end
|
98
|
-
values
|
99
|
-
end
|
100
|
-
|
101
102
|
before do
|
102
103
|
@settings = Puppet::Settings.new
|
103
104
|
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
104
105
|
end
|
105
106
|
|
106
107
|
it "should fail if the app defaults hash is missing any required values" do
|
107
|
-
incomplete_default_values = default_values.reject { |key, _| key == :confdir }
|
108
108
|
expect {
|
109
|
-
@settings.initialize_app_defaults(
|
109
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.reject { |key, _| key == :confdir })
|
110
110
|
}.to raise_error(Puppet::Settings::SettingsError)
|
111
111
|
end
|
112
112
|
|
@@ -114,16 +114,16 @@ describe Puppet::Settings do
|
|
114
114
|
# case behaviors / uses. However, until that time... we need to make sure that our private run_mode=
|
115
115
|
# setter method gets properly called during app initialization.
|
116
116
|
it "sets the preferred run mode when initializing the app defaults" do
|
117
|
-
@settings.initialize_app_defaults(
|
117
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :server))
|
118
118
|
|
119
|
-
expect(@settings.preferred_run_mode).to eq(:
|
119
|
+
expect(@settings.preferred_run_mode).to eq(:server)
|
120
120
|
end
|
121
121
|
|
122
122
|
it "creates ancestor directories for all required app settings" do
|
123
123
|
# initialize_app_defaults is called in spec_helper, before we even
|
124
124
|
# get here, but call it here to make it explicit what we're trying
|
125
125
|
# to do.
|
126
|
-
@settings.initialize_app_defaults(
|
126
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
127
127
|
|
128
128
|
Puppet::Settings::REQUIRED_APP_SETTINGS.each do |key|
|
129
129
|
expect(File).to exist(File.dirname(Puppet[key]))
|
@@ -150,6 +150,7 @@ describe Puppet::Settings do
|
|
150
150
|
end.to_not raise_error
|
151
151
|
end
|
152
152
|
end
|
153
|
+
|
153
154
|
describe "if no interpolation error" do
|
154
155
|
it "should not raise an error" do
|
155
156
|
hook_values = []
|
@@ -179,6 +180,7 @@ describe Puppet::Settings do
|
|
179
180
|
@settings.send(:call_hooks_deferred_to_application_initialization, options)
|
180
181
|
end.to raise_error(Puppet::Settings::InterpolationError)
|
181
182
|
end
|
183
|
+
|
182
184
|
it "should contain the setting name in error message" do
|
183
185
|
hook_values = []
|
184
186
|
@settings.define_settings(
|
@@ -195,6 +197,7 @@ describe Puppet::Settings do
|
|
195
197
|
end.to raise_error(Puppet::Settings::InterpolationError, /badhook/)
|
196
198
|
end
|
197
199
|
end
|
200
|
+
|
198
201
|
describe "if no interpolation error" do
|
199
202
|
it "should not raise an error" do
|
200
203
|
hook_values = []
|
@@ -272,123 +275,129 @@ describe Puppet::Settings do
|
|
272
275
|
expect(@settings[:myval]).to eq("")
|
273
276
|
end
|
274
277
|
|
275
|
-
it "should
|
278
|
+
it "should retrieve numeric settings from the CLI" do
|
276
279
|
@settings.handlearg("--myval", "12")
|
277
|
-
expect(@settings.set_by_cli
|
280
|
+
expect(@settings.set_by_cli(:myval)).to eq(12)
|
281
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
282
|
+
end
|
283
|
+
|
284
|
+
it "should retrieve string settings from the CLI" do
|
285
|
+
@settings.handlearg("--myval", "something")
|
286
|
+
expect(@settings.set_by_cli(:myval)).to eq("something")
|
287
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
278
288
|
end
|
279
289
|
|
280
|
-
it "should
|
290
|
+
it "should retrieve bool settings from the CLI" do
|
281
291
|
@settings.handlearg("--bool")
|
282
|
-
expect(@settings.set_by_cli
|
292
|
+
expect(@settings.set_by_cli(:bool)).to be true
|
293
|
+
expect(@settings.set_by_cli?(:bool)).to be true
|
283
294
|
end
|
284
295
|
|
285
|
-
it "should not
|
296
|
+
it "should not retrieve settings set in memory as from CLI" do
|
286
297
|
@settings[:myval] = "12"
|
287
|
-
expect(@settings.set_by_cli?(:myval)).to
|
298
|
+
expect(@settings.set_by_cli?(:myval)).to be false
|
288
299
|
end
|
289
300
|
|
290
301
|
it "should find no configured settings by default" do
|
291
|
-
expect(@settings.set_by_config?(:myval)).to
|
302
|
+
expect(@settings.set_by_config?(:myval)).to be false
|
292
303
|
end
|
293
304
|
|
294
305
|
it "should identify configured settings in memory" do
|
295
|
-
@settings.instance_variable_get(:@value_sets)[:memory].
|
306
|
+
expect(@settings.instance_variable_get(:@value_sets)[:memory]).to receive(:lookup).with(:myval).and_return('foo')
|
296
307
|
expect(@settings.set_by_config?(:myval)).to be_truthy
|
297
308
|
end
|
298
309
|
|
299
310
|
it "should identify configured settings from CLI" do
|
300
|
-
@settings.instance_variable_get(:@value_sets)[:cli].
|
311
|
+
expect(@settings.instance_variable_get(:@value_sets)[:cli]).to receive(:lookup).with(:myval).and_return('foo')
|
301
312
|
expect(@settings.set_by_config?(:myval)).to be_truthy
|
302
313
|
end
|
303
314
|
|
304
315
|
it "should not identify configured settings from environment by default" do
|
305
|
-
Puppet.lookup(:environments).
|
316
|
+
expect(Puppet.lookup(:environments)).not_to receive(:get_conf).with(Puppet[:environment].to_sym)
|
306
317
|
expect(@settings.set_by_config?(:manifest)).to be_falsey
|
307
318
|
end
|
308
319
|
|
309
320
|
it "should identify configured settings from environment by when an environment is specified" do
|
310
|
-
foo =
|
311
|
-
Puppet.lookup(:environments).
|
321
|
+
foo = double('environment', :manifest => 'foo')
|
322
|
+
expect(Puppet.lookup(:environments)).to receive(:get_conf).with(Puppet[:environment].to_sym).and_return(foo)
|
312
323
|
expect(@settings.set_by_config?(:manifest, Puppet[:environment])).to be_truthy
|
313
324
|
end
|
314
325
|
|
315
|
-
|
316
|
-
|
317
|
-
|
326
|
+
context "when handling puppet.conf" do
|
327
|
+
describe "#set_by_config?" do
|
328
|
+
it "should identify configured settings from the preferred run mode" do
|
329
|
+
stub_config_with(<<~CONFIG)
|
330
|
+
[#{@settings.preferred_run_mode}]
|
331
|
+
myval = foo
|
332
|
+
CONFIG
|
318
333
|
|
319
|
-
|
320
|
-
|
321
|
-
with(user_config_file_default_location).
|
322
|
-
returns(true).in_sequence(seq)
|
323
|
-
@settings.expects(:read_file).
|
324
|
-
with(user_config_file_default_location).
|
325
|
-
returns(user_config_text).in_sequence(seq)
|
334
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
335
|
+
end
|
326
336
|
|
327
|
-
|
328
|
-
|
329
|
-
|
337
|
+
it "should identify configured settings from the specified run mode" do
|
338
|
+
stub_config_with(<<~CONFIG)
|
339
|
+
[server]
|
340
|
+
myval = foo
|
341
|
+
CONFIG
|
330
342
|
|
331
|
-
|
332
|
-
|
333
|
-
seq = sequence "config_file_sequence"
|
343
|
+
expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
|
344
|
+
end
|
334
345
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
with(user_config_file_default_location).
|
341
|
-
returns(user_config_text).in_sequence(seq)
|
346
|
+
it "should not identify configured settings from an unspecified run mode" do
|
347
|
+
stub_config_with(<<~CONFIG)
|
348
|
+
[zaz]
|
349
|
+
myval = foo
|
350
|
+
CONFIG
|
342
351
|
|
343
|
-
|
344
|
-
|
345
|
-
end
|
352
|
+
expect(@settings.set_by_config?(:myval)).to be_falsey
|
353
|
+
end
|
346
354
|
|
347
|
-
|
348
|
-
|
349
|
-
|
355
|
+
it "should identify configured settings from the main section" do
|
356
|
+
stub_config_with(<<~CONFIG)
|
357
|
+
[main]
|
358
|
+
myval = foo
|
359
|
+
CONFIG
|
350
360
|
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
returns(true).in_sequence(seq)
|
355
|
-
@settings.expects(:read_file).
|
356
|
-
with(user_config_file_default_location).
|
357
|
-
returns(user_config_text).in_sequence(seq)
|
361
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
362
|
+
end
|
363
|
+
end
|
358
364
|
|
359
|
-
|
360
|
-
|
361
|
-
|
365
|
+
describe "#set_in_section" do
|
366
|
+
it "should retrieve configured settings from the specified section" do
|
367
|
+
stub_config_with(<<~CONFIG)
|
368
|
+
[agent]
|
369
|
+
myval = foo
|
370
|
+
CONFIG
|
362
371
|
|
363
|
-
|
364
|
-
|
365
|
-
|
372
|
+
expect(@settings.set_in_section(:myval, :agent)).to eq("foo")
|
373
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be true
|
374
|
+
end
|
366
375
|
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
with(user_config_file_default_location).
|
373
|
-
returns(user_config_text).in_sequence(seq)
|
376
|
+
it "should not retrieve configured settings from a different section" do
|
377
|
+
stub_config_with(<<~CONFIG)
|
378
|
+
[main]
|
379
|
+
myval = foo
|
380
|
+
CONFIG
|
374
381
|
|
375
|
-
|
376
|
-
|
382
|
+
expect(@settings.set_in_section(:myval, :agent)).to be nil
|
383
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be false
|
384
|
+
end
|
385
|
+
end
|
377
386
|
end
|
378
387
|
|
379
388
|
it "should clear the cache when setting getopt-specific values" do
|
380
389
|
@settings.define_settings :mysection,
|
381
390
|
:one => { :default => "whah", :desc => "yay" },
|
382
391
|
:two => { :default => "$one yay", :desc => "bah" }
|
383
|
-
@settings.
|
392
|
+
expect(@settings).to receive(:unsafe_flush_cache)
|
384
393
|
expect(@settings[:two]).to eq("whah yay")
|
385
394
|
@settings.handlearg("--one", "else")
|
386
395
|
expect(@settings[:two]).to eq("else yay")
|
387
396
|
end
|
388
397
|
|
389
398
|
it "should clear the cache when the preferred_run_mode is changed" do
|
390
|
-
@settings.
|
391
|
-
@settings.preferred_run_mode = :
|
399
|
+
expect(@settings).to receive(:flush_cache)
|
400
|
+
@settings.preferred_run_mode = :server
|
392
401
|
end
|
393
402
|
|
394
403
|
it "should not clear other values when setting getopt-specific values" do
|
@@ -398,127 +407,325 @@ describe Puppet::Settings do
|
|
398
407
|
end
|
399
408
|
|
400
409
|
it "should clear the list of used sections" do
|
401
|
-
@settings.
|
410
|
+
expect(@settings).to receive(:clearused)
|
402
411
|
@settings[:myval] = "yay"
|
403
412
|
end
|
404
413
|
|
405
414
|
describe "call_hook" do
|
415
|
+
let(:config_file) { tmpfile('config') }
|
416
|
+
|
417
|
+
before :each do
|
418
|
+
# We can't specify the config file to read from using `Puppet[:config] =`
|
419
|
+
# or pass it as an arg to Puppet.initialize_global_settings, because
|
420
|
+
# both of those will set the value on the `Puppet.settings` instance
|
421
|
+
# which is different from the `@settings` instance created in the test.
|
422
|
+
# Instead, we define a `:config` setting and set its default value to
|
423
|
+
# the `config_file` temp file, and then access the `config_file` within
|
424
|
+
# each test.
|
425
|
+
@settings.define_settings(:main, :config => { :type => :file, :desc => "config file", :default => config_file })
|
426
|
+
end
|
427
|
+
|
406
428
|
Puppet::Settings::StringSetting.available_call_hook_values.each do |val|
|
407
429
|
describe "when :#{val}" do
|
408
430
|
describe "and definition invalid" do
|
409
431
|
it "should raise error if no hook defined" do
|
410
432
|
expect do
|
411
|
-
@settings.define_settings(:section, :
|
433
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => val})
|
412
434
|
end.to raise_error(ArgumentError, /no :hook/)
|
413
435
|
end
|
436
|
+
|
414
437
|
it "should include the setting name in the error message" do
|
415
438
|
expect do
|
416
|
-
@settings.define_settings(:section, :
|
417
|
-
end.to raise_error(ArgumentError, /for :
|
439
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => val})
|
440
|
+
end.to raise_error(ArgumentError, /for :setting/)
|
418
441
|
end
|
419
442
|
end
|
443
|
+
|
420
444
|
describe "and definition valid" do
|
421
445
|
before(:each) do
|
422
446
|
hook_values = []
|
423
|
-
@settings.define_settings(:section, :
|
447
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => val, :hook => lambda { |v| hook_values << v }})
|
424
448
|
end
|
425
449
|
|
426
450
|
it "should call the hook when value written" do
|
427
|
-
@settings.setting(:
|
428
|
-
@settings[:
|
451
|
+
expect(@settings.setting(:setting)).to receive(:handle).with("something").once
|
452
|
+
@settings[:setting] = "something"
|
429
453
|
end
|
430
454
|
end
|
431
455
|
end
|
432
456
|
end
|
433
457
|
|
434
458
|
it "should have a default value of :on_write_only" do
|
435
|
-
@settings.define_settings(:section, :
|
436
|
-
expect(@settings.setting(:
|
459
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
|
460
|
+
expect(@settings.setting(:setting).call_hook).to eq(:on_write_only)
|
437
461
|
end
|
438
462
|
|
439
463
|
describe "when nil" do
|
440
464
|
it "should generate a warning" do
|
441
|
-
Puppet.
|
442
|
-
@settings.define_settings(:section, :
|
465
|
+
expect(Puppet).to receive(:warning)
|
466
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => nil, :hook => lambda { |v| hook_values << v }})
|
443
467
|
end
|
468
|
+
|
444
469
|
it "should use default" do
|
445
|
-
@settings.define_settings(:section, :
|
446
|
-
expect(@settings.setting(:
|
470
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => nil, :hook => lambda { |v| hook_values << v }})
|
471
|
+
expect(@settings.setting(:setting).call_hook).to eq(:on_write_only)
|
447
472
|
end
|
448
473
|
end
|
449
474
|
|
450
475
|
describe "when invalid" do
|
451
476
|
it "should raise an error" do
|
452
477
|
expect do
|
453
|
-
@settings.define_settings(:section, :
|
478
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => :foo, :hook => lambda { |v| hook_values << v }})
|
454
479
|
end.to raise_error(ArgumentError, /invalid.*call_hook/i)
|
455
480
|
end
|
456
481
|
end
|
457
482
|
|
483
|
+
describe "when :on_write_only" do
|
484
|
+
it "returns its hook type" do
|
485
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |_| }})
|
486
|
+
|
487
|
+
expect(@settings.setting(:setting).call_hook).to eq(:on_write_only)
|
488
|
+
end
|
489
|
+
|
490
|
+
it "should not call the hook at definition" do
|
491
|
+
hook_values = []
|
492
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
|
493
|
+
|
494
|
+
expect(hook_values).to eq(%w[])
|
495
|
+
end
|
496
|
+
|
497
|
+
it "calls the hook when initializing global defaults with the value from the `main` section" do
|
498
|
+
hook_values = []
|
499
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
|
500
|
+
|
501
|
+
File.write(config_file, <<~END)
|
502
|
+
[main]
|
503
|
+
setting=in_main
|
504
|
+
END
|
505
|
+
@settings.initialize_global_settings
|
506
|
+
|
507
|
+
expect(@settings[:setting]).to eq('in_main')
|
508
|
+
expect(hook_values).to eq(%w[in_main])
|
509
|
+
end
|
510
|
+
|
511
|
+
it "doesn't call the hook when initializing app defaults" do
|
512
|
+
hook_values = []
|
513
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
514
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
|
515
|
+
|
516
|
+
File.write(config_file, <<~END)
|
517
|
+
[main]
|
518
|
+
setting=in_main
|
519
|
+
[agent]
|
520
|
+
setting=in_agent
|
521
|
+
END
|
522
|
+
@settings.initialize_global_settings
|
523
|
+
|
524
|
+
hook_values.clear
|
525
|
+
|
526
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
527
|
+
|
528
|
+
expect(@settings[:setting]).to eq('in_main')
|
529
|
+
expect(hook_values).to eq(%w[])
|
530
|
+
end
|
531
|
+
|
532
|
+
it "doesn't call the hook with value from a section that matches the run_mode" do
|
533
|
+
hook_values = []
|
534
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
535
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
|
536
|
+
|
537
|
+
File.write(config_file, <<~END)
|
538
|
+
[main]
|
539
|
+
setting=in_main
|
540
|
+
[agent]
|
541
|
+
setting=in_agent
|
542
|
+
END
|
543
|
+
@settings.initialize_global_settings
|
544
|
+
|
545
|
+
hook_values.clear
|
546
|
+
|
547
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :agent))
|
548
|
+
|
549
|
+
expect(@settings[:setting]).to eq('in_agent')
|
550
|
+
expect(hook_values).to eq(%w[])
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
458
554
|
describe "when :on_define_and_write" do
|
459
|
-
it "
|
555
|
+
it "returns its hook type" do
|
556
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |_| }})
|
557
|
+
|
558
|
+
expect(@settings.setting(:setting).call_hook).to eq(:on_define_and_write)
|
559
|
+
end
|
560
|
+
|
561
|
+
it "should call the hook at definition with the default value" do
|
460
562
|
hook_values = []
|
461
|
-
@settings.define_settings(:
|
462
|
-
|
463
|
-
expect(hook_values).to eq(%w
|
563
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| hook_values << v }})
|
564
|
+
|
565
|
+
expect(hook_values).to eq(%w[yay])
|
566
|
+
end
|
567
|
+
|
568
|
+
it "calls the hook when initializing global defaults with the value from the `main` section" do
|
569
|
+
hook_values = []
|
570
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| hook_values << v }})
|
571
|
+
|
572
|
+
File.write(config_file, <<~END)
|
573
|
+
[main]
|
574
|
+
setting=in_main
|
575
|
+
END
|
576
|
+
@settings.initialize_global_settings
|
577
|
+
|
578
|
+
expect(@settings[:setting]).to eq('in_main')
|
579
|
+
expect(hook_values).to eq(%w[yay in_main])
|
580
|
+
end
|
581
|
+
|
582
|
+
it "doesn't call the hook when initializing app defaults" do
|
583
|
+
hook_values = []
|
584
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
585
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| hook_values << v }})
|
586
|
+
|
587
|
+
File.write(config_file, <<~END)
|
588
|
+
[main]
|
589
|
+
setting=in_main
|
590
|
+
[agent]
|
591
|
+
setting=in_agent
|
592
|
+
END
|
593
|
+
@settings.initialize_global_settings
|
594
|
+
|
595
|
+
hook_values.clear
|
596
|
+
|
597
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
598
|
+
|
599
|
+
expect(@settings[:setting]).to eq('in_main')
|
600
|
+
expect(hook_values).to eq([])
|
601
|
+
end
|
602
|
+
|
603
|
+
it "doesn't call the hook with value from a section that matches the run_mode" do
|
604
|
+
hook_values = []
|
605
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
606
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| hook_values << v }})
|
607
|
+
|
608
|
+
File.write(config_file, <<~END)
|
609
|
+
[main]
|
610
|
+
setting=in_main
|
611
|
+
[agent]
|
612
|
+
setting=in_agent
|
613
|
+
END
|
614
|
+
|
615
|
+
@settings.initialize_global_settings
|
616
|
+
|
617
|
+
hook_values.clear
|
618
|
+
|
619
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :agent))
|
620
|
+
|
621
|
+
# The correct value is returned
|
622
|
+
expect(@settings[:setting]).to eq('in_agent')
|
623
|
+
|
624
|
+
# but the hook is never called, seems like a bug!
|
625
|
+
expect(hook_values).to eq([])
|
464
626
|
end
|
465
627
|
end
|
466
628
|
|
467
629
|
describe "when :on_initialize_and_write" do
|
468
|
-
|
469
|
-
@
|
470
|
-
|
630
|
+
it "returns its hook type" do
|
631
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |_| }})
|
632
|
+
|
633
|
+
expect(@settings.setting(:setting).call_hook).to eq(:on_initialize_and_write)
|
471
634
|
end
|
472
635
|
|
473
636
|
it "should not call the hook at definition" do
|
474
|
-
|
475
|
-
|
637
|
+
hook_values = []
|
638
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
|
639
|
+
expect(hook_values).to eq([])
|
476
640
|
end
|
477
641
|
|
478
|
-
it "
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
642
|
+
it "calls the hook when initializing global defaults with the value from the `main` section" do
|
643
|
+
hook_values = []
|
644
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
|
645
|
+
|
646
|
+
File.write(config_file, <<~END)
|
647
|
+
[main]
|
648
|
+
setting=in_main
|
649
|
+
END
|
650
|
+
@settings.initialize_global_settings
|
651
|
+
|
652
|
+
expect(@settings[:setting]).to eq('in_main')
|
653
|
+
expect(hook_values).to eq(%w[in_main])
|
654
|
+
end
|
655
|
+
|
656
|
+
it "calls the hook when initializing app defaults" do
|
657
|
+
hook_values = []
|
484
658
|
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
659
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
|
660
|
+
|
661
|
+
File.write(config_file, <<~END)
|
662
|
+
[main]
|
663
|
+
setting=in_main
|
664
|
+
[agent]
|
665
|
+
setting=in_agent
|
666
|
+
END
|
667
|
+
@settings.initialize_global_settings
|
485
668
|
|
486
|
-
|
669
|
+
hook_values.clear
|
487
670
|
|
488
|
-
@settings.initialize_app_defaults
|
671
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
672
|
+
|
673
|
+
expect(@settings[:setting]).to eq('in_main')
|
674
|
+
expect(hook_values).to eq(%w[in_main])
|
675
|
+
end
|
676
|
+
|
677
|
+
it "calls the hook with the overridden value from a section that matches the run_mode" do
|
678
|
+
hook_values = []
|
679
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
680
|
+
@settings.define_settings(:main, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
|
681
|
+
|
682
|
+
File.write(config_file, <<~END)
|
683
|
+
[main]
|
684
|
+
setting=in_main
|
685
|
+
[agent]
|
686
|
+
setting=in_agent
|
687
|
+
END
|
688
|
+
@settings.initialize_global_settings
|
689
|
+
|
690
|
+
hook_values.clear
|
691
|
+
|
692
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :agent))
|
693
|
+
|
694
|
+
expect(@settings[:setting]).to eq('in_agent')
|
695
|
+
expect(hook_values).to eq(%w[in_agent])
|
489
696
|
end
|
490
697
|
end
|
491
698
|
end
|
492
699
|
|
493
700
|
it "should call passed blocks when values are set" do
|
494
701
|
values = []
|
495
|
-
@settings.define_settings(:section, :
|
702
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
|
496
703
|
expect(values).to eq([])
|
497
704
|
|
498
|
-
@settings[:
|
705
|
+
@settings[:setting] = "something"
|
499
706
|
expect(values).to eq(%w{something})
|
500
707
|
end
|
501
708
|
|
502
709
|
it "should call passed blocks when values are set via the command line" do
|
503
710
|
values = []
|
504
|
-
@settings.define_settings(:section, :
|
711
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
|
505
712
|
expect(values).to eq([])
|
506
713
|
|
507
|
-
@settings.handlearg("--
|
714
|
+
@settings.handlearg("--setting", "yay")
|
508
715
|
|
509
716
|
expect(values).to eq(%w{yay})
|
510
717
|
end
|
511
718
|
|
512
719
|
it "should provide an option to call passed blocks during definition" do
|
513
720
|
values = []
|
514
|
-
@settings.define_settings(:section, :
|
721
|
+
@settings.define_settings(:section, :setting => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| values << v }})
|
515
722
|
expect(values).to eq(%w{yay})
|
516
723
|
end
|
517
724
|
|
518
725
|
it "should pass the fully interpolated value to the hook when called on definition" do
|
519
726
|
values = []
|
520
727
|
@settings.define_settings(:section, :one => { :default => "test", :desc => "a" })
|
521
|
-
@settings.define_settings(:section, :
|
728
|
+
@settings.define_settings(:section, :setting => {:default => "$one/yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| values << v }})
|
522
729
|
expect(values).to eq(%w{test/yay})
|
523
730
|
end
|
524
731
|
|
@@ -556,8 +763,9 @@ describe Puppet::Settings do
|
|
556
763
|
:two => { :default => "$one TWO", :desc => "b"},
|
557
764
|
:three => { :default => "$one $two THREE", :desc => "c"},
|
558
765
|
:four => { :default => "$two $three FOUR", :desc => "d"},
|
559
|
-
:five => { :default => nil, :desc => "e" }
|
560
|
-
|
766
|
+
:five => { :default => nil, :desc => "e" },
|
767
|
+
:code => { :default => "", :desc => "my code"}
|
768
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
561
769
|
end
|
562
770
|
|
563
771
|
it "should provide a mechanism for returning set values" do
|
@@ -566,12 +774,8 @@ describe Puppet::Settings do
|
|
566
774
|
end
|
567
775
|
|
568
776
|
it "setting a value to nil causes it to return to its default" do
|
569
|
-
default_values = { :one => "skipped value" }
|
570
|
-
[:logdir, :confdir, :codedir, :vardir].each do |key|
|
571
|
-
default_values[key] = 'default value'
|
572
|
-
end
|
573
777
|
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
574
|
-
@settings.initialize_app_defaults(
|
778
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:one => "skipped value"))
|
575
779
|
@settings[:one] = "value will disappear"
|
576
780
|
|
577
781
|
@settings[:one] = nil
|
@@ -612,6 +816,13 @@ describe Puppet::Settings do
|
|
612
816
|
expect(@settings[:two]).to eq("one TWO")
|
613
817
|
end
|
614
818
|
|
819
|
+
it "should not interpolate the value of the :code setting" do
|
820
|
+
@code = @settings.setting(:code)
|
821
|
+
expect(@code).not_to receive(:munge)
|
822
|
+
|
823
|
+
expect(@settings[:code]).to eq("")
|
824
|
+
end
|
825
|
+
|
615
826
|
it "should have a run_mode that defaults to user" do
|
616
827
|
expect(@settings.preferred_run_mode).to eq(:user)
|
617
828
|
end
|
@@ -625,13 +836,14 @@ describe Puppet::Settings do
|
|
625
836
|
end
|
626
837
|
|
627
838
|
describe "when choosing which value to return" do
|
839
|
+
let(:config_file) { tmpfile('settings') }
|
840
|
+
|
628
841
|
before do
|
629
842
|
@settings = Puppet::Settings.new
|
630
843
|
@settings.define_settings :section,
|
631
|
-
:config => { :type => :file, :default =>
|
844
|
+
:config => { :type => :file, :default => config_file, :desc => "a" },
|
632
845
|
:one => { :default => "ONE", :desc => "a" },
|
633
846
|
:two => { :default => "TWO", :desc => "b" }
|
634
|
-
Puppet::FileSystem.stubs(:exist?).returns true
|
635
847
|
@settings.preferred_run_mode = :agent
|
636
848
|
end
|
637
849
|
|
@@ -640,27 +852,44 @@ describe Puppet::Settings do
|
|
640
852
|
end
|
641
853
|
|
642
854
|
it "should return values set on the cli before values set in the configuration file" do
|
643
|
-
|
644
|
-
@settings.stubs(:read_file).returns(text)
|
855
|
+
File.write(config_file, "[main]\none = fileval\n")
|
645
856
|
@settings.handlearg("--one", "clival")
|
646
|
-
@settings.
|
857
|
+
@settings.initialize_global_settings
|
647
858
|
|
648
859
|
expect(@settings[:one]).to eq("clival")
|
649
860
|
end
|
650
861
|
|
651
862
|
it "should return values set in the mode-specific section before values set in the main section" do
|
652
|
-
|
653
|
-
@settings.
|
654
|
-
@settings.send(:parse_config_files)
|
863
|
+
File.write(config_file, "[main]\none = mainval\n[agent]\none = modeval\n")
|
864
|
+
@settings.initialize_global_settings
|
655
865
|
|
656
866
|
expect(@settings[:one]).to eq("modeval")
|
657
867
|
end
|
658
868
|
|
869
|
+
[:master, :server].each do |run_mode|
|
870
|
+
describe "when run mode is '#{run_mode}'" do
|
871
|
+
before(:each) { @settings.preferred_run_mode = run_mode }
|
872
|
+
|
873
|
+
it "returns values set in the 'master' section if the 'server' section does not exist" do
|
874
|
+
File.write(config_file, "[main]\none = mainval\n[master]\none = modeval\n")
|
875
|
+
@settings.initialize_global_settings
|
876
|
+
|
877
|
+
expect(@settings[:one]).to eq("modeval")
|
878
|
+
end
|
879
|
+
|
880
|
+
it "prioritizes values set in the 'server' section if set" do
|
881
|
+
File.write(config_file, "[main]\none = mainval\n[server]\none = serverval\n[master]\none = masterval\n")
|
882
|
+
@settings.initialize_global_settings
|
883
|
+
|
884
|
+
expect(@settings[:one]).to eq("serverval")
|
885
|
+
end
|
886
|
+
end
|
887
|
+
end
|
888
|
+
|
659
889
|
it "should not return values outside of its search path" do
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
@settings.send(:parse_config_files)
|
890
|
+
File.write(config_file, "[other]\none = oval\n")
|
891
|
+
@settings.initialize_global_settings
|
892
|
+
|
664
893
|
expect(@settings[:one]).to eq("ONE")
|
665
894
|
end
|
666
895
|
|
@@ -678,22 +907,57 @@ describe Puppet::Settings do
|
|
678
907
|
|
679
908
|
describe "when root" do
|
680
909
|
it "should look for the main config file default location config settings haven't been overridden'" do
|
681
|
-
Puppet.features.
|
682
|
-
Puppet::FileSystem.
|
683
|
-
Puppet::FileSystem.
|
910
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
911
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(main_config_file_default_location).and_return(false)
|
912
|
+
expect(Puppet::FileSystem).not_to receive(:exist?).with(user_config_file_default_location)
|
684
913
|
|
685
|
-
@settings.
|
914
|
+
@settings.initialize_global_settings
|
686
915
|
end
|
687
916
|
end
|
688
917
|
|
689
918
|
describe "when not root" do
|
690
919
|
it "should look for user config file default location if config settings haven't been overridden'" do
|
691
|
-
Puppet.features.
|
920
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
692
921
|
|
693
|
-
|
694
|
-
Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(false).in_sequence(seq)
|
922
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(user_config_file_default_location).and_return(false)
|
695
923
|
|
696
|
-
@settings.
|
924
|
+
@settings.initialize_global_settings
|
925
|
+
end
|
926
|
+
end
|
927
|
+
|
928
|
+
describe "when the file exists" do
|
929
|
+
it "fails if the file is not readable" do
|
930
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(user_config_file_default_location).and_return(true)
|
931
|
+
expect(@settings).to receive(:read_file).and_raise('Permission denied')
|
932
|
+
|
933
|
+
expect{ @settings.initialize_global_settings }.to raise_error(RuntimeError, /Could not load #{user_config_file_default_location}: Permission denied/)
|
934
|
+
end
|
935
|
+
|
936
|
+
it "does not fail if the file is not readable and when `require_config` is false" do
|
937
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(user_config_file_default_location).and_return(true)
|
938
|
+
expect(@settings).to receive(:read_file).and_raise('Permission denied')
|
939
|
+
|
940
|
+
expect(@settings).not_to receive(:parse_config)
|
941
|
+
expect(Puppet).to receive(:log_exception)
|
942
|
+
|
943
|
+
expect{ @settings.initialize_global_settings([], false) }.not_to raise_error
|
944
|
+
end
|
945
|
+
|
946
|
+
it "reads the file if it is readable" do
|
947
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(user_config_file_default_location).and_return(true)
|
948
|
+
expect(@settings).to receive(:read_file).and_return('server = host.string')
|
949
|
+
expect(@settings).to receive(:parse_config)
|
950
|
+
|
951
|
+
@settings.initialize_global_settings
|
952
|
+
end
|
953
|
+
end
|
954
|
+
|
955
|
+
describe "when the file does not exist" do
|
956
|
+
it "does not attempt to parse the config file" do
|
957
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(user_config_file_default_location).and_return(false)
|
958
|
+
expect(@settings).not_to receive(:parse_config)
|
959
|
+
|
960
|
+
@settings.initialize_global_settings
|
697
961
|
end
|
698
962
|
end
|
699
963
|
end
|
@@ -701,88 +965,94 @@ describe Puppet::Settings do
|
|
701
965
|
describe "when parsing its configuration" do
|
702
966
|
before do
|
703
967
|
@settings = Puppet::Settings.new
|
704
|
-
@settings.
|
705
|
-
@settings.
|
706
|
-
@file =
|
707
|
-
@userconfig = make_absolute("/test/userconfigfile")
|
968
|
+
allow(@settings).to receive(:service_user_available?).and_return(true)
|
969
|
+
allow(@settings).to receive(:service_group_available?).and_return(true)
|
970
|
+
@file = tmpfile("somefile")
|
708
971
|
@settings.define_settings :section, :user => { :default => "suser", :desc => "doc" }, :group => { :default => "sgroup", :desc => "doc" }
|
709
972
|
@settings.define_settings :section,
|
710
973
|
:config => { :type => :file, :default => @file, :desc => "eh" },
|
711
974
|
:one => { :default => "ONE", :desc => "a" },
|
712
975
|
:two => { :default => "$one TWO", :desc => "b" },
|
713
976
|
:three => { :default => "$one $two THREE", :desc => "c" }
|
714
|
-
|
715
|
-
|
716
|
-
|
977
|
+
|
978
|
+
userconfig = tmpfile("userconfig")
|
979
|
+
allow(@settings).to receive(:user_config_file).and_return(userconfig)
|
717
980
|
end
|
718
981
|
|
719
982
|
it "should not ignore the report setting" do
|
720
983
|
@settings.define_settings :section, :report => { :default => "false", :desc => "a" }
|
721
|
-
|
722
|
-
myfile = File.expand_path(@file)
|
723
|
-
@settings[:config] = myfile
|
724
|
-
text = <<-CONF
|
984
|
+
File.write(@file, <<~CONF)
|
725
985
|
[puppetd]
|
726
|
-
|
986
|
+
report=true
|
727
987
|
CONF
|
728
|
-
|
729
|
-
@settings.
|
730
|
-
|
988
|
+
|
989
|
+
@settings.initialize_global_settings
|
990
|
+
|
731
991
|
expect(@settings[:report]).to be_truthy
|
732
992
|
end
|
733
993
|
|
734
994
|
it "should use its current ':config' value for the file to parse" do
|
735
|
-
myfile =
|
736
|
-
|
737
|
-
|
738
|
-
|
995
|
+
myfile = tmpfile('myfile')
|
996
|
+
File.write(myfile, <<~CONF)
|
997
|
+
[main]
|
998
|
+
one=myfile
|
999
|
+
CONF
|
739
1000
|
|
740
|
-
|
1001
|
+
@settings[:config] = myfile
|
1002
|
+
@settings.initialize_global_settings
|
741
1003
|
|
742
|
-
@settings.
|
1004
|
+
expect(@settings[:one]).to eq('myfile')
|
743
1005
|
end
|
744
1006
|
|
745
1007
|
it "should not try to parse non-existent files" do
|
746
|
-
Puppet::FileSystem.
|
1008
|
+
expect(Puppet::FileSystem).to receive(:exist?).with(@file).and_return(false)
|
747
1009
|
|
748
|
-
File.
|
1010
|
+
expect(File).not_to receive(:read).with(@file)
|
749
1011
|
|
750
|
-
@settings.
|
1012
|
+
@settings.initialize_global_settings
|
751
1013
|
end
|
752
1014
|
|
753
1015
|
it "should return values set in the configuration file" do
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
1016
|
+
File.write(@file, <<~CONF)
|
1017
|
+
[main]
|
1018
|
+
one = fileval
|
1019
|
+
CONF
|
1020
|
+
|
1021
|
+
@settings.initialize_global_settings
|
759
1022
|
expect(@settings[:one]).to eq("fileval")
|
760
1023
|
end
|
761
1024
|
|
762
1025
|
#484 - this should probably be in the regression area
|
763
1026
|
it "should not throw an exception on unknown parameters" do
|
764
|
-
|
765
|
-
|
766
|
-
|
1027
|
+
File.write(@file, <<~CONF)
|
1028
|
+
[main]
|
1029
|
+
nosuchparam = mval
|
1030
|
+
CONF
|
1031
|
+
|
1032
|
+
expect { @settings.initialize_global_settings }.not_to raise_error
|
767
1033
|
end
|
768
1034
|
|
769
1035
|
it "should convert booleans in the configuration file into Ruby booleans" do
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
1036
|
+
File.write(@file, <<~CONF)
|
1037
|
+
[main]
|
1038
|
+
one = true
|
1039
|
+
two = false
|
1040
|
+
CONF
|
1041
|
+
|
1042
|
+
@settings.initialize_global_settings
|
1043
|
+
|
776
1044
|
expect(@settings[:one]).to eq(true)
|
777
1045
|
expect(@settings[:two]).to eq(false)
|
778
1046
|
end
|
779
1047
|
|
780
1048
|
it "should convert integers in the configuration file into Ruby Integers" do
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
1049
|
+
File.write(@file, <<~CONF)
|
1050
|
+
[main]
|
1051
|
+
one = 65
|
1052
|
+
CONF
|
1053
|
+
|
1054
|
+
@settings.initialize_global_settings
|
1055
|
+
|
786
1056
|
expect(@settings[:one]).to eq(65)
|
787
1057
|
end
|
788
1058
|
|
@@ -813,57 +1083,193 @@ describe Puppet::Settings do
|
|
813
1083
|
end
|
814
1084
|
|
815
1085
|
it "should support loading metadata (owner, group, or mode) from a run_mode section in the configuration file" do
|
816
|
-
default_values = {}
|
817
|
-
PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
|
818
|
-
default_values[key] = 'default value'
|
819
|
-
end
|
820
1086
|
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
821
|
-
@settings.define_settings :
|
1087
|
+
@settings.define_settings :server, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
|
822
1088
|
|
823
1089
|
otherfile = make_absolute("/other/file")
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
1090
|
+
File.write(@file, <<~CONF)
|
1091
|
+
[server]
|
1092
|
+
myfile = #{otherfile} {mode = 664}
|
1093
|
+
CONF
|
828
1094
|
|
829
1095
|
# will start initialization as user
|
830
1096
|
expect(@settings.preferred_run_mode).to eq(:user)
|
831
|
-
@settings.
|
1097
|
+
@settings.initialize_global_settings
|
832
1098
|
|
833
|
-
# change app run_mode to
|
834
|
-
@settings.initialize_app_defaults(
|
835
|
-
expect(@settings.preferred_run_mode).to eq(:
|
1099
|
+
# change app run_mode to server
|
1100
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :server))
|
1101
|
+
expect(@settings.preferred_run_mode).to eq(:server)
|
836
1102
|
|
837
1103
|
# initializing the app should have reloaded the metadata based on run_mode
|
838
1104
|
expect(@settings[:myfile]).to eq(otherfile)
|
839
1105
|
expect(metadata(@settings.setting(:myfile))).to eq({:mode => "664"})
|
840
1106
|
end
|
841
1107
|
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
1108
|
+
context "when setting serverport and masterport" do
|
1109
|
+
before(:each) do
|
1110
|
+
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
1111
|
+
@settings.define_settings :server, :masterport => { :desc => "a", :default => 1000 }
|
1112
|
+
@settings.define_settings :server, :serverport => { :type => :alias, :alias_for => :masterport }
|
1113
|
+
@settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport" }
|
1114
|
+
@settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport" }
|
1115
|
+
|
1116
|
+
config_file = tmpfile('config')
|
1117
|
+
@settings[:config] = config_file
|
1118
|
+
File.write(config_file, text)
|
1119
|
+
|
1120
|
+
@settings.initialize_global_settings
|
1121
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :agent))
|
1122
|
+
expect(@settings.preferred_run_mode).to eq(:agent)
|
1123
|
+
end
|
1124
|
+
|
1125
|
+
context 'with serverport in main and masterport in agent' do
|
1126
|
+
let(:text) do
|
1127
|
+
"[main]
|
1128
|
+
serverport = 444
|
1129
|
+
[agent]
|
1130
|
+
masterport = 445
|
1131
|
+
"
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
it { expect(@settings[:serverport]).to eq(444) }
|
1135
|
+
it { expect(@settings[:ca_port]).to eq("444") }
|
1136
|
+
it { expect(@settings[:report_port]).to eq("444") }
|
1137
|
+
it { expect(@settings[:masterport]).to eq(445) }
|
846
1138
|
end
|
847
1139
|
|
1140
|
+
context 'with serverport and masterport in main' do
|
1141
|
+
let(:text) do
|
1142
|
+
"[main]
|
1143
|
+
serverport = 445
|
1144
|
+
masterport = 444
|
1145
|
+
"
|
1146
|
+
end
|
1147
|
+
|
1148
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1149
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1150
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1151
|
+
it { expect(@settings[:masterport]).to eq(444) }
|
1152
|
+
end
|
1153
|
+
|
1154
|
+
context 'with serverport and masterport in agent' do
|
1155
|
+
let(:text) do
|
1156
|
+
"[agent]
|
1157
|
+
serverport = 445
|
1158
|
+
masterport = 444
|
1159
|
+
"
|
1160
|
+
end
|
1161
|
+
|
1162
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1163
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1164
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1165
|
+
it { expect(@settings[:masterport]).to eq(444) }
|
1166
|
+
end
|
1167
|
+
|
1168
|
+
context 'with both serverport and masterport in main and agent' do
|
1169
|
+
let(:text) do
|
1170
|
+
"[main]
|
1171
|
+
serverport = 447
|
1172
|
+
masterport = 442
|
1173
|
+
[agent]
|
1174
|
+
serverport = 445
|
1175
|
+
masterport = 444
|
1176
|
+
"
|
1177
|
+
end
|
1178
|
+
|
1179
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1180
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1181
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1182
|
+
it { expect(@settings[:masterport]).to eq(444) }
|
1183
|
+
end
|
1184
|
+
|
1185
|
+
context 'with serverport in agent and masterport in main' do
|
1186
|
+
let(:text) do
|
1187
|
+
"[agent]
|
1188
|
+
serverport = 444
|
1189
|
+
[main]
|
1190
|
+
masterport = 445
|
1191
|
+
"
|
1192
|
+
end
|
1193
|
+
|
1194
|
+
it { expect(@settings[:serverport]).to eq(444) }
|
1195
|
+
it { expect(@settings[:ca_port]).to eq("444") }
|
1196
|
+
it { expect(@settings[:report_port]).to eq("444") }
|
1197
|
+
it { expect(@settings[:masterport]).to eq(445) }
|
1198
|
+
end
|
1199
|
+
|
1200
|
+
context 'with masterport in main' do
|
1201
|
+
let(:text) do
|
1202
|
+
"[main]
|
1203
|
+
masterport = 445
|
1204
|
+
"
|
1205
|
+
end
|
1206
|
+
|
1207
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1208
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1209
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1210
|
+
it { expect(@settings[:masterport]).to eq(445) }
|
1211
|
+
end
|
1212
|
+
|
1213
|
+
context 'with masterport in agent' do
|
1214
|
+
let(:text) do
|
1215
|
+
"[agent]
|
1216
|
+
masterport = 445
|
1217
|
+
"
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1221
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1222
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1223
|
+
it { expect(@settings[:masterport]).to eq(445) }
|
1224
|
+
end
|
1225
|
+
|
1226
|
+
context 'with serverport in agent' do
|
1227
|
+
let(:text) do
|
1228
|
+
"[agent]
|
1229
|
+
serverport = 445
|
1230
|
+
"
|
1231
|
+
end
|
1232
|
+
|
1233
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1234
|
+
it { expect(@settings[:masterport]).to eq(1000) }
|
1235
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1236
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1237
|
+
end
|
1238
|
+
|
1239
|
+
context 'with serverport in main' do
|
1240
|
+
let(:text) do
|
1241
|
+
"[main]
|
1242
|
+
serverport = 445
|
1243
|
+
"
|
1244
|
+
end
|
1245
|
+
|
1246
|
+
it { expect(@settings[:serverport]).to eq(445) }
|
1247
|
+
it { expect(@settings[:masterport]).to eq(1000) }
|
1248
|
+
it { expect(@settings[:ca_port]).to eq("445") }
|
1249
|
+
it { expect(@settings[:report_port]).to eq("445") }
|
1250
|
+
end
|
1251
|
+
end
|
1252
|
+
|
1253
|
+
it "does not use the metadata from the same setting in a different section" do
|
848
1254
|
file = make_absolute("/file")
|
849
1255
|
default_mode = "0600"
|
850
1256
|
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
851
|
-
@settings.define_settings :
|
1257
|
+
@settings.define_settings :server, :myfile => { :type => :file, :default => file, :desc => "a", :mode => default_mode }
|
852
1258
|
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
1259
|
+
File.write(@file, <<~CONF)
|
1260
|
+
[server]
|
1261
|
+
myfile = #{file}/foo
|
1262
|
+
[agent]
|
1263
|
+
myfile = #{file} {mode = 664}
|
1264
|
+
CONF
|
859
1265
|
|
860
1266
|
# will start initialization as user
|
861
1267
|
expect(@settings.preferred_run_mode).to eq(:user)
|
862
|
-
@settings.
|
1268
|
+
@settings.initialize_global_settings
|
863
1269
|
|
864
|
-
# change app run_mode to
|
865
|
-
@settings.initialize_app_defaults(
|
866
|
-
expect(@settings.preferred_run_mode).to eq(:
|
1270
|
+
# change app run_mode to server
|
1271
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:run_mode => :server))
|
1272
|
+
expect(@settings.preferred_run_mode).to eq(:server)
|
867
1273
|
|
868
1274
|
# initializing the app should have reloaded the metadata based on run_mode
|
869
1275
|
expect(@settings[:myfile]).to eq("#{file}/foo")
|
@@ -874,11 +1280,12 @@ describe Puppet::Settings do
|
|
874
1280
|
values = []
|
875
1281
|
@settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
876
1282
|
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
@settings.
|
1283
|
+
File.write(@file, <<~CONF)
|
1284
|
+
[main]
|
1285
|
+
mysetting = setval
|
1286
|
+
CONF
|
1287
|
+
@settings.initialize_global_settings
|
1288
|
+
|
882
1289
|
expect(values).to eq(["setval"])
|
883
1290
|
end
|
884
1291
|
|
@@ -886,13 +1293,14 @@ describe Puppet::Settings do
|
|
886
1293
|
values = []
|
887
1294
|
@settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
888
1295
|
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
@settings.
|
1296
|
+
File.write(@file, <<~CONF)
|
1297
|
+
[user]
|
1298
|
+
mysetting = setval
|
1299
|
+
[main]
|
1300
|
+
mysetting = other
|
1301
|
+
CONF
|
1302
|
+
@settings.initialize_global_settings
|
1303
|
+
|
896
1304
|
expect(values).to eq(["setval"])
|
897
1305
|
end
|
898
1306
|
|
@@ -901,11 +1309,12 @@ describe Puppet::Settings do
|
|
901
1309
|
@settings.define_settings :section, :base => {:default => "yay", :desc => "a", :hook => proc { |v| values << v }}
|
902
1310
|
@settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
|
903
1311
|
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
@settings.
|
1312
|
+
File.write(@file, <<~CONF)
|
1313
|
+
[main]
|
1314
|
+
mysetting = $base/setval
|
1315
|
+
CONF
|
1316
|
+
@settings.initialize_global_settings
|
1317
|
+
|
909
1318
|
expect(values).to eq(["yay/setval"])
|
910
1319
|
end
|
911
1320
|
|
@@ -915,86 +1324,70 @@ describe Puppet::Settings do
|
|
915
1324
|
:hook => proc { |v| hook_invoked = true },
|
916
1325
|
:call_hook => :on_initialize_and_write, }
|
917
1326
|
|
1327
|
+
# This test relies on `confdir` defaulting to nil which causes the default
|
1328
|
+
# value of `deferred=$confdir/goose` to raise an interpolation error during
|
1329
|
+
# global initialization, and the hook to be skipped
|
918
1330
|
@settings.define_settings(:main,
|
919
|
-
|
920
|
-
|
921
|
-
:codedir => { :type => :directory, :default => nil, :desc => "codedir" },
|
922
|
-
:vardir => { :type => :directory, :default => nil, :desc => "vardir" })
|
1331
|
+
PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.merge(
|
1332
|
+
:confdir => { :type => :directory, :default => nil, :desc => "confdir" }))
|
923
1333
|
|
924
|
-
|
925
|
-
|
926
|
-
|
1334
|
+
File.write(@file, <<~EOD)
|
1335
|
+
[main]
|
1336
|
+
deferred=$confdir/goose
|
927
1337
|
EOD
|
928
1338
|
|
929
|
-
@settings.stubs(:read_file).returns(text)
|
930
1339
|
@settings.initialize_global_settings
|
931
1340
|
|
932
1341
|
expect(hook_invoked).to be_falsey
|
933
1342
|
|
934
|
-
|
1343
|
+
# And now that we initialize app defaults with `confdir`, then `deferred`
|
1344
|
+
# can be interpolated and its hook called
|
1345
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:confdir => '/path/to/confdir'))
|
935
1346
|
|
936
1347
|
expect(hook_invoked).to be_truthy
|
937
1348
|
expect(@settings[:deferred]).to eq(File.expand_path('/path/to/confdir/goose'))
|
938
1349
|
end
|
939
1350
|
|
940
1351
|
it "does not require the value for a setting without a hook to resolve during global setup" do
|
941
|
-
hook_invoked = false
|
942
1352
|
@settings.define_settings :section, :can_cause_problems => {:desc => '' }
|
943
1353
|
|
944
|
-
@settings.define_settings(:main,
|
945
|
-
:logdir => { :type => :directory, :default => nil, :desc => "logdir" },
|
946
|
-
:confdir => { :type => :directory, :default => nil, :desc => "confdir" },
|
947
|
-
:codedir => { :type => :directory, :default => nil, :desc => "codedir" },
|
948
|
-
:vardir => { :type => :directory, :default => nil, :desc => "vardir" })
|
1354
|
+
@settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
949
1355
|
|
950
|
-
|
1356
|
+
File.write(@file, <<~EOD)
|
951
1357
|
[main]
|
952
1358
|
can_cause_problems=$confdir/goose
|
953
1359
|
EOD
|
954
1360
|
|
955
|
-
@settings.stubs(:read_file).returns(text)
|
956
1361
|
@settings.initialize_global_settings
|
957
|
-
@settings.initialize_app_defaults(:
|
1362
|
+
@settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES.merge(:confdir => '/path/to/confdir'))
|
958
1363
|
|
959
|
-
expect(@settings[:can_cause_problems]).to eq(
|
1364
|
+
expect(@settings[:can_cause_problems]).to eq('/path/to/confdir/goose')
|
960
1365
|
end
|
961
1366
|
|
962
1367
|
it "should allow empty values" do
|
963
1368
|
@settings.define_settings :section, :myarg => { :default => "myfile", :desc => "a" }
|
964
1369
|
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
@settings.
|
1370
|
+
File.write(@file, <<~CONF)
|
1371
|
+
[main]
|
1372
|
+
myarg =
|
1373
|
+
CONF
|
1374
|
+
@settings.initialize_global_settings
|
1375
|
+
|
970
1376
|
expect(@settings[:myarg]).to eq("")
|
971
1377
|
end
|
972
1378
|
|
973
1379
|
describe "deprecations" do
|
974
1380
|
let(:settings) { Puppet::Settings.new }
|
975
|
-
let(:app_defaults) {
|
976
|
-
{
|
977
|
-
:logdir => "/dev/null",
|
978
|
-
:confdir => "/dev/null",
|
979
|
-
:codedir => "/dev/null",
|
980
|
-
:vardir => "/dev/null",
|
981
|
-
}
|
982
|
-
}
|
983
1381
|
|
984
1382
|
def assert_accessing_setting_is_deprecated(settings, setting)
|
985
|
-
Puppet.
|
986
|
-
Puppet.
|
1383
|
+
expect(Puppet).to receive(:deprecation_warning).with("Accessing '#{setting}' as a setting is deprecated.")
|
1384
|
+
expect(Puppet).to receive(:deprecation_warning).with("Modifying '#{setting}' as a setting is deprecated.")
|
987
1385
|
settings[setting.intern] = apath = File.expand_path('foo')
|
988
1386
|
expect(settings[setting.intern]).to eq(apath)
|
989
1387
|
end
|
990
1388
|
|
991
1389
|
before(:each) do
|
992
|
-
settings.define_settings(:main,
|
993
|
-
:logdir => { :default => 'a', :desc => 'a' },
|
994
|
-
:confdir => { :default => 'b', :desc => 'b' },
|
995
|
-
:vardir => { :default => 'c', :desc => 'c' },
|
996
|
-
:codedir => { :default => 'd', :desc => 'd' },
|
997
|
-
})
|
1390
|
+
settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
|
998
1391
|
end
|
999
1392
|
|
1000
1393
|
context "complete" do
|
@@ -1010,20 +1403,20 @@ describe Puppet::Settings do
|
|
1010
1403
|
end
|
1011
1404
|
|
1012
1405
|
it "warns when set in puppet.conf" do
|
1013
|
-
Puppet.
|
1406
|
+
expect(Puppet).to receive(:deprecation_warning).with(/completely_deprecated_setting is deprecated\./, 'setting-completely_deprecated_setting')
|
1014
1407
|
|
1015
1408
|
completely_deprecated_settings.parse_config(<<-CONF)
|
1016
1409
|
completely_deprecated_setting='should warn'
|
1017
1410
|
CONF
|
1018
|
-
completely_deprecated_settings.initialize_app_defaults(
|
1411
|
+
completely_deprecated_settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
1019
1412
|
end
|
1020
1413
|
|
1021
1414
|
it "warns when set on the commandline" do
|
1022
|
-
Puppet.
|
1415
|
+
expect(Puppet).to receive(:deprecation_warning).with(/completely_deprecated_setting is deprecated\./, 'setting-completely_deprecated_setting')
|
1023
1416
|
|
1024
1417
|
args = ["--completely_deprecated_setting", "/some/value"]
|
1025
1418
|
completely_deprecated_settings.send(:parse_global_options, args)
|
1026
|
-
completely_deprecated_settings.initialize_app_defaults(
|
1419
|
+
completely_deprecated_settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
1027
1420
|
end
|
1028
1421
|
|
1029
1422
|
it "warns when set in code" do
|
@@ -1044,19 +1437,19 @@ describe Puppet::Settings do
|
|
1044
1437
|
end
|
1045
1438
|
|
1046
1439
|
it "warns for a deprecated setting allowed on the command line set in puppet.conf" do
|
1047
|
-
Puppet.
|
1440
|
+
expect(Puppet).to receive(:deprecation_warning).with(/partially_deprecated_setting is deprecated in puppet\.conf/, 'puppet-conf-setting-partially_deprecated_setting')
|
1048
1441
|
partially_deprecated_settings.parse_config(<<-CONF)
|
1049
1442
|
partially_deprecated_setting='should warn'
|
1050
1443
|
CONF
|
1051
|
-
partially_deprecated_settings.initialize_app_defaults(
|
1444
|
+
partially_deprecated_settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
1052
1445
|
end
|
1053
1446
|
|
1054
1447
|
it "does not warn when manifest is set on command line" do
|
1055
|
-
Puppet.
|
1448
|
+
expect(Puppet).not_to receive(:deprecation_warning)
|
1056
1449
|
|
1057
1450
|
args = ["--partially_deprecated_setting", "/some/value"]
|
1058
1451
|
partially_deprecated_settings.send(:parse_global_options, args)
|
1059
|
-
partially_deprecated_settings.initialize_app_defaults(
|
1452
|
+
partially_deprecated_settings.initialize_app_defaults(PuppetSpec::Settings::TEST_APP_DEFAULT_VALUES)
|
1060
1453
|
end
|
1061
1454
|
|
1062
1455
|
it "warns when set in code" do
|
@@ -1069,7 +1462,6 @@ describe Puppet::Settings do
|
|
1069
1462
|
describe "when there are multiple config files" do
|
1070
1463
|
let(:main_config_text) { "[main]\none = main\ntwo = main2" }
|
1071
1464
|
let(:user_config_text) { "[main]\none = user\n" }
|
1072
|
-
let(:seq) { sequence "config_file_sequence" }
|
1073
1465
|
|
1074
1466
|
before :each do
|
1075
1467
|
@settings = Puppet::Settings.new
|
@@ -1082,13 +1474,13 @@ describe Puppet::Settings do
|
|
1082
1474
|
|
1083
1475
|
context "running non-root without explicit config file" do
|
1084
1476
|
before :each do
|
1085
|
-
Puppet.features.
|
1086
|
-
Puppet::FileSystem.
|
1477
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
1478
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
1087
1479
|
with(user_config_file_default_location).
|
1088
|
-
|
1089
|
-
@settings.
|
1480
|
+
and_return(true).ordered
|
1481
|
+
expect(@settings).to receive(:read_file).
|
1090
1482
|
with(user_config_file_default_location).
|
1091
|
-
|
1483
|
+
and_return(user_config_text).ordered
|
1092
1484
|
end
|
1093
1485
|
|
1094
1486
|
it "should return values from the user config file" do
|
@@ -1104,13 +1496,13 @@ describe Puppet::Settings do
|
|
1104
1496
|
|
1105
1497
|
context "running as root without explicit config file" do
|
1106
1498
|
before :each do
|
1107
|
-
Puppet.features.
|
1108
|
-
Puppet::FileSystem.
|
1499
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1500
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
1109
1501
|
with(main_config_file_default_location).
|
1110
|
-
|
1111
|
-
@settings.
|
1502
|
+
and_return(true).ordered
|
1503
|
+
expect(@settings).to receive(:read_file).
|
1112
1504
|
with(main_config_file_default_location).
|
1113
|
-
|
1505
|
+
and_return(main_config_text).ordered
|
1114
1506
|
end
|
1115
1507
|
|
1116
1508
|
it "should return values from the main config file" do
|
@@ -1126,14 +1518,14 @@ describe Puppet::Settings do
|
|
1126
1518
|
|
1127
1519
|
context "running with an explicit config file as a user (e.g. Apache + Passenger)" do
|
1128
1520
|
before :each do
|
1129
|
-
Puppet.features.
|
1521
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
1130
1522
|
@settings[:confdir] = File.dirname(main_config_file_default_location)
|
1131
|
-
Puppet::FileSystem.
|
1523
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
1132
1524
|
with(main_config_file_default_location).
|
1133
|
-
|
1134
|
-
@settings.
|
1525
|
+
and_return(true).ordered
|
1526
|
+
expect(@settings).to receive(:read_file).
|
1135
1527
|
with(main_config_file_default_location).
|
1136
|
-
|
1528
|
+
and_return(main_config_text).ordered
|
1137
1529
|
end
|
1138
1530
|
|
1139
1531
|
it "should return values from the main config file" do
|
@@ -1150,24 +1542,25 @@ describe Puppet::Settings do
|
|
1150
1542
|
|
1151
1543
|
describe "when reparsing its configuration" do
|
1152
1544
|
before do
|
1153
|
-
@file =
|
1154
|
-
@
|
1545
|
+
@file = tmpfile("testfile")
|
1546
|
+
Puppet::FileSystem.touch(@file)
|
1547
|
+
|
1155
1548
|
@settings = Puppet::Settings.new
|
1156
1549
|
@settings.define_settings :section,
|
1157
1550
|
:config => { :type => :file, :default => @file, :desc => "a" },
|
1158
1551
|
:one => { :default => "ONE", :desc => "a" },
|
1159
1552
|
:two => { :default => "$one TWO", :desc => "b" },
|
1160
1553
|
:three => { :default => "$one $two THREE", :desc => "c" }
|
1161
|
-
|
1162
|
-
|
1163
|
-
@settings.
|
1554
|
+
|
1555
|
+
userconfig = tmpfile("userconfig")
|
1556
|
+
allow(@settings).to receive(:user_config_file).and_return(userconfig)
|
1164
1557
|
end
|
1165
1558
|
|
1166
1559
|
it "does not create the WatchedFile instance and should not parse if the file does not exist" do
|
1167
|
-
Puppet::FileSystem.
|
1168
|
-
Puppet::Util::WatchedFile.expects(:new).never
|
1560
|
+
Puppet::FileSystem.unlink(@file)
|
1169
1561
|
|
1170
|
-
|
1562
|
+
expect(Puppet::Util::WatchedFile).not_to receive(:new)
|
1563
|
+
expect(@settings).not_to receive(:parse_config_files)
|
1171
1564
|
|
1172
1565
|
@settings.reparse_config_files
|
1173
1566
|
end
|
@@ -1175,38 +1568,38 @@ describe Puppet::Settings do
|
|
1175
1568
|
context "and watched file exists" do
|
1176
1569
|
before do
|
1177
1570
|
@watched_file = Puppet::Util::WatchedFile.new(@file)
|
1178
|
-
Puppet::Util::WatchedFile.
|
1571
|
+
expect(Puppet::Util::WatchedFile).to receive(:new).with(@file).and_return(@watched_file)
|
1179
1572
|
end
|
1180
1573
|
|
1181
1574
|
it "uses a WatchedFile instance to determine if the file has changed" do
|
1182
|
-
@watched_file.
|
1575
|
+
expect(@watched_file).to receive(:changed?)
|
1183
1576
|
|
1184
1577
|
@settings.reparse_config_files
|
1185
1578
|
end
|
1186
1579
|
|
1187
1580
|
it "does not reparse if the file has not changed" do
|
1188
|
-
@watched_file.
|
1581
|
+
expect(@watched_file).to receive(:changed?).and_return(false)
|
1189
1582
|
|
1190
|
-
@settings.
|
1583
|
+
expect(@settings).not_to receive(:parse_config_files)
|
1191
1584
|
|
1192
1585
|
@settings.reparse_config_files
|
1193
1586
|
end
|
1194
1587
|
|
1195
1588
|
it "reparses if the file has changed" do
|
1196
|
-
@watched_file.
|
1589
|
+
expect(@watched_file).to receive(:changed?).and_return(true)
|
1197
1590
|
|
1198
|
-
@settings.
|
1591
|
+
expect(@settings).to receive(:parse_config_files)
|
1199
1592
|
|
1200
1593
|
@settings.reparse_config_files
|
1201
1594
|
end
|
1202
1595
|
|
1203
1596
|
it "replaces in-memory values with on-file values" do
|
1204
|
-
@watched_file.
|
1597
|
+
allow(@watched_file).to receive(:changed?).and_return(true)
|
1205
1598
|
@settings[:one] = "init"
|
1206
1599
|
|
1207
1600
|
# Now replace the value
|
1208
|
-
|
1209
|
-
|
1601
|
+
File.write(@file, "[main]\none = disk-replace\n")
|
1602
|
+
|
1210
1603
|
@settings.reparse_config_files
|
1211
1604
|
expect(@settings[:one]).to eq("disk-replace")
|
1212
1605
|
end
|
@@ -1215,23 +1608,20 @@ describe Puppet::Settings do
|
|
1215
1608
|
it "should retain parameters set by cli when configuration files are reparsed" do
|
1216
1609
|
@settings.handlearg("--one", "clival")
|
1217
1610
|
|
1218
|
-
|
1219
|
-
@settings.
|
1220
|
-
@settings.send(:parse_config_files)
|
1611
|
+
File.write(@file, "[main]\none = on-disk\n")
|
1612
|
+
@settings.initialize_global_settings
|
1221
1613
|
|
1222
1614
|
expect(@settings[:one]).to eq("clival")
|
1223
1615
|
end
|
1224
1616
|
|
1225
1617
|
it "should remove in-memory values that are no longer set in the file" do
|
1226
1618
|
# Init the value
|
1227
|
-
|
1228
|
-
@settings.expects(:read_file).returns(text)
|
1619
|
+
File.write(@file, "[main]\none = disk-init\n")
|
1229
1620
|
@settings.send(:parse_config_files)
|
1230
1621
|
expect(@settings[:one]).to eq("disk-init")
|
1231
1622
|
|
1232
1623
|
# Now replace the value
|
1233
|
-
|
1234
|
-
@settings.expects(:read_file).returns(text)
|
1624
|
+
File.write(@file, "[main]\ntwo = disk-replace\n")
|
1235
1625
|
@settings.send(:parse_config_files)
|
1236
1626
|
|
1237
1627
|
# The originally-overridden value should be replaced with the default
|
@@ -1243,14 +1633,12 @@ describe Puppet::Settings do
|
|
1243
1633
|
|
1244
1634
|
it "should retain in-memory values if the file has a syntax error" do
|
1245
1635
|
# Init the value
|
1246
|
-
|
1247
|
-
@settings.
|
1248
|
-
@settings.send(:parse_config_files)
|
1636
|
+
File.write(@file, "[main]\none = initial-value\n")
|
1637
|
+
@settings.initialize_global_settings
|
1249
1638
|
expect(@settings[:one]).to eq("initial-value")
|
1250
1639
|
|
1251
1640
|
# Now replace the value with something bogus
|
1252
|
-
|
1253
|
-
@settings.expects(:read_file).with(@file).returns(text)
|
1641
|
+
File.write(@file, "[main]\nkenny = killed-by-what-follows\n1 is 2, blah blah florp\n")
|
1254
1642
|
@settings.send(:parse_config_files)
|
1255
1643
|
|
1256
1644
|
# The originally-overridden value should not be replaced with the default
|
@@ -1262,55 +1650,58 @@ describe Puppet::Settings do
|
|
1262
1650
|
end
|
1263
1651
|
|
1264
1652
|
it "should provide a method for creating a catalog of resources from its configuration" do
|
1265
|
-
expect(Puppet::Settings.new).to
|
1653
|
+
expect(Puppet::Settings.new.to_catalog).to be_an_instance_of(Puppet::Resource::Catalog)
|
1266
1654
|
end
|
1267
1655
|
|
1268
1656
|
describe "when creating a catalog" do
|
1657
|
+
let(:maindir) { make_absolute('/maindir') }
|
1658
|
+
let(:seconddir) { make_absolute('/seconddir') }
|
1659
|
+
let(:otherdir) { make_absolute('/otherdir') }
|
1660
|
+
|
1269
1661
|
before do
|
1270
1662
|
@settings = Puppet::Settings.new
|
1271
|
-
@settings.
|
1272
|
-
@prefix = Puppet.features.posix? ? "" : "C:"
|
1663
|
+
allow(@settings).to receive(:service_user_available?).and_return(true)
|
1273
1664
|
end
|
1274
1665
|
|
1275
1666
|
it "should add all file resources to the catalog if no sections have been specified" do
|
1276
1667
|
@settings.define_settings :main,
|
1277
|
-
:maindir => { :type => :directory, :default =>
|
1278
|
-
:seconddir => { :type => :directory, :default =>
|
1668
|
+
:maindir => { :type => :directory, :default => maindir, :desc => "a"},
|
1669
|
+
:seconddir => { :type => :directory, :default => seconddir, :desc => "a"}
|
1279
1670
|
@settings.define_settings :other,
|
1280
|
-
:otherdir => { :type => :directory, :default =>
|
1671
|
+
:otherdir => { :type => :directory, :default => otherdir, :desc => "a" }
|
1281
1672
|
|
1282
1673
|
catalog = @settings.to_catalog
|
1283
1674
|
|
1284
|
-
[
|
1675
|
+
[maindir, seconddir, otherdir].each do |path|
|
1285
1676
|
expect(catalog.resource(:file, path)).to be_instance_of(Puppet::Resource)
|
1286
1677
|
end
|
1287
1678
|
end
|
1288
1679
|
|
1289
1680
|
it "should add only files in the specified sections if section names are provided" do
|
1290
|
-
@settings.define_settings :main, :maindir => { :type => :directory, :default =>
|
1291
|
-
@settings.define_settings :other, :otherdir => { :type => :directory, :default =>
|
1681
|
+
@settings.define_settings :main, :maindir => { :type => :directory, :default => maindir, :desc => "a" }
|
1682
|
+
@settings.define_settings :other, :otherdir => { :type => :directory, :default => otherdir, :desc => "a" }
|
1292
1683
|
catalog = @settings.to_catalog(:main)
|
1293
|
-
expect(catalog.resource(:file,
|
1294
|
-
expect(catalog.resource(:file,
|
1684
|
+
expect(catalog.resource(:file, otherdir)).to be_nil
|
1685
|
+
expect(catalog.resource(:file, maindir)).to be_instance_of(Puppet::Resource)
|
1295
1686
|
end
|
1296
1687
|
|
1297
1688
|
it "should not try to add the same file twice" do
|
1298
|
-
@settings.define_settings :main, :maindir => { :type => :directory, :default =>
|
1299
|
-
@settings.define_settings :other, :otherdir => { :type => :directory, :default =>
|
1689
|
+
@settings.define_settings :main, :maindir => { :type => :directory, :default => maindir, :desc => "a" }
|
1690
|
+
@settings.define_settings :other, :otherdir => { :type => :directory, :default => maindir, :desc => "a" }
|
1300
1691
|
expect { @settings.to_catalog }.not_to raise_error
|
1301
1692
|
end
|
1302
1693
|
|
1303
1694
|
it "should ignore files whose :to_resource method returns nil" do
|
1304
|
-
@settings.define_settings :main, :maindir => { :type => :directory, :default =>
|
1305
|
-
@settings.setting(:maindir).
|
1695
|
+
@settings.define_settings :main, :maindir => { :type => :directory, :default => maindir, :desc => "a" }
|
1696
|
+
expect(@settings.setting(:maindir)).to receive(:to_resource).and_return(nil)
|
1306
1697
|
|
1307
|
-
Puppet::Resource::Catalog.
|
1698
|
+
expect_any_instance_of(Puppet::Resource::Catalog).not_to receive(:add_resource)
|
1308
1699
|
@settings.to_catalog
|
1309
1700
|
end
|
1310
1701
|
|
1311
|
-
describe "on Microsoft Windows", :if => Puppet.
|
1702
|
+
describe "on Microsoft Windows", :if => Puppet::Util::Platform.windows? do
|
1312
1703
|
before :each do
|
1313
|
-
Puppet.features.
|
1704
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1314
1705
|
|
1315
1706
|
@settings.define_settings :foo,
|
1316
1707
|
:mkusers => { :type => :boolean, :default => true, :desc => "e" },
|
@@ -1331,6 +1722,7 @@ describe Puppet::Settings do
|
|
1331
1722
|
describe "adding default directory environment to the catalog" do
|
1332
1723
|
let(:tmpenv) { tmpdir("envs") }
|
1333
1724
|
let(:default_path) { "#{tmpenv}/environments" }
|
1725
|
+
|
1334
1726
|
before(:each) do
|
1335
1727
|
@settings.define_settings :main,
|
1336
1728
|
:environment => { :default => "production", :desc => "env"},
|
@@ -1354,6 +1746,49 @@ describe Puppet::Settings do
|
|
1354
1746
|
expect(catalog.resource_keys).to include(["File", "#{envdir}/production"])
|
1355
1747
|
end
|
1356
1748
|
|
1749
|
+
it 'adds the creation of the production directory when not run as root' do
|
1750
|
+
envdir = "#{tmpenv}/custom_envpath"
|
1751
|
+
envpath = "#{envdir}#{File::PATH_SEPARATOR}/some/other/envdir"
|
1752
|
+
@settings[:environmentpath] = envpath
|
1753
|
+
Dir.mkdir(envdir)
|
1754
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
1755
|
+
catalog = @settings.to_catalog
|
1756
|
+
resource = catalog.resource('File', File.join(envdir, 'production'))
|
1757
|
+
expect(resource[:mode]).to eq('0750')
|
1758
|
+
expect(resource[:owner]).to be_nil
|
1759
|
+
expect(resource[:group]).to be_nil
|
1760
|
+
end
|
1761
|
+
|
1762
|
+
it 'adds the creation of the production directory with service owner and group information when available' do
|
1763
|
+
envdir = "#{tmpenv}/custom_envpath"
|
1764
|
+
envpath = "#{envdir}#{File::PATH_SEPARATOR}/some/other/envdir"
|
1765
|
+
@settings[:environmentpath] = envpath
|
1766
|
+
Dir.mkdir(envdir)
|
1767
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1768
|
+
allow(@settings).to receive(:service_user_available?).and_return(true)
|
1769
|
+
allow(@settings).to receive(:service_group_available?).and_return(true)
|
1770
|
+
catalog = @settings.to_catalog
|
1771
|
+
resource = catalog.resource('File', File.join(envdir, 'production'))
|
1772
|
+
expect(resource[:mode]).to eq('0750')
|
1773
|
+
expect(resource[:owner]).to eq('puppet')
|
1774
|
+
expect(resource[:group]).to eq('puppet')
|
1775
|
+
end
|
1776
|
+
|
1777
|
+
it 'adds the creation of the production directory without service owner and group when not available' do
|
1778
|
+
envdir = "#{tmpenv}/custom_envpath"
|
1779
|
+
envpath = "#{envdir}#{File::PATH_SEPARATOR}/some/other/envdir"
|
1780
|
+
@settings[:environmentpath] = envpath
|
1781
|
+
Dir.mkdir(envdir)
|
1782
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1783
|
+
allow(@settings).to receive(:service_user_available?).and_return(false)
|
1784
|
+
allow(@settings).to receive(:service_group_available?).and_return(false)
|
1785
|
+
catalog = @settings.to_catalog
|
1786
|
+
resource = catalog.resource('File', File.join(envdir, 'production'))
|
1787
|
+
expect(resource[:mode]).to eq('0750')
|
1788
|
+
expect(resource[:owner]).to be_nil
|
1789
|
+
expect(resource[:group]).to be_nil
|
1790
|
+
end
|
1791
|
+
|
1357
1792
|
it "handles a non-existent environmentpath" do
|
1358
1793
|
catalog = @settings.to_catalog
|
1359
1794
|
expect(catalog.resource_keys).to be_empty
|
@@ -1377,7 +1812,7 @@ describe Puppet::Settings do
|
|
1377
1812
|
before :all do
|
1378
1813
|
# when this spec is run in isolation to build a settings catalog
|
1379
1814
|
# it will not be able to autorequire and load types for the first time
|
1380
|
-
# on Windows with
|
1815
|
+
# on Windows with windows? stubbed to false, because
|
1381
1816
|
# Puppet::Util.path_to_uri is called to generate a URI to load code
|
1382
1817
|
# and it manipulates the path based on OS
|
1383
1818
|
# so instead we forcefully "prime" the cached types
|
@@ -1387,9 +1822,9 @@ describe Puppet::Settings do
|
|
1387
1822
|
end
|
1388
1823
|
|
1389
1824
|
before do
|
1390
|
-
Puppet.features.
|
1825
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1391
1826
|
# stubbed to false, as Windows catalogs don't add users / groups
|
1392
|
-
Puppet.
|
1827
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
1393
1828
|
|
1394
1829
|
@settings.define_settings :foo,
|
1395
1830
|
:mkusers => { :type => :boolean, :default => true, :desc => "e" },
|
@@ -1413,7 +1848,7 @@ describe Puppet::Settings do
|
|
1413
1848
|
end
|
1414
1849
|
|
1415
1850
|
it "should not add users or groups to the catalog if :mkusers not running as root" do
|
1416
|
-
Puppet.features.
|
1851
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
1417
1852
|
|
1418
1853
|
catalog = @settings.to_catalog
|
1419
1854
|
expect(catalog.resource(:user, "suser")).to be_nil
|
@@ -1421,7 +1856,7 @@ describe Puppet::Settings do
|
|
1421
1856
|
end
|
1422
1857
|
|
1423
1858
|
it "should not add users or groups to the catalog if :mkusers is not a valid setting" do
|
1424
|
-
Puppet.features.
|
1859
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1425
1860
|
settings = Puppet::Settings.new
|
1426
1861
|
settings.define_settings :other, :otherdir => {:type => :directory, :default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
|
1427
1862
|
|
@@ -1432,6 +1867,8 @@ describe Puppet::Settings do
|
|
1432
1867
|
|
1433
1868
|
it "should not add users or groups to the catalog if :mkusers is a valid setting but is disabled" do
|
1434
1869
|
@settings[:mkusers] = false
|
1870
|
+
allow(@settings).to receive(:service_user_available?).and_return(false)
|
1871
|
+
allow(@settings).to receive(:service_group_available?).and_return(false)
|
1435
1872
|
|
1436
1873
|
catalog = @settings.to_catalog
|
1437
1874
|
expect(catalog.resource(:user, "suser")).to be_nil
|
@@ -1455,7 +1892,7 @@ describe Puppet::Settings do
|
|
1455
1892
|
end
|
1456
1893
|
|
1457
1894
|
it "should not attempt to manage the root user" do
|
1458
|
-
Puppet.features.
|
1895
|
+
allow(Puppet.features).to receive(:root?).and_return(true)
|
1459
1896
|
@settings.define_settings :foo, :foodir => {:type => :directory, :default => "/foodir", :desc => "a", :owner => "root", :group => "service"}
|
1460
1897
|
|
1461
1898
|
expect(@settings.to_catalog.resource(:user, "root")).to be_nil
|
@@ -1474,15 +1911,15 @@ describe Puppet::Settings do
|
|
1474
1911
|
:maindir => { :type => :directory, :default => "/maindir", :desc => "a"},
|
1475
1912
|
:seconddir => { :type => :directory, :default => "/seconddir", :desc => "a"}
|
1476
1913
|
|
1477
|
-
main =
|
1478
|
-
main.
|
1479
|
-
main.
|
1480
|
-
second =
|
1481
|
-
second.
|
1482
|
-
second.
|
1914
|
+
main = double('main_resource', :ref => "File[/maindir]")
|
1915
|
+
expect(main).to receive(:to_manifest).and_return("maindir")
|
1916
|
+
expect(main).to receive(:'[]').with(:alias).and_return(nil)
|
1917
|
+
second = double('second_resource', :ref => "File[/seconddir]")
|
1918
|
+
expect(second).to receive(:to_manifest).and_return("seconddir")
|
1919
|
+
expect(second).to receive(:'[]').with(:alias).and_return(nil)
|
1483
1920
|
|
1484
|
-
@settings.setting(:maindir).
|
1485
|
-
@settings.setting(:seconddir).
|
1921
|
+
expect(@settings.setting(:maindir)).to receive(:to_resource).and_return(main)
|
1922
|
+
expect(@settings.setting(:seconddir)).to receive(:to_resource).and_return(second)
|
1486
1923
|
|
1487
1924
|
expect(@settings.to_manifest.split("\n\n").sort).to eq(%w{maindir seconddir})
|
1488
1925
|
end
|
@@ -1491,8 +1928,8 @@ describe Puppet::Settings do
|
|
1491
1928
|
describe "when using sections of the configuration to manage the local host" do
|
1492
1929
|
before do
|
1493
1930
|
@settings = Puppet::Settings.new
|
1494
|
-
@settings.
|
1495
|
-
@settings.
|
1931
|
+
allow(@settings).to receive(:service_user_available?).and_return(true)
|
1932
|
+
allow(@settings).to receive(:service_group_available?).and_return(true)
|
1496
1933
|
@settings.define_settings :main, :noop => { :default => false, :desc => "", :type => :boolean }
|
1497
1934
|
@settings.define_settings :main,
|
1498
1935
|
:maindir => { :type => :directory, :default => make_absolute("/maindir"), :desc => "a" },
|
@@ -1504,44 +1941,44 @@ describe Puppet::Settings do
|
|
1504
1941
|
end
|
1505
1942
|
|
1506
1943
|
it "should create a catalog with the specified sections" do
|
1507
|
-
@settings.
|
1944
|
+
expect(@settings).to receive(:to_catalog).with(:main, :other).and_return(Puppet::Resource::Catalog.new("foo"))
|
1508
1945
|
@settings.use(:main, :other)
|
1509
1946
|
end
|
1510
1947
|
|
1511
1948
|
it "should canonicalize the sections" do
|
1512
|
-
@settings.
|
1949
|
+
expect(@settings).to receive(:to_catalog).with(:main, :other).and_return(Puppet::Resource::Catalog.new("foo"))
|
1513
1950
|
@settings.use("main", "other")
|
1514
1951
|
end
|
1515
1952
|
|
1516
1953
|
it "should ignore sections that have already been used" do
|
1517
|
-
@settings.
|
1954
|
+
expect(@settings).to receive(:to_catalog).with(:main).and_return(Puppet::Resource::Catalog.new("foo"))
|
1518
1955
|
@settings.use(:main)
|
1519
|
-
@settings.
|
1956
|
+
expect(@settings).to receive(:to_catalog).with(:other).and_return(Puppet::Resource::Catalog.new("foo"))
|
1520
1957
|
@settings.use(:main, :other)
|
1521
1958
|
end
|
1522
1959
|
|
1523
1960
|
it "should convert the created catalog to a RAL catalog" do
|
1524
1961
|
@catalog = Puppet::Resource::Catalog.new("foo")
|
1525
|
-
@settings.
|
1962
|
+
expect(@settings).to receive(:to_catalog).with(:main).and_return(@catalog)
|
1526
1963
|
|
1527
|
-
@catalog.
|
1964
|
+
expect(@catalog).to receive(:to_ral).and_return(@catalog)
|
1528
1965
|
@settings.use(:main)
|
1529
1966
|
end
|
1530
1967
|
|
1531
1968
|
it "should specify that it is not managing a host catalog" do
|
1532
1969
|
catalog = Puppet::Resource::Catalog.new("foo")
|
1533
|
-
catalog.
|
1534
|
-
@settings.
|
1970
|
+
expect(catalog).to receive(:apply)
|
1971
|
+
expect(@settings).to receive(:to_catalog).and_return(catalog)
|
1535
1972
|
|
1536
|
-
catalog.
|
1973
|
+
allow(catalog).to receive(:to_ral).and_return(catalog)
|
1537
1974
|
|
1538
|
-
catalog.
|
1975
|
+
expect(catalog).to receive(:host_config=).with(false)
|
1539
1976
|
|
1540
1977
|
@settings.use(:main)
|
1541
1978
|
end
|
1542
1979
|
|
1543
1980
|
it "should support a method for re-using all currently used sections" do
|
1544
|
-
@settings.
|
1981
|
+
expect(@settings).to receive(:to_catalog).with(:main, :third).exactly(2).times.and_return(Puppet::Resource::Catalog.new("foo"))
|
1545
1982
|
|
1546
1983
|
@settings.use(:main, :third)
|
1547
1984
|
@settings.reuse
|
@@ -1549,13 +1986,13 @@ describe Puppet::Settings do
|
|
1549
1986
|
|
1550
1987
|
it "should fail with an appropriate message if any resources fail" do
|
1551
1988
|
@catalog = Puppet::Resource::Catalog.new("foo")
|
1552
|
-
@catalog.
|
1553
|
-
@settings.
|
1989
|
+
allow(@catalog).to receive(:to_ral).and_return(@catalog)
|
1990
|
+
expect(@settings).to receive(:to_catalog).and_return(@catalog)
|
1554
1991
|
|
1555
|
-
@trans =
|
1556
|
-
@catalog.
|
1992
|
+
@trans = double("transaction")
|
1993
|
+
expect(@catalog).to receive(:apply).and_yield(@trans)
|
1557
1994
|
|
1558
|
-
@trans.
|
1995
|
+
expect(@trans).to receive(:any_failed?).and_return(true)
|
1559
1996
|
|
1560
1997
|
resource = Puppet::Type.type(:notify).new(:title => 'failed')
|
1561
1998
|
status = Puppet::Resource::Status.new(resource)
|
@@ -1568,9 +2005,9 @@ describe Puppet::Settings do
|
|
1568
2005
|
report = Puppet::Transaction::Report.new('apply')
|
1569
2006
|
report.add_resource_status(status)
|
1570
2007
|
|
1571
|
-
@trans.
|
2008
|
+
expect(@trans).to receive(:report).and_return(report)
|
1572
2009
|
|
1573
|
-
@settings.
|
2010
|
+
expect(@settings).to receive(:raise).with(/My failure/)
|
1574
2011
|
@settings.use(:whatever)
|
1575
2012
|
end
|
1576
2013
|
end
|
@@ -1579,10 +2016,10 @@ describe Puppet::Settings do
|
|
1579
2016
|
before do
|
1580
2017
|
@settings = Puppet::Settings.new
|
1581
2018
|
#these are the magic default values
|
1582
|
-
@settings.
|
1583
|
-
@settings.
|
1584
|
-
@settings.
|
1585
|
-
@settings.
|
2019
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("")
|
2020
|
+
allow(@settings).to receive(:value).with(:genconfig).and_return(false)
|
2021
|
+
allow(@settings).to receive(:value).with(:genmanifest).and_return(false)
|
2022
|
+
allow(@settings).to receive(:value).with(:environment).and_return(nil)
|
1586
2023
|
end
|
1587
2024
|
|
1588
2025
|
describe "when checking print_config?" do
|
@@ -1591,17 +2028,17 @@ describe Puppet::Settings do
|
|
1591
2028
|
end
|
1592
2029
|
|
1593
2030
|
it "should return true when :configprint has a value" do
|
1594
|
-
@settings.
|
2031
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
1595
2032
|
expect(@settings.print_configs?).to be_truthy
|
1596
2033
|
end
|
1597
2034
|
|
1598
2035
|
it "should return true when :genconfig has a value" do
|
1599
|
-
@settings.
|
2036
|
+
allow(@settings).to receive(:value).with(:genconfig).and_return(true)
|
1600
2037
|
expect(@settings.print_configs?).to be_truthy
|
1601
2038
|
end
|
1602
2039
|
|
1603
2040
|
it "should return true when :genmanifest has a value" do
|
1604
|
-
@settings.
|
2041
|
+
allow(@settings).to receive(:value).with(:genmanifest).and_return(true)
|
1605
2042
|
expect(@settings.print_configs?).to be_truthy
|
1606
2043
|
end
|
1607
2044
|
end
|
@@ -1609,87 +2046,87 @@ describe Puppet::Settings do
|
|
1609
2046
|
describe "when printing configs" do
|
1610
2047
|
describe "when :configprint has a value" do
|
1611
2048
|
it "should call print_config_options" do
|
1612
|
-
@settings.
|
1613
|
-
@settings.
|
2049
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
2050
|
+
expect(@settings).to receive(:print_config_options)
|
1614
2051
|
@settings.print_configs
|
1615
2052
|
end
|
1616
2053
|
|
1617
2054
|
it "should get the value of the option using the environment" do
|
1618
|
-
@settings.
|
1619
|
-
@settings.
|
1620
|
-
@settings.
|
1621
|
-
@settings.
|
1622
|
-
@settings.
|
2055
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
2056
|
+
allow(@settings).to receive(:include?).with("something").and_return(true)
|
2057
|
+
expect(@settings).to receive(:value).with(:environment).and_return("env")
|
2058
|
+
expect(@settings).to receive(:value).with("something", "env").and_return("foo")
|
2059
|
+
allow(@settings).to receive(:puts).with("foo")
|
1623
2060
|
@settings.print_configs
|
1624
2061
|
end
|
1625
2062
|
|
1626
2063
|
it "should print the value of the option" do
|
1627
|
-
@settings.
|
1628
|
-
@settings.
|
1629
|
-
@settings.
|
1630
|
-
@settings.
|
2064
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
2065
|
+
allow(@settings).to receive(:include?).with("something").and_return(true)
|
2066
|
+
allow(@settings).to receive(:value).with("something", nil).and_return("foo")
|
2067
|
+
expect(@settings).to receive(:puts).with("foo")
|
1631
2068
|
@settings.print_configs
|
1632
2069
|
end
|
1633
2070
|
|
1634
2071
|
it "should print the value pairs if there are multiple options" do
|
1635
|
-
@settings.
|
1636
|
-
@settings.
|
1637
|
-
@settings.
|
1638
|
-
@settings.
|
1639
|
-
@settings.
|
1640
|
-
@settings.
|
1641
|
-
@settings.
|
2072
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("bar,baz")
|
2073
|
+
allow(@settings).to receive(:include?).with("bar").and_return(true)
|
2074
|
+
allow(@settings).to receive(:include?).with("baz").and_return(true)
|
2075
|
+
allow(@settings).to receive(:value).with("bar", nil).and_return("foo")
|
2076
|
+
allow(@settings).to receive(:value).with("baz", nil).and_return("fud")
|
2077
|
+
expect(@settings).to receive(:puts).with("bar = foo")
|
2078
|
+
expect(@settings).to receive(:puts).with("baz = fud")
|
1642
2079
|
@settings.print_configs
|
1643
2080
|
end
|
1644
2081
|
|
1645
2082
|
it "should return true after printing" do
|
1646
|
-
@settings.
|
1647
|
-
@settings.
|
1648
|
-
@settings.
|
1649
|
-
@settings.
|
2083
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
2084
|
+
allow(@settings).to receive(:include?).with("something").and_return(true)
|
2085
|
+
allow(@settings).to receive(:value).with("something", nil).and_return("foo")
|
2086
|
+
allow(@settings).to receive(:puts).with("foo")
|
1650
2087
|
expect(@settings.print_configs).to be_truthy
|
1651
2088
|
end
|
1652
2089
|
|
1653
2090
|
it "should return false if a config param is not found" do
|
1654
|
-
@settings.
|
1655
|
-
@settings.
|
1656
|
-
@settings.
|
2091
|
+
allow(@settings).to receive(:puts)
|
2092
|
+
allow(@settings).to receive(:value).with(:configprint).and_return("something")
|
2093
|
+
allow(@settings).to receive(:include?).with("something").and_return(false)
|
1657
2094
|
expect(@settings.print_configs).to be_falsey
|
1658
2095
|
end
|
1659
2096
|
end
|
1660
2097
|
|
1661
2098
|
describe "when genconfig is true" do
|
1662
2099
|
before do
|
1663
|
-
@settings.
|
2100
|
+
allow(@settings).to receive(:puts)
|
1664
2101
|
end
|
1665
2102
|
|
1666
2103
|
it "should call to_config" do
|
1667
|
-
@settings.
|
1668
|
-
@settings.
|
2104
|
+
allow(@settings).to receive(:value).with(:genconfig).and_return(true)
|
2105
|
+
expect(@settings).to receive(:to_config)
|
1669
2106
|
@settings.print_configs
|
1670
2107
|
end
|
1671
2108
|
|
1672
2109
|
it "should return true from print_configs" do
|
1673
|
-
@settings.
|
1674
|
-
@settings.
|
2110
|
+
allow(@settings).to receive(:value).with(:genconfig).and_return(true)
|
2111
|
+
allow(@settings).to receive(:to_config)
|
1675
2112
|
expect(@settings.print_configs).to be_truthy
|
1676
2113
|
end
|
1677
2114
|
end
|
1678
2115
|
|
1679
2116
|
describe "when genmanifest is true" do
|
1680
2117
|
before do
|
1681
|
-
@settings.
|
2118
|
+
allow(@settings).to receive(:puts)
|
1682
2119
|
end
|
1683
2120
|
|
1684
2121
|
it "should call to_config" do
|
1685
|
-
@settings.
|
1686
|
-
@settings.
|
2122
|
+
allow(@settings).to receive(:value).with(:genmanifest).and_return(true)
|
2123
|
+
expect(@settings).to receive(:to_manifest)
|
1687
2124
|
@settings.print_configs
|
1688
2125
|
end
|
1689
2126
|
|
1690
2127
|
it "should return true from print_configs" do
|
1691
|
-
@settings.
|
1692
|
-
@settings.
|
2128
|
+
allow(@settings).to receive(:value).with(:genmanifest).and_return(true)
|
2129
|
+
allow(@settings).to receive(:to_manifest)
|
1693
2130
|
expect(@settings.print_configs).to be_truthy
|
1694
2131
|
end
|
1695
2132
|
end
|
@@ -1704,8 +2141,8 @@ describe Puppet::Settings do
|
|
1704
2141
|
end
|
1705
2142
|
|
1706
2143
|
def a_user_type_for(username)
|
1707
|
-
user =
|
1708
|
-
Puppet::Type.type(:user).
|
2144
|
+
user = double('user', 'suitable?': true, to_s: "User[#{username}]")
|
2145
|
+
expect(Puppet::Type.type(:user)).to receive(:new).with(hash_including(name: username)).and_return(user)
|
1709
2146
|
user
|
1710
2147
|
end
|
1711
2148
|
|
@@ -1716,7 +2153,7 @@ describe Puppet::Settings do
|
|
1716
2153
|
it "should return false if the user provider says the user is missing" do
|
1717
2154
|
settings[:user] = "foo"
|
1718
2155
|
|
1719
|
-
a_user_type_for("foo").
|
2156
|
+
expect(a_user_type_for("foo")).to receive(:exists?).and_return(false)
|
1720
2157
|
|
1721
2158
|
expect(settings).not_to be_service_user_available
|
1722
2159
|
end
|
@@ -1724,7 +2161,7 @@ describe Puppet::Settings do
|
|
1724
2161
|
it "should return true if the user provider says the user is present" do
|
1725
2162
|
settings[:user] = "foo"
|
1726
2163
|
|
1727
|
-
a_user_type_for("foo").
|
2164
|
+
expect(a_user_type_for("foo")).to receive(:exists?).and_return(true)
|
1728
2165
|
|
1729
2166
|
expect(settings).to be_service_user_available
|
1730
2167
|
end
|
@@ -1732,11 +2169,21 @@ describe Puppet::Settings do
|
|
1732
2169
|
it "caches the result of determining if the user is present" do
|
1733
2170
|
settings[:user] = "foo"
|
1734
2171
|
|
1735
|
-
a_user_type_for("foo").
|
2172
|
+
expect(a_user_type_for("foo")).to receive(:exists?).and_return(true)
|
1736
2173
|
expect(settings).to be_service_user_available
|
1737
2174
|
|
1738
2175
|
expect(settings).to be_service_user_available
|
1739
2176
|
end
|
2177
|
+
|
2178
|
+
it "raises if the user is not suitable" do
|
2179
|
+
settings[:user] = "foo"
|
2180
|
+
|
2181
|
+
expect(a_user_type_for("foo")).to receive(:suitable?).and_return(false)
|
2182
|
+
|
2183
|
+
expect {
|
2184
|
+
settings.service_user_available?
|
2185
|
+
}.to raise_error(Puppet::Error, /Cannot manage owner permissions, because the provider for 'User\[foo\]' is not functional/)
|
2186
|
+
end
|
1740
2187
|
end
|
1741
2188
|
|
1742
2189
|
describe "when determining if the service group is available" do
|
@@ -1747,8 +2194,8 @@ describe Puppet::Settings do
|
|
1747
2194
|
end
|
1748
2195
|
|
1749
2196
|
def a_group_type_for(groupname)
|
1750
|
-
group =
|
1751
|
-
Puppet::Type.type(:group).
|
2197
|
+
group = double('group', 'suitable?': true, to_s: "Group[#{groupname}]")
|
2198
|
+
expect(Puppet::Type.type(:group)).to receive(:new).with(hash_including(name: groupname)).and_return(group)
|
1752
2199
|
group
|
1753
2200
|
end
|
1754
2201
|
|
@@ -1759,7 +2206,7 @@ describe Puppet::Settings do
|
|
1759
2206
|
it "should return false if the group provider says the group is missing" do
|
1760
2207
|
settings[:group] = "foo"
|
1761
2208
|
|
1762
|
-
a_group_type_for("foo").
|
2209
|
+
expect(a_group_type_for("foo")).to receive(:exists?).and_return(false)
|
1763
2210
|
|
1764
2211
|
expect(settings).not_to be_service_group_available
|
1765
2212
|
end
|
@@ -1767,7 +2214,7 @@ describe Puppet::Settings do
|
|
1767
2214
|
it "should return true if the group provider says the group is present" do
|
1768
2215
|
settings[:group] = "foo"
|
1769
2216
|
|
1770
|
-
a_group_type_for("foo").
|
2217
|
+
expect(a_group_type_for("foo")).to receive(:exists?).and_return(true)
|
1771
2218
|
|
1772
2219
|
expect(settings).to be_service_group_available
|
1773
2220
|
end
|
@@ -1775,25 +2222,35 @@ describe Puppet::Settings do
|
|
1775
2222
|
it "caches the result of determining if the group is present" do
|
1776
2223
|
settings[:group] = "foo"
|
1777
2224
|
|
1778
|
-
a_group_type_for("foo").
|
2225
|
+
expect(a_group_type_for("foo")).to receive(:exists?).and_return(true)
|
1779
2226
|
expect(settings).to be_service_group_available
|
1780
2227
|
|
1781
2228
|
expect(settings).to be_service_group_available
|
1782
2229
|
end
|
2230
|
+
|
2231
|
+
it "raises if the group is not suitable" do
|
2232
|
+
settings[:group] = "foo"
|
2233
|
+
|
2234
|
+
expect(a_group_type_for("foo")).to receive(:suitable?).and_return(false)
|
2235
|
+
|
2236
|
+
expect {
|
2237
|
+
settings.service_group_available?
|
2238
|
+
}.to raise_error(Puppet::Error, /Cannot manage group permissions, because the provider for 'Group\[foo\]' is not functional/)
|
2239
|
+
end
|
1783
2240
|
end
|
1784
2241
|
|
1785
2242
|
describe "when dealing with command-line options" do
|
1786
2243
|
let(:settings) { Puppet::Settings.new }
|
1787
2244
|
|
1788
2245
|
it "should get options from Puppet.settings.optparse_addargs" do
|
1789
|
-
settings.
|
2246
|
+
expect(settings).to receive(:optparse_addargs).and_return([])
|
1790
2247
|
|
1791
2248
|
settings.send(:parse_global_options, [])
|
1792
2249
|
end
|
1793
2250
|
|
1794
2251
|
it "should add options to OptionParser" do
|
1795
|
-
settings.
|
1796
|
-
settings.
|
2252
|
+
allow(settings).to receive(:optparse_addargs).and_return([["--option","-o", "Funny Option", :NONE]])
|
2253
|
+
expect(settings).to receive(:handlearg).with("--option", true)
|
1797
2254
|
settings.send(:parse_global_options, ["--option"])
|
1798
2255
|
end
|
1799
2256
|
|
@@ -1802,13 +2259,13 @@ describe Puppet::Settings do
|
|
1802
2259
|
end
|
1803
2260
|
|
1804
2261
|
it "should not pass an unrecognized option to handleargs" do
|
1805
|
-
settings.
|
2262
|
+
expect(settings).not_to receive(:handlearg).with("--topuppet", "value")
|
1806
2263
|
expect { settings.send(:parse_global_options, ["--topuppet", "value"]) } .to_not raise_error
|
1807
2264
|
end
|
1808
2265
|
|
1809
2266
|
it "should pass valid puppet settings options to handlearg even if they appear after an unrecognized option" do
|
1810
|
-
settings.
|
1811
|
-
settings.
|
2267
|
+
allow(settings).to receive(:optparse_addargs).and_return([["--option","-o", "Funny Option", :NONE]])
|
2268
|
+
expect(settings).to receive(:handlearg).with("--option", true)
|
1812
2269
|
settings.send(:parse_global_options, ["--invalidoption", "--option"])
|
1813
2270
|
end
|
1814
2271
|
|
@@ -1821,18 +2278,18 @@ describe Puppet::Settings do
|
|
1821
2278
|
end
|
1822
2279
|
|
1823
2280
|
it "should set preferred run mode from --run_mode <foo> string without error" do
|
1824
|
-
args = ["--run_mode", "
|
1825
|
-
settings.
|
2281
|
+
args = ["--run_mode", "server"]
|
2282
|
+
expect(settings).not_to receive(:handlearg).with("--run_mode", "server")
|
1826
2283
|
expect { settings.send(:parse_global_options, args) } .to_not raise_error
|
1827
|
-
expect(Puppet.settings.preferred_run_mode).to eq(:
|
2284
|
+
expect(Puppet.settings.preferred_run_mode).to eq(:server)
|
1828
2285
|
expect(args.empty?).to eq(true)
|
1829
2286
|
end
|
1830
2287
|
|
1831
2288
|
it "should set preferred run mode from --run_mode=<foo> string without error" do
|
1832
|
-
args = ["--run_mode=
|
1833
|
-
settings.
|
1834
|
-
expect { settings.send(:parse_global_options, args) }
|
1835
|
-
expect(Puppet.settings.preferred_run_mode).to eq(:
|
2289
|
+
args = ["--run_mode=server"]
|
2290
|
+
expect(settings).not_to receive(:handlearg).with("--run_mode", "server")
|
2291
|
+
expect { settings.send(:parse_global_options, args) }.to_not raise_error
|
2292
|
+
expect(Puppet.settings.preferred_run_mode).to eq(:server)
|
1836
2293
|
expect(args.empty?).to eq(true)
|
1837
2294
|
end
|
1838
2295
|
end
|
@@ -1840,8 +2297,8 @@ describe Puppet::Settings do
|
|
1840
2297
|
describe "default_certname" do
|
1841
2298
|
describe "using hostname and domain" do
|
1842
2299
|
before :each do
|
1843
|
-
Puppet::Settings.
|
1844
|
-
Puppet::Settings.
|
2300
|
+
allow(Puppet::Settings).to receive(:hostname_fact).and_return("testhostname")
|
2301
|
+
allow(Puppet::Settings).to receive(:domain_fact).and_return("domain.test.")
|
1845
2302
|
end
|
1846
2303
|
|
1847
2304
|
it "should use both to generate fqdn" do
|
@@ -1854,8 +2311,8 @@ describe Puppet::Settings do
|
|
1854
2311
|
|
1855
2312
|
describe "using just hostname" do
|
1856
2313
|
before :each do
|
1857
|
-
Puppet::Settings.
|
1858
|
-
Puppet::Settings.
|
2314
|
+
allow(Puppet::Settings).to receive(:hostname_fact).and_return("testhostname")
|
2315
|
+
allow(Puppet::Settings).to receive(:domain_fact).and_return("")
|
1859
2316
|
end
|
1860
2317
|
|
1861
2318
|
it "should use only hostname to generate fqdn" do
|