puppet 6.14.0-x64-mingw32 → 6.19.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +36 -34
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +25 -9
- 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/filebucket.rb +5 -14
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/configurer.rb +68 -24
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +1 -1
- 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 +141 -41
- data/lib/puppet/environments.rb +55 -15
- 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 +2 -2
- 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 +17 -13
- 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/call.rb +1 -1
- 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/reduce.rb +2 -4
- 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 +3 -0
- data/lib/puppet/http/client.rb +215 -60
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +43 -3
- data/lib/puppet/http/resolver/server_list.rb +66 -24
- data/lib/puppet/http/resolver/settings.rb +21 -1
- data/lib/puppet/http/resolver/srv.rb +28 -2
- data/lib/puppet/http/response.rb +82 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +70 -2
- data/lib/puppet/http/service/ca.rb +71 -9
- data/lib/puppet/http/service/compiler.rb +214 -12
- data/lib/puppet/http/service/file_server.rb +106 -5
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/service/report.rb +36 -3
- data/lib/puppet/http/session.rb +60 -8
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +2 -1
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
- 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 +6 -4
- 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/node/rest.rb +2 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/status/rest.rb +2 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +80 -80
- 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/base_pool.rb +6 -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/pool.rb +2 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +22 -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 +30 -31
- 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 +43 -33
- 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 +18 -9
- 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 +24 -15
- 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/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +98 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +61 -14
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +45 -9
- data/lib/puppet/provider/package/pacman.rb +2 -5
- data/lib/puppet/provider/package/pip.rb +143 -48
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pip3.rb +0 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +16 -4
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +11 -2
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +101 -20
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +22 -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 +15 -9
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +20 -6
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/host.rb +4 -4
- data/lib/puppet/ssl/oids.rb +1 -0
- 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 +79 -37
- 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 +14 -10
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +35 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +41 -3
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -29
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +13 -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/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/pidlock.rb +13 -7
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/adsi.rb +2 -2
- 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/process.rb +15 -14
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +5 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +627 -507
- data/man/man5/puppet.conf.5 +93 -20
- 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/ssl/unknown-127.0.0.1-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
- data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-ca.pem +59 -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-installed.txt → dnf-module-list.txt} +8 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/integration/application/agent_spec.rb +479 -0
- data/spec/integration/application/apply_spec.rb +279 -150
- 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 +239 -0
- 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 +123 -0
- 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 +39 -40
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/network/http_pool_spec.rb +84 -19
- data/spec/integration/node/environment_spec.rb +15 -0
- 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 +8 -3
- 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/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +16 -7
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +127 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/device_spec.rb +2 -2
- 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/filebucket_spec.rb +22 -2
- 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 +87 -38
- 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/defaults_spec.rb +24 -1
- data/spec/unit/environments_spec.rb +107 -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 +11 -2
- data/spec/unit/http/client_spec.rb +173 -59
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +44 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +27 -5
- data/spec/unit/http/service/compiler_spec.rb +186 -9
- data/spec/unit/http/service/file_server_spec.rb +37 -6
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +5 -4
- data/spec/unit/http/service_spec.rb +3 -4
- data/spec/unit/http/session_spec.rb +48 -12
- 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_bucket_file/rest_spec.rb +82 -2
- 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 +3 -3
- 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 +33 -0
- 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/group/windows_adsi_spec.rb +43 -10
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +107 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +68 -19
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +38 -0
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +274 -1
- 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 +95 -18
- 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 +85 -3
- data/spec/unit/puppet_pal_2pec.rb +11 -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 +70 -52
- 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 +44 -22
- data/spec/unit/ssl/host_spec.rb +4 -2
- data/spec/unit/ssl/oids_spec.rb +1 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +90 -14
- 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 +7 -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/at_fork_spec.rb +2 -2
- 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/debian_spec.rb +83 -0
- data/spec/unit/util/package/version/pip_spec.rb +464 -0
- data/spec/unit/util/package/version/range_spec.rb +175 -0
- data/spec/unit/util/package/version/rpm_spec.rb +121 -0
- data/spec/unit/util/pidlock_spec.rb +83 -47
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/adsi_spec.rb +4 -4
- 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/windows/sid_spec.rb +2 -2
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/generate_cert_fixtures.rake +15 -1
- data/tasks/manpages.rake +5 -35
- metadata +90 -51
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/faces/plugin_spec.rb +0 -63
- 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 -64
- 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
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
test_title = 'Integration Tests for Puppet::Type::Service::Provider::Systemd'
|
4
|
-
|
5
|
-
describe test_title, unless: Puppet::Util::Platform.jruby? do
|
6
|
-
let(:provider_class) { Puppet::Type.type(:service).provider(:systemd) }
|
7
|
-
|
8
|
-
# TODO: Unfortunately there does not seem a way to stub the executable
|
9
|
-
# checks in the systemd provider because they happen at load time.
|
10
|
-
|
11
|
-
it "should be considered suitable if /proc/1/comm is present and contains 'systemd'",
|
12
|
-
:if => File.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
|
13
|
-
expect(provider_class).to be_suitable
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should not be considered suitable if /proc/1/comm is present it does not contain 'systemd'",
|
17
|
-
:if => File.exist?('/proc/1/comm') && !Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
|
18
|
-
expect(provider_class).not_to be_suitable
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should not be considered suitable if /proc/1/comm is absent",
|
22
|
-
:if => !File.exist?('/proc/1/comm') do
|
23
|
-
expect(provider_class).not_to be_suitable
|
24
|
-
end
|
25
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
test_title = 'Integration Tests for Puppet::Type::Service::Provider::Windows'
|
4
|
-
|
5
|
-
describe test_title, '(integration)', :if => Puppet::Util::Platform.windows? do
|
6
|
-
let(:provider_class) { Puppet::Type.type(:service).provider(:windows) }
|
7
|
-
|
8
|
-
require 'puppet/util/windows'
|
9
|
-
|
10
|
-
before :each do
|
11
|
-
allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class)
|
12
|
-
end
|
13
|
-
|
14
|
-
context 'should return valid values when querying a service that does not exist' do
|
15
|
-
let(:service) do
|
16
|
-
Puppet::Type.type(:service).new(:name => 'foobarservice1234')
|
17
|
-
end
|
18
|
-
|
19
|
-
it "with :false when asked if enabled" do
|
20
|
-
expect(service.provider.enabled?).to eql(:false)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "with :stopped when asked about status" do
|
24
|
-
expect(service.provider.status).to eql(:stopped)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'should return valid values when querying a service that does exist' do
|
29
|
-
let(:service) do
|
30
|
-
# This service should be ubiquitous across all supported Windows platforms
|
31
|
-
Puppet::Type.type(:service).new(:name => 'lmhosts')
|
32
|
-
end
|
33
|
-
|
34
|
-
it "with a valid enabled? value when asked if enabled" do
|
35
|
-
expect([:true, :false, :manual]).to include(service.provider.enabled?)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "with a valid status when asked about status" do
|
39
|
-
expect([
|
40
|
-
:running,
|
41
|
-
:'continue pending',
|
42
|
-
:'pause pending',
|
43
|
-
:paused,
|
44
|
-
:running,
|
45
|
-
:'start pending',
|
46
|
-
:'stop pending',
|
47
|
-
:stopped]).to include(service.provider.status)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'puppet/util/reference'
|
4
|
-
|
5
|
-
reference = Puppet::Util::Reference.reference(:providers)
|
6
|
-
|
7
|
-
describe reference do
|
8
|
-
it "should exist" do
|
9
|
-
expect(reference).not_to be_nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should be able to be rendered as markdown" do
|
13
|
-
# We have a :confine block that calls execute in our upstart provider, which fails
|
14
|
-
# on jruby. Thus, we stub it out here since we don't care to do any assertions on it.
|
15
|
-
# This is only an issue if you're running these unit tests on a platform where upstart
|
16
|
-
# is a default provider, like Ubuntu trusty.
|
17
|
-
allow(Puppet::Util::Execution).to receive(:execute)
|
18
|
-
|
19
|
-
reference.to_markdown
|
20
|
-
end
|
21
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'puppet/reports'
|
4
|
-
|
5
|
-
describe Puppet::Reports, " when using report types" do
|
6
|
-
before do
|
7
|
-
allow(Puppet.settings).to receive(:use)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should load report types as modules" do
|
11
|
-
expect(Puppet::Reports.report(:store)).to be_instance_of(Module)
|
12
|
-
end
|
13
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'puppet/ssl/certificate_request'
|
4
|
-
|
5
|
-
describe Puppet::SSL::CertificateRequest do
|
6
|
-
include PuppetSpec::Files
|
7
|
-
|
8
|
-
before do
|
9
|
-
# Get a safe temporary file
|
10
|
-
dir = tmpdir("csr_integration_testing")
|
11
|
-
|
12
|
-
Puppet.settings[:confdir] = dir
|
13
|
-
Puppet.settings[:vardir] = dir
|
14
|
-
|
15
|
-
@csr = Puppet::SSL::CertificateRequest.new("luke.madstop.com")
|
16
|
-
|
17
|
-
@key = OpenSSL::PKey::RSA.new(512)
|
18
|
-
|
19
|
-
# This is necessary so the terminus instances don't lie around.
|
20
|
-
Puppet::SSL::CertificateRequest.indirection.termini.clear
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should be able to generate CSRs" do
|
24
|
-
@csr.generate(@key)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should be able to save CSRs" do
|
28
|
-
Puppet::SSL::CertificateRequest.indirection.save(@csr)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should be able to find saved certificate requests via the Indirector" do
|
32
|
-
@csr.generate(@key)
|
33
|
-
Puppet::SSL::CertificateRequest.indirection.save(@csr)
|
34
|
-
|
35
|
-
expect(Puppet::SSL::CertificateRequest.indirection.find("luke.madstop.com")).to be_instance_of(Puppet::SSL::CertificateRequest)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should save the completely CSR when saving" do
|
39
|
-
@csr.generate(@key)
|
40
|
-
Puppet::SSL::CertificateRequest.indirection.save(@csr)
|
41
|
-
|
42
|
-
expect(Puppet::SSL::CertificateRequest.indirection.find("luke.madstop.com").content.to_s).to eq(@csr.content.to_s)
|
43
|
-
end
|
44
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'puppet/test_ca'
|
3
|
-
|
4
|
-
require 'puppet/ssl/host'
|
5
|
-
|
6
|
-
describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
|
7
|
-
include PuppetSpec::Files
|
8
|
-
|
9
|
-
before do
|
10
|
-
# Get a safe temporary file
|
11
|
-
dir = tmpdir("host_integration_testing")
|
12
|
-
|
13
|
-
Puppet.settings[:confdir] = dir
|
14
|
-
Puppet.settings[:vardir] = dir
|
15
|
-
Puppet.settings.use :main, :ssl
|
16
|
-
|
17
|
-
@host = Puppet::SSL::Host.new("luke.madstop.com")
|
18
|
-
allow(@host).to receive(:submit_certificate_request)
|
19
|
-
|
20
|
-
@ca = Puppet::TestCa.new
|
21
|
-
Puppet::Util.replace_file(Puppet[:localcacert], 0644) do |f|
|
22
|
-
f.write(@ca.ca_cert.to_s)
|
23
|
-
end
|
24
|
-
Puppet::Util.replace_file(Puppet[:hostcrl], 0644) do |f|
|
25
|
-
f.write(@ca.ca_crl.to_s)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "when managing its key" do
|
30
|
-
it "should be able to generate and save a key" do
|
31
|
-
@host.generate_key
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should save the key such that the Indirector can find it" do
|
35
|
-
@host.generate_key
|
36
|
-
|
37
|
-
expect(Puppet::SSL::Key.indirection.find(@host.name).content.to_s).to eq(@host.key.to_s)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should save the private key into the :privatekeydir" do
|
41
|
-
@host.generate_key
|
42
|
-
expect(File.read(File.join(Puppet.settings[:privatekeydir], "luke.madstop.com.pem"))).to eq(@host.key.to_s)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe "when managing its certificate request" do
|
47
|
-
it "should be able to generate and save a certificate request" do
|
48
|
-
@host.generate_certificate_request
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should save the certificate request such that the Indirector can find it" do
|
52
|
-
@host.generate_certificate_request
|
53
|
-
|
54
|
-
expect(Puppet::SSL::CertificateRequest.indirection.find(@host.name).content.to_s).to eq(@host.certificate_request.to_s)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should save the private certificate request into the :privatekeydir" do
|
58
|
-
@host.generate_certificate_request
|
59
|
-
expect(File.read(File.join(Puppet.settings[:requestdir], "luke.madstop.com.pem"))).to eq(@host.certificate_request.to_s)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should pass the verification of its own SSL store", :unless => Puppet.features.microsoft_windows? do
|
64
|
-
@host.generate_certificate_request
|
65
|
-
cert = @ca.sign(@host.certificate_request.content)
|
66
|
-
Puppet::Util.replace_file(File.join(Puppet[:certdir], "#{@host.name}.pem"), 0644) do |f|
|
67
|
-
f.write(cert)
|
68
|
-
end
|
69
|
-
|
70
|
-
expect(@host.ssl_store.verify(@host.certificate.content)).to be_truthy
|
71
|
-
end
|
72
|
-
end
|
@@ -1,99 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'puppet/ssl/key'
|
4
|
-
|
5
|
-
describe Puppet::SSL::Key, unless: Puppet::Util::Platform.jruby? do
|
6
|
-
include PuppetSpec::Files
|
7
|
-
|
8
|
-
# different UTF-8 widths
|
9
|
-
# 1-byte A
|
10
|
-
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
11
|
-
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
12
|
-
# 4-byte - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
13
|
-
let (:mixed_utf8) { "A\u06FF\u16A0\u{2070E}" } # Aۿᚠ
|
14
|
-
|
15
|
-
before do
|
16
|
-
# Get a safe temporary file
|
17
|
-
dir = tmpdir('key_integration_testing')
|
18
|
-
|
19
|
-
Puppet.settings[:confdir] = dir
|
20
|
-
Puppet.settings[:vardir] = dir
|
21
|
-
|
22
|
-
# This is necessary so the terminus instances don't lie around.
|
23
|
-
# and so that Puppet::SSL::Key.indirection.save may be used
|
24
|
-
Puppet::SSL::Key.indirection.termini.clear
|
25
|
-
end
|
26
|
-
|
27
|
-
describe 'with a custom user-specified passfile' do
|
28
|
-
|
29
|
-
before do
|
30
|
-
# write custom password file to where Puppet expects
|
31
|
-
password_file = tmpfile('passfile')
|
32
|
-
Puppet[:passfile] = password_file
|
33
|
-
Puppet::FileSystem.open(password_file, nil, 'w:UTF-8') { |f| f.print(mixed_utf8) }
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should use the configured password file if it is not the CA key' do
|
37
|
-
key = Puppet::SSL::Key.new('test')
|
38
|
-
expect(key.password_file).to eq(Puppet[:passfile])
|
39
|
-
expect(key.password).to eq(mixed_utf8.force_encoding(Encoding::BINARY))
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should be able to read an existing private key given the correct password" do
|
43
|
-
key_name = 'test'
|
44
|
-
# use OpenSSL APIs to generate a private key
|
45
|
-
private_key = OpenSSL::PKey::RSA.generate(512)
|
46
|
-
|
47
|
-
# stash it in Puppets private key directory
|
48
|
-
FileUtils.mkdir_p(Puppet[:privatekeydir])
|
49
|
-
pem_path = File.join(Puppet[:privatekeydir], "#{key_name}.pem")
|
50
|
-
Puppet::FileSystem.open(pem_path, nil, 'w:UTF-8') do |f|
|
51
|
-
# with password protection enabled
|
52
|
-
pem = private_key.to_pem(OpenSSL::Cipher::DES.new(:EDE3, :CBC), mixed_utf8)
|
53
|
-
f.print(pem)
|
54
|
-
end
|
55
|
-
|
56
|
-
# indirector loads existing .pem off disk instead of replacing it
|
57
|
-
host = Puppet::SSL::Host.new(key_name)
|
58
|
-
host.key
|
59
|
-
|
60
|
-
# newly loaded host private key matches the manually created key
|
61
|
-
# Private-Key: (512 bit) style data
|
62
|
-
expect(host.key.content.to_text).to eq(private_key.to_text)
|
63
|
-
# -----BEGIN RSA PRIVATE KEY-----
|
64
|
-
expect(host.key.content.to_s).to eq(private_key.to_s)
|
65
|
-
expect(host.key.password).to eq(mixed_utf8.force_encoding(Encoding::BINARY))
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'should export the private key to PEM using the password' do
|
69
|
-
key_name = 'test'
|
70
|
-
|
71
|
-
# uses specified :passfile when writing the private key
|
72
|
-
key = Puppet::SSL::Key.new(key_name)
|
73
|
-
key.generate
|
74
|
-
Puppet::SSL::Key.indirection.save(key)
|
75
|
-
|
76
|
-
# indirector writes file here
|
77
|
-
pem_path = File.join(Puppet[:privatekeydir], "#{key_name}.pem")
|
78
|
-
|
79
|
-
# note incorrect password is an error
|
80
|
-
expect do
|
81
|
-
Puppet::FileSystem.open(pem_path, nil, 'r:ASCII') do |f|
|
82
|
-
OpenSSL::PKey::RSA.new(f.read, 'invalid_password')
|
83
|
-
end
|
84
|
-
end.to raise_error(OpenSSL::PKey::RSAError)
|
85
|
-
|
86
|
-
# but when specifying the correct password
|
87
|
-
reloaded_key = nil
|
88
|
-
Puppet::FileSystem.open(pem_path, nil, 'r:ASCII') do |f|
|
89
|
-
reloaded_key = OpenSSL::PKey::RSA.new(f.read, mixed_utf8)
|
90
|
-
end
|
91
|
-
|
92
|
-
# the original key matches the manually reloaded key
|
93
|
-
# Private-Key: (512 bit) style data
|
94
|
-
expect(key.content.to_text).to eq(reloaded_key.to_text)
|
95
|
-
# -----BEGIN RSA PRIVATE KEY-----
|
96
|
-
expect(key.content.to_s).to eq(reloaded_key.to_s)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Windows UTF8 environment variables", :if => Puppet::Util::Platform.windows? do
|
4
|
-
# The Puppet::Util::Windows::Process class is used to manipulate environment variables as it is known to handle UTF8 characters. Where as the implementation of ENV in ruby does not.
|
5
|
-
# before and end all are used to inject environment variables before the test helper 'before_each_test' function is called
|
6
|
-
# Do not use before and after hooks in these tests as it may have unintended consequences
|
7
|
-
|
8
|
-
before(:all) {
|
9
|
-
@varname = 'test_helper_spec-test_variable'
|
10
|
-
@rune_utf8 = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
|
11
|
-
|
12
|
-
Puppet::Util::Windows::Process.set_environment_variable(@varname, @rune_utf8)
|
13
|
-
}
|
14
|
-
after(:all) {
|
15
|
-
# Need to cleanup this environment variable otherwise it contaminates any subsequent tests
|
16
|
-
Puppet::Util::Windows::Process.set_environment_variable(@varname, nil)
|
17
|
-
}
|
18
|
-
|
19
|
-
it "#after_each_test should preserve UTF8 environment variables" do
|
20
|
-
envhash = Puppet::Util::Windows::Process.get_environment_strings
|
21
|
-
expect(envhash[@varname]).to eq(@rune_utf8)
|
22
|
-
# Change the value in the test to force test_helper to restore the environment
|
23
|
-
ENV[@varname] = 'bad foo'
|
24
|
-
|
25
|
-
# Prematurely trigger the after_each_test method
|
26
|
-
Puppet::Test::TestHelper.after_each_test
|
27
|
-
|
28
|
-
envhash = Puppet::Util::Windows::Process.get_environment_strings
|
29
|
-
expect(envhash[@varname]).to eq(@rune_utf8)
|
30
|
-
end
|
31
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
shared_examples_for "a file_serving model" do
|
2
|
-
include PuppetSpec::Files
|
3
|
-
|
4
|
-
describe "#indirection" do
|
5
|
-
localpath = PuppetSpec::Files.make_absolute("/etc/sudoers")
|
6
|
-
localurl = "file://" + localpath
|
7
|
-
|
8
|
-
before :each do
|
9
|
-
# Never connect to the network, no matter what
|
10
|
-
allow_any_instance_of(described_class.indirection.terminus(:rest).class).to receive(:find)
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "when running the apply application" do
|
14
|
-
before :each do
|
15
|
-
Puppet[:default_file_terminus] = 'file_server'
|
16
|
-
end
|
17
|
-
|
18
|
-
{
|
19
|
-
localpath => :file,
|
20
|
-
localurl => :file,
|
21
|
-
"puppet:///modules/foo/bar" => :file_server,
|
22
|
-
"puppet://server/modules/foo/bar" => :rest,
|
23
|
-
}.each do |key, terminus|
|
24
|
-
it "should use the #{terminus} terminus when requesting #{key.inspect}" do
|
25
|
-
expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
|
26
|
-
|
27
|
-
described_class.indirection.find(key)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "when running another application" do
|
33
|
-
before :each do
|
34
|
-
Puppet[:default_file_terminus] = 'rest'
|
35
|
-
end
|
36
|
-
|
37
|
-
{
|
38
|
-
localpath => :file,
|
39
|
-
localurl => :file,
|
40
|
-
"puppet:///modules/foo/bar" => :rest,
|
41
|
-
"puppet://server/modules/foo/bar" => :rest,
|
42
|
-
}.each do |key, terminus|
|
43
|
-
it "should use the #{terminus} terminus when requesting #{key.inspect}" do
|
44
|
-
expect_any_instance_of(described_class.indirection.terminus(terminus).class).to receive(:find)
|
45
|
-
|
46
|
-
described_class.indirection.find(key)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
data/spec/unit/face/man_spec.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'puppet/face'
|
3
|
-
|
4
|
-
describe Puppet::Face[:man, '0.0.1'] do
|
5
|
-
it 'should be deprecated' do
|
6
|
-
expect(subject.deprecated?).to be_truthy
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'has a man action' do
|
10
|
-
expect(subject).to be_action(:man)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'has a default action of man' do
|
14
|
-
expect(subject.get_action('man')).to be_default
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'accepts a call with no arguments' do
|
18
|
-
expect { subject.man() }.to have_printed(/USAGE: puppet man <action>/)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'raises an ArgumentError when given to many arguments' do
|
22
|
-
allow(subject).to receive(:print_man_help)
|
23
|
-
expect { subject.man(:man, 'cert', 'extra') }.to raise_error(ArgumentError)
|
24
|
-
end
|
25
|
-
end
|
data/spec/unit/man_spec.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'puppet/face'
|
3
|
-
|
4
|
-
describe Puppet::Face[:man, :current] do
|
5
|
-
let(:pager) { '/path/to/our/pager' }
|
6
|
-
|
7
|
-
around do |example|
|
8
|
-
oldpager = ENV['MANPAGER']
|
9
|
-
ENV['MANPAGER'] = pager
|
10
|
-
example.run
|
11
|
-
ENV['MANPAGER'] = oldpager
|
12
|
-
end
|
13
|
-
|
14
|
-
it "exits with 0 when generating man documentation for each available application" do
|
15
|
-
allow(Puppet::Util).to receive(:which).with('ronn').and_return(nil)
|
16
|
-
allow(Puppet::Util).to receive(:which).with(pager).and_return(pager)
|
17
|
-
|
18
|
-
Puppet::Application.available_application_names.each do |name|
|
19
|
-
next if %w{man face_base indirection_base}.include? name
|
20
|
-
|
21
|
-
klass = Puppet::Application.find('man')
|
22
|
-
app = klass.new(Puppet::Util::CommandLine.new('puppet', ['man', name]))
|
23
|
-
|
24
|
-
expect do
|
25
|
-
allow(IO).to receive(:popen).with(pager, 'w:UTF-8').and_yield($stdout)
|
26
|
-
|
27
|
-
expect { app.run }.to exit_with(0)
|
28
|
-
end.to_not have_printed(/undefined method `gsub'/)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|