puppet 6.15.0-universal-darwin → 6.19.1-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.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +119 -39
- data/lib/puppet/environments.rb +51 -10
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +1 -1
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +31 -4
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +29 -26
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +7 -3
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +33 -8
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- 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 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- 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 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +75 -2
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +7 -2
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +9 -4
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/environments_spec.rb +99 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +2 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +47 -8
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +87 -19
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/autoload_spec.rb +2 -1
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
@@ -62,7 +62,7 @@ describe Puppet::Util::CommandLine do
|
|
62
62
|
it "should print the version and exit if #{arg} is given" do
|
63
63
|
expect do
|
64
64
|
described_class.new("puppet", [arg]).execute
|
65
|
-
end.to
|
65
|
+
end.to output(/^#{Regexp.escape(Puppet.version)}$/).to_stdout
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -73,7 +73,8 @@ describe Puppet::Util::CommandLine do
|
|
73
73
|
|
74
74
|
expect {
|
75
75
|
commandline.execute
|
76
|
-
}.to
|
76
|
+
}.to exit_with(0)
|
77
|
+
.and output(/Usage: puppet <subcommand> \[options\] <action> \[options\]/).to_stdout
|
77
78
|
end
|
78
79
|
end
|
79
80
|
|
@@ -95,7 +96,8 @@ describe Puppet::Util::CommandLine do
|
|
95
96
|
|
96
97
|
expect {
|
97
98
|
commandline.execute
|
98
|
-
}.to
|
99
|
+
}.to exit_with(0)
|
100
|
+
.and output(/Usage: puppet <subcommand> \[options\] <action> \[options\]/).to_stdout
|
99
101
|
end
|
100
102
|
end
|
101
103
|
|
@@ -124,7 +126,8 @@ describe Puppet::Util::CommandLine do
|
|
124
126
|
|
125
127
|
expect {
|
126
128
|
commandline.execute
|
127
|
-
}.to
|
129
|
+
}.to exit_with(1)
|
130
|
+
.and output(/Unknown Puppet subcommand 'whatever'/).to_stdout
|
128
131
|
end
|
129
132
|
|
130
133
|
it "should abort and show the help message" do
|
@@ -134,7 +137,8 @@ describe Puppet::Util::CommandLine do
|
|
134
137
|
|
135
138
|
expect {
|
136
139
|
commandline.execute
|
137
|
-
}.to
|
140
|
+
}.to exit_with(1)
|
141
|
+
.and output(/See 'puppet help' for help on available puppet subcommands/).to_stdout
|
138
142
|
end
|
139
143
|
|
140
144
|
%w{--version -V}.each do |arg|
|
@@ -145,7 +149,8 @@ describe Puppet::Util::CommandLine do
|
|
145
149
|
|
146
150
|
expect {
|
147
151
|
commandline.execute
|
148
|
-
}.to
|
152
|
+
}.to exit_with(1)
|
153
|
+
.and output(%r[^#{Regexp.escape(Puppet.version)}$]).to_stdout
|
149
154
|
end
|
150
155
|
end
|
151
156
|
end
|
@@ -44,41 +44,13 @@ describe Puppet::Util::Log.desttypes[:file] do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
describe "on POSIX systems", :
|
47
|
+
describe "on POSIX systems", :unless => Puppet::Util::Platform.windows? do
|
48
48
|
describe "with a normal file" do
|
49
49
|
let (:parent) { Pathname.new('/tmp') }
|
50
50
|
let (:abspath) { '/tmp/log' }
|
51
51
|
let (:relpath) { 'log' }
|
52
52
|
|
53
53
|
it_behaves_like "file destination"
|
54
|
-
|
55
|
-
it "logs an error if it can't chown the file owner & group" do
|
56
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
57
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
|
58
|
-
expect(FileUtils).to receive(:chown).with(Puppet[:user], Puppet[:group], abspath).and_raise(Errno::EPERM)
|
59
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
60
|
-
expect(Puppet).to receive(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
|
61
|
-
|
62
|
-
@class.new(abspath)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "doesn't attempt to chown when running as non-root" do
|
66
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
67
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
|
68
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
69
|
-
expect(Puppet.features).to receive(:root?).and_return(false)
|
70
|
-
|
71
|
-
@class.new(abspath)
|
72
|
-
end
|
73
|
-
|
74
|
-
it "doesn't attempt to chown when file already exists" do
|
75
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
76
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(true)
|
77
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
78
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
79
|
-
|
80
|
-
@class.new(abspath)
|
81
|
-
end
|
82
54
|
end
|
83
55
|
|
84
56
|
describe "with a JSON file" do
|
@@ -34,12 +34,33 @@ describe Puppet::Util::Package::Version::Range do
|
|
34
34
|
expect { Puppet::Util::Package::Version::Range.parse('=a', IntegerVersion) }.to raise_error(Puppet::Util::Package::Version::Range::ValidationFailure)
|
35
35
|
end
|
36
36
|
it 'should raise if operator cannot be parsed' do
|
37
|
-
expect { Puppet::Util::Package::Version::Range.parse('~=a', IntegerVersion) }.to raise_error(
|
37
|
+
expect { Puppet::Util::Package::Version::Range.parse('~=a', IntegerVersion) }.to raise_error(IntegerVersion::ValidationFailure)
|
38
38
|
end
|
39
39
|
it 'should raise if version cannot be parsed' do
|
40
40
|
expect { Puppet::Util::Package::Version::Range.parse('>=a', IntegerVersion) }.to raise_error(IntegerVersion::ValidationFailure)
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
context 'when creating new version range with regular version' do
|
45
|
+
it 'it does not include greater version' do
|
46
|
+
vr = Puppet::Util::Package::Version::Range.parse('3', IntegerVersion)
|
47
|
+
v = IntegerVersion.parse('4')
|
48
|
+
expect(vr.include?(v)).to eql(false)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'it includes specified version' do
|
52
|
+
vr = Puppet::Util::Package::Version::Range.parse('3', IntegerVersion)
|
53
|
+
v = IntegerVersion.parse('3')
|
54
|
+
expect(vr.include?(v)).to eql(true)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'it does not include lower version' do
|
58
|
+
vr = Puppet::Util::Package::Version::Range.parse('3', IntegerVersion)
|
59
|
+
v = IntegerVersion.parse('2')
|
60
|
+
expect(vr.include?(v)).to eql(false)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
43
64
|
context 'when creating new version range with greater or equal operator' do
|
44
65
|
it 'it includes greater version' do
|
45
66
|
vr = Puppet::Util::Package::Version::Range.parse('>=3', IntegerVersion)
|
@@ -25,12 +25,12 @@ describe Puppet::Util::RunMode do
|
|
25
25
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path('~/.puppetlabs/etc/puppet')) }
|
26
26
|
end
|
27
27
|
|
28
|
-
context "
|
28
|
+
context "server run mode" do
|
29
29
|
before do
|
30
|
-
@run_mode = Puppet::Util::UnixRunMode.new('
|
30
|
+
@run_mode = Puppet::Util::UnixRunMode.new('server')
|
31
31
|
end
|
32
32
|
|
33
|
-
it "has confdir ~/.puppetlabs/etc/puppet when run as non-root and
|
33
|
+
it "has confdir ~/.puppetlabs/etc/puppet when run as non-root and server run mode" do
|
34
34
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path('~/.puppetlabs/etc/puppet')) }
|
35
35
|
end
|
36
36
|
end
|
@@ -53,12 +53,12 @@ describe Puppet::Util::RunMode do
|
|
53
53
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path('~/.puppetlabs/etc/code')) }
|
54
54
|
end
|
55
55
|
|
56
|
-
context "
|
56
|
+
context "server run mode" do
|
57
57
|
before do
|
58
|
-
@run_mode = Puppet::Util::UnixRunMode.new('
|
58
|
+
@run_mode = Puppet::Util::UnixRunMode.new('server')
|
59
59
|
end
|
60
60
|
|
61
|
-
it "has codedir ~/.puppetlabs/etc/code when run as non-root and
|
61
|
+
it "has codedir ~/.puppetlabs/etc/code when run as non-root and server run mode" do
|
62
62
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path('~/.puppetlabs/etc/code')) }
|
63
63
|
end
|
64
64
|
end
|
@@ -4,62 +4,86 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe "FFI::MemoryPointer", :if => Puppet::Util::Platform.windows? do
|
6
6
|
# use 2 bad bytes at end so we have even number of bytes / characters
|
7
|
-
let
|
8
|
-
let
|
7
|
+
let(:bad_string) { "hello invalid world".encode(Encoding::UTF_16LE) + "\xDD\xDD".force_encoding(Encoding::UTF_16LE) }
|
8
|
+
let(:bad_string_bytes) { bad_string.bytes.to_a }
|
9
|
+
let(:a_wide_bytes) { "A".encode(Encoding::UTF_16LE).bytes.to_a }
|
10
|
+
let(:b_wide_bytes) { "B".encode(Encoding::UTF_16LE).bytes.to_a }
|
9
11
|
|
10
12
|
context "read_wide_string" do
|
11
13
|
let (:string) { "foo_bar" }
|
12
14
|
|
13
15
|
it "should properly roundtrip a given string" do
|
14
|
-
read_string = nil
|
15
16
|
FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
|
16
|
-
|
17
|
+
expect(ptr.read_wide_string(string.length)).to eq(string)
|
17
18
|
end
|
18
|
-
|
19
|
-
expect(read_string).to eq(string)
|
20
19
|
end
|
21
20
|
|
22
21
|
it "should return a given string in UTF-8" do
|
23
|
-
read_string = nil
|
24
22
|
FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
|
25
23
|
read_string = ptr.read_wide_string(string.length)
|
24
|
+
expect(read_string.encoding).to eq(Encoding::UTF_8)
|
26
25
|
end
|
27
|
-
|
28
|
-
expect(read_string.encoding).to eq(Encoding::UTF_8)
|
29
26
|
end
|
30
27
|
|
31
28
|
it "should raise an error and emit a debug message when receiving a string containing invalid bytes in the destination encoding" do
|
32
|
-
|
33
|
-
Puppet.debug = true
|
34
|
-
arraydest = []
|
35
|
-
Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(arraydest))
|
36
|
-
|
37
|
-
read_string = nil
|
29
|
+
Puppet[:log_level] = 'debug'
|
38
30
|
|
39
31
|
expect {
|
40
32
|
FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
|
41
33
|
# uchar here is synonymous with byte
|
42
34
|
ptr.put_array_of_uchar(0, bad_string_bytes)
|
43
35
|
|
44
|
-
|
36
|
+
ptr.read_wide_string(bad_string.length)
|
45
37
|
end
|
46
38
|
}.to raise_error(Encoding::InvalidByteSequenceError)
|
47
39
|
|
48
|
-
expect(
|
49
|
-
expect(arraydest.last.message).to eq("Unable to convert value #{bad_string.dump} to encoding UTF-8 due to #<Encoding::InvalidByteSequenceError: \"\\xDD\\xDD\" on UTF-16LE>")
|
40
|
+
expect(@logs.last.message).to eq("Unable to convert value #{bad_string.dump} to encoding UTF-8 due to #<Encoding::InvalidByteSequenceError: \"\\xDD\\xDD\" on UTF-16LE>")
|
50
41
|
end
|
51
42
|
|
52
43
|
it "should not raise an error when receiving a string containing invalid bytes in the destination encoding, when specifying :invalid => :replace" do
|
53
|
-
read_string = nil
|
54
|
-
|
55
44
|
FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
|
56
45
|
# uchar here is synonymous with byte
|
57
46
|
ptr.put_array_of_uchar(0, bad_string_bytes)
|
58
47
|
|
59
|
-
read_string = ptr.read_wide_string(bad_string.length, Encoding::UTF_8, :invalid => :replace)
|
48
|
+
read_string = ptr.read_wide_string(bad_string.length, Encoding::UTF_8, false, :invalid => :replace)
|
49
|
+
expect(read_string).to eq("hello invalid world\uFFFD")
|
60
50
|
end
|
51
|
+
end
|
61
52
|
|
62
|
-
|
53
|
+
it "raises an IndexError if asked to read more characters than there are bytes allocated" do
|
54
|
+
expect {
|
55
|
+
FFI::MemoryPointer.new(:byte, 1) do |ptr|
|
56
|
+
ptr.read_wide_string(1) # 1 wchar = 2 bytes
|
57
|
+
end
|
58
|
+
}.to raise_error(IndexError, /out of bounds/)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "raises an IndexError if asked to read a negative number of characters" do
|
62
|
+
expect {
|
63
|
+
FFI::MemoryPointer.new(:byte, 1) do |ptr|
|
64
|
+
ptr.read_wide_string(-1)
|
65
|
+
end
|
66
|
+
}.to raise_error(IndexError, /out of bounds/)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns an empty string if asked to read 0 characters" do
|
70
|
+
FFI::MemoryPointer.new(:byte, 1) do |ptr|
|
71
|
+
expect(ptr.read_wide_string(0)).to eq("")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it "returns a substring if asked to read fewer characters than are in the byte array" do
|
76
|
+
FFI::MemoryPointer.new(:byte, 4) do |ptr|
|
77
|
+
ptr.write_array_of_uint8("AB".encode('UTF-16LE').bytes.to_a)
|
78
|
+
expect(ptr.read_wide_string(1)).to eq("A")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
it "preserves wide null characters in the string" do
|
83
|
+
FFI::MemoryPointer.new(:byte, 6) do |ptr|
|
84
|
+
ptr.write_array_of_uint8(a_wide_bytes + [0, 0] + b_wide_bytes)
|
85
|
+
expect(ptr.read_wide_string(3)).to eq("A\x00B")
|
86
|
+
end
|
63
87
|
end
|
64
88
|
end
|
65
89
|
|
@@ -69,52 +93,92 @@ describe "FFI::MemoryPointer", :if => Puppet::Util::Platform.windows? do
|
|
69
93
|
let (:double_null_string) { string + "\x00\x00" }
|
70
94
|
|
71
95
|
it "should read a short single null terminated string" do
|
72
|
-
read_string = nil
|
73
96
|
FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
|
74
|
-
|
97
|
+
expect(ptr.read_arbitrary_wide_string_up_to).to eq(string)
|
75
98
|
end
|
76
|
-
|
77
|
-
expect(read_string).to eq(string)
|
78
99
|
end
|
79
100
|
|
80
101
|
it "should read a short double null terminated string" do
|
81
|
-
read_string = nil
|
82
102
|
FFI::MemoryPointer.from_string_to_wide_string(double_null_string) do |ptr|
|
83
|
-
|
103
|
+
expect(ptr.read_arbitrary_wide_string_up_to(512, :double_null)).to eq(string)
|
84
104
|
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it "detects trailing single null wchar" do
|
108
|
+
FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
|
109
|
+
expect(ptr).to receive(:read_wide_string).with(string.length, anything, anything, anything).and_call_original
|
85
110
|
|
86
|
-
|
111
|
+
expect(ptr.read_arbitrary_wide_string_up_to).to eq(string)
|
112
|
+
end
|
87
113
|
end
|
88
114
|
|
89
|
-
it "
|
90
|
-
|
115
|
+
it "detects trailing double null wchar" do
|
116
|
+
FFI::MemoryPointer.from_string_to_wide_string(double_null_string) do |ptr|
|
117
|
+
expect(ptr).to receive(:read_wide_string).with(string.length, anything, anything, anything).and_call_original
|
118
|
+
|
119
|
+
expect(ptr.read_arbitrary_wide_string_up_to(512, :double_null)).to eq(string)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should raises an IndexError if max_length is negative" do
|
124
|
+
FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
|
125
|
+
expect {
|
126
|
+
ptr.read_arbitrary_wide_string_up_to(-1)
|
127
|
+
}.to raise_error(IndexError, /out of bounds/)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should return an empty string when the max_length is 0" do
|
91
132
|
FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
|
92
|
-
|
133
|
+
expect(ptr.read_arbitrary_wide_string_up_to(0)).to eq("")
|
93
134
|
end
|
135
|
+
end
|
94
136
|
|
95
|
-
|
137
|
+
it "should return a string of max_length characters when specified" do
|
138
|
+
FFI::MemoryPointer.from_string_to_wide_string(single_null_string) do |ptr|
|
139
|
+
expect(ptr.read_arbitrary_wide_string_up_to(3)).to eq(string[0..2])
|
140
|
+
end
|
96
141
|
end
|
97
142
|
|
98
143
|
it "should return wide strings in UTF-8" do
|
99
|
-
read_string = nil
|
100
144
|
FFI::MemoryPointer.from_string_to_wide_string(string) do |ptr|
|
101
|
-
read_string = ptr.read_arbitrary_wide_string_up_to
|
145
|
+
read_string = ptr.read_arbitrary_wide_string_up_to
|
146
|
+
expect(read_string.encoding).to eq(Encoding::UTF_8)
|
102
147
|
end
|
103
|
-
|
104
|
-
expect(read_string.encoding).to eq(Encoding::UTF_8)
|
105
148
|
end
|
106
149
|
|
107
150
|
it "should not raise an error when receiving a string containing invalid bytes in the destination encoding, when specifying :invalid => :replace" do
|
108
|
-
read_string = nil
|
109
|
-
|
110
151
|
FFI::MemoryPointer.new(:byte, bad_string_bytes.count) do |ptr|
|
111
152
|
# uchar here is synonymous with byte
|
112
153
|
ptr.put_array_of_uchar(0, bad_string_bytes)
|
113
154
|
|
114
155
|
read_string = ptr.read_arbitrary_wide_string_up_to(ptr.size / 2, :single_null, :invalid => :replace)
|
156
|
+
expect(read_string).to eq("hello invalid world\uFFFD")
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should raise an IndexError if there isn't a null terminator" do
|
161
|
+
# This only works when using a memory pointer with a known number of cells
|
162
|
+
# and size per cell, but not arbitrary Pointers
|
163
|
+
FFI::MemoryPointer.new(:wchar, 1) do |ptr|
|
164
|
+
ptr.write_array_of_uint8(a_wide_bytes)
|
165
|
+
|
166
|
+
expect {
|
167
|
+
ptr.read_arbitrary_wide_string_up_to(42)
|
168
|
+
}.to raise_error(IndexError, /out of bounds/)
|
115
169
|
end
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should raise an IndexError if there isn't a double null terminator" do
|
173
|
+
# This only works when using a memory pointer with a known number of cells
|
174
|
+
# and size per cell, but not arbitrary Pointers
|
175
|
+
FFI::MemoryPointer.new(:wchar, 1) do |ptr|
|
176
|
+
ptr.write_array_of_uint8(a_wide_bytes)
|
116
177
|
|
117
|
-
|
178
|
+
expect {
|
179
|
+
ptr.read_arbitrary_wide_string_up_to(42, :double_null)
|
180
|
+
}.to raise_error(IndexError, /out of bounds/)
|
181
|
+
end
|
118
182
|
end
|
119
183
|
end
|
120
184
|
end
|
@@ -599,27 +599,27 @@ describe "Puppet::Util::Windows::Service", :if => Puppet.features.microsoft_wind
|
|
599
599
|
end
|
600
600
|
end
|
601
601
|
|
602
|
-
describe "#
|
602
|
+
describe "#set_startup_configuration" do
|
603
603
|
let(:status_checks) { sequence('status_checks') }
|
604
604
|
|
605
605
|
context "when the service control manager cannot be opened" do
|
606
606
|
let(:scm) { FFI::Pointer::NULL_HANDLE }
|
607
607
|
it "raises a puppet error" do
|
608
|
-
expect{ subject.
|
608
|
+
expect{ subject.set_startup_configuration(mock_service_name, options: {startup_type: :SERVICE_DEMAND_START}) }.to raise_error(Puppet::Error)
|
609
609
|
end
|
610
610
|
end
|
611
611
|
|
612
612
|
context "when the service cannot be opened" do
|
613
613
|
let(:service) { FFI::Pointer::NULL_HANDLE }
|
614
614
|
it "raises a puppet error" do
|
615
|
-
expect{ subject.
|
615
|
+
expect{ subject.set_startup_configuration(mock_service_name, options: {startup_type: :SERVICE_DEMAND_START}) }.to raise_error(Puppet::Error)
|
616
616
|
end
|
617
617
|
end
|
618
618
|
|
619
619
|
context "when the service can be opened" do
|
620
620
|
it "Raises an error on an unsuccessful change" do
|
621
621
|
expect(subject).to receive(:ChangeServiceConfigW).and_return(FFI::WIN32_FALSE)
|
622
|
-
expect{ subject.
|
622
|
+
expect{ subject.set_startup_configuration(mock_service_name, options: {startup_type: :SERVICE_DEMAND_START}) }.to raise_error(Puppet::Error)
|
623
623
|
end
|
624
624
|
end
|
625
625
|
end
|
data/spec/unit/util_spec.rb
CHANGED
@@ -299,11 +299,11 @@ describe Puppet::Util do
|
|
299
299
|
expect(uri.to_s.encoding).to eq(expected_encoding)
|
300
300
|
expect(uri.path).to eq("/foo+foo%20bar")
|
301
301
|
# either + or %20 is correct for an encoded space in query
|
302
|
-
# + is usually used for backward compatibility, but %20 is preferred for compat with
|
302
|
+
# + is usually used for backward compatibility, but %20 is preferred for compat with Puppet::Util.uri_unescape
|
303
303
|
expect(uri.query).to eq("foo%2Bfoo%20bar")
|
304
304
|
# complete roundtrip
|
305
|
-
expect(
|
306
|
-
expect(
|
305
|
+
expect(Puppet::Util.uri_unescape(uri.to_s).sub(%r{^file:(//)?}, '')).to eq(path)
|
306
|
+
expect(Puppet::Util.uri_unescape(uri.to_s).encoding).to eq(expected_encoding)
|
307
307
|
end
|
308
308
|
|
309
309
|
it "should perform UTF-8 URI escaping" do
|
data/tasks/manpages.rake
CHANGED
@@ -1,27 +1,17 @@
|
|
1
|
-
# require 'fileutils'
|
2
|
-
|
3
1
|
desc "Build Puppet manpages"
|
4
2
|
task :gen_manpages do
|
5
3
|
require 'puppet/face'
|
6
4
|
require 'fileutils'
|
7
5
|
|
8
|
-
|
9
|
-
# as a clear, well-defined entry-point into the code and could be
|
10
|
-
# responsible for state management all on their own; this really should
|
11
|
-
# not be necessary. When we can, we should get rid of it.
|
12
|
-
# --cprice 2012-05-16
|
13
|
-
Puppet.initialize_settings()
|
14
|
-
|
6
|
+
Puppet.initialize_settings
|
15
7
|
helpface = Puppet::Face[:help, '0.0.1']
|
16
|
-
manface = Puppet::Face[:man, '0.0.1']
|
17
8
|
|
18
|
-
sbins = Dir.glob(%w{sbin/*})
|
19
9
|
bins = Dir.glob(%w{bin/*})
|
20
10
|
non_face_applications = helpface.legacy_applications
|
21
11
|
faces = Puppet::Face.faces.map(&:to_s)
|
22
12
|
apps = non_face_applications + faces
|
23
13
|
|
24
|
-
ronn_args = '--manual="Puppet manual" --organization="Puppet, Inc."
|
14
|
+
ronn_args = '--manual="Puppet manual" --organization="Puppet, Inc." --roff'
|
25
15
|
|
26
16
|
# Locate ronn
|
27
17
|
begin
|
@@ -35,14 +25,6 @@ task :gen_manpages do
|
|
35
25
|
abort("Ronn does not appear to be installed")
|
36
26
|
end
|
37
27
|
|
38
|
-
# def write_manpage(text, filename)
|
39
|
-
# IO.popen("#{ronn} #{ronn_args} -r > #{filename}") do |fh| fh.write text end
|
40
|
-
# end
|
41
|
-
|
42
|
-
# Create puppet.conf.5 man page
|
43
|
-
# IO.popen("#{ronn} #{ronn_args} > ./man/man5/puppet.conf.5", 'w') do |fh|
|
44
|
-
# fh.write %x{RUBYLIB=./lib:$RUBYLIB bin/puppetdoc --reference configuration}
|
45
|
-
# end
|
46
28
|
%x{mkdir -p ./man/man5 ./man/man8}
|
47
29
|
%x{RUBYLIB=./lib:$RUBYLIB bin/puppet doc --reference configuration > ./man/man5/puppetconf.5.ronn}
|
48
30
|
%x{#{ronn} #{ronn_args} ./man/man5/puppetconf.5.ronn}
|
@@ -50,31 +32,19 @@ task :gen_manpages do
|
|
50
32
|
FileUtils.rm("./man/man5/puppetconf.5.ronn")
|
51
33
|
|
52
34
|
# Create LEGACY binary man pages (i.e. delete me for 2.8.0)
|
53
|
-
|
54
|
-
binary.each do |bin|
|
35
|
+
bins.each do |bin|
|
55
36
|
b = bin.gsub( /^s?bin\//, "")
|
56
37
|
%x{RUBYLIB=./lib:$RUBYLIB #{bin} --help > ./man/man8/#{b}.8.ronn}
|
57
38
|
%x{#{ronn} #{ronn_args} ./man/man8/#{b}.8.ronn}
|
58
39
|
FileUtils.rm("./man/man8/#{b}.8.ronn")
|
59
40
|
end
|
60
41
|
|
61
|
-
|
62
|
-
|
63
|
-
%x{RUBYLIB=./lib:$RUBYLIB bin/puppet #{app} --help > ./man/man8/puppet-#{app}.8.ronn}
|
42
|
+
apps.each do |app|
|
43
|
+
%x{RUBYLIB=./lib:$RUBYLIB bin/puppet help #{app} --ronn > ./man/man8/puppet-#{app}.8.ronn}
|
64
44
|
%x{#{ronn} #{ronn_args} ./man/man8/puppet-#{app}.8.ronn}
|
65
45
|
FileUtils.rm("./man/man8/puppet-#{app}.8.ronn")
|
66
46
|
end
|
67
47
|
|
68
|
-
# Create face man pages
|
69
|
-
faces.each do |face|
|
70
|
-
File.open("./man/man8/puppet-#{face}.8.ronn", 'w') do |fh|
|
71
|
-
fh.write manface.man("#{face}")
|
72
|
-
end
|
73
|
-
|
74
|
-
%x{#{ronn} #{ronn_args} ./man/man8/puppet-#{face}.8.ronn}
|
75
|
-
FileUtils.rm("./man/man8/puppet-#{face}.8.ronn")
|
76
|
-
end
|
77
|
-
|
78
48
|
# Delete orphaned manpages if binary was deleted
|
79
49
|
Dir.glob(%w{./man/man8/puppet-*.8}) do |app|
|
80
50
|
appname = app.match(/puppet-(.*)\.8/)[1]
|