puppet 7.7.0-universal-darwin → 7.11.0-universal-darwin
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
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# The Lexer is responsible for turning source text into tokens.
|
2
3
|
# This version is a performance enhanced lexer (in comparison to the 3.x and earlier "future parser" lexer.
|
3
4
|
#
|
@@ -30,85 +31,85 @@ class Lexer2
|
|
30
31
|
# The length is pre-calculated for all singleton tokens. The length is used both to signal the length of
|
31
32
|
# the token, and to advance the scanner position (without having to advance it with a scan(regexp)).
|
32
33
|
#
|
33
|
-
TOKEN_LBRACK = [:LBRACK, '['
|
34
|
-
TOKEN_LISTSTART = [:LISTSTART, '['
|
35
|
-
TOKEN_RBRACK = [:RBRACK, ']'
|
36
|
-
TOKEN_LBRACE = [:LBRACE, '{'
|
37
|
-
TOKEN_RBRACE = [:RBRACE, '}'
|
38
|
-
TOKEN_SELBRACE = [:SELBRACE, '{'
|
39
|
-
TOKEN_LPAREN = [:LPAREN, '('
|
40
|
-
TOKEN_WSLPAREN = [:WSLPAREN, '('
|
41
|
-
TOKEN_RPAREN = [:RPAREN, ')'
|
42
|
-
|
43
|
-
TOKEN_EQUALS = [:EQUALS, '='
|
44
|
-
TOKEN_APPENDS = [:APPENDS, '+='
|
45
|
-
TOKEN_DELETES = [:DELETES, '-='
|
46
|
-
|
47
|
-
TOKEN_ISEQUAL = [:ISEQUAL, '=='
|
48
|
-
TOKEN_NOTEQUAL = [:NOTEQUAL, '!='
|
49
|
-
TOKEN_MATCH = [:MATCH, '=~'
|
50
|
-
TOKEN_NOMATCH = [:NOMATCH, '!~'
|
51
|
-
TOKEN_GREATEREQUAL = [:GREATEREQUAL, '>='
|
52
|
-
TOKEN_GREATERTHAN = [:GREATERTHAN, '>'
|
53
|
-
TOKEN_LESSEQUAL = [:LESSEQUAL, '<='
|
54
|
-
TOKEN_LESSTHAN = [:LESSTHAN, '<'
|
55
|
-
|
56
|
-
TOKEN_FARROW = [:FARROW, '=>'
|
57
|
-
TOKEN_PARROW = [:PARROW, '+>'
|
58
|
-
|
59
|
-
TOKEN_LSHIFT = [:LSHIFT, '<<'
|
60
|
-
TOKEN_LLCOLLECT = [:LLCOLLECT, '<<|'
|
61
|
-
TOKEN_LCOLLECT = [:LCOLLECT, '<|'
|
62
|
-
|
63
|
-
TOKEN_RSHIFT = [:RSHIFT, '>>'
|
64
|
-
TOKEN_RRCOLLECT = [:RRCOLLECT, '|>>'
|
65
|
-
TOKEN_RCOLLECT = [:RCOLLECT, '|>'
|
66
|
-
|
67
|
-
TOKEN_PLUS = [:PLUS, '+'
|
68
|
-
TOKEN_MINUS = [:MINUS, '-'
|
69
|
-
TOKEN_DIV = [:DIV, '/'
|
70
|
-
TOKEN_TIMES = [:TIMES, '*'
|
71
|
-
TOKEN_MODULO = [:MODULO, '%'
|
72
|
-
|
73
|
-
TOKEN_NOT = [:NOT, '!'
|
74
|
-
TOKEN_DOT = [:DOT, '.'
|
75
|
-
TOKEN_PIPE = [:PIPE, '|'
|
76
|
-
TOKEN_AT = [:AT , '@'
|
77
|
-
TOKEN_ATAT = [:ATAT , '@@'
|
78
|
-
TOKEN_COLON = [:COLON, ':'
|
79
|
-
TOKEN_COMMA = [:COMMA, ','
|
80
|
-
TOKEN_SEMIC = [:SEMIC, ';'
|
81
|
-
TOKEN_QMARK = [:QMARK, '?'
|
82
|
-
TOKEN_TILDE = [:TILDE, '~'
|
34
|
+
TOKEN_LBRACK = [:LBRACK, '[', 1].freeze
|
35
|
+
TOKEN_LISTSTART = [:LISTSTART, '[', 1].freeze
|
36
|
+
TOKEN_RBRACK = [:RBRACK, ']', 1].freeze
|
37
|
+
TOKEN_LBRACE = [:LBRACE, '{', 1].freeze
|
38
|
+
TOKEN_RBRACE = [:RBRACE, '}', 1].freeze
|
39
|
+
TOKEN_SELBRACE = [:SELBRACE, '{', 1].freeze
|
40
|
+
TOKEN_LPAREN = [:LPAREN, '(', 1].freeze
|
41
|
+
TOKEN_WSLPAREN = [:WSLPAREN, '(', 1].freeze
|
42
|
+
TOKEN_RPAREN = [:RPAREN, ')', 1].freeze
|
43
|
+
|
44
|
+
TOKEN_EQUALS = [:EQUALS, '=', 1].freeze
|
45
|
+
TOKEN_APPENDS = [:APPENDS, '+=', 2].freeze
|
46
|
+
TOKEN_DELETES = [:DELETES, '-=', 2].freeze
|
47
|
+
|
48
|
+
TOKEN_ISEQUAL = [:ISEQUAL, '==', 2].freeze
|
49
|
+
TOKEN_NOTEQUAL = [:NOTEQUAL, '!=', 2].freeze
|
50
|
+
TOKEN_MATCH = [:MATCH, '=~', 2].freeze
|
51
|
+
TOKEN_NOMATCH = [:NOMATCH, '!~', 2].freeze
|
52
|
+
TOKEN_GREATEREQUAL = [:GREATEREQUAL, '>=', 2].freeze
|
53
|
+
TOKEN_GREATERTHAN = [:GREATERTHAN, '>', 1].freeze
|
54
|
+
TOKEN_LESSEQUAL = [:LESSEQUAL, '<=', 2].freeze
|
55
|
+
TOKEN_LESSTHAN = [:LESSTHAN, '<', 1].freeze
|
56
|
+
|
57
|
+
TOKEN_FARROW = [:FARROW, '=>', 2].freeze
|
58
|
+
TOKEN_PARROW = [:PARROW, '+>', 2].freeze
|
59
|
+
|
60
|
+
TOKEN_LSHIFT = [:LSHIFT, '<<', 2].freeze
|
61
|
+
TOKEN_LLCOLLECT = [:LLCOLLECT, '<<|', 3].freeze
|
62
|
+
TOKEN_LCOLLECT = [:LCOLLECT, '<|', 2].freeze
|
63
|
+
|
64
|
+
TOKEN_RSHIFT = [:RSHIFT, '>>', 2].freeze
|
65
|
+
TOKEN_RRCOLLECT = [:RRCOLLECT, '|>>', 3].freeze
|
66
|
+
TOKEN_RCOLLECT = [:RCOLLECT, '|>', 2].freeze
|
67
|
+
|
68
|
+
TOKEN_PLUS = [:PLUS, '+', 1].freeze
|
69
|
+
TOKEN_MINUS = [:MINUS, '-', 1].freeze
|
70
|
+
TOKEN_DIV = [:DIV, '/', 1].freeze
|
71
|
+
TOKEN_TIMES = [:TIMES, '*', 1].freeze
|
72
|
+
TOKEN_MODULO = [:MODULO, '%', 1].freeze
|
73
|
+
|
74
|
+
TOKEN_NOT = [:NOT, '!', 1].freeze
|
75
|
+
TOKEN_DOT = [:DOT, '.', 1].freeze
|
76
|
+
TOKEN_PIPE = [:PIPE, '|', 1].freeze
|
77
|
+
TOKEN_AT = [:AT , '@', 1].freeze
|
78
|
+
TOKEN_ATAT = [:ATAT , '@@', 2].freeze
|
79
|
+
TOKEN_COLON = [:COLON, ':', 1].freeze
|
80
|
+
TOKEN_COMMA = [:COMMA, ',', 1].freeze
|
81
|
+
TOKEN_SEMIC = [:SEMIC, ';', 1].freeze
|
82
|
+
TOKEN_QMARK = [:QMARK, '?', 1].freeze
|
83
|
+
TOKEN_TILDE = [:TILDE, '~', 1].freeze # lexed but not an operator in Puppet
|
83
84
|
|
84
85
|
TOKEN_REGEXP = [:REGEXP, nil, 0].freeze
|
85
86
|
|
86
|
-
TOKEN_IN_EDGE = [:IN_EDGE, '->'
|
87
|
-
TOKEN_IN_EDGE_SUB = [:IN_EDGE_SUB, '~>'
|
88
|
-
TOKEN_OUT_EDGE = [:OUT_EDGE, '<-'
|
89
|
-
TOKEN_OUT_EDGE_SUB = [:OUT_EDGE_SUB, '<~'
|
87
|
+
TOKEN_IN_EDGE = [:IN_EDGE, '->', 2].freeze
|
88
|
+
TOKEN_IN_EDGE_SUB = [:IN_EDGE_SUB, '~>', 2].freeze
|
89
|
+
TOKEN_OUT_EDGE = [:OUT_EDGE, '<-', 2].freeze
|
90
|
+
TOKEN_OUT_EDGE_SUB = [:OUT_EDGE_SUB, '<~', 2].freeze
|
90
91
|
|
91
92
|
# Tokens that are always unique to what has been lexed
|
92
|
-
TOKEN_STRING =
|
93
|
-
TOKEN_WORD =
|
94
|
-
TOKEN_DQPRE =
|
95
|
-
TOKEN_DQMID =
|
96
|
-
TOKEN_DQPOS =
|
97
|
-
TOKEN_NUMBER =
|
98
|
-
TOKEN_VARIABLE =
|
99
|
-
TOKEN_VARIABLE_EMPTY =
|
93
|
+
TOKEN_STRING = [:STRING, nil, 0].freeze
|
94
|
+
TOKEN_WORD = [:WORD, nil, 0].freeze
|
95
|
+
TOKEN_DQPRE = [:DQPRE, nil, 0].freeze
|
96
|
+
TOKEN_DQMID = [:DQPRE, nil, 0].freeze
|
97
|
+
TOKEN_DQPOS = [:DQPRE, nil, 0].freeze
|
98
|
+
TOKEN_NUMBER = [:NUMBER, nil, 0].freeze
|
99
|
+
TOKEN_VARIABLE = [:VARIABLE, nil, 1].freeze
|
100
|
+
TOKEN_VARIABLE_EMPTY = [:VARIABLE, '', 1].freeze
|
100
101
|
|
101
102
|
# HEREDOC has syntax as an argument.
|
102
|
-
TOKEN_HEREDOC =
|
103
|
+
TOKEN_HEREDOC = [:HEREDOC, nil, 0].freeze
|
103
104
|
|
104
105
|
# EPP_START is currently a marker token, may later get syntax
|
105
|
-
TOKEN_EPPSTART
|
106
|
-
TOKEN_EPPEND
|
107
|
-
TOKEN_EPPEND_TRIM
|
106
|
+
TOKEN_EPPSTART = [:EPP_START, nil, 0].freeze
|
107
|
+
TOKEN_EPPEND = [:EPP_END, '%>', 2].freeze
|
108
|
+
TOKEN_EPPEND_TRIM = [:EPP_END_TRIM, '-%>', 3].freeze
|
108
109
|
|
109
110
|
# This is used for unrecognized tokens, will always be a single character. This particular instance
|
110
111
|
# is not used, but is kept here for documentation purposes.
|
111
|
-
TOKEN_OTHER
|
112
|
+
TOKEN_OTHER = [:OTHER, nil, 0]
|
112
113
|
|
113
114
|
# Keywords are all singleton tokens with pre calculated lengths.
|
114
115
|
# Booleans are pre-calculated (rather than evaluating the strings "false" "true" repeatedly.
|
@@ -175,7 +176,7 @@ class Lexer2
|
|
175
176
|
# PERFORMANCE NOTE:
|
176
177
|
# Comparison against a frozen string is faster (than unfrozen).
|
177
178
|
#
|
178
|
-
STRING_BSLASH_SLASH = '\/'
|
179
|
+
STRING_BSLASH_SLASH = '\/'
|
179
180
|
|
180
181
|
attr_reader :locator
|
181
182
|
|
@@ -14,6 +14,8 @@ module Serialization
|
|
14
14
|
# @option options [Boolean] :local_reference use local references instead of duplicating complex entries
|
15
15
|
# @option options [Boolean] :type_by_reference `true` if Object types are converted to references rather than embedded.
|
16
16
|
# @option options [Boolean] :symbol_as_string `true` if Symbols should be converted to strings (with type loss)
|
17
|
+
# @option options [Boolean] :force_symbol `false` if Symbols should not be converted (rich_data and symbol_as_string must be false)
|
18
|
+
# @option options [Boolean] :silence_warnings `false` if warnings should be silenced
|
17
19
|
# @option options [String] :message_prefix String to prepend to in warnings and errors
|
18
20
|
# @return [Data] the processed result. An object assignable to `Data`.
|
19
21
|
#
|
@@ -41,6 +43,12 @@ module Serialization
|
|
41
43
|
@symbol_as_string = options[:symbol_as_string]
|
42
44
|
@symbol_as_string = false if @symbol_as_string.nil?
|
43
45
|
|
46
|
+
@force_symbol = options[:force_symbol]
|
47
|
+
@force_symbol = false if @force_symbol.nil?
|
48
|
+
|
49
|
+
@silence_warnings = options[:silence_warnings]
|
50
|
+
@silence_warnings = false if @silence_warnings.nil?
|
51
|
+
|
44
52
|
@rich_data = options[:rich_data]
|
45
53
|
@rich_data = false if @rich_data.nil?
|
46
54
|
|
@@ -92,7 +100,11 @@ module Serialization
|
|
92
100
|
elsif @rich_data
|
93
101
|
{ PCORE_TYPE_KEY => PCORE_TYPE_SYMBOL, PCORE_VALUE_KEY => value.to_s }
|
94
102
|
else
|
95
|
-
|
103
|
+
if @force_symbol
|
104
|
+
value
|
105
|
+
else
|
106
|
+
@silence_warnings ? unknown_to_string(value) : unknown_to_string_with_warning(value)
|
107
|
+
end
|
96
108
|
end
|
97
109
|
elsif value.instance_of?(Array)
|
98
110
|
process(value) do
|
@@ -117,7 +129,11 @@ module Serialization
|
|
117
129
|
{ PCORE_TYPE_KEY => PCORE_TYPE_SENSITIVE, PCORE_VALUE_KEY => to_data(value.unwrap) }
|
118
130
|
end
|
119
131
|
else
|
120
|
-
|
132
|
+
if @rich_data
|
133
|
+
value_to_data_hash(value)
|
134
|
+
else
|
135
|
+
@silence_warnings ? unknown_to_string(value) : unknown_to_string_with_warning(value)
|
136
|
+
end
|
121
137
|
end
|
122
138
|
end
|
123
139
|
|
@@ -191,10 +207,6 @@ module Serialization
|
|
191
207
|
v
|
192
208
|
end
|
193
209
|
|
194
|
-
def unknown_to_data(value)
|
195
|
-
@rich_data ? value_to_data_hash(value) : unknown_to_string_with_warning(value)
|
196
|
-
end
|
197
|
-
|
198
210
|
def unknown_key_to_string_with_warning(value)
|
199
211
|
str = unknown_to_string(value)
|
200
212
|
serialization_issue(Issues::SERIALIZATION_UNKNOWN_KEY_CONVERTED_TO_STRING, :path => path_to_s, :klass => value.class, :value => str)
|
@@ -95,16 +95,22 @@ class PSemVerType < PScalarType
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def from_args(major, minor, patch, prerelease = nil, build = nil)
|
98
|
-
SemanticPuppet::Version.new(major, minor, patch, prerelease, build)
|
98
|
+
SemanticPuppet::Version.new(major, minor, patch, to_array(prerelease), to_array(build))
|
99
99
|
end
|
100
100
|
|
101
101
|
def from_hash(hash)
|
102
|
-
SemanticPuppet::Version.new(hash['major'], hash['minor'], hash['patch'], hash['prerelease'], hash['build'])
|
102
|
+
SemanticPuppet::Version.new(hash['major'], hash['minor'], hash['patch'], to_array(hash['prerelease']), to_array(hash['build']))
|
103
103
|
end
|
104
104
|
|
105
105
|
def on_error(str)
|
106
106
|
_("The string '%{str}' cannot be converted to a SemVer") % { str: str }
|
107
107
|
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
def to_array(component)
|
112
|
+
component ? [component] : nil
|
113
|
+
end
|
108
114
|
end
|
109
115
|
end
|
110
116
|
|
@@ -24,6 +24,16 @@ class PSensitiveType < PTypeWithContainedType
|
|
24
24
|
def inspect
|
25
25
|
"#<#{self}>"
|
26
26
|
end
|
27
|
+
|
28
|
+
def hash
|
29
|
+
@value.hash
|
30
|
+
end
|
31
|
+
|
32
|
+
def ==(other)
|
33
|
+
other.is_a?(Sensitive) &&
|
34
|
+
other.hash == hash
|
35
|
+
end
|
36
|
+
alias eql? ==
|
27
37
|
end
|
28
38
|
|
29
39
|
def self.register_ptype(loader, ir)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require_relative '../../../puppet/concurrent/thread_local_singleton'
|
2
3
|
|
3
4
|
module Puppet::Pops
|
@@ -22,7 +23,7 @@ class TypeFormatter
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def initialize
|
25
|
-
@string_visitor = Visitor.new(nil, 'string',0,0)
|
26
|
+
@string_visitor = Visitor.new(nil, 'string', 0, 0)
|
26
27
|
end
|
27
28
|
|
28
29
|
def expanded
|
@@ -49,7 +50,7 @@ class TypeFormatter
|
|
49
50
|
# @api public
|
50
51
|
#
|
51
52
|
def string(t)
|
52
|
-
@bld = ''
|
53
|
+
@bld = ''.dup
|
53
54
|
append_string(t)
|
54
55
|
@bld
|
55
56
|
end
|
@@ -63,7 +64,7 @@ class TypeFormatter
|
|
63
64
|
#
|
64
65
|
# @api public
|
65
66
|
def indented_string(t, indent = 0, indent_width = 2)
|
66
|
-
@bld = ''
|
67
|
+
@bld = ''.dup
|
67
68
|
append_indented_string(t, indent, indent_width)
|
68
69
|
@bld
|
69
70
|
end
|
@@ -634,7 +635,7 @@ class TypeFormatter
|
|
634
635
|
'[a TypeFormatter]'
|
635
636
|
end
|
636
637
|
|
637
|
-
NAME_SEGMENT_SEPARATOR = '::'
|
638
|
+
NAME_SEGMENT_SEPARATOR = '::'
|
638
639
|
STARTS_WITH_ASCII_CAPITAL = /^[A-Z]/
|
639
640
|
|
640
641
|
# Capitalizes each segment in a name separated with the {NAME_SEPARATOR} conditionally. The name
|
@@ -661,9 +662,9 @@ class TypeFormatter
|
|
661
662
|
|
662
663
|
private
|
663
664
|
|
664
|
-
COMMA_SEP = ', '
|
665
|
+
COMMA_SEP = ', '
|
665
666
|
|
666
|
-
HASH_ENTRY_OP = ' => '
|
667
|
+
HASH_ENTRY_OP = ' => '
|
667
668
|
|
668
669
|
def is_short_array?(t)
|
669
670
|
t.empty? || 100 - @indent * @indent_width > t.inject(0) do |sum, elem|
|
@@ -640,7 +640,7 @@ module Types
|
|
640
640
|
result = ["#{label} expects (#{signature_string(sig)})"]
|
641
641
|
result.concat(error_arrays[0].map { |e| " rejected:#{e.chop_path(0).format}" })
|
642
642
|
else
|
643
|
-
result = ["#{label} expects one of:"]
|
643
|
+
result = ["The function #{label} was called with arguments it does not accept. It expects one of:"]
|
644
644
|
signatures.each_with_index do |sg, index|
|
645
645
|
result << " (#{signature_string(sg)})"
|
646
646
|
result.concat(error_arrays[index].map { |e| " rejected:#{e.chop_path(0).format}" })
|
@@ -735,7 +735,7 @@ class PScalarDataType < PScalarType
|
|
735
735
|
end
|
736
736
|
|
737
737
|
def instance?(o, guard = nil)
|
738
|
-
return o.
|
738
|
+
return o.instance_of?(String) || o.is_a?(Integer) || o.is_a?(Float) || o.is_a?(TrueClass) || o.is_a?(FalseClass)
|
739
739
|
end
|
740
740
|
|
741
741
|
DEFAULT = PScalarDataType.new
|
@@ -6,10 +6,22 @@ Puppet::Type.type(:exec).provide :posix, :parent => Puppet::Provider::Exec do
|
|
6
6
|
defaultfor :feature => :posix
|
7
7
|
|
8
8
|
desc <<-EOT
|
9
|
-
Executes external binaries
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
Executes external binaries by invoking Ruby's `Kernel.exec`.
|
10
|
+
When the command is a string, it will be executed directly,
|
11
|
+
without a shell, if it follows these rules:
|
12
|
+
- no meta characters
|
13
|
+
- no shell reserved word and no special built-in
|
14
|
+
|
15
|
+
When the command is an Array of Strings, passed as `[cmdname, arg1, ...]`
|
16
|
+
it will be executed directly(the first element is taken as a command name
|
17
|
+
and the rest are passed as parameters to command with no shell expansion)
|
18
|
+
This is a safer and more predictable way to execute most commands,
|
19
|
+
but prevents the use of globbing and shell built-ins (including control
|
20
|
+
logic like "for" and "if" statements).
|
21
|
+
|
22
|
+
If the use of globbing and shell built-ins is desired, please check
|
23
|
+
the `shell` provider
|
24
|
+
|
13
25
|
EOT
|
14
26
|
|
15
27
|
# Verify that we have the executable
|
@@ -2,11 +2,14 @@ require_relative '../../../puppet/provider/nameservice/objectadd'
|
|
2
2
|
require_relative '../../../puppet/util/libuser'
|
3
3
|
|
4
4
|
Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameService::ObjectAdd do
|
5
|
-
desc "Group management via `groupadd` and its ilk. The default for most platforms.
|
5
|
+
desc "Group management via `groupadd` and its ilk. The default for most platforms.
|
6
|
+
|
7
|
+
To use the `forcelocal` parameter, you need to install the `libuser` package (providing
|
8
|
+
`/usr/sbin/lgroupadd` and `/usr/sbin/luseradd`)."
|
6
9
|
|
7
10
|
commands :add => "groupadd", :delete => "groupdel", :modify => "groupmod"
|
8
11
|
|
9
|
-
has_feature :system_groups unless %w{HP-UX Solaris}.include?
|
12
|
+
has_feature :system_groups unless %w{HP-UX Solaris}.include? Puppet.runtime[:facter].value(:operatingsystem)
|
10
13
|
|
11
14
|
verify :gid, _("GID must be an integer") do |value|
|
12
15
|
value.is_a? Integer
|
@@ -91,20 +91,20 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def best_version(should_range)
|
94
|
-
|
94
|
+
versions = []
|
95
95
|
|
96
96
|
output = aptcache :madison, @resource[:name]
|
97
97
|
output.each_line do |line|
|
98
98
|
is = line.split('|')[1].strip
|
99
99
|
begin
|
100
100
|
is_version = DebianVersion.parse(is)
|
101
|
-
|
101
|
+
versions << is_version if should_range.include?(is_version)
|
102
102
|
rescue DebianVersion::ValidationFailure
|
103
103
|
Puppet.debug("Cannot parse #{is} as a debian version")
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
-
return
|
107
|
+
return versions.sort.last if versions.any?
|
108
108
|
|
109
109
|
Puppet.debug("No available version for package #{@resource[:name]} is included in range #{should_range}")
|
110
110
|
should_range
|
@@ -154,20 +154,25 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
154
154
|
# I spent a lot of time trying to figure out a solution that didn't
|
155
155
|
# require parsing the `nimclient -o showres` output and was unable to
|
156
156
|
# do so.
|
157
|
-
self::HEADER_LINE_REGEX = /^([^\s]+)\s+[^@]+@@(I|R):(\1)\s+[^\s]+$/
|
158
|
-
self::PACKAGE_LINE_REGEX = /^.*@@(I|R):(.*)$/
|
159
|
-
self::RPM_PACKAGE_REGEX = /^(.*)-(.*-\d
|
157
|
+
self::HEADER_LINE_REGEX = /^([^\s]+)\s+[^@]+@@(I|R|S):(\1)\s+[^\s]+$/
|
158
|
+
self::PACKAGE_LINE_REGEX = /^.*@@(I|R|S):(.*)$/
|
159
|
+
self::RPM_PACKAGE_REGEX = /^(.*)-(.*-\d+\w*) \2$/
|
160
160
|
self::INSTALLP_PACKAGE_REGEX = /^(.*) (.*)$/
|
161
161
|
|
162
162
|
# Here is some sample output that shows what the above regexes will be up
|
163
163
|
# against:
|
164
|
-
# FOR AN INSTALLP PACKAGE:
|
164
|
+
# FOR AN INSTALLP(bff) PACKAGE:
|
165
165
|
#
|
166
166
|
# mypackage.foo ALL @@I:mypackage.foo _all_filesets
|
167
|
-
# @ 1.2.3.1 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.1
|
168
167
|
# + 1.2.3.4 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.4
|
169
168
|
# + 1.2.3.8 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.8
|
170
169
|
#
|
170
|
+
# FOR AN INSTALLP(bff) PACKAGE with security update:
|
171
|
+
#
|
172
|
+
# bos.net ALL @@S:bos.net _all_filesets
|
173
|
+
# + 7.2.0.1 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.1
|
174
|
+
# + 7.2.0.2 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.2
|
175
|
+
#
|
171
176
|
# FOR AN RPM PACKAGE:
|
172
177
|
#
|
173
178
|
# mypackage.foo ALL @@R:mypackage.foo _all_filesets
|
@@ -243,7 +248,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
243
248
|
package_string = match.captures[1]
|
244
249
|
|
245
250
|
case package_type_flag
|
246
|
-
when "I"
|
251
|
+
when "I","S"
|
247
252
|
parse_installp_package_string(package_string)
|
248
253
|
when "R"
|
249
254
|
parse_rpm_package_string(package_string)
|