puppet 4.4.1-universal-darwin → 4.4.2-universal-darwin
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.
- data/lib/puppet/application/ca.rb +1 -0
- data/lib/puppet/application/lookup.rb +4 -16
- data/lib/puppet/application/resource.rb +0 -4
- data/lib/puppet/data_providers/hiera_interpolate.rb +8 -2
- data/lib/puppet/data_providers/json_data_provider_factory.rb +1 -1
- data/lib/puppet/defaults.rb +32 -16
- data/lib/puppet/file_system/uniquefile.rb +2 -2
- data/lib/puppet/file_system/windows.rb +1 -15
- data/lib/puppet/functions/assert_type.rb +1 -1
- data/lib/puppet/functions/lookup.rb +0 -3
- data/lib/puppet/indirector/catalog/compiler.rb +2 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/network/auth_config_parser.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +0 -2
- data/lib/puppet/network/http/rack/rest.rb +10 -1
- data/lib/puppet/parser/functions/lookup.rb +0 -3
- data/lib/puppet/pops/evaluator/access_operator.rb +25 -1
- data/lib/puppet/pops/evaluator/closure.rb +10 -5
- data/lib/puppet/pops/merge_strategy.rb +0 -10
- data/lib/puppet/pops/types/recursion_guard.rb +10 -0
- data/lib/puppet/pops/types/type_asserter.rb +2 -2
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_formatter.rb +14 -2
- data/lib/puppet/pops/types/type_mismatch_describer.rb +22 -10
- data/lib/puppet/pops/types/types.rb +240 -98
- data/lib/puppet/provider/package/puppet_gem.rb +0 -0
- data/lib/puppet/provider/user/user_role_add.rb +3 -1
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/ssl/oids.rb +24 -2
- data/lib/puppet/util/monkey_patches.rb +10 -5
- data/lib/puppet/util/windows/file.rb +40 -10
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +5 -1
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
- data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
- data/spec/integration/agent/logging_spec.rb +0 -0
- data/spec/integration/application/apply_spec.rb +0 -0
- data/spec/integration/application/doc_spec.rb +0 -0
- data/spec/integration/configurer_spec.rb +0 -0
- data/spec/integration/data_binding_spec.rb +0 -0
- data/spec/integration/defaults_spec.rb +0 -0
- data/spec/integration/faces/ca_spec.rb +0 -0
- data/spec/integration/faces/documentation_spec.rb +0 -0
- data/spec/integration/file_serving/fileset_spec.rb +0 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
- data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
- data/spec/integration/indirector/node/ldap_spec.rb +0 -0
- data/spec/integration/network/formats_spec.rb +0 -0
- data/spec/integration/node/environment_spec.rb +0 -0
- data/spec/integration/node/facts_spec.rb +0 -0
- data/spec/integration/node_spec.rb +0 -0
- data/spec/integration/parser/collection_spec.rb +0 -0
- data/spec/integration/parser/compiler_spec.rb +0 -0
- data/spec/integration/parser/functions/require_spec.rb +0 -0
- data/spec/integration/parser/parameter_defaults_spec.rb +19 -1
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
- data/spec/integration/provider/mount_spec.rb +0 -0
- data/spec/integration/provider/package_spec.rb +0 -0
- data/spec/integration/provider/service/init_spec.rb +0 -0
- data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
- data/spec/integration/reference/providers_spec.rb +0 -0
- data/spec/integration/reports_spec.rb +0 -0
- data/spec/integration/resource/catalog_spec.rb +0 -0
- data/spec/integration/resource/type_collection_spec.rb +0 -0
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -0
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
- data/spec/integration/ssl/host_spec.rb +0 -0
- data/spec/integration/transaction/report_spec.rb +0 -0
- data/spec/integration/transaction_spec.rb +0 -0
- data/spec/integration/type/exec_spec.rb +0 -0
- data/spec/integration/type/file_spec.rb +0 -0
- data/spec/integration/type/package_spec.rb +0 -0
- data/spec/integration/type/tidy_spec.rb +0 -0
- data/spec/integration/type_spec.rb +0 -0
- data/spec/integration/util/autoload_spec.rb +0 -0
- data/spec/integration/util/rdoc/parser_spec.rb +0 -0
- data/spec/integration/util/settings_spec.rb +26 -0
- data/spec/integration/util/windows/registry_spec.rb +0 -0
- data/spec/integration/util/windows/security_spec.rb +0 -0
- data/spec/integration/util/windows/user_spec.rb +0 -0
- data/spec/integration/util_spec.rb +0 -0
- data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
- data/spec/lib/puppet/face/basetest.rb +0 -0
- data/spec/lib/puppet/face/huzzah.rb +0 -0
- data/spec/lib/puppet_spec/files.rb +0 -0
- data/spec/lib/puppet_spec/fixtures.rb +0 -0
- data/spec/lib/puppet_spec/verbose.rb +0 -0
- data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
- data/spec/shared_behaviours/file_server_terminus.rb +0 -0
- data/spec/shared_behaviours/file_serving.rb +0 -0
- data/spec/shared_behaviours/memory_terminus.rb +0 -0
- data/spec/shared_behaviours/path_parameters.rb +0 -0
- data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/unit/agent/locker_spec.rb +0 -0
- data/spec/unit/agent_spec.rb +0 -0
- data/spec/unit/application/agent_spec.rb +0 -0
- data/spec/unit/application/apply_spec.rb +0 -0
- data/spec/unit/application/cert_spec.rb +0 -0
- data/spec/unit/application/certificate_spec.rb +0 -0
- data/spec/unit/application/config_spec.rb +0 -0
- data/spec/unit/application/describe_spec.rb +0 -0
- data/spec/unit/application/device_spec.rb +0 -0
- data/spec/unit/application/doc_spec.rb +0 -0
- data/spec/unit/application/face_base_spec.rb +0 -0
- data/spec/unit/application/facts_spec.rb +0 -0
- data/spec/unit/application/filebucket_spec.rb +0 -0
- data/spec/unit/application/indirection_base_spec.rb +0 -0
- data/spec/unit/application/inspect_spec.rb +0 -0
- data/spec/unit/application/lookup_spec.rb +1 -1
- data/spec/unit/application/master_spec.rb +0 -0
- data/spec/unit/application/resource_spec.rb +0 -0
- data/spec/unit/application_spec.rb +0 -0
- data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
- data/spec/unit/configurer/downloader_spec.rb +0 -0
- data/spec/unit/configurer/fact_handler_spec.rb +0 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
- data/spec/unit/configurer_spec.rb +0 -0
- data/spec/unit/confine/exists_spec.rb +0 -0
- data/spec/unit/confine/false_spec.rb +0 -0
- data/spec/unit/confine/feature_spec.rb +0 -0
- data/spec/unit/confine/true_spec.rb +0 -0
- data/spec/unit/confine/variable_spec.rb +0 -0
- data/spec/unit/confine_collection_spec.rb +0 -0
- data/spec/unit/confine_spec.rb +0 -0
- data/spec/unit/confiner_spec.rb +0 -0
- data/spec/unit/daemon_spec.rb +0 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -1
- data/spec/unit/data_providers/hiera_interpolation_spec.rb +6 -0
- data/spec/unit/external/pson_spec.rb +0 -0
- data/spec/unit/face/catalog_spec.rb +0 -0
- data/spec/unit/face/certificate_spec.rb +0 -0
- data/spec/unit/face/config_spec.rb +0 -0
- data/spec/unit/face/facts_spec.rb +0 -0
- data/spec/unit/face/file_spec.rb +0 -0
- data/spec/unit/face/help_spec.rb +0 -0
- data/spec/unit/face/node_spec.rb +0 -0
- data/spec/unit/face/plugin_spec.rb +0 -0
- data/spec/unit/face_spec.rb +0 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -0
- data/spec/unit/file_bucket/file_spec.rb +0 -0
- data/spec/unit/file_serving/base_spec.rb +0 -0
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -0
- data/spec/unit/file_serving/configuration_spec.rb +0 -0
- data/spec/unit/file_serving/content_spec.rb +0 -0
- data/spec/unit/file_serving/fileset_spec.rb +0 -0
- data/spec/unit/file_serving/metadata_spec.rb +0 -0
- data/spec/unit/file_serving/mount/file_spec.rb +0 -0
- data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
- data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
- data/spec/unit/file_serving/mount_spec.rb +0 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +0 -0
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -0
- data/spec/unit/file_system/uniquefile_spec.rb +20 -0
- data/spec/unit/file_system_spec.rb +61 -0
- data/spec/unit/functions/assert_type_spec.rb +8 -0
- data/spec/unit/functions/defined_spec.rb +0 -0
- data/spec/unit/functions/hiera_spec.rb +0 -0
- data/spec/unit/functions/lookup_spec.rb +3 -3
- data/spec/unit/functions/regsubst_spec.rb +0 -0
- data/spec/unit/functions/split_spec.rb +0 -0
- data/spec/unit/functions/versioncmp_spec.rb +0 -0
- data/spec/unit/graph/relationship_graph_spec.rb +0 -0
- data/spec/unit/graph/simple_graph_spec.rb +0 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +7 -0
- data/spec/unit/indirector/catalog/json_spec.rb +0 -0
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
- data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
- data/spec/unit/indirector/code_spec.rb +0 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
- data/spec/unit/indirector/envelope_spec.rb +0 -0
- data/spec/unit/indirector/exec_spec.rb +0 -0
- data/spec/unit/indirector/face_spec.rb +0 -0
- data/spec/unit/indirector/facts/facter_spec.rb +0 -0
- data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -0
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
- data/spec/unit/indirector/file_content/file_spec.rb +0 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_server_spec.rb +0 -0
- data/spec/unit/indirector/indirection_spec.rb +0 -0
- data/spec/unit/indirector/json_spec.rb +0 -0
- data/spec/unit/indirector/key/ca_spec.rb +0 -0
- data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/key/file_spec.rb +0 -0
- data/spec/unit/indirector/ldap_spec.rb +0 -0
- data/spec/unit/indirector/memory_spec.rb +0 -0
- data/spec/unit/indirector/msgpack_spec.rb +11 -1
- data/spec/unit/indirector/node/exec_spec.rb +0 -0
- data/spec/unit/indirector/node/ldap_spec.rb +0 -0
- data/spec/unit/indirector/node/memory_spec.rb +0 -0
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/node/plain_spec.rb +0 -0
- data/spec/unit/indirector/node/rest_spec.rb +0 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/node/yaml_spec.rb +0 -0
- data/spec/unit/indirector/plain_spec.rb +0 -0
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/report/processor_spec.rb +0 -0
- data/spec/unit/indirector/report/rest_spec.rb +0 -0
- data/spec/unit/indirector/report/yaml_spec.rb +0 -0
- data/spec/unit/indirector/request_spec.rb +0 -0
- data/spec/unit/indirector/resource/ral_spec.rb +0 -0
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +0 -0
- data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
- data/spec/unit/indirector/rest_spec.rb +0 -0
- data/spec/unit/indirector/ssl_file_spec.rb +0 -0
- data/spec/unit/indirector/status/rest_spec.rb +0 -0
- data/spec/unit/indirector/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/terminus_spec.rb +0 -0
- data/spec/unit/indirector/yaml_spec.rb +0 -0
- data/spec/unit/indirector_spec.rb +0 -0
- data/spec/unit/interface/action_builder_spec.rb +0 -0
- data/spec/unit/interface/action_manager_spec.rb +0 -0
- data/spec/unit/interface/action_spec.rb +0 -0
- data/spec/unit/interface/documentation_spec.rb +0 -0
- data/spec/unit/interface/face_collection_spec.rb +0 -0
- data/spec/unit/interface/option_builder_spec.rb +0 -0
- data/spec/unit/interface/option_spec.rb +0 -0
- data/spec/unit/interface_spec.rb +0 -0
- data/spec/unit/man_spec.rb +0 -0
- data/spec/unit/module_spec.rb +30 -6
- data/spec/unit/module_tool/applications/builder_spec.rb +23 -3
- data/spec/unit/module_tool_spec.rb +0 -0
- data/spec/unit/network/auth_config_parser_spec.rb +16 -0
- data/spec/unit/network/authconfig_spec.rb +0 -0
- data/spec/unit/network/authstore_spec.rb +0 -0
- data/spec/unit/network/format_handler_spec.rb +0 -0
- data/spec/unit/network/format_spec.rb +0 -0
- data/spec/unit/network/formats_spec.rb +0 -0
- data/spec/unit/network/http/api/indirected_routes_spec.rb +21 -13
- data/spec/unit/network/http/api/master/v3_spec.rb +0 -0
- data/spec/unit/network/http/compression_spec.rb +0 -0
- data/spec/unit/network/http/connection_spec.rb +0 -0
- data/spec/unit/network/http/factory_spec.rb +0 -0
- data/spec/unit/network/http/handler_spec.rb +0 -0
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
- data/spec/unit/network/http/pool_spec.rb +0 -0
- data/spec/unit/network/http/rack/rest_spec.rb +7 -0
- data/spec/unit/network/http/rack_spec.rb +0 -0
- data/spec/unit/network/http/session_spec.rb +0 -0
- data/spec/unit/network/http/site_spec.rb +0 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
- data/spec/unit/network/http/webrick_spec.rb +0 -0
- data/spec/unit/network/http_pool_spec.rb +0 -0
- data/spec/unit/network/http_spec.rb +0 -0
- data/spec/unit/network/resolver_spec.rb +0 -0
- data/spec/unit/network/rights_spec.rb +0 -0
- data/spec/unit/network/server_spec.rb +0 -0
- data/spec/unit/node/environment_spec.rb +0 -0
- data/spec/unit/node/facts_spec.rb +0 -0
- data/spec/unit/node_spec.rb +0 -0
- data/spec/unit/other/selinux_spec.rb +0 -0
- data/spec/unit/parameter/path_spec.rb +0 -0
- data/spec/unit/parameter/value_collection_spec.rb +0 -0
- data/spec/unit/parameter/value_spec.rb +0 -0
- data/spec/unit/parameter_spec.rb +0 -0
- data/spec/unit/parser/ast/leaf_spec.rb +0 -0
- data/spec/unit/parser/compiler_spec.rb +0 -0
- data/spec/unit/parser/files_spec.rb +0 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +0 -0
- data/spec/unit/parser/functions/defined_spec.rb +0 -0
- data/spec/unit/parser/functions/digest_spec.rb +0 -0
- data/spec/unit/parser/functions/fail_spec.rb +0 -0
- data/spec/unit/parser/functions/file_spec.rb +0 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -0
- data/spec/unit/parser/functions/generate_spec.rb +0 -0
- data/spec/unit/parser/functions/hiera_spec.rb +0 -0
- data/spec/unit/parser/functions/include_spec.rb +0 -0
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
- data/spec/unit/parser/functions/realize_spec.rb +0 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -0
- data/spec/unit/parser/functions/require_spec.rb +0 -0
- data/spec/unit/parser/functions/scanf_spec.rb +0 -0
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
- data/spec/unit/parser/functions/split_spec.rb +0 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
- data/spec/unit/parser/functions/tag_spec.rb +0 -0
- data/spec/unit/parser/functions/template_spec.rb +0 -0
- data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
- data/spec/unit/parser/functions_spec.rb +0 -0
- data/spec/unit/parser/relationship_spec.rb +0 -0
- data/spec/unit/parser/resource/param_spec.rb +0 -0
- data/spec/unit/parser/resource_spec.rb +0 -0
- data/spec/unit/parser/scope_spec.rb +0 -0
- data/spec/unit/parser/templatewrapper_spec.rb +0 -0
- data/spec/unit/parser/type_loader_spec.rb +0 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +8 -8
- data/spec/unit/pops/types/type_asserter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +32 -6
- data/spec/unit/pops/types/type_factory_spec.rb +26 -0
- data/spec/unit/pops/types/type_formatter_spec.rb +7 -2
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +25 -0
- data/spec/unit/pops/types/type_parser_spec.rb +1 -1
- data/spec/unit/pops/types/types_spec.rb +215 -0
- data/spec/unit/property/ensure_spec.rb +0 -0
- data/spec/unit/property/keyvalue_spec.rb +0 -0
- data/spec/unit/property/list_spec.rb +0 -0
- data/spec/unit/property/ordered_list_spec.rb +0 -0
- data/spec/unit/property_spec.rb +0 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +0 -0
- data/spec/unit/provider/cisco_spec.rb +0 -0
- data/spec/unit/provider/command_spec.rb +0 -0
- data/spec/unit/provider/cron/crontab_spec.rb +0 -0
- data/spec/unit/provider/exec/posix_spec.rb +0 -0
- data/spec/unit/provider/exec/shell_spec.rb +0 -0
- data/spec/unit/provider/exec/windows_spec.rb +0 -0
- data/spec/unit/provider/exec_spec.rb +0 -0
- data/spec/unit/provider/file/posix_spec.rb +0 -0
- data/spec/unit/provider/file/windows_spec.rb +0 -0
- data/spec/unit/provider/group/groupadd_spec.rb +0 -0
- data/spec/unit/provider/group/ldap_spec.rb +0 -0
- data/spec/unit/provider/group/pw_spec.rb +0 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +0 -0
- data/spec/unit/provider/host/parsed_spec.rb +0 -0
- data/spec/unit/provider/interface/cisco_spec.rb +0 -0
- data/spec/unit/provider/ldap_spec.rb +0 -0
- data/spec/unit/provider/macauthorization_spec.rb +0 -0
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
- data/spec/unit/provider/mount/parsed_spec.rb +0 -0
- data/spec/unit/provider/mount_spec.rb +0 -0
- data/spec/unit/provider/naginator_spec.rb +0 -0
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -0
- data/spec/unit/provider/nameservice_spec.rb +0 -0
- data/spec/unit/provider/network_device_spec.rb +0 -0
- data/spec/unit/provider/package/aix_spec.rb +0 -0
- data/spec/unit/provider/package/appdmg_spec.rb +0 -0
- data/spec/unit/provider/package/apt_spec.rb +0 -0
- data/spec/unit/provider/package/aptitude_spec.rb +0 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +0 -0
- data/spec/unit/provider/package/dpkg_spec.rb +0 -0
- data/spec/unit/provider/package/freebsd_spec.rb +0 -0
- data/spec/unit/provider/package/gem_spec.rb +0 -0
- data/spec/unit/provider/package/hpux_spec.rb +0 -0
- data/spec/unit/provider/package/macports_spec.rb +0 -0
- data/spec/unit/provider/package/nim_spec.rb +0 -0
- data/spec/unit/provider/package/openbsd_spec.rb +0 -0
- data/spec/unit/provider/package/opkg_spec.rb +0 -0
- data/spec/unit/provider/package/pacman_spec.rb +0 -0
- data/spec/unit/provider/package/pip3_spec.rb +0 -0
- data/spec/unit/provider/package/pip_spec.rb +0 -0
- data/spec/unit/provider/package/pkg_spec.rb +0 -0
- data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -0
- data/spec/unit/provider/package/sun_spec.rb +0 -0
- data/spec/unit/provider/package/windows/package_spec.rb +0 -0
- data/spec/unit/provider/package/windows_spec.rb +0 -0
- data/spec/unit/provider/package/yum_spec.rb +0 -0
- data/spec/unit/provider/package/zypper_spec.rb +0 -0
- data/spec/unit/provider/parsedfile_spec.rb +0 -0
- data/spec/unit/provider/selboolean_spec.rb +0 -0
- data/spec/unit/provider/selmodule_spec.rb +0 -0
- data/spec/unit/provider/service/base_spec.rb +0 -0
- data/spec/unit/provider/service/bsd_spec.rb +0 -0
- data/spec/unit/provider/service/daemontools_spec.rb +0 -0
- data/spec/unit/provider/service/debian_spec.rb +0 -0
- data/spec/unit/provider/service/freebsd_spec.rb +0 -0
- data/spec/unit/provider/service/gentoo_spec.rb +0 -0
- data/spec/unit/provider/service/init_spec.rb +0 -0
- data/spec/unit/provider/service/launchd_spec.rb +0 -0
- data/spec/unit/provider/service/openbsd_spec.rb +0 -0
- data/spec/unit/provider/service/openrc_spec.rb +0 -0
- data/spec/unit/provider/service/openwrt_spec.rb +0 -0
- data/spec/unit/provider/service/rcng_spec.rb +0 -0
- data/spec/unit/provider/service/redhat_spec.rb +0 -0
- data/spec/unit/provider/service/runit_spec.rb +0 -0
- data/spec/unit/provider/service/smf_spec.rb +0 -0
- data/spec/unit/provider/service/src_spec.rb +0 -0
- data/spec/unit/provider/service/systemd_spec.rb +0 -0
- data/spec/unit/provider/service/upstart_spec.rb +0 -0
- data/spec/unit/provider/service/windows_spec.rb +0 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -0
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +0 -0
- data/spec/unit/provider/user/hpux_spec.rb +0 -0
- data/spec/unit/provider/user/ldap_spec.rb +0 -0
- data/spec/unit/provider/user/openbsd_spec.rb +0 -0
- data/spec/unit/provider/user/pw_spec.rb +0 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
- data/spec/unit/provider/user/useradd_spec.rb +0 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +0 -0
- data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
- data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
- data/spec/unit/provider/zone/solaris_spec.rb +0 -0
- data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
- data/spec/unit/provider_spec.rb +0 -0
- data/spec/unit/puppet_spec.rb +0 -0
- data/spec/unit/relationship_spec.rb +0 -0
- data/spec/unit/reports/http_spec.rb +0 -0
- data/spec/unit/reports/store_spec.rb +0 -0
- data/spec/unit/reports_spec.rb +0 -0
- data/spec/unit/resource/catalog_spec.rb +0 -0
- data/spec/unit/resource/status_spec.rb +0 -0
- data/spec/unit/resource/type_collection_helper_spec.rb +0 -0
- data/spec/unit/resource/type_collection_spec.rb +0 -0
- data/spec/unit/resource/type_spec.rb +0 -0
- data/spec/unit/resource_spec.rb +0 -0
- data/spec/unit/settings/directory_setting_spec.rb +0 -0
- data/spec/unit/settings/duration_setting_spec.rb +0 -0
- data/spec/unit/settings/file_setting_spec.rb +0 -0
- data/spec/unit/settings/path_setting_spec.rb +0 -0
- data/spec/unit/settings/priority_setting_spec.rb +0 -0
- data/spec/unit/settings_spec.rb +1 -1
- data/spec/unit/ssl/base_spec.rb +0 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +0 -0
- data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
- data/spec/unit/ssl/certificate_request_spec.rb +0 -0
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -0
- data/spec/unit/ssl/certificate_spec.rb +0 -0
- data/spec/unit/ssl/configuration_spec.rb +0 -0
- data/spec/unit/ssl/host_spec.rb +0 -0
- data/spec/unit/ssl/inventory_spec.rb +0 -0
- data/spec/unit/ssl/key_spec.rb +0 -0
- data/spec/unit/status_spec.rb +0 -0
- data/spec/unit/transaction/event_manager_spec.rb +0 -0
- data/spec/unit/transaction/event_spec.rb +0 -0
- data/spec/unit/transaction/report_spec.rb +0 -0
- data/spec/unit/transaction/resource_harness_spec.rb +0 -0
- data/spec/unit/transaction_spec.rb +0 -0
- data/spec/unit/type/augeas_spec.rb +0 -0
- data/spec/unit/type/component_spec.rb +0 -0
- data/spec/unit/type/computer_spec.rb +0 -0
- data/spec/unit/type/cron_spec.rb +0 -0
- data/spec/unit/type/exec_spec.rb +0 -0
- data/spec/unit/type/file/checksum_spec.rb +0 -0
- data/spec/unit/type/file/checksum_value_spec.rb +0 -0
- data/spec/unit/type/file/content_spec.rb +0 -0
- data/spec/unit/type/file/ctime_spec.rb +0 -0
- data/spec/unit/type/file/ensure_spec.rb +0 -0
- data/spec/unit/type/file/group_spec.rb +0 -0
- data/spec/unit/type/file/mode_spec.rb +0 -0
- data/spec/unit/type/file/mtime_spec.rb +0 -0
- data/spec/unit/type/file/owner_spec.rb +0 -0
- data/spec/unit/type/file/selinux_spec.rb +0 -0
- data/spec/unit/type/file/source_spec.rb +0 -0
- data/spec/unit/type/file/type_spec.rb +0 -0
- data/spec/unit/type/file_spec.rb +0 -0
- data/spec/unit/type/filebucket_spec.rb +0 -0
- data/spec/unit/type/group_spec.rb +0 -0
- data/spec/unit/type/host_spec.rb +0 -0
- data/spec/unit/type/interface_spec.rb +0 -0
- data/spec/unit/type/k5login_spec.rb +0 -0
- data/spec/unit/type/macauthorization_spec.rb +0 -0
- data/spec/unit/type/mailalias_spec.rb +0 -0
- data/spec/unit/type/maillist_spec.rb +0 -0
- data/spec/unit/type/mcx_spec.rb +0 -0
- data/spec/unit/type/mount_spec.rb +0 -0
- data/spec/unit/type/nagios_spec.rb +0 -0
- data/spec/unit/type/noop_metaparam_spec.rb +0 -0
- data/spec/unit/type/package/package_settings_spec.rb +0 -0
- data/spec/unit/type/package_spec.rb +0 -0
- data/spec/unit/type/resources_spec.rb +0 -0
- data/spec/unit/type/schedule_spec.rb +0 -0
- data/spec/unit/type/selboolean_spec.rb +0 -0
- data/spec/unit/type/selmodule_spec.rb +0 -0
- data/spec/unit/type/service_spec.rb +0 -0
- data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
- data/spec/unit/type/sshkey_spec.rb +0 -0
- data/spec/unit/type/stage_spec.rb +0 -0
- data/spec/unit/type/tidy_spec.rb +0 -0
- data/spec/unit/type/user_spec.rb +0 -0
- data/spec/unit/type/vlan_spec.rb +0 -0
- data/spec/unit/type/whit_spec.rb +0 -0
- data/spec/unit/type/yumrepo_spec.rb +0 -0
- data/spec/unit/type/zfs_spec.rb +0 -0
- data/spec/unit/type/zone_spec.rb +0 -0
- data/spec/unit/type/zpool_spec.rb +0 -0
- data/spec/unit/type_spec.rb +0 -0
- data/spec/unit/util/autoload_spec.rb +0 -0
- data/spec/unit/util/backups_spec.rb +0 -0
- data/spec/unit/util/checksums_spec.rb +0 -0
- data/spec/unit/util/colors_spec.rb +0 -0
- data/spec/unit/util/command_line_spec.rb +0 -0
- data/spec/unit/util/constant_inflector_spec.rb +0 -0
- data/spec/unit/util/diff_spec.rb +0 -0
- data/spec/unit/util/errors_spec.rb +0 -0
- data/spec/unit/util/execution_spec.rb +0 -0
- data/spec/unit/util/execution_stub_spec.rb +0 -0
- data/spec/unit/util/feature_spec.rb +0 -0
- data/spec/unit/util/filetype_spec.rb +0 -0
- data/spec/unit/util/ldap/connection_spec.rb +0 -0
- data/spec/unit/util/ldap/generator_spec.rb +0 -0
- data/spec/unit/util/ldap/manager_spec.rb +0 -0
- data/spec/unit/util/log/destinations_spec.rb +0 -0
- data/spec/unit/util/log_spec.rb +0 -0
- data/spec/unit/util/logging_spec.rb +0 -0
- data/spec/unit/util/metric_spec.rb +0 -0
- data/spec/unit/util/monkey_patches_spec.rb +19 -3
- data/spec/unit/util/nagios_maker_spec.rb +0 -0
- data/spec/unit/util/network_device/cisco/device_spec.rb +0 -0
- data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
- data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
- data/spec/unit/util/network_device/config_spec.rb +0 -0
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -0
- data/spec/unit/util/package_spec.rb +0 -0
- data/spec/unit/util/posix_spec.rb +0 -0
- data/spec/unit/util/rdoc_spec.rb +0 -0
- data/spec/unit/util/resource_template_spec.rb +0 -0
- data/spec/unit/util/retry_action_spec.rb +0 -0
- data/spec/unit/util/run_mode_spec.rb +0 -0
- data/spec/unit/util/selinux_spec.rb +0 -0
- data/spec/unit/util/storage_spec.rb +0 -0
- data/spec/unit/util/suidmanager_spec.rb +0 -0
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
- data/spec/unit/util/tagging_spec.rb +0 -0
- data/spec/unit/util/user_attr_spec.rb +0 -0
- data/spec/unit/util/warnings_spec.rb +0 -0
- data/spec/unit/util/windows/adsi_spec.rb +0 -0
- data/spec/unit/util/windows/file_spec.rb +34 -0
- data/spec/unit/util/windows/root_certs_spec.rb +0 -0
- data/spec/unit/util/windows/sid_spec.rb +0 -0
- data/spec/unit/util_spec.rb +0 -0
- data/spec/watchr.rb +0 -0
- metadata +3374 -3358
- checksums.yaml +0 -7
@@ -6,7 +6,7 @@ require 'puppet/parser/compiler'
|
|
6
6
|
class Puppet::Application::Lookup < Puppet::Application
|
7
7
|
|
8
8
|
RUN_HELP = "Run 'puppet lookup --help' for more details".freeze
|
9
|
-
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays,
|
9
|
+
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'.freeze
|
10
10
|
|
11
11
|
run_mode :master
|
12
12
|
|
@@ -35,10 +35,6 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
35
35
|
|
36
36
|
option('--sort-merge-arrays')
|
37
37
|
|
38
|
-
option('--unpack-arrays DELIMITER') do |arg|
|
39
|
-
options[:unpack_arrays] = arg
|
40
|
-
end
|
41
|
-
|
42
38
|
option('--merge-hash-arrays')
|
43
39
|
|
44
40
|
option('--explain')
|
@@ -124,7 +120,7 @@ USAGE
|
|
124
120
|
-----
|
125
121
|
puppet lookup [--help] [--type <TYPESTRING>] [--merge unique|hash|deep]
|
126
122
|
[--knock-out-prefix <PREFIX-STRING>] [--sort-merged-arrays]
|
127
|
-
[--
|
123
|
+
[--merge-hash-arrays] [--explain]
|
128
124
|
[--default <VALUE>] [--node <NODE-NAME>] [--facts <FILE>]
|
129
125
|
[--compile]
|
130
126
|
[--render-as s|json|yaml|binary|msgpack] <keys>
|
@@ -172,10 +168,6 @@ the puppet lookup function linked to above.
|
|
172
168
|
Can be used with the 'deep' merge strategy. When this flag is used all
|
173
169
|
merged arrays will be sorted.
|
174
170
|
|
175
|
-
* --unpack-arrays <STRING-VALUE>
|
176
|
-
Can be used with the 'deep' merge strategy. Specify a string value used
|
177
|
-
as a deliminator to join all array values and then split them again.
|
178
|
-
|
179
171
|
* --merge-hash-arrays
|
180
172
|
Can be used with the 'deep' merge strategy. When this flag is used arrays
|
181
173
|
and hashes will be merged.
|
@@ -225,7 +217,7 @@ EXAMPLE
|
|
225
217
|
If you wanted to get the first value found for 'key_name_one' and 'key_name_two'
|
226
218
|
within the scope of the agent.local node while merging values and knocking out
|
227
219
|
the prefix 'foo' while merging, you would call lookup like this:
|
228
|
-
$ puppet lookup --node agent.local --merge deep --
|
220
|
+
$ puppet lookup --node agent.local --merge deep --knock-out-prefix foo key_name_one key_name_two
|
229
221
|
|
230
222
|
If you wanted to lookup 'key_name' within the scope of the agent.local node,
|
231
223
|
and return a default value of 'bar' if nothing was found, you would call
|
@@ -251,7 +243,7 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
251
243
|
# raise "No node was given via the '--node' flag for the scope of the lookup.\n#{RUN_HELP}"
|
252
244
|
#end
|
253
245
|
|
254
|
-
if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix]
|
246
|
+
if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix]) && options[:merge] != 'deep'
|
255
247
|
raise "The options #{DEEP_MERGE_OPTIONS} are only available with '--merge deep'\n#{RUN_HELP}"
|
256
248
|
end
|
257
249
|
|
@@ -275,10 +267,6 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
275
267
|
merge_options.merge!({'knockout_prefix' => options[:prefix]})
|
276
268
|
end
|
277
269
|
|
278
|
-
if options[:unpack_arrays]
|
279
|
-
merge_options.merge!({'unpack_arrays' => options[:unpack_arrays]})
|
280
|
-
end
|
281
|
-
|
282
270
|
else
|
283
271
|
merge_options = {'strategy' => merge}
|
284
272
|
end
|
@@ -84,10 +84,6 @@ configuration options can also be generated by running puppet with
|
|
84
84
|
Write the results of the query to a file, open the file in an editor,
|
85
85
|
and read the file back in as an executable Puppet manifest.
|
86
86
|
|
87
|
-
* --host:
|
88
|
-
When specified, connect to the resource server on the named host
|
89
|
-
and retrieve the list of resouces of the type specified.
|
90
|
-
|
91
87
|
* --help:
|
92
88
|
Print this help message.
|
93
89
|
|
@@ -100,10 +100,16 @@ module Puppet::DataProviders::HieraInterpolate
|
|
100
100
|
throw :no_such_key if value.nil?
|
101
101
|
if segment =~ /^[0-9]+$/
|
102
102
|
segment = segment.to_i
|
103
|
-
|
103
|
+
unless value.instance_of?(Array)
|
104
|
+
raise Puppet::DataBinding::LookupError,
|
105
|
+
"Data provider type mismatch: Got #{value.class.name} when Array was expected to enable lookup using key '#{segment}'"
|
106
|
+
end
|
104
107
|
throw :no_such_key unless segment < value.size
|
105
108
|
else
|
106
|
-
|
109
|
+
unless value.respond_to?(:'[]') && !(value.instance_of?(Array) || value.instance_of?(String))
|
110
|
+
raise Puppet::DataBinding::LookupError,
|
111
|
+
"Data provider type mismatch: Got #{value.class.name} when a hash-like object was expected to enable lookup using key '#{segment}'"
|
112
|
+
end
|
107
113
|
throw :no_such_key unless value.include?(segment)
|
108
114
|
end
|
109
115
|
value = value[segment]
|
@@ -18,7 +18,7 @@ module Puppet::DataProviders
|
|
18
18
|
include HieraInterpolate
|
19
19
|
|
20
20
|
def initialize_data(path, lookup_invocation)
|
21
|
-
JSON.parse(
|
21
|
+
JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
|
22
22
|
rescue JSON::ParserError => ex
|
23
23
|
# Filename not included in message, so we add it here.
|
24
24
|
raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}"
|
data/lib/puppet/defaults.rb
CHANGED
@@ -606,22 +606,38 @@ module Puppet
|
|
606
606
|
:dns_alt_names => {
|
607
607
|
:default => '',
|
608
608
|
:desc => <<EOT,
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
609
|
+
A comma-separated list of alternate DNS names for Puppet Server. These are extra
|
610
|
+
hostnames (in addition to its `certname`) that the server is allowed to use when
|
611
|
+
serving agents. Puppet checks this setting when automatically requesting a
|
612
|
+
certificate for Puppet agent or Puppet Server, and when manually generating a
|
613
|
+
certificate with `puppet cert generate`.
|
614
|
+
|
615
|
+
In order to handle agent requests at a given hostname (like
|
616
|
+
"puppet.example.com"), Puppet Server needs a certificate that proves it's
|
617
|
+
allowed to use that name; if a server shows a certificate that doesn't include
|
618
|
+
its hostname, Puppet agents will refuse to trust it. If you use a single
|
619
|
+
hostname for Puppet traffic but load-balance it to multiple Puppet Servers, each
|
620
|
+
of those servers needs to include the official hostname in its list of extra
|
621
|
+
names.
|
622
|
+
|
623
|
+
**Note:** The list of alternate names is locked in when the server's
|
624
|
+
certificate is signed. If you need to change the list later, you can't just
|
625
|
+
change this setting; you also need to:
|
626
|
+
|
627
|
+
* On the server: Stop Puppet Server.
|
628
|
+
* On the CA server: Revoke and clean the server's old certificate. (`puppet cert clean <NAME>`)
|
629
|
+
* On the server: Delete the old certificate (and any old certificate signing requests)
|
630
|
+
from the [ssldir](https://docs.puppetlabs.com/puppet/latest/reference/dirs_ssldir.html).
|
631
|
+
* On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to request a new certificate
|
632
|
+
* On the CA server: Sign the certificate request, explicitly allowing alternate names
|
633
|
+
(`puppet cert sign --allow-dns-alt-names <NAME>`).
|
634
|
+
* On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to retrieve the cert.
|
635
|
+
* On the server: Start Puppet Server again.
|
636
|
+
|
637
|
+
To see all the alternate names your servers are using, log into your CA server
|
638
|
+
and run `puppet cert list -a`, then check the output for `(alt names: ...)`.
|
639
|
+
Most agent nodes should NOT have alternate names; the only certs that should
|
640
|
+
have them are Puppet Server nodes that you want other agents to trust.
|
625
641
|
EOT
|
626
642
|
},
|
627
643
|
:csr_attributes => {
|
@@ -175,7 +175,7 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
175
175
|
mkdir(lock)
|
176
176
|
yield
|
177
177
|
ensure
|
178
|
-
rmdir(lock) if lock
|
178
|
+
rmdir(lock) if Puppet::FileSystem.exist?(lock)
|
179
179
|
end
|
180
180
|
|
181
181
|
def mkdir(*args)
|
@@ -187,4 +187,4 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
187
187
|
end
|
188
188
|
end
|
189
189
|
|
190
|
-
end
|
190
|
+
end
|
@@ -4,21 +4,7 @@ require 'puppet/util/windows'
|
|
4
4
|
class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
5
5
|
|
6
6
|
def exist?(path)
|
7
|
-
|
8
|
-
return ::File.exist?(path)
|
9
|
-
end
|
10
|
-
|
11
|
-
path = path.to_str if path.respond_to?(:to_str) # support WatchedFile
|
12
|
-
path = path.to_s # support String and Pathname
|
13
|
-
|
14
|
-
begin
|
15
|
-
if Puppet::Util::Windows::File.symlink?(path)
|
16
|
-
path = Puppet::Util::Windows::File.readlink(path)
|
17
|
-
end
|
18
|
-
! Puppet::Util::Windows::File.stat(path).nil?
|
19
|
-
rescue # generally INVALID_HANDLE_VALUE which means 'file not found'
|
20
|
-
false
|
21
|
-
end
|
7
|
+
return Puppet::Util::Windows::File.exist?(path)
|
22
8
|
end
|
23
9
|
|
24
10
|
def symlink(path, dest, options = {})
|
@@ -69,7 +69,7 @@ Puppet::Functions.create_function(:assert_type, Puppet::Functions::InternalFunct
|
|
69
69
|
#
|
70
70
|
def assert_type(type, value)
|
71
71
|
unless Puppet::Pops::Types::TypeCalculator.instance?(type,value)
|
72
|
-
inferred_type = Puppet::Pops::Types::TypeCalculator.
|
72
|
+
inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value)
|
73
73
|
if block_given?
|
74
74
|
# Give the inferred type to allow richer comparison in the given block (if generalized
|
75
75
|
# information is lost).
|
@@ -100,9 +100,6 @@
|
|
100
100
|
# disables this feature.
|
101
101
|
# * `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
|
102
102
|
# merged together. Defaults to `false`.
|
103
|
-
# * `'unpack_arrays'` (string or undef) --- A delimiter string; Puppet will
|
104
|
-
# join merged arrays with this delimiter, then split them again. Defaults to
|
105
|
-
# `undef`, which disables this feature.
|
106
103
|
# * `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
|
107
104
|
# Defaults to `false`.
|
108
105
|
#
|
@@ -254,7 +254,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
254
254
|
raise Puppet::Error, "Unable to find a common checksum type between agent '#{options[:checksum_type]}' and master '#{known_checksum_types}'." unless checksum_type
|
255
255
|
end
|
256
256
|
|
257
|
-
str = "Compiled %s for
|
257
|
+
str = "Compiled %s for " % [checksum_type ? 'static catalog' : 'catalog']
|
258
|
+
str += node.name
|
258
259
|
str += " in environment #{node.environment}" if node.environment
|
259
260
|
config = nil
|
260
261
|
|
@@ -66,18 +66,18 @@ class Puppet::Indirector::Terminus
|
|
66
66
|
# Yay, class/instance confusion.
|
67
67
|
subclass.terminus_type = self.name
|
68
68
|
|
69
|
-
#
|
69
|
+
# This subclass is specifically associated with an indirection.
|
70
70
|
raise("Invalid name #{longname}") unless names.length > 0
|
71
|
-
|
71
|
+
processed_name = names.pop.sub(/^[A-Z]/) { |i| i.downcase }.gsub(/[A-Z]/) { |i| "_#{i.downcase}" }
|
72
72
|
|
73
|
-
if
|
73
|
+
if processed_name.empty?
|
74
74
|
raise Puppet::DevError, "Could not discern indirection model from class constant"
|
75
75
|
end
|
76
76
|
|
77
77
|
# This will throw an exception if the indirection instance cannot be found.
|
78
78
|
# Do this last, because it also registers the terminus type with the indirection,
|
79
79
|
# which needs the above information.
|
80
|
-
subclass.indirection =
|
80
|
+
subclass.indirection = processed_name.intern
|
81
81
|
|
82
82
|
# And add this instance to the instance hash.
|
83
83
|
Puppet::Indirector::Terminus.register_terminus_class(subclass)
|
data/lib/puppet/module.rb
CHANGED
@@ -48,7 +48,7 @@ class Puppet::Module
|
|
48
48
|
|
49
49
|
def self.is_module_namespaced_name?(name)
|
50
50
|
# it must match the full module name according to forge validator
|
51
|
-
return true if name =~ /^[a-zA-Z0-9]+[-][a-z][a-z0-9_]*$/
|
51
|
+
return true if name =~ /^[a-zA-Z0-9]+[-][a-z][a-z0-9_]*$/
|
52
52
|
return false
|
53
53
|
end
|
54
54
|
|
@@ -90,7 +90,7 @@ class Puppet::Module
|
|
90
90
|
return false unless Puppet::FileSystem.exist?(metadata_file)
|
91
91
|
|
92
92
|
begin
|
93
|
-
metadata = JSON.parse(File.read(metadata_file))
|
93
|
+
metadata = JSON.parse(File.read(metadata_file, :encoding => 'utf-8'))
|
94
94
|
rescue JSON::JSONError => e
|
95
95
|
Puppet.debug("#{name} has an invalid and unparsable metadata.json file. The parse error: #{e.message}")
|
96
96
|
return false
|
@@ -145,7 +145,7 @@ class Puppet::Module
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def load_metadata
|
148
|
-
@metadata = data = JSON.parse(File.read(metadata_file))
|
148
|
+
@metadata = data = JSON.parse(File.read(metadata_file, :encoding => 'utf-8'))
|
149
149
|
@forge_name = data['name'].gsub('-', '/') if data['name']
|
150
150
|
|
151
151
|
[:source, :author, :version, :license, :dependencies].each do |attr|
|
@@ -65,9 +65,9 @@ module Puppet::ModuleTool
|
|
65
65
|
gitignore = File.join(@path, '.gitignore')
|
66
66
|
|
67
67
|
if File.file? pmtignore
|
68
|
-
@ignored_files = PathSpec.new
|
68
|
+
@ignored_files = PathSpec.new Puppet::FileSystem.read(pmtignore, :encoding => 'utf-8')
|
69
69
|
elsif File.file? gitignore
|
70
|
-
@ignored_files = PathSpec.new
|
70
|
+
@ignored_files = PathSpec.new Puppet::FileSystem.read(gitignore, :encoding => 'utf-8')
|
71
71
|
else
|
72
72
|
@ignored_files = PathSpec.new
|
73
73
|
end
|
@@ -2,6 +2,7 @@ require 'openssl'
|
|
2
2
|
require 'cgi'
|
3
3
|
require 'puppet/network/http/handler'
|
4
4
|
require 'puppet/util/ssl'
|
5
|
+
require 'uri'
|
5
6
|
|
6
7
|
class Puppet::Network::HTTP::RackREST
|
7
8
|
include Puppet::Network::HTTP::Handler
|
@@ -79,7 +80,15 @@ class Puppet::Network::HTTP::RackREST
|
|
79
80
|
|
80
81
|
# what path was requested? (this is, without any query parameters)
|
81
82
|
def path(request)
|
82
|
-
|
83
|
+
# The value that Passenger provides for 'path' is escaped
|
84
|
+
# (URL percent-encoded), see
|
85
|
+
# https://github.com/phusion/passenger/blob/release-5.0.26/src/apache2_module/Hooks.cpp#L885
|
86
|
+
# for the implementation as hooked up to an Apache web server. Code
|
87
|
+
# in the indirector / HTTP layer which consumes this path, however, assumes
|
88
|
+
# that it has already been unescaped, so it is unescaped here.
|
89
|
+
if request.path
|
90
|
+
URI.unescape(request.path)
|
91
|
+
end
|
83
92
|
end
|
84
93
|
|
85
94
|
# return the request body
|
@@ -101,9 +101,6 @@ but can adjust the merge with additional options. The available options are:
|
|
101
101
|
disables this feature.
|
102
102
|
* `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
|
103
103
|
merged together. Defaults to `false`.
|
104
|
-
* `'unpack_arrays'` (string or undef) --- A delimiter string; Puppet will
|
105
|
-
join merged arrays with this delimiter, then split them again. Defaults to
|
106
|
-
`undef`, which disables this feature.
|
107
104
|
* `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
|
108
105
|
Defaults to `false`.
|
109
106
|
|
@@ -293,6 +293,30 @@ class AccessOperator
|
|
293
293
|
end
|
294
294
|
end
|
295
295
|
|
296
|
+
def access_PIterableType(o, scope, keys)
|
297
|
+
keys.flatten!
|
298
|
+
if keys.size == 1
|
299
|
+
unless keys[0].is_a?(Types::PAnyType)
|
300
|
+
fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterable-Type', :actual => keys[0].class})
|
301
|
+
end
|
302
|
+
Types::PIterableType.new(keys[0])
|
303
|
+
else
|
304
|
+
fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterable-Type', :min => 1, :actual => keys.size})
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
def access_PIteratorType(o, scope, keys)
|
309
|
+
keys.flatten!
|
310
|
+
if keys.size == 1
|
311
|
+
unless keys[0].is_a?(Types::PAnyType)
|
312
|
+
fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterator-Type', :actual => keys[0].class})
|
313
|
+
end
|
314
|
+
Types::PIteratorType.new(keys[0])
|
315
|
+
else
|
316
|
+
fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterator-Type', :min => 1, :actual => keys.size})
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
296
320
|
def access_PRuntimeType(o, scope, keys)
|
297
321
|
keys.flatten!
|
298
322
|
assert_keys(keys, o, 2, 2, String, String)
|
@@ -366,7 +390,7 @@ class AccessOperator
|
|
366
390
|
fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic,
|
367
391
|
{:base_type => 'Collection-Type', :min => 1, :max => 2, :actual => keys.size})
|
368
392
|
end
|
369
|
-
Types::PCollectionType.new(size_t)
|
393
|
+
Types::PCollectionType.new(nil, size_t)
|
370
394
|
end
|
371
395
|
|
372
396
|
# An Array can create a new Array type. It is not possible to create a collection of Array types.
|
@@ -45,14 +45,19 @@ class Closure < CallableSignature
|
|
45
45
|
if enforce_parameters
|
46
46
|
# Push a temporary parameter scope used while resolving the parameter defaults
|
47
47
|
@enclosing_scope.with_parameter_scope(parameter_names) do |param_scope|
|
48
|
-
|
48
|
+
# Assign all non-nil values, even those that represent non-existent paramaters.
|
49
|
+
args_hash.each { |k, v| param_scope[k] = v unless v.nil? }
|
49
50
|
parameters.each do |p|
|
50
51
|
name = p.name
|
51
|
-
# only set result of default expr if it is defined (it is otherwise not possible to differentiate
|
52
|
-
# between explicit undef and no default expression
|
53
52
|
arg = args_hash[name]
|
54
|
-
if arg.nil?
|
55
|
-
|
53
|
+
if arg.nil?
|
54
|
+
# Arg either wasn't given, or it was undef
|
55
|
+
if p.value.nil?
|
56
|
+
# No default. Assign nil if the args_hash included it
|
57
|
+
param_scope[name] = nil if args_hash.include?(name)
|
58
|
+
else
|
59
|
+
param_scope[name] = param_scope.evaluate(name, p.value, @enclosing_scope, @evaluator)
|
60
|
+
end
|
56
61
|
end
|
57
62
|
end
|
58
63
|
args_hash = param_scope.to_hash
|
@@ -279,7 +279,6 @@ module Puppet::Pops
|
|
279
279
|
# hash.deep_merge!({:x => [1,2]}, {:knockout_prefix => '--'})
|
280
280
|
# - 'knockout_prefix' Set to string value to signify prefix which deletes elements from existing element. Defaults is _undef_
|
281
281
|
# - 'sort_merged_arrays' Set to _true_ to sort all arrays that are merged together. Default is _false_
|
282
|
-
# - 'unpack_arrays' Set to string value used as a deliminator to join all array values and then split them again. Default is _undef_
|
283
282
|
# - 'merge_hash_arrays' Set to _true_ to merge hashes within arrays. Default is _false_
|
284
283
|
#
|
285
284
|
# Selected Options Details:
|
@@ -295,14 +294,6 @@ module Puppet::Pops
|
|
295
294
|
# dest = {:x => [1,2,3]}
|
296
295
|
# dest.ko_deep_merge!(source)
|
297
296
|
# Results: {:x => ""}
|
298
|
-
# :unpack_arrays => The purpose of this is to permit compound elements to be passed
|
299
|
-
# in as strings and to be converted into discrete array elements
|
300
|
-
# irsource = {:x => ['1,2,3', '4']}
|
301
|
-
# dest = {:x => ['5','6','7,8']}
|
302
|
-
# dest.deep_merge!(source, {:unpack_arrays => ','})
|
303
|
-
# Results: {:x => ['1','2','3','4','5','6','7','8']}
|
304
|
-
# Why: If receiving data from an HTML form, this makes it easy for a checkbox
|
305
|
-
# to pass multiple values from within a single HTML element
|
306
297
|
#
|
307
298
|
# :merge_hash_arrays => merge hashes within arrays
|
308
299
|
# source = {:x => [{:y => 1}]}
|
@@ -335,7 +326,6 @@ module Puppet::Pops
|
|
335
326
|
'merge_debug=>Optional[Boolean],'\
|
336
327
|
'merge_hash_arrays=>Optional[Boolean],'\
|
337
328
|
'sort_merge_arrays=>Optional[Boolean],'\
|
338
|
-
'unpack_arrays=>Optional[String]'\
|
339
329
|
'}]')
|
340
330
|
end
|
341
331
|
|
@@ -54,6 +54,16 @@ class RecursionGuard
|
|
54
54
|
@state
|
55
55
|
end
|
56
56
|
|
57
|
+
# @return the number of objects added to the `this` map
|
58
|
+
def this_count
|
59
|
+
this_map.size
|
60
|
+
end
|
61
|
+
|
62
|
+
# @return the number of objects added to the `that` map
|
63
|
+
def that_count
|
64
|
+
that_map.size
|
65
|
+
end
|
66
|
+
|
57
67
|
private
|
58
68
|
|
59
69
|
def map_put(map, o)
|
@@ -30,7 +30,7 @@ module TypeAsserter
|
|
30
30
|
# @api public
|
31
31
|
def self.assert_instance_of(subject, expected_type, value, nil_ok = false, &block)
|
32
32
|
unless value.nil? && nil_ok
|
33
|
-
report_type_mismatch(subject, expected_type, TypeCalculator.singleton.infer_set(value)
|
33
|
+
report_type_mismatch(subject, expected_type, TypeCalculator.singleton.infer_set(value), &block) unless expected_type.instance?(value)
|
34
34
|
end
|
35
35
|
value
|
36
36
|
end
|
@@ -39,7 +39,7 @@ module TypeAsserter
|
|
39
39
|
subject = yield(subject) if block_given?
|
40
40
|
subject = subject[0] % subject[1..-1] if subject.is_a?(Array)
|
41
41
|
raise TypeAssertionError.new(
|
42
|
-
TypeMismatchDescriber.singleton.describe_mismatch("#{subject}
|
42
|
+
TypeMismatchDescriber.singleton.describe_mismatch("#{subject} had wrong type,", expected_type, actual_type), expected_type, actual_type)
|
43
43
|
end
|
44
44
|
private_class_method :report_type_mismatch
|
45
45
|
end
|
@@ -697,7 +697,7 @@ class TypeCalculator
|
|
697
697
|
if o.empty?
|
698
698
|
PHashType::EMPTY
|
699
699
|
elsif o.keys.all? {|k| PStringType::NON_EMPTY.instance?(k) }
|
700
|
-
PStructType.new(o.each_pair.map { |k,v| PStructElement.new(PStringType.new(
|
700
|
+
PStructType.new(o.each_pair.map { |k,v| PStructElement.new(PStringType.new(size_as_type(k), [k]), infer_set(v)) })
|
701
701
|
else
|
702
702
|
ktype = PVariantType.new(o.keys.map {|k| infer_set(k) })
|
703
703
|
etype = PVariantType.new(o.values.map {|e| infer_set(e) })
|
@@ -206,14 +206,26 @@ class TypeFormatter
|
|
206
206
|
append_array('Runtime', [string(t.runtime), string(t.runtime_type_name)])
|
207
207
|
end
|
208
208
|
|
209
|
+
def is_empty_range?(from, to)
|
210
|
+
from == 0 && to == 0
|
211
|
+
end
|
212
|
+
|
209
213
|
# @api private
|
210
214
|
def string_PArrayType(t)
|
211
|
-
|
215
|
+
if t.has_empty_range?
|
216
|
+
append_array('Array', ['0', '0'])
|
217
|
+
else
|
218
|
+
append_array('Array', t == PArrayType::DATA ? EMPTY_ARRAY : [string(t.element_type)] + range_array_part(t.size_type))
|
219
|
+
end
|
212
220
|
end
|
213
221
|
|
214
222
|
# @api private
|
215
223
|
def string_PHashType(t)
|
216
|
-
|
224
|
+
if t.has_empty_range?
|
225
|
+
append_array('Hash', ['0', '0'])
|
226
|
+
else
|
227
|
+
append_array('Hash', t == PHashType::DATA ? EMPTY_ARRAY : [string(t.key_type), string(t.element_type)] + range_array_part(t.size_type))
|
228
|
+
end
|
217
229
|
end
|
218
230
|
|
219
231
|
# @api private
|
@@ -28,13 +28,13 @@ module Types
|
|
28
28
|
|
29
29
|
class MemberPathElement < TypePathElement
|
30
30
|
def to_s
|
31
|
-
"struct member #{key}"
|
31
|
+
"struct member '#{key}'"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
class MemberKeyPathElement < TypePathElement
|
36
36
|
def to_s
|
37
|
-
"struct member key #{key}"
|
37
|
+
"struct member key '#{key}'"
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -301,6 +301,22 @@ module Types
|
|
301
301
|
|
302
302
|
private
|
303
303
|
|
304
|
+
# Answers the question if `e` is a specialized type of `a`
|
305
|
+
# @param e [PAnyType] the expected type
|
306
|
+
# @param a [PAnyType] the actual type
|
307
|
+
# @return [Boolean] `true` when the _e_ is a specialization of _a_
|
308
|
+
#
|
309
|
+
def specialization(e, a)
|
310
|
+
case e
|
311
|
+
when PStructType
|
312
|
+
a.is_a?(PHashType)
|
313
|
+
when PTupleType
|
314
|
+
a.is_a?(PArrayType)
|
315
|
+
else
|
316
|
+
false
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
304
320
|
# Decides whether or not the report must be fully detailed, or if generalization can be permitted
|
305
321
|
# in the mismatch report. All comparisons are made using resolved aliases rather than the alias
|
306
322
|
# itself.
|
@@ -313,7 +329,7 @@ module Types
|
|
313
329
|
if e.is_a?(Array)
|
314
330
|
e.any? { |t| always_fully_detailed?(t, a) }
|
315
331
|
else
|
316
|
-
e.class == a.class || e.is_a?(PTypeAliasType) || a.is_a?(PTypeAliasType)
|
332
|
+
e.class == a.class || e.is_a?(PTypeAliasType) || a.is_a?(PTypeAliasType) || specialization(e, a)
|
317
333
|
end
|
318
334
|
end
|
319
335
|
|
@@ -713,15 +729,11 @@ module Types
|
|
713
729
|
h2.each_key { |key| descriptions << ExtraneousKey.new(path, key) }
|
714
730
|
elsif actual.is_a?(PHashType)
|
715
731
|
actual_size = actual.size_type || PCollectionType::DEFAULT_SIZE
|
716
|
-
expected_size = PIntegerType.new(elements.count { |e| !e.
|
732
|
+
expected_size = PIntegerType.new(elements.count { |e| !e.key_type.assignable?(PUndefType::DEFAULT) }, elements.size)
|
717
733
|
if expected_size.assignable?(actual_size)
|
718
|
-
|
719
|
-
descriptions.concat(describe(e.type, actual.element_type, path + [MemberPathElement.new(e.key)]))
|
720
|
-
else
|
721
|
-
descriptions << TypeMismatch(path, @non_empty_string_, actual.key_type)
|
722
|
-
end
|
734
|
+
descriptions << TypeMismatch.new(path, expected, actual)
|
723
735
|
else
|
724
|
-
descriptions << SizeMismatch(path, expected_size, actual_size)
|
736
|
+
descriptions << SizeMismatch.new(path, expected_size, actual_size)
|
725
737
|
end
|
726
738
|
else
|
727
739
|
descriptions << TypeMismatch.new(path, expected, actual)
|