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
@@ -340,10 +340,10 @@ module Puppet::Util::Windows::Security
|
|
340
340
|
Puppet.warning _("Setting control rights for %{path} owner SYSTEM to less than Full Control rights. Setting SYSTEM rights to less than Full Control may have unintented consequences for operations on this file") % { path: path }
|
341
341
|
elsif managing_owner && isownergroup
|
342
342
|
#TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
|
343
|
-
Puppet.debug _("%{path} owner and group both set to user SYSTEM, but group is not managed directly: SYSTEM user rights will be set to FullControl by group") % { path: path }
|
343
|
+
Puppet.debug { _("%{path} owner and group both set to user SYSTEM, but group is not managed directly: SYSTEM user rights will be set to FullControl by group") % { path: path } }
|
344
344
|
else
|
345
345
|
#TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
|
346
|
-
Puppet.debug _("An attempt to set mode %{mode} on item %{path} would result in the owner, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path }
|
346
|
+
Puppet.debug { _("An attempt to set mode %{mode} on item %{path} would result in the owner, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path } }
|
347
347
|
owner_allow = FILE::FILE_ALL_ACCESS
|
348
348
|
end
|
349
349
|
end
|
@@ -356,10 +356,10 @@ module Puppet::Util::Windows::Security
|
|
356
356
|
Puppet.warning _("Setting control rights for %{path} group SYSTEM to less than Full Control rights. Setting SYSTEM rights to less than Full Control may have unintented consequences for operations on this file") % { path: path }
|
357
357
|
elsif managing_group && isownergroup
|
358
358
|
#TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
|
359
|
-
Puppet.debug _("%{path} owner and group both set to user SYSTEM, but owner is not managed directly: SYSTEM user rights will be set to FullControl by owner") % { path: path }
|
359
|
+
Puppet.debug { _("%{path} owner and group both set to user SYSTEM, but owner is not managed directly: SYSTEM user rights will be set to FullControl by owner") % { path: path } }
|
360
360
|
else
|
361
361
|
#TRANSLATORS 'SYSTEM' is a Windows name and should not be translated
|
362
|
-
Puppet.debug _("An attempt to set mode %{mode} on item %{path} would result in the group, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path }
|
362
|
+
Puppet.debug { _("An attempt to set mode %{mode} on item %{path} would result in the group, SYSTEM, to have less than Full Control rights. This attempt has been corrected to Full Control") % { mode: mode.to_s(8), path: path } }
|
363
363
|
group_allow = FILE::FILE_ALL_ACCESS
|
364
364
|
end
|
365
365
|
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 = 0x00000012
|
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
|