puppet 6.16.0-x64-mingw32 → 7.0.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +5 -3
- data/Gemfile.lock +31 -33
- data/README.md +4 -5
- 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 +1 -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.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +22 -6
- 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/configurer.rb +66 -31
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +166 -169
- data/lib/puppet/environments.rb +41 -15
- 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 +2 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- 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 +13 -1
- data/lib/puppet/file_serving/metadata.rb +4 -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_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -8
- 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 +170 -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 +13 -19
- 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 +49 -48
- 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.rb +1 -1
- 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 +3 -7
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- data/lib/puppet/indirector/file_metadata/rest.rb +5 -11
- 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 +2 -103
- 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 +3 -21
- 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/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -42
- data/lib/puppet/parser/compiler.rb +1 -199
- 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 +3 -71
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -13
- 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/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 -22
- 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 -42
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- 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/aptitude.rb +1 -1
- 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 +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- 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/useradd.rb +11 -4
- 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/reports/http.rb +2 -0
- data/lib/puppet/resource.rb +3 -90
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +5 -112
- 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_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +37 -1
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +19 -16
- 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 +29 -1
- data/lib/puppet/type.rb +9 -77
- data/lib/puppet/type/file.rb +45 -22
- data/lib/puppet/type/file/checksum.rb +5 -5
- data/lib/puppet/type/file/source.rb +33 -13
- 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 +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/reference.rb +1 -1
- 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 +5 -15
- 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 +8 -6
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +52 -486
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +242 -8
- 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 +713 -1380
- data/man/man5/puppet.conf.5 +84 -98
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +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/integration/application/agent_spec.rb +157 -59
- 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 +33 -5
- 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 +29 -30
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/compiler_spec.rb +11 -0
- 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 +6 -5
- 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/registry_spec.rb +7 -7
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +47 -5
- 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 +9 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- 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 +12 -10
- data/spec/unit/defaults_spec.rb +77 -28
- data/spec/unit/environments_spec.rb +96 -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 +2 -2
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +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 +71 -17
- 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/response_spec.rb +6 -0
- 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/http_spec.rb +27 -0
- 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 +3 -267
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/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 +3 -98
- 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 +61 -73
- 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/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +77 -22
- 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 +7 -17
- 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 +50 -15
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +22 -16
- 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 +3 -59
- 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 +78 -49
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -3
- 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 +4 -5
- data/spec/unit/type/file_spec.rb +134 -102
- 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 +209 -0
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +70 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +3 -21
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +76 -270
- 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 -85
- 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 -182
- 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 -64
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
- data/lib/puppet/parser/environment_compiler.rb +0 -199
- 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 -282
- 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/integration/test/test_helper_spec.rb +0 -31
- 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 -723
- 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
@@ -14,29 +14,28 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
14
14
|
defaultfor :operatingsystem => :windows
|
15
15
|
confine :operatingsystem => :windows
|
16
16
|
|
17
|
-
has_feature :refreshable
|
18
|
-
has_feature :configurable_timeout
|
17
|
+
has_feature :refreshable, :configurable_timeout, :manages_logon_credentials
|
19
18
|
|
20
19
|
def enable
|
21
|
-
Puppet::Util::Windows::Service.
|
20
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_AUTO_START})
|
22
21
|
rescue => detail
|
23
22
|
raise Puppet::Error.new(_("Cannot enable %{resource_name}, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
24
23
|
end
|
25
24
|
|
26
25
|
def disable
|
27
|
-
Puppet::Util::Windows::Service.
|
26
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_DISABLED})
|
28
27
|
rescue => detail
|
29
28
|
raise Puppet::Error.new(_("Cannot disable %{resource_name}, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
30
29
|
end
|
31
30
|
|
32
31
|
def manual_start
|
33
|
-
Puppet::Util::Windows::Service.
|
32
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_DEMAND_START})
|
34
33
|
rescue => detail
|
35
34
|
raise Puppet::Error.new(_("Cannot enable %{resource_name} for manual start, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
36
35
|
end
|
37
36
|
|
38
37
|
def delayed_start
|
39
|
-
Puppet::Util::Windows::Service.
|
38
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {startup_type: :SERVICE_AUTO_START, delayed: true})
|
40
39
|
rescue => detail
|
41
40
|
raise Puppet::Error.new(_("Cannot enable %{resource_name} for delayed start, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail )
|
42
41
|
end
|
@@ -110,7 +109,10 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
110
109
|
raise Puppet::Error.new(_("Unknown service state '%{current_state}' for service '%{resource_name}'") % { current_state: current_state, resource_name: @resource[:name] })
|
111
110
|
end
|
112
111
|
debug("Service #{@resource[:name]} is #{current_state}")
|
113
|
-
|
112
|
+
state
|
113
|
+
rescue => detail
|
114
|
+
Puppet.warning("Status for service #{@resource[:name]} could not be retrieved: #{detail}")
|
115
|
+
:stopped
|
114
116
|
end
|
115
117
|
|
116
118
|
def default_timeout
|
@@ -125,4 +127,18 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
|
|
125
127
|
end
|
126
128
|
services
|
127
129
|
end
|
130
|
+
|
131
|
+
def logonaccount
|
132
|
+
return unless Puppet::Util::Windows::Service.exists?(@resource[:name])
|
133
|
+
Puppet::Util::Windows::Service.logon_account(@resource[:name])
|
134
|
+
end
|
135
|
+
|
136
|
+
def logonaccount=(value)
|
137
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {logon_account: value, logon_password: @resource[:logonpassword]})
|
138
|
+
restart if @resource[:ensure] == :running && [:running, :paused].include?(status)
|
139
|
+
end
|
140
|
+
|
141
|
+
def logonpassword=(value)
|
142
|
+
Puppet::Util::Windows::Service.set_startup_configuration(@resource[:name], options: {logon_password: value})
|
143
|
+
end
|
128
144
|
end
|
@@ -288,7 +288,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
288
288
|
# UNSUPPORTED
|
289
289
|
#- **roles**
|
290
290
|
# The roles the user has. Multiple roles should be
|
291
|
-
# specified as an array. Requires features
|
291
|
+
# specified as an array. Requires features manages_roles.
|
292
292
|
# UNSUPPORTED
|
293
293
|
#- **key_membership**
|
294
294
|
# Whether specified key value pairs should be treated as the only
|
@@ -657,14 +657,4 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
657
657
|
def write_users_plist_to_disk(users_plist)
|
658
658
|
Puppet::Util::Plist.write_plist_file(users_plist, "#{users_plist_dir}/#{@resource.name}.plist", :binary)
|
659
659
|
end
|
660
|
-
|
661
|
-
# This is a simple wrapper method for writing values to a file.
|
662
|
-
def write_to_file(filename, value)
|
663
|
-
Puppet.deprecation_warning("Puppet::Type.type(:user).provider(:directoryservice).write_to_file is deprecated and will be removed in Puppet 5.")
|
664
|
-
begin
|
665
|
-
File.open(filename, 'w') { |f| f.write(value)}
|
666
|
-
rescue Errno::EACCES => detail
|
667
|
-
raise Puppet::Error, "Could not write to file #{filename}: #{detail}", detail.backtrace
|
668
|
-
end
|
669
|
-
end
|
670
660
|
end
|
@@ -33,7 +33,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
33
33
|
set("shell", value)
|
34
34
|
end
|
35
35
|
|
36
|
-
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords, :manages_password_age, :manages_shell
|
36
|
+
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_roles, :manages_passwords, :manages_password_age, :manages_shell
|
37
37
|
|
38
38
|
def check_valid_shell
|
39
39
|
unless File.exist?(@resource.should(:shell))
|
@@ -138,10 +138,17 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
138
138
|
|
139
139
|
def check_manage_home
|
140
140
|
cmd = []
|
141
|
-
if @resource.managehome?
|
142
|
-
|
143
|
-
|
144
|
-
|
141
|
+
if @resource.managehome?
|
142
|
+
# libuser does not implement the -m flag
|
143
|
+
cmd << "-m" unless @resource.forcelocal?
|
144
|
+
else
|
145
|
+
osfamily = Facter.value(:osfamily)
|
146
|
+
osversion = Facter.value(:operatingsystemmajrelease).to_i
|
147
|
+
# SLES 11 uses pwdutils instead of shadow, which does not have -M
|
148
|
+
# Solaris and OpenBSD use different useradd flavors
|
149
|
+
unless osfamily =~ /Solaris|OpenBSD/ || osfamily == 'Suse' && osversion <= 11
|
150
|
+
cmd << "-M"
|
151
|
+
end
|
145
152
|
end
|
146
153
|
cmd
|
147
154
|
end
|
@@ -6,7 +6,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
6
6
|
defaultfor :operatingsystem => :windows
|
7
7
|
confine :operatingsystem => :windows
|
8
8
|
|
9
|
-
has_features :manages_homedir, :manages_passwords
|
9
|
+
has_features :manages_homedir, :manages_passwords, :manages_roles
|
10
10
|
|
11
11
|
def initialize(value={})
|
12
12
|
super(value)
|
@@ -17,6 +17,23 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
17
17
|
@user ||= Puppet::Util::Windows::ADSI::User.new(@resource[:name])
|
18
18
|
end
|
19
19
|
|
20
|
+
def roles
|
21
|
+
Puppet::Util::Windows::User::get_rights(@resource[:name])
|
22
|
+
end
|
23
|
+
|
24
|
+
def roles=(value)
|
25
|
+
current = roles.split(',')
|
26
|
+
should = value.split(',')
|
27
|
+
|
28
|
+
add_list = should - current
|
29
|
+
Puppet::Util::Windows::User::set_rights(@resource[:name], add_list) unless add_list.empty?
|
30
|
+
|
31
|
+
if @resource[:role_membership] == :inclusive
|
32
|
+
remove_list = current - should
|
33
|
+
Puppet::Util::Windows::User::remove_rights(@resource[:name], remove_list) unless remove_list.empty?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
20
37
|
def groups
|
21
38
|
@groups ||= Puppet::Util::Windows::ADSI::Group.name_sid_hash(user.groups)
|
22
39
|
@groups.keys
|
@@ -24,6 +24,8 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
24
24
|
val = object.default
|
25
25
|
if name.to_s == 'vardir'
|
26
26
|
val = 'Unix/Linux: /opt/puppetlabs/puppet/cache -- Windows: C:\ProgramData\PuppetLabs\puppet\cache -- Non-root user: ~/.puppetlabs/opt/puppet/cache'
|
27
|
+
elsif name.to_s == 'publicdir'
|
28
|
+
val = 'Unix/Linux: /opt/puppetlabs/puppet/public -- Windows: C:\ProgramData\PuppetLabs\puppet\public -- Non-root user: ~/.puppetlabs/opt/puppet/public'
|
27
29
|
elsif name.to_s == 'confdir'
|
28
30
|
val = 'Unix/Linux: /etc/puppetlabs/puppet -- Windows: C:\ProgramData\PuppetLabs\puppet\etc -- Non-root user: ~/.puppetlabs/etc/puppet'
|
29
31
|
elsif name.to_s == 'codedir'
|
@@ -46,7 +46,7 @@ An indirector has five methods, which are mapped into HTTP verbs for the REST in
|
|
46
46
|
|
47
47
|
These methods are available via the `indirection` class method on the indirected classes. For example:
|
48
48
|
|
49
|
-
|
49
|
+
node = Puppet::Node.indirection.find('foo.example.com')
|
50
50
|
|
51
51
|
At startup, each indirection is configured with a terminus.
|
52
52
|
In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
|
data/lib/puppet/reports/http.rb
CHANGED
@@ -25,6 +25,8 @@ Puppet::Reports.register_report(:http) do
|
|
25
25
|
:include_system_store => Puppet[:report_include_system_store],
|
26
26
|
}
|
27
27
|
|
28
|
+
# Puppet's http client implementation accepts userinfo in the URL
|
29
|
+
# but puppetserver's does not. So pass credentials explicitly.
|
28
30
|
if url.user && url.password
|
29
31
|
options[:basic_auth] = {
|
30
32
|
user: url.user,
|
data/lib/puppet/resource.rb
CHANGED
@@ -32,7 +32,6 @@ class Puppet::Resource
|
|
32
32
|
ATTRIBUTES = [:file, :line, :exported].freeze
|
33
33
|
TYPE_CLASS = 'Class'.freeze
|
34
34
|
TYPE_NODE = 'Node'.freeze
|
35
|
-
TYPE_SITE = 'Site'.freeze
|
36
35
|
|
37
36
|
PCORE_TYPE_KEY = '__ptype'.freeze
|
38
37
|
VALUE_KEY = 'value'.freeze
|
@@ -340,29 +339,6 @@ class Puppet::Resource
|
|
340
339
|
catalog ? catalog.resource(to_s) : nil
|
341
340
|
end
|
342
341
|
|
343
|
-
# A resource is an application component if it exports or consumes
|
344
|
-
# one or more capabilities, or if it requires a capability resource
|
345
|
-
def is_application_component?
|
346
|
-
return true if ! export.empty? || self[:consume]
|
347
|
-
# Array(self[:require]) does not work for Puppet::Resource instances
|
348
|
-
req = self[:require] || []
|
349
|
-
req = [ req ] unless req.is_a?(Array)
|
350
|
-
req.any? { |r| r.is_capability? }
|
351
|
-
end
|
352
|
-
|
353
|
-
# A resource is a capability (instance) if its underlying type is a
|
354
|
-
# capability type
|
355
|
-
def is_capability?
|
356
|
-
!resource_type.nil? && resource_type.is_capability?
|
357
|
-
end
|
358
|
-
|
359
|
-
# Returns the value of the 'export' metaparam as an Array
|
360
|
-
# @api private
|
361
|
-
def export
|
362
|
-
v = self[:export] || []
|
363
|
-
v.is_a?(Array) ? v : [ v ]
|
364
|
-
end
|
365
|
-
|
366
342
|
# The resource's type implementation
|
367
343
|
# @return [Puppet::Type, Puppet::Resource::Type]
|
368
344
|
# @api private
|
@@ -377,12 +353,11 @@ class Puppet::Resource
|
|
377
353
|
case type
|
378
354
|
when TYPE_CLASS; environment.known_resource_types.hostclass(title == :main ? "" : title)
|
379
355
|
when TYPE_NODE; environment.known_resource_types.node(title)
|
380
|
-
when TYPE_SITE; environment.known_resource_types.site(nil)
|
381
356
|
else
|
382
357
|
result = Puppet::Type.type(type)
|
383
358
|
if !result
|
384
359
|
krt = environment.known_resource_types
|
385
|
-
result = krt.definition(type)
|
360
|
+
result = krt.definition(type)
|
386
361
|
end
|
387
362
|
result
|
388
363
|
end
|
@@ -515,38 +490,6 @@ class Puppet::Resource
|
|
515
490
|
end
|
516
491
|
private :missing_arguments
|
517
492
|
|
518
|
-
# @deprecated Not used by Puppet
|
519
|
-
# @api private
|
520
|
-
def set_default_parameters(scope)
|
521
|
-
Puppet.deprecation_warning(_('The method Puppet::Resource.set_default_parameters is deprecated and will be removed in the next major release of Puppet.'))
|
522
|
-
|
523
|
-
return [] unless resource_type and resource_type.respond_to?(:arguments)
|
524
|
-
|
525
|
-
unless is_a?(Puppet::Parser::Resource)
|
526
|
-
fail Puppet::DevError, _("Cannot evaluate default parameters for %{resource} - not a parser resource") % { resource: self }
|
527
|
-
end
|
528
|
-
|
529
|
-
missing_arguments.collect do |param, default|
|
530
|
-
rtype = resource_type
|
531
|
-
if rtype.type == :hostclass
|
532
|
-
using_bound_value = false
|
533
|
-
catch(:no_such_key) do
|
534
|
-
bound_value = Puppet::Pops::Lookup.search_and_merge("#{rtype.name}::#{param}", Puppet::Pops::Lookup::Invocation.new(scope), nil)
|
535
|
-
# Assign bound value but don't let an undef trump a default expression
|
536
|
-
unless bound_value.nil? && !default.nil?
|
537
|
-
self[param.to_sym] = bound_value
|
538
|
-
using_bound_value = true
|
539
|
-
end
|
540
|
-
end
|
541
|
-
end
|
542
|
-
unless using_bound_value
|
543
|
-
next if default.nil?
|
544
|
-
self[param.to_sym] = default.safeevaluate(scope)
|
545
|
-
end
|
546
|
-
param
|
547
|
-
end.compact
|
548
|
-
end
|
549
|
-
|
550
493
|
def copy_as_resource
|
551
494
|
Puppet::Resource.new(self)
|
552
495
|
end
|
@@ -555,37 +498,6 @@ class Puppet::Resource
|
|
555
498
|
resource_type.valid_parameter?(name)
|
556
499
|
end
|
557
500
|
|
558
|
-
# Verify that all required arguments are either present or
|
559
|
-
# have been provided with defaults.
|
560
|
-
# Must be called after 'set_default_parameters'. We can't join the methods
|
561
|
-
# because Type#set_parameters needs specifically ordered behavior.
|
562
|
-
#
|
563
|
-
# @deprecated Not used by Puppet
|
564
|
-
# @api private
|
565
|
-
def validate_complete
|
566
|
-
Puppet.deprecation_warning(_('The method Puppet::Resource.validate_complete is deprecated and will be removed in the next major release of Puppet.'))
|
567
|
-
|
568
|
-
return unless resource_type and resource_type.respond_to?(:arguments)
|
569
|
-
|
570
|
-
resource_type.arguments.each do |param, default|
|
571
|
-
param = param.to_sym
|
572
|
-
fail Puppet::ParseError, _("Must pass %{param} to %{resource}") % { param: param, resource: self } unless parameters.include?(param)
|
573
|
-
end
|
574
|
-
|
575
|
-
# Perform optional type checking
|
576
|
-
arg_types = resource_type.argument_types
|
577
|
-
# Parameters is a map from name, to parameter, and the parameter again has name and value
|
578
|
-
parameters.each do |name, value|
|
579
|
-
t = arg_types[name.to_s] # untyped, and parameters are symbols here (aargh, strings in the type)
|
580
|
-
next unless t
|
581
|
-
unless Puppet::Pops::Types::TypeCalculator.instance?(t, value.value)
|
582
|
-
inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value.value)
|
583
|
-
actual = inferred_type.generalize()
|
584
|
-
fail Puppet::ParseError, _("Expected parameter '%{name}' of '%{value0}' to have type %{value1}, got %{value2}") % { name: name, value0: self, value1: t.to_s, value2: actual.to_s }
|
585
|
-
end
|
586
|
-
end
|
587
|
-
end
|
588
|
-
|
589
501
|
def validate_parameter(name)
|
590
502
|
raise Puppet::ParseError.new(_("no parameter named '%{name}'") % { name: name }, file, line) unless valid_parameter?(name)
|
591
503
|
end
|
@@ -628,7 +540,8 @@ class Puppet::Resource
|
|
628
540
|
def self.extract_type_and_title(argtype, argtitle)
|
629
541
|
if (argtype.nil? || argtype == :component || argtype == :whit) &&
|
630
542
|
argtitle =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
631
|
-
elsif argtitle.nil? && argtype
|
543
|
+
elsif argtitle.nil? && argtype.is_a?(String) &&
|
544
|
+
argtype =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
632
545
|
elsif argtitle then [ argtype, argtitle ]
|
633
546
|
elsif argtype.is_a?(Puppet::Type) then [ argtype.class.name, argtype.title ]
|
634
547
|
else raise ArgumentError, _("No title provided and %{type} is not a valid resource reference") % { type: argtype.inspect }
|
@@ -5,8 +5,6 @@ require 'puppet/util/tagging'
|
|
5
5
|
require 'puppet/graph'
|
6
6
|
require 'securerandom'
|
7
7
|
|
8
|
-
require 'puppet/resource/capability_finder'
|
9
|
-
|
10
8
|
# This class models a node catalog. It is the thing meant to be passed
|
11
9
|
# from server to client, and it contains all of the information in the
|
12
10
|
# catalog, including the resources and the relationships between them.
|
@@ -382,23 +380,12 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
382
380
|
result = @resource_table[title_key]
|
383
381
|
if result.nil?
|
384
382
|
# an instance has to be created in order to construct the unique key used when
|
385
|
-
# searching for aliases
|
383
|
+
# searching for aliases
|
386
384
|
res = Puppet::Resource.new(type, title, { :environment => @environment_instance })
|
387
385
|
|
388
386
|
# Must check with uniqueness key because of aliases or if resource transforms title in title
|
389
387
|
# to attribute mappings.
|
390
388
|
result = @resource_table[[type_name, res.uniqueness_key].flatten]
|
391
|
-
|
392
|
-
if result.nil?
|
393
|
-
resource_type = res.resource_type
|
394
|
-
if resource_type && resource_type.is_capability?
|
395
|
-
# @todo lutter 2015-03-10: this assumes that it is legal to just
|
396
|
-
# mention a capability resource in code and have it automatically
|
397
|
-
# made available, even if the current component does not require it
|
398
|
-
result = Puppet::Resource::CapabilityFinder.find(environment, code_id, res)
|
399
|
-
add_resource(result) if result
|
400
|
-
end
|
401
|
-
end
|
402
389
|
end
|
403
390
|
result
|
404
391
|
end
|
data/lib/puppet/resource/type.rb
CHANGED
@@ -11,15 +11,13 @@ class Puppet::Resource::Type
|
|
11
11
|
include Puppet::Util::Warnings
|
12
12
|
include Puppet::Util::Errors
|
13
13
|
|
14
|
-
RESOURCE_KINDS = [:hostclass, :node, :definition
|
14
|
+
RESOURCE_KINDS = [:hostclass, :node, :definition]
|
15
15
|
|
16
16
|
# Map the names used in our documentation to the names used internally
|
17
17
|
RESOURCE_KINDS_TO_EXTERNAL_NAMES = {
|
18
18
|
:hostclass => "class",
|
19
19
|
:node => "node",
|
20
|
-
:definition => "defined_type"
|
21
|
-
:application => "application",
|
22
|
-
:site => 'site'
|
20
|
+
:definition => "defined_type"
|
23
21
|
}
|
24
22
|
RESOURCE_EXTERNAL_NAMES_TO_KINDS = RESOURCE_KINDS_TO_EXTERNAL_NAMES.invert
|
25
23
|
|
@@ -33,18 +31,9 @@ class Puppet::Resource::Type
|
|
33
31
|
DOUBLE_COLON = '::'.freeze
|
34
32
|
EMPTY_ARRAY = [].freeze
|
35
33
|
|
36
|
-
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection
|
34
|
+
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
|
37
35
|
attr_reader :namespace, :arguments, :behaves_like, :module_name
|
38
36
|
|
39
|
-
# The attributes 'produces' and 'consumes' are arrays of the blueprints
|
40
|
-
# of capabilities this type can produce/consume. The entries in the array
|
41
|
-
# are a fairly direct representation of what goes into produces/consumes
|
42
|
-
# clauses. Each entry is a hash with attributes
|
43
|
-
# :capability - the type name of the capres produced/consumed
|
44
|
-
# :mappings - a hash of attribute_name => Expression
|
45
|
-
# These two attributes are populated in
|
46
|
-
# PopsBridge::instantiate_CapabilityMapping
|
47
|
-
|
48
37
|
# Map from argument (aka parameter) names to Puppet Type
|
49
38
|
# @return [Hash<Symbol, Puppet::Pops::Types::PAnyType] map from name to type
|
50
39
|
#
|
@@ -62,56 +51,12 @@ class Puppet::Resource::Type
|
|
62
51
|
# Are we a child of the passed class? Do a recursive search up our
|
63
52
|
# parentage tree to figure it out.
|
64
53
|
def child_of?(klass)
|
54
|
+
return true if override
|
65
55
|
return false unless parent
|
66
56
|
|
67
57
|
return(klass == parent_type ? true : parent_type.child_of?(klass))
|
68
58
|
end
|
69
59
|
|
70
|
-
# Evaluate the resources produced by the given resource. These resources are
|
71
|
-
# evaluated in a separate but identical scope from the rest of the resource.
|
72
|
-
def evaluate_produces(resource, scope)
|
73
|
-
# Only defined types and classes can produce capabilities
|
74
|
-
return unless definition? || hostclass?
|
75
|
-
|
76
|
-
resource.export.map do |ex|
|
77
|
-
# Assert that the ref really is a resource reference
|
78
|
-
raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a resource") % { reference: resource.ref, ex: ex } unless ex.is_a?(Puppet::Resource)
|
79
|
-
raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a capability resource") % { reference: resource.ref, ex: ex } if ex.resource_type.nil? || !ex.resource_type.is_capability?
|
80
|
-
|
81
|
-
blueprint = produces.find { |pr| pr[:capability] == ex.type }
|
82
|
-
if blueprint.nil?
|
83
|
-
raise Puppet::ParseError, _("Resource type %{res_type} does not produce %{ex_type}") % { res_type: resource.type, ex_type: ex.type }
|
84
|
-
end
|
85
|
-
t = ex.type
|
86
|
-
t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t) unless t == 'class' || t == 'node'
|
87
|
-
produced_resource = Puppet::Parser::Resource.new(t, ex.title, :scope => scope, :source => self)
|
88
|
-
|
89
|
-
produced_resource.resource_type.parameters.each do |name|
|
90
|
-
next if name == :name
|
91
|
-
|
92
|
-
expr = blueprint[:mappings][name.to_s]
|
93
|
-
if expr
|
94
|
-
produced_resource[name] = expr.safeevaluate(scope)
|
95
|
-
else
|
96
|
-
produced_resource[name] = scope[name.to_s]
|
97
|
-
end
|
98
|
-
end
|
99
|
-
# Tag the produced resource so we can later distinguish it from
|
100
|
-
# copies of the resource that wind up in the catalogs of nodes that
|
101
|
-
# use this resource. We tag the resource with producer:<environment>,
|
102
|
-
# meaning produced resources need to be unique within their
|
103
|
-
# environment
|
104
|
-
# @todo lutter 2014-11-13: we would really like to use a dedicated
|
105
|
-
# metadata field to indicate the producer of a resource, but that
|
106
|
-
# requires changes to PuppetDB and its API; so for now, we just use
|
107
|
-
# tagging
|
108
|
-
produced_resource.tag("producer:#{scope.catalog.environment}")
|
109
|
-
scope.catalog.add_resource(produced_resource)
|
110
|
-
produced_resource[:require] = resource.ref
|
111
|
-
produced_resource
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
60
|
# Now evaluate the code associated with this class or definition.
|
116
61
|
def evaluate_code(resource)
|
117
62
|
|
@@ -125,8 +70,6 @@ class Puppet::Resource::Type
|
|
125
70
|
|
126
71
|
resource.add_edge_to_stage
|
127
72
|
|
128
|
-
evaluate_produces(resource, scope)
|
129
|
-
|
130
73
|
if code
|
131
74
|
if @match # Only bother setting up the ephemeral scope if there are match variables to add into it
|
132
75
|
scope.with_guarded_scope do
|
@@ -161,24 +104,6 @@ class Puppet::Resource::Type
|
|
161
104
|
@module_name = options[:module_name]
|
162
105
|
end
|
163
106
|
|
164
|
-
def produces
|
165
|
-
@produces || EMPTY_ARRAY
|
166
|
-
end
|
167
|
-
|
168
|
-
def consumes
|
169
|
-
@consumes || EMPTY_ARRAY
|
170
|
-
end
|
171
|
-
|
172
|
-
def add_produces(blueprint)
|
173
|
-
@produces ||= []
|
174
|
-
@produces << blueprint
|
175
|
-
end
|
176
|
-
|
177
|
-
def add_consumes(blueprint)
|
178
|
-
@consumes ||= []
|
179
|
-
@consumes << blueprint
|
180
|
-
end
|
181
|
-
|
182
107
|
# This is only used for node names, and really only when the node name
|
183
108
|
# is a regexp.
|
184
109
|
def match(string)
|
@@ -234,8 +159,6 @@ class Puppet::Resource::Type
|
|
234
159
|
:class
|
235
160
|
when :node
|
236
161
|
:node
|
237
|
-
when :site
|
238
|
-
:site
|
239
162
|
end
|
240
163
|
|
241
164
|
# Do nothing if the resource already exists; this makes sure we don't
|
@@ -280,21 +203,6 @@ class Puppet::Resource::Type
|
|
280
203
|
@name.is_a?(Regexp)
|
281
204
|
end
|
282
205
|
|
283
|
-
# @deprecated Not used by Puppet
|
284
|
-
# @api private
|
285
|
-
def assign_parameter_values(parameters, resource)
|
286
|
-
Puppet.deprecation_warning(_('The method Puppet::Resource::Type.assign_parameter_values is deprecated and will be removed in the next major release of Puppet.'))
|
287
|
-
|
288
|
-
return unless parameters
|
289
|
-
|
290
|
-
# It'd be nice to assign default parameter values here,
|
291
|
-
# but we can't because they often rely on local variables
|
292
|
-
# created during set_resource_parameters.
|
293
|
-
parameters.each do |name, value|
|
294
|
-
resource.set_parameter name, value
|
295
|
-
end
|
296
|
-
end
|
297
|
-
|
298
206
|
def parent_type(scope = nil)
|
299
207
|
return nil unless parent
|
300
208
|
|
@@ -317,7 +225,6 @@ class Puppet::Resource::Type
|
|
317
225
|
caller_name = resource[:caller_module_name] || scope.parent_module_name
|
318
226
|
scope[CALLER_MODULE_NAME] = caller_name unless caller_name.nil?
|
319
227
|
|
320
|
-
resource.add_parameters_from_consume
|
321
228
|
inject_external_parameters(resource, scope)
|
322
229
|
|
323
230
|
if @type == :hostclass
|
@@ -380,7 +287,7 @@ class Puppet::Resource::Type
|
|
380
287
|
private :assign_defaults
|
381
288
|
|
382
289
|
def validate_resource_hash(resource, resource_hash)
|
383
|
-
Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash,
|
290
|
+
Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash, false)
|
384
291
|
end
|
385
292
|
private :validate_resource_hash
|
386
293
|
|
@@ -435,14 +342,6 @@ class Puppet::Resource::Type
|
|
435
342
|
end
|
436
343
|
end
|
437
344
|
|
438
|
-
# Returns boolean true if an instance of this type is a capability. This
|
439
|
-
# implementation always returns false. This "duck-typing" interface is
|
440
|
-
# shared among other classes and makes it easier to detect capabilities
|
441
|
-
# when they are intermixed with non capability instances.
|
442
|
-
def is_capability?
|
443
|
-
false
|
444
|
-
end
|
445
|
-
|
446
345
|
private
|
447
346
|
|
448
347
|
def convert_from_ast(name)
|
@@ -507,12 +406,6 @@ class Puppet::Resource::Type
|
|
507
406
|
type_factory = Puppet::Pops::Types::TypeFactory
|
508
407
|
members = { type_factory.optional(type_factory.string(NAME)) => type_factory.any }
|
509
408
|
|
510
|
-
if application?
|
511
|
-
resource_type = type_factory.type_type(type_factory.resource)
|
512
|
-
members[type_factory.string(NODES)] = type_factory.hash_of(type_factory.variant(
|
513
|
-
resource_type, type_factory.array_of(resource_type)), type_factory.type_type(type_factory.resource('node')))
|
514
|
-
end
|
515
|
-
|
516
409
|
Puppet::Type.eachmetaparam do |name|
|
517
410
|
# TODO: Once meta parameters are typed, this should change to reflect that type
|
518
411
|
members[name.to_s] = type_factory.any
|