puppet 6.21.1-x64-mingw32 → 7.4.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +1 -4
- data/Gemfile.lock +5 -5
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -2
- 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/application.rb +172 -98
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +27 -29
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +57 -162
- data/lib/puppet/environments.rb +8 -23
- data/lib/puppet/face/facts.rb +73 -49
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +8 -0
- data/lib/puppet/face/plugin.rb +5 -8
- 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_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +6 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/http/client.rb +164 -114
- 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 +5 -15
- data/lib/puppet/http/resolver/server_list.rb +6 -10
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- 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 +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/facts/facter.rb +25 -3
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- 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/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/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- 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/formats.rb +67 -0
- 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/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +3 -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/resource.rb +0 -69
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- 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/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/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 +9 -37
- 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/nameservice.rb +0 -18
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- 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 +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +7 -5
- 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 +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +45 -33
- 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 +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/windows.rb +3 -8
- 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/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- 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 +521 -1226
- data/man/man5/puppet.conf.5 +34 -94
- data/man/man8/puppet-facts.8 +56 -35
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-module.8 +0 -57
- data/man/man8/puppet.8 +1 -1
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +24 -11
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +7 -3
- data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
- data/spec/integration/network/http_pool_spec.rb +3 -21
- 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/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/facts_spec.rb +86 -0
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +22 -47
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +14 -2
- 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 +22 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- 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/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -8
- 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 +13 -13
- data/spec/unit/http/service/compiler_spec.rb +0 -62
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/facts/facter_spec.rb +113 -0
- 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/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/network/authconfig_spec.rb +2 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +45 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
- 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 -1
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- 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/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +0 -12
- 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 +17 -0
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +19 -55
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/report_spec.rb +0 -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 +0 -1
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/run_mode_spec.rb +21 -121
- 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 +47 -218
- 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/fact_dif.rb +0 -62
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- 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/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- 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 -78
- 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/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 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- 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
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'puppet/util/windows'
|
2
|
-
require '
|
3
|
-
require 'ffi'
|
1
|
+
require 'puppet/util/windows/monkey_patches/process'
|
2
|
+
require 'puppet/ffi/windows'
|
4
3
|
|
5
4
|
module Puppet::Util::Windows::Process
|
5
|
+
extend Puppet::FFI::Windows::Functions
|
6
|
+
include Puppet::FFI::Windows::Structs
|
6
7
|
extend Puppet::Util::Windows::String
|
7
|
-
extend FFI::Library
|
8
8
|
|
9
9
|
WAIT_TIMEOUT = 0x102
|
10
10
|
WAIT_INTERVAL = 200
|
@@ -361,226 +361,4 @@ module Puppet::Util::Windows::Process
|
|
361
361
|
end
|
362
362
|
module_function :supports_elevated_security?
|
363
363
|
|
364
|
-
ABOVE_NORMAL_PRIORITY_CLASS = 0x0008000
|
365
|
-
BELOW_NORMAL_PRIORITY_CLASS = 0x0004000
|
366
|
-
HIGH_PRIORITY_CLASS = 0x0000080
|
367
|
-
IDLE_PRIORITY_CLASS = 0x0000040
|
368
|
-
NORMAL_PRIORITY_CLASS = 0x0000020
|
369
|
-
REALTIME_PRIORITY_CLASS = 0x0000010
|
370
|
-
|
371
|
-
ffi_convention :stdcall
|
372
|
-
|
373
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx
|
374
|
-
# DWORD WINAPI WaitForSingleObject(
|
375
|
-
# _In_ HANDLE hHandle,
|
376
|
-
# _In_ DWORD dwMilliseconds
|
377
|
-
# );
|
378
|
-
ffi_lib :kernel32
|
379
|
-
attach_function_private :WaitForSingleObject,
|
380
|
-
[:handle, :dword], :dword
|
381
|
-
|
382
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms683189(v=vs.85).aspx
|
383
|
-
# BOOL WINAPI GetExitCodeProcess(
|
384
|
-
# _In_ HANDLE hProcess,
|
385
|
-
# _Out_ LPDWORD lpExitCode
|
386
|
-
# );
|
387
|
-
ffi_lib :kernel32
|
388
|
-
attach_function_private :GetExitCodeProcess,
|
389
|
-
[:handle, :lpdword], :win32_bool
|
390
|
-
|
391
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms683179(v=vs.85).aspx
|
392
|
-
# HANDLE WINAPI GetCurrentProcess(void);
|
393
|
-
ffi_lib :kernel32
|
394
|
-
attach_function_private :GetCurrentProcess, [], :handle
|
395
|
-
|
396
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms683187(v=vs.85).aspx
|
397
|
-
# LPTCH GetEnvironmentStrings(void);
|
398
|
-
ffi_lib :kernel32
|
399
|
-
attach_function_private :GetEnvironmentStringsW, [], :pointer
|
400
|
-
|
401
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms683151(v=vs.85).aspx
|
402
|
-
# BOOL FreeEnvironmentStrings(
|
403
|
-
# _In_ LPTCH lpszEnvironmentBlock
|
404
|
-
# );
|
405
|
-
ffi_lib :kernel32
|
406
|
-
attach_function_private :FreeEnvironmentStringsW,
|
407
|
-
[:pointer], :win32_bool
|
408
|
-
|
409
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms686206(v=vs.85).aspx
|
410
|
-
# BOOL WINAPI SetEnvironmentVariableW(
|
411
|
-
# _In_ LPCTSTR lpName,
|
412
|
-
# _In_opt_ LPCTSTR lpValue
|
413
|
-
# );
|
414
|
-
ffi_lib :kernel32
|
415
|
-
attach_function_private :SetEnvironmentVariableW,
|
416
|
-
[:lpcwstr, :lpcwstr], :win32_bool
|
417
|
-
|
418
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
|
419
|
-
# HANDLE WINAPI OpenProcess(
|
420
|
-
# _In_ DWORD DesiredAccess,
|
421
|
-
# _In_ BOOL InheritHandle,
|
422
|
-
# _In_ DWORD ProcessId
|
423
|
-
# );
|
424
|
-
ffi_lib :kernel32
|
425
|
-
attach_function_private :OpenProcess,
|
426
|
-
[:dword, :win32_bool, :dword], :handle
|
427
|
-
|
428
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295(v=vs.85).aspx
|
429
|
-
# BOOL WINAPI OpenProcessToken(
|
430
|
-
# _In_ HANDLE ProcessHandle,
|
431
|
-
# _In_ DWORD DesiredAccess,
|
432
|
-
# _Out_ PHANDLE TokenHandle
|
433
|
-
# );
|
434
|
-
ffi_lib :advapi32
|
435
|
-
attach_function_private :OpenProcessToken,
|
436
|
-
[:handle, :dword, :phandle], :win32_bool
|
437
|
-
|
438
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-queryfullprocessimagenamew
|
439
|
-
# BOOL WINAPI QueryFullProcessImageName(
|
440
|
-
# _In_ HANDLE hProcess,
|
441
|
-
# _In_ DWORD dwFlags,
|
442
|
-
# _Out_ LPWSTR lpExeName,
|
443
|
-
# _In_ PDWORD lpdwSize,
|
444
|
-
# );
|
445
|
-
ffi_lib :kernel32
|
446
|
-
attach_function_private :QueryFullProcessImageNameW,
|
447
|
-
[:handle, :dword, :lpwstr, :pdword], :win32_bool
|
448
|
-
|
449
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379261(v=vs.85).aspx
|
450
|
-
# typedef struct _LUID {
|
451
|
-
# DWORD LowPart;
|
452
|
-
# LONG HighPart;
|
453
|
-
# } LUID, *PLUID;
|
454
|
-
class LUID < FFI::Struct
|
455
|
-
layout :LowPart, :dword,
|
456
|
-
:HighPart, :win32_long
|
457
|
-
end
|
458
|
-
|
459
|
-
# https://msdn.microsoft.com/en-us/library/Windows/desktop/aa379180(v=vs.85).aspx
|
460
|
-
# BOOL WINAPI LookupPrivilegeValue(
|
461
|
-
# _In_opt_ LPCTSTR lpSystemName,
|
462
|
-
# _In_ LPCTSTR lpName,
|
463
|
-
# _Out_ PLUID lpLuid
|
464
|
-
# );
|
465
|
-
ffi_lib :advapi32
|
466
|
-
attach_function_private :LookupPrivilegeValueW,
|
467
|
-
[:lpcwstr, :lpcwstr, :pointer], :win32_bool
|
468
|
-
|
469
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379626(v=vs.85).aspx
|
470
|
-
TOKEN_INFORMATION_CLASS = enum(
|
471
|
-
:TokenUser, 1,
|
472
|
-
:TokenGroups,
|
473
|
-
:TokenPrivileges,
|
474
|
-
:TokenOwner,
|
475
|
-
:TokenPrimaryGroup,
|
476
|
-
:TokenDefaultDacl,
|
477
|
-
:TokenSource,
|
478
|
-
:TokenType,
|
479
|
-
:TokenImpersonationLevel,
|
480
|
-
:TokenStatistics,
|
481
|
-
:TokenRestrictedSids,
|
482
|
-
:TokenSessionId,
|
483
|
-
:TokenGroupsAndPrivileges,
|
484
|
-
:TokenSessionReference,
|
485
|
-
:TokenSandBoxInert,
|
486
|
-
:TokenAuditPolicy,
|
487
|
-
:TokenOrigin,
|
488
|
-
:TokenElevationType,
|
489
|
-
:TokenLinkedToken,
|
490
|
-
:TokenElevation,
|
491
|
-
:TokenHasRestrictions,
|
492
|
-
:TokenAccessInformation,
|
493
|
-
:TokenVirtualizationAllowed,
|
494
|
-
:TokenVirtualizationEnabled,
|
495
|
-
:TokenIntegrityLevel,
|
496
|
-
:TokenUIAccess,
|
497
|
-
:TokenMandatoryPolicy,
|
498
|
-
:TokenLogonSid,
|
499
|
-
:TokenIsAppContainer,
|
500
|
-
:TokenCapabilities,
|
501
|
-
:TokenAppContainerSid,
|
502
|
-
:TokenAppContainerNumber,
|
503
|
-
:TokenUserClaimAttributes,
|
504
|
-
:TokenDeviceClaimAttributes,
|
505
|
-
:TokenRestrictedUserClaimAttributes,
|
506
|
-
:TokenRestrictedDeviceClaimAttributes,
|
507
|
-
:TokenDeviceGroups,
|
508
|
-
:TokenRestrictedDeviceGroups,
|
509
|
-
:TokenSecurityAttributes,
|
510
|
-
:TokenIsRestricted,
|
511
|
-
:MaxTokenInfoClass
|
512
|
-
)
|
513
|
-
|
514
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379263(v=vs.85).aspx
|
515
|
-
# typedef struct _LUID_AND_ATTRIBUTES {
|
516
|
-
# LUID Luid;
|
517
|
-
# DWORD Attributes;
|
518
|
-
# } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
|
519
|
-
class LUID_AND_ATTRIBUTES < FFI::Struct
|
520
|
-
layout :Luid, LUID,
|
521
|
-
:Attributes, :dword
|
522
|
-
end
|
523
|
-
|
524
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379630(v=vs.85).aspx
|
525
|
-
# typedef struct _TOKEN_PRIVILEGES {
|
526
|
-
# DWORD PrivilegeCount;
|
527
|
-
# LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
528
|
-
# } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
|
529
|
-
class TOKEN_PRIVILEGES < FFI::Struct
|
530
|
-
layout :PrivilegeCount, :dword,
|
531
|
-
:Privileges, [LUID_AND_ATTRIBUTES, 1] # placeholder for offset
|
532
|
-
end
|
533
|
-
|
534
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/bb530717(v=vs.85).aspx
|
535
|
-
# typedef struct _TOKEN_ELEVATION {
|
536
|
-
# DWORD TokenIsElevated;
|
537
|
-
# } TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
538
|
-
class TOKEN_ELEVATION < FFI::Struct
|
539
|
-
layout :TokenIsElevated, :dword
|
540
|
-
end
|
541
|
-
|
542
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671(v=vs.85).aspx
|
543
|
-
# BOOL WINAPI GetTokenInformation(
|
544
|
-
# _In_ HANDLE TokenHandle,
|
545
|
-
# _In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
|
546
|
-
# _Out_opt_ LPVOID TokenInformation,
|
547
|
-
# _In_ DWORD TokenInformationLength,
|
548
|
-
# _Out_ PDWORD ReturnLength
|
549
|
-
# );
|
550
|
-
ffi_lib :advapi32
|
551
|
-
attach_function_private :GetTokenInformation,
|
552
|
-
[:handle, TOKEN_INFORMATION_CLASS, :lpvoid, :dword, :pdword ], :win32_bool
|
553
|
-
|
554
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms724834%28v=vs.85%29.aspx
|
555
|
-
# typedef struct _OSVERSIONINFO {
|
556
|
-
# DWORD dwOSVersionInfoSize;
|
557
|
-
# DWORD dwMajorVersion;
|
558
|
-
# DWORD dwMinorVersion;
|
559
|
-
# DWORD dwBuildNumber;
|
560
|
-
# DWORD dwPlatformId;
|
561
|
-
# TCHAR szCSDVersion[128];
|
562
|
-
# } OSVERSIONINFO;
|
563
|
-
class OSVERSIONINFO < FFI::Struct
|
564
|
-
layout(
|
565
|
-
:dwOSVersionInfoSize, :dword,
|
566
|
-
:dwMajorVersion, :dword,
|
567
|
-
:dwMinorVersion, :dword,
|
568
|
-
:dwBuildNumber, :dword,
|
569
|
-
:dwPlatformId, :dword,
|
570
|
-
:szCSDVersion, [:wchar, 128]
|
571
|
-
)
|
572
|
-
end
|
573
|
-
|
574
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx
|
575
|
-
# BOOL WINAPI GetVersionEx(
|
576
|
-
# _Inout_ LPOSVERSIONINFO lpVersionInfo
|
577
|
-
# );
|
578
|
-
ffi_lib :kernel32
|
579
|
-
attach_function_private :GetVersionExW,
|
580
|
-
[:pointer], :win32_bool
|
581
|
-
|
582
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/dd318123(v=vs.85).aspx
|
583
|
-
# LANGID GetSystemDefaultUILanguage(void);
|
584
|
-
ffi_lib :kernel32
|
585
|
-
attach_function_private :GetSystemDefaultUILanguage, [], :word
|
586
364
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'puppet/
|
3
|
-
require 'ffi'
|
2
|
+
require 'puppet/ffi/windows'
|
4
3
|
|
5
4
|
module Puppet::Util::Windows
|
6
5
|
# This module is designed to provide an API between the windows system and puppet for
|
@@ -8,315 +7,22 @@ module Puppet::Util::Windows
|
|
8
7
|
#
|
9
8
|
# for an overview of the service state transitions see: https://docs.microsoft.com/en-us/windows/desktop/Services/service-status-transitions
|
10
9
|
module Service
|
11
|
-
extend FFI::Library
|
12
10
|
extend Puppet::Util::Windows::String
|
13
11
|
|
14
|
-
|
12
|
+
include Puppet::FFI::Windows::Constants
|
13
|
+
extend Puppet::FFI::Windows::Constants
|
14
|
+
|
15
|
+
include Puppet::FFI::Windows::Structs
|
16
|
+
extend Puppet::FFI::Windows::Structs
|
17
|
+
|
18
|
+
include Puppet::FFI::Windows::Functions
|
19
|
+
extend Puppet::FFI::Windows::Functions
|
15
20
|
|
16
21
|
# integer value of the floor for timeouts when waiting for service pending states.
|
17
22
|
# puppet will wait the length of dwWaitHint if it is longer than this value, but
|
18
23
|
# no shorter
|
19
24
|
DEFAULT_TIMEOUT = 30
|
20
25
|
|
21
|
-
# Service error codes
|
22
|
-
# https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes--1000-1299-
|
23
|
-
ERROR_SERVICE_DOES_NOT_EXIST = 0x00000424
|
24
|
-
|
25
|
-
# Service control codes
|
26
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-controlserviceexw
|
27
|
-
SERVICE_CONTROL_STOP = 0x00000001
|
28
|
-
SERVICE_CONTROL_PAUSE = 0x00000002
|
29
|
-
SERVICE_CONTROL_CONTINUE = 0x00000003
|
30
|
-
SERVICE_CONTROL_INTERROGATE = 0x00000004
|
31
|
-
SERVICE_CONTROL_SHUTDOWN = 0x00000005
|
32
|
-
SERVICE_CONTROL_PARAMCHANGE = 0x00000006
|
33
|
-
SERVICE_CONTROL_NETBINDADD = 0x00000007
|
34
|
-
SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
|
35
|
-
SERVICE_CONTROL_NETBINDENABLE = 0x00000009
|
36
|
-
SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
|
37
|
-
SERVICE_CONTROL_DEVICEEVENT = 0x0000000B
|
38
|
-
SERVICE_CONTROL_HARDWAREPROFILECHANGE = 0x0000000C
|
39
|
-
SERVICE_CONTROL_POWEREVENT = 0x0000000D
|
40
|
-
SERVICE_CONTROL_SESSIONCHANGE = 0x0000000E
|
41
|
-
SERVICE_CONTROL_PRESHUTDOWN = 0x0000000F
|
42
|
-
SERVICE_CONTROL_TIMECHANGE = 0x00000010
|
43
|
-
SERVICE_CONTROL_TRIGGEREVENT = 0x00000020
|
44
|
-
SERVICE_CONTROL_SIGNALS = {
|
45
|
-
SERVICE_CONTROL_STOP => :SERVICE_CONTROL_STOP,
|
46
|
-
SERVICE_CONTROL_PAUSE => :SERVICE_CONTROL_PAUSE,
|
47
|
-
SERVICE_CONTROL_CONTINUE => :SERVICE_CONTROL_CONTINUE,
|
48
|
-
SERVICE_CONTROL_INTERROGATE => :SERVICE_CONTROL_INTERROGATE,
|
49
|
-
SERVICE_CONTROL_SHUTDOWN => :SERVICE_CONTROL_SHUTDOWN,
|
50
|
-
SERVICE_CONTROL_PARAMCHANGE => :SERVICE_CONTROL_PARAMCHANGE,
|
51
|
-
SERVICE_CONTROL_NETBINDADD => :SERVICE_CONTROL_NETBINDADD,
|
52
|
-
SERVICE_CONTROL_NETBINDREMOVE => :SERVICE_CONTROL_NETBINDREMOVE,
|
53
|
-
SERVICE_CONTROL_NETBINDENABLE => :SERVICE_CONTROL_NETBINDENABLE,
|
54
|
-
SERVICE_CONTROL_NETBINDDISABLE => :SERVICE_CONTROL_NETBINDDISABLE,
|
55
|
-
SERVICE_CONTROL_DEVICEEVENT => :SERVICE_CONTROL_DEVICEEVENT,
|
56
|
-
SERVICE_CONTROL_HARDWAREPROFILECHANGE => :SERVICE_CONTROL_HARDWAREPROFILECHANGE,
|
57
|
-
SERVICE_CONTROL_POWEREVENT => :SERVICE_CONTROL_POWEREVENT,
|
58
|
-
SERVICE_CONTROL_SESSIONCHANGE => :SERVICE_CONTROL_SESSIONCHANGE,
|
59
|
-
SERVICE_CONTROL_PRESHUTDOWN => :SERVICE_CONTROL_PRESHUTDOWN,
|
60
|
-
SERVICE_CONTROL_TIMECHANGE => :SERVICE_CONTROL_TIMECHANGE,
|
61
|
-
SERVICE_CONTROL_TRIGGEREVENT => :SERVICE_CONTROL_TRIGGEREVENT
|
62
|
-
}
|
63
|
-
|
64
|
-
|
65
|
-
# Service start type codes
|
66
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-changeserviceconfigw
|
67
|
-
SERVICE_AUTO_START = 0x00000002
|
68
|
-
SERVICE_BOOT_START = 0x00000000
|
69
|
-
SERVICE_DEMAND_START = 0x00000003
|
70
|
-
SERVICE_DISABLED = 0x00000004
|
71
|
-
SERVICE_SYSTEM_START = 0x00000001
|
72
|
-
SERVICE_START_TYPES = {
|
73
|
-
SERVICE_AUTO_START => :SERVICE_AUTO_START,
|
74
|
-
SERVICE_BOOT_START => :SERVICE_BOOT_START,
|
75
|
-
SERVICE_DEMAND_START => :SERVICE_DEMAND_START,
|
76
|
-
SERVICE_DISABLED => :SERVICE_DISABLED,
|
77
|
-
SERVICE_SYSTEM_START => :SERVICE_SYSTEM_START,
|
78
|
-
}
|
79
|
-
|
80
|
-
# Service type codes
|
81
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-changeserviceconfigw
|
82
|
-
SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
|
83
|
-
SERVICE_KERNEL_DRIVER = 0x00000001
|
84
|
-
SERVICE_WIN32_OWN_PROCESS = 0x00000010
|
85
|
-
SERVICE_WIN32_SHARE_PROCESS = 0x00000020
|
86
|
-
SERVICE_USER_OWN_PROCESS = 0x00000050
|
87
|
-
SERVICE_USER_SHARE_PROCESS = 0x00000060
|
88
|
-
# Available only if service is also SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS
|
89
|
-
SERVICE_INTERACTIVE_PROCESS = 0x00000100
|
90
|
-
ALL_SERVICE_TYPES =
|
91
|
-
SERVICE_FILE_SYSTEM_DRIVER |
|
92
|
-
SERVICE_KERNEL_DRIVER |
|
93
|
-
SERVICE_WIN32_OWN_PROCESS |
|
94
|
-
SERVICE_WIN32_SHARE_PROCESS
|
95
|
-
|
96
|
-
# Current state codes
|
97
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
|
98
|
-
SERVICE_CONTINUE_PENDING = 0x00000005
|
99
|
-
SERVICE_PAUSE_PENDING = 0x00000006
|
100
|
-
SERVICE_PAUSED = 0x00000007
|
101
|
-
SERVICE_RUNNING = 0x00000004
|
102
|
-
SERVICE_START_PENDING = 0x00000002
|
103
|
-
SERVICE_STOP_PENDING = 0x00000003
|
104
|
-
SERVICE_STOPPED = 0x00000001
|
105
|
-
UNSAFE_PENDING_STATES = [SERVICE_START_PENDING, SERVICE_STOP_PENDING]
|
106
|
-
FINAL_STATES = {
|
107
|
-
SERVICE_CONTINUE_PENDING => SERVICE_RUNNING,
|
108
|
-
SERVICE_PAUSE_PENDING => SERVICE_PAUSED,
|
109
|
-
SERVICE_START_PENDING => SERVICE_RUNNING,
|
110
|
-
SERVICE_STOP_PENDING => SERVICE_STOPPED
|
111
|
-
}
|
112
|
-
SERVICE_STATES = {
|
113
|
-
SERVICE_CONTINUE_PENDING => :SERVICE_CONTINUE_PENDING,
|
114
|
-
SERVICE_PAUSE_PENDING => :SERVICE_PAUSE_PENDING,
|
115
|
-
SERVICE_PAUSED => :SERVICE_PAUSED,
|
116
|
-
SERVICE_RUNNING => :SERVICE_RUNNING,
|
117
|
-
SERVICE_START_PENDING => :SERVICE_START_PENDING,
|
118
|
-
SERVICE_STOP_PENDING => :SERVICE_STOP_PENDING,
|
119
|
-
SERVICE_STOPPED => :SERVICE_STOPPED,
|
120
|
-
}
|
121
|
-
|
122
|
-
# Service accepts control codes
|
123
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
|
124
|
-
SERVICE_ACCEPT_STOP = 0x00000001
|
125
|
-
SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
|
126
|
-
SERVICE_ACCEPT_SHUTDOWN = 0x00000004
|
127
|
-
SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
|
128
|
-
SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
|
129
|
-
SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
|
130
|
-
SERVICE_ACCEPT_POWEREVENT = 0x00000040
|
131
|
-
SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
|
132
|
-
SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
|
133
|
-
SERVICE_ACCEPT_TIMECHANGE = 0x00000200
|
134
|
-
SERVICE_ACCEPT_TRIGGEREVENT = 0x00000400
|
135
|
-
SERVICE_ACCEPT_USER_LOGOFF = 0x00000800
|
136
|
-
|
137
|
-
# Service manager access codes
|
138
|
-
# https://docs.microsoft.com/en-us/windows/desktop/Services/service-security-and-access-rights
|
139
|
-
SC_MANAGER_CREATE_SERVICE = 0x00000002
|
140
|
-
SC_MANAGER_CONNECT = 0x00000001
|
141
|
-
SC_MANAGER_ENUMERATE_SERVICE = 0x00000004
|
142
|
-
SC_MANAGER_LOCK = 0x00000008
|
143
|
-
SC_MANAGER_MODIFY_BOOT_CONFIG = 0x00000020
|
144
|
-
SC_MANAGER_QUERY_LOCK_STATUS = 0x00000010
|
145
|
-
SC_MANAGER_ALL_ACCESS =
|
146
|
-
FILE::STANDARD_RIGHTS_REQUIRED |
|
147
|
-
SC_MANAGER_CREATE_SERVICE |
|
148
|
-
SC_MANAGER_CONNECT |
|
149
|
-
SC_MANAGER_ENUMERATE_SERVICE |
|
150
|
-
SC_MANAGER_LOCK |
|
151
|
-
SC_MANAGER_MODIFY_BOOT_CONFIG |
|
152
|
-
SC_MANAGER_QUERY_LOCK_STATUS
|
153
|
-
|
154
|
-
|
155
|
-
# Service access codes
|
156
|
-
# https://docs.microsoft.com/en-us/windows/desktop/Services/service-security-and-access-rights
|
157
|
-
SERVICE_CHANGE_CONFIG = 0x0002
|
158
|
-
SERVICE_ENUMERATE_DEPENDENTS = 0x0008
|
159
|
-
SERVICE_INTERROGATE = 0x0080
|
160
|
-
SERVICE_PAUSE_CONTINUE = 0x0040
|
161
|
-
SERVICE_QUERY_STATUS = 0x0004
|
162
|
-
SERVICE_QUERY_CONFIG = 0x0001
|
163
|
-
SERVICE_START = 0x0010
|
164
|
-
SERVICE_STOP = 0x0020
|
165
|
-
SERVICE_USER_DEFINED_CONTROL = 0x0100
|
166
|
-
SERVICE_ALL_ACCESS =
|
167
|
-
FILE::STANDARD_RIGHTS_REQUIRED |
|
168
|
-
SERVICE_CHANGE_CONFIG |
|
169
|
-
SERVICE_ENUMERATE_DEPENDENTS |
|
170
|
-
SERVICE_INTERROGATE |
|
171
|
-
SERVICE_PAUSE_CONTINUE |
|
172
|
-
SERVICE_QUERY_STATUS |
|
173
|
-
SERVICE_QUERY_CONFIG |
|
174
|
-
SERVICE_START |
|
175
|
-
SERVICE_STOP |
|
176
|
-
SERVICE_USER_DEFINED_CONTROL
|
177
|
-
|
178
|
-
# Service config codes
|
179
|
-
# From the windows 10 SDK:
|
180
|
-
# //
|
181
|
-
# // Value to indicate no change to an optional parameter
|
182
|
-
# //
|
183
|
-
# #define SERVICE_NO_CHANGE 0xffffffff
|
184
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
|
185
|
-
SERVICE_CONFIG_DESCRIPTION = 0x00000001
|
186
|
-
SERVICE_CONFIG_FAILURE_ACTIONS = 0x00000002
|
187
|
-
SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 0x00000003
|
188
|
-
SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 0x00000004
|
189
|
-
SERVICE_CONFIG_SERVICE_SID_INFO = 0x00000005
|
190
|
-
SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 0x00000006
|
191
|
-
SERVICE_CONFIG_PRESHUTDOWN_INFO = 0x00000007
|
192
|
-
SERVICE_CONFIG_TRIGGER_INFO = 0x00000008
|
193
|
-
SERVICE_CONFIG_PREFERRED_NODE = 0x00000009
|
194
|
-
SERVICE_CONFIG_LAUNCH_PROTECTED = 0x0000000C
|
195
|
-
SERVICE_NO_CHANGE = 0xffffffff
|
196
|
-
SERVICE_CONFIG_TYPES = {
|
197
|
-
SERVICE_CONFIG_DESCRIPTION => :SERVICE_CONFIG_DESCRIPTION,
|
198
|
-
SERVICE_CONFIG_FAILURE_ACTIONS => :SERVICE_CONFIG_FAILURE_ACTIONS,
|
199
|
-
SERVICE_CONFIG_DELAYED_AUTO_START_INFO => :SERVICE_CONFIG_DELAYED_AUTO_START_INFO,
|
200
|
-
SERVICE_CONFIG_FAILURE_ACTIONS_FLAG => :SERVICE_CONFIG_FAILURE_ACTIONS_FLAG,
|
201
|
-
SERVICE_CONFIG_SERVICE_SID_INFO => :SERVICE_CONFIG_SERVICE_SID_INFO,
|
202
|
-
SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO => :SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO,
|
203
|
-
SERVICE_CONFIG_PRESHUTDOWN_INFO => :SERVICE_CONFIG_PRESHUTDOWN_INFO,
|
204
|
-
SERVICE_CONFIG_TRIGGER_INFO => :SERVICE_CONFIG_TRIGGER_INFO,
|
205
|
-
SERVICE_CONFIG_PREFERRED_NODE => :SERVICE_CONFIG_PREFERRED_NODE,
|
206
|
-
SERVICE_CONFIG_LAUNCH_PROTECTED => :SERVICE_CONFIG_LAUNCH_PROTECTED,
|
207
|
-
}
|
208
|
-
|
209
|
-
# Service enum codes
|
210
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexa
|
211
|
-
SERVICE_ACTIVE = 0x00000001
|
212
|
-
SERVICE_INACTIVE = 0x00000002
|
213
|
-
SERVICE_STATE_ALL =
|
214
|
-
SERVICE_ACTIVE |
|
215
|
-
SERVICE_INACTIVE
|
216
|
-
|
217
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_enum_service_status_processw
|
218
|
-
SERVICENAME_MAX = 256
|
219
|
-
|
220
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_service_status_process
|
221
|
-
# typedef struct _SERVICE_STATUS_PROCESS {
|
222
|
-
# DWORD dwServiceType;
|
223
|
-
# DWORD dwCurrentState;
|
224
|
-
# DWORD dwControlsAccepted;
|
225
|
-
# DWORD dwWin32ExitCode;
|
226
|
-
# DWORD dwServiceSpecificExitCode;
|
227
|
-
# DWORD dwCheckPoint;
|
228
|
-
# DWORD dwWaitHint;
|
229
|
-
# DWORD dwProcessId;
|
230
|
-
# DWORD dwServiceFlags;
|
231
|
-
# } SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
|
232
|
-
class SERVICE_STATUS_PROCESS < FFI::Struct
|
233
|
-
layout(
|
234
|
-
:dwServiceType, :dword,
|
235
|
-
:dwCurrentState, :dword,
|
236
|
-
:dwControlsAccepted, :dword,
|
237
|
-
:dwWin32ExitCode, :dword,
|
238
|
-
:dwServiceSpecificExitCode, :dword,
|
239
|
-
:dwCheckPoint, :dword,
|
240
|
-
:dwWaitHint, :dword,
|
241
|
-
:dwProcessId, :dword,
|
242
|
-
:dwServiceFlags, :dword
|
243
|
-
)
|
244
|
-
end
|
245
|
-
|
246
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/winsvc/ns-winsvc-service_delayed_auto_start_info
|
247
|
-
# typedef struct _SERVICE_DELAYED_AUTO_START_INFO {
|
248
|
-
# BOOL fDelayedAutostart;
|
249
|
-
# } SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO;
|
250
|
-
class SERVICE_DELAYED_AUTO_START_INFO < FFI::Struct
|
251
|
-
layout(:fDelayedAutostart, :int)
|
252
|
-
alias aset []=
|
253
|
-
# Intercept the accessor so that we can handle either true/false or 1/0.
|
254
|
-
# Since there is only one member, there’s no need to check the key name.
|
255
|
-
def []=(key, value)
|
256
|
-
[0, false].include?(value) ? aset(key, 0) : aset(key, 1)
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_enum_service_status_processw
|
261
|
-
# typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
|
262
|
-
# LPWSTR lpServiceName;
|
263
|
-
# LPWSTR lpDisplayName;
|
264
|
-
# SERVICE_STATUS_PROCESS ServiceStatusProcess;
|
265
|
-
# } ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW;
|
266
|
-
class ENUM_SERVICE_STATUS_PROCESSW < FFI::Struct
|
267
|
-
layout(
|
268
|
-
:lpServiceName, :pointer,
|
269
|
-
:lpDisplayName, :pointer,
|
270
|
-
:ServiceStatusProcess, SERVICE_STATUS_PROCESS
|
271
|
-
)
|
272
|
-
end
|
273
|
-
|
274
|
-
# typedef struct _SERVICE_STATUS {
|
275
|
-
# DWORD dwServiceType;
|
276
|
-
# DWORD dwCurrentState;
|
277
|
-
# DWORD dwControlsAccepted;
|
278
|
-
# DWORD dwWin32ExitCode;
|
279
|
-
# DWORD dwServiceSpecificExitCode;
|
280
|
-
# DWORD dwCheckPoint;
|
281
|
-
# DWORD dwWaitHint;
|
282
|
-
# } SERVICE_STATUS, *LPSERVICE_STATUS;
|
283
|
-
class SERVICE_STATUS < FFI::Struct
|
284
|
-
layout(
|
285
|
-
:dwServiceType, :dword,
|
286
|
-
:dwCurrentState, :dword,
|
287
|
-
:dwControlsAccepted, :dword,
|
288
|
-
:dwWin32ExitCode, :dword,
|
289
|
-
:dwServiceSpecificExitCode, :dword,
|
290
|
-
:dwCheckPoint, :dword,
|
291
|
-
:dwWaitHint, :dword,
|
292
|
-
)
|
293
|
-
end
|
294
|
-
|
295
|
-
# typedef struct _QUERY_SERVICE_CONFIGW {
|
296
|
-
# DWORD dwServiceType;
|
297
|
-
# DWORD dwStartType;
|
298
|
-
# DWORD dwErrorControl;
|
299
|
-
# LPWSTR lpBinaryPathName;
|
300
|
-
# LPWSTR lpLoadOrderGroup;
|
301
|
-
# DWORD dwTagId;
|
302
|
-
# LPWSTR lpDependencies;
|
303
|
-
# LPWSTR lpServiceStartName;
|
304
|
-
# LPWSTR lpDisplayName;
|
305
|
-
# } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
|
306
|
-
class QUERY_SERVICE_CONFIGW < FFI::Struct
|
307
|
-
layout(
|
308
|
-
:dwServiceType, :dword,
|
309
|
-
:dwStartType, :dword,
|
310
|
-
:dwErrorControl, :dword,
|
311
|
-
:lpBinaryPathName, :pointer,
|
312
|
-
:lpLoadOrderGroup, :pointer,
|
313
|
-
:dwTagId, :dword,
|
314
|
-
:lpDependencies, :pointer,
|
315
|
-
:lpServiceStartName, :pointer,
|
316
|
-
:lpDisplayName, :pointer,
|
317
|
-
)
|
318
|
-
end
|
319
|
-
|
320
26
|
# Returns true if the service exists, false otherwise.
|
321
27
|
#
|
322
28
|
# @param [String] service_name name of the service
|
@@ -991,162 +697,5 @@ module Puppet::Util::Windows
|
|
991
697
|
end
|
992
698
|
private :milliseconds_to_seconds
|
993
699
|
end
|
994
|
-
|
995
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openscmanagerw
|
996
|
-
# SC_HANDLE OpenSCManagerW(
|
997
|
-
# LPCWSTR lpMachineName,
|
998
|
-
# LPCWSTR lpDatabaseName,
|
999
|
-
# DWORD dwDesiredAccess
|
1000
|
-
# );
|
1001
|
-
ffi_lib :advapi32
|
1002
|
-
attach_function_private :OpenSCManagerW,
|
1003
|
-
[:lpcwstr, :lpcwstr, :dword], :handle
|
1004
|
-
|
1005
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openservicew
|
1006
|
-
# SC_HANDLE OpenServiceW(
|
1007
|
-
# SC_HANDLE hSCManager,
|
1008
|
-
# LPCWSTR lpServiceName,
|
1009
|
-
# DWORD dwDesiredAccess
|
1010
|
-
# );
|
1011
|
-
ffi_lib :advapi32
|
1012
|
-
attach_function_private :OpenServiceW,
|
1013
|
-
[:handle, :lpcwstr, :dword], :handle
|
1014
|
-
|
1015
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-closeservicehandle
|
1016
|
-
# BOOL CloseServiceHandle(
|
1017
|
-
# SC_HANDLE hSCObject
|
1018
|
-
# );
|
1019
|
-
ffi_lib :advapi32
|
1020
|
-
attach_function_private :CloseServiceHandle,
|
1021
|
-
[:handle], :win32_bool
|
1022
|
-
|
1023
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-queryservicestatusex
|
1024
|
-
# BOOL QueryServiceStatusEx(
|
1025
|
-
# SC_HANDLE hService,
|
1026
|
-
# SC_STATUS_TYPE InfoLevel,
|
1027
|
-
# LPBYTE lpBuffer,
|
1028
|
-
# DWORD cbBufSize,
|
1029
|
-
# LPDWORD pcbBytesNeeded
|
1030
|
-
# );
|
1031
|
-
SC_STATUS_TYPE = enum(
|
1032
|
-
:SC_STATUS_PROCESS_INFO, 0,
|
1033
|
-
)
|
1034
|
-
ffi_lib :advapi32
|
1035
|
-
attach_function_private :QueryServiceStatusEx,
|
1036
|
-
[:handle, SC_STATUS_TYPE, :lpbyte, :dword, :lpdword], :win32_bool
|
1037
|
-
|
1038
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-queryserviceconfigw
|
1039
|
-
# BOOL QueryServiceConfigW(
|
1040
|
-
# SC_HANDLE hService,
|
1041
|
-
# LPQUERY_SERVICE_CONFIGW lpServiceConfig,
|
1042
|
-
# DWORD cbBufSize,
|
1043
|
-
# LPDWORD pcbBytesNeeded
|
1044
|
-
# );
|
1045
|
-
ffi_lib :advapi32
|
1046
|
-
attach_function_private :QueryServiceConfigW,
|
1047
|
-
[:handle, :lpbyte, :dword, :lpdword], :win32_bool
|
1048
|
-
|
1049
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-queryserviceconfig2w
|
1050
|
-
# BOOL QueryServiceConfig2W(
|
1051
|
-
# SC_HANDLE hService,
|
1052
|
-
# DWORD dwInfoLevel,
|
1053
|
-
# LPBYTE lpBuffer,
|
1054
|
-
# DWORD cbBufSize,
|
1055
|
-
# LPDWORD pcbBytesNeeded
|
1056
|
-
# );
|
1057
|
-
ffi_lib :advapi32
|
1058
|
-
attach_function_private :QueryServiceConfig2W,
|
1059
|
-
[:handle, :dword, :lpbyte, :dword, :lpdword], :win32_bool
|
1060
|
-
|
1061
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-startservicew
|
1062
|
-
# BOOL StartServiceW(
|
1063
|
-
# SC_HANDLE hService,
|
1064
|
-
# DWORD dwNumServiceArgs,
|
1065
|
-
# LPCWSTR *lpServiceArgVectors
|
1066
|
-
# );
|
1067
|
-
ffi_lib :advapi32
|
1068
|
-
attach_function_private :StartServiceW,
|
1069
|
-
[:handle, :dword, :pointer], :win32_bool
|
1070
|
-
|
1071
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-controlservice
|
1072
|
-
# BOOL ControlService(
|
1073
|
-
# SC_HANDLE hService,
|
1074
|
-
# DWORD dwControl,
|
1075
|
-
# LPSERVICE_STATUS lpServiceStatus
|
1076
|
-
# );
|
1077
|
-
ffi_lib :advapi32
|
1078
|
-
attach_function_private :ControlService,
|
1079
|
-
[:handle, :dword, :pointer], :win32_bool
|
1080
|
-
|
1081
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-changeserviceconfigw
|
1082
|
-
# BOOL ChangeServiceConfigW(
|
1083
|
-
# SC_HANDLE hService,
|
1084
|
-
# DWORD dwServiceType,
|
1085
|
-
# DWORD dwStartType,
|
1086
|
-
# DWORD dwErrorControl,
|
1087
|
-
# LPCWSTR lpBinaryPathName,
|
1088
|
-
# LPCWSTR lpLoadOrderGroup,
|
1089
|
-
# LPDWORD lpdwTagId,
|
1090
|
-
# LPCWSTR lpDependencies,
|
1091
|
-
# LPCWSTR lpServiceStartName,
|
1092
|
-
# LPCWSTR lpPassword,
|
1093
|
-
# LPCWSTR lpDisplayName
|
1094
|
-
# );
|
1095
|
-
ffi_lib :advapi32
|
1096
|
-
attach_function_private :ChangeServiceConfigW,
|
1097
|
-
[
|
1098
|
-
:handle,
|
1099
|
-
:dword,
|
1100
|
-
:dword,
|
1101
|
-
:dword,
|
1102
|
-
:lpcwstr,
|
1103
|
-
:lpcwstr,
|
1104
|
-
:lpdword,
|
1105
|
-
:lpcwstr,
|
1106
|
-
:lpcwstr,
|
1107
|
-
:lpcwstr,
|
1108
|
-
:lpcwstr
|
1109
|
-
], :win32_bool
|
1110
|
-
|
1111
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
|
1112
|
-
# BOOL ChangeServiceConfig2W(
|
1113
|
-
# SC_HANDLE hService,
|
1114
|
-
# DWORD dwInfoLevel,
|
1115
|
-
# LPVOID lpInfo
|
1116
|
-
# );
|
1117
|
-
ffi_lib :advapi32
|
1118
|
-
attach_function_private :ChangeServiceConfig2W,
|
1119
|
-
[:handle, :dword, :lpvoid], :win32_bool
|
1120
|
-
|
1121
|
-
# https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexw
|
1122
|
-
# BOOL EnumServicesStatusExW(
|
1123
|
-
# SC_HANDLE hSCManager,
|
1124
|
-
# SC_ENUM_TYPE InfoLevel,
|
1125
|
-
# DWORD dwServiceType,
|
1126
|
-
# DWORD dwServiceState,
|
1127
|
-
# LPBYTE lpServices,
|
1128
|
-
# DWORD cbBufSize,
|
1129
|
-
# LPDWORD pcbBytesNeeded,
|
1130
|
-
# LPDWORD lpServicesReturned,
|
1131
|
-
# LPDWORD lpResumeHandle,
|
1132
|
-
# LPCWSTR pszGroupName
|
1133
|
-
# );
|
1134
|
-
SC_ENUM_TYPE = enum(
|
1135
|
-
:SC_ENUM_PROCESS_INFO, 0,
|
1136
|
-
)
|
1137
|
-
ffi_lib :advapi32
|
1138
|
-
attach_function_private :EnumServicesStatusExW,
|
1139
|
-
[
|
1140
|
-
:handle,
|
1141
|
-
SC_ENUM_TYPE,
|
1142
|
-
:dword,
|
1143
|
-
:dword,
|
1144
|
-
:lpbyte,
|
1145
|
-
:dword,
|
1146
|
-
:lpdword,
|
1147
|
-
:lpdword,
|
1148
|
-
:lpdword,
|
1149
|
-
:lpcwstr
|
1150
|
-
], :win32_bool
|
1151
700
|
end
|
1152
701
|
end
|