puppet 6.0.10 → 6.1.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 +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +31 -27
- data/Guardfile.example +76 -0
- data/LICENSE +189 -4
- data/MAINTAINERS +47 -0
- data/README.md +3 -3
- data/lib/hiera/scope.rb +0 -7
- data/lib/puppet.rb +6 -5
- data/lib/puppet/application.rb +3 -3
- data/lib/puppet/application/cert.rb +2 -2
- data/lib/puppet/application/device.rb +83 -109
- data/lib/puppet/application/filebucket.rb +1 -10
- data/lib/puppet/application/ssl.rb +0 -2
- data/lib/puppet/configurer.rb +9 -10
- data/lib/puppet/confine/false.rb +1 -7
- data/lib/puppet/confine/true.rb +1 -7
- data/lib/puppet/defaults.rb +39 -51
- data/lib/puppet/forge.rb +1 -4
- data/lib/puppet/functions/abs.rb +1 -1
- data/lib/puppet/functions/call.rb +1 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/indirector/request.rb +15 -26
- data/lib/puppet/network/http/connection.rb +12 -32
- data/lib/puppet/network/http/factory.rb +0 -5
- data/lib/puppet/pal/catalog_compiler.rb +96 -0
- data/lib/puppet/pal/compiler.rb +221 -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 +523 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +71 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parser/functions/generate.rb +7 -6
- data/lib/puppet/plugins/configuration.rb +5 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
- data/lib/puppet/pops/issues.rb +0 -4
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
- data/lib/puppet/pops/model/factory.rb +4 -38
- data/lib/puppet/pops/model/pn_transformer.rb +0 -5
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
- data/lib/puppet/pops/parser/lexer2.rb +1 -6
- data/lib/puppet/pops/parser/locator.rb +86 -106
- data/lib/puppet/pops/parser/parser_support.rb +2 -11
- data/lib/puppet/pops/types/string_converter.rb +7 -2
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +3 -5
- data/lib/puppet/pops/validation/checker4_0.rb +13 -0
- data/lib/puppet/provider.rb +2 -1
- data/lib/puppet/provider/exec.rb +6 -1
- data/lib/puppet/provider/file/windows.rb +1 -49
- data/lib/puppet/provider/group/windows_adsi.rb +1 -4
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/dpkg.rb +2 -15
- data/lib/puppet/provider/package/gem.rb +42 -102
- data/lib/puppet/provider/package/pip.rb +111 -135
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +37 -21
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +16 -27
- data/lib/puppet/provider/package/windows.rb +1 -5
- data/lib/puppet/provider/package/yum.rb +1 -2
- data/lib/puppet/provider/service/systemd.rb +17 -0
- data/lib/puppet/provider/service/upstart.rb +5 -17
- data/lib/puppet/provider/service/windows.rb +8 -3
- data/lib/puppet/provider/user/directoryservice.rb +4 -16
- data/lib/puppet/provider/user/useradd.rb +13 -16
- data/lib/puppet/resource.rb +3 -1
- data/lib/puppet/rest/client.rb +83 -0
- data/lib/puppet/rest/route.rb +1 -1
- data/lib/puppet/settings.rb +5 -10
- data/lib/puppet/settings/server_list_setting.rb +0 -9
- data/lib/puppet/ssl/host.rb +11 -0
- data/lib/puppet/ssl/validator/default_validator.rb +0 -31
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/transaction.rb +7 -12
- data/lib/puppet/transaction/event_manager.rb +5 -1
- data/lib/puppet/transaction/resource_harness.rb +0 -1
- data/lib/puppet/type.rb +6 -0
- data/lib/puppet/type/exec.rb +5 -27
- data/lib/puppet/type/file/mode.rb +1 -6
- data/lib/puppet/type/file/source.rb +1 -0
- data/lib/puppet/type/filebucket.rb +8 -12
- data/lib/puppet/type/package.rb +11 -44
- data/lib/puppet/type/schedule.rb +0 -4
- data/lib/puppet/type/service.rb +12 -0
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -5
- data/lib/puppet/util/connection.rb +6 -15
- data/lib/puppet/util/http_proxy.rb +2 -3
- data/lib/puppet/util/log.rb +2 -7
- data/lib/puppet/util/pidlock.rb +1 -15
- data/lib/puppet/util/windows/process.rb +5 -73
- data/lib/puppet/util/windows/registry.rb +1 -7
- data/lib/puppet/util/windows/security.rb +8 -29
- data/lib/puppet/util/windows/service.rb +33 -27
- data/lib/puppet/util/windows/user.rb +4 -14
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +5 -1132
- data/locales/ja/puppet.po +297 -363
- data/locales/puppet.pot +445 -517
- data/man/man5/puppet.conf.5 +12 -20
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +2 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- 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/integration/agent/logging_spec.rb +7 -5
- data/spec/integration/application/apply_spec.rb +16 -18
- data/spec/integration/application/doc_spec.rb +2 -1
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +6 -5
- data/spec/integration/defaults_spec.rb +6 -5
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +4 -3
- data/spec/integration/faces/documentation_spec.rb +1 -0
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +4 -2
- data/spec/integration/file_serving/content_spec.rb +1 -0
- data/spec/integration/file_serving/fileset_spec.rb +1 -0
- data/spec/integration/file_serving/metadata_spec.rb +1 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -4
- data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
- data/spec/integration/network/authconfig_spec.rb +24 -23
- data/spec/integration/network/formats_spec.rb +1 -0
- data/spec/integration/node/environment_spec.rb +1 -0
- data/spec/integration/node/facts_spec.rb +10 -9
- data/spec/integration/node_spec.rb +7 -6
- data/spec/integration/parser/catalog_spec.rb +5 -1
- data/spec/integration/parser/collection_spec.rb +2 -1
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +5 -4
- data/spec/integration/provider/service/systemd_spec.rb +2 -0
- data/spec/integration/provider/service/windows_spec.rb +2 -1
- data/spec/integration/reference/providers_spec.rb +2 -1
- data/spec/integration/reports_spec.rb +2 -1
- data/spec/integration/resource/catalog_spec.rb +17 -14
- data/spec/integration/resource/type_collection_spec.rb +5 -4
- data/spec/integration/ssl/certificate_request_spec.rb +1 -0
- data/spec/integration/ssl/host_spec.rb +2 -1
- data/spec/integration/ssl/key_spec.rb +1 -0
- data/spec/integration/test/test_helper_spec.rb +1 -0
- data/spec/integration/transaction/report_spec.rb +11 -6
- data/spec/integration/transaction_spec.rb +19 -18
- data/spec/integration/type/exec_spec.rb +1 -0
- data/spec/integration/type/file_spec.rb +33 -13
- data/spec/integration/type/package_spec.rb +24 -20
- data/spec/integration/type/tidy_spec.rb +2 -1
- data/spec/integration/type_spec.rb +1 -0
- data/spec/integration/util/autoload_spec.rb +2 -1
- data/spec/integration/util/rdoc/parser_spec.rb +1 -0
- data/spec/integration/util/settings_spec.rb +1 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/principal_spec.rb +1 -0
- data/spec/integration/util/windows/process_spec.rb +6 -4
- data/spec/integration/util/windows/registry_spec.rb +51 -93
- data/spec/integration/util/windows/security_spec.rb +4 -2
- data/spec/integration/util/windows/user_spec.rb +20 -37
- data/spec/integration/util_spec.rb +7 -4
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +2 -1
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +9 -8
- data/spec/shared_behaviours/file_serving.rb +8 -6
- data/spec/shared_behaviours/file_serving_model.rb +5 -3
- data/spec/shared_behaviours/hiera_indirections.rb +4 -3
- data/spec/shared_behaviours/iterative_functions.rb +1 -0
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +70 -112
- data/spec/spec_helper.rb +2 -11
- data/spec/unit/agent/disabler_spec.rb +5 -4
- data/spec/unit/agent/locker_spec.rb +13 -12
- data/spec/unit/agent_spec.rb +85 -80
- data/spec/unit/application/agent_spec.rb +93 -88
- data/spec/unit/application/apply_spec.rb +83 -82
- data/spec/unit/application/config_spec.rb +1 -0
- data/spec/unit/application/describe_spec.rb +7 -6
- data/spec/unit/application/device_spec.rb +419 -395
- data/spec/unit/application/doc_spec.rb +46 -44
- data/spec/unit/application/face_base_spec.rb +62 -61
- data/spec/unit/application/facts_spec.rb +4 -3
- data/spec/unit/application/filebucket_spec.rb +74 -66
- data/spec/unit/application/indirection_base_spec.rb +6 -8
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/resource_spec.rb +48 -42
- data/spec/unit/application/ssl_spec.rb +3 -8
- data/spec/unit/application_spec.rb +98 -86
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +5 -3
- data/spec/unit/configurer/downloader_spec.rb +21 -20
- data/spec/unit/configurer/fact_handler_spec.rb +3 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
- data/spec/unit/configurer_spec.rb +198 -194
- data/spec/unit/confine/exists_spec.rb +15 -17
- data/spec/unit/confine/false_spec.rb +6 -32
- data/spec/unit/confine/feature_spec.rb +5 -7
- data/spec/unit/confine/true_spec.rb +6 -32
- data/spec/unit/confine/variable_spec.rb +15 -14
- data/spec/unit/confine_collection_spec.rb +29 -28
- data/spec/unit/confine_spec.rb +14 -13
- data/spec/unit/confiner_spec.rb +11 -10
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +36 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
- data/spec/unit/datatypes_spec.rb +4 -3
- data/spec/unit/defaults_spec.rb +27 -18
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +32 -30
- data/spec/unit/external/pson_spec.rb +1 -0
- data/spec/unit/face/catalog_spec.rb +1 -0
- data/spec/unit/face/config_spec.rb +35 -31
- data/spec/unit/face/epp_face_spec.rb +4 -3
- data/spec/unit/face/facts_spec.rb +6 -5
- data/spec/unit/face/generate_spec.rb +5 -4
- data/spec/unit/face/help_spec.rb +8 -7
- data/spec/unit/face/key_spec.rb +1 -0
- data/spec/unit/face/man_spec.rb +2 -1
- data/spec/unit/face/module/install_spec.rb +5 -3
- data/spec/unit/face/module/list_spec.rb +12 -2
- data/spec/unit/face/module/search_spec.rb +9 -11
- data/spec/unit/face/module/uninstall_spec.rb +8 -4
- data/spec/unit/face/node_spec.rb +24 -23
- data/spec/unit/face/parser_spec.rb +18 -3
- data/spec/unit/face/plugin_spec.rb +9 -36
- data/spec/unit/face/status_spec.rb +1 -0
- data/spec/unit/file_bucket/dipper_spec.rb +20 -24
- data/spec/unit/file_bucket/file_spec.rb +2 -0
- data/spec/unit/file_serving/base_spec.rb +15 -14
- data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
- data/spec/unit/file_serving/configuration_spec.rb +66 -63
- data/spec/unit/file_serving/content_spec.rb +11 -10
- data/spec/unit/file_serving/fileset_spec.rb +58 -63
- data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +32 -31
- data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
- data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
- data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
- data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
- data/spec/unit/file_serving/mount_spec.rb +1 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
- data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +2 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +16 -17
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +30 -29
- data/spec/unit/forge_spec.rb +11 -15
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +2 -0
- data/spec/unit/functions/defined_spec.rb +1 -0
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +4 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +2 -1
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/new_spec.rb +0 -15
- data/spec/unit/functions/require_spec.rb +3 -0
- data/spec/unit/functions/shared.rb +8 -5
- data/spec/unit/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/functions4_spec.rb +10 -9
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
- data/spec/unit/graph/relationship_graph_spec.rb +2 -1
- data/spec/unit/graph/simple_graph_spec.rb +10 -9
- data/spec/unit/hiera/scope_spec.rb +0 -7
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
- data/spec/unit/indirector/catalog/json_spec.rb +2 -1
- data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
- data/spec/unit/indirector/certificate/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
- data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
- data/spec/unit/indirector/envelope_spec.rb +2 -1
- data/spec/unit/indirector/exec_spec.rb +5 -4
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +43 -37
- data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
- data/spec/unit/indirector/facts/rest_spec.rb +8 -7
- data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
- data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_content/file_spec.rb +1 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
- data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_server_spec.rb +87 -87
- data/spec/unit/indirector/indirection_spec.rb +226 -242
- data/spec/unit/indirector/json_spec.rb +9 -7
- data/spec/unit/indirector/key/file_spec.rb +22 -21
- data/spec/unit/indirector/memory_spec.rb +7 -6
- data/spec/unit/indirector/msgpack_spec.rb +9 -7
- data/spec/unit/indirector/node/exec_spec.rb +3 -2
- data/spec/unit/indirector/node/memory_spec.rb +4 -2
- data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/node/plain_spec.rb +4 -2
- data/spec/unit/indirector/node/rest_spec.rb +1 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/node/yaml_spec.rb +1 -0
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +8 -7
- data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/report/processor_spec.rb +22 -21
- data/spec/unit/indirector/report/rest_spec.rb +12 -11
- data/spec/unit/indirector/report/yaml_spec.rb +1 -0
- data/spec/unit/indirector/request_spec.rb +12 -11
- data/spec/unit/indirector/resource/ral_spec.rb +54 -47
- data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/rest_spec.rb +110 -113
- data/spec/unit/indirector/ssl_file_spec.rb +65 -64
- data/spec/unit/indirector/status/local_spec.rb +1 -0
- data/spec/unit/indirector/status/rest_spec.rb +1 -0
- data/spec/unit/indirector/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/terminus_spec.rb +27 -27
- data/spec/unit/indirector/yaml_spec.rb +6 -5
- data/spec/unit/indirector_spec.rb +2 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_builder_spec.rb +1 -0
- data/spec/unit/interface/action_manager_spec.rb +1 -0
- data/spec/unit/interface/action_spec.rb +3 -2
- data/spec/unit/interface/documentation_spec.rb +1 -0
- data/spec/unit/interface/face_collection_spec.rb +12 -19
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +4 -3
- data/spec/unit/module_spec.rb +51 -46
- data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -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 +12 -12
- data/spec/unit/module_tool/tar_spec.rb +13 -12
- data/spec/unit/module_tool_spec.rb +12 -7
- data/spec/unit/network/auth_config_parser_spec.rb +13 -11
- data/spec/unit/network/authconfig_spec.rb +18 -17
- data/spec/unit/network/authorization_spec.rb +5 -4
- data/spec/unit/network/authstore_spec.rb +1 -0
- data/spec/unit/network/format_handler_spec.rb +1 -0
- data/spec/unit/network/format_spec.rb +10 -9
- data/spec/unit/network/format_support_spec.rb +29 -28
- data/spec/unit/network/formats_spec.rb +5 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
- data/spec/unit/network/http/api_spec.rb +2 -0
- data/spec/unit/network/http/compression_spec.rb +22 -21
- data/spec/unit/network/http/connection_spec.rb +121 -30
- data/spec/unit/network/http/factory_spec.rb +6 -11
- data/spec/unit/network/http/handler_spec.rb +18 -9
- data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
- data/spec/unit/network/http/pool_spec.rb +29 -28
- data/spec/unit/network/http/request_spec.rb +2 -0
- data/spec/unit/network/http/response_spec.rb +13 -11
- data/spec/unit/network/http/route_spec.rb +1 -0
- data/spec/unit/network/http/session_spec.rb +2 -1
- data/spec/unit/network/http/site_spec.rb +1 -0
- data/spec/unit/network/http_pool_spec.rb +9 -18
- data/spec/unit/network/http_spec.rb +1 -0
- data/spec/unit/network/resolver_spec.rb +26 -25
- data/spec/unit/network/rights_spec.rb +53 -52
- data/spec/unit/node/environment_spec.rb +15 -14
- data/spec/unit/node/facts_spec.rb +7 -5
- data/spec/unit/node_spec.rb +10 -4
- data/spec/unit/other/selinux_spec.rb +1 -0
- data/spec/unit/parameter/boolean_spec.rb +2 -1
- data/spec/unit/parameter/package_options_spec.rb +2 -1
- data/spec/unit/parameter/path_spec.rb +1 -0
- data/spec/unit/parameter/value_collection_spec.rb +1 -0
- data/spec/unit/parameter/value_spec.rb +1 -0
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
- data/spec/unit/parser/ast/leaf_spec.rb +21 -20
- data/spec/unit/parser/compiler_spec.rb +96 -84
- data/spec/unit/parser/environment_compiler_spec.rb +8 -7
- data/spec/unit/parser/files_spec.rb +1 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +1 -0
- data/spec/unit/parser/functions/fail_spec.rb +2 -1
- data/spec/unit/parser/functions/file_spec.rb +14 -13
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
- data/spec/unit/parser/functions/generate_spec.rb +8 -7
- data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
- data/spec/unit/parser/functions/scanf_spec.rb +1 -0
- data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
- data/spec/unit/parser/functions/split_spec.rb +1 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
- data/spec/unit/parser/functions/tag_spec.rb +2 -1
- data/spec/unit/parser/functions/tagged_spec.rb +3 -2
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/parser/functions_spec.rb +7 -6
- data/spec/unit/parser/relationship_spec.rb +1 -0
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +35 -39
- data/spec/unit/parser/templatewrapper_spec.rb +12 -11
- data/spec/unit/parser/type_loader_spec.rb +19 -17
- data/spec/unit/pops/adaptable_spec.rb +1 -0
- data/spec/unit/pops/benchmark_spec.rb +1 -0
- data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
- data/spec/unit/pops/factory_spec.rb +4 -3
- data/spec/unit/pops/issues_spec.rb +20 -19
- data/spec/unit/pops/loaders/loader_spec.rb +4 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
- data/spec/unit/pops/lookup/context_spec.rb +1 -0
- data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
- data/spec/unit/pops/merge_strategy_spec.rb +1 -0
- data/spec/unit/pops/migration_spec.rb +5 -3
- data/spec/unit/pops/model/model_spec.rb +1 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
- data/spec/unit/pops/parser/locator_spec.rb +6 -48
- data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
- data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
- data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
- data/spec/unit/pops/pn_spec.rb +1 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/string_converter_spec.rb +5 -1
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +2 -1
- data/spec/unit/pops/visitor_spec.rb +1 -0
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +1 -0
- data/spec/unit/property/keyvalue_spec.rb +34 -32
- data/spec/unit/property/list_spec.rb +27 -26
- data/spec/unit/property/ordered_list_spec.rb +14 -10
- data/spec/unit/property_spec.rb +43 -42
- data/spec/unit/provider/aix_object_spec.rb +45 -47
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +31 -6
- data/spec/unit/provider/exec/shell_spec.rb +1 -0
- data/spec/unit/provider/exec/windows_spec.rb +4 -2
- data/spec/unit/provider/exec_spec.rb +1 -0
- data/spec/unit/provider/file/posix_spec.rb +24 -22
- data/spec/unit/provider/file/windows_spec.rb +17 -15
- data/spec/unit/provider/group/aix_spec.rb +2 -3
- data/spec/unit/provider/group/groupadd_spec.rb +26 -30
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +53 -59
- data/spec/unit/provider/ldap_spec.rb +62 -61
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
- data/spec/unit/provider/nameservice_spec.rb +40 -38
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +27 -44
- data/spec/unit/provider/package/aptitude_spec.rb +7 -6
- data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +20 -18
- data/spec/unit/provider/package/dpkg_spec.rb +53 -70
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +55 -132
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +42 -46
- data/spec/unit/provider/package/nim_spec.rb +39 -30
- data/spec/unit/provider/package/openbsd_spec.rb +39 -36
- data/spec/unit/provider/package/opkg_spec.rb +26 -23
- data/spec/unit/provider/package/pacman_spec.rb +118 -97
- data/spec/unit/provider/package/pip3_spec.rb +0 -17
- data/spec/unit/provider/package/pip_spec.rb +106 -95
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
- data/spec/unit/provider/package/pkgin_spec.rb +8 -10
- data/spec/unit/provider/package/pkgng_spec.rb +31 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
- data/spec/unit/provider/package/portage_spec.rb +74 -70
- data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
- data/spec/unit/provider/package/rpm_spec.rb +76 -154
- data/spec/unit/provider/package/sun_spec.rb +18 -16
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +4 -2
- data/spec/unit/provider/package/urpmi_spec.rb +17 -15
- data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
- data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
- data/spec/unit/provider/package/windows/package_spec.rb +42 -37
- data/spec/unit/provider/package/windows_spec.rb +32 -47
- data/spec/unit/provider/package/yum_spec.rb +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +45 -44
- data/spec/unit/provider/service/base_spec.rb +5 -4
- data/spec/unit/provider/service/bsd_spec.rb +29 -27
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +55 -50
- data/spec/unit/provider/service/init_spec.rb +52 -53
- data/spec/unit/provider/service/launchd_spec.rb +116 -138
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +45 -43
- data/spec/unit/provider/service/openwrt_spec.rb +31 -26
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +43 -45
- data/spec/unit/provider/service/runit_spec.rb +27 -29
- data/spec/unit/provider/service/smf_spec.rb +66 -74
- data/spec/unit/provider/service/src_spec.rb +47 -46
- data/spec/unit/provider/service/systemd_spec.rb +136 -109
- data/spec/unit/provider/service/upstart_spec.rb +93 -77
- data/spec/unit/provider/service/windows_spec.rb +41 -33
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
- data/spec/unit/provider/user/hpux_spec.rb +16 -16
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +12 -10
- data/spec/unit/provider/user/pw_spec.rb +35 -37
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +92 -93
- data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
- data/spec/unit/provider_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +5 -4
- data/spec/unit/puppet_pal_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +7 -6
- data/spec/unit/relationship_spec.rb +1 -0
- data/spec/unit/reports/http_spec.rb +23 -21
- data/spec/unit/reports/store_spec.rb +4 -3
- data/spec/unit/reports_spec.rb +14 -12
- data/spec/unit/resource/capability_finder_spec.rb +17 -15
- data/spec/unit/resource/catalog_spec.rb +68 -72
- data/spec/unit/resource/status_spec.rb +8 -6
- data/spec/unit/resource/type_collection_spec.rb +18 -17
- data/spec/unit/resource/type_spec.rb +35 -34
- data/spec/unit/resource_spec.rb +63 -36
- data/spec/unit/rest/client_spec.rb +135 -0
- data/spec/unit/rest/route_spec.rb +6 -6
- data/spec/unit/scheduler/job_spec.rb +1 -0
- data/spec/unit/scheduler/scheduler_spec.rb +1 -0
- data/spec/unit/scheduler/splay_job_spec.rb +2 -1
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +1 -0
- data/spec/unit/settings/directory_setting_spec.rb +7 -2
- data/spec/unit/settings/duration_setting_spec.rb +2 -1
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +6 -4
- data/spec/unit/settings/file_setting_spec.rb +46 -44
- data/spec/unit/settings/path_setting_spec.rb +2 -1
- data/spec/unit/settings/priority_setting_spec.rb +2 -1
- data/spec/unit/settings/string_setting_spec.rb +15 -14
- data/spec/unit/settings/terminus_setting_spec.rb +2 -1
- data/spec/unit/settings/value_translator_spec.rb +1 -0
- data/spec/unit/settings_spec.rb +224 -253
- data/spec/unit/ssl/base_spec.rb +15 -14
- data/spec/unit/ssl/certificate_request_spec.rb +58 -62
- data/spec/unit/ssl/certificate_spec.rb +25 -23
- data/spec/unit/ssl/digest_spec.rb +1 -0
- data/spec/unit/ssl/host_spec.rb +149 -166
- data/spec/unit/ssl/key_spec.rb +31 -30
- data/spec/unit/ssl/validator_spec.rb +39 -40
- data/spec/unit/task_spec.rb +45 -44
- data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
- data/spec/unit/transaction/event_manager_spec.rb +88 -87
- data/spec/unit/transaction/event_spec.rb +15 -16
- data/spec/unit/transaction/persistence_spec.rb +17 -16
- data/spec/unit/transaction/report_spec.rb +12 -11
- data/spec/unit/transaction/resource_harness_spec.rb +31 -52
- data/spec/unit/transaction_spec.rb +87 -140
- data/spec/unit/type/component_spec.rb +1 -0
- data/spec/unit/type/exec_spec.rb +50 -101
- data/spec/unit/type/file/checksum_spec.rb +10 -9
- data/spec/unit/type/file/checksum_value_spec.rb +32 -31
- data/spec/unit/type/file/content_spec.rb +61 -58
- data/spec/unit/type/file/ctime_spec.rb +1 -0
- data/spec/unit/type/file/ensure_spec.rb +13 -12
- data/spec/unit/type/file/group_spec.rb +7 -5
- data/spec/unit/type/file/mode_spec.rb +6 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -0
- data/spec/unit/type/file/owner_spec.rb +8 -6
- data/spec/unit/type/file/selinux_spec.rb +19 -17
- data/spec/unit/type/file/source_spec.rb +101 -104
- data/spec/unit/type/file/type_spec.rb +1 -0
- data/spec/unit/type/file_spec.rb +185 -195
- data/spec/unit/type/filebucket_spec.rb +10 -11
- data/spec/unit/type/group_spec.rb +8 -6
- data/spec/unit/type/noop_metaparam_spec.rb +2 -1
- data/spec/unit/type/package/package_settings_spec.rb +23 -44
- data/spec/unit/type/package_spec.rb +57 -56
- data/spec/unit/type/resources_spec.rb +74 -72
- data/spec/unit/type/schedule_spec.rb +26 -24
- data/spec/unit/type/service_spec.rb +75 -49
- data/spec/unit/type/stage_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +62 -61
- data/spec/unit/type/user_spec.rb +25 -24
- data/spec/unit/type/whit_spec.rb +1 -0
- data/spec/unit/type_spec.rb +54 -55
- data/spec/unit/util/at_fork_spec.rb +19 -18
- data/spec/unit/util/autoload_spec.rb +56 -55
- data/spec/unit/util/backups_spec.rb +35 -34
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- data/spec/unit/util/checksums_spec.rb +39 -38
- data/spec/unit/util/colors_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +20 -40
- data/spec/unit/util/constant_inflector_spec.rb +1 -0
- data/spec/unit/util/diff_spec.rb +8 -7
- data/spec/unit/util/errors_spec.rb +1 -0
- data/spec/unit/util/execution_spec.rb +163 -187
- data/spec/unit/util/execution_stub_spec.rb +1 -0
- data/spec/unit/util/feature_spec.rb +14 -21
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +31 -26
- data/spec/unit/util/json_lockfile_spec.rb +5 -3
- data/spec/unit/util/ldap/connection_spec.rb +25 -26
- data/spec/unit/util/ldap/generator_spec.rb +1 -0
- data/spec/unit/util/ldap/manager_spec.rb +101 -102
- data/spec/unit/util/lockfile_spec.rb +1 -0
- data/spec/unit/util/log/destinations_spec.rb +33 -30
- data/spec/unit/util/log_spec.rb +34 -48
- data/spec/unit/util/logging_spec.rb +72 -58
- data/spec/unit/util/metric_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +9 -7
- data/spec/unit/util/multi_match_spec.rb +1 -0
- data/spec/unit/util/network_device/config_spec.rb +1 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
- data/spec/unit/util/network_device_spec.rb +9 -7
- data/spec/unit/util/package_spec.rb +1 -0
- data/spec/unit/util/pidlock_spec.rb +15 -60
- data/spec/unit/util/plist_spec.rb +33 -40
- data/spec/unit/util/posix_spec.rb +51 -54
- data/spec/unit/util/rdoc_spec.rb +10 -9
- data/spec/unit/util/reference_spec.rb +1 -0
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +8 -7
- data/spec/unit/util/rubygems_spec.rb +8 -7
- data/spec/unit/util/run_mode_spec.rb +4 -3
- data/spec/unit/util/selinux_spec.rb +72 -79
- data/spec/unit/util/splayer_spec.rb +9 -8
- data/spec/unit/util/ssl_spec.rb +1 -0
- data/spec/unit/util/storage_spec.rb +23 -22
- data/spec/unit/util/suidmanager_spec.rb +54 -45
- data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
- data/spec/unit/util/tag_set_spec.rb +1 -0
- data/spec/unit/util/tagging_spec.rb +1 -0
- data/spec/unit/util/terminal_spec.rb +10 -9
- data/spec/unit/util/user_attr_spec.rb +2 -1
- data/spec/unit/util/warnings_spec.rb +4 -3
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +21 -51
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
- data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
- data/spec/unit/util/windows/adsi_spec.rb +138 -136
- data/spec/unit/util/windows/api_types_spec.rb +1 -0
- data/spec/unit/util/windows/eventlog_spec.rb +12 -9
- data/spec/unit/util/windows/file_spec.rb +1 -0
- data/spec/unit/util/windows/root_certs_spec.rb +1 -0
- data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
- data/spec/unit/util/windows/service_spec.rb +103 -100
- data/spec/unit/util/windows/sid_spec.rb +13 -11
- data/spec/unit/util/windows/string_spec.rb +1 -0
- data/spec/unit/util_spec.rb +57 -55
- data/spec/unit/version_spec.rb +6 -6
- metadata +20 -32
- data/CODEOWNERS +0 -30
- data/ext/autotest/Rakefile +0 -8
- data/ext/autotest/config +0 -43
- data/ext/autotest/readme.rst +0 -16
- data/lib/puppet/confine/boolean.rb +0 -45
- data/lib/puppet/provider/package_targetable.rb +0 -68
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
- data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
- data/spec/integration/network/http_pool_spec.rb +0 -120
- data/spec/integration/provider/file/windows_spec.rb +0 -162
- data/spec/lib/puppet_spec/https.rb +0 -166
- data/spec/unit/settings/server_list_setting_spec.rb +0 -21
- data/spec/watchr.rb +0 -137
data/lib/puppet/forge.rb
CHANGED
@@ -17,9 +17,6 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
17
17
|
|
18
18
|
USER_AGENT = "PMT/1.1.1 (v3; Net::HTTP)".freeze
|
19
19
|
|
20
|
-
# From https://forgeapi.puppet.com/#!/release/getReleases
|
21
|
-
MODULE_RELEASE_EXCLUSIONS=%w[readme changelog license uri module tags supported file_size downloads created_at updated_at deleted_at].join(',').freeze
|
22
|
-
|
23
20
|
attr_reader :host, :repository
|
24
21
|
|
25
22
|
def initialize(host = Puppet[:module_repository])
|
@@ -92,7 +89,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
92
89
|
# @see SemanticPuppet::Dependency::Source#fetch
|
93
90
|
def fetch(input)
|
94
91
|
name = input.tr('/', '-')
|
95
|
-
uri = "/v3/releases?module=#{name}&sort_by=version
|
92
|
+
uri = "/v3/releases?module=#{name}&sort_by=version"
|
96
93
|
if Puppet[:module_groups]
|
97
94
|
uri += "&module_groups=#{Puppet[:module_groups].gsub('+', ' ')}"
|
98
95
|
end
|
data/lib/puppet/functions/abs.rb
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
# Integer($strval, 10, true) # Converts to absolute Integer using base 10 (decimal)
|
29
29
|
# Integer($strval, 16, true) # Converts to absolute Integer using base 16 (hex)
|
30
30
|
# Float($strval, true) # Converts to absolute Float
|
31
|
-
# ```
|
31
|
+
# ```
|
32
32
|
#
|
33
33
|
Puppet::Functions.create_function(:abs) do
|
34
34
|
dispatch :on_numeric do
|
@@ -69,8 +69,7 @@ Puppet::Functions.create_function(:call, Puppet::Functions::InternalFunction) do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def call_impl_block(scope, function_name, *args, &block)
|
72
|
-
|
73
|
-
Puppet::Pops::Parser::EvaluatingParser.new.evaluator.external_call_function(function_name, args, scope, &block)
|
72
|
+
call_function_with_scope(scope, function_name, *args, &block)
|
74
73
|
end
|
75
74
|
|
76
75
|
def call_deferred(scope, deferred)
|
data/lib/puppet/functions/new.rb
CHANGED
@@ -608,7 +608,7 @@
|
|
608
608
|
# | Format | String
|
609
609
|
# | ------ | ------
|
610
610
|
# | s | Unquoted string, verbatim output of control chars.
|
611
|
-
# | p | Programmatic representation - strings are quoted, interior quotes and control chars are escaped.
|
611
|
+
# | p | Programmatic representation - strings are quoted, interior quotes and control chars are escaped. Selects single or double quotes based on content, or uses double quotes if alternative flag `#` is used.
|
612
612
|
# | C | Each `::` name segment capitalized, quoted if alternative flag `#` is used.
|
613
613
|
# | c | Capitalized string, quoted if alternative flag `#` is used.
|
614
614
|
# | d | Downcased string, quoted if alternative flag `#` is used.
|
@@ -200,37 +200,26 @@ class Puppet::Indirector::Request
|
|
200
200
|
end
|
201
201
|
end
|
202
202
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
Puppet.debug _("Selected server from first entry of the `server_list` setting: %{server}") % {server: primary_server[0]}
|
210
|
-
primary_server[0]
|
211
|
-
else
|
212
|
-
#TRANSLATORS 'server' is the name of a setting and should not be translated
|
213
|
-
Puppet.debug _("Selected server from the `server` setting: %{server}") % {server: Puppet.settings[:server]}
|
214
|
-
Puppet.settings[:server]
|
215
|
-
end
|
203
|
+
# ... Fall back onto the default server.
|
204
|
+
bound_server = Puppet.lookup(:server) do
|
205
|
+
if primary_server = Puppet.settings[:server_list][0]
|
206
|
+
primary_server[0]
|
207
|
+
else
|
208
|
+
Puppet.settings[:server]
|
216
209
|
end
|
217
210
|
end
|
218
211
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
#TRANSLATORS 'server_list' is the name of a setting and should not be translated
|
225
|
-
Puppet.debug _("Selected port from the first entry of the `server_list` setting: %{port}") % {port: primary_server[1]}
|
226
|
-
primary_server[1]
|
227
|
-
else
|
228
|
-
#TRANSLATORS 'masterport' is the name of a setting and should not be translated
|
229
|
-
Puppet.debug _("Selected port from the `masterport` setting: %{port}") % {port: Puppet.settings[:masterport]}
|
230
|
-
Puppet.settings[:masterport]
|
231
|
-
end
|
212
|
+
bound_port = Puppet.lookup(:serverport) do
|
213
|
+
if primary_server = Puppet.settings[:server_list][0]
|
214
|
+
primary_server[1]
|
215
|
+
else
|
216
|
+
Puppet.settings[:masterport]
|
232
217
|
end
|
233
218
|
end
|
219
|
+
self.server = default_server || bound_server
|
220
|
+
self.port = default_port || bound_port
|
221
|
+
|
222
|
+
Puppet.debug "No more servers left, falling back to #{self.server}:#{self.port}" if Puppet.settings[:use_srv_records]
|
234
223
|
|
235
224
|
return yield(self)
|
236
225
|
end
|
@@ -130,26 +130,20 @@ module Puppet::Network::HTTP
|
|
130
130
|
# future we may want to refactor these so that they are funneled through
|
131
131
|
# that method and do inherit the error handling.
|
132
132
|
def request_get(*args, &block)
|
133
|
-
with_connection(@site) do |
|
134
|
-
|
135
|
-
Puppet.debug("HTTP GET #{@site}#{args.first.split('?').first} returned #{resp.code} #{resp.message}")
|
136
|
-
resp
|
133
|
+
with_connection(@site) do |connection|
|
134
|
+
connection.request_get(*args, &block)
|
137
135
|
end
|
138
136
|
end
|
139
137
|
|
140
138
|
def request_head(*args, &block)
|
141
|
-
with_connection(@site) do |
|
142
|
-
|
143
|
-
Puppet.debug("HTTP HEAD #{@site}#{args.first.split('?').first} returned #{resp.code} #{resp.message}")
|
144
|
-
resp
|
139
|
+
with_connection(@site) do |connection|
|
140
|
+
connection.request_head(*args, &block)
|
145
141
|
end
|
146
142
|
end
|
147
143
|
|
148
144
|
def request_post(*args, &block)
|
149
|
-
with_connection(@site) do |
|
150
|
-
|
151
|
-
Puppet.debug("HTTP POST #{@site}#{args.first.split('?').first} returned #{resp.code} #{resp.message}")
|
152
|
-
resp
|
145
|
+
with_connection(@site) do |connection|
|
146
|
+
connection.request_post(*args, &block)
|
153
147
|
end
|
154
148
|
end
|
155
149
|
# end of Net::HTTP#request_* proxies
|
@@ -303,25 +297,13 @@ module Puppet::Network::HTTP
|
|
303
297
|
|
304
298
|
def execute_request(connection, request)
|
305
299
|
start = Time.now
|
306
|
-
|
307
|
-
|
308
|
-
resp
|
309
|
-
rescue => exception
|
300
|
+
connection.request(request)
|
301
|
+
rescue EOFError => e
|
310
302
|
elapsed = (Time.now - start).to_f.round(3)
|
311
|
-
uri =
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
when EOFError
|
316
|
-
eclass.new(_('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
317
|
-
when Timeout::Error
|
318
|
-
eclass.new(_('request %{uri} timed out after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
319
|
-
else
|
320
|
-
eclass.new(_('request %{uri} failed: %{msg}') % {uri: uri, msg: exception.message})
|
321
|
-
end
|
322
|
-
|
323
|
-
err.set_backtrace(exception.backtrace) unless exception.backtrace.empty?
|
324
|
-
raise err
|
303
|
+
uri = @site.addr + request.path.split('?')[0]
|
304
|
+
eof = EOFError.new(_('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
|
305
|
+
eof.set_backtrace(e.backtrace) unless e.backtrace.empty?
|
306
|
+
raise eof
|
325
307
|
end
|
326
308
|
|
327
309
|
def with_connection(site, &block)
|
@@ -331,8 +313,6 @@ module Puppet::Network::HTTP
|
|
331
313
|
end
|
332
314
|
response
|
333
315
|
rescue OpenSSL::SSL::SSLError => error
|
334
|
-
raise @verify.last_error if @verify.last_error
|
335
|
-
|
336
316
|
Puppet::Util::SSL.handle_connection_error(error, @verify, site.host)
|
337
317
|
end
|
338
318
|
end
|
@@ -41,11 +41,6 @@ class Puppet::Network::HTTP::Factory
|
|
41
41
|
http.open_timeout = Puppet[:http_connect_timeout]
|
42
42
|
http.keep_alive_timeout = KEEP_ALIVE_TIMEOUT if http.respond_to?(:keep_alive_timeout=)
|
43
43
|
|
44
|
-
if http.respond_to?(:max_retries)
|
45
|
-
# 0 means make one request and never retry
|
46
|
-
http.max_retries = 0
|
47
|
-
end
|
48
|
-
|
49
44
|
if Puppet[:sourceaddress]
|
50
45
|
Puppet.debug("Using source IP #{Puppet[:sourceaddress]}")
|
51
46
|
http.local_host = Puppet[:sourceaddress]
|
@@ -0,0 +1,96 @@
|
|
1
|
+
module Puppet
|
2
|
+
module Pal
|
3
|
+
# A CatalogCompiler is a compiler that builds a catalog of resources and dependencies as a side effect of
|
4
|
+
# evaluating puppet language code.
|
5
|
+
# When the compilation of the given input manifest(s)/code string/file is finished the catalog is complete
|
6
|
+
# for encoding and use. It is also possible to evaluate more strings within the same compilation context to
|
7
|
+
# add or remove things from the catalog.
|
8
|
+
#
|
9
|
+
# @api public
|
10
|
+
class CatalogCompiler < Compiler
|
11
|
+
|
12
|
+
# @api private
|
13
|
+
def catalog
|
14
|
+
internal_compiler.catalog
|
15
|
+
end
|
16
|
+
private :catalog
|
17
|
+
|
18
|
+
# Returns true if this is a compiler that compiles a catalog.
|
19
|
+
# This implementation returns `true`
|
20
|
+
# @return [Boolean] true
|
21
|
+
# @api public
|
22
|
+
def has_catalog?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
# Calls a block of code and yields a configured `JsonCatalogEncoder` to the block.
|
27
|
+
# @example Get resulting catalog as pretty printed Json
|
28
|
+
# Puppet::Pal.in_environment(...) do |pal|
|
29
|
+
# pal.with_catalog_compiler(...) do |compiler|
|
30
|
+
# compiler.with_json_encoding {| encoder | encoder.encode
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# @api public
|
35
|
+
#
|
36
|
+
def with_json_encoding(pretty: true, exclude_virtual: true)
|
37
|
+
yield JsonCatalogEncoder.new(catalog, pretty: pretty, exclude_virtual: exclude_virtual)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Evaluates an AST obtained from `parse_string` or `parse_file` in topscope.
|
41
|
+
# If the ast is a `Puppet::Pops::Model::Program` (what is returned from the `parse` methods, any definitions
|
42
|
+
# in the program (that is, any function, plan, etc. that is defined will be made available for use).
|
43
|
+
#
|
44
|
+
# @param ast [Puppet::Pops::Model::PopsObject] typically the returned `Program` from the parse methods, but can be any `Expression`
|
45
|
+
# @returns [Object] whatever the ast evaluates to
|
46
|
+
#
|
47
|
+
def evaluate(ast)
|
48
|
+
if ast.is_a?(Puppet::Pops::Model::Program)
|
49
|
+
bridged = Puppet::Parser::AST::PopsBridge::Program.new(ast)
|
50
|
+
# define all catalog types
|
51
|
+
internal_compiler.environment.known_resource_types.import_ast(bridged, "")
|
52
|
+
bridged.evaluate(internal_compiler.topscope)
|
53
|
+
else
|
54
|
+
internal_evaluator.evaluate(topscope, ast)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
# Compiles the result of additional evaluation taking place in a PAL catalog compilation.
|
60
|
+
# This will evaluate all lazy constructs until all have been evaluated, and will the validate
|
61
|
+
# the result.
|
62
|
+
#
|
63
|
+
# This should be called if evaluating string or files of puppet logic after the initial
|
64
|
+
# compilation taking place by giving PAL a manifest or code-string.
|
65
|
+
# This method should be called when a series of evaluation should have reached a
|
66
|
+
# valid state (there should be no dangling relationships (to resources that does not
|
67
|
+
# exist).
|
68
|
+
#
|
69
|
+
# As an alternative the methods `evaluate_additions` can be called without any
|
70
|
+
# requirements on consistency and then calling `validate` at the end.
|
71
|
+
#
|
72
|
+
# Can be called multiple times.
|
73
|
+
#
|
74
|
+
# @return [Void]
|
75
|
+
def compile_additions
|
76
|
+
internal_compiler.compile_additions
|
77
|
+
end
|
78
|
+
|
79
|
+
# Validates the state of the catalog (without performing evaluation of any elements
|
80
|
+
# requiring lazy evaluation. Can be called multiple times.
|
81
|
+
#
|
82
|
+
def validate
|
83
|
+
internal_compiler.validate
|
84
|
+
end
|
85
|
+
|
86
|
+
# Evaluates all lazy constructs that were produced as a side effect of evaluating puppet logic.
|
87
|
+
# Can be called multiple times.
|
88
|
+
#
|
89
|
+
def evaluate_additions
|
90
|
+
internal_compiler.evaluate_additions
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,221 @@
|
|
1
|
+
module Puppet
|
2
|
+
module Pal
|
3
|
+
|
4
|
+
# A configured compiler as obtained in the callback from `Puppet::Pal.with_script_compiler`.
|
5
|
+
# (Later, there may also be a catalog compiler available.)
|
6
|
+
#
|
7
|
+
class Compiler
|
8
|
+
attr_reader :internal_compiler
|
9
|
+
protected :internal_compiler
|
10
|
+
|
11
|
+
attr_reader :internal_evaluator
|
12
|
+
protected :internal_evaluator
|
13
|
+
|
14
|
+
def initialize(internal_compiler)
|
15
|
+
@internal_compiler = internal_compiler
|
16
|
+
@internal_evaluator = Puppet::Pops::Parser::EvaluatingParser.new
|
17
|
+
end
|
18
|
+
|
19
|
+
# Calls a function given by name with arguments specified in an `Array`, and optionally accepts a code block.
|
20
|
+
# @param function_name [String] the name of the function to call
|
21
|
+
# @param args [Object] the arguments to the function
|
22
|
+
# @param block [Proc] an optional callable block that is given to the called function
|
23
|
+
# @return [Object] what the called function returns
|
24
|
+
#
|
25
|
+
def call_function(function_name, *args, &block)
|
26
|
+
# TRANSLATORS: do not translate variable name strings in these assertions
|
27
|
+
Pal::assert_non_empty_string(function_name, 'function_name', false)
|
28
|
+
Pal::assert_type(Pal::T_ANY_ARRAY, args, 'args', false)
|
29
|
+
internal_evaluator.evaluator.external_call_function(function_name, args, topscope, &block)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns a Puppet::Pal::FunctionSignature object or nil if function is not found
|
33
|
+
# The returned FunctionSignature has information about all overloaded signatures of the function
|
34
|
+
#
|
35
|
+
# @example using function_signature
|
36
|
+
# # returns true if 'myfunc' is callable with three integer arguments 1, 2, 3
|
37
|
+
# compiler.function_signature('myfunc').callable_with?([1,2,3])
|
38
|
+
#
|
39
|
+
# @param function_name [String] the name of the function to get a signature for
|
40
|
+
# @return [Puppet::Pal::FunctionSignature] a function signature, or nil if function not found
|
41
|
+
#
|
42
|
+
def function_signature(function_name)
|
43
|
+
loader = internal_compiler.loaders.private_environment_loader
|
44
|
+
if func = loader.load(:function, function_name)
|
45
|
+
return FunctionSignature.new(func.class)
|
46
|
+
end
|
47
|
+
# Could not find function
|
48
|
+
nil
|
49
|
+
end
|
50
|
+
|
51
|
+
# Returns an array of TypedName objects for all functions, optionally filtered by a regular expression.
|
52
|
+
# The returned array has more information than just the leaf name - the typical thing is to just get
|
53
|
+
# the name as showing the following example.
|
54
|
+
#
|
55
|
+
# Errors that occur during function discovery will either be logged as warnings or collected by the optional
|
56
|
+
# `error_collector` array. When provided, it will receive {Puppet::DataTypes::Error} instances describing
|
57
|
+
# each error in detail and no warnings will be logged.
|
58
|
+
#
|
59
|
+
# @example getting the names of all functions
|
60
|
+
# compiler.list_functions.map {|tn| tn.name }
|
61
|
+
#
|
62
|
+
# @param filter_regex [Regexp] an optional regexp that filters based on name (matching names are included in the result)
|
63
|
+
# @param error_collector [Array<Puppet::DataTypes::Error>] an optional array that will receive errors during load
|
64
|
+
# @return [Array<Puppet::Pops::Loader::TypedName>] an array of typed names
|
65
|
+
#
|
66
|
+
def list_functions(filter_regex = nil, error_collector = nil)
|
67
|
+
list_loadable_kind(:function, filter_regex, error_collector)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Evaluates a string of puppet language code in top scope.
|
71
|
+
# A "source_file" reference to a source can be given - if not an actual file name, by convention the name should
|
72
|
+
# be bracketed with < > to indicate it is something symbolic; for example `<commandline>` if the string was given on the
|
73
|
+
# command line.
|
74
|
+
#
|
75
|
+
# If the given `puppet_code` is `nil` or an empty string, `nil` is returned, otherwise the result of evaluating the
|
76
|
+
# puppet language string. The given string must form a complete and valid expression/statement as an error is raised
|
77
|
+
# otherwise. That is, it is not possible to divide a compound expression by line and evaluate each line individually.
|
78
|
+
#
|
79
|
+
# @param puppet_code [String, nil] the puppet language code to evaluate, must be a complete expression/statement
|
80
|
+
# @param source_file [String, nil] an optional reference to a source (a file or symbolic name/location)
|
81
|
+
# @return [Object] what the `puppet_code` evaluates to
|
82
|
+
#
|
83
|
+
def evaluate_string(puppet_code, source_file = nil)
|
84
|
+
return nil if puppet_code.nil? || puppet_code == ''
|
85
|
+
unless puppet_code.is_a?(String)
|
86
|
+
raise ArgumentError, _("The argument 'puppet_code' must be a String, got %{type}") % { type: puppet_code.class }
|
87
|
+
end
|
88
|
+
evaluate(parse_string(puppet_code, source_file))
|
89
|
+
end
|
90
|
+
|
91
|
+
# Evaluates a puppet language file in top scope.
|
92
|
+
# The file must exist and contain valid puppet language code or an error is raised.
|
93
|
+
#
|
94
|
+
# @param file [Path, String] an absolute path to a file with puppet language code, must exist
|
95
|
+
# @return [Object] what the last evaluated expression in the file evaluated to
|
96
|
+
#
|
97
|
+
def evaluate_file(file)
|
98
|
+
evaluate(parse_file(file))
|
99
|
+
end
|
100
|
+
|
101
|
+
# Evaluates an AST obtained from `parse_string` or `parse_file` in topscope.
|
102
|
+
# If the ast is a `Puppet::Pops::Model::Program` (what is returned from the `parse` methods, any definitions
|
103
|
+
# in the program (that is, any function, plan, etc. that is defined will be made available for use).
|
104
|
+
#
|
105
|
+
# @param ast [Puppet::Pops::Model::PopsObject] typically the returned `Program` from the parse methods, but can be any `Expression`
|
106
|
+
# @returns [Object] whatever the ast evaluates to
|
107
|
+
#
|
108
|
+
def evaluate(ast)
|
109
|
+
if ast.is_a?(Puppet::Pops::Model::Program)
|
110
|
+
loaders = Puppet.lookup(:loaders)
|
111
|
+
loaders.instantiate_definitions(ast, loaders.public_environment_loader)
|
112
|
+
end
|
113
|
+
internal_evaluator.evaluate(topscope, ast)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Produces a literal value if the AST obtained from `parse_string` or `parse_file` does not require any actual evaluation.
|
117
|
+
# This method is useful if obtaining an AST that represents literal values; string, integer, float, boolean, regexp, array, hash;
|
118
|
+
# for example from having read this from the command line or as values in some file.
|
119
|
+
#
|
120
|
+
# @param ast [Puppet::Pops::Model::PopsObject] typically the returned `Program` from the parse methods, but can be any `Expression`
|
121
|
+
# @returns [Object] whatever the literal value the ast evaluates to
|
122
|
+
#
|
123
|
+
def evaluate_literal(ast)
|
124
|
+
catch :not_literal do
|
125
|
+
return Puppet::Pops::Evaluator::LiteralEvaluator.new().literal(ast)
|
126
|
+
end
|
127
|
+
# TRANSLATORS, the 'ast' is the name of a parameter, do not translate
|
128
|
+
raise ArgumentError, _("The given 'ast' does not represent a literal value")
|
129
|
+
end
|
130
|
+
|
131
|
+
# Parses and validates a puppet language string and returns an instance of Puppet::Pops::Model::Program on success.
|
132
|
+
# If the content is not valid an error is raised.
|
133
|
+
#
|
134
|
+
# @param code_string [String] a puppet language string to parse and validate
|
135
|
+
# @param source_file [String] an optional reference to a file or other location in angled brackets
|
136
|
+
# @return [Puppet::Pops::Model::Program] returns a `Program` instance on success
|
137
|
+
#
|
138
|
+
def parse_string(code_string, source_file = nil)
|
139
|
+
unless code_string.is_a?(String)
|
140
|
+
raise ArgumentError, _("The argument 'code_string' must be a String, got %{type}") % { type: code_string.class }
|
141
|
+
end
|
142
|
+
internal_evaluator.parse_string(code_string, source_file)
|
143
|
+
end
|
144
|
+
|
145
|
+
# Parses and validates a puppet language file and returns an instance of Puppet::Pops::Model::Program on success.
|
146
|
+
# If the content is not valid an error is raised.
|
147
|
+
#
|
148
|
+
# @param file [String] a file with puppet language content to parse and validate
|
149
|
+
# @return [Puppet::Pops::Model::Program] returns a `Program` instance on success
|
150
|
+
#
|
151
|
+
def parse_file(file)
|
152
|
+
unless file.is_a?(String)
|
153
|
+
raise ArgumentError, _("The argument 'file' must be a String, got %{type}") % { type: file.class }
|
154
|
+
end
|
155
|
+
internal_evaluator.parse_file(file)
|
156
|
+
end
|
157
|
+
|
158
|
+
# Parses a puppet data type given in String format and returns that type, or raises an error.
|
159
|
+
# A type is needed in calls to `new` to create an instance of the data type, or to perform type checking
|
160
|
+
# of values - typically using `type.instance?(obj)` to check if `obj` is an instance of the type.
|
161
|
+
#
|
162
|
+
# @example Verify if obj is an instance of a data type
|
163
|
+
# # evaluates to true
|
164
|
+
# pal.type('Enum[red, blue]').instance?("blue")
|
165
|
+
#
|
166
|
+
# @example Create an instance of a data type
|
167
|
+
# # using an already create type
|
168
|
+
# t = pal.type('Car')
|
169
|
+
# pal.create(t, 'color' => 'black', 'make' => 't-ford')
|
170
|
+
#
|
171
|
+
# # letting 'new_object' parse the type from a string
|
172
|
+
# pal.create('Car', 'color' => 'black', 'make' => 't-ford')
|
173
|
+
#
|
174
|
+
# @param type_string [String] a puppet language data type
|
175
|
+
# @return [Puppet::Pops::Types::PAnyType] the data type
|
176
|
+
#
|
177
|
+
def type(type_string)
|
178
|
+
Puppet::Pops::Types::TypeParser.singleton.parse(type_string)
|
179
|
+
end
|
180
|
+
|
181
|
+
# Creates a new instance of a given data type.
|
182
|
+
# @param data_type [String, Puppet::Pops::Types::PAnyType] the data type as a data type or in String form.
|
183
|
+
# @param arguments [Object] one or more arguments to the called `new` function
|
184
|
+
# @return [Object] an instance of the given data type,
|
185
|
+
# or raises an error if it was not possible to parse data type or create an instance.
|
186
|
+
#
|
187
|
+
def create(data_type, *arguments)
|
188
|
+
t = data_type.is_a?(String) ? type(data_type) : data_type
|
189
|
+
unless t.is_a?(Puppet::Pops::Types::PAnyType)
|
190
|
+
raise ArgumentError, _("Given data_type value is not a data type, got '%{type}'") % {type: t.class}
|
191
|
+
end
|
192
|
+
call_function('new', t, *arguments)
|
193
|
+
end
|
194
|
+
|
195
|
+
# Returns true if this is a compiler that compiles a catalog.
|
196
|
+
# This implementation returns `false`
|
197
|
+
# @return Boolan false
|
198
|
+
def has_catalog?
|
199
|
+
false
|
200
|
+
end
|
201
|
+
|
202
|
+
protected
|
203
|
+
|
204
|
+
def list_loadable_kind(kind, filter_regex = nil, error_collector = nil)
|
205
|
+
loader = internal_compiler.loaders.private_environment_loader
|
206
|
+
if filter_regex.nil?
|
207
|
+
loader.discover(kind, error_collector)
|
208
|
+
else
|
209
|
+
loader.discover(kind, error_collector) {|f| f.name =~ filter_regex }
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
private
|
214
|
+
|
215
|
+
def topscope
|
216
|
+
internal_compiler.topscope
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
end
|
221
|
+
end
|