puppet 6.15.0-universal-darwin → 6.19.1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +119 -39
- data/lib/puppet/environments.rb +51 -10
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +1 -1
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +31 -4
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +29 -26
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +7 -3
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +33 -8
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +75 -2
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +7 -2
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +9 -4
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/environments_spec.rb +99 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +2 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +47 -8
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +87 -19
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/autoload_spec.rb +2 -1
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
data/lib/puppet/util/autoload.rb
CHANGED
@@ -10,11 +10,20 @@ require 'puppet/concurrent/synchronized'
|
|
10
10
|
# @api private
|
11
11
|
class Puppet::Util::ModuleDirectoriesAdapter < Puppet::Pops::Adaptable::Adapter
|
12
12
|
attr_accessor :directories
|
13
|
+
|
14
|
+
def self.create_adapter(env)
|
15
|
+
adapter = super(env)
|
16
|
+
adapter.directories = env.modulepath.flat_map do |dir|
|
17
|
+
Dir.glob(File.join(dir, '*', 'lib'))
|
18
|
+
end
|
19
|
+
adapter
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
# Autoload paths, either based on names or all at once.
|
16
24
|
class Puppet::Util::Autoload
|
17
25
|
include Puppet::Concurrent::Synchronized
|
26
|
+
extend Puppet::Concurrent::Synchronized
|
18
27
|
|
19
28
|
@loaded = {}
|
20
29
|
|
@@ -118,26 +127,7 @@ class Puppet::Util::Autoload
|
|
118
127
|
def module_directories(env)
|
119
128
|
raise ArgumentError, "Autoloader requires an environment" unless env
|
120
129
|
|
121
|
-
Puppet::Util::ModuleDirectoriesAdapter.adapt(env)
|
122
|
-
a.directories ||= env.modulepath.collect do |dir|
|
123
|
-
Dir.entries(dir).reject { |f| f =~ /^\./ }.collect { |f| File.join(dir, f, "lib") }
|
124
|
-
end.flatten.find_all do |d|
|
125
|
-
FileTest.directory?(d)
|
126
|
-
end
|
127
|
-
end.directories
|
128
|
-
end
|
129
|
-
|
130
|
-
# @api private
|
131
|
-
def vendored_modules
|
132
|
-
dir = Puppet[:vendormoduledir]
|
133
|
-
if dir && File.directory?(dir)
|
134
|
-
Dir.entries(dir)
|
135
|
-
.reject { |f| f =~ /^\./ }
|
136
|
-
.collect { |f| File.join(dir, f, "lib") }
|
137
|
-
.find_all { |d| FileTest.directory?(d) }
|
138
|
-
else
|
139
|
-
[]
|
140
|
-
end
|
130
|
+
Puppet::Util::ModuleDirectoriesAdapter.adapt(env).directories
|
141
131
|
end
|
142
132
|
|
143
133
|
# @api private
|
@@ -167,11 +157,6 @@ class Puppet::Util::Autoload
|
|
167
157
|
# "app_defaults_initialized?" method on the main puppet Settings object.
|
168
158
|
# --cprice 2012-03-16
|
169
159
|
if Puppet.settings.app_defaults_initialized?
|
170
|
-
unless @initialized
|
171
|
-
$LOAD_PATH.unshift(Puppet[:libdir])
|
172
|
-
$LOAD_PATH.concat(vendored_modules)
|
173
|
-
@initialized = true
|
174
|
-
end
|
175
160
|
gem_directories + module_directories(env) + $LOAD_PATH
|
176
161
|
else
|
177
162
|
gem_directories + $LOAD_PATH
|
@@ -19,8 +19,9 @@ module Puppet::Util::CharacterEncoding
|
|
19
19
|
begin
|
20
20
|
if original_encoding == Encoding::UTF_8
|
21
21
|
if !string_copy.valid_encoding?
|
22
|
-
Puppet.debug
|
23
|
-
{ value: string.dump }
|
22
|
+
Puppet.debug {
|
23
|
+
_("%{value} is already labeled as UTF-8 but this encoding is invalid. It cannot be transcoded by Puppet.") % { value: string.dump }
|
24
|
+
}
|
24
25
|
end
|
25
26
|
# String is already valid UTF-8 - noop
|
26
27
|
return string_copy
|
@@ -40,8 +41,9 @@ module Puppet::Util::CharacterEncoding
|
|
40
41
|
# Catch both our own self-determined failure to transcode as well as any
|
41
42
|
# error on ruby's part, ie Encoding::UndefinedConversionError on a
|
42
43
|
# failure to encode!.
|
43
|
-
Puppet.debug
|
44
|
-
{ error: detail.inspect, value: string.dump }
|
44
|
+
Puppet.debug {
|
45
|
+
_("%{error}: %{value} cannot be transcoded by Puppet.") % { error: detail.inspect, value: string.dump }
|
46
|
+
}
|
45
47
|
return string_copy
|
46
48
|
end
|
47
49
|
end
|
@@ -67,7 +69,9 @@ module Puppet::Util::CharacterEncoding
|
|
67
69
|
if string_copy.force_encoding(Encoding::UTF_8).valid_encoding?
|
68
70
|
return string_copy
|
69
71
|
else
|
70
|
-
Puppet.debug
|
72
|
+
Puppet.debug {
|
73
|
+
_("%{value} is not valid UTF-8 and result of overriding encoding would be invalid.") % { value: string.dump }
|
74
|
+
}
|
71
75
|
# Set copy back to its original encoding before returning
|
72
76
|
return string_copy.force_encoding(original_encoding)
|
73
77
|
end
|
@@ -7,11 +7,26 @@ require 'time'
|
|
7
7
|
module Puppet::Util::Checksums
|
8
8
|
module_function
|
9
9
|
|
10
|
+
KNOWN_CHECKSUMS = [
|
11
|
+
:sha256, :sha256lite,
|
12
|
+
:md5, :md5lite,
|
13
|
+
:sha1, :sha1lite,
|
14
|
+
:sha512,
|
15
|
+
:sha384,
|
16
|
+
:sha224,
|
17
|
+
:mtime, :ctime, :none
|
18
|
+
].freeze
|
19
|
+
|
10
20
|
# It's not a good idea to use some of these in some contexts: for example, I
|
11
21
|
# wouldn't try bucketing a file using the :none checksum type.
|
12
22
|
def known_checksum_types
|
13
|
-
|
14
|
-
|
23
|
+
KNOWN_CHECKSUMS
|
24
|
+
end
|
25
|
+
|
26
|
+
def valid_checksum?(type, value)
|
27
|
+
!!send("#{type}?", value)
|
28
|
+
rescue NoMethodError
|
29
|
+
false
|
15
30
|
end
|
16
31
|
|
17
32
|
class FakeChecksum
|
@@ -223,7 +238,7 @@ module Puppet::Util::Checksums
|
|
223
238
|
|
224
239
|
# Return the :mtime timestamp of a file.
|
225
240
|
def mtime_file(filename)
|
226
|
-
Puppet::FileSystem.stat(filename).
|
241
|
+
Puppet::FileSystem.stat(filename).mtime
|
227
242
|
end
|
228
243
|
|
229
244
|
# by definition this doesn't exist
|
@@ -293,7 +308,7 @@ module Puppet::Util::Checksums
|
|
293
308
|
|
294
309
|
# Return the :ctime of a file.
|
295
310
|
def ctime_file(filename)
|
296
|
-
Puppet::FileSystem.stat(filename).
|
311
|
+
Puppet::FileSystem.stat(filename).ctime
|
297
312
|
end
|
298
313
|
|
299
314
|
def ctime_stream(&block)
|
@@ -8,7 +8,7 @@ module Puppet::Util
|
|
8
8
|
# The logic for server and port is kind of gross. In summary:
|
9
9
|
# IF an endpoint-specific setting is requested AND that setting has been set by the user
|
10
10
|
# Use that setting.
|
11
|
-
# The defaults for these settings are the "normal" server/
|
11
|
+
# The defaults for these settings are the "normal" server/serverport settings, so
|
12
12
|
# when they are unset we instead want to "fall back" to the failover-selected
|
13
13
|
# host/port pair.
|
14
14
|
# ELSE IF we have a failover-selected host/port
|
@@ -17,7 +17,7 @@ module Puppet::Util
|
|
17
17
|
# Use the first entry - failover hasn't happened yet, but that
|
18
18
|
# setting is still authoritative
|
19
19
|
# ELSE
|
20
|
-
# Go for the legacy server/
|
20
|
+
# Go for the legacy server/serverport settings, and hope for the best
|
21
21
|
|
22
22
|
# Determines which server to use based on the specified setting, taking into
|
23
23
|
# account HA fallback from server_list.
|
@@ -55,7 +55,7 @@ module Puppet::Util
|
|
55
55
|
# @param [Symbol] server_setting The server setting assoicated with this route.
|
56
56
|
# @return [Integer] the port to use for use in the request
|
57
57
|
def self.determine_port(port_setting, server_setting)
|
58
|
-
if (port_setting && port_setting != :
|
58
|
+
if (port_setting && port_setting != :serverport && Puppet.settings.set_by_config?(port_setting)) ||
|
59
59
|
(server_setting && server_setting != :server && Puppet.settings.set_by_config?(server_setting))
|
60
60
|
debug_once _("Selected port from the %{setting} setting: %{port}") % {setting: port_setting, port: Puppet.settings[port_setting].to_i}
|
61
61
|
Puppet.settings[port_setting].to_i
|
@@ -65,18 +65,18 @@ module Puppet::Util
|
|
65
65
|
if primary_server
|
66
66
|
# Port might not be set, so we want to fallback in that
|
67
67
|
# case. We know we don't need to use `setting` here, since
|
68
|
-
# the default value of every port setting is `
|
68
|
+
# the default value of every port setting is `serverport`
|
69
69
|
if primary_server[1]
|
70
70
|
#TRANSLATORS 'server_list' is the name of a setting and should not be translated
|
71
71
|
debug_once _("Dynamically-bound port lookup failed; using first entry from the `server_list` setting: %{port}") % {port: primary_server[1]}
|
72
72
|
primary_server[1]
|
73
73
|
else
|
74
|
-
#TRANSLATORS '
|
75
|
-
debug_once _("Dynamically-bound port lookup failed; falling back to `
|
76
|
-
Puppet.settings[:
|
74
|
+
#TRANSLATORS 'serverport' is the name of a setting and should not be translated
|
75
|
+
debug_once _("Dynamically-bound port lookup failed; falling back to `serverport` setting: %{port}") % {port: Puppet.settings[:serverport]}
|
76
|
+
Puppet.settings[:serverport]
|
77
77
|
end
|
78
78
|
else
|
79
|
-
port_setting ||= :
|
79
|
+
port_setting ||= :serverport
|
80
80
|
debug_once _("Dynamically-bound port lookup failed; falling back to %{setting} setting: %{port}") % {setting: port_setting, port: Puppet.settings[port_setting]}
|
81
81
|
Puppet.settings[port_setting]
|
82
82
|
end
|
@@ -68,7 +68,7 @@ module Puppet::Util::Execution
|
|
68
68
|
if respond_to? :debug
|
69
69
|
debug "Executing '#{command_str}'"
|
70
70
|
else
|
71
|
-
Puppet.debug "Executing '#{command_str}'"
|
71
|
+
Puppet.debug { "Executing '#{command_str}'" }
|
72
72
|
end
|
73
73
|
|
74
74
|
# force the run of the command with
|
@@ -186,7 +186,7 @@ module Puppet::Util::Execution
|
|
186
186
|
if respond_to? :debug
|
187
187
|
debug "Executing#{user_log_s}: '#{command_str}'"
|
188
188
|
else
|
189
|
-
Puppet.debug "Executing#{user_log_s}: '#{command_str}'"
|
189
|
+
Puppet.debug { "Executing#{user_log_s}: '#{command_str}'" }
|
190
190
|
end
|
191
191
|
|
192
192
|
null_file = Puppet::Util::Platform.windows? ? 'NUL' : '/dev/null'
|
@@ -300,7 +300,7 @@ module Puppet::Util::FileParsing
|
|
300
300
|
def record_line(name, options, &block)
|
301
301
|
raise ArgumentError, _("Must include a list of fields") unless options.include?(:fields)
|
302
302
|
|
303
|
-
record = FileRecord.new(:record, options, &block)
|
303
|
+
record = FileRecord.new(:record, **options, &block)
|
304
304
|
record.name = name.intern
|
305
305
|
|
306
306
|
new_line_type(record)
|
@@ -315,7 +315,7 @@ module Puppet::Util::FileParsing
|
|
315
315
|
def text_line(name, options, &block)
|
316
316
|
raise ArgumentError, _("You must provide a :match regex for text lines") unless options.include?(:match)
|
317
317
|
|
318
|
-
record = FileRecord.new(:text, options, &block)
|
318
|
+
record = FileRecord.new(:text, **options, &block)
|
319
319
|
record.name = name.intern
|
320
320
|
|
321
321
|
new_line_type(record)
|
@@ -91,18 +91,9 @@ Puppet::Util::Log.newdesttype :file do
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
file = File.open(path,
|
94
|
+
file = File.open(path, File::WRONLY|File::CREAT|File::APPEND)
|
95
95
|
file.puts('[') if need_array_start
|
96
96
|
|
97
|
-
# Give ownership to the user and group puppet will run as
|
98
|
-
if Puppet.features.root? && !Puppet::Util::Platform.windows? && !file_exists
|
99
|
-
begin
|
100
|
-
FileUtils.chown(Puppet[:user], Puppet[:group], path)
|
101
|
-
rescue ArgumentError, Errno::EPERM
|
102
|
-
Puppet.err _("Unable to set ownership to %{user}:%{group} for log file: %{path}") % { user: Puppet[:user], group: Puppet[:group], path: path }
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
97
|
@file = file
|
107
98
|
|
108
99
|
@autoflush = Puppet[:autoflush]
|
@@ -2,6 +2,7 @@ require 'puppet/util/package/version/range/lt'
|
|
2
2
|
require 'puppet/util/package/version/range/lt_eq'
|
3
3
|
require 'puppet/util/package/version/range/gt'
|
4
4
|
require 'puppet/util/package/version/range/gt_eq'
|
5
|
+
require 'puppet/util/package/version/range/eq'
|
5
6
|
require 'puppet/util/package/version/range/min_max'
|
6
7
|
|
7
8
|
module Puppet::Util::Package::Version
|
@@ -20,7 +21,7 @@ module Puppet::Util::Package::Version
|
|
20
21
|
# * ex. `">1.0.0 <=2.3.0"`
|
21
22
|
#
|
22
23
|
RANGE_SPLIT = /\s+/
|
23
|
-
FULL_REGEX = /\A((?:[<>=])
|
24
|
+
FULL_REGEX = /\A((?:[<>=])*)(.+)\Z/
|
24
25
|
|
25
26
|
# @param range_string [String] the version range string to parse
|
26
27
|
# @param version_class [Version] a version class implementing comparison operators and parse method
|
@@ -40,6 +41,8 @@ module Puppet::Util::Package::Version
|
|
40
41
|
Lt.new(version_class::parse(version))
|
41
42
|
when '<='
|
42
43
|
LtEq.new(version_class::parse(version))
|
44
|
+
when ''
|
45
|
+
Eq.new(version_class::parse(version))
|
43
46
|
else
|
44
47
|
raise ValidationFailure, "Operator '#{operator}' is not implemented"
|
45
48
|
end
|
@@ -62,7 +62,7 @@ module Puppet::Util::ProviderFeatures
|
|
62
62
|
@features ||= {}
|
63
63
|
raise Puppet::DevError, _("Feature %{name} is already defined") % { name: name } if @features.include?(name)
|
64
64
|
begin
|
65
|
-
obj = ProviderFeature.new(name, docs, hash)
|
65
|
+
obj = ProviderFeature.new(name, docs, **hash)
|
66
66
|
@features[obj.name] = obj
|
67
67
|
rescue ArgumentError => detail
|
68
68
|
error = ArgumentError.new(
|
data/lib/puppet/util/run_mode.rb
CHANGED
data/lib/puppet/util/windows.rb
CHANGED
@@ -19,15 +19,11 @@ module Puppet::Util::Windows::APITypes
|
|
19
19
|
|
20
20
|
class ::FFI::Pointer
|
21
21
|
NULL_HANDLE = 0
|
22
|
+
WCHAR_NULL = "\0\0".encode('UTF-16LE').freeze
|
22
23
|
|
23
24
|
def self.from_string_to_wide_string(str, &block)
|
24
25
|
str = Puppet::Util::Windows::String.wide_string(str)
|
25
|
-
FFI::MemoryPointer.
|
26
|
-
# uchar here is synonymous with byte
|
27
|
-
ptr.put_array_of_uchar(0, str.bytes.to_a)
|
28
|
-
|
29
|
-
yield ptr
|
30
|
-
end
|
26
|
+
FFI::MemoryPointer.from_wide_string(str, &block)
|
31
27
|
|
32
28
|
# ptr has already had free called, so nothing to return
|
33
29
|
nil
|
@@ -53,12 +49,18 @@ module Puppet::Util::Windows::APITypes
|
|
53
49
|
alias_method :read_word, :read_uint16
|
54
50
|
alias_method :read_array_of_wchar, :read_array_of_uint16
|
55
51
|
|
56
|
-
def read_wide_string(char_length, dst_encoding = Encoding::UTF_8, encode_options = {})
|
52
|
+
def read_wide_string(char_length, dst_encoding = Encoding::UTF_8, strip = false, encode_options = {})
|
57
53
|
# char_length is number of wide chars (typically excluding NULLs), *not* bytes
|
58
54
|
str = get_bytes(0, char_length * 2).force_encoding('UTF-16LE')
|
55
|
+
|
56
|
+
if strip
|
57
|
+
i = str.index(WCHAR_NULL)
|
58
|
+
str = str[0, i] if i
|
59
|
+
end
|
60
|
+
|
59
61
|
str.encode(dst_encoding, str.encoding, encode_options)
|
60
|
-
rescue
|
61
|
-
Puppet.debug "Unable to convert value #{str.nil? ? 'nil' : str.dump} to encoding #{dst_encoding} due to #{e.inspect}"
|
62
|
+
rescue EncodingError => e
|
63
|
+
Puppet.debug { "Unable to convert value #{str.nil? ? 'nil' : str.dump} to encoding #{dst_encoding} due to #{e.inspect}" }
|
62
64
|
raise
|
63
65
|
end
|
64
66
|
|
@@ -68,32 +70,31 @@ module Puppet::Util::Windows::APITypes
|
|
68
70
|
# null_terminator = :double_null, then the terminating sequence is four bytes of zero. This is UNIT32 = 0
|
69
71
|
# @param encode_options [Hash] Accepts the same option hash that may be passed to String#encode in Ruby
|
70
72
|
def read_arbitrary_wide_string_up_to(max_char_length = 512, null_terminator = :single_null, encode_options = {})
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
73
|
+
idx = case null_terminator
|
74
|
+
when :single_null
|
75
|
+
# find index of wide null between 0 and max (exclusive)
|
76
|
+
(0...max_char_length).find do |i|
|
77
|
+
get_uint16(i * 2) == 0
|
78
|
+
end
|
79
|
+
when :double_null
|
80
|
+
# find index of double-wide null between 0 and max - 1 (exclusive)
|
81
|
+
(0...max_char_length - 1).find do |i|
|
82
|
+
get_uint32(i * 2) == 0
|
83
|
+
end
|
84
|
+
else
|
85
|
+
raise _("Unable to read wide strings with %{null_terminator} terminal nulls") % { null_terminator: null_terminator }
|
86
|
+
end
|
87
|
+
|
88
|
+
read_wide_string(idx || max_char_length, Encoding::UTF_8, false, encode_options)
|
85
89
|
end
|
86
90
|
|
87
91
|
def read_win32_local_pointer(&block)
|
88
|
-
ptr =
|
92
|
+
ptr = read_pointer
|
89
93
|
begin
|
90
|
-
ptr = read_pointer
|
91
94
|
yield ptr
|
92
95
|
ensure
|
93
|
-
if ptr &&
|
94
|
-
|
95
|
-
Puppet.debug "LocalFree memory leak"
|
96
|
-
end
|
96
|
+
if !ptr.null? && FFI::WIN32::LocalFree(ptr.address) != FFI::Pointer::NULL_HANDLE
|
97
|
+
Puppet.debug "LocalFree memory leak"
|
97
98
|
end
|
98
99
|
end
|
99
100
|
|
@@ -102,23 +103,35 @@ module Puppet::Util::Windows::APITypes
|
|
102
103
|
end
|
103
104
|
|
104
105
|
def read_com_memory_pointer(&block)
|
105
|
-
ptr =
|
106
|
+
ptr = read_pointer
|
106
107
|
begin
|
107
|
-
ptr = read_pointer
|
108
108
|
yield ptr
|
109
109
|
ensure
|
110
|
-
FFI::WIN32::CoTaskMemFree(ptr)
|
110
|
+
FFI::WIN32::CoTaskMemFree(ptr) unless ptr.null?
|
111
111
|
end
|
112
112
|
|
113
113
|
# ptr has already had CoTaskMemFree called, so nothing to return
|
114
114
|
nil
|
115
115
|
end
|
116
116
|
|
117
|
-
|
118
117
|
alias_method :write_dword, :write_uint32
|
119
118
|
alias_method :write_word, :write_uint16
|
120
119
|
end
|
121
120
|
|
121
|
+
class FFI::MemoryPointer
|
122
|
+
# Return a MemoryPointer that points to wide string. This is analogous to the
|
123
|
+
# FFI::MemoryPointer.from_string method.
|
124
|
+
def self.from_wide_string(wstr)
|
125
|
+
ptr = FFI::MemoryPointer.new(:uchar, wstr.bytesize + 2)
|
126
|
+
ptr.put_array_of_uchar(0, wstr.bytes.to_a)
|
127
|
+
ptr.put_uint16(wstr.bytesize, 0)
|
128
|
+
|
129
|
+
yield ptr if block_given?
|
130
|
+
|
131
|
+
ptr
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
122
135
|
# FFI Types
|
123
136
|
# https://github.com/ffi/ffi/wiki/Types
|
124
137
|
|
@@ -183,6 +196,20 @@ module Puppet::Util::Windows::APITypes
|
|
183
196
|
FFI.typedef :uchar, :byte
|
184
197
|
FFI.typedef :uint16, :wchar
|
185
198
|
|
199
|
+
# Definitions for data types used in LSA structures and functions
|
200
|
+
# https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/
|
201
|
+
# https://docs.microsoft.com/sr-latn-rs/windows/win32/secmgmt/management-data-types
|
202
|
+
FFI.typedef :pointer, :pwstr
|
203
|
+
FFI.typedef :pointer, :pulong
|
204
|
+
FFI.typedef :pointer, :lsa_handle
|
205
|
+
FFI.typedef :pointer, :plsa_handle
|
206
|
+
FFI.typedef :pointer, :psid
|
207
|
+
FFI.typedef :pointer, :pvoid
|
208
|
+
FFI.typedef :pointer, :plsa_unicode_string
|
209
|
+
FFI.typedef :pointer, :plsa_object_attributes
|
210
|
+
FFI.typedef :uint32, :ntstatus
|
211
|
+
FFI.typedef :dword, :access_mask
|
212
|
+
|
186
213
|
module ::FFI::WIN32
|
187
214
|
extend ::FFI::Library
|
188
215
|
|