puppet 6.25.1-x86-mingw32 → 7.0.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +3 -5
- data/Gemfile.lock +39 -51
- data/README.md +5 -5
- data/conf/fileserver.conf +5 -10
- data/ext/README.environment +8 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/dbfix.sql +132 -0
- data/ext/debian/README.Debian +8 -0
- data/ext/debian/README.source +2 -0
- data/ext/debian/TODO.Debian +1 -0
- data/ext/debian/changelog.erb +1122 -0
- data/ext/debian/compat +1 -0
- data/ext/debian/control +144 -0
- data/ext/debian/copyright +339 -0
- data/ext/debian/docs +1 -0
- data/ext/debian/fileserver.conf +41 -0
- data/ext/debian/puppet-common.dirs +13 -0
- data/ext/debian/puppet-common.install +3 -0
- data/ext/debian/puppet-common.lintian-overrides +5 -0
- data/ext/debian/puppet-common.manpages +28 -0
- data/ext/debian/puppet-common.postinst +35 -0
- data/ext/debian/puppet-common.postrm +33 -0
- data/ext/debian/puppet-el.dirs +1 -0
- data/ext/debian/puppet-el.emacsen-install +25 -0
- data/ext/debian/puppet-el.emacsen-remove +11 -0
- data/ext/debian/puppet-el.emacsen-startup +9 -0
- data/ext/debian/puppet-el.install +1 -0
- data/ext/debian/puppet-testsuite.install +2 -0
- data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
- data/ext/debian/puppet.lintian-overrides +3 -0
- data/ext/debian/puppet.logrotate +20 -0
- data/ext/debian/puppet.postinst +20 -0
- data/ext/debian/puppet.postrm +20 -0
- data/ext/debian/puppet.preinst +20 -0
- data/ext/debian/puppetmaster-common.install +2 -0
- data/ext/debian/puppetmaster-common.manpages +2 -0
- data/ext/debian/puppetmaster-common.postinst +6 -0
- data/ext/debian/puppetmaster-passenger.dirs +4 -0
- data/ext/debian/puppetmaster-passenger.postinst +162 -0
- data/ext/debian/puppetmaster-passenger.postrm +61 -0
- data/ext/debian/puppetmaster.README.debian +17 -0
- data/ext/debian/puppetmaster.default +14 -0
- data/ext/debian/puppetmaster.init +137 -0
- data/ext/debian/puppetmaster.lintian-overrides +3 -0
- data/ext/debian/puppetmaster.postinst +20 -0
- data/ext/debian/puppetmaster.postrm +5 -0
- data/ext/debian/puppetmaster.preinst +22 -0
- data/ext/debian/rules +132 -0
- data/ext/debian/source/format +1 -0
- data/ext/debian/source/options +1 -0
- data/ext/debian/vim-puppet.README.Debian +13 -0
- data/ext/debian/vim-puppet.dirs +5 -0
- data/ext/debian/vim-puppet.yaml +7 -0
- data/ext/debian/watch +2 -0
- data/ext/freebsd/puppetd +26 -0
- data/ext/freebsd/puppetmasterd +26 -0
- data/ext/gentoo/conf.d/puppet +5 -0
- data/ext/gentoo/conf.d/puppetmaster +12 -0
- data/ext/gentoo/init.d/puppet +38 -0
- data/ext/gentoo/init.d/puppetmaster +51 -0
- data/ext/gentoo/puppet/fileserver.conf +41 -0
- data/ext/ips/puppet-agent +44 -0
- data/ext/ips/puppet-master +44 -0
- data/ext/ips/puppet.p5m.erb +12 -0
- data/ext/ips/puppetagent.xml +42 -0
- data/ext/ips/puppetmaster.xml +42 -0
- data/ext/ips/rules +19 -0
- data/ext/ips/transforms +34 -0
- data/ext/ldap/puppet.schema +24 -0
- data/ext/logcheck/puppet +23 -0
- data/{examples → ext}/nagios/check_puppet.rb +2 -2
- data/ext/osx/file_mapping.yaml +28 -0
- data/ext/osx/postflight.erb +109 -0
- data/ext/osx/preflight.erb +52 -0
- data/ext/osx/prototype.plist.erb +38 -0
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -15
- data/ext/redhat/fileserver.conf +41 -0
- data/ext/redhat/logrotate +21 -0
- data/ext/redhat/puppet.spec.erb +841 -0
- data/ext/redhat/server.init +128 -0
- data/ext/redhat/server.sysconfig +13 -0
- data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
- data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
- data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
- data/ext/solaris/pkginfo +6 -0
- data/ext/solaris/smf/puppetd.xml +77 -0
- data/ext/solaris/smf/puppetmasterd.xml +77 -0
- data/ext/solaris/smf/svc-puppetd +71 -0
- data/ext/solaris/smf/svc-puppetmasterd +67 -0
- data/ext/suse/puppet.spec +310 -0
- data/ext/suse/server.init +173 -0
- data/ext/windows/service/daemon.rb +6 -5
- data/ext/yaml_nodes.rb +105 -0
- data/install.rb +21 -17
- data/lib/puppet/application/agent.rb +4 -16
- data/lib/puppet/application/apply.rb +4 -24
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -10
- data/lib/puppet/application/resource.rb +16 -32
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -13
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/configurer.rb +86 -189
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +128 -232
- data/lib/puppet/environments.rb +82 -146
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +0 -11
- data/lib/puppet/face/plugin.rb +5 -8
- 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/ffi/windows.rb +12 -0
- data/lib/puppet/file_serving/configuration/parser.rb +3 -34
- data/lib/puppet/file_serving/configuration.rb +0 -8
- data/lib/puppet/file_serving/fileset.rb +2 -14
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +1 -3
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +2 -4
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/empty.rb +0 -8
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +5 -13
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +4 -12
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +0 -1
- data/lib/puppet/functions/tree_each.rb +9 -7
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +2 -17
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/generate/models/type/type.rb +4 -1
- 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 -15
- 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 -17
- data/lib/puppet/http/resolver/server_list.rb +10 -25
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/resolver.rb +5 -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/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -144
- data/lib/puppet/http/service/file_server.rb +19 -29
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/indirector/catalog/compiler.rb +6 -25
- data/lib/puppet/indirector/catalog/rest.rb +2 -5
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- 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 -10
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/indirection.rb +1 -1
- 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/resource/ral.rb +1 -6
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/terminus.rb +0 -4
- data/lib/puppet/interface/documentation.rb +0 -1
- data/lib/puppet/module/plan.rb +1 -0
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -56
- data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/errors/shared.rb +2 -34
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +0 -67
- data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
- 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.rb +3 -3
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node/environment.rb +11 -10
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +2 -3
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +1 -70
- data/lib/puppet/parser/scope.rb +0 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +5 -7
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
- 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/lookup/lookup_adapter.rb +2 -3
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -291
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +1 -47
- 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 +1691 -1883
- data/lib/puppet/pops/parser/lexer2.rb +91 -92
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/parser/slurp_support.rb +0 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_formatter.rb +3 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +1 -2
- 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/property/list.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +4 -16
- data/lib/puppet/provider/group/groupadd.rb +10 -18
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +2 -34
- data/lib/puppet/provider/package/aptitude.rb +0 -6
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/nim.rb +6 -11
- data/lib/puppet/provider/package/pip.rb +3 -16
- data/lib/puppet/provider/package/pkg.rb +2 -23
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +0 -3
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +0 -2
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +2 -2
- data/lib/puppet/provider/service/redhat.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +194 -76
- data/lib/puppet/provider/service/systemd.rb +6 -16
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +3 -46
- data/lib/puppet/provider/user/directoryservice.rb +11 -34
- data/lib/puppet/provider/user/useradd.rb +24 -134
- data/lib/puppet/provider.rb +1 -14
- data/lib/puppet/reference/configuration.rb +8 -7
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/catalog.rb +2 -15
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -49
- data/lib/puppet/resource.rb +6 -127
- data/lib/puppet/runtime.rb +2 -13
- data/lib/puppet/settings/environment_conf.rb +0 -1
- 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/settings.rb +82 -98
- 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/ssl.rb +10 -6
- data/lib/puppet/test/test_helper.rb +2 -7
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +1 -11
- data/lib/puppet/transaction/report.rb +3 -19
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/type/exec.rb +5 -35
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -6
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/file.rb +12 -32
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/group.rb +1 -0
- data/lib/puppet/type/package.rb +8 -16
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +41 -26
- data/lib/puppet/type/tidy.rb +3 -22
- data/lib/puppet/type/user.rb +21 -38
- data/lib/puppet/type.rb +1 -77
- data/lib/puppet/util/autoload.rb +8 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/json.rb +0 -3
- data/lib/puppet/util/log.rb +2 -1
- data/lib/puppet/util/logging.rb +25 -1
- data/lib/puppet/util/monkey_patches.rb +0 -53
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/posix.rb +5 -54
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- 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/selinux.rb +4 -30
- data/lib/puppet/util/suidmanager.rb +2 -1
- data/lib/puppet/util/symbolic_file_mode.rb +17 -29
- data/lib/puppet/util/tagging.rb +0 -1
- data/lib/puppet/util/windows/adsi.rb +0 -46
- 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/principal.rb +2 -9
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +11 -457
- data/lib/puppet/util/windows/sid.rb +2 -6
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +2 -0
- data/lib/puppet/util/windows.rb +3 -11
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/util.rb +3 -4
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet.rb +20 -25
- data/locales/puppet.pot +816 -1637
- data/man/man5/puppet.conf.5 +286 -382
- data/man/man8/puppet-agent.8 +2 -5
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +9 -9
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +8 -51
- data/man/man8/puppet-filebucket.8 +4 -4
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +3 -60
- data/man/man8/puppet-node.8 +5 -5
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +5 -5
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -5
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
- data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/ca.pem +35 -57
- data/spec/fixtures/ssl/crl.pem +18 -28
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +24 -33
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +58 -108
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
- data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
- data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
- data/spec/fixtures/ssl/intermediate.pem +36 -57
- data/spec/fixtures/ssl/pluto-key.pem +57 -107
- data/spec/fixtures/ssl/pluto.pem +30 -52
- data/spec/fixtures/ssl/request-key.pem +57 -107
- data/spec/fixtures/ssl/request.pem +26 -47
- data/spec/fixtures/ssl/revoked-key.pem +57 -107
- data/spec/fixtures/ssl/revoked.pem +30 -52
- data/spec/fixtures/ssl/signed-key.pem +57 -107
- data/spec/fixtures/ssl/signed.pem +30 -52
- data/spec/fixtures/ssl/tampered-cert.pem +30 -52
- data/spec/fixtures/ssl/tampered-csr.pem +26 -47
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
- data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-ca.pem +33 -55
- 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 +0 -4
- data/spec/integration/application/agent_spec.rb +51 -299
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -32
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/module_spec.rb +0 -21
- data/spec/integration/application/plugin_spec.rb +24 -2
- data/spec/integration/configurer_spec.rb +2 -18
- data/spec/integration/defaults_spec.rb +14 -3
- data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
- data/spec/integration/http/client_spec.rb +0 -12
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
- data/spec/integration/indirector/facts/facter_spec.rb +39 -93
- 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 -47
- data/spec/integration/resource/type_collection_spec.rb +6 -2
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +9 -4
- data/spec/integration/type/exec_spec.rb +45 -70
- data/spec/integration/type/file_spec.rb +7 -6
- data/spec/integration/type/package_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/adsi_spec.rb +1 -21
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/principal_spec.rb +0 -21
- data/spec/integration/util/windows/process_spec.rb +9 -1
- data/spec/integration/util/windows/registry_spec.rb +10 -6
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/puppet/test_ca.rb +2 -7
- data/spec/lib/puppet_spec/modules.rb +2 -13
- data/spec/lib/puppet_spec/puppetserver.rb +1 -16
- data/spec/lib/puppet_spec/settings.rb +1 -1
- data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
- data/spec/spec_helper.rb +17 -13
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- data/spec/unit/application/apply_spec.rb +56 -76
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/resource_spec.rb +0 -29
- data/spec/unit/application/ssl_spec.rb +2 -25
- data/spec/unit/application_spec.rb +9 -51
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -8
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +68 -264
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +2 -8
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +68 -55
- data/spec/unit/environments_spec.rb +68 -408
- data/spec/unit/face/node_spec.rb +11 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
- data/spec/unit/file_serving/configuration_spec.rb +10 -26
- data/spec/unit/file_serving/fileset_spec.rb +0 -60
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/file_system_spec.rb +0 -22
- data/spec/unit/forge/module_release_spec.rb +7 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- 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/empty_spec.rb +0 -10
- data/spec/unit/functions/logging_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +0 -64
- data/spec/unit/functions/unwrap_spec.rb +0 -8
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +0 -12
- data/spec/unit/http/client_spec.rb +8 -66
- 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 -30
- 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 -193
- 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/catalog/compiler_spec.rb +10 -101
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
- data/spec/unit/indirector/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +3 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
- 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/indirection_spec.rb +15 -18
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/resource/ral_spec.rb +75 -40
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/store_configs_spec.rb +7 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/action_spec.rb +9 -0
- data/spec/unit/module_spec.rb +1 -15
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
- 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 +4 -51
- data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -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/compiler_spec.rb +19 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
- data/spec/unit/parser/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +5 -16
- 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_containers_spec.rb +11 -0
- 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 -59
- data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
- 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/property_spec.rb +0 -1
- data/spec/unit/provider/group/groupadd_spec.rb +2 -5
- data/spec/unit/provider/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +23 -28
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +5 -6
- data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +33 -1
- data/spec/unit/provider/package/nim_spec.rb +0 -42
- data/spec/unit/provider/package/pacman_spec.rb +12 -18
- data/spec/unit/provider/package/pip2_spec.rb +1 -1
- data/spec/unit/provider/package/pip3_spec.rb +1 -1
- data/spec/unit/provider/package/pip_spec.rb +12 -44
- data/spec/unit/provider/package/pkg_spec.rb +4 -29
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/init_spec.rb +0 -1
- data/spec/unit/provider/service/launchd_spec.rb +0 -11
- data/spec/unit/provider/service/openwrt_spec.rb +1 -3
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/systemd_spec.rb +9 -54
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -105
- data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +5 -114
- data/spec/unit/provider_spec.rb +12 -22
- data/spec/unit/puppet_spec.rb +4 -12
- data/spec/unit/resource/catalog_spec.rb +2 -15
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +12 -125
- 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 +79 -110
- data/spec/unit/ssl/base_spec.rb +37 -3
- data/spec/unit/ssl/certificate_request_spec.rb +21 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
- data/spec/unit/ssl/state_machine_spec.rb +5 -20
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
- data/spec/unit/transaction/event_manager_spec.rb +11 -14
- 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 +55 -96
- data/spec/unit/type/exec_spec.rb +29 -76
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +2 -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/selinux_spec.rb +5 -3
- data/spec/unit/type/file/source_spec.rb +4 -5
- data/spec/unit/type/file_spec.rb +18 -6
- data/spec/unit/type/group_spec.rb +6 -13
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +189 -87
- data/spec/unit/type/tidy_spec.rb +8 -24
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/type_spec.rb +24 -4
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +1 -5
- data/spec/unit/util/backups_spec.rb +2 -3
- data/spec/unit/util/execution_spec.rb +11 -44
- data/spec/unit/util/inifile_spec.rb +14 -6
- data/spec/unit/util/log_spec.rb +7 -8
- data/spec/unit/util/logging_spec.rb +3 -5
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +15 -363
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/selinux_spec.rb +68 -163
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- data/spec/unit/util/windows/sid_spec.rb +0 -41
- 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 +6 -31
- data/tasks/generate_cert_fixtures.rake +3 -12
- data/tasks/parallel.rake +3 -3
- metadata +137 -288
- data/conf/auth.conf +0 -150
- data/ext/README.md +0 -13
- 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/facter_impl.rb +0 -96
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.rb +0 -24
- data/lib/puppet/ffi/posix.rb +0 -10
- data/lib/puppet/file_serving/mount/scripts.rb +0 -24
- 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/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/indirector/status.rb +0 -3
- 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/settings/alias_setting.rb +0 -37
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.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/validator.rb +0 -61
- 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 -81
- 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/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/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- 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/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
- data/spec/fixtures/ssl/oid-key.pem +0 -117
- data/spec/fixtures/ssl/oid.pem +0 -69
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
- data/spec/integration/application/resource_spec.rb +0 -64
- data/spec/integration/application/ssl_spec.rb +0 -20
- data/spec/integration/l10n/compiler_spec.rb +0 -37
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/shared_contexts/l10n.rb +0 -27
- 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/facter_impl_spec.rb +0 -31
- data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
- 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 -407
- 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/evaluator/deferred_resolver_spec.rb +0 -20
- 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
data/lib/puppet/util/selinux.rb
CHANGED
@@ -13,10 +13,6 @@ require 'pathname'
|
|
13
13
|
|
14
14
|
module Puppet::Util::SELinux
|
15
15
|
|
16
|
-
S_IFREG = 0100000
|
17
|
-
S_IFDIR = 0040000
|
18
|
-
S_IFLNK = 0120000
|
19
|
-
|
20
16
|
def self.selinux_support?
|
21
17
|
return false unless defined?(Selinux)
|
22
18
|
if Selinux.is_selinux_enabled == 1
|
@@ -42,7 +38,7 @@ module Puppet::Util::SELinux
|
|
42
38
|
|
43
39
|
# Retrieve and return the default context of the file. If we don't have
|
44
40
|
# SELinux support or if the SELinux call fails to file a default then return nil.
|
45
|
-
def get_selinux_default_context(file
|
41
|
+
def get_selinux_default_context(file)
|
46
42
|
return nil unless selinux_support?
|
47
43
|
# If the filesystem has no support for SELinux labels, return a default of nil
|
48
44
|
# instead of what matchpathcon would return
|
@@ -52,14 +48,8 @@ module Puppet::Util::SELinux
|
|
52
48
|
begin
|
53
49
|
filestat = file_lstat(file)
|
54
50
|
mode = filestat.mode
|
55
|
-
rescue Errno::EACCES
|
51
|
+
rescue Errno::EACCES, Errno::ENOENT
|
56
52
|
mode = 0
|
57
|
-
rescue Errno::ENOENT
|
58
|
-
if resource_ensure
|
59
|
-
mode = get_create_mode(resource_ensure)
|
60
|
-
else
|
61
|
-
mode = 0
|
62
|
-
end
|
63
53
|
end
|
64
54
|
|
65
55
|
retval = Selinux.matchpathcon(file, mode)
|
@@ -146,8 +136,8 @@ module Puppet::Util::SELinux
|
|
146
136
|
# Puppet uses. This will set the file's SELinux context to the policy's
|
147
137
|
# default context (if any) if it differs from the context currently on
|
148
138
|
# the file.
|
149
|
-
def set_selinux_default_context(file
|
150
|
-
new_context = get_selinux_default_context(file
|
139
|
+
def set_selinux_default_context(file)
|
140
|
+
new_context = get_selinux_default_context(file)
|
151
141
|
return nil unless new_context
|
152
142
|
cur_context = get_selinux_current_context(file)
|
153
143
|
if new_context != cur_context
|
@@ -208,22 +198,6 @@ module Puppet::Util::SELinux
|
|
208
198
|
filesystems.include?(fstype)
|
209
199
|
end
|
210
200
|
|
211
|
-
# Get mode file type bits set based on ensure on
|
212
|
-
# the file resource. This helps SELinux determine
|
213
|
-
# what context a new resource being created should have.
|
214
|
-
def get_create_mode(resource_ensure)
|
215
|
-
mode = 0
|
216
|
-
case resource_ensure
|
217
|
-
when :present, :file
|
218
|
-
mode |= S_IFREG
|
219
|
-
when :directory
|
220
|
-
mode |= S_IFDIR
|
221
|
-
when :link
|
222
|
-
mode |= S_IFLNK
|
223
|
-
end
|
224
|
-
mode
|
225
|
-
end
|
226
|
-
|
227
201
|
# Internal helper function to read and parse /proc/mounts
|
228
202
|
def read_mounts
|
229
203
|
mounts = ""
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'facter'
|
1
2
|
require 'puppet/util/warnings'
|
2
3
|
require 'forwardable'
|
3
4
|
require 'etc'
|
@@ -17,7 +18,7 @@ module Puppet::Util::SUIDManager
|
|
17
18
|
|
18
19
|
def osx_maj_ver
|
19
20
|
return @osx_maj_ver unless @osx_maj_ver.nil?
|
20
|
-
@osx_maj_ver =
|
21
|
+
@osx_maj_ver = Facter.value('macosx_productversion_major') || false
|
21
22
|
end
|
22
23
|
module_function :osx_maj_ver
|
23
24
|
|
@@ -19,37 +19,25 @@ module SymbolicFileMode
|
|
19
19
|
return false
|
20
20
|
end
|
21
21
|
|
22
|
-
def display_mode(value)
|
23
|
-
if value =~ /^0?[0-7]{1,4}$/
|
24
|
-
value.rjust(4, "0")
|
25
|
-
else
|
26
|
-
value
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
22
|
def normalize_symbolic_mode(value)
|
31
23
|
return nil if value.nil?
|
32
24
|
|
33
25
|
# We need to treat integers as octal numbers.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
if value.is_a? Numeric
|
39
|
-
value.to_s(8)
|
40
|
-
elsif value =~ /^0?[0-7]{1,4}$/
|
41
|
-
value.to_i(8).to_s(8) # strip leading 0's
|
26
|
+
if value.is_a? Numeric then
|
27
|
+
return value.to_s(8)
|
28
|
+
elsif value =~ /^0?[0-7]{1,4}$/ then
|
29
|
+
return value.to_i(8).to_s(8)
|
42
30
|
else
|
43
|
-
value
|
31
|
+
return value
|
44
32
|
end
|
45
33
|
end
|
46
34
|
|
47
35
|
def symbolic_mode_to_int(modification, to_mode = 0, is_a_directory = false)
|
48
|
-
if modification.nil? or modification == ''
|
36
|
+
if modification.nil? or modification == '' then
|
49
37
|
raise Puppet::Error, _("An empty mode string is illegal")
|
50
|
-
|
51
|
-
|
52
|
-
|
38
|
+
end
|
39
|
+
if modification =~ /^[0-7]+$/ then return modification.to_i(8) end
|
40
|
+
if modification =~ /^\d+$/ then
|
53
41
|
raise Puppet::Error, _("Numeric modes must be in octal, not decimal!")
|
54
42
|
end
|
55
43
|
|
@@ -96,31 +84,31 @@ module SymbolicFileMode
|
|
96
84
|
|
97
85
|
dsl.split('').each do |op|
|
98
86
|
case op
|
99
|
-
when /[-+=]/
|
87
|
+
when /[-+=]/ then
|
100
88
|
action = op
|
101
89
|
# Clear all bits, if this is assignment
|
102
90
|
value = 0 if op == '='
|
103
91
|
|
104
|
-
when /[ugo]/
|
92
|
+
when /[ugo]/ then
|
105
93
|
value = actions[action].call(value, snapshot_mode[op])
|
106
94
|
|
107
|
-
when /[rwx]/
|
95
|
+
when /[rwx]/ then
|
108
96
|
value = actions[action].call(value, SymbolicMode[op])
|
109
97
|
|
110
|
-
when 'X'
|
98
|
+
when 'X' then
|
111
99
|
# Only meaningful in combination with "set" actions.
|
112
|
-
if action != '+'
|
100
|
+
if action != '+' then
|
113
101
|
raise Puppet::Error, _("X only works with the '+' operator")
|
114
102
|
end
|
115
103
|
|
116
104
|
# As per the BSD manual page, set if this is a directory, or if
|
117
105
|
# any execute bit is set on the original (unmodified) mode.
|
118
106
|
# Ignored otherwise; it is "add if", not "add or clear".
|
119
|
-
if is_a_directory or original_mode['any x?']
|
107
|
+
if is_a_directory or original_mode['any x?'] then
|
120
108
|
value = actions[action].call(value, ExecBit)
|
121
109
|
end
|
122
110
|
|
123
|
-
when /[st]/
|
111
|
+
when /[st]/ then
|
124
112
|
bit = SymbolicSpecialToBit[op][who] or fail _("internal error")
|
125
113
|
final_mode['s'] = actions[action].call(final_mode['s'], bit)
|
126
114
|
|
@@ -134,7 +122,7 @@ module SymbolicFileMode
|
|
134
122
|
end
|
135
123
|
|
136
124
|
rescue Puppet::Error => e
|
137
|
-
if part.inspect != modification.inspect
|
125
|
+
if part.inspect != modification.inspect then
|
138
126
|
rest = " at #{part.inspect}"
|
139
127
|
else
|
140
128
|
rest = ''
|
data/lib/puppet/util/tagging.rb
CHANGED
@@ -504,43 +504,6 @@ module Puppet::Util::Windows::ADSI
|
|
504
504
|
user_name
|
505
505
|
end
|
506
506
|
|
507
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/secext/ne-secext-extended_name_format
|
508
|
-
NameUnknown = 0
|
509
|
-
NameFullyQualifiedDN = 1
|
510
|
-
NameSamCompatible = 2
|
511
|
-
NameDisplay = 3
|
512
|
-
NameUniqueId = 6
|
513
|
-
NameCanonical = 7
|
514
|
-
NameUserPrincipal = 8
|
515
|
-
NameCanonicalEx = 9
|
516
|
-
NameServicePrincipal = 10
|
517
|
-
NameDnsDomain = 12
|
518
|
-
NameGivenName = 13
|
519
|
-
NameSurname = 14
|
520
|
-
|
521
|
-
def self.current_user_name_with_format(format)
|
522
|
-
user_name = ''
|
523
|
-
max_length = 1024
|
524
|
-
|
525
|
-
FFI::MemoryPointer.new(:lpwstr, max_length * 2 + 1) do |buffer|
|
526
|
-
FFI::MemoryPointer.new(:dword, 1) do |buffer_size|
|
527
|
-
buffer_size.write_dword(max_length + 1)
|
528
|
-
|
529
|
-
if GetUserNameExW(format.to_i, buffer, buffer_size) == FFI::WIN32_FALSE
|
530
|
-
raise Puppet::Util::Windows::Error.new(_("Failed to get user name"), FFI.errno)
|
531
|
-
end
|
532
|
-
|
533
|
-
user_name = buffer.read_wide_string(buffer_size.read_dword).chomp
|
534
|
-
end
|
535
|
-
end
|
536
|
-
|
537
|
-
user_name
|
538
|
-
end
|
539
|
-
|
540
|
-
def self.current_sam_compatible_user_name
|
541
|
-
current_user_name_with_format(NameSamCompatible)
|
542
|
-
end
|
543
|
-
|
544
507
|
def self.current_user_sid
|
545
508
|
Puppet::Util::Windows::SID.name_to_principal(current_user_name)
|
546
509
|
end
|
@@ -555,15 +518,6 @@ module Puppet::Util::Windows::ADSI
|
|
555
518
|
ffi_lib :advapi32
|
556
519
|
attach_function_private :GetUserNameW,
|
557
520
|
[:lpwstr, :lpdword], :win32_bool
|
558
|
-
|
559
|
-
# https://docs.microsoft.com/en-us/windows/win32/api/secext/nf-secext-getusernameexa
|
560
|
-
# BOOLEAN SEC_ENTRY GetUserNameExA(
|
561
|
-
# EXTENDED_NAME_FORMAT NameFormat,
|
562
|
-
# LPSTR lpNameBuffer,
|
563
|
-
# PULONG nSize
|
564
|
-
# );type
|
565
|
-
ffi_lib :secur32
|
566
|
-
attach_function_private :GetUserNameExW, [:uint16, :lpwstr, :pointer], :win32_bool
|
567
521
|
end
|
568
522
|
|
569
523
|
class UserProfile
|
@@ -0,0 +1,360 @@
|
|
1
|
+
require 'puppet/ffi/windows'
|
2
|
+
|
3
|
+
module Puppet::Util::Windows
|
4
|
+
|
5
|
+
# The Daemon class, based on the chef/win32-service implementation
|
6
|
+
class Daemon
|
7
|
+
include Puppet::FFI::Windows::Constants
|
8
|
+
extend Puppet::FFI::Windows::Constants
|
9
|
+
|
10
|
+
include Puppet::FFI::Windows::Structs
|
11
|
+
extend Puppet::FFI::Windows::Structs
|
12
|
+
|
13
|
+
include Puppet::FFI::Windows::Functions
|
14
|
+
extend Puppet::FFI::Windows::Functions
|
15
|
+
|
16
|
+
# Service is not running
|
17
|
+
STOPPED = SERVICE_STOPPED
|
18
|
+
|
19
|
+
# Service has received a start signal but is not yet running
|
20
|
+
START_PENDING = SERVICE_START_PENDING
|
21
|
+
|
22
|
+
# Service has received a stop signal but is not yet stopped
|
23
|
+
STOP_PENDING = SERVICE_STOP_PENDING
|
24
|
+
|
25
|
+
# Service is running
|
26
|
+
RUNNING = SERVICE_RUNNING
|
27
|
+
|
28
|
+
# Service has received a signal to resume but is not yet running
|
29
|
+
CONTINUE_PENDING = SERVICE_CONTINUE_PENDING
|
30
|
+
|
31
|
+
# Service has received a signal to pause but is not yet paused
|
32
|
+
PAUSE_PENDING = SERVICE_PAUSE_PENDING
|
33
|
+
|
34
|
+
# Service is paused
|
35
|
+
PAUSED = SERVICE_PAUSED
|
36
|
+
|
37
|
+
# Service controls
|
38
|
+
|
39
|
+
# Notifies service that it should stop
|
40
|
+
CONTROL_STOP = SERVICE_CONTROL_STOP
|
41
|
+
|
42
|
+
# Notifies service that it should pause
|
43
|
+
CONTROL_PAUSE = SERVICE_CONTROL_PAUSE
|
44
|
+
|
45
|
+
# Notifies service that it should resume
|
46
|
+
CONTROL_CONTINUE = SERVICE_CONTROL_CONTINUE
|
47
|
+
|
48
|
+
# Notifies service that it should return its current status information
|
49
|
+
CONTROL_INTERROGATE = SERVICE_CONTROL_INTERROGATE
|
50
|
+
|
51
|
+
# Notifies a service that its parameters have changed
|
52
|
+
CONTROL_PARAMCHANGE = SERVICE_CONTROL_PARAMCHANGE
|
53
|
+
|
54
|
+
# Notifies a service that there is a new component for binding
|
55
|
+
CONTROL_NETBINDADD = SERVICE_CONTROL_NETBINDADD
|
56
|
+
|
57
|
+
# Notifies a service that a component for binding has been removed
|
58
|
+
CONTROL_NETBINDREMOVE = SERVICE_CONTROL_NETBINDREMOVE
|
59
|
+
|
60
|
+
# Notifies a service that a component for binding has been enabled
|
61
|
+
CONTROL_NETBINDENABLE = SERVICE_CONTROL_NETBINDENABLE
|
62
|
+
|
63
|
+
# Notifies a service that a component for binding has been disabled
|
64
|
+
CONTROL_NETBINDDISABLE = SERVICE_CONTROL_NETBINDDISABLE
|
65
|
+
|
66
|
+
IDLE = 0
|
67
|
+
|
68
|
+
# Misc
|
69
|
+
IDLE_CONTROL_CODE = 0
|
70
|
+
WAIT_OBJECT_0 = 0
|
71
|
+
WAIT_TIMEOUT = 0x00000102
|
72
|
+
WAIT_FAILED = 0xFFFFFFFF
|
73
|
+
NO_ERROR = 0
|
74
|
+
|
75
|
+
# Wraps SetServiceStatus.
|
76
|
+
SetTheServiceStatus = Proc.new do |dwCurrentState, dwWin32ExitCode, dwCheckPoint, dwWaitHint|
|
77
|
+
ss = SERVICE_STATUS.new # Current status of the service.
|
78
|
+
|
79
|
+
# Disable control requests until the service is started.
|
80
|
+
if dwCurrentState == SERVICE_START_PENDING
|
81
|
+
ss[:dwControlsAccepted] = 0
|
82
|
+
else
|
83
|
+
ss[:dwControlsAccepted] =
|
84
|
+
SERVICE_ACCEPT_STOP|SERVICE_ACCEPT_SHUTDOWN|
|
85
|
+
SERVICE_ACCEPT_PAUSE_CONTINUE|SERVICE_ACCEPT_PARAMCHANGE
|
86
|
+
end
|
87
|
+
|
88
|
+
# Initialize ss structure.
|
89
|
+
ss[:dwServiceType] = SERVICE_WIN32_OWN_PROCESS
|
90
|
+
ss[:dwServiceSpecificExitCode] = 0
|
91
|
+
ss[:dwCurrentState] = dwCurrentState
|
92
|
+
ss[:dwWin32ExitCode] = dwWin32ExitCode
|
93
|
+
ss[:dwCheckPoint] = dwCheckPoint
|
94
|
+
ss[:dwWaitHint] = dwWaitHint
|
95
|
+
|
96
|
+
@@dwServiceState = dwCurrentState
|
97
|
+
|
98
|
+
# Send status of the service to the Service Controller.
|
99
|
+
if !SetServiceStatus(@@ssh, ss)
|
100
|
+
SetEvent(@@hStopEvent)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
ERROR_CALL_NOT_IMPLEMENTED = 0x78
|
105
|
+
|
106
|
+
# Handles control signals from the service control manager.
|
107
|
+
Service_Ctrl_ex = Proc.new do |dwCtrlCode, dwEventType, lpEventData, lpContext|
|
108
|
+
@@waiting_control_code = dwCtrlCode;
|
109
|
+
return_value = NO_ERROR
|
110
|
+
|
111
|
+
begin
|
112
|
+
dwState = SERVICE_RUNNING
|
113
|
+
|
114
|
+
case dwCtrlCode
|
115
|
+
when SERVICE_CONTROL_STOP
|
116
|
+
dwState = SERVICE_STOP_PENDING
|
117
|
+
when SERVICE_CONTROL_SHUTDOWN
|
118
|
+
dwState = SERVICE_STOP_PENDING
|
119
|
+
when SERVICE_CONTROL_PAUSE
|
120
|
+
dwState = SERVICE_PAUSED
|
121
|
+
when SERVICE_CONTROL_CONTINUE
|
122
|
+
dwState = SERVICE_RUNNING
|
123
|
+
#else
|
124
|
+
# TODO: Handle other control codes? Retain the current state?
|
125
|
+
end
|
126
|
+
|
127
|
+
# Set the status of the service except on interrogation.
|
128
|
+
unless dwCtrlCode == SERVICE_CONTROL_INTERROGATE
|
129
|
+
SetTheServiceStatus.call(dwState, NO_ERROR, 0, 0)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Tell service_main thread to stop.
|
133
|
+
if dwCtrlCode == SERVICE_CONTROL_STOP || dwCtrlCode == SERVICE_CONTROL_SHUTDOWN
|
134
|
+
if SetEvent(@@hStopEvent) == 0
|
135
|
+
SetTheServiceStatus.call(SERVICE_STOPPED, FFI.errno, 0, 0)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
rescue
|
139
|
+
return_value = ERROR_CALL_NOT_IMPLEMENTED
|
140
|
+
end
|
141
|
+
|
142
|
+
return_value
|
143
|
+
end
|
144
|
+
|
145
|
+
# Called by the service control manager after the call to StartServiceCtrlDispatcher.
|
146
|
+
Service_Main = FFI::Function.new(:void, [:ulong, :pointer], :blocking => false) do |dwArgc, lpszArgv|
|
147
|
+
begin
|
148
|
+
# Obtain the name of the service.
|
149
|
+
if lpszArgv.address != 0
|
150
|
+
argv = lpszArgv.get_array_of_string(0, dwArgc)
|
151
|
+
lpszServiceName = argv[0]
|
152
|
+
else
|
153
|
+
lpszServiceName = ''
|
154
|
+
end
|
155
|
+
|
156
|
+
# Args passed to Service.start
|
157
|
+
if(dwArgc > 1)
|
158
|
+
@@Argv = argv[1..-1]
|
159
|
+
else
|
160
|
+
@@Argv = nil
|
161
|
+
end
|
162
|
+
|
163
|
+
# Register the service ctrl handler.
|
164
|
+
@@ssh = RegisterServiceCtrlHandlerExW(
|
165
|
+
lpszServiceName,
|
166
|
+
Service_Ctrl_ex,
|
167
|
+
nil
|
168
|
+
)
|
169
|
+
|
170
|
+
# No service to stop, no service handle to notify, nothing to do but exit.
|
171
|
+
break if @@ssh == 0
|
172
|
+
|
173
|
+
# The service has started.
|
174
|
+
SetTheServiceStatus.call(SERVICE_RUNNING, NO_ERROR, 0, 0)
|
175
|
+
|
176
|
+
SetEvent(@@hStartEvent)
|
177
|
+
|
178
|
+
# Main loop for the service.
|
179
|
+
while(WaitForSingleObject(@@hStopEvent, 1000) != WAIT_OBJECT_0) do
|
180
|
+
end
|
181
|
+
|
182
|
+
# Main loop for the service.
|
183
|
+
while(WaitForSingleObject(@@hStopCompletedEvent, 1000) != WAIT_OBJECT_0) do
|
184
|
+
end
|
185
|
+
ensure
|
186
|
+
# Stop the service.
|
187
|
+
SetTheServiceStatus.call(SERVICE_STOPPED, NO_ERROR, 0, 0)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
ThreadProc = FFI::Function.new(:ulong,[:pointer]) do |lpParameter|
|
192
|
+
ste = FFI::MemoryPointer.new(SERVICE_TABLE_ENTRYW, 2)
|
193
|
+
|
194
|
+
s = SERVICE_TABLE_ENTRYW.new(ste[0])
|
195
|
+
s[:lpServiceName] = FFI::MemoryPointer.from_string('')
|
196
|
+
s[:lpServiceProc] = lpParameter
|
197
|
+
|
198
|
+
s = SERVICE_TABLE_ENTRYW.new(ste[1])
|
199
|
+
s[:lpServiceName] = nil
|
200
|
+
s[:lpServiceProc] = nil
|
201
|
+
|
202
|
+
# No service to step, no service handle, no ruby exceptions, just terminate the thread..
|
203
|
+
if !StartServiceCtrlDispatcherW(ste)
|
204
|
+
return 1
|
205
|
+
end
|
206
|
+
|
207
|
+
return 0
|
208
|
+
end
|
209
|
+
|
210
|
+
# This is a shortcut for Daemon.new + Daemon#mainloop.
|
211
|
+
#
|
212
|
+
def self.mainloop
|
213
|
+
self.new.mainloop
|
214
|
+
end
|
215
|
+
|
216
|
+
# This is the method that actually puts your code into a loop and allows it
|
217
|
+
# to run as a service. The code that is actually run while in the mainloop
|
218
|
+
# is what you defined in your own Daemon#service_main method.
|
219
|
+
#
|
220
|
+
def mainloop
|
221
|
+
@@waiting_control_code = IDLE_CONTROL_CODE
|
222
|
+
@@dwServiceState = 0
|
223
|
+
|
224
|
+
# Redirect STDIN, STDOUT and STDERR to the NUL device if they're still
|
225
|
+
# associated with a tty. This helps newbs avoid Errno::EBADF errors.
|
226
|
+
STDIN.reopen('NUL') if STDIN.isatty
|
227
|
+
STDOUT.reopen('NUL') if STDOUT.isatty
|
228
|
+
STDERR.reopen('NUL') if STDERR.isatty
|
229
|
+
|
230
|
+
# Calling init here so that init failures never even tries to start the
|
231
|
+
# service. Of course that means that init methods must be very quick
|
232
|
+
# because the SCM will be receiving no START_PENDING messages while
|
233
|
+
# init's running.
|
234
|
+
#
|
235
|
+
# TODO: Fix?
|
236
|
+
service_init() if respond_to?('service_init')
|
237
|
+
|
238
|
+
# Create the event to signal the service to start.
|
239
|
+
@@hStartEvent = CreateEventW(nil, 1, 0, nil)
|
240
|
+
|
241
|
+
if @@hStartEvent == 0
|
242
|
+
raise SystemCallError.new('CreateEvent', FFI.errno)
|
243
|
+
end
|
244
|
+
|
245
|
+
# Create the event to signal the service to stop.
|
246
|
+
@@hStopEvent = CreateEventW(nil, 1, 0, nil)
|
247
|
+
|
248
|
+
if @@hStopEvent == 0
|
249
|
+
raise SystemCallError.new('CreateEvent', FFI.errno)
|
250
|
+
end
|
251
|
+
|
252
|
+
# Create the event to signal the service that stop has completed
|
253
|
+
@@hStopCompletedEvent = CreateEventW(nil, 1, 0, nil)
|
254
|
+
|
255
|
+
if @@hStopCompletedEvent == 0
|
256
|
+
raise SystemCallError.new('CreateEvent', FFI.errno)
|
257
|
+
end
|
258
|
+
|
259
|
+
hThread = CreateThread(nil, 0, ThreadProc, Service_Main, 0, nil)
|
260
|
+
|
261
|
+
if hThread == 0
|
262
|
+
raise SystemCallError.new('CreateThread', FFI.errno)
|
263
|
+
end
|
264
|
+
|
265
|
+
events = FFI::MemoryPointer.new(:pointer, 2)
|
266
|
+
events.put_pointer(0, FFI::Pointer.new(hThread))
|
267
|
+
events.put_pointer(FFI::Pointer.size, FFI::Pointer.new(@@hStartEvent))
|
268
|
+
|
269
|
+
while ((index = WaitForMultipleObjects(2, events, 0, 1000)) == WAIT_TIMEOUT) do
|
270
|
+
end
|
271
|
+
|
272
|
+
if index == WAIT_FAILED
|
273
|
+
raise SystemCallError.new('WaitForMultipleObjects', FFI.errno)
|
274
|
+
end
|
275
|
+
|
276
|
+
# The thread exited, so the show is off.
|
277
|
+
if index == WAIT_OBJECT_0
|
278
|
+
raise "Service_Main thread exited abnormally"
|
279
|
+
end
|
280
|
+
|
281
|
+
thr = Thread.new do
|
282
|
+
begin
|
283
|
+
while(WaitForSingleObject(@@hStopEvent, 1000) == WAIT_TIMEOUT)
|
284
|
+
# Check to see if anything interesting has been signaled
|
285
|
+
case @@waiting_control_code
|
286
|
+
when SERVICE_CONTROL_PAUSE
|
287
|
+
service_pause() if respond_to?('service_pause')
|
288
|
+
when SERVICE_CONTROL_CONTINUE
|
289
|
+
service_resume() if respond_to?('service_resume')
|
290
|
+
when SERVICE_CONTROL_INTERROGATE
|
291
|
+
service_interrogate() if respond_to?('service_interrogate')
|
292
|
+
when SERVICE_CONTROL_SHUTDOWN
|
293
|
+
service_shutdown() if respond_to?('service_shutdown')
|
294
|
+
when SERVICE_CONTROL_PARAMCHANGE
|
295
|
+
service_paramchange() if respond_to?('service_paramchange')
|
296
|
+
when SERVICE_CONTROL_NETBINDADD
|
297
|
+
service_netbindadd() if respond_to?('service_netbindadd')
|
298
|
+
when SERVICE_CONTROL_NETBINDREMOVE
|
299
|
+
service_netbindremove() if respond_to?('service_netbindremove')
|
300
|
+
when SERVICE_CONTROL_NETBINDENABLE
|
301
|
+
service_netbindenable() if respond_to?('service_netbindenable')
|
302
|
+
when SERVICE_CONTROL_NETBINDDISABLE
|
303
|
+
service_netbinddisable() if respond_to?('service_netbinddisable')
|
304
|
+
end
|
305
|
+
@@waiting_control_code = IDLE_CONTROL_CODE
|
306
|
+
end
|
307
|
+
|
308
|
+
service_stop() if respond_to?('service_stop')
|
309
|
+
ensure
|
310
|
+
SetEvent(@@hStopCompletedEvent)
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
if respond_to?('service_main')
|
315
|
+
service_main(*@@Argv)
|
316
|
+
end
|
317
|
+
|
318
|
+
thr.join
|
319
|
+
end
|
320
|
+
|
321
|
+
# Returns the state of the service (as an constant integer) which can be any
|
322
|
+
# of the service status constants, e.g. RUNNING, PAUSED, etc.
|
323
|
+
#
|
324
|
+
# This method is typically used within your service_main method to setup the
|
325
|
+
# loop. For example:
|
326
|
+
#
|
327
|
+
# class MyDaemon < Daemon
|
328
|
+
# def service_main
|
329
|
+
# while state == RUNNING || state == PAUSED || state == IDLE
|
330
|
+
# # Your main loop here
|
331
|
+
# end
|
332
|
+
# end
|
333
|
+
# end
|
334
|
+
#
|
335
|
+
# See the Daemon#running? method for an abstraction of the above code.
|
336
|
+
#
|
337
|
+
def state
|
338
|
+
@@dwServiceState
|
339
|
+
end
|
340
|
+
|
341
|
+
#
|
342
|
+
# Returns whether or not the service is in a running state, i.e. the service
|
343
|
+
# status is either RUNNING, PAUSED or IDLE.
|
344
|
+
#
|
345
|
+
# This is typically used within your service_main method to setup the main
|
346
|
+
# loop. For example:
|
347
|
+
#
|
348
|
+
# class MyDaemon < Daemon
|
349
|
+
# def service_main
|
350
|
+
# while running?
|
351
|
+
# # Your main loop here
|
352
|
+
# end
|
353
|
+
# end
|
354
|
+
# end
|
355
|
+
#
|
356
|
+
def running?
|
357
|
+
[SERVICE_RUNNING, SERVICE_PAUSED, 0].include?(@@dwServiceState)
|
358
|
+
end
|
359
|
+
end
|
360
|
+
end
|
@@ -46,8 +46,8 @@ class Puppet::Util::Windows::EventLog
|
|
46
46
|
end
|
47
47
|
|
48
48
|
# Report an event to this instance's event log handle. Accepts a string to
|
49
|
-
# report (:data => <string>) and event type (:event_type =>
|
50
|
-
# (:event_id =>
|
49
|
+
# report (:data => <string>) and event type (:event_type => Integer) and id
|
50
|
+
# (:event_id => Integer) as returned by #to_native. The additional arguments to
|
51
51
|
# ReportEventW seen in this method aren't exposed - though ReportEventW
|
52
52
|
# technically can accept multiple strings as well as raw binary data to log,
|
53
53
|
# we accept a single string from Puppet::Util::Log
|
@@ -126,13 +126,8 @@ class Puppet::Util::Windows::EventLog
|
|
126
126
|
def wide_string(str)
|
127
127
|
# if given a nil string, assume caller wants to pass a nil pointer to win32
|
128
128
|
return nil if str.nil?
|
129
|
-
|
130
|
-
|
131
|
-
# causing buffer overruns.
|
132
|
-
#
|
133
|
-
# See http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=41920&view=revision
|
134
|
-
newstr = str + "\0".encode(str.encoding)
|
135
|
-
newstr.encode!('UTF-16LE')
|
129
|
+
|
130
|
+
str.encode('UTF-16LE')
|
136
131
|
end
|
137
132
|
|
138
133
|
# Private duplicate of Puppet::Util::Windows::ApiTypes::from_string_to_wide_string
|