puppet 7.7.0-x86-mingw32 → 7.11.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/CONTRIBUTING.md +7 -7
- data/Gemfile +4 -3
- data/Gemfile.lock +18 -18
- data/README.md +4 -4
- data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
- data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
- data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
- data/{ext → examples}/nagios/check_puppet.rb +2 -2
- data/ext/README.md +13 -0
- data/ext/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +1 -0
- data/install.rb +0 -4
- data/lib/puppet/application/agent.rb +4 -0
- data/lib/puppet/application/apply.rb +20 -2
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +30 -15
- data/lib/puppet/application/ssl.rb +1 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer.rb +169 -50
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +70 -30
- data/lib/puppet/environments.rb +75 -25
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/file_serving/configuration/parser.rb +2 -0
- data/lib/puppet/file_serving/configuration.rb +2 -0
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_system/file_impl.rb +3 -1
- data/lib/puppet/file_system/windows.rb +2 -2
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/http/service/compiler.rb +6 -1
- data/lib/puppet/indirector/catalog/compiler.rb +24 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/resource/ral.rb +6 -1
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/interface/documentation.rb +1 -0
- data/lib/puppet/module/plan.rb +0 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +12 -4
- 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/errors/shared.rb +17 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/scope.rb +8 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
- data/lib/puppet/pops/model/ast.rb +1 -0
- data/lib/puppet/pops/model/factory.rb +14 -13
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/eparser.rb +752 -753
- data/lib/puppet/pops/parser/lexer2.rb +69 -68
- data/lib/puppet/pops/parser/slurp_support.rb +1 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
- data/lib/puppet/pops/types/type_formatter.rb +7 -6
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +16 -4
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/package/apt.rb +3 -3
- data/lib/puppet/provider/package/nim.rb +11 -6
- data/lib/puppet/provider/package/pip.rb +15 -3
- data/lib/puppet/provider/package/pkg.rb +9 -2
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
- data/lib/puppet/provider/package/windows/package.rb +2 -1
- data/lib/puppet/provider/package/windows.rb +14 -1
- data/lib/puppet/provider/package/yum.rb +4 -4
- data/lib/puppet/provider/package/zypper.rb +3 -3
- data/lib/puppet/provider/parsedfile.rb +3 -0
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +1 -1
- 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 +3 -3
- data/lib/puppet/provider/service/systemd.rb +8 -3
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +25 -12
- data/lib/puppet/provider/user/useradd.rb +52 -16
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/type_collection.rb +4 -1
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/config_file.rb +1 -8
- data/lib/puppet/settings/file_setting.rb +3 -8
- data/lib/puppet/settings/value_translator.rb +0 -1
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +11 -1
- data/lib/puppet/transaction/report.rb +15 -1
- data/lib/puppet/type/exec.rb +35 -5
- data/lib/puppet/type/file/mode.rb +6 -0
- data/lib/puppet/type/file.rb +6 -6
- data/lib/puppet/type/filebucket.rb +2 -2
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +8 -9
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +39 -22
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/log.rb +1 -2
- data/lib/puppet/util/logging.rb +1 -25
- data/lib/puppet/util/monkey_patches.rb +2 -17
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -2
- data/lib/puppet/util/symbolic_file_mode.rb +29 -17
- data/lib/puppet/util/tagging.rb +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -1
- data/lib/puppet/util/windows/user.rb +0 -1
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +3 -21
- data/lib/puppet.rb +5 -9
- data/locales/puppet.pot +346 -274
- data/man/man5/puppet.conf.5 +76 -25
- data/man/man8/puppet-agent.8 +4 -1
- data/man/man8/puppet-apply.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +7 -7
- data/man/man8/puppet-filebucket.8 +1 -1
- 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 -3
- 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 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
- data/spec/fixtures/ssl/ca.pem +52 -52
- data/spec/fixtures/ssl/crl.pem +25 -25
- data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
- data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +32 -32
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +107 -107
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
- data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
- data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
- data/spec/fixtures/ssl/intermediate.pem +51 -51
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +106 -106
- data/spec/fixtures/ssl/pluto.pem +50 -50
- data/spec/fixtures/ssl/request-key.pem +106 -106
- data/spec/fixtures/ssl/request.pem +45 -45
- data/spec/fixtures/ssl/revoked-key.pem +106 -106
- data/spec/fixtures/ssl/revoked.pem +49 -49
- data/spec/fixtures/ssl/signed-key.pem +106 -106
- data/spec/fixtures/ssl/signed.pem +47 -47
- data/spec/fixtures/ssl/tampered-cert.pem +49 -49
- data/spec/fixtures/ssl/tampered-csr.pem +45 -45
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-ca.pem +52 -52
- data/spec/integration/application/agent_spec.rb +118 -52
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/resource_spec.rb +64 -0
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/defaults_spec.rb +5 -0
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/indirector/facts/facter_spec.rb +93 -39
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/type/exec_spec.rb +70 -45
- data/spec/integration/type/file_spec.rb +2 -2
- data/spec/integration/type/package_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/lib/puppet/test_ca.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +13 -2
- data/spec/lib/puppet_spec/puppetserver.rb +15 -0
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
- data/spec/shared_contexts/l10n.rb +27 -0
- data/spec/spec_helper.rb +1 -10
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/configurer_spec.rb +277 -56
- data/spec/unit/environments_spec.rb +184 -0
- data/spec/unit/facter_impl_spec.rb +31 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
- data/spec/unit/file_serving/configuration_spec.rb +12 -4
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +13 -0
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +10 -0
- data/spec/unit/functions/logging_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +87 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +19 -10
- data/spec/unit/http/service/compiler_spec.rb +8 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/indirection_spec.rb +10 -3
- data/spec/unit/indirector/resource/ral_spec.rb +40 -75
- data/spec/unit/interface/action_spec.rb +0 -9
- data/spec/unit/module_spec.rb +14 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
- data/spec/unit/parser/compiler_spec.rb +29 -0
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
- data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
- data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- 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 +38 -1
- data/spec/unit/provider/package/pkg_spec.rb +19 -5
- data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
- data/spec/unit/provider/parsedfile_spec.rb +10 -0
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/systemd_spec.rb +13 -1
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
- data/spec/unit/provider/user/useradd_spec.rb +3 -2
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/resource/type_collection_spec.rb +16 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/settings/config_file_spec.rb +1 -11
- data/spec/unit/settings/file_setting_spec.rb +10 -7
- data/spec/unit/settings/value_translator_spec.rb +4 -5
- data/spec/unit/settings_spec.rb +120 -79
- data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/service_spec.rb +49 -34
- data/spec/unit/type/tidy_spec.rb +7 -0
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/ldap/connection_spec.rb +10 -10
- data/spec/unit/util/ldap/manager_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/windows/sid_spec.rb +39 -4
- data/spec/unit/util_spec.rb +1 -3
- data/spec/unit/x509/cert_provider_spec.rb +9 -1
- data/tasks/generate_cert_fixtures.rake +10 -1
- data/tasks/parallel.rake +3 -3
- metadata +53 -95
- data/ext/README.environment +0 -8
- data/ext/dbfix.sql +0 -132
- data/ext/debian/README.Debian +0 -8
- data/ext/debian/README.source +0 -2
- data/ext/debian/TODO.Debian +0 -1
- data/ext/debian/changelog.erb +0 -1122
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -144
- data/ext/debian/copyright +0 -339
- data/ext/debian/docs +0 -1
- data/ext/debian/fileserver.conf +0 -41
- data/ext/debian/puppet-common.dirs +0 -13
- data/ext/debian/puppet-common.install +0 -3
- data/ext/debian/puppet-common.lintian-overrides +0 -5
- data/ext/debian/puppet-common.manpages +0 -28
- data/ext/debian/puppet-common.postinst +0 -35
- data/ext/debian/puppet-common.postrm +0 -33
- data/ext/debian/puppet-el.dirs +0 -1
- data/ext/debian/puppet-el.emacsen-install +0 -25
- data/ext/debian/puppet-el.emacsen-remove +0 -11
- data/ext/debian/puppet-el.emacsen-startup +0 -9
- data/ext/debian/puppet-el.install +0 -1
- data/ext/debian/puppet-testsuite.install +0 -2
- data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
- data/ext/debian/puppet.lintian-overrides +0 -3
- data/ext/debian/puppet.logrotate +0 -20
- data/ext/debian/puppet.postinst +0 -20
- data/ext/debian/puppet.postrm +0 -20
- data/ext/debian/puppet.preinst +0 -20
- data/ext/debian/puppetmaster-common.install +0 -2
- data/ext/debian/puppetmaster-common.manpages +0 -2
- data/ext/debian/puppetmaster-common.postinst +0 -6
- data/ext/debian/puppetmaster-passenger.dirs +0 -4
- data/ext/debian/puppetmaster-passenger.postinst +0 -162
- data/ext/debian/puppetmaster-passenger.postrm +0 -61
- data/ext/debian/puppetmaster.README.debian +0 -17
- data/ext/debian/puppetmaster.default +0 -14
- data/ext/debian/puppetmaster.init +0 -137
- data/ext/debian/puppetmaster.lintian-overrides +0 -3
- data/ext/debian/puppetmaster.postinst +0 -20
- data/ext/debian/puppetmaster.postrm +0 -5
- data/ext/debian/puppetmaster.preinst +0 -22
- data/ext/debian/rules +0 -132
- data/ext/debian/source/format +0 -1
- data/ext/debian/source/options +0 -1
- data/ext/debian/vim-puppet.README.Debian +0 -13
- data/ext/debian/vim-puppet.dirs +0 -5
- data/ext/debian/vim-puppet.yaml +0 -7
- data/ext/debian/watch +0 -2
- data/ext/freebsd/puppetd +0 -26
- data/ext/freebsd/puppetmasterd +0 -26
- data/ext/gentoo/conf.d/puppet +0 -5
- data/ext/gentoo/conf.d/puppetmaster +0 -12
- data/ext/gentoo/init.d/puppet +0 -38
- data/ext/gentoo/init.d/puppetmaster +0 -51
- data/ext/gentoo/puppet/fileserver.conf +0 -41
- data/ext/ips/puppet-agent +0 -44
- data/ext/ips/puppet-master +0 -44
- data/ext/ips/puppet.p5m.erb +0 -12
- data/ext/ips/puppetagent.xml +0 -42
- data/ext/ips/puppetmaster.xml +0 -42
- data/ext/ips/rules +0 -19
- data/ext/ips/transforms +0 -34
- data/ext/ldap/puppet.schema +0 -24
- data/ext/logcheck/puppet +0 -23
- data/ext/osx/file_mapping.yaml +0 -28
- data/ext/osx/postflight.erb +0 -109
- data/ext/osx/preflight.erb +0 -52
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/redhat/fileserver.conf +0 -41
- data/ext/redhat/logrotate +0 -21
- data/ext/redhat/puppet.spec.erb +0 -841
- data/ext/redhat/server.init +0 -128
- data/ext/redhat/server.sysconfig +0 -13
- data/ext/solaris/pkginfo +0 -6
- data/ext/solaris/smf/puppetd.xml +0 -77
- data/ext/solaris/smf/puppetmasterd.xml +0 -77
- data/ext/solaris/smf/svc-puppetd +0 -71
- data/ext/solaris/smf/svc-puppetmasterd +0 -67
- data/ext/suse/puppet.spec +0 -310
- data/ext/suse/server.init +0 -173
- data/ext/yaml_nodes.rb +0 -105
- data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -126,7 +126,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
126
126
|
if self.class.compare_pip_versions(command_version, '1.5.4') == -1
|
127
127
|
available_versions_with_old_pip.last
|
128
128
|
else
|
129
|
-
available_versions_with_new_pip.last
|
129
|
+
available_versions_with_new_pip(command_version).last
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -149,15 +149,17 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
149
149
|
if self.class.compare_pip_versions(command_version, '1.5.4') == -1
|
150
150
|
available_versions_with_old_pip
|
151
151
|
else
|
152
|
-
available_versions_with_new_pip
|
152
|
+
available_versions_with_new_pip(command_version)
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
|
-
def available_versions_with_new_pip
|
156
|
+
def available_versions_with_new_pip(command_version)
|
157
157
|
command = resource_or_provider_command
|
158
158
|
self.class.validate_command(command)
|
159
159
|
|
160
160
|
command_and_options = [self.class.quote(command), 'install', "#{@resource[:name]}==versionplease"]
|
161
|
+
extra_arg = list_extra_flags(command_version)
|
162
|
+
command_and_options << extra_arg if extra_arg
|
161
163
|
command_and_options << install_options if @resource[:install_options]
|
162
164
|
execpipe command_and_options do |process|
|
163
165
|
process.collect do |line|
|
@@ -328,4 +330,14 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
328
330
|
path
|
329
331
|
end
|
330
332
|
end
|
333
|
+
|
334
|
+
private
|
335
|
+
|
336
|
+
def list_extra_flags(command_version)
|
337
|
+
klass = self.class
|
338
|
+
if klass.compare_pip_versions(command_version, '20.2.4') == 1 &&
|
339
|
+
klass.compare_pip_versions(command_version, '21.1') == -1
|
340
|
+
'--use-deprecated=legacy-resolver'
|
341
|
+
end
|
342
|
+
end
|
331
343
|
end
|
@@ -161,7 +161,14 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
161
161
|
command = is == :absent ? 'install' : 'update'
|
162
162
|
options = ['-n']
|
163
163
|
options.concat(join_options(@resource[:install_options])) if @resource[:install_options]
|
164
|
-
|
164
|
+
|
165
|
+
begin
|
166
|
+
unhold if properties[:mark] == :hold
|
167
|
+
status = exec_cmd(command(:pkg), command, *options, "#{name}@#{p[:ensure]}")[:exit]
|
168
|
+
ensure
|
169
|
+
hold if properties[:mark] == :hold
|
170
|
+
end
|
171
|
+
|
165
172
|
case status
|
166
173
|
when 4
|
167
174
|
# if the first installable match would cause no changes, we're in sync
|
@@ -221,7 +228,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
221
228
|
command = 'update'
|
222
229
|
end
|
223
230
|
args = ['--accept']
|
224
|
-
if Puppet::Util::Package.versioncmp(
|
231
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.2') >= 0
|
225
232
|
args.push('--sync-actuators-timeout', '900')
|
226
233
|
end
|
227
234
|
args.concat(join_options(@resource[:install_options])) if @resource[:install_options]
|
@@ -4,7 +4,7 @@ Puppet::Type.type(:package).provide :puppet_gem, :parent => :gem do
|
|
4
4
|
|
5
5
|
has_feature :versionable, :install_options, :uninstall_options
|
6
6
|
|
7
|
-
confine :true =>
|
7
|
+
confine :true => Puppet.runtime[:facter].value(:aio_agent_version)
|
8
8
|
|
9
9
|
def self.windows_gemcmd
|
10
10
|
puppet_dir = Puppet::Util.get_env('PUPPET_DIR')
|
@@ -145,7 +145,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
145
145
|
|
146
146
|
pe_puppetserver_conf_file = '/etc/puppetlabs/puppetserver/conf.d/pe-puppet-server.conf'
|
147
147
|
os_puppetserver_conf_file = '/etc/puppetlabs/puppetserver/puppetserver.conf'
|
148
|
-
puppetserver_conf_file =
|
148
|
+
puppetserver_conf_file = Puppet.runtime[:facter].value(:pe_server_version) ? pe_puppetserver_conf_file : os_puppetserver_conf_file
|
149
149
|
puppetserver_conf = Hocon.load(puppetserver_conf_file)
|
150
150
|
|
151
151
|
gem_env = {}
|
@@ -17,6 +17,11 @@ class Puppet::Provider::Package::Windows
|
|
17
17
|
'WindowsInstaller',
|
18
18
|
]
|
19
19
|
|
20
|
+
def self.register(path)
|
21
|
+
Puppet::Type::Package::ProviderWindows.paths ||= []
|
22
|
+
Puppet::Type::Package::ProviderWindows.paths << path
|
23
|
+
end
|
24
|
+
|
20
25
|
# Return an instance of the package from the registry, or nil
|
21
26
|
def self.from_registry(name, values)
|
22
27
|
if valid?(name, values)
|
@@ -55,7 +60,31 @@ class Puppet::Provider::Package::Windows
|
|
55
60
|
end
|
56
61
|
|
57
62
|
def self.install_command(resource)
|
58
|
-
|
63
|
+
file_location = resource[:source]
|
64
|
+
if file_location.start_with?('http://', 'https://')
|
65
|
+
tempfile = Tempfile.new(['','.exe'])
|
66
|
+
begin
|
67
|
+
uri = URI(Puppet::Util.uri_encode(file_location))
|
68
|
+
client = Puppet.runtime[:http]
|
69
|
+
client.get(uri, options: { include_system_store: true }) do |response|
|
70
|
+
raise Puppet::HTTP::ResponseError.new(response) unless response.success?
|
71
|
+
|
72
|
+
File.open(tempfile.path, 'wb') do |file|
|
73
|
+
response.read_body do |data|
|
74
|
+
file.write(data)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
rescue => detail
|
79
|
+
raise Puppet::Error.new(_("Error when installing %{package}: %{detail}") % { package: resource[:name] ,detail: detail.message}, detail)
|
80
|
+
ensure
|
81
|
+
self.register(tempfile.path)
|
82
|
+
tempfile.close()
|
83
|
+
file_location = tempfile.path
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
munge(file_location)
|
59
88
|
end
|
60
89
|
|
61
90
|
def uninstall_command
|
@@ -67,7 +67,8 @@ class Puppet::Provider::Package::Windows
|
|
67
67
|
# REMIND: what about msp, etc
|
68
68
|
MsiPackage
|
69
69
|
when /\.exe"?\Z/i
|
70
|
-
fail(_("The source does not exist: '%{source}'") % { source: resource[:source] }) unless
|
70
|
+
fail(_("The source does not exist: '%{source}'") % { source: resource[:source] }) unless
|
71
|
+
Puppet::FileSystem.exist?(resource[:source]) || resource[:source].start_with?('http://', 'https://')
|
71
72
|
ExePackage
|
72
73
|
else
|
73
74
|
fail(_("Don't know how to install '%{source}'") % { source: resource[:source] })
|
@@ -30,6 +30,19 @@ Puppet::Type.type(:package).provide(:windows, :parent => Puppet::Provider::Packa
|
|
30
30
|
has_feature :versionable
|
31
31
|
|
32
32
|
attr_accessor :package
|
33
|
+
class << self
|
34
|
+
attr_accessor :paths
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.post_resource_eval
|
38
|
+
@paths.each do |path|
|
39
|
+
begin
|
40
|
+
Puppet::FileSystem.unlink(path)
|
41
|
+
rescue => detail
|
42
|
+
raise Puppet::Error.new(_("Error when unlinking %{path}: %{detail}") % { path: path ,detail: detail.message}, detail)
|
43
|
+
end
|
44
|
+
end if @paths
|
45
|
+
end
|
33
46
|
|
34
47
|
# Return an array of provider instances
|
35
48
|
def self.instances
|
@@ -64,7 +77,7 @@ Puppet::Type.type(:package).provide(:windows, :parent => Puppet::Provider::Packa
|
|
64
77
|
|
65
78
|
command = [installer.install_command(resource), install_options].flatten.compact.join(' ')
|
66
79
|
working_dir = File.dirname(resource[:source])
|
67
|
-
|
80
|
+
unless Puppet::FileSystem.exist?(working_dir)
|
68
81
|
working_dir = nil
|
69
82
|
end
|
70
83
|
output = execute(command, :failonfail => false, :combine => true, :cwd => working_dir, :suppress_window => true)
|
@@ -203,17 +203,17 @@ defaultfor :osfamily => :redhat, :operatingsystemmajrelease => (4..7).to_a
|
|
203
203
|
Puppet.debug("Cannot parse #{should} as a RPM version range")
|
204
204
|
return should
|
205
205
|
end
|
206
|
-
|
206
|
+
versions = []
|
207
207
|
available_versions(@resource[:name]).each do |version|
|
208
208
|
begin
|
209
209
|
rpm_version = RPM_VERSION.parse(version)
|
210
|
-
|
210
|
+
versions << rpm_version if should_range.include?(rpm_version)
|
211
211
|
rescue RPM_VERSION::ValidationFailure
|
212
212
|
Puppet.debug("Cannot parse #{version} as a RPM version")
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
|
-
version =
|
216
|
+
version = versions.sort.last if versions.any?
|
217
217
|
|
218
218
|
if version
|
219
219
|
version = version.to_s.sub(/^\d+:/, '')
|
@@ -298,7 +298,7 @@ defaultfor :osfamily => :redhat, :operatingsystemmajrelease => (4..7).to_a
|
|
298
298
|
|
299
299
|
# Yum on el-4 and el-5 returns exit status 0 when trying to install a package it doesn't recognize;
|
300
300
|
# ensure we capture output to check for errors.
|
301
|
-
no_debug = if
|
301
|
+
no_debug = if Puppet.runtime[:facter].value(:operatingsystemmajrelease).to_i > 5 then ["-d", "0"] else [] end
|
302
302
|
command = [command(:cmd)] + no_debug + ["-e", error_level, "-y", install_options, operation, wanted].compact
|
303
303
|
output = execute(command)
|
304
304
|
|
@@ -63,7 +63,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
63
63
|
return should
|
64
64
|
end
|
65
65
|
|
66
|
-
|
66
|
+
versions = []
|
67
67
|
|
68
68
|
output = zypper('search', '--match-exact', '--type', 'package', '--uninstalled-only', '-s', @resource[:name])
|
69
69
|
output.lines.each do |line|
|
@@ -72,13 +72,13 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
|
|
72
72
|
begin
|
73
73
|
rpm_version = Puppet::Util::Package::Version::Rpm.parse(pkg_ver[3])
|
74
74
|
|
75
|
-
|
75
|
+
versions << rpm_version if should_range.include?(rpm_version)
|
76
76
|
rescue Puppet::Util::Package::Version::Rpm::ValidationFailure
|
77
77
|
Puppet.debug("Cannot parse #{pkg_ver[3]} as a RPM version")
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
return
|
81
|
+
return versions.sort.last if versions.any?
|
82
82
|
|
83
83
|
Puppet.debug("No available version for package #{@resource[:name]} is included in range #{should_range}")
|
84
84
|
should
|
@@ -280,6 +280,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
280
280
|
def self.prefetch_target(target)
|
281
281
|
begin
|
282
282
|
target_records = retrieve(target)
|
283
|
+
unless target_records
|
284
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: self.name }
|
285
|
+
end
|
283
286
|
rescue Puppet::Util::FileType::FileReadError => detail
|
284
287
|
if @raise_prefetch_errors
|
285
288
|
# We will raise an error later in flush_target. This way,
|
@@ -15,7 +15,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
15
15
|
# ported from the facter 2.x implementation, since facter 3.x
|
16
16
|
# is dropping the fact (for which this was the only use)
|
17
17
|
def getps
|
18
|
-
case
|
18
|
+
case Puppet.runtime[:facter].value(:operatingsystem)
|
19
19
|
when 'OpenWrt'
|
20
20
|
'ps www'
|
21
21
|
when 'FreeBSD', 'NetBSD', 'OpenBSD', 'Darwin', 'DragonFly'
|
@@ -74,7 +74,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
74
74
|
if Puppet::FileSystem.exist?(filename)
|
75
75
|
s = File.read(filename)
|
76
76
|
if s.gsub!(/^(#{rcvar}(_enable)?)=\"?(YES|NO)\"?/, "\\1=\"#{yesno}\"")
|
77
|
-
|
77
|
+
Puppet::FileSystem.replace_file(filename) { |f| f << s }
|
78
78
|
self.debug("Replaced in #{filename}")
|
79
79
|
success = true
|
80
80
|
end
|
@@ -4,7 +4,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
4
4
|
desc "Standard `init`-style service management."
|
5
5
|
|
6
6
|
def self.defpath
|
7
|
-
case
|
7
|
+
case Puppet.runtime[:facter].value(:operatingsystem)
|
8
8
|
when "FreeBSD", "DragonFly"
|
9
9
|
["/etc/rc.d", "/usr/local/etc/rc.d"]
|
10
10
|
when "HP-UX"
|
@@ -21,8 +21,8 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
21
21
|
# Debian and Ubuntu should use the Debian provider.
|
22
22
|
# RedHat systems should use the RedHat provider.
|
23
23
|
confine :true => begin
|
24
|
-
os =
|
25
|
-
family =
|
24
|
+
os = Puppet.runtime[:facter].value(:operatingsystem).downcase
|
25
|
+
family = Puppet.runtime[:facter].value(:osfamily).downcase
|
26
26
|
!(os == 'debian' || os == 'ubuntu' || family == 'redhat')
|
27
27
|
end
|
28
28
|
|
@@ -54,7 +54,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
54
54
|
# these excludes were found with grep -r -L start /etc/init.d
|
55
55
|
excludes += %w{rcS module-init-tools}
|
56
56
|
# Prevent puppet failing on unsafe scripts from Yocto Linux
|
57
|
-
if
|
57
|
+
if Puppet.runtime[:facter].value(:osfamily) == "cisco-wrlinux"
|
58
58
|
excludes += %w{banner.sh bootmisc.sh checkroot.sh devpts.sh dmesg.sh
|
59
59
|
hostname.sh mountall.sh mountnfs.sh populate-volatile.sh
|
60
60
|
rmnologin.sh save-rtc.sh sendsigs sysfs.sh umountfs
|
@@ -171,7 +171,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
171
171
|
end
|
172
172
|
|
173
173
|
def service_execute(type, command, fof = true, squelch = false, combine = true)
|
174
|
-
if type == :start &&
|
174
|
+
if type == :start && Puppet.runtime[:facter].value(:osfamily) == "Solaris"
|
175
175
|
command = ["/usr/bin/ctrun -l child", command].flatten.join(" ")
|
176
176
|
end
|
177
177
|
super(type, command, fof, squelch, combine)
|
@@ -70,7 +70,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
70
70
|
#
|
71
71
|
# @api private
|
72
72
|
def self.get_os_version
|
73
|
-
@os_version ||=
|
73
|
+
@os_version ||= Puppet.runtime[:facter].value(:operatingsystemmajrelease).to_i
|
74
74
|
end
|
75
75
|
|
76
76
|
# Defines the path to the overrides plist file where service enabling
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
138
138
|
Puppet.debug("Reading launchd plist #{filepath}")
|
139
139
|
job = read_plist(filepath)
|
140
140
|
next if job.nil?
|
141
|
-
if job.
|
141
|
+
if job.respond_to?(:key) && job.key?("Label")
|
142
142
|
@label_to_path_map[job["Label"]] = filepath
|
143
143
|
else
|
144
144
|
#TRANSLATORS 'plist' and label' should not be translated
|
@@ -35,7 +35,7 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
35
35
|
# For Suse OS family, chkconfig returns 0 even if the service is disabled or non-existent
|
36
36
|
# Therefore, check the output for '<name> on' (or '<name> B for boot services)
|
37
37
|
# to see if it is enabled
|
38
|
-
return :false unless
|
38
|
+
return :false unless Puppet.runtime[:facter].value(:osfamily) != 'Suse' || output =~ /^#{name}\s+(on|B)$/
|
39
39
|
|
40
40
|
:true
|
41
41
|
end
|
@@ -101,14 +101,14 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
101
101
|
|
102
102
|
# Returns true if the provider supports incomplete services.
|
103
103
|
def supports_incomplete_services?
|
104
|
-
Puppet::Util::Package.versioncmp(
|
104
|
+
Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.1') >= 0
|
105
105
|
end
|
106
106
|
|
107
107
|
# Returns true if the service is complete. A complete service is a service that
|
108
108
|
# has the general/complete property defined.
|
109
109
|
def complete_service?
|
110
110
|
unless supports_incomplete_services?
|
111
|
-
raise Puppet::Error, _("Cannot query if the %{service} service is complete: The concept of complete/incomplete services was introduced in Solaris 11.1. You are on a Solaris %{release} machine.") % { service: @resource[:name], release:
|
111
|
+
raise Puppet::Error, _("Cannot query if the %{service} service is complete: The concept of complete/incomplete services was introduced in Solaris 11.1. You are on a Solaris %{release} machine.") % { service: @resource[:name], release: Puppet.runtime[:facter].value(:operatingsystemrelease) }
|
112
112
|
end
|
113
113
|
|
114
114
|
return @complete_service if @complete_service
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def restartcmd
|
141
|
-
if Puppet::Util::Package.versioncmp(
|
141
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.2') >= 0
|
142
142
|
[command(:adm), :restart, "-s", self.service_fmri]
|
143
143
|
else
|
144
144
|
# Synchronous restart only supported in Solaris 11.2 and above
|
@@ -14,7 +14,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
14
14
|
confine :true => Puppet::FileSystem.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd')
|
15
15
|
|
16
16
|
defaultfor :osfamily => [:archlinux]
|
17
|
-
defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["7", "8"]
|
17
|
+
defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["7", "8", "9"]
|
18
18
|
defaultfor :osfamily => :redhat, :operatingsystem => :fedora
|
19
19
|
defaultfor :osfamily => :suse
|
20
20
|
defaultfor :osfamily => :coreos
|
@@ -110,7 +110,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
110
110
|
# The indirect state indicates that the unit is not enabled.
|
111
111
|
return :false if output == 'indirect'
|
112
112
|
return :true if (code == 0)
|
113
|
-
if (output.empty?) && (code > 0) && (
|
113
|
+
if (output.empty?) && (code > 0) && (Puppet.runtime[:facter].value(:osfamily).casecmp('debian').zero?)
|
114
114
|
ret = debian_enabled?
|
115
115
|
return ret if ret
|
116
116
|
end
|
@@ -164,10 +164,15 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
164
164
|
end
|
165
165
|
|
166
166
|
def mask
|
167
|
-
|
167
|
+
disable if exist?
|
168
168
|
systemctl_change_enable(:mask)
|
169
169
|
end
|
170
170
|
|
171
|
+
def exist?
|
172
|
+
result = execute([command(:systemctl), 'cat', '--', @resource[:name]], :failonfail => false)
|
173
|
+
result.exitstatus == 0
|
174
|
+
end
|
175
|
+
|
171
176
|
def unmask
|
172
177
|
systemctl_change_enable(:unmask)
|
173
178
|
end
|
@@ -10,10 +10,10 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
10
10
|
"
|
11
11
|
|
12
12
|
confine :any => [
|
13
|
-
|
14
|
-
(
|
15
|
-
(
|
16
|
-
|
13
|
+
Puppet.runtime[:facter].value(:operatingsystem) == 'Ubuntu',
|
14
|
+
(Puppet.runtime[:facter].value(:osfamily) == 'RedHat' and Puppet.runtime[:facter].value(:operatingsystemrelease) =~ /^6\./),
|
15
|
+
(Puppet.runtime[:facter].value(:operatingsystem) == 'Amazon' and Puppet.runtime[:facter].value(:operatingsystemmajrelease) =~ /\d{4}/),
|
16
|
+
Puppet.runtime[:facter].value(:operatingsystem) == 'LinuxMint',
|
17
17
|
]
|
18
18
|
|
19
19
|
defaultfor :operatingsystem => :ubuntu, :operatingsystemmajrelease => ["10.04", "12.04", "14.04", "14.10"]
|
@@ -57,7 +57,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
57
57
|
|
58
58
|
def self.excludes
|
59
59
|
excludes = super
|
60
|
-
if
|
60
|
+
if Puppet.runtime[:facter].value(:osfamily) == 'RedHat'
|
61
61
|
# Puppet cannot deal with services that have instances, so we have to
|
62
62
|
# ignore these services using instances on redhat based systems.
|
63
63
|
excludes += %w[serial tty]
|
@@ -265,6 +265,50 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
265
265
|
end
|
266
266
|
end
|
267
267
|
|
268
|
+
# Lists all instances of the given object, taking in an optional set
|
269
|
+
# of ia_module arguments. Returns an array of hashes, each hash
|
270
|
+
# having the schema
|
271
|
+
# {
|
272
|
+
# :name => <object_name>
|
273
|
+
# :home => <object_home>
|
274
|
+
# }
|
275
|
+
def list_all_homes(ia_module_args = [])
|
276
|
+
cmd = [command(:list), '-c', *ia_module_args, '-a', 'home', 'ALL']
|
277
|
+
parse_aix_objects(execute(cmd)).to_a.map do |object|
|
278
|
+
name = object[:name]
|
279
|
+
home = object[:attributes].delete(:home)
|
280
|
+
|
281
|
+
{ name: name, home: home }
|
282
|
+
end
|
283
|
+
rescue => e
|
284
|
+
Puppet.debug("Could not list home of all users: #{e.message}")
|
285
|
+
{}
|
286
|
+
end
|
287
|
+
|
288
|
+
# Deletes this instance resource
|
289
|
+
def delete
|
290
|
+
homedir = home
|
291
|
+
super
|
292
|
+
return unless @resource.managehome?
|
293
|
+
|
294
|
+
if !Puppet::Util.absolute_path?(homedir) || File.realpath(homedir) == '/' || Puppet::FileSystem.symlink?(homedir)
|
295
|
+
Puppet.debug("Can not remove home directory '#{homedir}' of user '#{@resource[:name]}'. Please make sure the path is not relative, symlink or '/'.")
|
296
|
+
return
|
297
|
+
end
|
298
|
+
|
299
|
+
affected_home = list_all_homes.find { |info| info[:home].start_with?(File.realpath(homedir)) }
|
300
|
+
if affected_home
|
301
|
+
Puppet.debug("Can not remove home directory '#{homedir}' of user '#{@resource[:name]}' as it would remove the home directory '#{affected_home[:home]}' of user '#{affected_home[:name]}' also.")
|
302
|
+
return
|
303
|
+
end
|
304
|
+
|
305
|
+
FileUtils.remove_entry_secure(homedir, true)
|
306
|
+
end
|
307
|
+
|
308
|
+
def deletecmd
|
309
|
+
[self.class.command(:delete), '-p'] + ia_module_args + [@resource[:name]]
|
310
|
+
end
|
311
|
+
|
268
312
|
# UNSUPPORTED
|
269
313
|
#- **profile_membership**
|
270
314
|
# Whether specified roles should be treated as the only roles
|
@@ -314,5 +358,4 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
314
358
|
# be treated as the minimum membership list. Valid values are
|
315
359
|
# `inclusive`, `minimum`.
|
316
360
|
# UNSUPPORTED
|
317
|
-
|
318
361
|
end
|