puppet 6.17.0-universal-darwin → 7.1.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +3 -4
- data/Gemfile.lock +32 -30
- data/README.md +2 -3
- data/Rakefile +4 -12
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +2 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +8 -3
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +46 -19
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +116 -162
- data/lib/puppet/environments.rb +72 -62
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +10 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- 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_system/file_impl.rb +3 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.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/generate/models/type/type.rb +4 -1
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +23 -13
- data/lib/puppet/http/client.rb +165 -115
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +10 -23
- data/lib/puppet/http/resolver/server_list.rb +23 -45
- data/lib/puppet/http/resolver/settings.rb +7 -10
- data/lib/puppet/http/resolver/srv.rb +11 -15
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +15 -27
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -70
- data/lib/puppet/http/service/file_server.rb +19 -28
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +16 -24
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +27 -6
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +1 -102
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +93 -14
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- 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 +22 -8
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- 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/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- 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/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +28 -52
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -11
- data/lib/puppet/provider/package/gem.rb +27 -5
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +6 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +5 -120
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +84 -35
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +11 -6
- data/lib/puppet/transaction.rb +3 -9
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +10 -8
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -79
- data/lib/puppet/type/file.rb +7 -9
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +29 -9
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +19 -4
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/posix.rb +53 -4
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +14 -2
- data/lib/puppet/util/windows.rb +3 -7
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +219 -0
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +656 -1351
- data/man/man5/puppet.conf.5 +72 -97
- data/man/man8/puppet-agent.8 +6 -3
- 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 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -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.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/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +70 -61
- data/spec/integration/application/apply_spec.rb +150 -150
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +78 -29
- data/spec/integration/application/help_spec.rb +44 -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 +76 -4
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +32 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +2 -2
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +9 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/config_spec.rb +224 -4
- 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 +74 -8
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +17 -4
- data/spec/unit/application_spec.rb +43 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +96 -44
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +26 -32
- data/spec/unit/environments_spec.rb +173 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +16 -4
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- 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_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -9
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +34 -15
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -65
- data/spec/unit/http/service/file_server_spec.rb +5 -6
- data/spec/unit/http/service/puppetserver_spec.rb +112 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -3
- data/spec/unit/http/session_spec.rb +24 -35
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- 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/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +2 -266
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +51 -22
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +76 -21
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- 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/dpkg_spec.rb +22 -55
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- 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/puppet_gem_spec.rb +6 -2
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -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 +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +402 -166
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +28 -1
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +0 -56
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +586 -239
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +2 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +1 -2
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +35 -2
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +357 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +0 -18
- metadata +84 -205
- data/conf/auth.conf +0 -150
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -295
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- 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/network/authconfig_spec.rb +0 -256
- 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/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -79
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/man_spec.rb +0 -31
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -143
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -650
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/ssl_spec.rb +0 -91
@@ -151,7 +151,7 @@ describe 'The type factory' do
|
|
151
151
|
expect(hc.class_name).to eq('x')
|
152
152
|
end
|
153
153
|
|
154
|
-
it 'array_of(
|
154
|
+
it 'array_of(integer) returns PArrayType[PIntegerType]' do
|
155
155
|
at = TypeFactory.array_of(1)
|
156
156
|
expect(at.class()).to eq(PArrayType)
|
157
157
|
expect(at.element_type.class).to eq(PIntegerType)
|
@@ -179,17 +179,17 @@ describe "validating 4x" do
|
|
179
179
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::DUPLICATE_KEY)
|
180
180
|
end
|
181
181
|
|
182
|
-
it 'produces
|
182
|
+
it 'produces an error for virtual class resource' do
|
183
183
|
acceptor = validate(parse('@class { test: }'))
|
184
|
-
expect(acceptor.warning_count).to eql(
|
185
|
-
expect(acceptor.error_count).to eql(
|
184
|
+
expect(acceptor.warning_count).to eql(0)
|
185
|
+
expect(acceptor.error_count).to eql(1)
|
186
186
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
187
187
|
end
|
188
188
|
|
189
|
-
it 'produces
|
189
|
+
it 'produces an error for exported class resource' do
|
190
190
|
acceptor = validate(parse('@@class { test: }'))
|
191
|
-
expect(acceptor.warning_count).to eql(
|
192
|
-
expect(acceptor.error_count).to eql(
|
191
|
+
expect(acceptor.warning_count).to eql(0)
|
192
|
+
expect(acceptor.error_count).to eql(1)
|
193
193
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
194
194
|
end
|
195
195
|
|
@@ -310,17 +310,17 @@ describe "validating 4x" do
|
|
310
310
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::DUPLICATE_DEFAULT)
|
311
311
|
end
|
312
312
|
|
313
|
-
it 'produces
|
313
|
+
it 'produces an error for virtual class resource' do
|
314
314
|
acceptor = validate(parse('@class { test: }'))
|
315
|
-
expect(acceptor.warning_count).to eql(
|
316
|
-
expect(acceptor.error_count).to eql(
|
315
|
+
expect(acceptor.warning_count).to eql(0)
|
316
|
+
expect(acceptor.error_count).to eql(1)
|
317
317
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
318
318
|
end
|
319
319
|
|
320
|
-
it 'produces
|
320
|
+
it 'produces an error for exported class resource' do
|
321
321
|
acceptor = validate(parse('@@class { test: }'))
|
322
|
-
expect(acceptor.warning_count).to eql(
|
323
|
-
expect(acceptor.error_count).to eql(
|
322
|
+
expect(acceptor.warning_count).to eql(0)
|
323
|
+
expect(acceptor.error_count).to eql(1)
|
324
324
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
325
325
|
end
|
326
326
|
end
|
@@ -344,16 +344,16 @@ describe "validating 4x" do
|
|
344
344
|
end
|
345
345
|
end
|
346
346
|
|
347
|
-
it 'produces
|
348
|
-
|
349
|
-
|
350
|
-
|
347
|
+
it 'produces a syntax error for application' do
|
348
|
+
expect {
|
349
|
+
parse('application test {}')
|
350
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'application'/)
|
351
351
|
end
|
352
352
|
|
353
|
-
it 'produces
|
354
|
-
|
355
|
-
|
356
|
-
|
353
|
+
it 'produces a syntax error for capability mapping' do
|
354
|
+
expect {
|
355
|
+
parse('Foo produces Sql {}')
|
356
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'produces'/)
|
357
357
|
end
|
358
358
|
|
359
359
|
it 'produces an error for collect expressions with virtual query' do
|
@@ -410,10 +410,10 @@ describe "validating 4x" do
|
|
410
410
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::EXPRESSION_NOT_SUPPORTED_WHEN_SCRIPTING)
|
411
411
|
end
|
412
412
|
|
413
|
-
it 'produces
|
414
|
-
|
415
|
-
|
416
|
-
|
413
|
+
it 'produces a syntax error for site definitions' do
|
414
|
+
expect {
|
415
|
+
parse('site {}')
|
416
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'site'/)
|
417
417
|
end
|
418
418
|
|
419
419
|
context 'validating apply() blocks' do
|
@@ -468,16 +468,16 @@ describe "validating 4x" do
|
|
468
468
|
expect(acceptor.error_count).to eql(0)
|
469
469
|
end
|
470
470
|
|
471
|
-
it 'produces
|
472
|
-
|
473
|
-
|
474
|
-
|
471
|
+
it 'produces a syntax error for application' do
|
472
|
+
expect {
|
473
|
+
parse('apply("foo.example.com") { application test {} }')
|
474
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'application'/)
|
475
475
|
end
|
476
476
|
|
477
|
-
it 'produces
|
478
|
-
|
479
|
-
|
480
|
-
|
477
|
+
it 'produces a syntax error for capability mapping' do
|
478
|
+
expect {
|
479
|
+
parse('apply("foo.example.com") { Foo produces Sql {} }')
|
480
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'produces'/)
|
481
481
|
end
|
482
482
|
|
483
483
|
it 'produces an error for class expressions' do
|
@@ -504,9 +504,9 @@ describe "validating 4x" do
|
|
504
504
|
end
|
505
505
|
|
506
506
|
it 'produces an error for site definitions' do
|
507
|
-
|
508
|
-
|
509
|
-
|
507
|
+
expect {
|
508
|
+
parse('apply("foo.example.com") { site {} }')
|
509
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'site'/)
|
510
510
|
end
|
511
511
|
|
512
512
|
it 'produces an error for apply() inside apply()' do
|
@@ -669,6 +669,15 @@ describe "validating 4x" do
|
|
669
669
|
'regexp',
|
670
670
|
'pattern',
|
671
671
|
'runtime',
|
672
|
+
'init',
|
673
|
+
'object',
|
674
|
+
'sensitive',
|
675
|
+
'semver',
|
676
|
+
'semverrange',
|
677
|
+
'string',
|
678
|
+
'timestamp',
|
679
|
+
'timespan',
|
680
|
+
'typeset',
|
672
681
|
].each do |name|
|
673
682
|
|
674
683
|
it "produces an error for 'class #{name}'" do
|
@@ -693,6 +702,7 @@ describe "validating 4x" do
|
|
693
702
|
source = "type('a', 'b')"
|
694
703
|
expect(validate(parse(source))).not_to have_any_issues
|
695
704
|
end
|
705
|
+
|
696
706
|
it "should allow using the 'type' as the name of a function with no parameters and a block" do
|
697
707
|
source = "type() |$x| { $x }"
|
698
708
|
expect(validate(parse(source))).not_to have_any_issues
|
@@ -968,6 +978,18 @@ describe "validating 4x" do
|
|
968
978
|
end
|
969
979
|
end
|
970
980
|
|
981
|
+
it "allows a reserved type name" do
|
982
|
+
source = <<-SOURCE
|
983
|
+
class foo {
|
984
|
+
define string() {}
|
985
|
+
foo::string { 'a': }
|
986
|
+
}
|
987
|
+
SOURCE
|
988
|
+
|
989
|
+
acceptor = validate(parse(source, 'path/foo/manifests/init.pp'))
|
990
|
+
expect(acceptor.error_count).to eql(0)
|
991
|
+
end
|
992
|
+
|
971
993
|
it "will give multiple errors in one file with multiple issues" do
|
972
994
|
source = <<-SOURCE
|
973
995
|
class foo {}
|
@@ -992,17 +1014,10 @@ describe "validating 4x" do
|
|
992
1014
|
|
993
1015
|
context "capability annotations" do
|
994
1016
|
['produces', 'consumes'].each do |word|
|
995
|
-
it "
|
996
|
-
expect
|
997
|
-
|
998
|
-
|
999
|
-
it "accepts legal resource and capability types in #{word} clauses" do
|
1000
|
-
expect(validate(parse("Foo produces Bar {}"))).to_not have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1001
|
-
expect(validate(parse("Mod::Foo produces ::Mod2::Bar {}"))).to_not have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1002
|
-
end
|
1003
|
-
|
1004
|
-
it "rejects illegal capability types in #{word} clauses" do
|
1005
|
-
expect(validate(parse("Foo produces bar {}"))).to have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1017
|
+
it "raises a syntax error in #{word} clauses" do
|
1018
|
+
expect {
|
1019
|
+
parse("foo #{word} Bar {}")
|
1020
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at '#{word}'/)
|
1006
1021
|
end
|
1007
1022
|
end
|
1008
1023
|
end
|
@@ -39,7 +39,7 @@ describe Puppet::Pops::Visitor do
|
|
39
39
|
|
40
40
|
it "should select method for superclass" do
|
41
41
|
duck_processor = DuckProcessor.new
|
42
|
-
expect(duck_processor.hi(42)).to match(/Howdy
|
42
|
+
expect(duck_processor.hi(42)).to match(/Howdy Integer/)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should select method for superclass" do
|
@@ -49,9 +49,10 @@ describe Puppet::Provider::Exec do
|
|
49
49
|
# we can't reference that in our manifest. Windows PATHs can contain
|
50
50
|
# double quotes and trailing backslashes, which confuse HEREDOC
|
51
51
|
# interpolation below. So sanitize it:
|
52
|
-
ENV['PATH'].split(File::PATH_SEPARATOR)
|
53
|
-
|
54
|
-
|
52
|
+
ENV['PATH'].split(File::PATH_SEPARATOR)
|
53
|
+
.map { |dir| dir.gsub(/"/, '\"').gsub(/\\$/, '') }
|
54
|
+
.map { |dir| Pathname.new(dir).cleanpath.to_s }
|
55
|
+
.join(File::PATH_SEPARATOR)
|
55
56
|
else
|
56
57
|
ENV['PATH']
|
57
58
|
end
|
@@ -149,63 +149,6 @@ describe Puppet::Provider::NameService do
|
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
152
|
-
describe "#listbyname" do
|
153
|
-
it "should be deprecated" do
|
154
|
-
expect(Puppet).to receive(:deprecation_warning).with(/listbyname is deprecated/)
|
155
|
-
described_class.listbyname
|
156
|
-
end
|
157
|
-
|
158
|
-
it "should return a list of users if resource_type is user" do
|
159
|
-
described_class.resource_type = Puppet::Type.type(:user)
|
160
|
-
expect(Puppet::Etc).to receive(:setpwent)
|
161
|
-
allow(Puppet::Etc).to receive(:getpwent).and_return(*users)
|
162
|
-
expect(Puppet::Etc).to receive(:endpwent)
|
163
|
-
expect(described_class.listbyname).to eq(%w{root foo})
|
164
|
-
end
|
165
|
-
|
166
|
-
context "encoding handling" do
|
167
|
-
described_class.resource_type = Puppet::Type.type(:user)
|
168
|
-
|
169
|
-
# These two tests simulate an environment where there are two users with
|
170
|
-
# the same name on disk, but each name is stored on disk in a different
|
171
|
-
# encoding
|
172
|
-
it "should return names with invalid byte sequences replaced with '?'" do
|
173
|
-
allow(Etc).to receive(:getpwent).and_return(*utf_8_mixed_users)
|
174
|
-
expect(invalid_utf_8_jose).to_not be_valid_encoding
|
175
|
-
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::UTF_8) do
|
176
|
-
described_class.listbyname
|
177
|
-
end
|
178
|
-
expect(result).to eq(['root', 'foo', utf_8_jose, escaped_utf_8_jose])
|
179
|
-
end
|
180
|
-
|
181
|
-
it "should return names in their original encoding/bytes if they would not be valid UTF-8" do
|
182
|
-
allow(Etc).to receive(:getpwent).and_return(*latin_1_mixed_users)
|
183
|
-
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::ISO_8859_1) do
|
184
|
-
described_class.listbyname
|
185
|
-
end
|
186
|
-
expect(result).to eq(['root'.force_encoding(Encoding::UTF_8), 'foo'.force_encoding(Encoding::UTF_8), utf_8_jose, valid_latin1_jose])
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
it "should return a list of groups if resource_type is group", :unless => Puppet::Util::Platform.windows? do
|
191
|
-
described_class.resource_type = Puppet::Type.type(:group)
|
192
|
-
expect(Puppet::Etc).to receive(:setgrent)
|
193
|
-
allow(Puppet::Etc).to receive(:getgrent).and_return(*groups)
|
194
|
-
expect(Puppet::Etc).to receive(:endgrent)
|
195
|
-
expect(described_class.listbyname).to eq(%w{root bin})
|
196
|
-
end
|
197
|
-
|
198
|
-
it "should yield if a block given" do
|
199
|
-
yield_results = []
|
200
|
-
described_class.resource_type = Puppet::Type.type(:user)
|
201
|
-
expect(Puppet::Etc).to receive(:setpwent)
|
202
|
-
allow(Puppet::Etc).to receive(:getpwent).and_return(*users)
|
203
|
-
expect(Puppet::Etc).to receive(:endpwent)
|
204
|
-
described_class.listbyname {|x| yield_results << x }
|
205
|
-
expect(yield_results).to eq(%w{root foo})
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
152
|
describe "instances" do
|
210
153
|
it "should return a list of objects in UTF-8 with any invalid characters replaced with '?'" do
|
211
154
|
# These two tests simulate an environment where there are two users with
|
@@ -86,6 +86,83 @@ Version table:
|
|
86
86
|
provider.run_preseed
|
87
87
|
end
|
88
88
|
|
89
|
+
describe ".instances" do
|
90
|
+
before do
|
91
|
+
allow(Puppet::Type::Package::ProviderDpkg).to receive(:instances).and_return([resource])
|
92
|
+
end
|
93
|
+
|
94
|
+
context "when package is manual marked" do
|
95
|
+
before do
|
96
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("#{resource.name}\n")
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'sets mark to manual' do
|
100
|
+
expect(resource).to receive(:mark=).with(:manual)
|
101
|
+
described_class.instances
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'when package is not manual marked ' do
|
106
|
+
before do
|
107
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return('')
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'does not set mark to manual' do
|
111
|
+
expect(resource).not_to receive(:mark=).with(:manual)
|
112
|
+
described_class.instances
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe 'query' do
|
118
|
+
before do
|
119
|
+
allow(provider).to receive(:dpkgquery).and_return("name: #{resource.name}" )
|
120
|
+
end
|
121
|
+
|
122
|
+
context "when package is manual marked" do
|
123
|
+
before do
|
124
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("#{resource.name}\n")
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'sets mark to manual' do
|
128
|
+
result = provider.query
|
129
|
+
expect(result[:mark]).to eql(:manual)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
context 'when package is not manual marked ' do
|
134
|
+
before do
|
135
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return('')
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'does not set mark to manual' do
|
139
|
+
result = provider.query
|
140
|
+
expect(result[:mark]).to be_nil
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
describe 'flush' do
|
146
|
+
|
147
|
+
context "when package is manual marked" do
|
148
|
+
before do
|
149
|
+
provider.mark = :manual
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'does not call aptmark' do
|
153
|
+
expect(provider).not_to receive(:aptmark)
|
154
|
+
provider.flush
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
context 'when package is not manual marked ' do
|
159
|
+
it 'calls aptmark' do
|
160
|
+
expect(described_class).to receive(:aptmark).with('manual', resource.name)
|
161
|
+
provider.flush
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
89
166
|
describe "when installing" do
|
90
167
|
it "should preseed if a responsefile is provided" do
|
91
168
|
resource[:responsefile] = "/my/file"
|
@@ -13,6 +13,7 @@ describe Puppet::Type.type(:package).provider(:aptitude) do
|
|
13
13
|
|
14
14
|
before do
|
15
15
|
allow(Puppet::Util).to receive(:which).with('/usr/bin/dpkg-query').and_return(dpkgquery_path)
|
16
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("")
|
16
17
|
end
|
17
18
|
|
18
19
|
{ :absent => "deinstall ok config-files faff 1.2.3-1\n",
|
@@ -32,7 +32,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
32
32
|
expect(Puppet::Util::Execution).to receive(:execpipe).with(execpipe_args).and_yield(bash_installed_io)
|
33
33
|
|
34
34
|
installed = double('bash')
|
35
|
-
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg).and_return(installed)
|
35
|
+
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg).and_return(installed)
|
36
36
|
|
37
37
|
expect(described_class.instances).to eq([installed])
|
38
38
|
end
|
@@ -41,9 +41,9 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
41
41
|
expect(Puppet::Util::Execution).to receive(:execpipe).with(execpipe_args).and_yield(all_installed_io)
|
42
42
|
|
43
43
|
bash = double('bash')
|
44
|
-
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg).and_return(bash)
|
44
|
+
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg).and_return(bash)
|
45
45
|
vim = double('vim')
|
46
|
-
expect(described_class).to receive(:new).with(:ensure => "2:7.3.547-6ubuntu5", :error => "ok", :desired => "install", :name => "vim", :status => "installed", :provider => :dpkg).and_return(vim)
|
46
|
+
expect(described_class).to receive(:new).with(:ensure => "2:7.3.547-6ubuntu5", :error => "ok", :desired => "install", :name => "vim", :mark => :none, :status => "installed", :provider => :dpkg).and_return(vim)
|
47
47
|
|
48
48
|
expect(described_class.instances).to eq([bash, vim])
|
49
49
|
end
|
@@ -107,7 +107,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
107
107
|
it "returns a hash of the found package status for an installed package" do
|
108
108
|
dpkg_query_execution_with_multiple_args_returns(query_output, args_with_provides,virtual_packages_query_args)
|
109
109
|
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result, args, query_args)
|
110
|
-
expect(provider.query).to eq(:ensure => "2.7.13", :error => "ok", :desired => "install", :name => "python", :status => "installed", :provider => :dpkg)
|
110
|
+
expect(provider.query).to eq(:ensure => "2.7.13", :error => "ok", :desired => "install", :name => "python", :mark => :none, :status => "installed", :provider => :dpkg)
|
111
111
|
end
|
112
112
|
|
113
113
|
it "considers the package absent if the dpkg-query result cannot be interpreted" do
|
@@ -160,6 +160,20 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
160
160
|
expect(provider.query[:mark]).to eq(:hold)
|
161
161
|
end
|
162
162
|
|
163
|
+
it "considers the package held if its state is 'hold'" do
|
164
|
+
dpkg_query_execution_with_multiple_args_returns(query_output.gsub("install","hold"),args_with_provides,virtual_packages_query_args)
|
165
|
+
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result.gsub("install","hold"), args, query_args)
|
166
|
+
expect(provider.query[:ensure]).to eq("2.7.13")
|
167
|
+
expect(provider.query[:mark]).to eq(:hold)
|
168
|
+
end
|
169
|
+
|
170
|
+
it "considers mark status to be none if package is not held" do
|
171
|
+
dpkg_query_execution_with_multiple_args_returns(query_output.gsub("install","ok"),args_with_provides,virtual_packages_query_args)
|
172
|
+
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result.gsub("install","ok"), args, query_args)
|
173
|
+
expect(provider.query[:ensure]).to eq("2.7.13")
|
174
|
+
expect(provider.query[:mark]).to eq(:none)
|
175
|
+
end
|
176
|
+
|
163
177
|
context "regex check for query search" do
|
164
178
|
let(:resource_name) { 'python-email' }
|
165
179
|
let(:resource) { instance_double('Puppet::Type::Package') }
|
@@ -168,10 +182,10 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
168
182
|
allow(resource).to receive(:[]=)
|
169
183
|
end
|
170
184
|
|
171
|
-
it "checks if virtual package regex for query is
|
185
|
+
it "checks if virtual package regex for query is correct and physical package is installed" do
|
172
186
|
dpkg_query_execution_with_multiple_args_returns(query_output,args_with_provides,virtual_packages_query_args)
|
173
187
|
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result, args, query_args)
|
174
|
-
expect(provider.query).to match({:desired=>"install", :ensure=>"2.7.13", :error=>"ok", :name=>"python", :provider
|
188
|
+
expect(provider.query).to match({:desired => "install", :ensure => "2.7.13", :error => "ok", :name => "python", :mark => :none, :provider => :dpkg, :status => "installed"})
|
175
189
|
end
|
176
190
|
|
177
191
|
context "regex check with no partial matching" do
|
@@ -208,7 +222,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
208
222
|
it "returns a hash of the found package status for an installed package" do
|
209
223
|
dpkg_query_execution_returns(bash_installed_output)
|
210
224
|
|
211
|
-
expect(provider.query).to eq({:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg})
|
225
|
+
expect(provider.query).to eq({:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg})
|
212
226
|
end
|
213
227
|
|
214
228
|
it "considers the package absent if the dpkg-query result cannot be interpreted" do
|
@@ -271,6 +285,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
271
285
|
:error => 'ok',
|
272
286
|
:status => 'status',
|
273
287
|
:name => resource_name,
|
288
|
+
:mark => :none,
|
274
289
|
:ensure => 'ensure',
|
275
290
|
:provider => :dpkg,
|
276
291
|
}
|
@@ -377,39 +392,13 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
377
392
|
allow(Tempfile).to receive(:open).and_yield(tempfile)
|
378
393
|
end
|
379
394
|
|
380
|
-
it "installs first if package is not present and ensure holding" do
|
381
|
-
allow(provider).to receive(:execute)
|
382
|
-
allow(provider).to receive(:package_not_installed?).and_return(true)
|
383
|
-
expect(provider).to receive(:install).once
|
384
|
-
expect(provider).to receive(:hold)
|
385
|
-
provider.deprecated_hold
|
386
|
-
end
|
387
|
-
|
388
|
-
it "skips install new package if hold is true" do
|
389
|
-
allow(provider).to receive(:execute)
|
390
|
-
allow(provider).to receive(:package_not_installed?).and_return(true)
|
391
|
-
expect(provider).to receive(:install).once
|
392
|
-
expect(provider).to receive(:hold)
|
393
|
-
provider.deprecated_hold
|
394
|
-
end
|
395
|
-
|
396
|
-
it "skips install new package if package is allready installed" do
|
397
|
-
allow(provider).to receive(:execute)
|
398
|
-
allow(provider).to receive(:package_not_installed?).and_return(false)
|
399
|
-
expect(provider).not_to receive(:install)
|
400
|
-
expect(provider).to receive(:hold)
|
401
|
-
provider.deprecated_hold
|
402
|
-
end
|
403
|
-
|
404
395
|
it "executes dpkg --set-selections when holding" do
|
405
|
-
allow(provider).to receive(:package_not_installed?).and_return(false)
|
406
396
|
allow(provider).to receive(:install)
|
407
397
|
expect(provider).to receive(:execute).with([:dpkg, '--set-selections'], {:failonfail => false, :combine => false, :stdinfile => tempfile.path}).once
|
408
398
|
provider.hold
|
409
399
|
end
|
410
400
|
|
411
401
|
it "executes dpkg --set-selections when unholding" do
|
412
|
-
allow(provider).to receive(:package_not_installed?).and_return(false)
|
413
402
|
allow(provider).to receive(:install)
|
414
403
|
expect(provider).to receive(:execute).with([:dpkg, '--set-selections'], {:failonfail => false, :combine => false, :stdinfile => tempfile.path}).once
|
415
404
|
provider.hold
|
@@ -452,26 +441,4 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
452
441
|
provider.purge
|
453
442
|
end
|
454
443
|
|
455
|
-
context "package_not_installed?" do
|
456
|
-
context "allow_virtual false" do
|
457
|
-
before do
|
458
|
-
allow(resource).to receive(:allow_virtual?).and_return(false)
|
459
|
-
end
|
460
|
-
|
461
|
-
it "returns true if package is not found" do
|
462
|
-
expect(provider).to receive(:dpkgquery).with("-W", "--showformat", "'${Status} ${Package} ${Version}\\n'", resource_name).and_raise(Puppet::ExecutionFailure.new("eh"))
|
463
|
-
expect(provider.package_not_installed?).to eq(true)
|
464
|
-
end
|
465
|
-
|
466
|
-
it "returns true if package is not installed" do
|
467
|
-
expect(provider).to receive(:dpkgquery).with("-W", "--showformat", "'${Status} ${Package} ${Version}\\n'", resource_name).and_return("unknown ok not-installed #{resource_name}")
|
468
|
-
expect(provider.package_not_installed?).to eq(true)
|
469
|
-
end
|
470
|
-
|
471
|
-
it "returns false if package is installed" do
|
472
|
-
expect(provider).to receive(:dpkgquery).with("-W", "--showformat", "'${Status} ${Package} ${Version}\\n'", resource_name).and_return("install ok installed resource_name 1.2.3")
|
473
|
-
expect(provider.package_not_installed?).to eq(false)
|
474
|
-
end
|
475
|
-
end
|
476
|
-
end
|
477
444
|
end
|