puppet 6.19.1-x64-mingw32 → 6.23.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +3 -1
- data/Gemfile.lock +51 -40
- data/ext/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +2 -2
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +12 -4
- data/lib/puppet/application/apply.rb +4 -2
- data/lib/puppet/application/device.rb +2 -0
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/resource.rb +2 -1
- data/lib/puppet/application/script.rb +2 -0
- data/lib/puppet/application/ssl.rb +11 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +28 -18
- data/lib/puppet/configurer/downloader.rb +2 -1
- data/lib/puppet/defaults.rb +51 -23
- data/lib/puppet/environments.rb +54 -55
- data/lib/puppet/face/config.rb +10 -0
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +158 -0
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_serving/fileset.rb +14 -2
- data/lib/puppet/file_system/memory_file.rb +8 -1
- data/lib/puppet/file_system/windows.rb +2 -0
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +13 -5
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +12 -4
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/tree_each.rb +7 -9
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/http/resolver/server_list.rb +15 -4
- data/lib/puppet/http/service/compiler.rb +69 -0
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -0
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +3 -58
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/formats.rb +69 -1
- data/lib/puppet/network/http/factory.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +70 -17
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
- data/lib/puppet/pops/model/ast_transformer.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/property/list.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +34 -2
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +11 -6
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/service/systemd.rb +14 -4
- data/lib/puppet/provider/service/windows.rb +38 -0
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +25 -12
- data/lib/puppet/provider/user/useradd.rb +62 -8
- data/lib/puppet/reference/configuration.rb +7 -6
- data/lib/puppet/settings.rb +33 -28
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/type/file.rb +19 -1
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/service.rb +18 -38
- data/lib/puppet/type/tidy.rb +21 -2
- data/lib/puppet/type/user.rb +38 -20
- data/lib/puppet/util/autoload.rb +1 -8
- data/lib/puppet/util/fact_dif.rb +81 -0
- data/lib/puppet/util/monkey_patches.rb +7 -0
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/selinux.rb +30 -4
- data/lib/puppet/util/windows/adsi.rb +46 -0
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +9 -2
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/sid.rb +4 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +372 -288
- data/man/man5/puppet.conf.5 +282 -254
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +90 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +4 -1
- 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 +2 -2
- data/man/man8/puppet-ssl.8 +5 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
- data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/ca.pem +57 -35
- data/spec/fixtures/ssl/crl.pem +28 -18
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +33 -24
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +108 -58
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
- data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
- data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
- data/spec/fixtures/ssl/intermediate.pem +57 -36
- data/spec/fixtures/ssl/pluto-key.pem +107 -57
- data/spec/fixtures/ssl/pluto.pem +52 -30
- data/spec/fixtures/ssl/request-key.pem +107 -57
- data/spec/fixtures/ssl/request.pem +47 -26
- data/spec/fixtures/ssl/revoked-key.pem +107 -57
- data/spec/fixtures/ssl/revoked.pem +52 -30
- data/spec/fixtures/ssl/signed-key.pem +107 -57
- data/spec/fixtures/ssl/signed.pem +52 -30
- data/spec/fixtures/ssl/tampered-cert.pem +52 -30
- data/spec/fixtures/ssl/tampered-csr.pem +47 -26
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
- data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-ca.pem +55 -33
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +160 -3
- data/spec/integration/application/apply_spec.rb +19 -0
- data/spec/integration/application/plugin_spec.rb +1 -1
- data/spec/integration/application/resource_spec.rb +30 -0
- data/spec/integration/defaults_spec.rb +0 -7
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/http/client_spec.rb +12 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/util/windows/adsi_spec.rb +21 -1
- data/spec/integration/util/windows/principal_spec.rb +21 -0
- data/spec/integration/util/windows/registry_spec.rb +6 -10
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/spec_helper.rb +12 -5
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +7 -3
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/facts_spec.rb +482 -3
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/ssl_spec.rb +23 -0
- data/spec/unit/application_spec.rb +51 -9
- data/spec/unit/configurer/downloader_spec.rb +6 -0
- data/spec/unit/configurer_spec.rb +23 -0
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +8 -2
- data/spec/unit/defaults_spec.rb +36 -1
- data/spec/unit/environments_spec.rb +221 -68
- data/spec/unit/face/config_spec.rb +27 -32
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +0 -11
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +60 -0
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_system_spec.rb +9 -0
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/gettext/config_spec.rb +12 -0
- data/spec/unit/http/service/compiler_spec.rb +172 -0
- data/spec/unit/http/service_spec.rb +1 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +95 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/formats_spec.rb +41 -0
- data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
- data/spec/unit/network/http/factory_spec.rb +19 -0
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -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/property_spec.rb +1 -0
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +28 -23
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/service/init_spec.rb +1 -0
- data/spec/unit/provider/service/openwrt_spec.rb +3 -1
- data/spec/unit/provider/service/systemd_spec.rb +53 -8
- data/spec/unit/provider/service/windows_spec.rb +202 -0
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +71 -3
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -10
- data/spec/unit/settings_spec.rb +419 -242
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
- data/spec/unit/ssl/state_machine_spec.rb +19 -5
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -9
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction_spec.rb +18 -11
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +3 -5
- data/spec/unit/type/file_spec.rb +0 -6
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +60 -189
- data/spec/unit/type/tidy_spec.rb +17 -8
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +163 -68
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util/windows/sid_spec.rb +6 -0
- data/spec/unit/util_spec.rb +13 -6
- data/tasks/generate_cert_fixtures.rake +2 -2
- metadata +33 -16
- data/spec/integration/application/config_spec.rb +0 -74
- data/spec/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/module_spec.rb +0 -3
@@ -158,6 +158,12 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
|
|
158
158
|
# this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
|
159
159
|
expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
|
160
160
|
end
|
161
|
+
|
162
|
+
it "should print a debug message on failures" do
|
163
|
+
expect(Puppet).to receive(:debug).with(/Could not retrieve raw SID bytes from 'NonExistingUser'/)
|
164
|
+
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
165
|
+
subject.name_to_principal('NonExistingUser')
|
166
|
+
end
|
161
167
|
end
|
162
168
|
|
163
169
|
context "#ads_to_principal" do
|
data/spec/unit/util_spec.rb
CHANGED
@@ -315,7 +315,7 @@ describe Puppet::Util do
|
|
315
315
|
|
316
316
|
describe "when using platform :posix" do
|
317
317
|
before :each do
|
318
|
-
allow(Puppet.features).to receive(:posix).and_return(true)
|
318
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
319
319
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
320
320
|
end
|
321
321
|
|
@@ -328,7 +328,7 @@ describe Puppet::Util do
|
|
328
328
|
|
329
329
|
describe "when using platform :windows" do
|
330
330
|
before :each do
|
331
|
-
allow(Puppet.features).to receive(:posix).and_return(false)
|
331
|
+
allow(Puppet.features).to receive(:posix?).and_return(false)
|
332
332
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
333
333
|
end
|
334
334
|
|
@@ -462,7 +462,7 @@ describe Puppet::Util do
|
|
462
462
|
|
463
463
|
describe "when using platform :posix" do
|
464
464
|
before :each do
|
465
|
-
allow(Puppet.features).to receive(:posix).and_return(true)
|
465
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
466
466
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
467
467
|
end
|
468
468
|
|
@@ -501,7 +501,7 @@ describe Puppet::Util do
|
|
501
501
|
|
502
502
|
describe "when using platform :windows" do
|
503
503
|
before :each do
|
504
|
-
allow(Puppet.features).to receive(:posix).and_return(false)
|
504
|
+
allow(Puppet.features).to receive(:posix?).and_return(false)
|
505
505
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
506
506
|
end
|
507
507
|
|
@@ -539,7 +539,6 @@ describe Puppet::Util do
|
|
539
539
|
expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
|
540
540
|
end
|
541
541
|
|
542
|
-
|
543
542
|
[
|
544
543
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
|
545
544
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
|
@@ -589,7 +588,15 @@ describe Puppet::Util do
|
|
589
588
|
end
|
590
589
|
end
|
591
590
|
|
592
|
-
describe "safe_posix_fork" do
|
591
|
+
describe "safe_posix_fork on Windows and JRuby", if: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
592
|
+
it "raises not implemented error" do
|
593
|
+
expect {
|
594
|
+
Puppet::Util.safe_posix_fork
|
595
|
+
}.to raise_error(NotImplementedError, /fork/)
|
596
|
+
end
|
597
|
+
end
|
598
|
+
|
599
|
+
describe "safe_posix_fork", unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
593
600
|
let(:pid) { 5501 }
|
594
601
|
|
595
602
|
before :each do
|
@@ -173,12 +173,12 @@ task(:gen_cert_fixtures) do
|
|
173
173
|
|
174
174
|
# Create a request, but replace its public key after it's signed
|
175
175
|
tampered_csr = ca.create_request('signed')[:csr]
|
176
|
-
tampered_csr.public_key = OpenSSL::PKey::RSA.new(
|
176
|
+
tampered_csr.public_key = OpenSSL::PKey::RSA.new(2048).public_key
|
177
177
|
save(dir, 'tampered-csr.pem', tampered_csr)
|
178
178
|
|
179
179
|
# Create a cert issued from the real intermediate CA, but replace its
|
180
180
|
# public key
|
181
181
|
tampered_cert = ca.create_cert('signed', inter[:cert], inter[:private_key])[:cert]
|
182
|
-
tampered_cert.public_key = OpenSSL::PKey::RSA.new(
|
182
|
+
tampered_cert.public_key = OpenSSL::PKey::RSA.new(2048).public_key
|
183
183
|
save(dir, 'tampered-cert.pem', tampered_cert)
|
184
184
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.23.0
|
5
5
|
platform: x64-mingw32
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -186,16 +186,22 @@ dependencies:
|
|
186
186
|
name: win32-dir
|
187
187
|
requirement: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
|
-
- -
|
189
|
+
- - ">="
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: 0.4.9
|
192
|
+
- - "<="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.7.2
|
192
195
|
type: :runtime
|
193
196
|
prerelease: false
|
194
197
|
version_requirements: !ruby/object:Gem::Requirement
|
195
198
|
requirements:
|
196
|
-
- -
|
199
|
+
- - ">="
|
197
200
|
- !ruby/object:Gem::Version
|
198
201
|
version: 0.4.9
|
202
|
+
- - "<="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: 0.7.2
|
199
205
|
- !ruby/object:Gem::Dependency
|
200
206
|
name: win32-process
|
201
207
|
requirement: !ruby/object:Gem::Requirement
|
@@ -512,6 +518,9 @@ files:
|
|
512
518
|
- lib/puppet/feature/ssh.rb
|
513
519
|
- lib/puppet/feature/telnet.rb
|
514
520
|
- lib/puppet/feature/zlib.rb
|
521
|
+
- lib/puppet/ffi/posix.rb
|
522
|
+
- lib/puppet/ffi/posix/constants.rb
|
523
|
+
- lib/puppet/ffi/posix/functions.rb
|
515
524
|
- lib/puppet/file_bucket.rb
|
516
525
|
- lib/puppet/file_bucket/dipper.rb
|
517
526
|
- lib/puppet/file_bucket/file.rb
|
@@ -686,7 +695,9 @@ files:
|
|
686
695
|
- lib/puppet/indirector/errors.rb
|
687
696
|
- lib/puppet/indirector/exec.rb
|
688
697
|
- lib/puppet/indirector/face.rb
|
698
|
+
- lib/puppet/indirector/fact_search.rb
|
689
699
|
- lib/puppet/indirector/facts/facter.rb
|
700
|
+
- lib/puppet/indirector/facts/json.rb
|
690
701
|
- lib/puppet/indirector/facts/memory.rb
|
691
702
|
- lib/puppet/indirector/facts/network_device.rb
|
692
703
|
- lib/puppet/indirector/facts/rest.rb
|
@@ -717,6 +728,7 @@ files:
|
|
717
728
|
- lib/puppet/indirector/memory.rb
|
718
729
|
- lib/puppet/indirector/msgpack.rb
|
719
730
|
- lib/puppet/indirector/node/exec.rb
|
731
|
+
- lib/puppet/indirector/node/json.rb
|
720
732
|
- lib/puppet/indirector/node/memory.rb
|
721
733
|
- lib/puppet/indirector/node/msgpack.rb
|
722
734
|
- lib/puppet/indirector/node/plain.rb
|
@@ -725,6 +737,7 @@ files:
|
|
725
737
|
- lib/puppet/indirector/node/yaml.rb
|
726
738
|
- lib/puppet/indirector/none.rb
|
727
739
|
- lib/puppet/indirector/plain.rb
|
740
|
+
- lib/puppet/indirector/report/json.rb
|
728
741
|
- lib/puppet/indirector/report/msgpack.rb
|
729
742
|
- lib/puppet/indirector/report/processor.rb
|
730
743
|
- lib/puppet/indirector/report/rest.rb
|
@@ -1229,6 +1242,7 @@ files:
|
|
1229
1242
|
- lib/puppet/scheduler/splay_job.rb
|
1230
1243
|
- lib/puppet/scheduler/timer.rb
|
1231
1244
|
- lib/puppet/settings.rb
|
1245
|
+
- lib/puppet/settings/alias_setting.rb
|
1232
1246
|
- lib/puppet/settings/array_setting.rb
|
1233
1247
|
- lib/puppet/settings/autosign_setting.rb
|
1234
1248
|
- lib/puppet/settings/base_setting.rb
|
@@ -1337,6 +1351,7 @@ files:
|
|
1337
1351
|
- lib/puppet/util/errors.rb
|
1338
1352
|
- lib/puppet/util/execution.rb
|
1339
1353
|
- lib/puppet/util/execution_stub.rb
|
1354
|
+
- lib/puppet/util/fact_dif.rb
|
1340
1355
|
- lib/puppet/util/feature.rb
|
1341
1356
|
- lib/puppet/util/file_watcher.rb
|
1342
1357
|
- lib/puppet/util/fileparsing.rb
|
@@ -1491,6 +1506,7 @@ files:
|
|
1491
1506
|
- man/man8/puppet.8
|
1492
1507
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
1493
1508
|
- spec/fixtures/hiera.yaml
|
1509
|
+
- spec/fixtures/integration/application/agent/cached_deferred_catalog.json
|
1494
1510
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
|
1495
1511
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
|
1496
1512
|
- spec/fixtures/integration/node/environment/sitedir/00_a.pp
|
@@ -1867,6 +1883,7 @@ files:
|
|
1867
1883
|
- spec/fixtures/unit/provider/service/smf/svcs_fmri.out
|
1868
1884
|
- spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
|
1869
1885
|
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services
|
1886
|
+
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
|
1870
1887
|
- spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
|
1871
1888
|
- spec/fixtures/unit/reports/tagmail/tagmail_email.conf
|
1872
1889
|
- spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
|
@@ -1890,13 +1907,13 @@ files:
|
|
1890
1907
|
- spec/integration/agent/logging_spec.rb
|
1891
1908
|
- spec/integration/application/agent_spec.rb
|
1892
1909
|
- spec/integration/application/apply_spec.rb
|
1893
|
-
- spec/integration/application/config_spec.rb
|
1894
1910
|
- spec/integration/application/doc_spec.rb
|
1895
1911
|
- spec/integration/application/filebucket_spec.rb
|
1896
1912
|
- spec/integration/application/help_spec.rb
|
1897
1913
|
- spec/integration/application/lookup_spec.rb
|
1898
1914
|
- spec/integration/application/module_spec.rb
|
1899
1915
|
- spec/integration/application/plugin_spec.rb
|
1916
|
+
- spec/integration/application/resource_spec.rb
|
1900
1917
|
- spec/integration/configurer_spec.rb
|
1901
1918
|
- spec/integration/data_binding_spec.rb
|
1902
1919
|
- spec/integration/defaults_spec.rb
|
@@ -1911,7 +1928,6 @@ files:
|
|
1911
1928
|
- spec/integration/indirector/facts/facter_spec.rb
|
1912
1929
|
- spec/integration/indirector/file_content/file_server_spec.rb
|
1913
1930
|
- spec/integration/indirector/file_metadata/file_server_spec.rb
|
1914
|
-
- spec/integration/indirector/report/yaml.rb
|
1915
1931
|
- spec/integration/network/authconfig_spec.rb
|
1916
1932
|
- spec/integration/network/formats_spec.rb
|
1917
1933
|
- spec/integration/network/http/api/indirected_routes_spec.rb
|
@@ -1957,10 +1973,8 @@ files:
|
|
1957
1973
|
- spec/integration/util/windows/user_spec.rb
|
1958
1974
|
- spec/integration/util_spec.rb
|
1959
1975
|
- spec/lib/matchers/containment_matchers.rb
|
1960
|
-
- spec/lib/matchers/include.rb
|
1961
1976
|
- spec/lib/matchers/include_in_order.rb
|
1962
1977
|
- spec/lib/matchers/include_in_order_spec.rb
|
1963
|
-
- spec/lib/matchers/include_spec.rb
|
1964
1978
|
- spec/lib/matchers/json.rb
|
1965
1979
|
- spec/lib/matchers/match_tokens2.rb
|
1966
1980
|
- spec/lib/matchers/relationship_graph_matchers.rb
|
@@ -2057,7 +2071,6 @@ files:
|
|
2057
2071
|
- spec/unit/environments_spec.rb
|
2058
2072
|
- spec/unit/etc_spec.rb
|
2059
2073
|
- spec/unit/external/pson_spec.rb
|
2060
|
-
- spec/unit/face/catalog_spec.rb
|
2061
2074
|
- spec/unit/face/config_spec.rb
|
2062
2075
|
- spec/unit/face/epp_face_spec.rb
|
2063
2076
|
- spec/unit/face/facts_spec.rb
|
@@ -2069,7 +2082,6 @@ files:
|
|
2069
2082
|
- spec/unit/face/module/search_spec.rb
|
2070
2083
|
- spec/unit/face/module/uninstall_spec.rb
|
2071
2084
|
- spec/unit/face/module/upgrade_spec.rb
|
2072
|
-
- spec/unit/face/module_spec.rb
|
2073
2085
|
- spec/unit/face/node_spec.rb
|
2074
2086
|
- spec/unit/face/parser_spec.rb
|
2075
2087
|
- spec/unit/face/plugin_spec.rb
|
@@ -2214,6 +2226,7 @@ files:
|
|
2214
2226
|
- spec/unit/indirector/exec_spec.rb
|
2215
2227
|
- spec/unit/indirector/face_spec.rb
|
2216
2228
|
- spec/unit/indirector/facts/facter_spec.rb
|
2229
|
+
- spec/unit/indirector/facts/json_spec.rb
|
2217
2230
|
- spec/unit/indirector/facts/network_device_spec.rb
|
2218
2231
|
- spec/unit/indirector/facts/rest_spec.rb
|
2219
2232
|
- spec/unit/indirector/facts/store_configs_spec.rb
|
@@ -2238,6 +2251,7 @@ files:
|
|
2238
2251
|
- spec/unit/indirector/memory_spec.rb
|
2239
2252
|
- spec/unit/indirector/msgpack_spec.rb
|
2240
2253
|
- spec/unit/indirector/node/exec_spec.rb
|
2254
|
+
- spec/unit/indirector/node/json_spec.rb
|
2241
2255
|
- spec/unit/indirector/node/memory_spec.rb
|
2242
2256
|
- spec/unit/indirector/node/msgpack_spec.rb
|
2243
2257
|
- spec/unit/indirector/node/plain_spec.rb
|
@@ -2246,6 +2260,7 @@ files:
|
|
2246
2260
|
- spec/unit/indirector/node/yaml_spec.rb
|
2247
2261
|
- spec/unit/indirector/none_spec.rb
|
2248
2262
|
- spec/unit/indirector/plain_spec.rb
|
2263
|
+
- spec/unit/indirector/report/json_spec.rb
|
2249
2264
|
- spec/unit/indirector/report/msgpack_spec.rb
|
2250
2265
|
- spec/unit/indirector/report/processor_spec.rb
|
2251
2266
|
- spec/unit/indirector/report/rest_spec.rb
|
@@ -2370,6 +2385,7 @@ files:
|
|
2370
2385
|
- spec/unit/pops/evaluator/collections_ops_spec.rb
|
2371
2386
|
- spec/unit/pops/evaluator/comparison_ops_spec.rb
|
2372
2387
|
- spec/unit/pops/evaluator/conditionals_spec.rb
|
2388
|
+
- spec/unit/pops/evaluator/deferred_resolver_spec.rb
|
2373
2389
|
- spec/unit/pops/evaluator/evaluating_parser_spec.rb
|
2374
2390
|
- spec/unit/pops/evaluator/evaluator_rspec_helper.rb
|
2375
2391
|
- spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
|
@@ -2760,6 +2776,7 @@ summary: Puppet, an automated configuration management tool
|
|
2760
2776
|
test_files:
|
2761
2777
|
- spec/fixtures/faulty_face/puppet/face/syntax.rb
|
2762
2778
|
- spec/fixtures/hiera.yaml
|
2779
|
+
- spec/fixtures/integration/application/agent/cached_deferred_catalog.json
|
2763
2780
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
|
2764
2781
|
- spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
|
2765
2782
|
- spec/fixtures/integration/node/environment/sitedir/00_a.pp
|
@@ -3136,6 +3153,7 @@ test_files:
|
|
3136
3153
|
- spec/fixtures/unit/provider/service/smf/svcs_fmri.out
|
3137
3154
|
- spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
|
3138
3155
|
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services
|
3156
|
+
- spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
|
3139
3157
|
- spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
|
3140
3158
|
- spec/fixtures/unit/reports/tagmail/tagmail_email.conf
|
3141
3159
|
- spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
|
@@ -3159,13 +3177,13 @@ test_files:
|
|
3159
3177
|
- spec/integration/agent/logging_spec.rb
|
3160
3178
|
- spec/integration/application/agent_spec.rb
|
3161
3179
|
- spec/integration/application/apply_spec.rb
|
3162
|
-
- spec/integration/application/config_spec.rb
|
3163
3180
|
- spec/integration/application/doc_spec.rb
|
3164
3181
|
- spec/integration/application/filebucket_spec.rb
|
3165
3182
|
- spec/integration/application/help_spec.rb
|
3166
3183
|
- spec/integration/application/lookup_spec.rb
|
3167
3184
|
- spec/integration/application/module_spec.rb
|
3168
3185
|
- spec/integration/application/plugin_spec.rb
|
3186
|
+
- spec/integration/application/resource_spec.rb
|
3169
3187
|
- spec/integration/configurer_spec.rb
|
3170
3188
|
- spec/integration/data_binding_spec.rb
|
3171
3189
|
- spec/integration/defaults_spec.rb
|
@@ -3180,7 +3198,6 @@ test_files:
|
|
3180
3198
|
- spec/integration/indirector/facts/facter_spec.rb
|
3181
3199
|
- spec/integration/indirector/file_content/file_server_spec.rb
|
3182
3200
|
- spec/integration/indirector/file_metadata/file_server_spec.rb
|
3183
|
-
- spec/integration/indirector/report/yaml.rb
|
3184
3201
|
- spec/integration/network/authconfig_spec.rb
|
3185
3202
|
- spec/integration/network/formats_spec.rb
|
3186
3203
|
- spec/integration/network/http/api/indirected_routes_spec.rb
|
@@ -3226,10 +3243,8 @@ test_files:
|
|
3226
3243
|
- spec/integration/util/windows/user_spec.rb
|
3227
3244
|
- spec/integration/util_spec.rb
|
3228
3245
|
- spec/lib/matchers/containment_matchers.rb
|
3229
|
-
- spec/lib/matchers/include.rb
|
3230
3246
|
- spec/lib/matchers/include_in_order.rb
|
3231
3247
|
- spec/lib/matchers/include_in_order_spec.rb
|
3232
|
-
- spec/lib/matchers/include_spec.rb
|
3233
3248
|
- spec/lib/matchers/json.rb
|
3234
3249
|
- spec/lib/matchers/match_tokens2.rb
|
3235
3250
|
- spec/lib/matchers/relationship_graph_matchers.rb
|
@@ -3326,7 +3341,6 @@ test_files:
|
|
3326
3341
|
- spec/unit/environments_spec.rb
|
3327
3342
|
- spec/unit/etc_spec.rb
|
3328
3343
|
- spec/unit/external/pson_spec.rb
|
3329
|
-
- spec/unit/face/catalog_spec.rb
|
3330
3344
|
- spec/unit/face/config_spec.rb
|
3331
3345
|
- spec/unit/face/epp_face_spec.rb
|
3332
3346
|
- spec/unit/face/facts_spec.rb
|
@@ -3338,7 +3352,6 @@ test_files:
|
|
3338
3352
|
- spec/unit/face/module/search_spec.rb
|
3339
3353
|
- spec/unit/face/module/uninstall_spec.rb
|
3340
3354
|
- spec/unit/face/module/upgrade_spec.rb
|
3341
|
-
- spec/unit/face/module_spec.rb
|
3342
3355
|
- spec/unit/face/node_spec.rb
|
3343
3356
|
- spec/unit/face/parser_spec.rb
|
3344
3357
|
- spec/unit/face/plugin_spec.rb
|
@@ -3483,6 +3496,7 @@ test_files:
|
|
3483
3496
|
- spec/unit/indirector/exec_spec.rb
|
3484
3497
|
- spec/unit/indirector/face_spec.rb
|
3485
3498
|
- spec/unit/indirector/facts/facter_spec.rb
|
3499
|
+
- spec/unit/indirector/facts/json_spec.rb
|
3486
3500
|
- spec/unit/indirector/facts/network_device_spec.rb
|
3487
3501
|
- spec/unit/indirector/facts/rest_spec.rb
|
3488
3502
|
- spec/unit/indirector/facts/store_configs_spec.rb
|
@@ -3507,6 +3521,7 @@ test_files:
|
|
3507
3521
|
- spec/unit/indirector/memory_spec.rb
|
3508
3522
|
- spec/unit/indirector/msgpack_spec.rb
|
3509
3523
|
- spec/unit/indirector/node/exec_spec.rb
|
3524
|
+
- spec/unit/indirector/node/json_spec.rb
|
3510
3525
|
- spec/unit/indirector/node/memory_spec.rb
|
3511
3526
|
- spec/unit/indirector/node/msgpack_spec.rb
|
3512
3527
|
- spec/unit/indirector/node/plain_spec.rb
|
@@ -3515,6 +3530,7 @@ test_files:
|
|
3515
3530
|
- spec/unit/indirector/node/yaml_spec.rb
|
3516
3531
|
- spec/unit/indirector/none_spec.rb
|
3517
3532
|
- spec/unit/indirector/plain_spec.rb
|
3533
|
+
- spec/unit/indirector/report/json_spec.rb
|
3518
3534
|
- spec/unit/indirector/report/msgpack_spec.rb
|
3519
3535
|
- spec/unit/indirector/report/processor_spec.rb
|
3520
3536
|
- spec/unit/indirector/report/rest_spec.rb
|
@@ -3639,6 +3655,7 @@ test_files:
|
|
3639
3655
|
- spec/unit/pops/evaluator/collections_ops_spec.rb
|
3640
3656
|
- spec/unit/pops/evaluator/comparison_ops_spec.rb
|
3641
3657
|
- spec/unit/pops/evaluator/conditionals_spec.rb
|
3658
|
+
- spec/unit/pops/evaluator/deferred_resolver_spec.rb
|
3642
3659
|
- spec/unit/pops/evaluator/evaluating_parser_spec.rb
|
3643
3660
|
- spec/unit/pops/evaluator/evaluator_rspec_helper.rb
|
3644
3661
|
- spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
|
@@ -1,74 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'puppet/application/config'
|
4
|
-
|
5
|
-
#describe "puppet config" do
|
6
|
-
describe Puppet::Face[:config, '0.0.1'] do
|
7
|
-
include PuppetSpec::Files
|
8
|
-
|
9
|
-
# different UTF-8 widths
|
10
|
-
# 1-byte A
|
11
|
-
# 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
|
12
|
-
# 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
|
13
|
-
# 4-byte 𠜎 - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
|
14
|
-
MIXED_UTF8 = "A\u06FF\u16A0\u{2070E}" # Aۿᚠ𠜎
|
15
|
-
|
16
|
-
let(:tmp_config) { tmpfile('puppet.conf') }
|
17
|
-
let(:config) { Puppet::Application[:config] }
|
18
|
-
|
19
|
-
def read_utf8(path)
|
20
|
-
File.read(tmp_config, :encoding => 'UTF-8')
|
21
|
-
end
|
22
|
-
|
23
|
-
def write_utf8(path, content)
|
24
|
-
File.write(tmp_config, content, 0, :encoding => 'UTF-8')
|
25
|
-
end
|
26
|
-
|
27
|
-
it "reads a UTF-8 value" do
|
28
|
-
write_utf8(tmp_config, <<~EOF)
|
29
|
-
[main]
|
30
|
-
tags=#{MIXED_UTF8}
|
31
|
-
EOF
|
32
|
-
|
33
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
34
|
-
config.command_line.args = ['print', 'tags' ]
|
35
|
-
|
36
|
-
expect {
|
37
|
-
config.run
|
38
|
-
}.to exit_with(0)
|
39
|
-
.and output("#{MIXED_UTF8}\n").to_stdout
|
40
|
-
end
|
41
|
-
|
42
|
-
it "sets a UTF-8 value" do
|
43
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
44
|
-
config.command_line.args = ['set', 'tags', MIXED_UTF8 ]
|
45
|
-
|
46
|
-
expect {
|
47
|
-
config.run
|
48
|
-
}.to exit_with(0)
|
49
|
-
|
50
|
-
expect(read_utf8(tmp_config)).to eq(<<~EOF)
|
51
|
-
[main]
|
52
|
-
tags = #{MIXED_UTF8}
|
53
|
-
EOF
|
54
|
-
end
|
55
|
-
|
56
|
-
it "deletes a key" do
|
57
|
-
write_utf8(tmp_config, <<~EOF)
|
58
|
-
[main]
|
59
|
-
tags=#{MIXED_UTF8}
|
60
|
-
EOF
|
61
|
-
|
62
|
-
Puppet.initialize_settings(['--config', tmp_config])
|
63
|
-
config.command_line.args = ['delete', 'tags']
|
64
|
-
|
65
|
-
expect {
|
66
|
-
config.run
|
67
|
-
}.to exit_with(0)
|
68
|
-
.and output(/Deleted setting from 'main': 'tags=#{MIXED_UTF8}'/).to_stdout
|
69
|
-
|
70
|
-
expect(read_utf8(tmp_config)).to eq(<<~EOF)
|
71
|
-
[main]
|
72
|
-
EOF
|
73
|
-
end
|
74
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Matchers; module Include
|
2
|
-
extend RSpec::Matchers::DSL
|
3
|
-
|
4
|
-
matcher :include_in_any_order do |*matchers|
|
5
|
-
match do |enumerable|
|
6
|
-
@not_matched = []
|
7
|
-
expected_as_array.each do |matcher|
|
8
|
-
if enumerable.empty?
|
9
|
-
break
|
10
|
-
end
|
11
|
-
|
12
|
-
if found = enumerable.find { |elem| matcher.matches?(elem) }
|
13
|
-
enumerable = enumerable.reject { |elem| elem == found }
|
14
|
-
else
|
15
|
-
@not_matched << matcher
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
@not_matched.empty? && enumerable.empty?
|
21
|
-
end
|
22
|
-
|
23
|
-
failure_message do |enumerable|
|
24
|
-
"did not match #{@not_matched.collect(&:description).join(', ')} in #{enumerable.inspect}: <#{@not_matched.collect(&:failure_message).join('>, <')}>"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end; end
|