bolt 0.24.0 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bolt might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb +19 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/resultset.rb +3 -3
- data/bolt-modules/boltlib/lib/puppet/functions/apply_prep.rb +2 -1
- data/lib/bolt/analytics.rb +0 -1
- data/lib/bolt/applicator.rb +7 -54
- data/lib/bolt/apply_result.rb +116 -0
- data/lib/bolt/outputter/human.rb +13 -8
- data/lib/bolt/pal.rb +6 -2
- data/lib/bolt/transport/ssh.rb +2 -1
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt_spec/run.rb +1 -0
- data/libexec/apply_catalog.rb +25 -30
- metadata +37 -1212
- data/vendored/facter/lib/facter.rb +0 -261
- data/vendored/facter/lib/facter/Cfkey.rb +0 -42
- data/vendored/facter/lib/facter/application.rb +0 -206
- data/vendored/facter/lib/facter/architecture.rb +0 -50
- data/vendored/facter/lib/facter/augeasversion.rb +0 -28
- data/vendored/facter/lib/facter/blockdevices.rb +0 -105
- data/vendored/facter/lib/facter/core/aggregate.rb +0 -220
- data/vendored/facter/lib/facter/core/directed_graph.rb +0 -46
- data/vendored/facter/lib/facter/core/execution.rb +0 -123
- data/vendored/facter/lib/facter/core/execution/base.rb +0 -81
- data/vendored/facter/lib/facter/core/execution/posix.rb +0 -50
- data/vendored/facter/lib/facter/core/execution/windows.rb +0 -57
- data/vendored/facter/lib/facter/core/logging.rb +0 -197
- data/vendored/facter/lib/facter/core/resolvable.rb +0 -94
- data/vendored/facter/lib/facter/core/suitable.rb +0 -113
- data/vendored/facter/lib/facter/dhcp_servers.rb +0 -45
- data/vendored/facter/lib/facter/domain.rb +0 -99
- data/vendored/facter/lib/facter/ec2.rb +0 -68
- data/vendored/facter/lib/facter/ec2/rest.rb +0 -137
- data/vendored/facter/lib/facter/facterversion.rb +0 -15
- data/vendored/facter/lib/facter/filesystems.rb +0 -45
- data/vendored/facter/lib/facter/fqdn.rb +0 -24
- data/vendored/facter/lib/facter/gce.rb +0 -16
- data/vendored/facter/lib/facter/gce/metadata.rb +0 -87
- data/vendored/facter/lib/facter/gid.rb +0 -25
- data/vendored/facter/lib/facter/hardwareisa.rb +0 -20
- data/vendored/facter/lib/facter/hardwaremodel.rb +0 -67
- data/vendored/facter/lib/facter/hostname.rb +0 -31
- data/vendored/facter/lib/facter/id.rb +0 -21
- data/vendored/facter/lib/facter/interfaces.rb +0 -58
- data/vendored/facter/lib/facter/ipaddress.rb +0 -169
- data/vendored/facter/lib/facter/ipaddress6.rb +0 -82
- data/vendored/facter/lib/facter/iphostnumber.rb +0 -29
- data/vendored/facter/lib/facter/kernel.rb +0 -22
- data/vendored/facter/lib/facter/kernelmajversion.rb +0 -23
- data/vendored/facter/lib/facter/kernelrelease.rb +0 -45
- data/vendored/facter/lib/facter/kernelversion.rb +0 -22
- data/vendored/facter/lib/facter/ldom.rb +0 -51
- data/vendored/facter/lib/facter/lsbdistcodename.rb +0 -20
- data/vendored/facter/lib/facter/lsbdistdescription.rb +0 -21
- data/vendored/facter/lib/facter/lsbdistid.rb +0 -20
- data/vendored/facter/lib/facter/lsbdistrelease.rb +0 -20
- data/vendored/facter/lib/facter/lsbmajdistrelease.rb +0 -22
- data/vendored/facter/lib/facter/lsbminordistrelease.rb +0 -22
- data/vendored/facter/lib/facter/lsbrelease.rb +0 -20
- data/vendored/facter/lib/facter/macaddress.rb +0 -99
- data/vendored/facter/lib/facter/macosx.rb +0 -56
- data/vendored/facter/lib/facter/manufacturer.rb +0 -68
- data/vendored/facter/lib/facter/memory.rb +0 -168
- data/vendored/facter/lib/facter/netmask.rb +0 -43
- data/vendored/facter/lib/facter/network.rb +0 -20
- data/vendored/facter/lib/facter/operatingsystem.rb +0 -24
- data/vendored/facter/lib/facter/operatingsystem/base.rb +0 -61
- data/vendored/facter/lib/facter/operatingsystem/cumuluslinux.rb +0 -27
- data/vendored/facter/lib/facter/operatingsystem/implementation.rb +0 -33
- data/vendored/facter/lib/facter/operatingsystem/linux.rb +0 -484
- data/vendored/facter/lib/facter/operatingsystem/osreleaselinux.rb +0 -28
- data/vendored/facter/lib/facter/operatingsystem/sunos.rb +0 -54
- data/vendored/facter/lib/facter/operatingsystem/vmkernel.rb +0 -11
- data/vendored/facter/lib/facter/operatingsystem/windows.rb +0 -43
- data/vendored/facter/lib/facter/operatingsystemmajrelease.rb +0 -31
- data/vendored/facter/lib/facter/operatingsystemrelease.rb +0 -29
- data/vendored/facter/lib/facter/os.rb +0 -98
- data/vendored/facter/lib/facter/osfamily.rb +0 -18
- data/vendored/facter/lib/facter/partitions.rb +0 -39
- data/vendored/facter/lib/facter/path.rb +0 -14
- data/vendored/facter/lib/facter/physicalprocessorcount.rb +0 -27
- data/vendored/facter/lib/facter/processor.rb +0 -52
- data/vendored/facter/lib/facter/processors.rb +0 -66
- data/vendored/facter/lib/facter/processors/os.rb +0 -244
- data/vendored/facter/lib/facter/ps.rb +0 -31
- data/vendored/facter/lib/facter/puppetversion.rb +0 -20
- data/vendored/facter/lib/facter/rackspace.rb +0 -37
- data/vendored/facter/lib/facter/rubyplatform.rb +0 -12
- data/vendored/facter/lib/facter/rubysitedir.rb +0 -15
- data/vendored/facter/lib/facter/rubyversion.rb +0 -12
- data/vendored/facter/lib/facter/selinux.rb +0 -154
- data/vendored/facter/lib/facter/ssh.rb +0 -73
- data/vendored/facter/lib/facter/system32.rb +0 -21
- data/vendored/facter/lib/facter/system_uptime.rb +0 -44
- data/vendored/facter/lib/facter/timezone.rb +0 -14
- data/vendored/facter/lib/facter/uniqueid.rb +0 -4
- data/vendored/facter/lib/facter/uptime.rb +0 -16
- data/vendored/facter/lib/facter/uptime_days.rb +0 -13
- data/vendored/facter/lib/facter/uptime_hours.rb +0 -13
- data/vendored/facter/lib/facter/uptime_seconds.rb +0 -20
- data/vendored/facter/lib/facter/util/architecture.rb +0 -19
- data/vendored/facter/lib/facter/util/collection.rb +0 -161
- data/vendored/facter/lib/facter/util/composite_loader.rb +0 -12
- data/vendored/facter/lib/facter/util/config.rb +0 -88
- data/vendored/facter/lib/facter/util/confine.rb +0 -66
- data/vendored/facter/lib/facter/util/dhcp_servers.rb +0 -58
- data/vendored/facter/lib/facter/util/directory_loader.rb +0 -88
- data/vendored/facter/lib/facter/util/ec2.rb +0 -106
- data/vendored/facter/lib/facter/util/fact.rb +0 -204
- data/vendored/facter/lib/facter/util/file_read.rb +0 -37
- data/vendored/facter/lib/facter/util/formatter.rb +0 -39
- data/vendored/facter/lib/facter/util/ip.rb +0 -340
- data/vendored/facter/lib/facter/util/ip/windows.rb +0 -215
- data/vendored/facter/lib/facter/util/loader.rb +0 -155
- data/vendored/facter/lib/facter/util/macaddress.rb +0 -43
- data/vendored/facter/lib/facter/util/macosx.rb +0 -73
- data/vendored/facter/lib/facter/util/manufacturer.rb +0 -99
- data/vendored/facter/lib/facter/util/memory.rb +0 -228
- data/vendored/facter/lib/facter/util/netmask.rb +0 -40
- data/vendored/facter/lib/facter/util/normalization.rb +0 -94
- data/vendored/facter/lib/facter/util/nothing_loader.rb +0 -12
- data/vendored/facter/lib/facter/util/operatingsystem.rb +0 -21
- data/vendored/facter/lib/facter/util/parser.rb +0 -168
- data/vendored/facter/lib/facter/util/partitions.rb +0 -47
- data/vendored/facter/lib/facter/util/partitions/linux.rb +0 -71
- data/vendored/facter/lib/facter/util/partitions/openbsd.rb +0 -40
- data/vendored/facter/lib/facter/util/plist.rb +0 -24
- data/vendored/facter/lib/facter/util/plist/generator.rb +0 -228
- data/vendored/facter/lib/facter/util/plist/parser.rb +0 -226
- data/vendored/facter/lib/facter/util/posix.rb +0 -16
- data/vendored/facter/lib/facter/util/processor.rb +0 -289
- data/vendored/facter/lib/facter/util/registry.rb +0 -11
- data/vendored/facter/lib/facter/util/resolution.rb +0 -160
- data/vendored/facter/lib/facter/util/solaris_zones.rb +0 -158
- data/vendored/facter/lib/facter/util/unix_root.rb +0 -5
- data/vendored/facter/lib/facter/util/uptime.rb +0 -83
- data/vendored/facter/lib/facter/util/values.rb +0 -109
- data/vendored/facter/lib/facter/util/virtual.rb +0 -212
- data/vendored/facter/lib/facter/util/vlans.rb +0 -21
- data/vendored/facter/lib/facter/util/windows.rb +0 -10
- data/vendored/facter/lib/facter/util/windows/api_types.rb +0 -135
- data/vendored/facter/lib/facter/util/windows/dir.rb +0 -43
- data/vendored/facter/lib/facter/util/windows/error.rb +0 -87
- data/vendored/facter/lib/facter/util/windows/process.rb +0 -294
- data/vendored/facter/lib/facter/util/windows/user.rb +0 -186
- data/vendored/facter/lib/facter/util/windows_root.rb +0 -7
- data/vendored/facter/lib/facter/util/wmi.rb +0 -49
- data/vendored/facter/lib/facter/util/xendomains.rb +0 -28
- data/vendored/facter/lib/facter/version.rb +0 -86
- data/vendored/facter/lib/facter/virtual.rb +0 -330
- data/vendored/facter/lib/facter/vlans.rb +0 -17
- data/vendored/facter/lib/facter/xendomains.rb +0 -20
- data/vendored/facter/lib/facter/zfs_version.rb +0 -14
- data/vendored/facter/lib/facter/zonename.rb +0 -6
- data/vendored/facter/lib/facter/zones.rb +0 -18
- data/vendored/facter/lib/facter/zpool_version.rb +0 -10
- data/vendored/hiera/lib/hiera.rb +0 -119
- data/vendored/hiera/lib/hiera/backend.rb +0 -360
- data/vendored/hiera/lib/hiera/backend/json_backend.rb +0 -58
- data/vendored/hiera/lib/hiera/backend/yaml_backend.rb +0 -63
- data/vendored/hiera/lib/hiera/config.rb +0 -97
- data/vendored/hiera/lib/hiera/console_logger.rb +0 -13
- data/vendored/hiera/lib/hiera/error.rb +0 -4
- data/vendored/hiera/lib/hiera/fallback_logger.rb +0 -41
- data/vendored/hiera/lib/hiera/filecache.rb +0 -86
- data/vendored/hiera/lib/hiera/interpolate.rb +0 -121
- data/vendored/hiera/lib/hiera/noop_logger.rb +0 -8
- data/vendored/hiera/lib/hiera/puppet_logger.rb +0 -17
- data/vendored/hiera/lib/hiera/recursive_guard.rb +0 -20
- data/vendored/hiera/lib/hiera/util.rb +0 -65
- data/vendored/hiera/lib/hiera/util/win32.rb +0 -40
- data/vendored/hiera/lib/hiera/version.rb +0 -89
- data/vendored/puppet/lib/hiera/puppet_function.rb +0 -84
- data/vendored/puppet/lib/hiera/scope.rb +0 -83
- data/vendored/puppet/lib/hiera_puppet.rb +0 -79
- data/vendored/puppet/lib/puppet.rb +0 -299
- data/vendored/puppet/lib/puppet/agent.rb +0 -134
- data/vendored/puppet/lib/puppet/agent/disabler.rb +0 -53
- data/vendored/puppet/lib/puppet/agent/locker.rb +0 -53
- data/vendored/puppet/lib/puppet/application.rb +0 -509
- data/vendored/puppet/lib/puppet/application/agent.rb +0 -469
- data/vendored/puppet/lib/puppet/application/apply.rb +0 -407
- data/vendored/puppet/lib/puppet/application/catalog.rb +0 -4
- data/vendored/puppet/lib/puppet/application/cert.rb +0 -76
- data/vendored/puppet/lib/puppet/application/config.rb +0 -5
- data/vendored/puppet/lib/puppet/application/describe.rb +0 -257
- data/vendored/puppet/lib/puppet/application/device.rb +0 -386
- data/vendored/puppet/lib/puppet/application/doc.rb +0 -232
- data/vendored/puppet/lib/puppet/application/epp.rb +0 -5
- data/vendored/puppet/lib/puppet/application/face_base.rb +0 -268
- data/vendored/puppet/lib/puppet/application/facts.rb +0 -9
- data/vendored/puppet/lib/puppet/application/filebucket.rb +0 -300
- data/vendored/puppet/lib/puppet/application/generate.rb +0 -5
- data/vendored/puppet/lib/puppet/application/help.rb +0 -5
- data/vendored/puppet/lib/puppet/application/indirection_base.rb +0 -4
- data/vendored/puppet/lib/puppet/application/key.rb +0 -4
- data/vendored/puppet/lib/puppet/application/lookup.rb +0 -369
- data/vendored/puppet/lib/puppet/application/man.rb +0 -4
- data/vendored/puppet/lib/puppet/application/module.rb +0 -4
- data/vendored/puppet/lib/puppet/application/node.rb +0 -4
- data/vendored/puppet/lib/puppet/application/parser.rb +0 -5
- data/vendored/puppet/lib/puppet/application/plugin.rb +0 -3
- data/vendored/puppet/lib/puppet/application/report.rb +0 -4
- data/vendored/puppet/lib/puppet/application/resource.rb +0 -231
- data/vendored/puppet/lib/puppet/application/script.rb +0 -261
- data/vendored/puppet/lib/puppet/application/ssl.rb +0 -133
- data/vendored/puppet/lib/puppet/application/status.rb +0 -4
- data/vendored/puppet/lib/puppet/application_support.rb +0 -61
- data/vendored/puppet/lib/puppet/coercion.rb +0 -40
- data/vendored/puppet/lib/puppet/compilable_resource_type.rb +0 -15
- data/vendored/puppet/lib/puppet/configurer.rb +0 -484
- data/vendored/puppet/lib/puppet/configurer/downloader.rb +0 -67
- data/vendored/puppet/lib/puppet/configurer/fact_handler.rb +0 -50
- data/vendored/puppet/lib/puppet/configurer/plugin_handler.rb +0 -48
- data/vendored/puppet/lib/puppet/confine.rb +0 -83
- data/vendored/puppet/lib/puppet/confine/any.rb +0 -26
- data/vendored/puppet/lib/puppet/confine/exists.rb +0 -19
- data/vendored/puppet/lib/puppet/confine/false.rb +0 -19
- data/vendored/puppet/lib/puppet/confine/feature.rb +0 -17
- data/vendored/puppet/lib/puppet/confine/true.rb +0 -20
- data/vendored/puppet/lib/puppet/confine/variable.rb +0 -59
- data/vendored/puppet/lib/puppet/confine_collection.rb +0 -50
- data/vendored/puppet/lib/puppet/confiner.rb +0 -46
- data/vendored/puppet/lib/puppet/context.rb +0 -116
- data/vendored/puppet/lib/puppet/context/trusted_information.rb +0 -76
- data/vendored/puppet/lib/puppet/daemon.rb +0 -195
- data/vendored/puppet/lib/puppet/data_binding.rb +0 -14
- data/vendored/puppet/lib/puppet/datatypes.rb +0 -213
- data/vendored/puppet/lib/puppet/datatypes/error.rb +0 -21
- data/vendored/puppet/lib/puppet/datatypes/impl/error.rb +0 -40
- data/vendored/puppet/lib/puppet/defaults.rb +0 -2003
- data/vendored/puppet/lib/puppet/environments.rb +0 -505
- data/vendored/puppet/lib/puppet/error.rb +0 -117
- data/vendored/puppet/lib/puppet/etc.rb +0 -160
- data/vendored/puppet/lib/puppet/external/dot.rb +0 -325
- data/vendored/puppet/lib/puppet/external/pson/common.rb +0 -374
- data/vendored/puppet/lib/puppet/external/pson/pure.rb +0 -15
- data/vendored/puppet/lib/puppet/external/pson/pure/generator.rb +0 -395
- data/vendored/puppet/lib/puppet/external/pson/pure/parser.rb +0 -307
- data/vendored/puppet/lib/puppet/external/pson/version.rb +0 -8
- data/vendored/puppet/lib/puppet/face.rb +0 -12
- data/vendored/puppet/lib/puppet/face/catalog.rb +0 -130
- data/vendored/puppet/lib/puppet/face/catalog/select.rb +0 -49
- data/vendored/puppet/lib/puppet/face/config.rb +0 -265
- data/vendored/puppet/lib/puppet/face/epp.rb +0 -554
- data/vendored/puppet/lib/puppet/face/facts.rb +0 -87
- data/vendored/puppet/lib/puppet/face/generate.rb +0 -64
- data/vendored/puppet/lib/puppet/face/help.rb +0 -215
- data/vendored/puppet/lib/puppet/face/key.rb +0 -16
- data/vendored/puppet/lib/puppet/face/man.rb +0 -145
- data/vendored/puppet/lib/puppet/face/module.rb +0 -19
- data/vendored/puppet/lib/puppet/face/module/build.rb +0 -14
- data/vendored/puppet/lib/puppet/face/module/changes.rb +0 -42
- data/vendored/puppet/lib/puppet/face/module/generate.rb +0 -14
- data/vendored/puppet/lib/puppet/face/module/install.rb +0 -146
- data/vendored/puppet/lib/puppet/face/module/list.rb +0 -263
- data/vendored/puppet/lib/puppet/face/module/search.rb +0 -98
- data/vendored/puppet/lib/puppet/face/module/uninstall.rb +0 -89
- data/vendored/puppet/lib/puppet/face/module/upgrade.rb +0 -87
- data/vendored/puppet/lib/puppet/face/node.rb +0 -43
- data/vendored/puppet/lib/puppet/face/node/clean.rb +0 -100
- data/vendored/puppet/lib/puppet/face/parser.rb +0 -187
- data/vendored/puppet/lib/puppet/face/plugin.rb +0 -56
- data/vendored/puppet/lib/puppet/face/report.rb +0 -54
- data/vendored/puppet/lib/puppet/face/resource.rb +0 -53
- data/vendored/puppet/lib/puppet/face/status.rb +0 -51
- data/vendored/puppet/lib/puppet/feature/base.rb +0 -76
- data/vendored/puppet/lib/puppet/feature/bolt.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/cfpropertylist.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/eventlog.rb +0 -5
- data/vendored/puppet/lib/puppet/feature/hiera_eyaml.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/hocon.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/libuser.rb +0 -8
- data/vendored/puppet/lib/puppet/feature/msgpack.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/pe_license.rb +0 -4
- data/vendored/puppet/lib/puppet/feature/selinux.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/ssh.rb +0 -3
- data/vendored/puppet/lib/puppet/feature/telnet.rb +0 -9
- data/vendored/puppet/lib/puppet/feature/zlib.rb +0 -5
- data/vendored/puppet/lib/puppet/file_bucket.rb +0 -4
- data/vendored/puppet/lib/puppet/file_bucket/dipper.rb +0 -173
- data/vendored/puppet/lib/puppet/file_bucket/file.rb +0 -129
- data/vendored/puppet/lib/puppet/file_serving.rb +0 -3
- data/vendored/puppet/lib/puppet/file_serving/base.rb +0 -86
- data/vendored/puppet/lib/puppet/file_serving/configuration.rb +0 -115
- data/vendored/puppet/lib/puppet/file_serving/configuration/parser.rb +0 -137
- data/vendored/puppet/lib/puppet/file_serving/content.rb +0 -43
- data/vendored/puppet/lib/puppet/file_serving/fileset.rb +0 -174
- data/vendored/puppet/lib/puppet/file_serving/http_metadata.rb +0 -46
- data/vendored/puppet/lib/puppet/file_serving/metadata.rb +0 -164
- data/vendored/puppet/lib/puppet/file_serving/mount.rb +0 -39
- data/vendored/puppet/lib/puppet/file_serving/mount/file.rb +0 -121
- data/vendored/puppet/lib/puppet/file_serving/mount/locales.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/modules.rb +0 -24
- data/vendored/puppet/lib/puppet/file_serving/mount/pluginfacts.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/plugins.rb +0 -35
- data/vendored/puppet/lib/puppet/file_serving/mount/tasks.rb +0 -21
- data/vendored/puppet/lib/puppet/file_serving/terminus_helper.rb +0 -31
- data/vendored/puppet/lib/puppet/file_serving/terminus_selector.rb +0 -32
- data/vendored/puppet/lib/puppet/file_system.rb +0 -404
- data/vendored/puppet/lib/puppet/file_system/file_impl.rb +0 -154
- data/vendored/puppet/lib/puppet/file_system/memory_file.rb +0 -66
- data/vendored/puppet/lib/puppet/file_system/memory_impl.rb +0 -86
- data/vendored/puppet/lib/puppet/file_system/path_pattern.rb +0 -98
- data/vendored/puppet/lib/puppet/file_system/posix.rb +0 -46
- data/vendored/puppet/lib/puppet/file_system/uniquefile.rb +0 -190
- data/vendored/puppet/lib/puppet/file_system/windows.rb +0 -130
- data/vendored/puppet/lib/puppet/forge.rb +0 -241
- data/vendored/puppet/lib/puppet/forge/cache.rb +0 -60
- data/vendored/puppet/lib/puppet/forge/errors.rb +0 -114
- data/vendored/puppet/lib/puppet/forge/repository.rb +0 -155
- data/vendored/puppet/lib/puppet/functions.rb +0 -863
- data/vendored/puppet/lib/puppet/functions/abs.rb +0 -61
- data/vendored/puppet/lib/puppet/functions/alert.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/all.rb +0 -104
- data/vendored/puppet/lib/puppet/functions/annotate.rb +0 -108
- data/vendored/puppet/lib/puppet/functions/any.rb +0 -109
- data/vendored/puppet/lib/puppet/functions/assert_type.rb +0 -93
- data/vendored/puppet/lib/puppet/functions/binary_file.rb +0 -32
- data/vendored/puppet/lib/puppet/functions/break.rb +0 -47
- data/vendored/puppet/lib/puppet/functions/call.rb +0 -79
- data/vendored/puppet/lib/puppet/functions/camelcase.rb +0 -62
- data/vendored/puppet/lib/puppet/functions/capitalize.rb +0 -61
- data/vendored/puppet/lib/puppet/functions/ceiling.rb +0 -37
- data/vendored/puppet/lib/puppet/functions/chomp.rb +0 -57
- data/vendored/puppet/lib/puppet/functions/chop.rb +0 -67
- data/vendored/puppet/lib/puppet/functions/compare.rb +0 -125
- data/vendored/puppet/lib/puppet/functions/contain.rb +0 -55
- data/vendored/puppet/lib/puppet/functions/convert_to.rb +0 -34
- data/vendored/puppet/lib/puppet/functions/crit.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/debug.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/defined.rb +0 -159
- data/vendored/puppet/lib/puppet/functions/dig.rb +0 -67
- data/vendored/puppet/lib/puppet/functions/downcase.rb +0 -89
- data/vendored/puppet/lib/puppet/functions/each.rb +0 -169
- data/vendored/puppet/lib/puppet/functions/emerg.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/empty.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/epp.rb +0 -48
- data/vendored/puppet/lib/puppet/functions/err.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/eyaml_lookup_key.rb +0 -97
- data/vendored/puppet/lib/puppet/functions/filter.rb +0 -144
- data/vendored/puppet/lib/puppet/functions/find_file.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/flatten.rb +0 -64
- data/vendored/puppet/lib/puppet/functions/floor.rb +0 -37
- data/vendored/puppet/lib/puppet/functions/get.rb +0 -150
- data/vendored/puppet/lib/puppet/functions/getvar.rb +0 -87
- data/vendored/puppet/lib/puppet/functions/hiera.rb +0 -88
- data/vendored/puppet/lib/puppet/functions/hiera_array.rb +0 -81
- data/vendored/puppet/lib/puppet/functions/hiera_hash.rb +0 -92
- data/vendored/puppet/lib/puppet/functions/hiera_include.rb +0 -104
- data/vendored/puppet/lib/puppet/functions/hocon_data.rb +0 -41
- data/vendored/puppet/lib/puppet/functions/import.rb +0 -7
- data/vendored/puppet/lib/puppet/functions/include.rb +0 -53
- data/vendored/puppet/lib/puppet/functions/info.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/inline_epp.rb +0 -59
- data/vendored/puppet/lib/puppet/functions/join.rb +0 -56
- data/vendored/puppet/lib/puppet/functions/json_data.rb +0 -33
- data/vendored/puppet/lib/puppet/functions/keys.rb +0 -25
- data/vendored/puppet/lib/puppet/functions/length.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/lest.rb +0 -55
- data/vendored/puppet/lib/puppet/functions/lookup.rb +0 -224
- data/vendored/puppet/lib/puppet/functions/lstrip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/map.rb +0 -136
- data/vendored/puppet/lib/puppet/functions/match.rb +0 -131
- data/vendored/puppet/lib/puppet/functions/max.rb +0 -183
- data/vendored/puppet/lib/puppet/functions/min.rb +0 -182
- data/vendored/puppet/lib/puppet/functions/module_directory.rb +0 -41
- data/vendored/puppet/lib/puppet/functions/new.rb +0 -1006
- data/vendored/puppet/lib/puppet/functions/next.rb +0 -16
- data/vendored/puppet/lib/puppet/functions/notice.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/reduce.rb +0 -164
- data/vendored/puppet/lib/puppet/functions/regsubst.rb +0 -82
- data/vendored/puppet/lib/puppet/functions/require.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/return.rb +0 -15
- data/vendored/puppet/lib/puppet/functions/reverse_each.rb +0 -94
- data/vendored/puppet/lib/puppet/functions/round.rb +0 -24
- data/vendored/puppet/lib/puppet/functions/rstrip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/scanf.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/size.rb +0 -15
- data/vendored/puppet/lib/puppet/functions/slice.rb +0 -124
- data/vendored/puppet/lib/puppet/functions/sort.rb +0 -74
- data/vendored/puppet/lib/puppet/functions/split.rb +0 -49
- data/vendored/puppet/lib/puppet/functions/step.rb +0 -98
- data/vendored/puppet/lib/puppet/functions/strftime.rb +0 -211
- data/vendored/puppet/lib/puppet/functions/strip.rb +0 -58
- data/vendored/puppet/lib/puppet/functions/then.rb +0 -77
- data/vendored/puppet/lib/puppet/functions/tree_each.rb +0 -200
- data/vendored/puppet/lib/puppet/functions/type.rb +0 -72
- data/vendored/puppet/lib/puppet/functions/unique.rb +0 -132
- data/vendored/puppet/lib/puppet/functions/unwrap.rb +0 -44
- data/vendored/puppet/lib/puppet/functions/upcase.rb +0 -89
- data/vendored/puppet/lib/puppet/functions/values.rb +0 -25
- data/vendored/puppet/lib/puppet/functions/versioncmp.rb +0 -36
- data/vendored/puppet/lib/puppet/functions/warning.rb +0 -14
- data/vendored/puppet/lib/puppet/functions/with.rb +0 -32
- data/vendored/puppet/lib/puppet/functions/yaml_data.rb +0 -43
- data/vendored/puppet/lib/puppet/generate/models/type/property.rb +0 -70
- data/vendored/puppet/lib/puppet/generate/models/type/type.rb +0 -62
- data/vendored/puppet/lib/puppet/generate/type.rb +0 -239
- data/vendored/puppet/lib/puppet/gettext/config.rb +0 -275
- data/vendored/puppet/lib/puppet/gettext/module_translations.rb +0 -42
- data/vendored/puppet/lib/puppet/gettext/stubs.rb +0 -11
- data/vendored/puppet/lib/puppet/graph.rb +0 -9
- data/vendored/puppet/lib/puppet/graph/key.rb +0 -26
- data/vendored/puppet/lib/puppet/graph/prioritizer.rb +0 -29
- data/vendored/puppet/lib/puppet/graph/rb_tree_map.rb +0 -388
- data/vendored/puppet/lib/puppet/graph/relationship_graph.rb +0 -283
- data/vendored/puppet/lib/puppet/graph/sequential_prioritizer.rb +0 -31
- data/vendored/puppet/lib/puppet/graph/simple_graph.rb +0 -543
- data/vendored/puppet/lib/puppet/indirector.rb +0 -61
- data/vendored/puppet/lib/puppet/indirector/catalog/compiler.rb +0 -416
- data/vendored/puppet/lib/puppet/indirector/catalog/json.rb +0 -35
- data/vendored/puppet/lib/puppet/indirector/catalog/msgpack.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/catalog/rest.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/catalog/store_configs.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/catalog/yaml.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/certificate/file.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/certificate/rest.rb +0 -16
- data/vendored/puppet/lib/puppet/indirector/certificate_request/file.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/certificate_request/memory.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/certificate_request/rest.rb +0 -10
- data/vendored/puppet/lib/puppet/indirector/code.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/data_binding/hiera.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/data_binding/none.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/direct_file_server.rb +0 -17
- data/vendored/puppet/lib/puppet/indirector/envelope.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/errors.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/exec.rb +0 -38
- data/vendored/puppet/lib/puppet/indirector/face.rb +0 -153
- data/vendored/puppet/lib/puppet/indirector/facts/facter.rb +0 -88
- data/vendored/puppet/lib/puppet/indirector/facts/memory.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/facts/network_device.rb +0 -27
- data/vendored/puppet/lib/puppet/indirector/facts/rest.rb +0 -21
- data/vendored/puppet/lib/puppet/indirector/facts/store_configs.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/facts/yaml.rb +0 -84
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/file.rb +0 -262
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/rest.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/selector.rb +0 -53
- data/vendored/puppet/lib/puppet/indirector/file_content.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/file_content/file.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_content/file_server.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_content/http.rb +0 -17
- data/vendored/puppet/lib/puppet/indirector/file_content/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/file_content/selector.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/file_metadata.rb +0 -5
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file_server.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/file_metadata/http.rb +0 -27
- data/vendored/puppet/lib/puppet/indirector/file_metadata/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/file_metadata/selector.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/file_server.rb +0 -59
- data/vendored/puppet/lib/puppet/indirector/generic_http.rb +0 -16
- data/vendored/puppet/lib/puppet/indirector/hiera.rb +0 -94
- data/vendored/puppet/lib/puppet/indirector/indirection.rb +0 -340
- data/vendored/puppet/lib/puppet/indirector/json.rb +0 -75
- data/vendored/puppet/lib/puppet/indirector/key/file.rb +0 -45
- data/vendored/puppet/lib/puppet/indirector/key/memory.rb +0 -6
- data/vendored/puppet/lib/puppet/indirector/memory.rb +0 -34
- data/vendored/puppet/lib/puppet/indirector/msgpack.rb +0 -83
- data/vendored/puppet/lib/puppet/indirector/node/exec.rb +0 -69
- data/vendored/puppet/lib/puppet/indirector/node/memory.rb +0 -10
- data/vendored/puppet/lib/puppet/indirector/node/msgpack.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/node/plain.rb +0 -21
- data/vendored/puppet/lib/puppet/indirector/node/rest.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/node/store_configs.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/node/yaml.rb +0 -7
- data/vendored/puppet/lib/puppet/indirector/none.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/plain.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/report/msgpack.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/report/processor.rb +0 -59
- data/vendored/puppet/lib/puppet/indirector/report/rest.rb +0 -28
- data/vendored/puppet/lib/puppet/indirector/report/yaml.rb +0 -11
- data/vendored/puppet/lib/puppet/indirector/request.rb +0 -278
- data/vendored/puppet/lib/puppet/indirector/resource/ral.rb +0 -63
- data/vendored/puppet/lib/puppet/indirector/resource/store_configs.rb +0 -12
- data/vendored/puppet/lib/puppet/indirector/resource/validator.rb +0 -8
- data/vendored/puppet/lib/puppet/indirector/rest.rb +0 -301
- data/vendored/puppet/lib/puppet/indirector/ssl_file.rb +0 -160
- data/vendored/puppet/lib/puppet/indirector/status.rb +0 -3
- data/vendored/puppet/lib/puppet/indirector/status/local.rb +0 -12
- data/vendored/puppet/lib/puppet/indirector/status/rest.rb +0 -9
- data/vendored/puppet/lib/puppet/indirector/store_configs.rb +0 -30
- data/vendored/puppet/lib/puppet/indirector/terminus.rb +0 -169
- data/vendored/puppet/lib/puppet/indirector/yaml.rb +0 -63
- data/vendored/puppet/lib/puppet/info_service.rb +0 -17
- data/vendored/puppet/lib/puppet/info_service/class_information_service.rb +0 -110
- data/vendored/puppet/lib/puppet/info_service/task_information_service.rb +0 -36
- data/vendored/puppet/lib/puppet/interface.rb +0 -237
- data/vendored/puppet/lib/puppet/interface/action.rb +0 -399
- data/vendored/puppet/lib/puppet/interface/action_builder.rb +0 -166
- data/vendored/puppet/lib/puppet/interface/action_manager.rb +0 -97
- data/vendored/puppet/lib/puppet/interface/documentation.rb +0 -353
- data/vendored/puppet/lib/puppet/interface/face_collection.rb +0 -134
- data/vendored/puppet/lib/puppet/interface/option.rb +0 -171
- data/vendored/puppet/lib/puppet/interface/option_builder.rb +0 -105
- data/vendored/puppet/lib/puppet/interface/option_manager.rb +0 -104
- data/vendored/puppet/lib/puppet/loaders.rb +0 -28
- data/vendored/puppet/lib/puppet/metatype/manager.rb +0 -197
- data/vendored/puppet/lib/puppet/module.rb +0 -441
- data/vendored/puppet/lib/puppet/module/task.rb +0 -258
- data/vendored/puppet/lib/puppet/module_tool.rb +0 -193
- data/vendored/puppet/lib/puppet/module_tool/applications.rb +0 -13
- data/vendored/puppet/lib/puppet/module_tool/applications/application.rb +0 -90
- data/vendored/puppet/lib/puppet/module_tool/applications/checksummer.rb +0 -62
- data/vendored/puppet/lib/puppet/module_tool/applications/installer.rb +0 -354
- data/vendored/puppet/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/vendored/puppet/lib/puppet/module_tool/applications/uninstaller.rb +0 -120
- data/vendored/puppet/lib/puppet/module_tool/applications/unpacker.rb +0 -100
- data/vendored/puppet/lib/puppet/module_tool/applications/upgrader.rb +0 -280
- data/vendored/puppet/lib/puppet/module_tool/checksums.rb +0 -49
- data/vendored/puppet/lib/puppet/module_tool/contents_description.rb +0 -88
- data/vendored/puppet/lib/puppet/module_tool/dependency.rb +0 -41
- data/vendored/puppet/lib/puppet/module_tool/errors.rb +0 -11
- data/vendored/puppet/lib/puppet/module_tool/errors/base.rb +0 -15
- data/vendored/puppet/lib/puppet/module_tool/errors/installer.rb +0 -93
- data/vendored/puppet/lib/puppet/module_tool/errors/shared.rb +0 -195
- data/vendored/puppet/lib/puppet/module_tool/errors/uninstaller.rb +0 -50
- data/vendored/puppet/lib/puppet/module_tool/errors/upgrader.rb +0 -63
- data/vendored/puppet/lib/puppet/module_tool/install_directory.rb +0 -45
- data/vendored/puppet/lib/puppet/module_tool/installed_modules.rb +0 -96
- data/vendored/puppet/lib/puppet/module_tool/local_tarball.rb +0 -90
- data/vendored/puppet/lib/puppet/module_tool/metadata.rb +0 -222
- data/vendored/puppet/lib/puppet/module_tool/shared_behaviors.rb +0 -180
- data/vendored/puppet/lib/puppet/module_tool/tar.rb +0 -18
- data/vendored/puppet/lib/puppet/module_tool/tar/gnu.rb +0 -19
- data/vendored/puppet/lib/puppet/module_tool/tar/mini.rb +0 -106
- data/vendored/puppet/lib/puppet/network.rb +0 -3
- data/vendored/puppet/lib/puppet/network/auth_config_parser.rb +0 -90
- data/vendored/puppet/lib/puppet/network/authconfig.rb +0 -99
- data/vendored/puppet/lib/puppet/network/authorization.rb +0 -41
- data/vendored/puppet/lib/puppet/network/authstore.rb +0 -282
- data/vendored/puppet/lib/puppet/network/client_request.rb +0 -29
- data/vendored/puppet/lib/puppet/network/format.rb +0 -110
- data/vendored/puppet/lib/puppet/network/format_handler.rb +0 -108
- data/vendored/puppet/lib/puppet/network/format_support.rb +0 -139
- data/vendored/puppet/lib/puppet/network/formats.rb +0 -260
- data/vendored/puppet/lib/puppet/network/http.rb +0 -28
- data/vendored/puppet/lib/puppet/network/http/api.rb +0 -35
- data/vendored/puppet/lib/puppet/network/http/api/indirected_routes.rb +0 -286
- data/vendored/puppet/lib/puppet/network/http/api/indirection_type.rb +0 -32
- data/vendored/puppet/lib/puppet/network/http/api/master.rb +0 -2
- data/vendored/puppet/lib/puppet/network/http/api/master/v3.rb +0 -28
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environment.rb +0 -85
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environments.rb +0 -35
- data/vendored/puppet/lib/puppet/network/http/compression.rb +0 -120
- data/vendored/puppet/lib/puppet/network/http/connection.rb +0 -319
- data/vendored/puppet/lib/puppet/network/http/error.rb +0 -73
- data/vendored/puppet/lib/puppet/network/http/factory.rb +0 -55
- data/vendored/puppet/lib/puppet/network/http/handler.rb +0 -215
- data/vendored/puppet/lib/puppet/network/http/issues.rb +0 -12
- data/vendored/puppet/lib/puppet/network/http/memory_response.rb +0 -13
- data/vendored/puppet/lib/puppet/network/http/nocache_pool.rb +0 -21
- data/vendored/puppet/lib/puppet/network/http/pool.rb +0 -129
- data/vendored/puppet/lib/puppet/network/http/request.rb +0 -70
- data/vendored/puppet/lib/puppet/network/http/response.rb +0 -23
- data/vendored/puppet/lib/puppet/network/http/route.rb +0 -100
- data/vendored/puppet/lib/puppet/network/http/session.rb +0 -17
- data/vendored/puppet/lib/puppet/network/http/site.rb +0 -39
- data/vendored/puppet/lib/puppet/network/http_pool.rb +0 -61
- data/vendored/puppet/lib/puppet/network/resolver.rb +0 -158
- data/vendored/puppet/lib/puppet/network/rest_controller.rb +0 -2
- data/vendored/puppet/lib/puppet/network/rights.rb +0 -209
- data/vendored/puppet/lib/puppet/node.rb +0 -281
- data/vendored/puppet/lib/puppet/node/environment.rb +0 -575
- data/vendored/puppet/lib/puppet/node/facts.rb +0 -147
- data/vendored/puppet/lib/puppet/parameter.rb +0 -572
- data/vendored/puppet/lib/puppet/parameter/boolean.rb +0 -15
- data/vendored/puppet/lib/puppet/parameter/package_options.rb +0 -31
- data/vendored/puppet/lib/puppet/parameter/path.rb +0 -57
- data/vendored/puppet/lib/puppet/parameter/value.rb +0 -91
- data/vendored/puppet/lib/puppet/parameter/value_collection.rb +0 -212
- data/vendored/puppet/lib/puppet/parser.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/abstract_compiler.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/ast.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/ast/block_expression.rb +0 -15
- data/vendored/puppet/lib/puppet/parser/ast/branch.rb +0 -19
- data/vendored/puppet/lib/puppet/parser/ast/hostclass.rb +0 -27
- data/vendored/puppet/lib/puppet/parser/ast/leaf.rb +0 -80
- data/vendored/puppet/lib/puppet/parser/ast/node.rb +0 -17
- data/vendored/puppet/lib/puppet/parser/ast/pops_bridge.rb +0 -291
- data/vendored/puppet/lib/puppet/parser/ast/resource.rb +0 -66
- data/vendored/puppet/lib/puppet/parser/ast/resource_instance.rb +0 -10
- data/vendored/puppet/lib/puppet/parser/ast/resourceparam.rb +0 -31
- data/vendored/puppet/lib/puppet/parser/ast/top_level_construct.rb +0 -4
- data/vendored/puppet/lib/puppet/parser/catalog_compiler.rb +0 -56
- data/vendored/puppet/lib/puppet/parser/compiler.rb +0 -798
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator.rb +0 -33
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -64
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +0 -64
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/e4_parser_adapter.rb +0 -60
- data/vendored/puppet/lib/puppet/parser/environment_compiler.rb +0 -199
- data/vendored/puppet/lib/puppet/parser/files.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions.rb +0 -311
- data/vendored/puppet/lib/puppet/parser/functions/assert_type.rb +0 -60
- data/vendored/puppet/lib/puppet/parser/functions/binary_file.rb +0 -24
- data/vendored/puppet/lib/puppet/parser/functions/break.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/contain.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/functions/create_resources.rb +0 -106
- data/vendored/puppet/lib/puppet/parser/functions/defined.rb +0 -107
- data/vendored/puppet/lib/puppet/parser/functions/dig.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/digest.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/each.rb +0 -104
- data/vendored/puppet/lib/puppet/parser/functions/epp.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/fail.rb +0 -4
- data/vendored/puppet/lib/puppet/parser/functions/file.rb +0 -33
- data/vendored/puppet/lib/puppet/parser/functions/filter.rb +0 -78
- data/vendored/puppet/lib/puppet/parser/functions/find_file.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/functions/fqdn_rand.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/functions/generate.rb +0 -36
- data/vendored/puppet/lib/puppet/parser/functions/hiera.rb +0 -103
- data/vendored/puppet/lib/puppet/parser/functions/hiera_array.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions/hiera_hash.rb +0 -102
- data/vendored/puppet/lib/puppet/parser/functions/hiera_include.rb +0 -101
- data/vendored/puppet/lib/puppet/parser/functions/include.rb +0 -34
- data/vendored/puppet/lib/puppet/parser/functions/inline_epp.rb +0 -51
- data/vendored/puppet/lib/puppet/parser/functions/inline_template.rb +0 -26
- data/vendored/puppet/lib/puppet/parser/functions/lest.rb +0 -49
- data/vendored/puppet/lib/puppet/parser/functions/lookup.rb +0 -132
- data/vendored/puppet/lib/puppet/parser/functions/map.rb +0 -76
- data/vendored/puppet/lib/puppet/parser/functions/match.rb +0 -43
- data/vendored/puppet/lib/puppet/parser/functions/md5.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/new.rb +0 -991
- data/vendored/puppet/lib/puppet/parser/functions/next.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/realize.rb +0 -20
- data/vendored/puppet/lib/puppet/parser/functions/reduce.rb +0 -137
- data/vendored/puppet/lib/puppet/parser/functions/regsubst.rb +0 -62
- data/vendored/puppet/lib/puppet/parser/functions/require.rb +0 -40
- data/vendored/puppet/lib/puppet/parser/functions/return.rb +0 -92
- data/vendored/puppet/lib/puppet/parser/functions/reverse_each.rb +0 -83
- data/vendored/puppet/lib/puppet/parser/functions/scanf.rb +0 -38
- data/vendored/puppet/lib/puppet/parser/functions/sha1.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/sha256.rb +0 -5
- data/vendored/puppet/lib/puppet/parser/functions/shellquote.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/functions/slice.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/split.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/functions/sprintf.rb +0 -61
- data/vendored/puppet/lib/puppet/parser/functions/step.rb +0 -84
- data/vendored/puppet/lib/puppet/parser/functions/strftime.rb +0 -185
- data/vendored/puppet/lib/puppet/parser/functions/tag.rb +0 -12
- data/vendored/puppet/lib/puppet/parser/functions/tagged.rb +0 -21
- data/vendored/puppet/lib/puppet/parser/functions/template.rb +0 -39
- data/vendored/puppet/lib/puppet/parser/functions/then.rb +0 -73
- data/vendored/puppet/lib/puppet/parser/functions/type.rb +0 -53
- data/vendored/puppet/lib/puppet/parser/functions/versioncmp.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/functions/with.rb +0 -28
- data/vendored/puppet/lib/puppet/parser/parser_factory.rb +0 -30
- data/vendored/puppet/lib/puppet/parser/relationship.rb +0 -83
- data/vendored/puppet/lib/puppet/parser/resource.rb +0 -416
- data/vendored/puppet/lib/puppet/parser/resource/param.rb +0 -29
- data/vendored/puppet/lib/puppet/parser/scope.rb +0 -1123
- data/vendored/puppet/lib/puppet/parser/script_compiler.rb +0 -123
- data/vendored/puppet/lib/puppet/parser/templatewrapper.rb +0 -102
- data/vendored/puppet/lib/puppet/parser/type_loader.rb +0 -149
- data/vendored/puppet/lib/puppet/plugins.rb +0 -9
- data/vendored/puppet/lib/puppet/plugins/configuration.rb +0 -25
- data/vendored/puppet/lib/puppet/plugins/syntax_checkers.rb +0 -98
- data/vendored/puppet/lib/puppet/pops.rb +0 -121
- data/vendored/puppet/lib/puppet/pops/adaptable.rb +0 -206
- data/vendored/puppet/lib/puppet/pops/adapters.rb +0 -152
- data/vendored/puppet/lib/puppet/pops/evaluator/access_operator.rb +0 -719
- data/vendored/puppet/lib/puppet/pops/evaluator/callable_signature.rb +0 -107
- data/vendored/puppet/lib/puppet/pops/evaluator/closure.rb +0 -373
- data/vendored/puppet/lib/puppet/pops/evaluator/collector_transformer.rb +0 -234
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +0 -86
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -69
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +0 -37
- data/vendored/puppet/lib/puppet/pops/evaluator/compare_operator.rb +0 -254
- data/vendored/puppet/lib/puppet/pops/evaluator/deferred_resolver.rb +0 -130
- data/vendored/puppet/lib/puppet/pops/evaluator/epp_evaluator.rb +0 -120
- data/vendored/puppet/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -1299
- data/vendored/puppet/lib/puppet/pops/evaluator/external_syntax_support.rb +0 -45
- data/vendored/puppet/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -82
- data/vendored/puppet/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -87
- data/vendored/puppet/lib/puppet/pops/evaluator/puppet_proc.rb +0 -69
- data/vendored/puppet/lib/puppet/pops/evaluator/relationship_operator.rb +0 -185
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_converter.rb +0 -221
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -117
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_support.rb +0 -534
- data/vendored/puppet/lib/puppet/pops/functions/dispatch.rb +0 -107
- data/vendored/puppet/lib/puppet/pops/functions/dispatcher.rb +0 -71
- data/vendored/puppet/lib/puppet/pops/functions/function.rb +0 -141
- data/vendored/puppet/lib/puppet/pops/issue_reporter.rb +0 -137
- data/vendored/puppet/lib/puppet/pops/issues.rb +0 -921
- data/vendored/puppet/lib/puppet/pops/label_provider.rb +0 -90
- data/vendored/puppet/lib/puppet/pops/loader/base_loader.rb +0 -166
- data/vendored/puppet/lib/puppet/pops/loader/dependency_loader.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/loader/gem_support.rb +0 -49
- data/vendored/puppet/lib/puppet/pops/loader/loader.rb +0 -209
- data/vendored/puppet/lib/puppet/pops/loader/loader_paths.rb +0 -377
- data/vendored/puppet/lib/puppet/pops/loader/module_loaders.rb +0 -549
- data/vendored/puppet/lib/puppet/pops/loader/null_loader.rb +0 -60
- data/vendored/puppet/lib/puppet/pops/loader/predefined_loader.rb +0 -24
- data/vendored/puppet/lib/puppet/pops/loader/puppet_function_instantiator.rb +0 -84
- data/vendored/puppet/lib/puppet/pops/loader/puppet_plan_instantiator.rb +0 -84
- data/vendored/puppet/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +0 -79
- data/vendored/puppet/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +0 -39
- data/vendored/puppet/lib/puppet/pops/loader/ruby_function_instantiator.rb +0 -45
- data/vendored/puppet/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -62
- data/vendored/puppet/lib/puppet/pops/loader/runtime3_type_loader.rb +0 -101
- data/vendored/puppet/lib/puppet/pops/loader/simple_environment_loader.rb +0 -20
- data/vendored/puppet/lib/puppet/pops/loader/static_loader.rb +0 -127
- data/vendored/puppet/lib/puppet/pops/loader/task_instantiator.rb +0 -40
- data/vendored/puppet/lib/puppet/pops/loader/type_definition_instantiator.rb +0 -100
- data/vendored/puppet/lib/puppet/pops/loader/typed_name.rb +0 -54
- data/vendored/puppet/lib/puppet/pops/loader/uri_helper.rb +0 -22
- data/vendored/puppet/lib/puppet/pops/loaders.rb +0 -533
- data/vendored/puppet/lib/puppet/pops/lookup.rb +0 -96
- data/vendored/puppet/lib/puppet/pops/lookup/configured_data_provider.rb +0 -93
- data/vendored/puppet/lib/puppet/pops/lookup/context.rb +0 -200
- data/vendored/puppet/lib/puppet/pops/lookup/data_adapter.rb +0 -27
- data/vendored/puppet/lib/puppet/pops/lookup/data_dig_function_provider.rb +0 -145
- data/vendored/puppet/lib/puppet/pops/lookup/data_hash_function_provider.rb +0 -126
- data/vendored/puppet/lib/puppet/pops/lookup/data_provider.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/lookup/environment_data_provider.rb +0 -35
- data/vendored/puppet/lib/puppet/pops/lookup/explainer.rb +0 -595
- data/vendored/puppet/lib/puppet/pops/lookup/function_provider.rb +0 -110
- data/vendored/puppet/lib/puppet/pops/lookup/global_data_provider.rb +0 -75
- data/vendored/puppet/lib/puppet/pops/lookup/hiera_config.rb +0 -761
- data/vendored/puppet/lib/puppet/pops/lookup/interpolation.rb +0 -154
- data/vendored/puppet/lib/puppet/pops/lookup/invocation.rb +0 -261
- data/vendored/puppet/lib/puppet/pops/lookup/location_resolver.rb +0 -99
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_adapter.rb +0 -520
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key.rb +0 -99
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key_function_provider.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/lookup/module_data_provider.rb +0 -89
- data/vendored/puppet/lib/puppet/pops/lookup/sub_lookup.rb +0 -92
- data/vendored/puppet/lib/puppet/pops/merge_strategy.rb +0 -437
- data/vendored/puppet/lib/puppet/pops/migration/migration_checker.rb +0 -58
- data/vendored/puppet/lib/puppet/pops/model/ast.rb +0 -4964
- data/vendored/puppet/lib/puppet/pops/model/ast_transformer.rb +0 -131
- data/vendored/puppet/lib/puppet/pops/model/factory.rb +0 -1163
- data/vendored/puppet/lib/puppet/pops/model/model_label_provider.rb +0 -139
- data/vendored/puppet/lib/puppet/pops/model/model_tree_dumper.rb +0 -467
- data/vendored/puppet/lib/puppet/pops/model/pn_transformer.rb +0 -400
- data/vendored/puppet/lib/puppet/pops/model/tree_dumper.rb +0 -59
- data/vendored/puppet/lib/puppet/pops/parser/code_merger.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/parser/eparser.rb +0 -3361
- data/vendored/puppet/lib/puppet/pops/parser/epp_parser.rb +0 -51
- data/vendored/puppet/lib/puppet/pops/parser/epp_support.rb +0 -264
- data/vendored/puppet/lib/puppet/pops/parser/evaluating_parser.rb +0 -165
- data/vendored/puppet/lib/puppet/pops/parser/heredoc_support.rb +0 -143
- data/vendored/puppet/lib/puppet/pops/parser/interpolation_support.rb +0 -244
- data/vendored/puppet/lib/puppet/pops/parser/lexer2.rb +0 -772
- data/vendored/puppet/lib/puppet/pops/parser/lexer_support.rb +0 -221
- data/vendored/puppet/lib/puppet/pops/parser/locatable.rb +0 -23
- data/vendored/puppet/lib/puppet/pops/parser/locator.rb +0 -336
- data/vendored/puppet/lib/puppet/pops/parser/parser_support.rb +0 -247
- data/vendored/puppet/lib/puppet/pops/parser/pn_parser.rb +0 -316
- data/vendored/puppet/lib/puppet/pops/parser/slurp_support.rb +0 -117
- data/vendored/puppet/lib/puppet/pops/patterns.rb +0 -60
- data/vendored/puppet/lib/puppet/pops/pcore.rb +0 -135
- data/vendored/puppet/lib/puppet/pops/pn.rb +0 -236
- data/vendored/puppet/lib/puppet/pops/puppet_stack.rb +0 -57
- data/vendored/puppet/lib/puppet/pops/resource/param.rb +0 -55
- data/vendored/puppet/lib/puppet/pops/resource/resource_type_impl.rb +0 -314
- data/vendored/puppet/lib/puppet/pops/semantic_error.rb +0 -29
- data/vendored/puppet/lib/puppet/pops/serialization.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_reader.rb +0 -180
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_writer.rb +0 -222
- data/vendored/puppet/lib/puppet/pops/serialization/deserializer.rb +0 -80
- data/vendored/puppet/lib/puppet/pops/serialization/extension.rb +0 -158
- data/vendored/puppet/lib/puppet/pops/serialization/from_data_converter.rb +0 -224
- data/vendored/puppet/lib/puppet/pops/serialization/instance_reader.rb +0 -19
- data/vendored/puppet/lib/puppet/pops/serialization/instance_writer.rb +0 -14
- data/vendored/puppet/lib/puppet/pops/serialization/json.rb +0 -297
- data/vendored/puppet/lib/puppet/pops/serialization/json_path.rb +0 -127
- data/vendored/puppet/lib/puppet/pops/serialization/object.rb +0 -70
- data/vendored/puppet/lib/puppet/pops/serialization/serializer.rb +0 -140
- data/vendored/puppet/lib/puppet/pops/serialization/time_factory.rb +0 -67
- data/vendored/puppet/lib/puppet/pops/serialization/to_data_converter.rb +0 -313
- data/vendored/puppet/lib/puppet/pops/serialization/to_stringified_converter.rb +0 -226
- data/vendored/puppet/lib/puppet/pops/time/timespan.rb +0 -718
- data/vendored/puppet/lib/puppet/pops/time/timestamp.rb +0 -160
- data/vendored/puppet/lib/puppet/pops/types/annotatable.rb +0 -36
- data/vendored/puppet/lib/puppet/pops/types/annotation.rb +0 -71
- data/vendored/puppet/lib/puppet/pops/types/class_loader.rb +0 -132
- data/vendored/puppet/lib/puppet/pops/types/enumeration.rb +0 -16
- data/vendored/puppet/lib/puppet/pops/types/implementation_registry.rb +0 -134
- data/vendored/puppet/lib/puppet/pops/types/iterable.rb +0 -339
- data/vendored/puppet/lib/puppet/pops/types/p_binary_type.rb +0 -232
- data/vendored/puppet/lib/puppet/pops/types/p_init_type.rb +0 -238
- data/vendored/puppet/lib/puppet/pops/types/p_meta_type.rb +0 -94
- data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +0 -1117
- data/vendored/puppet/lib/puppet/pops/types/p_object_type_extension.rb +0 -218
- data/vendored/puppet/lib/puppet/pops/types/p_runtime_type.rb +0 -115
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_range_type.rb +0 -190
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_type.rb +0 -149
- data/vendored/puppet/lib/puppet/pops/types/p_sensitive_type.rb +0 -73
- data/vendored/puppet/lib/puppet/pops/types/p_timespan_type.rb +0 -192
- data/vendored/puppet/lib/puppet/pops/types/p_timestamp_type.rb +0 -73
- data/vendored/puppet/lib/puppet/pops/types/p_type_set_type.rb +0 -383
- data/vendored/puppet/lib/puppet/pops/types/p_uri_type.rb +0 -190
- data/vendored/puppet/lib/puppet/pops/types/puppet_object.rb +0 -40
- data/vendored/puppet/lib/puppet/pops/types/recursion_guard.rb +0 -136
- data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +0 -472
- data/vendored/puppet/lib/puppet/pops/types/ruby_method.rb +0 -31
- data/vendored/puppet/lib/puppet/pops/types/string_converter.rb +0 -1123
- data/vendored/puppet/lib/puppet/pops/types/tree_iterators.rb +0 -254
- data/vendored/puppet/lib/puppet/pops/types/type_acceptor.rb +0 -25
- data/vendored/puppet/lib/puppet/pops/types/type_asserter.rb +0 -47
- data/vendored/puppet/lib/puppet/pops/types/type_assertion_error.rb +0 -27
- data/vendored/puppet/lib/puppet/pops/types/type_calculator.rb +0 -809
- data/vendored/puppet/lib/puppet/pops/types/type_conversion_error.rb +0 -15
- data/vendored/puppet/lib/puppet/pops/types/type_factory.rb +0 -631
- data/vendored/puppet/lib/puppet/pops/types/type_formatter.rb +0 -802
- data/vendored/puppet/lib/puppet/pops/types/type_mismatch_describer.rb +0 -1075
- data/vendored/puppet/lib/puppet/pops/types/type_parser.rb +0 -685
- data/vendored/puppet/lib/puppet/pops/types/type_set_reference.rb +0 -59
- data/vendored/puppet/lib/puppet/pops/types/type_with_members.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/types/types.rb +0 -3631
- data/vendored/puppet/lib/puppet/pops/utils.rb +0 -119
- data/vendored/puppet/lib/puppet/pops/validation.rb +0 -466
- data/vendored/puppet/lib/puppet/pops/validation/checker4_0.rb +0 -1127
- data/vendored/puppet/lib/puppet/pops/validation/tasks_checker.rb +0 -101
- data/vendored/puppet/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -43
- data/vendored/puppet/lib/puppet/pops/visitable.rb +0 -6
- data/vendored/puppet/lib/puppet/pops/visitor.rb +0 -116
- data/vendored/puppet/lib/puppet/property.rb +0 -608
- data/vendored/puppet/lib/puppet/property/boolean.rb +0 -7
- data/vendored/puppet/lib/puppet/property/ensure.rb +0 -105
- data/vendored/puppet/lib/puppet/property/keyvalue.rb +0 -157
- data/vendored/puppet/lib/puppet/property/list.rb +0 -69
- data/vendored/puppet/lib/puppet/property/ordered_list.rb +0 -29
- data/vendored/puppet/lib/puppet/provider.rb +0 -624
- data/vendored/puppet/lib/puppet/provider/aix_object.rb +0 -483
- data/vendored/puppet/lib/puppet/provider/command.rb +0 -25
- data/vendored/puppet/lib/puppet/provider/confine.rb +0 -6
- data/vendored/puppet/lib/puppet/provider/exec.rb +0 -96
- data/vendored/puppet/lib/puppet/provider/exec/posix.rb +0 -48
- data/vendored/puppet/lib/puppet/provider/exec/shell.rb +0 -25
- data/vendored/puppet/lib/puppet/provider/exec/windows.rb +0 -55
- data/vendored/puppet/lib/puppet/provider/file/posix.rb +0 -136
- data/vendored/puppet/lib/puppet/provider/file/windows.rb +0 -104
- data/vendored/puppet/lib/puppet/provider/group/aix.rb +0 -82
- data/vendored/puppet/lib/puppet/provider/group/directoryservice.rb +0 -22
- data/vendored/puppet/lib/puppet/provider/group/groupadd.rb +0 -111
- data/vendored/puppet/lib/puppet/provider/group/ldap.rb +0 -45
- data/vendored/puppet/lib/puppet/provider/group/pw.rb +0 -49
- data/vendored/puppet/lib/puppet/provider/group/windows_adsi.rb +0 -106
- data/vendored/puppet/lib/puppet/provider/ldap.rb +0 -137
- data/vendored/puppet/lib/puppet/provider/nameservice.rb +0 -325
- data/vendored/puppet/lib/puppet/provider/nameservice/directoryservice.rb +0 -508
- data/vendored/puppet/lib/puppet/provider/nameservice/objectadd.rb +0 -22
- data/vendored/puppet/lib/puppet/provider/nameservice/pw.rb +0 -21
- data/vendored/puppet/lib/puppet/provider/network_device.rb +0 -72
- data/vendored/puppet/lib/puppet/provider/package.rb +0 -56
- data/vendored/puppet/lib/puppet/provider/package/aix.rb +0 -152
- data/vendored/puppet/lib/puppet/provider/package/appdmg.rb +0 -109
- data/vendored/puppet/lib/puppet/provider/package/apple.rb +0 -46
- data/vendored/puppet/lib/puppet/provider/package/apt.rb +0 -116
- data/vendored/puppet/lib/puppet/provider/package/aptitude.rb +0 -29
- data/vendored/puppet/lib/puppet/provider/package/aptrpm.rb +0 -83
- data/vendored/puppet/lib/puppet/provider/package/blastwave.rb +0 -111
- data/vendored/puppet/lib/puppet/provider/package/dnf.rb +0 -47
- data/vendored/puppet/lib/puppet/provider/package/dpkg.rb +0 -165
- data/vendored/puppet/lib/puppet/provider/package/fink.rb +0 -79
- data/vendored/puppet/lib/puppet/provider/package/freebsd.rb +0 -47
- data/vendored/puppet/lib/puppet/provider/package/gem.rb +0 -175
- data/vendored/puppet/lib/puppet/provider/package/hpux.rb +0 -44
- data/vendored/puppet/lib/puppet/provider/package/macports.rb +0 -107
- data/vendored/puppet/lib/puppet/provider/package/nim.rb +0 -282
- data/vendored/puppet/lib/puppet/provider/package/openbsd.rb +0 -242
- data/vendored/puppet/lib/puppet/provider/package/opkg.rb +0 -81
- data/vendored/puppet/lib/puppet/provider/package/pacman.rb +0 -267
- data/vendored/puppet/lib/puppet/provider/package/pip.rb +0 -188
- data/vendored/puppet/lib/puppet/provider/package/pip3.rb +0 -20
- data/vendored/puppet/lib/puppet/provider/package/pkg.rb +0 -255
- data/vendored/puppet/lib/puppet/provider/package/pkgdmg.rb +0 -151
- data/vendored/puppet/lib/puppet/provider/package/pkgin.rb +0 -87
- data/vendored/puppet/lib/puppet/provider/package/pkgng.rb +0 -143
- data/vendored/puppet/lib/puppet/provider/package/pkgutil.rb +0 -186
- data/vendored/puppet/lib/puppet/provider/package/portage.rb +0 -300
- data/vendored/puppet/lib/puppet/provider/package/ports.rb +0 -91
- data/vendored/puppet/lib/puppet/provider/package/portupgrade.rb +0 -239
- data/vendored/puppet/lib/puppet/provider/package/puppet_gem.rb +0 -17
- data/vendored/puppet/lib/puppet/provider/package/rpm.rb +0 -405
- data/vendored/puppet/lib/puppet/provider/package/rug.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/package/sun.rb +0 -133
- data/vendored/puppet/lib/puppet/provider/package/sunfreeware.rb +0 -9
- data/vendored/puppet/lib/puppet/provider/package/tdnf.rb +0 -28
- data/vendored/puppet/lib/puppet/provider/package/up2date.rb +0 -40
- data/vendored/puppet/lib/puppet/provider/package/urpmi.rb +0 -55
- data/vendored/puppet/lib/puppet/provider/package/windows.rb +0 -113
- data/vendored/puppet/lib/puppet/provider/package/windows/exe_package.rb +0 -71
- data/vendored/puppet/lib/puppet/provider/package/windows/msi_package.rb +0 -62
- data/vendored/puppet/lib/puppet/provider/package/windows/package.rb +0 -100
- data/vendored/puppet/lib/puppet/provider/package/yum.rb +0 -293
- data/vendored/puppet/lib/puppet/provider/package/zypper.rb +0 -145
- data/vendored/puppet/lib/puppet/provider/parsedfile.rb +0 -459
- data/vendored/puppet/lib/puppet/provider/service/base.rb +0 -134
- data/vendored/puppet/lib/puppet/provider/service/bsd.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/service/daemontools.rb +0 -194
- data/vendored/puppet/lib/puppet/provider/service/debian.rb +0 -75
- data/vendored/puppet/lib/puppet/provider/service/freebsd.rb +0 -143
- data/vendored/puppet/lib/puppet/provider/service/gentoo.rb +0 -45
- data/vendored/puppet/lib/puppet/provider/service/init.rb +0 -194
- data/vendored/puppet/lib/puppet/provider/service/launchd.rb +0 -345
- data/vendored/puppet/lib/puppet/provider/service/openbsd.rb +0 -100
- data/vendored/puppet/lib/puppet/provider/service/openrc.rb +0 -71
- data/vendored/puppet/lib/puppet/provider/service/openwrt.rb +0 -36
- data/vendored/puppet/lib/puppet/provider/service/rcng.rb +0 -51
- data/vendored/puppet/lib/puppet/provider/service/redhat.rb +0 -72
- data/vendored/puppet/lib/puppet/provider/service/runit.rb +0 -112
- data/vendored/puppet/lib/puppet/provider/service/service.rb +0 -42
- data/vendored/puppet/lib/puppet/provider/service/smf.rb +0 -169
- data/vendored/puppet/lib/puppet/provider/service/src.rb +0 -147
- data/vendored/puppet/lib/puppet/provider/service/systemd.rb +0 -189
- data/vendored/puppet/lib/puppet/provider/service/upstart.rb +0 -369
- data/vendored/puppet/lib/puppet/provider/service/windows.rb +0 -103
- data/vendored/puppet/lib/puppet/provider/user/aix.rb +0 -271
- data/vendored/puppet/lib/puppet/provider/user/directoryservice.rb +0 -632
- data/vendored/puppet/lib/puppet/provider/user/hpux.rb +0 -95
- data/vendored/puppet/lib/puppet/provider/user/ldap.rb +0 -128
- data/vendored/puppet/lib/puppet/provider/user/openbsd.rb +0 -76
- data/vendored/puppet/lib/puppet/provider/user/pw.rb +0 -98
- data/vendored/puppet/lib/puppet/provider/user/user_role_add.rb +0 -233
- data/vendored/puppet/lib/puppet/provider/user/useradd.rb +0 -265
- data/vendored/puppet/lib/puppet/provider/user/windows_adsi.rb +0 -148
- data/vendored/puppet/lib/puppet/reference/configuration.rb +0 -92
- data/vendored/puppet/lib/puppet/reference/function.rb +0 -17
- data/vendored/puppet/lib/puppet/reference/indirection.rb +0 -71
- data/vendored/puppet/lib/puppet/reference/metaparameter.rb +0 -35
- data/vendored/puppet/lib/puppet/reference/providers.rb +0 -118
- data/vendored/puppet/lib/puppet/reference/report.rb +0 -20
- data/vendored/puppet/lib/puppet/reference/type.rb +0 -113
- data/vendored/puppet/lib/puppet/relationship.rb +0 -89
- data/vendored/puppet/lib/puppet/reports.rb +0 -93
- data/vendored/puppet/lib/puppet/reports/http.rb +0 -37
- data/vendored/puppet/lib/puppet/reports/log.rb +0 -14
- data/vendored/puppet/lib/puppet/reports/store.rb +0 -68
- data/vendored/puppet/lib/puppet/resource.rb +0 -687
- data/vendored/puppet/lib/puppet/resource/capability_finder.rb +0 -150
- data/vendored/puppet/lib/puppet/resource/catalog.rb +0 -675
- data/vendored/puppet/lib/puppet/resource/status.rb +0 -229
- data/vendored/puppet/lib/puppet/resource/type.rb +0 -528
- data/vendored/puppet/lib/puppet/resource/type_collection.rb +0 -263
- data/vendored/puppet/lib/puppet/rest/client.rb +0 -83
- data/vendored/puppet/lib/puppet/rest/errors.rb +0 -14
- data/vendored/puppet/lib/puppet/rest/response.rb +0 -34
- data/vendored/puppet/lib/puppet/rest/route.rb +0 -84
- data/vendored/puppet/lib/puppet/rest/routes.rb +0 -154
- data/vendored/puppet/lib/puppet/rest/ssl_context.rb +0 -13
- data/vendored/puppet/lib/puppet/scheduler.rb +0 -16
- data/vendored/puppet/lib/puppet/scheduler/job.rb +0 -53
- data/vendored/puppet/lib/puppet/scheduler/scheduler.rb +0 -44
- data/vendored/puppet/lib/puppet/scheduler/splay_job.rb +0 -32
- data/vendored/puppet/lib/puppet/scheduler/timer.rb +0 -13
- data/vendored/puppet/lib/puppet/settings.rb +0 -1485
- data/vendored/puppet/lib/puppet/settings/array_setting.rb +0 -17
- data/vendored/puppet/lib/puppet/settings/autosign_setting.rb +0 -22
- data/vendored/puppet/lib/puppet/settings/base_setting.rb +0 -197
- data/vendored/puppet/lib/puppet/settings/boolean_setting.rb +0 -32
- data/vendored/puppet/lib/puppet/settings/certificate_revocation_setting.rb +0 -21
- data/vendored/puppet/lib/puppet/settings/config_file.rb +0 -152
- data/vendored/puppet/lib/puppet/settings/directory_setting.rb +0 -18
- data/vendored/puppet/lib/puppet/settings/duration_setting.rb +0 -32
- data/vendored/puppet/lib/puppet/settings/enum_setting.rb +0 -16
- data/vendored/puppet/lib/puppet/settings/environment_conf.rb +0 -222
- data/vendored/puppet/lib/puppet/settings/errors.rb +0 -11
- data/vendored/puppet/lib/puppet/settings/file_or_directory_setting.rb +0 -40
- data/vendored/puppet/lib/puppet/settings/file_setting.rb +0 -245
- data/vendored/puppet/lib/puppet/settings/ini_file.rb +0 -225
- data/vendored/puppet/lib/puppet/settings/path_setting.rb +0 -8
- data/vendored/puppet/lib/puppet/settings/priority_setting.rb +0 -42
- data/vendored/puppet/lib/puppet/settings/server_list_setting.rb +0 -20
- data/vendored/puppet/lib/puppet/settings/string_setting.rb +0 -9
- data/vendored/puppet/lib/puppet/settings/symbolic_enum_setting.rb +0 -17
- data/vendored/puppet/lib/puppet/settings/terminus_setting.rb +0 -14
- data/vendored/puppet/lib/puppet/settings/ttl_setting.rb +0 -51
- data/vendored/puppet/lib/puppet/settings/value_translator.rb +0 -15
- data/vendored/puppet/lib/puppet/ssl.rb +0 -12
- data/vendored/puppet/lib/puppet/ssl/base.rb +0 -150
- data/vendored/puppet/lib/puppet/ssl/certificate.rb +0 -99
- data/vendored/puppet/lib/puppet/ssl/certificate_request.rb +0 -325
- data/vendored/puppet/lib/puppet/ssl/certificate_request_attributes.rb +0 -37
- data/vendored/puppet/lib/puppet/ssl/certificate_signer.rb +0 -33
- data/vendored/puppet/lib/puppet/ssl/digest.rb +0 -20
- data/vendored/puppet/lib/puppet/ssl/host.rb +0 -626
- data/vendored/puppet/lib/puppet/ssl/key.rb +0 -59
- data/vendored/puppet/lib/puppet/ssl/oids.rb +0 -193
- data/vendored/puppet/lib/puppet/ssl/validator.rb +0 -60
- data/vendored/puppet/lib/puppet/ssl/validator/default_validator.rb +0 -187
- data/vendored/puppet/lib/puppet/ssl/validator/no_validator.rb +0 -20
- data/vendored/puppet/lib/puppet/status.rb +0 -40
- data/vendored/puppet/lib/puppet/syntax_checkers.rb +0 -3
- data/vendored/puppet/lib/puppet/syntax_checkers/base64.rb +0 -40
- data/vendored/puppet/lib/puppet/syntax_checkers/json.rb +0 -35
- data/vendored/puppet/lib/puppet/test/test_helper.rb +0 -251
- data/vendored/puppet/lib/puppet/transaction.rb +0 -444
- data/vendored/puppet/lib/puppet/transaction/additional_resource_generator.rb +0 -220
- data/vendored/puppet/lib/puppet/transaction/event.rb +0 -167
- data/vendored/puppet/lib/puppet/transaction/event_manager.rb +0 -169
- data/vendored/puppet/lib/puppet/transaction/persistence.rb +0 -99
- data/vendored/puppet/lib/puppet/transaction/report.rb +0 -471
- data/vendored/puppet/lib/puppet/transaction/resource_harness.rb +0 -318
- data/vendored/puppet/lib/puppet/type.rb +0 -2673
- data/vendored/puppet/lib/puppet/type/component.rb +0 -88
- data/vendored/puppet/lib/puppet/type/exec.rb +0 -625
- data/vendored/puppet/lib/puppet/type/file.rb +0 -1042
- data/vendored/puppet/lib/puppet/type/file/checksum.rb +0 -50
- data/vendored/puppet/lib/puppet/type/file/checksum_value.rb +0 -54
- data/vendored/puppet/lib/puppet/type/file/content.rb +0 -172
- data/vendored/puppet/lib/puppet/type/file/ctime.rb +0 -20
- data/vendored/puppet/lib/puppet/type/file/data_sync.rb +0 -93
- data/vendored/puppet/lib/puppet/type/file/ensure.rb +0 -192
- data/vendored/puppet/lib/puppet/type/file/group.rb +0 -41
- data/vendored/puppet/lib/puppet/type/file/mode.rb +0 -177
- data/vendored/puppet/lib/puppet/type/file/mtime.rb +0 -18
- data/vendored/puppet/lib/puppet/type/file/owner.rb +0 -44
- data/vendored/puppet/lib/puppet/type/file/selcontext.rb +0 -141
- data/vendored/puppet/lib/puppet/type/file/source.rb +0 -369
- data/vendored/puppet/lib/puppet/type/file/target.rb +0 -87
- data/vendored/puppet/lib/puppet/type/file/type.rb +0 -19
- data/vendored/puppet/lib/puppet/type/filebucket.rb +0 -117
- data/vendored/puppet/lib/puppet/type/group.rb +0 -207
- data/vendored/puppet/lib/puppet/type/notify.rb +0 -46
- data/vendored/puppet/lib/puppet/type/package.rb +0 -568
- data/vendored/puppet/lib/puppet/type/resources.rb +0 -180
- data/vendored/puppet/lib/puppet/type/schedule.rb +0 -430
- data/vendored/puppet/lib/puppet/type/service.rb +0 -255
- data/vendored/puppet/lib/puppet/type/stage.rb +0 -27
- data/vendored/puppet/lib/puppet/type/tidy.rb +0 -349
- data/vendored/puppet/lib/puppet/type/user.rb +0 -818
- data/vendored/puppet/lib/puppet/type/whit.rb +0 -34
- data/vendored/puppet/lib/puppet/util.rb +0 -705
- data/vendored/puppet/lib/puppet/util/at_fork.rb +0 -35
- data/vendored/puppet/lib/puppet/util/at_fork/noop.rb +0 -18
- data/vendored/puppet/lib/puppet/util/at_fork/solaris.rb +0 -160
- data/vendored/puppet/lib/puppet/util/autoload.rb +0 -234
- data/vendored/puppet/lib/puppet/util/backups.rb +0 -86
- data/vendored/puppet/lib/puppet/util/character_encoding.rb +0 -76
- data/vendored/puppet/lib/puppet/util/checksums.rb +0 -361
- data/vendored/puppet/lib/puppet/util/classgen.rb +0 -222
- data/vendored/puppet/lib/puppet/util/colors.rb +0 -100
- data/vendored/puppet/lib/puppet/util/command_line.rb +0 -189
- data/vendored/puppet/lib/puppet/util/command_line/puppet_option_parser.rb +0 -87
- data/vendored/puppet/lib/puppet/util/command_line/trollop.rb +0 -825
- data/vendored/puppet/lib/puppet/util/connection.rb +0 -74
- data/vendored/puppet/lib/puppet/util/constant_inflector.rb +0 -24
- data/vendored/puppet/lib/puppet/util/diff.rb +0 -79
- data/vendored/puppet/lib/puppet/util/docs.rb +0 -128
- data/vendored/puppet/lib/puppet/util/errors.rb +0 -159
- data/vendored/puppet/lib/puppet/util/execution.rb +0 -412
- data/vendored/puppet/lib/puppet/util/execution_stub.rb +0 -26
- data/vendored/puppet/lib/puppet/util/feature.rb +0 -117
- data/vendored/puppet/lib/puppet/util/file_watcher.rb +0 -28
- data/vendored/puppet/lib/puppet/util/fileparsing.rb +0 -397
- data/vendored/puppet/lib/puppet/util/filetype.rb +0 -309
- data/vendored/puppet/lib/puppet/util/http_proxy.rb +0 -207
- data/vendored/puppet/lib/puppet/util/inifile.rb +0 -340
- data/vendored/puppet/lib/puppet/util/instance_loader.rb +0 -61
- data/vendored/puppet/lib/puppet/util/json.rb +0 -69
- data/vendored/puppet/lib/puppet/util/json_lockfile.rb +0 -44
- data/vendored/puppet/lib/puppet/util/ldap.rb +0 -2
- data/vendored/puppet/lib/puppet/util/ldap/connection.rb +0 -71
- data/vendored/puppet/lib/puppet/util/ldap/generator.rb +0 -42
- data/vendored/puppet/lib/puppet/util/ldap/manager.rb +0 -281
- data/vendored/puppet/lib/puppet/util/libuser.rb +0 -12
- data/vendored/puppet/lib/puppet/util/limits.rb +0 -12
- data/vendored/puppet/lib/puppet/util/lockfile.rb +0 -66
- data/vendored/puppet/lib/puppet/util/log.rb +0 -415
- data/vendored/puppet/lib/puppet/util/log/destination.rb +0 -49
- data/vendored/puppet/lib/puppet/util/log/destinations.rb +0 -258
- data/vendored/puppet/lib/puppet/util/logging.rb +0 -311
- data/vendored/puppet/lib/puppet/util/metaid.rb +0 -21
- data/vendored/puppet/lib/puppet/util/metric.rb +0 -64
- data/vendored/puppet/lib/puppet/util/monkey_patches.rb +0 -108
- data/vendored/puppet/lib/puppet/util/multi_match.rb +0 -51
- data/vendored/puppet/lib/puppet/util/network_device.rb +0 -17
- data/vendored/puppet/lib/puppet/util/network_device/base.rb +0 -23
- data/vendored/puppet/lib/puppet/util/network_device/config.rb +0 -105
- data/vendored/puppet/lib/puppet/util/network_device/transport.rb +0 -5
- data/vendored/puppet/lib/puppet/util/network_device/transport/base.rb +0 -26
- data/vendored/puppet/lib/puppet/util/package.rb +0 -31
- data/vendored/puppet/lib/puppet/util/pidlock.rb +0 -62
- data/vendored/puppet/lib/puppet/util/platform.rb +0 -38
- data/vendored/puppet/lib/puppet/util/plist.rb +0 -155
- data/vendored/puppet/lib/puppet/util/posix.rb +0 -137
- data/vendored/puppet/lib/puppet/util/profiler.rb +0 -53
- data/vendored/puppet/lib/puppet/util/profiler/aggregate.rb +0 -85
- data/vendored/puppet/lib/puppet/util/profiler/around_profiler.rb +0 -67
- data/vendored/puppet/lib/puppet/util/profiler/logging.rb +0 -48
- data/vendored/puppet/lib/puppet/util/profiler/object_counts.rb +0 -17
- data/vendored/puppet/lib/puppet/util/profiler/wall_clock.rb +0 -35
- data/vendored/puppet/lib/puppet/util/provider_features.rb +0 -181
- data/vendored/puppet/lib/puppet/util/psych_support.rb +0 -30
- data/vendored/puppet/lib/puppet/util/rdoc.rb +0 -60
- data/vendored/puppet/lib/puppet/util/rdoc/code_objects.rb +0 -294
- data/vendored/puppet/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -910
- data/vendored/puppet/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +0 -1085
- data/vendored/puppet/lib/puppet/util/rdoc/parser.rb +0 -12
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +0 -259
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +0 -14
- data/vendored/puppet/lib/puppet/util/reference.rb +0 -119
- data/vendored/puppet/lib/puppet/util/resource_template.rb +0 -61
- data/vendored/puppet/lib/puppet/util/retry_action.rb +0 -46
- data/vendored/puppet/lib/puppet/util/rubygems.rb +0 -63
- data/vendored/puppet/lib/puppet/util/run_mode.rb +0 -110
- data/vendored/puppet/lib/puppet/util/selinux.rb +0 -264
- data/vendored/puppet/lib/puppet/util/skip_tags.rb +0 -9
- data/vendored/puppet/lib/puppet/util/splayer.rb +0 -18
- data/vendored/puppet/lib/puppet/util/ssl.rb +0 -92
- data/vendored/puppet/lib/puppet/util/storage.rb +0 -89
- data/vendored/puppet/lib/puppet/util/suidmanager.rb +0 -167
- data/vendored/puppet/lib/puppet/util/symbolic_file_mode.rb +0 -144
- data/vendored/puppet/lib/puppet/util/tag_set.rb +0 -27
- data/vendored/puppet/lib/puppet/util/tagging.rb +0 -131
- data/vendored/puppet/lib/puppet/util/terminal.rb +0 -16
- data/vendored/puppet/lib/puppet/util/user_attr.rb +0 -21
- data/vendored/puppet/lib/puppet/util/warnings.rb +0 -31
- data/vendored/puppet/lib/puppet/util/watched_file.rb +0 -37
- data/vendored/puppet/lib/puppet/util/watcher.rb +0 -17
- data/vendored/puppet/lib/puppet/util/watcher/change_watcher.rb +0 -33
- data/vendored/puppet/lib/puppet/util/watcher/periodic_watcher.rb +0 -37
- data/vendored/puppet/lib/puppet/util/watcher/timer.rb +0 -19
- data/vendored/puppet/lib/puppet/util/windows.rb +0 -52
- data/vendored/puppet/lib/puppet/util/windows/access_control_entry.rb +0 -84
- data/vendored/puppet/lib/puppet/util/windows/access_control_list.rb +0 -113
- data/vendored/puppet/lib/puppet/util/windows/adsi.rb +0 -494
- data/vendored/puppet/lib/puppet/util/windows/api_types.rb +0 -282
- data/vendored/puppet/lib/puppet/util/windows/com.rb +0 -225
- data/vendored/puppet/lib/puppet/util/windows/error.rb +0 -83
- data/vendored/puppet/lib/puppet/util/windows/eventlog.rb +0 -197
- data/vendored/puppet/lib/puppet/util/windows/file.rb +0 -589
- data/vendored/puppet/lib/puppet/util/windows/principal.rb +0 -192
- data/vendored/puppet/lib/puppet/util/windows/process.rb +0 -497
- data/vendored/puppet/lib/puppet/util/windows/registry.rb +0 -374
- data/vendored/puppet/lib/puppet/util/windows/root_certs.rb +0 -108
- data/vendored/puppet/lib/puppet/util/windows/security.rb +0 -869
- data/vendored/puppet/lib/puppet/util/windows/security_descriptor.rb +0 -62
- data/vendored/puppet/lib/puppet/util/windows/service.rb +0 -770
- data/vendored/puppet/lib/puppet/util/windows/sid.rb +0 -282
- data/vendored/puppet/lib/puppet/util/windows/string.rb +0 -16
- data/vendored/puppet/lib/puppet/util/windows/user.rb +0 -309
- data/vendored/puppet/lib/puppet/util/yaml.rb +0 -72
- data/vendored/puppet/lib/puppet/vendor.rb +0 -57
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +0 -2
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +0 -210
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +0 -28
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +0 -27
- data/vendored/puppet/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +0 -608
- data/vendored/puppet/lib/puppet/vendor/load_deep_merge.rb +0 -1
- data/vendored/puppet/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/vendored/puppet/lib/puppet/vendor/require_vendored.rb +0 -6
- data/vendored/puppet/lib/puppet/version.rb +0 -93
- data/vendored/puppet/lib/puppet_pal.rb +0 -1135
- data/vendored/puppet/lib/puppet_x.rb +0 -14
- data/vendored/require_vendored.rb +0 -3
@@ -1,238 +0,0 @@
|
|
1
|
-
module Puppet::Pops
|
2
|
-
module Types
|
3
|
-
|
4
|
-
# @api public
|
5
|
-
class PInitType < PTypeWithContainedType
|
6
|
-
def self.register_ptype(loader, ir)
|
7
|
-
create_ptype(loader, ir, 'AnyType',
|
8
|
-
'type' => {
|
9
|
-
KEY_TYPE => POptionalType.new(PTypeType::DEFAULT),
|
10
|
-
KEY_VALUE => nil
|
11
|
-
},
|
12
|
-
'init_args' => {
|
13
|
-
KEY_TYPE => PArrayType::DEFAULT,
|
14
|
-
KEY_VALUE => EMPTY_ARRAY
|
15
|
-
}
|
16
|
-
)
|
17
|
-
end
|
18
|
-
|
19
|
-
attr_reader :init_args
|
20
|
-
|
21
|
-
def initialize(type, init_args)
|
22
|
-
super(type)
|
23
|
-
@init_args = init_args.nil? ? EMPTY_ARRAY : init_args
|
24
|
-
|
25
|
-
if type.nil?
|
26
|
-
raise ArgumentError, _('Init cannot be parameterized with an undefined type and additional arguments') unless @init_args.empty?
|
27
|
-
@initialized = true
|
28
|
-
else
|
29
|
-
@initialized = false
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def instance?(o, guard = nil)
|
34
|
-
really_instance?(o, guard) == 1
|
35
|
-
end
|
36
|
-
|
37
|
-
# @api private
|
38
|
-
def really_instance?(o, guard = nil)
|
39
|
-
if @type.nil?
|
40
|
-
TypeFactory.rich_data.really_instance?(o)
|
41
|
-
else
|
42
|
-
assert_initialized
|
43
|
-
guarded_recursion(guard, 0) do |g|
|
44
|
-
v = @type.really_instance?(o, g)
|
45
|
-
if v < 1
|
46
|
-
if @single_type
|
47
|
-
s = @single_type.really_instance?(o, g)
|
48
|
-
v = s if s > v
|
49
|
-
end
|
50
|
-
end
|
51
|
-
if v < 1
|
52
|
-
if @other_type
|
53
|
-
s = @other_type.really_instance?(o, g)
|
54
|
-
s = @other_type.really_instance?([o], g) if s < 0 && @has_optional_single
|
55
|
-
v = s if s > v
|
56
|
-
end
|
57
|
-
end
|
58
|
-
v
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def eql?(o)
|
64
|
-
super && @init_args == o.init_args
|
65
|
-
end
|
66
|
-
|
67
|
-
def hash
|
68
|
-
super ^ @init_args.hash
|
69
|
-
end
|
70
|
-
|
71
|
-
def new_function
|
72
|
-
return super if type.nil?
|
73
|
-
assert_initialized
|
74
|
-
|
75
|
-
target_type = type
|
76
|
-
single_type = @single_type
|
77
|
-
if @init_args.empty?
|
78
|
-
@new_function ||= Puppet::Functions.create_function(:new_Init, Puppet::Functions::InternalFunction) do
|
79
|
-
@target_type = target_type
|
80
|
-
@single_type = single_type
|
81
|
-
|
82
|
-
dispatch :from_array do
|
83
|
-
scope_param
|
84
|
-
param 'Array', :value
|
85
|
-
end
|
86
|
-
|
87
|
-
dispatch :create do
|
88
|
-
scope_param
|
89
|
-
param 'Any', :value
|
90
|
-
end
|
91
|
-
|
92
|
-
def self.create(scope, value, func)
|
93
|
-
func.call(scope, @target_type, value)
|
94
|
-
end
|
95
|
-
|
96
|
-
def self.from_array(scope, value, func)
|
97
|
-
# If there is a single argument that matches the array, then that gets priority over
|
98
|
-
# expanding the array into all arguments
|
99
|
-
if @single_type.instance?(value) || (@other_type && !@other_type.instance?(value) && @has_optional_single && @other_type.instance?([value]))
|
100
|
-
func.call(scope, @target_type, value)
|
101
|
-
else
|
102
|
-
func.call(scope, @target_type, *value)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
def from_array(scope, value)
|
107
|
-
self.class.from_array(scope, value, loader.load(:function, 'new'))
|
108
|
-
end
|
109
|
-
|
110
|
-
def create(scope, value)
|
111
|
-
self.class.create(scope, value, loader.load(:function, 'new'))
|
112
|
-
end
|
113
|
-
end
|
114
|
-
else
|
115
|
-
init_args = @init_args
|
116
|
-
@new_function ||= Puppet::Functions.create_function(:new_Init, Puppet::Functions::InternalFunction) do
|
117
|
-
@target_type = target_type
|
118
|
-
@init_args = init_args
|
119
|
-
|
120
|
-
dispatch :create do
|
121
|
-
scope_param
|
122
|
-
param 'Any', :value
|
123
|
-
end
|
124
|
-
|
125
|
-
def self.create(scope, value, func)
|
126
|
-
func.call(scope, @target_type, value, *@init_args)
|
127
|
-
end
|
128
|
-
|
129
|
-
def create(scope, value)
|
130
|
-
self.class.create(scope, value, loader.load(:function, 'new'))
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
DEFAULT = PInitType.new(nil, EMPTY_ARRAY)
|
137
|
-
|
138
|
-
EXACTLY_ONE = [1, 1].freeze
|
139
|
-
|
140
|
-
def assert_initialized
|
141
|
-
return self if @initialized
|
142
|
-
|
143
|
-
@initialized = true
|
144
|
-
@self_recursion = true
|
145
|
-
|
146
|
-
begin
|
147
|
-
# Filter out types that will provide a new_function but are unsuitable to be contained in Init
|
148
|
-
#
|
149
|
-
# Calling Init#new would cause endless recursion
|
150
|
-
# The Optional is the same as Variant[T,Undef].
|
151
|
-
# The NotUndef is not meaningful to create instances of
|
152
|
-
if @type.instance_of?(PInitType) || @type.instance_of?(POptionalType) || @type.instance_of?(PNotUndefType)
|
153
|
-
raise ArgumentError.new
|
154
|
-
end
|
155
|
-
new_func = @type.new_function
|
156
|
-
rescue ArgumentError
|
157
|
-
raise ArgumentError, _("Creation of new instance of type '%{type_name}' is not supported") % { type_name: @type.to_s }
|
158
|
-
end
|
159
|
-
param_tuples = new_func.dispatcher.signatures.map { |closure| closure.type.param_types }
|
160
|
-
|
161
|
-
# An instance of the contained type is always a match to this type.
|
162
|
-
single_types = [@type]
|
163
|
-
|
164
|
-
if @init_args.empty?
|
165
|
-
# A value that is assignable to the type of a single parameter is also a match
|
166
|
-
single_tuples, other_tuples = param_tuples.partition { |tuple| EXACTLY_ONE == tuple.size_range }
|
167
|
-
single_types.concat(single_tuples.map { |tuple| tuple.types[0] })
|
168
|
-
else
|
169
|
-
tc = TypeCalculator.singleton
|
170
|
-
init_arg_types = @init_args.map { |arg| tc.infer_set(arg) }
|
171
|
-
arg_count = 1 + init_arg_types.size
|
172
|
-
|
173
|
-
# disqualify all parameter tuples that doesn't allow one value (type unknown at ths stage) + init args.
|
174
|
-
param_tuples = param_tuples.select do |tuple|
|
175
|
-
min, max = tuple.size_range
|
176
|
-
if arg_count >= min && arg_count <= max
|
177
|
-
# Aside from the first parameter, does the other parameters match?
|
178
|
-
tuple.assignable?(PTupleType.new(tuple.types[0..0].concat(init_arg_types)))
|
179
|
-
else
|
180
|
-
false
|
181
|
-
end
|
182
|
-
end
|
183
|
-
if param_tuples.empty?
|
184
|
-
raise ArgumentError, _("The type '%{type}' does not represent a valid set of parameters for %{subject}.new()") %
|
185
|
-
{ type: to_s, subject: @type.generalize.name }
|
186
|
-
end
|
187
|
-
single_types.concat(param_tuples.map { |tuple| tuple.types[0] })
|
188
|
-
other_tuples = EMPTY_ARRAY
|
189
|
-
end
|
190
|
-
@single_type = PVariantType.maybe_create(single_types)
|
191
|
-
unless other_tuples.empty?
|
192
|
-
@other_type = PVariantType.maybe_create(other_tuples)
|
193
|
-
@has_optional_single = other_tuples.any? { |tuple| tuple.size_range.min == 1 }
|
194
|
-
end
|
195
|
-
|
196
|
-
guard = RecursionGuard.new
|
197
|
-
accept(NoopTypeAcceptor::INSTANCE, guard)
|
198
|
-
@self_recursion = guard.recursive_this?(self)
|
199
|
-
end
|
200
|
-
|
201
|
-
def accept(visitor, guard)
|
202
|
-
guarded_recursion(guard, nil) do |g|
|
203
|
-
super(visitor, g)
|
204
|
-
@single_type.accept(visitor, guard) if @single_type
|
205
|
-
@other_type.accept(visitor, guard) if @other_type
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
|
-
protected
|
210
|
-
|
211
|
-
def _assignable?(o, guard)
|
212
|
-
guarded_recursion(guard, false) do |g|
|
213
|
-
assert_initialized
|
214
|
-
if o.is_a?(PInitType)
|
215
|
-
@type.nil? || @type.assignable?(o.type, g)
|
216
|
-
elsif @type.nil?
|
217
|
-
TypeFactory.rich_data.assignable?(o, g)
|
218
|
-
else
|
219
|
-
@type.assignable?(o, g) ||
|
220
|
-
@single_type && @single_type.assignable?(o, g) ||
|
221
|
-
@other_type && (@other_type.assignable?(o, g) || @has_optional_single && @other_type.assignable?(PTupleType.new([o])))
|
222
|
-
end
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
|
-
private
|
227
|
-
|
228
|
-
def guarded_recursion(guard, dflt)
|
229
|
-
if @self_recursion
|
230
|
-
guard ||= RecursionGuard.new
|
231
|
-
guard.with_this(self) { |state| (state & RecursionGuard::SELF_RECURSION_IN_THIS) == 0 ? yield(guard) : dflt }
|
232
|
-
else
|
233
|
-
yield(guard)
|
234
|
-
end
|
235
|
-
end
|
236
|
-
end
|
237
|
-
end
|
238
|
-
end
|
@@ -1,94 +0,0 @@
|
|
1
|
-
# @abstract base class for PObjectType and other types that implements lazy evaluation of content
|
2
|
-
# @api private
|
3
|
-
module Puppet::Pops
|
4
|
-
module Types
|
5
|
-
|
6
|
-
KEY_NAME = 'name'.freeze
|
7
|
-
KEY_TYPE = 'type'.freeze
|
8
|
-
KEY_VALUE = 'value'.freeze
|
9
|
-
|
10
|
-
class PMetaType < PAnyType
|
11
|
-
include Annotatable
|
12
|
-
|
13
|
-
attr_reader :loader
|
14
|
-
|
15
|
-
def self.register_ptype(loader, ir)
|
16
|
-
# Abstract type. It doesn't register anything
|
17
|
-
end
|
18
|
-
|
19
|
-
def accept(visitor, guard)
|
20
|
-
annotatable_accept(visitor, guard)
|
21
|
-
super
|
22
|
-
end
|
23
|
-
|
24
|
-
def instance?(o, guard = nil)
|
25
|
-
assignable?(TypeCalculator.infer(o), guard)
|
26
|
-
end
|
27
|
-
|
28
|
-
# Called from the TypeParser once it has found a type using the Loader. The TypeParser will
|
29
|
-
# interpret the contained expression and the resolved type is remembered. This method also
|
30
|
-
# checks and remembers if the resolve type contains self recursion.
|
31
|
-
#
|
32
|
-
# @param type_parser [TypeParser] type parser that will interpret the type expression
|
33
|
-
# @param loader [Loader::Loader] loader to use when loading type aliases
|
34
|
-
# @return [PTypeAliasType] the receiver of the call, i.e. `self`
|
35
|
-
# @api private
|
36
|
-
def resolve(loader)
|
37
|
-
unless @init_hash_expression.nil?
|
38
|
-
@loader = loader
|
39
|
-
@self_recursion = true # assumed while it being found out below
|
40
|
-
|
41
|
-
init_hash_expression = @init_hash_expression
|
42
|
-
@init_hash_expression = nil
|
43
|
-
if init_hash_expression.is_a?(Model::LiteralHash)
|
44
|
-
init_hash = resolve_literal_hash(loader, init_hash_expression)
|
45
|
-
else
|
46
|
-
init_hash = resolve_hash(loader, init_hash_expression)
|
47
|
-
end
|
48
|
-
_pcore_init_from_hash(init_hash)
|
49
|
-
|
50
|
-
# Find out if this type is recursive. A recursive type has performance implications
|
51
|
-
# on several methods and this knowledge is used to avoid that for non-recursive
|
52
|
-
# types.
|
53
|
-
guard = RecursionGuard.new
|
54
|
-
accept(NoopTypeAcceptor::INSTANCE, guard)
|
55
|
-
@self_recursion = guard.recursive_this?(self)
|
56
|
-
end
|
57
|
-
self
|
58
|
-
end
|
59
|
-
|
60
|
-
def resolve_literal_hash(loader, init_hash_expression)
|
61
|
-
TypeParser.singleton.interpret_LiteralHash(init_hash_expression, loader)
|
62
|
-
end
|
63
|
-
|
64
|
-
def resolve_hash(loader, init_hash)
|
65
|
-
resolve_type_refs(loader, init_hash)
|
66
|
-
end
|
67
|
-
|
68
|
-
def resolve_type_refs(loader, o)
|
69
|
-
case o
|
70
|
-
when Hash
|
71
|
-
Hash[o.map { |k, v| [resolve_type_refs(loader, k), resolve_type_refs(loader, v)] }]
|
72
|
-
when Array
|
73
|
-
o.map { |e| resolve_type_refs(loader, e) }
|
74
|
-
when PAnyType
|
75
|
-
o.resolve(loader)
|
76
|
-
else
|
77
|
-
o
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def resolved?
|
82
|
-
@init_hash_expression.nil?
|
83
|
-
end
|
84
|
-
|
85
|
-
# Returns the expanded string the form of the alias, e.g. <alias name> = <resolved type>
|
86
|
-
#
|
87
|
-
# @return [String] the expanded form of this alias
|
88
|
-
# @api public
|
89
|
-
def to_s
|
90
|
-
TypeFormatter.singleton.alias_expanded_string(self)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
@@ -1,1117 +0,0 @@
|
|
1
|
-
require_relative 'ruby_generator'
|
2
|
-
require_relative 'type_with_members'
|
3
|
-
|
4
|
-
module Puppet::Pops
|
5
|
-
module Types
|
6
|
-
|
7
|
-
KEY_ATTRIBUTES = 'attributes'.freeze
|
8
|
-
KEY_CHECKS = 'checks'.freeze
|
9
|
-
KEY_CONSTANTS = 'constants'.freeze
|
10
|
-
KEY_EQUALITY = 'equality'.freeze
|
11
|
-
KEY_EQUALITY_INCLUDE_TYPE = 'equality_include_type'.freeze
|
12
|
-
KEY_FINAL = 'final'.freeze
|
13
|
-
KEY_FUNCTIONS = 'functions'.freeze
|
14
|
-
KEY_KIND = 'kind'.freeze
|
15
|
-
KEY_OVERRIDE = 'override'.freeze
|
16
|
-
KEY_PARENT = 'parent'.freeze
|
17
|
-
KEY_TYPE_PARAMETERS = 'type_parameters'.freeze
|
18
|
-
|
19
|
-
# @api public
|
20
|
-
class PObjectType < PMetaType
|
21
|
-
include TypeWithMembers
|
22
|
-
|
23
|
-
ATTRIBUTE_KIND_CONSTANT = 'constant'.freeze
|
24
|
-
ATTRIBUTE_KIND_DERIVED = 'derived'.freeze
|
25
|
-
ATTRIBUTE_KIND_GIVEN_OR_DERIVED = 'given_or_derived'.freeze
|
26
|
-
ATTRIBUTE_KIND_REFERENCE = 'reference'.freeze
|
27
|
-
TYPE_ATTRIBUTE_KIND = TypeFactory.enum(ATTRIBUTE_KIND_CONSTANT, ATTRIBUTE_KIND_DERIVED, ATTRIBUTE_KIND_GIVEN_OR_DERIVED, ATTRIBUTE_KIND_REFERENCE)
|
28
|
-
|
29
|
-
TYPE_OBJECT_NAME = Pcore::TYPE_QUALIFIED_REFERENCE
|
30
|
-
|
31
|
-
TYPE_ATTRIBUTE = TypeFactory.struct({
|
32
|
-
KEY_TYPE => PTypeType::DEFAULT,
|
33
|
-
TypeFactory.optional(KEY_FINAL) => PBooleanType::DEFAULT,
|
34
|
-
TypeFactory.optional(KEY_OVERRIDE) => PBooleanType::DEFAULT,
|
35
|
-
TypeFactory.optional(KEY_KIND) => TYPE_ATTRIBUTE_KIND,
|
36
|
-
KEY_VALUE => PAnyType::DEFAULT,
|
37
|
-
TypeFactory.optional(KEY_ANNOTATIONS) => TYPE_ANNOTATIONS
|
38
|
-
})
|
39
|
-
|
40
|
-
TYPE_PARAMETER = TypeFactory.struct({
|
41
|
-
KEY_TYPE => PTypeType::DEFAULT,
|
42
|
-
TypeFactory.optional(KEY_ANNOTATIONS) => TYPE_ANNOTATIONS
|
43
|
-
})
|
44
|
-
|
45
|
-
TYPE_CONSTANTS = TypeFactory.hash_kv(Pcore::TYPE_MEMBER_NAME, PAnyType::DEFAULT)
|
46
|
-
TYPE_ATTRIBUTES = TypeFactory.hash_kv(Pcore::TYPE_MEMBER_NAME, TypeFactory.not_undef)
|
47
|
-
TYPE_PARAMETERS = TypeFactory.hash_kv(Pcore::TYPE_MEMBER_NAME, TypeFactory.not_undef)
|
48
|
-
TYPE_ATTRIBUTE_CALLABLE = TypeFactory.callable(0,0)
|
49
|
-
|
50
|
-
TYPE_FUNCTION_TYPE = PTypeType.new(PCallableType::DEFAULT)
|
51
|
-
|
52
|
-
TYPE_FUNCTION = TypeFactory.struct({
|
53
|
-
KEY_TYPE => TYPE_FUNCTION_TYPE,
|
54
|
-
TypeFactory.optional(KEY_FINAL) => PBooleanType::DEFAULT,
|
55
|
-
TypeFactory.optional(KEY_OVERRIDE) => PBooleanType::DEFAULT,
|
56
|
-
TypeFactory.optional(KEY_ANNOTATIONS) => TYPE_ANNOTATIONS
|
57
|
-
})
|
58
|
-
TYPE_FUNCTIONS = TypeFactory.hash_kv(PVariantType.new([Pcore::TYPE_MEMBER_NAME, PStringType.new('[]')]), TypeFactory.not_undef)
|
59
|
-
|
60
|
-
TYPE_EQUALITY = TypeFactory.variant(Pcore::TYPE_MEMBER_NAME, TypeFactory.array_of(Pcore::TYPE_MEMBER_NAME))
|
61
|
-
|
62
|
-
TYPE_CHECKS = PAnyType::DEFAULT # TBD
|
63
|
-
|
64
|
-
TYPE_OBJECT_I12N = TypeFactory.struct({
|
65
|
-
TypeFactory.optional(KEY_NAME) => TYPE_OBJECT_NAME,
|
66
|
-
TypeFactory.optional(KEY_PARENT) => PTypeType::DEFAULT,
|
67
|
-
TypeFactory.optional(KEY_TYPE_PARAMETERS) => TYPE_PARAMETERS,
|
68
|
-
TypeFactory.optional(KEY_ATTRIBUTES) => TYPE_ATTRIBUTES,
|
69
|
-
TypeFactory.optional(KEY_CONSTANTS) => TYPE_CONSTANTS,
|
70
|
-
TypeFactory.optional(KEY_FUNCTIONS) => TYPE_FUNCTIONS,
|
71
|
-
TypeFactory.optional(KEY_EQUALITY) => TYPE_EQUALITY,
|
72
|
-
TypeFactory.optional(KEY_EQUALITY_INCLUDE_TYPE) => PBooleanType::DEFAULT,
|
73
|
-
TypeFactory.optional(KEY_CHECKS) => TYPE_CHECKS,
|
74
|
-
TypeFactory.optional(KEY_ANNOTATIONS) => TYPE_ANNOTATIONS
|
75
|
-
})
|
76
|
-
|
77
|
-
def self.register_ptype(loader, ir)
|
78
|
-
type = create_ptype(loader, ir, 'AnyType', '_pcore_init_hash' => TYPE_OBJECT_I12N)
|
79
|
-
|
80
|
-
# Now, when the Object type exists, add annotations with keys derived from Annotation and freeze the types.
|
81
|
-
annotations = TypeFactory.optional(PHashType.new(PTypeType.new(Annotation._pcore_type), TypeFactory.hash_kv(Pcore::TYPE_MEMBER_NAME, PAnyType::DEFAULT)))
|
82
|
-
TYPE_ATTRIBUTE.hashed_elements[KEY_ANNOTATIONS].replace_value_type(annotations)
|
83
|
-
TYPE_FUNCTION.hashed_elements[KEY_ANNOTATIONS].replace_value_type(annotations)
|
84
|
-
TYPE_OBJECT_I12N.hashed_elements[KEY_ANNOTATIONS].replace_value_type(annotations)
|
85
|
-
PTypeSetType::TYPE_TYPESET_I12N.hashed_elements[KEY_ANNOTATIONS].replace_value_type(annotations)
|
86
|
-
PTypeSetType::TYPE_TYPE_REFERENCE_I12N.hashed_elements[KEY_ANNOTATIONS].replace_value_type(annotations)
|
87
|
-
type
|
88
|
-
end
|
89
|
-
|
90
|
-
# @abstract Encapsulates behavior common to {PAttribute} and {PFunction}
|
91
|
-
# @api public
|
92
|
-
class PAnnotatedMember
|
93
|
-
include Annotatable
|
94
|
-
include InvocableMember
|
95
|
-
|
96
|
-
# @return [PObjectType] the object type containing this member
|
97
|
-
# @api public
|
98
|
-
attr_reader :container
|
99
|
-
|
100
|
-
# @return [String] the name of this member
|
101
|
-
# @api public
|
102
|
-
attr_reader :name
|
103
|
-
|
104
|
-
# @return [PAnyType] the type of this member
|
105
|
-
# @api public
|
106
|
-
attr_reader :type
|
107
|
-
|
108
|
-
# @param name [String] The name of the member
|
109
|
-
# @param container [PObjectType] The containing object type
|
110
|
-
# @param init_hash [Hash{String=>Object}] Hash containing feature options
|
111
|
-
# @option init_hash [PAnyType] 'type' The member type (required)
|
112
|
-
# @option init_hash [Boolean] 'override' `true` if this feature must override an inherited feature. Default is `false`.
|
113
|
-
# @option init_hash [Boolean] 'final' `true` if this feature cannot be overridden. Default is `false`.
|
114
|
-
# @option init_hash [Hash{PTypeType => Hash}] 'annotations' Annotations hash. Default is `nil`.
|
115
|
-
# @api public
|
116
|
-
def initialize(name, container, init_hash)
|
117
|
-
@name = name
|
118
|
-
@container = container
|
119
|
-
@type = init_hash[KEY_TYPE]
|
120
|
-
@override = init_hash[KEY_OVERRIDE]
|
121
|
-
@override = false if @override.nil?
|
122
|
-
@final = init_hash[KEY_FINAL]
|
123
|
-
@final = false if @final.nil?
|
124
|
-
init_annotatable(init_hash)
|
125
|
-
end
|
126
|
-
|
127
|
-
# Delegates to the contained type
|
128
|
-
# @param visitor [TypeAcceptor] the visitor
|
129
|
-
# @param guard [RecursionGuard] guard against recursion. Only used by internal calls
|
130
|
-
# @api public
|
131
|
-
def accept(visitor, guard)
|
132
|
-
annotatable_accept(visitor, guard)
|
133
|
-
@type.accept(visitor, guard)
|
134
|
-
end
|
135
|
-
|
136
|
-
# Checks if the this _member_ overrides an inherited member, and if so, that this member is declared with override = true and that
|
137
|
-
# the inherited member accepts to be overridden by this member.
|
138
|
-
#
|
139
|
-
# @param parent_members [Hash{String=>PAnnotatedMember}] the hash of inherited members
|
140
|
-
# @return [PAnnotatedMember] this instance
|
141
|
-
# @raises [Puppet::ParseError] if the assertion fails
|
142
|
-
# @api private
|
143
|
-
def assert_override(parent_members)
|
144
|
-
parent_member = parent_members[@name]
|
145
|
-
if parent_member.nil?
|
146
|
-
if @override
|
147
|
-
raise Puppet::ParseError, _("expected %{label} to override an inherited %{feature_type}, but no such %{feature_type} was found") %
|
148
|
-
{ label: label, feature_type: feature_type }
|
149
|
-
end
|
150
|
-
self
|
151
|
-
else
|
152
|
-
parent_member.assert_can_be_overridden(self)
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
# Checks if the given _member_ can override this member.
|
157
|
-
#
|
158
|
-
# @param member [PAnnotatedMember] the overriding member
|
159
|
-
# @return [PAnnotatedMember] its argument
|
160
|
-
# @raises [Puppet::ParseError] if the assertion fails
|
161
|
-
# @api private
|
162
|
-
def assert_can_be_overridden(member)
|
163
|
-
unless self.class == member.class
|
164
|
-
raise Puppet::ParseError, _("%{member} attempts to override %{label}") % { member: member.label, label: label }
|
165
|
-
end
|
166
|
-
if @final && !(constant? && member.constant?)
|
167
|
-
raise Puppet::ParseError, _("%{member} attempts to override final %{label}") % { member: member.label, label: label }
|
168
|
-
end
|
169
|
-
unless member.override?
|
170
|
-
#TRANSLATOR 'override => true' is a puppet syntax and should not be translated
|
171
|
-
raise Puppet::ParseError, _("%{member} attempts to override %{label} without having override => true") % { member: member.label, label: label }
|
172
|
-
end
|
173
|
-
unless @type.assignable?(member.type)
|
174
|
-
raise Puppet::ParseError, _("%{member} attempts to override %{label} with a type that does not match") % { member: member.label, label: label }
|
175
|
-
end
|
176
|
-
member
|
177
|
-
end
|
178
|
-
|
179
|
-
def constant?
|
180
|
-
false
|
181
|
-
end
|
182
|
-
|
183
|
-
# @return [Boolean] `true` if this feature cannot be overridden
|
184
|
-
# @api public
|
185
|
-
def final?
|
186
|
-
@final
|
187
|
-
end
|
188
|
-
|
189
|
-
# @return [Boolean] `true` if this feature must override an inherited feature
|
190
|
-
# @api public
|
191
|
-
def override?
|
192
|
-
@override
|
193
|
-
end
|
194
|
-
|
195
|
-
# @api public
|
196
|
-
def hash
|
197
|
-
@name.hash ^ @type.hash
|
198
|
-
end
|
199
|
-
|
200
|
-
# @api public
|
201
|
-
def eql?(o)
|
202
|
-
self.class == o.class && @name == o.name && @type == o.type && @override == o.override? && @final == o.final?
|
203
|
-
end
|
204
|
-
|
205
|
-
# @api public
|
206
|
-
def ==(o)
|
207
|
-
eql?(o)
|
208
|
-
end
|
209
|
-
|
210
|
-
# Returns the member as a hash suitable as an argument for constructor. Name is excluded
|
211
|
-
# @return [Hash{String=>Object}] the initialization hash
|
212
|
-
# @api private
|
213
|
-
def _pcore_init_hash
|
214
|
-
hash = { KEY_TYPE => @type }
|
215
|
-
hash[KEY_FINAL] = true if @final
|
216
|
-
hash[KEY_OVERRIDE] = true if @override
|
217
|
-
hash[KEY_ANNOTATIONS] = @annotations unless @annotations.nil?
|
218
|
-
hash
|
219
|
-
end
|
220
|
-
|
221
|
-
# @api private
|
222
|
-
def feature_type
|
223
|
-
self.class.feature_type
|
224
|
-
end
|
225
|
-
|
226
|
-
# @api private
|
227
|
-
def label
|
228
|
-
self.class.label(@container, @name)
|
229
|
-
end
|
230
|
-
|
231
|
-
# Performs type checking of arguments and invokes the method that corresponds to this
|
232
|
-
# method. The result of the invocation is returned
|
233
|
-
#
|
234
|
-
# @param receiver [Object] The receiver of the call
|
235
|
-
# @param scope [Puppet::Parser::Scope] The caller scope
|
236
|
-
# @param args [Array] Array of arguments.
|
237
|
-
# @return [Object] The result returned by the member function or attribute
|
238
|
-
#
|
239
|
-
# @api private
|
240
|
-
def invoke(receiver, scope, args, &block)
|
241
|
-
@dispatch ||= create_dispatch(receiver)
|
242
|
-
|
243
|
-
args_type = TypeCalculator.infer_set(block_given? ? args + [block] : args)
|
244
|
-
found = @dispatch.find { |d| d.type.callable?(args_type) }
|
245
|
-
raise ArgumentError, TypeMismatchDescriber.describe_signatures(label, @dispatch, args_type) if found.nil?
|
246
|
-
found.invoke(receiver, scope, args, &block)
|
247
|
-
end
|
248
|
-
|
249
|
-
# @api private
|
250
|
-
def create_dispatch(instance)
|
251
|
-
# TODO: Assumes Ruby implementation for now
|
252
|
-
if(callable_type.is_a?(PVariantType))
|
253
|
-
callable_type.types.map do |ct|
|
254
|
-
Functions::Dispatch.new(ct, RubyGenerator.protect_reserved_name(name), [], false, ct.block_type.nil? ? nil : 'block')
|
255
|
-
end
|
256
|
-
else
|
257
|
-
[Functions::Dispatch.new(callable_type, RubyGenerator.protect_reserved_name(name), [], false, callable_type.block_type.nil? ? nil : 'block')]
|
258
|
-
end
|
259
|
-
end
|
260
|
-
|
261
|
-
# @api private
|
262
|
-
def self.feature_type
|
263
|
-
raise NotImplementedError, "'#{self.class.name}' should implement #feature_type"
|
264
|
-
end
|
265
|
-
|
266
|
-
def self.label(container, name)
|
267
|
-
"#{feature_type} #{container.label}[#{name}]"
|
268
|
-
end
|
269
|
-
end
|
270
|
-
|
271
|
-
# Describes a named Attribute in an Object type
|
272
|
-
# @api public
|
273
|
-
class PAttribute < PAnnotatedMember
|
274
|
-
|
275
|
-
# @return [String,nil] The attribute kind as defined by #TYPE_ATTRIBUTE_KIND, or `nil`
|
276
|
-
attr_reader :kind
|
277
|
-
|
278
|
-
# @param name [String] The name of the attribute
|
279
|
-
# @param container [PObjectType] The containing object type
|
280
|
-
# @param init_hash [Hash{String=>Object}] Hash containing attribute options
|
281
|
-
# @option init_hash [PAnyType] 'type' The attribute type (required)
|
282
|
-
# @option init_hash [Object] 'value' The default value, must be an instanceof the given `type` (optional)
|
283
|
-
# @option init_hash [String] 'kind' The attribute kind, matching #TYPE_ATTRIBUTE_KIND
|
284
|
-
# @api public
|
285
|
-
def initialize(name, container, init_hash)
|
286
|
-
super(name, container, TypeAsserter.assert_instance_of(nil, TYPE_ATTRIBUTE, init_hash) { "initializer for #{self.class.label(container, name)}" })
|
287
|
-
if name == Serialization::PCORE_TYPE_KEY || name == Serialization::PCORE_VALUE_KEY
|
288
|
-
raise Puppet::ParseError, _("The attribute '%{name}' is reserved and cannot be used") % { name: name}
|
289
|
-
end
|
290
|
-
@kind = init_hash[KEY_KIND]
|
291
|
-
if @kind == ATTRIBUTE_KIND_CONSTANT # final is implied
|
292
|
-
if init_hash.include?(KEY_FINAL) && !@final
|
293
|
-
#TRANSLATOR 'final => false' is puppet syntax and should not be translated
|
294
|
-
raise Puppet::ParseError, _("%{label} of kind 'constant' cannot be combined with final => false") % { label: label }
|
295
|
-
end
|
296
|
-
@final = true
|
297
|
-
end
|
298
|
-
|
299
|
-
if init_hash.include?(KEY_VALUE)
|
300
|
-
if @kind == ATTRIBUTE_KIND_DERIVED || @kind == ATTRIBUTE_KIND_GIVEN_OR_DERIVED
|
301
|
-
raise Puppet::ParseError, _("%{label} of kind '%{kind}' cannot be combined with an attribute value") % { label: label, kind: @kind }
|
302
|
-
end
|
303
|
-
v = init_hash[KEY_VALUE]
|
304
|
-
@value = v == :default ? v : TypeAsserter.assert_instance_of(nil, type, v) {"#{label} #{KEY_VALUE}" }
|
305
|
-
else
|
306
|
-
raise Puppet::ParseError, _("%{label} of kind 'constant' requires a value") % { label: label } if @kind == ATTRIBUTE_KIND_CONSTANT
|
307
|
-
@value = :undef # Not to be confused with nil or :default
|
308
|
-
end
|
309
|
-
end
|
310
|
-
|
311
|
-
def callable_type
|
312
|
-
TYPE_ATTRIBUTE_CALLABLE
|
313
|
-
end
|
314
|
-
|
315
|
-
# @api public
|
316
|
-
def eql?(o)
|
317
|
-
super && @kind == o.kind && @value == (o.value? ? o.value : :undef)
|
318
|
-
end
|
319
|
-
|
320
|
-
# Returns the member as a hash suitable as an argument for constructor. Name is excluded
|
321
|
-
# @return [Hash{String=>Object}] the hash
|
322
|
-
# @api private
|
323
|
-
def _pcore_init_hash
|
324
|
-
hash = super
|
325
|
-
unless @kind.nil?
|
326
|
-
hash[KEY_KIND] = @kind
|
327
|
-
hash.delete(KEY_FINAL) if @kind == ATTRIBUTE_KIND_CONSTANT # final is implied
|
328
|
-
end
|
329
|
-
hash[KEY_VALUE] = @value unless @value == :undef
|
330
|
-
hash
|
331
|
-
end
|
332
|
-
|
333
|
-
def constant?
|
334
|
-
@kind == ATTRIBUTE_KIND_CONSTANT
|
335
|
-
end
|
336
|
-
|
337
|
-
# @return [Booelan] true if the given value equals the default value for this attribute
|
338
|
-
def default_value?(value)
|
339
|
-
@value == value
|
340
|
-
end
|
341
|
-
|
342
|
-
# @return [Boolean] `true` if a value has been defined for this attribute.
|
343
|
-
def value?
|
344
|
-
@value != :undef
|
345
|
-
end
|
346
|
-
|
347
|
-
# Returns the value of this attribute, or raises an error if no value has been defined. Raising an error
|
348
|
-
# is necessary since a defined value may be `nil`.
|
349
|
-
#
|
350
|
-
# @return [Object] the value that has been defined for this attribute.
|
351
|
-
# @raise [Puppet::Error] if no value has been defined
|
352
|
-
# @api public
|
353
|
-
def value
|
354
|
-
# An error must be raised here since `nil` is a valid value and it would be bad to leak the :undef symbol
|
355
|
-
raise Puppet::Error, "#{label} has no value" if @value == :undef
|
356
|
-
@value
|
357
|
-
end
|
358
|
-
|
359
|
-
# @api private
|
360
|
-
def self.feature_type
|
361
|
-
'attribute'
|
362
|
-
end
|
363
|
-
end
|
364
|
-
|
365
|
-
class PTypeParameter < PAttribute
|
366
|
-
# @return [Hash{String=>Object}] the hash
|
367
|
-
# @api private
|
368
|
-
def _pcore_init_hash
|
369
|
-
hash = super
|
370
|
-
hash[KEY_TYPE] = hash[KEY_TYPE].type
|
371
|
-
hash.delete(KEY_VALUE) if hash.include?(KEY_VALUE) && hash[KEY_VALUE].nil?
|
372
|
-
hash
|
373
|
-
end
|
374
|
-
|
375
|
-
# @api private
|
376
|
-
def self.feature_type
|
377
|
-
'type_parameter'
|
378
|
-
end
|
379
|
-
end
|
380
|
-
|
381
|
-
# Describes a named Function in an Object type
|
382
|
-
# @api public
|
383
|
-
class PFunction < PAnnotatedMember
|
384
|
-
|
385
|
-
# @param name [String] The name of the attribute
|
386
|
-
# @param container [PObjectType] The containing object type
|
387
|
-
# @param init_hash [Hash{String=>Object}] Hash containing function options
|
388
|
-
# @api public
|
389
|
-
def initialize(name, container, init_hash)
|
390
|
-
super(name, container, TypeAsserter.assert_instance_of(["initializer for function '%s'", name], TYPE_FUNCTION, init_hash))
|
391
|
-
end
|
392
|
-
|
393
|
-
def callable_type
|
394
|
-
type
|
395
|
-
end
|
396
|
-
|
397
|
-
# @api private
|
398
|
-
def self.feature_type
|
399
|
-
'function'
|
400
|
-
end
|
401
|
-
end
|
402
|
-
|
403
|
-
attr_reader :name
|
404
|
-
attr_reader :parent
|
405
|
-
attr_reader :equality
|
406
|
-
attr_reader :checks
|
407
|
-
attr_reader :annotations
|
408
|
-
|
409
|
-
# Initialize an Object Type instance. The initialization will use either a name and an initialization
|
410
|
-
# hash expression, or a fully resolved initialization hash.
|
411
|
-
#
|
412
|
-
# @overload initialize(name, init_hash_expression)
|
413
|
-
# Used when the Object type is loaded using a type alias expression. When that happens, it is important that
|
414
|
-
# the actual resolution of the expression is deferred until all definitions have been made known to the current
|
415
|
-
# loader. The object will then be resolved when it is loaded by the {TypeParser}. "resolved" here, means that
|
416
|
-
# the hash expression is fully resolved, and then passed to the {#_pcore_init_from_hash} method.
|
417
|
-
# @param name [String] The name of the object
|
418
|
-
# @param init_hash_expression [Model::LiteralHash] The hash describing the Object features
|
419
|
-
#
|
420
|
-
# @overload initialize(init_hash)
|
421
|
-
# Used when the object is created by the {TypeFactory}. The init_hash must be fully resolved.
|
422
|
-
# @param _pcore_init_hash [Hash{String=>Object}] The hash describing the Object features
|
423
|
-
# @param loader [Loaders::Loader,nil] the loader that loaded the type
|
424
|
-
#
|
425
|
-
# @api private
|
426
|
-
def initialize(_pcore_init_hash, init_hash_expression = nil)
|
427
|
-
if _pcore_init_hash.is_a?(Hash)
|
428
|
-
_pcore_init_from_hash(_pcore_init_hash)
|
429
|
-
@loader = init_hash_expression unless init_hash_expression.nil?
|
430
|
-
else
|
431
|
-
@type_parameters = EMPTY_HASH
|
432
|
-
@attributes = EMPTY_HASH
|
433
|
-
@functions = EMPTY_HASH
|
434
|
-
@name = TypeAsserter.assert_instance_of('object name', TYPE_OBJECT_NAME, _pcore_init_hash)
|
435
|
-
@init_hash_expression = init_hash_expression
|
436
|
-
end
|
437
|
-
end
|
438
|
-
|
439
|
-
def instance?(o, guard = nil)
|
440
|
-
if o.is_a?(PuppetObject)
|
441
|
-
assignable?(o._pcore_type, guard)
|
442
|
-
else
|
443
|
-
name = o.class.name
|
444
|
-
return false if name.nil? # anonymous class that doesn't implement PuppetObject is not an instance
|
445
|
-
ir = Loaders.implementation_registry
|
446
|
-
type = ir.nil? ? nil : ir.type_for_module(name)
|
447
|
-
!type.nil? && assignable?(type, guard)
|
448
|
-
end
|
449
|
-
end
|
450
|
-
|
451
|
-
# @api private
|
452
|
-
def new_function
|
453
|
-
@new_function ||= create_new_function
|
454
|
-
end
|
455
|
-
|
456
|
-
# Assign a new instance reader to this type
|
457
|
-
# @param [Serialization::InstanceReader] reader the reader to assign
|
458
|
-
# @api private
|
459
|
-
def reader=(reader)
|
460
|
-
@reader = reader
|
461
|
-
end
|
462
|
-
|
463
|
-
# Assign a new instance write to this type
|
464
|
-
# @param [Serialization::InstanceWriter] the writer to assign
|
465
|
-
# @api private
|
466
|
-
def writer=(writer)
|
467
|
-
@writer = writer
|
468
|
-
end
|
469
|
-
|
470
|
-
# Read an instance of this type from a deserializer
|
471
|
-
# @param [Integer] value_count the number attributes needed to create the instance
|
472
|
-
# @param [Serialization::Deserializer] deserializer the deserializer to read from
|
473
|
-
# @return [Object] the created instance
|
474
|
-
# @api private
|
475
|
-
def read(value_count, deserializer)
|
476
|
-
reader.read(self, implementation_class, value_count, deserializer)
|
477
|
-
end
|
478
|
-
|
479
|
-
# Write an instance of this type using a serializer
|
480
|
-
# @param [Object] value the instance to write
|
481
|
-
# @param [Serialization::Serializer] the serializer to write to
|
482
|
-
# @api private
|
483
|
-
def write(value, serializer)
|
484
|
-
writer.write(self, value, serializer)
|
485
|
-
end
|
486
|
-
|
487
|
-
# @api private
|
488
|
-
def create_new_function
|
489
|
-
impl_class = implementation_class
|
490
|
-
return impl_class.create_new_function(self) if impl_class.respond_to?(:create_new_function)
|
491
|
-
|
492
|
-
(param_names, param_types, required_param_count) = parameter_info(impl_class)
|
493
|
-
|
494
|
-
# Create the callable with a size that reflects the required and optional parameters
|
495
|
-
create_type = TypeFactory.callable(*param_types, required_param_count, param_names.size)
|
496
|
-
from_hash_type = TypeFactory.callable(init_hash_type, 1, 1)
|
497
|
-
|
498
|
-
# Create and return a #new_XXX function where the dispatchers are added programmatically.
|
499
|
-
Puppet::Functions.create_loaded_function(:"new_#{name}", loader) do
|
500
|
-
|
501
|
-
# The class that creates new instances must be available to the constructor methods
|
502
|
-
# and is therefore declared as a variable and accessor on the class that represents
|
503
|
-
# this added function.
|
504
|
-
@impl_class = impl_class
|
505
|
-
|
506
|
-
def self.impl_class
|
507
|
-
@impl_class
|
508
|
-
end
|
509
|
-
|
510
|
-
# It's recommended that an implementor of an Object type provides the method #from_asserted_hash.
|
511
|
-
# This method should accept a hash and assume that type assertion has been made already (it is made
|
512
|
-
# by the dispatch added here).
|
513
|
-
if impl_class.respond_to?(:from_asserted_hash)
|
514
|
-
dispatcher.add(Functions::Dispatch.new(from_hash_type, :from_hash, ['hash']))
|
515
|
-
def from_hash(hash)
|
516
|
-
self.class.impl_class.from_asserted_hash(hash)
|
517
|
-
end
|
518
|
-
end
|
519
|
-
|
520
|
-
# Add the dispatch that uses the standard #from_asserted_args or #new method on the class. It's assumed that the
|
521
|
-
# method performs no assertions.
|
522
|
-
dispatcher.add(Functions::Dispatch.new(create_type, :create, param_names))
|
523
|
-
if impl_class.respond_to?(:from_asserted_args)
|
524
|
-
def create(*args)
|
525
|
-
self.class.impl_class.from_asserted_args(*args)
|
526
|
-
end
|
527
|
-
else
|
528
|
-
def create(*args)
|
529
|
-
self.class.impl_class.new(*args)
|
530
|
-
end
|
531
|
-
end
|
532
|
-
end
|
533
|
-
end
|
534
|
-
|
535
|
-
# @api private
|
536
|
-
def implementation_class(create = true)
|
537
|
-
if @implementation_class.nil? && create
|
538
|
-
ir = Loaders.implementation_registry
|
539
|
-
class_name = ir.nil? ? nil : ir.module_name_for_type(self)
|
540
|
-
if class_name.nil?
|
541
|
-
# Use generator to create a default implementation
|
542
|
-
@implementation_class = RubyGenerator.new.create_class(self)
|
543
|
-
@implementation_class.class_eval(&@implementation_override) if instance_variable_defined?(:@implementation_override)
|
544
|
-
else
|
545
|
-
# Can the mapping be loaded?
|
546
|
-
@implementation_class = ClassLoader.provide(class_name)
|
547
|
-
|
548
|
-
raise Puppet::Error, "Unable to load class #{class_name}" if @implementation_class.nil?
|
549
|
-
unless @implementation_class < PuppetObject || @implementation_class.respond_to?(:ecore)
|
550
|
-
raise Puppet::Error, "Unable to create an instance of #{name}. #{class_name} does not include module #{PuppetObject.name}"
|
551
|
-
end
|
552
|
-
end
|
553
|
-
end
|
554
|
-
@implementation_class
|
555
|
-
end
|
556
|
-
|
557
|
-
# @api private
|
558
|
-
def implementation_class=(cls)
|
559
|
-
raise ArgumentError, "attempt to redefine implementation class for #{label}" unless @implementation_class.nil?
|
560
|
-
@implementation_class = cls
|
561
|
-
end
|
562
|
-
|
563
|
-
# The block passed to this method will be passed in a call to `#class_eval` on the dynamically generated
|
564
|
-
# class for this data type. It's indended use is to complement or redefine the generated methods and
|
565
|
-
# attribute readers.
|
566
|
-
#
|
567
|
-
# The method is normally called with the block passed to `#implementation` when a data type is defined using
|
568
|
-
# {Puppet::DataTypes::create_type}.
|
569
|
-
#
|
570
|
-
# @api private
|
571
|
-
def implementation_override=(block)
|
572
|
-
if !@implementation_class.nil? || instance_variable_defined?(:@implementation_override)
|
573
|
-
raise ArgumentError, "attempt to redefine implementation override for #{label}"
|
574
|
-
end
|
575
|
-
@implementation_override = block
|
576
|
-
end
|
577
|
-
|
578
|
-
def extract_init_hash(o)
|
579
|
-
return o._pcore_init_hash if o.respond_to?(:_pcore_init_hash)
|
580
|
-
|
581
|
-
result = {}
|
582
|
-
pic = parameter_info(o.class)
|
583
|
-
attrs = attributes(true)
|
584
|
-
pic[0].each do |name|
|
585
|
-
v = o.send(name)
|
586
|
-
result[name] = v unless attrs[name].default_value?(v)
|
587
|
-
end
|
588
|
-
result
|
589
|
-
end
|
590
|
-
|
591
|
-
# @api private
|
592
|
-
# @return [(Array<String>, Array<PAnyType>, Integer)] array of parameter names, array of parameter types, and a count reflecting the required number of parameters
|
593
|
-
def parameter_info(impl_class)
|
594
|
-
# Create a types and a names array where optional entries ends up last
|
595
|
-
@parameter_info ||= {}
|
596
|
-
pic = @parameter_info[impl_class]
|
597
|
-
return pic if pic
|
598
|
-
|
599
|
-
opt_types = []
|
600
|
-
opt_names = []
|
601
|
-
non_opt_types = []
|
602
|
-
non_opt_names = []
|
603
|
-
init_hash_type.elements.each do |se|
|
604
|
-
if se.key_type.is_a?(POptionalType)
|
605
|
-
opt_names << se.name
|
606
|
-
opt_types << se.value_type
|
607
|
-
else
|
608
|
-
non_opt_names << se.name
|
609
|
-
non_opt_types << se.value_type
|
610
|
-
end
|
611
|
-
end
|
612
|
-
param_names = non_opt_names + opt_names
|
613
|
-
param_types = non_opt_types + opt_types
|
614
|
-
param_count = param_names.size
|
615
|
-
|
616
|
-
init = impl_class.respond_to?(:from_asserted_args) ? impl_class.method(:from_asserted_args) : impl_class.instance_method(:initialize)
|
617
|
-
init_non_opt_count = 0
|
618
|
-
init_param_names = init.parameters.map do |p|
|
619
|
-
init_non_opt_count += 1 if :req == p[0]
|
620
|
-
n = p[1].to_s
|
621
|
-
r = RubyGenerator.unprotect_reserved_name(n)
|
622
|
-
unless r.equal?(n)
|
623
|
-
# assert that the protected name wasn't a real name (names can start with underscore)
|
624
|
-
n = r unless param_names.index(r).nil?
|
625
|
-
end
|
626
|
-
n
|
627
|
-
end
|
628
|
-
|
629
|
-
if init_param_names != param_names
|
630
|
-
if init_param_names.size < param_count || init_non_opt_count > param_count
|
631
|
-
raise Serialization::SerializationError, "Initializer for class #{impl_class.name} does not match the attributes of #{name}"
|
632
|
-
end
|
633
|
-
init_param_names = init_param_names[0, param_count] if init_param_names.size > param_count
|
634
|
-
unless init_param_names == param_names
|
635
|
-
# Reorder needed to match initialize method arguments
|
636
|
-
new_param_types = []
|
637
|
-
init_param_names.each do |ip|
|
638
|
-
index = param_names.index(ip)
|
639
|
-
if index.nil?
|
640
|
-
raise Serialization::SerializationError,
|
641
|
-
"Initializer for class #{impl_class.name} parameter '#{ip}' does not match any of the the attributes of type #{name}"
|
642
|
-
end
|
643
|
-
new_param_types << param_types[index]
|
644
|
-
end
|
645
|
-
param_names = init_param_names
|
646
|
-
param_types = new_param_types
|
647
|
-
end
|
648
|
-
end
|
649
|
-
|
650
|
-
pic = [param_names.freeze, param_types.freeze, non_opt_types.size].freeze
|
651
|
-
@parameter_info[impl_class] = pic
|
652
|
-
pic
|
653
|
-
end
|
654
|
-
|
655
|
-
# @api private
|
656
|
-
def attr_reader_name(se)
|
657
|
-
if se.value_type.is_a?(PBooleanType) || se.value_type.is_a?(POptionalType) && se.value_type.type.is_a?(PBooleanType)
|
658
|
-
"#{se.name}?"
|
659
|
-
else
|
660
|
-
se.name
|
661
|
-
end
|
662
|
-
end
|
663
|
-
|
664
|
-
def self.from_hash(hash)
|
665
|
-
new(hash, nil)
|
666
|
-
end
|
667
|
-
|
668
|
-
# @api private
|
669
|
-
def _pcore_init_from_hash(init_hash)
|
670
|
-
TypeAsserter.assert_instance_of('object initializer', TYPE_OBJECT_I12N, init_hash)
|
671
|
-
@type_parameters = EMPTY_HASH
|
672
|
-
@attributes = EMPTY_HASH
|
673
|
-
@functions = EMPTY_HASH
|
674
|
-
|
675
|
-
# Name given to the loader have higher precedence than a name declared in the type
|
676
|
-
@name ||= init_hash[KEY_NAME]
|
677
|
-
@name.freeze unless @name.nil?
|
678
|
-
|
679
|
-
@parent = init_hash[KEY_PARENT]
|
680
|
-
|
681
|
-
parent_members = EMPTY_HASH
|
682
|
-
parent_type_params = EMPTY_HASH
|
683
|
-
parent_object_type = nil
|
684
|
-
unless @parent.nil?
|
685
|
-
check_self_recursion(self)
|
686
|
-
rp = resolved_parent
|
687
|
-
raise Puppet::ParseError, _("reference to unresolved type '%{name}'") % { :name => rp.type_string } if rp.is_a?(PTypeReferenceType)
|
688
|
-
if rp.is_a?(PObjectType)
|
689
|
-
parent_object_type = rp
|
690
|
-
parent_members = rp.members(true)
|
691
|
-
parent_type_params = rp.type_parameters(true)
|
692
|
-
end
|
693
|
-
end
|
694
|
-
|
695
|
-
type_parameters = init_hash[KEY_TYPE_PARAMETERS]
|
696
|
-
unless type_parameters.nil? || type_parameters.empty?
|
697
|
-
@type_parameters = {}
|
698
|
-
type_parameters.each do |key, param_spec|
|
699
|
-
param_value = :undef
|
700
|
-
if param_spec.is_a?(Hash)
|
701
|
-
param_type = param_spec[KEY_TYPE]
|
702
|
-
param_value = param_spec[KEY_VALUE] if param_spec.include?(KEY_VALUE)
|
703
|
-
else
|
704
|
-
param_type = TypeAsserter.assert_instance_of(nil, PTypeType::DEFAULT, param_spec) { "type_parameter #{label}[#{key}]" }
|
705
|
-
end
|
706
|
-
param_type = POptionalType.new(param_type) unless param_type.is_a?(POptionalType)
|
707
|
-
type_param = PTypeParameter.new(key, self, KEY_TYPE => param_type, KEY_VALUE => param_value).assert_override(parent_type_params)
|
708
|
-
@type_parameters[key] = type_param
|
709
|
-
end
|
710
|
-
end
|
711
|
-
|
712
|
-
constants = init_hash[KEY_CONSTANTS]
|
713
|
-
attr_specs = init_hash[KEY_ATTRIBUTES]
|
714
|
-
if attr_specs.nil?
|
715
|
-
attr_specs = {}
|
716
|
-
else
|
717
|
-
# attr_specs might be frozen
|
718
|
-
attr_specs = Hash[attr_specs]
|
719
|
-
end
|
720
|
-
unless constants.nil? || constants.empty?
|
721
|
-
constants.each do |key, value|
|
722
|
-
if attr_specs.include?(key)
|
723
|
-
raise Puppet::ParseError, _("attribute %{label}[%{key}] is defined as both a constant and an attribute") % { label: label, key: key }
|
724
|
-
end
|
725
|
-
attr_spec = {
|
726
|
-
# Type must be generic here, or overrides would become impossible
|
727
|
-
KEY_TYPE => TypeCalculator.infer(value).generalize,
|
728
|
-
KEY_VALUE => value,
|
729
|
-
KEY_KIND => ATTRIBUTE_KIND_CONSTANT
|
730
|
-
}
|
731
|
-
# Indicate override if parent member exists. Type check etc. will take place later on.
|
732
|
-
attr_spec[KEY_OVERRIDE] = parent_members.include?(key)
|
733
|
-
attr_specs[key] = attr_spec
|
734
|
-
end
|
735
|
-
end
|
736
|
-
|
737
|
-
unless attr_specs.empty?
|
738
|
-
@attributes = Hash[attr_specs.map do |key, attr_spec|
|
739
|
-
unless attr_spec.is_a?(Hash)
|
740
|
-
attr_type = TypeAsserter.assert_instance_of(nil, PTypeType::DEFAULT, attr_spec) { "attribute #{label}[#{key}]" }
|
741
|
-
attr_spec = { KEY_TYPE => attr_type }
|
742
|
-
attr_spec[KEY_VALUE] = nil if attr_type.is_a?(POptionalType)
|
743
|
-
end
|
744
|
-
attr = PAttribute.new(key, self, attr_spec)
|
745
|
-
[attr.name, attr.assert_override(parent_members)]
|
746
|
-
end].freeze
|
747
|
-
end
|
748
|
-
|
749
|
-
func_specs = init_hash[KEY_FUNCTIONS]
|
750
|
-
unless func_specs.nil? || func_specs.empty?
|
751
|
-
@functions = Hash[func_specs.map do |key, func_spec|
|
752
|
-
func_spec = { KEY_TYPE => TypeAsserter.assert_instance_of(nil, TYPE_FUNCTION_TYPE, func_spec) { "function #{label}[#{key}]" } } unless func_spec.is_a?(Hash)
|
753
|
-
func = PFunction.new(key, self, func_spec)
|
754
|
-
name = func.name
|
755
|
-
raise Puppet::ParseError, _("%{label} conflicts with attribute with the same name") % { label: func.label } if @attributes.include?(name)
|
756
|
-
[name, func.assert_override(parent_members)]
|
757
|
-
end].freeze
|
758
|
-
end
|
759
|
-
|
760
|
-
@equality_include_type = init_hash[KEY_EQUALITY_INCLUDE_TYPE]
|
761
|
-
@equality_include_type = true if @equality_include_type.nil?
|
762
|
-
|
763
|
-
equality = init_hash[KEY_EQUALITY]
|
764
|
-
equality = [equality] if equality.is_a?(String)
|
765
|
-
if equality.is_a?(Array)
|
766
|
-
unless equality.empty?
|
767
|
-
#TRANSLATORS equality_include_type = false should not be translated
|
768
|
-
raise Puppet::ParseError, _('equality_include_type = false cannot be combined with non empty equality specification') unless @equality_include_type
|
769
|
-
parent_eq_attrs = nil
|
770
|
-
equality.each do |attr_name|
|
771
|
-
|
772
|
-
attr = parent_members[attr_name]
|
773
|
-
if attr.nil?
|
774
|
-
attr = @attributes[attr_name] || @functions[attr_name]
|
775
|
-
elsif attr.is_a?(PAttribute)
|
776
|
-
# Assert that attribute is not already include by parent equality
|
777
|
-
parent_eq_attrs ||= parent_object_type.equality_attributes
|
778
|
-
if parent_eq_attrs.include?(attr_name)
|
779
|
-
including_parent = find_equality_definer_of(attr)
|
780
|
-
raise Puppet::ParseError, _("%{label} equality is referencing %{attribute} which is included in equality of %{including_parent}") %
|
781
|
-
{ label: label, attribute: attr.label, including_parent: including_parent.label }
|
782
|
-
end
|
783
|
-
end
|
784
|
-
|
785
|
-
unless attr.is_a?(PAttribute)
|
786
|
-
if attr.nil?
|
787
|
-
raise Puppet::ParseError, _("%{label} equality is referencing non existent attribute '%{attribute}'") % { label: label, attribute: attr_name }
|
788
|
-
end
|
789
|
-
raise Puppet::ParseError, _("%{label} equality is referencing %{attribute}. Only attribute references are allowed") %
|
790
|
-
{ label: label, attribute: attr.label }
|
791
|
-
end
|
792
|
-
if attr.kind == ATTRIBUTE_KIND_CONSTANT
|
793
|
-
raise Puppet::ParseError, _("%{label} equality is referencing constant %{attribute}.") % { label: label, attribute: attr.label } + ' ' +
|
794
|
-
_("Reference to constant is not allowed in equality")
|
795
|
-
end
|
796
|
-
end
|
797
|
-
end
|
798
|
-
equality.freeze
|
799
|
-
end
|
800
|
-
@equality = equality
|
801
|
-
|
802
|
-
@checks = init_hash[KEY_CHECKS]
|
803
|
-
init_annotatable(init_hash)
|
804
|
-
end
|
805
|
-
|
806
|
-
def [](name)
|
807
|
-
member = @attributes[name] || @functions[name]
|
808
|
-
if member.nil?
|
809
|
-
rp = resolved_parent
|
810
|
-
member = rp[name] if rp.is_a?(PObjectType)
|
811
|
-
end
|
812
|
-
member
|
813
|
-
end
|
814
|
-
|
815
|
-
def accept(visitor, guard)
|
816
|
-
guarded_recursion(guard, nil) do |g|
|
817
|
-
super(visitor, g)
|
818
|
-
@parent.accept(visitor, g) unless parent.nil?
|
819
|
-
@type_parameters.values.each { |p| p.accept(visitor, g) }
|
820
|
-
@attributes.values.each { |a| a.accept(visitor, g) }
|
821
|
-
@functions.values.each { |f| f.accept(visitor, g) }
|
822
|
-
end
|
823
|
-
end
|
824
|
-
|
825
|
-
def callable_args?(callable, guard)
|
826
|
-
@parent.nil? ? false : @parent.callable_args?(callable, guard)
|
827
|
-
end
|
828
|
-
|
829
|
-
# Returns the type that a initialization hash used for creating instances of this type must conform to.
|
830
|
-
#
|
831
|
-
# @return [PStructType] the initialization hash type
|
832
|
-
# @api public
|
833
|
-
def init_hash_type
|
834
|
-
@init_hash_type ||= create_init_hash_type
|
835
|
-
end
|
836
|
-
|
837
|
-
def allocate
|
838
|
-
implementation_class.allocate
|
839
|
-
end
|
840
|
-
|
841
|
-
def create(*args)
|
842
|
-
implementation_class.create(*args)
|
843
|
-
end
|
844
|
-
|
845
|
-
def from_hash(hash)
|
846
|
-
implementation_class.from_hash(hash)
|
847
|
-
end
|
848
|
-
|
849
|
-
# Creates the type that a initialization hash used for creating instances of this type must conform to.
|
850
|
-
#
|
851
|
-
# @return [PStructType] the initialization hash type
|
852
|
-
# @api private
|
853
|
-
def create_init_hash_type
|
854
|
-
struct_elems = {}
|
855
|
-
attributes(true).values.each do |attr|
|
856
|
-
unless attr.kind == ATTRIBUTE_KIND_CONSTANT || attr.kind == ATTRIBUTE_KIND_DERIVED
|
857
|
-
if attr.value?
|
858
|
-
struct_elems[TypeFactory.optional(attr.name)] = attr.type
|
859
|
-
else
|
860
|
-
struct_elems[attr.name] = attr.type
|
861
|
-
end
|
862
|
-
end
|
863
|
-
end
|
864
|
-
TypeFactory.struct(struct_elems)
|
865
|
-
end
|
866
|
-
|
867
|
-
# The init_hash is primarily intended for serialization and string representation purposes. It creates a hash
|
868
|
-
# suitable for passing to {PObjectType#new(init_hash)}
|
869
|
-
#
|
870
|
-
# @return [Hash{String=>Object}] the features hash
|
871
|
-
# @api public
|
872
|
-
def _pcore_init_hash(include_name = true)
|
873
|
-
result = super()
|
874
|
-
result[KEY_NAME] = @name if include_name && !@name.nil?
|
875
|
-
result[KEY_PARENT] = @parent unless @parent.nil?
|
876
|
-
result[KEY_TYPE_PARAMETERS] = compressed_members_hash(@type_parameters) unless @type_parameters.empty?
|
877
|
-
unless @attributes.empty?
|
878
|
-
# Divide attributes into constants and others
|
879
|
-
tc = TypeCalculator.singleton
|
880
|
-
constants, others = @attributes.partition do |_, a|
|
881
|
-
a.kind == ATTRIBUTE_KIND_CONSTANT && a.type == tc.infer(a.value).generalize
|
882
|
-
end.map { |ha| Hash[ha] }
|
883
|
-
|
884
|
-
result[KEY_ATTRIBUTES] = compressed_members_hash(others) unless others.empty?
|
885
|
-
unless constants.empty?
|
886
|
-
# { kind => 'constant', type => <type of value>, value => <value> } becomes just <value>
|
887
|
-
constants.each_pair { |key, a| constants[key] = a.value }
|
888
|
-
result[KEY_CONSTANTS] = constants
|
889
|
-
end
|
890
|
-
end
|
891
|
-
result[KEY_FUNCTIONS] = compressed_members_hash(@functions) unless @functions.empty?
|
892
|
-
result[KEY_EQUALITY] = @equality unless @equality.nil?
|
893
|
-
result[KEY_CHECKS] = @checks unless @checks.nil?
|
894
|
-
result
|
895
|
-
end
|
896
|
-
|
897
|
-
def eql?(o)
|
898
|
-
self.class == o.class &&
|
899
|
-
@name == o.name &&
|
900
|
-
@parent == o.parent &&
|
901
|
-
@type_parameters == o.type_parameters &&
|
902
|
-
@attributes == o.attributes &&
|
903
|
-
@functions == o.functions &&
|
904
|
-
@equality == o.equality &&
|
905
|
-
@checks == o.checks
|
906
|
-
end
|
907
|
-
|
908
|
-
def hash
|
909
|
-
@name.nil? ? [@parent, @type_parameters, @attributes, @functions].hash : @name.hash
|
910
|
-
end
|
911
|
-
|
912
|
-
def kind_of_callable?(optional=true, guard = nil)
|
913
|
-
@parent.nil? ? false : @parent.kind_of_callable?(optional, guard)
|
914
|
-
end
|
915
|
-
|
916
|
-
def iterable?(guard = nil)
|
917
|
-
@parent.nil? ? false : @parent.iterable?(guard)
|
918
|
-
end
|
919
|
-
|
920
|
-
def iterable_type(guard = nil)
|
921
|
-
@parent.nil? ? false : @parent.iterable_type(guard)
|
922
|
-
end
|
923
|
-
|
924
|
-
def parameterized?
|
925
|
-
if @type_parameters.empty?
|
926
|
-
@parent.is_a?(PObjectType) ? @parent.parameterized? : false
|
927
|
-
else
|
928
|
-
true
|
929
|
-
end
|
930
|
-
end
|
931
|
-
|
932
|
-
# Returns the members (attributes and functions) of this `Object` type. If _include_parent_ is `true`, then all
|
933
|
-
# inherited members will be included in the returned `Hash`.
|
934
|
-
#
|
935
|
-
# @param include_parent [Boolean] `true` if inherited members should be included
|
936
|
-
# @return [Hash{String=>PAnnotatedMember}] a hash with the members
|
937
|
-
# @api public
|
938
|
-
def members(include_parent = false)
|
939
|
-
get_members(include_parent, :both)
|
940
|
-
end
|
941
|
-
|
942
|
-
# Returns the attributes of this `Object` type. If _include_parent_ is `true`, then all
|
943
|
-
# inherited attributes will be included in the returned `Hash`.
|
944
|
-
#
|
945
|
-
# @param include_parent [Boolean] `true` if inherited attributes should be included
|
946
|
-
# @return [Hash{String=>PAttribute}] a hash with the attributes
|
947
|
-
# @api public
|
948
|
-
def attributes(include_parent = false)
|
949
|
-
get_members(include_parent, :attributes)
|
950
|
-
end
|
951
|
-
|
952
|
-
# Returns the attributes that participate in equality comparison. Inherited equality attributes
|
953
|
-
# are included.
|
954
|
-
# @return [Hash{String=>PAttribute}] a hash of attributes
|
955
|
-
# @api public
|
956
|
-
def equality_attributes
|
957
|
-
all = {}
|
958
|
-
collect_equality_attributes(all)
|
959
|
-
all
|
960
|
-
end
|
961
|
-
|
962
|
-
# @return [Boolean] `true` if this type is included when comparing instances
|
963
|
-
# @api public
|
964
|
-
def equality_include_type?
|
965
|
-
@equality_include_type
|
966
|
-
end
|
967
|
-
|
968
|
-
# Returns the functions of this `Object` type. If _include_parent_ is `true`, then all
|
969
|
-
# inherited functions will be included in the returned `Hash`.
|
970
|
-
#
|
971
|
-
# @param include_parent [Boolean] `true` if inherited functions should be included
|
972
|
-
# @return [Hash{String=>PFunction}] a hash with the functions
|
973
|
-
# @api public
|
974
|
-
def functions(include_parent = false)
|
975
|
-
get_members(include_parent, :functions)
|
976
|
-
end
|
977
|
-
|
978
|
-
DEFAULT = PObjectType.new(EMPTY_HASH)
|
979
|
-
# Assert that this type does not inherit from itself
|
980
|
-
# @api private
|
981
|
-
def check_self_recursion(originator)
|
982
|
-
unless @parent.nil?
|
983
|
-
raise Puppet::Error, "The Object type '#{originator.label}' inherits from itself" if @parent.equal?(originator)
|
984
|
-
@parent.check_self_recursion(originator)
|
985
|
-
end
|
986
|
-
end
|
987
|
-
|
988
|
-
# @api private
|
989
|
-
def label
|
990
|
-
@name || 'Object'
|
991
|
-
end
|
992
|
-
|
993
|
-
# @api private
|
994
|
-
def resolved_parent
|
995
|
-
parent = @parent
|
996
|
-
while parent.is_a?(PTypeAliasType)
|
997
|
-
parent = parent.resolved_type
|
998
|
-
end
|
999
|
-
parent
|
1000
|
-
end
|
1001
|
-
|
1002
|
-
def simple_name
|
1003
|
-
label.split(DOUBLE_COLON).last
|
1004
|
-
end
|
1005
|
-
|
1006
|
-
# Returns the type_parameters of this `Object` type. If _include_parent_ is `true`, then all
|
1007
|
-
# inherited type_parameters will be included in the returned `Hash`.
|
1008
|
-
#
|
1009
|
-
# @param include_parent [Boolean] `true` if inherited type_parameters should be included
|
1010
|
-
# @return [Hash{String=>PTypeParameter}] a hash with the type_parameters
|
1011
|
-
# @api public
|
1012
|
-
def type_parameters(include_parent = false)
|
1013
|
-
all = {}
|
1014
|
-
collect_type_parameters(all, include_parent)
|
1015
|
-
all
|
1016
|
-
end
|
1017
|
-
|
1018
|
-
protected
|
1019
|
-
|
1020
|
-
# An Object type is only assignable from another Object type. The other type
|
1021
|
-
# or one of its parents must be equal to this type.
|
1022
|
-
def _assignable?(o, guard)
|
1023
|
-
if o.is_a?(PObjectType)
|
1024
|
-
if DEFAULT == self || self == o
|
1025
|
-
true
|
1026
|
-
else
|
1027
|
-
op = o.parent
|
1028
|
-
op.nil? ? false : assignable?(op, guard)
|
1029
|
-
end
|
1030
|
-
elsif o.is_a?(PObjectTypeExtension)
|
1031
|
-
assignable?(o.base_type, guard)
|
1032
|
-
else
|
1033
|
-
false
|
1034
|
-
end
|
1035
|
-
end
|
1036
|
-
|
1037
|
-
def get_members(include_parent, member_type)
|
1038
|
-
all = {}
|
1039
|
-
collect_members(all, include_parent, member_type)
|
1040
|
-
all
|
1041
|
-
end
|
1042
|
-
|
1043
|
-
def collect_members(collector, include_parent, member_type)
|
1044
|
-
if include_parent
|
1045
|
-
parent = resolved_parent
|
1046
|
-
parent.collect_members(collector, include_parent, member_type) if parent.is_a?(PObjectType)
|
1047
|
-
end
|
1048
|
-
collector.merge!(@attributes) unless member_type == :functions
|
1049
|
-
collector.merge!(@functions) unless member_type == :attributes
|
1050
|
-
nil
|
1051
|
-
end
|
1052
|
-
|
1053
|
-
def collect_equality_attributes(collector)
|
1054
|
-
parent = resolved_parent
|
1055
|
-
parent.collect_equality_attributes(collector) if parent.is_a?(PObjectType)
|
1056
|
-
if @equality.nil?
|
1057
|
-
# All attributes except constants participate
|
1058
|
-
collector.merge!(@attributes.reject { |_, attr| attr.kind == ATTRIBUTE_KIND_CONSTANT })
|
1059
|
-
else
|
1060
|
-
collector.merge!(Hash[@equality.map { |attr_name| [attr_name, @attributes[attr_name]] }])
|
1061
|
-
end
|
1062
|
-
nil
|
1063
|
-
end
|
1064
|
-
|
1065
|
-
def collect_type_parameters(collector, include_parent)
|
1066
|
-
if include_parent
|
1067
|
-
parent = resolved_parent
|
1068
|
-
parent.collect_type_parameters(collector, include_parent) if parent.is_a?(PObjectType)
|
1069
|
-
end
|
1070
|
-
collector.merge!(@type_parameters)
|
1071
|
-
nil
|
1072
|
-
end
|
1073
|
-
|
1074
|
-
private
|
1075
|
-
|
1076
|
-
def compressed_members_hash(features)
|
1077
|
-
Hash[features.values.map do |feature|
|
1078
|
-
fh = feature._pcore_init_hash
|
1079
|
-
if fh.size == 1
|
1080
|
-
type = fh[KEY_TYPE]
|
1081
|
-
fh = type unless type.nil?
|
1082
|
-
end
|
1083
|
-
[feature.name, fh]
|
1084
|
-
end]
|
1085
|
-
end
|
1086
|
-
|
1087
|
-
# @return [PObjectType] the topmost parent who's #equality_attributes include the given _attr_
|
1088
|
-
def find_equality_definer_of(attr)
|
1089
|
-
type = self
|
1090
|
-
while !type.nil? do
|
1091
|
-
p = type.resolved_parent
|
1092
|
-
return type unless p.is_a?(PObjectType)
|
1093
|
-
return type unless p.equality_attributes.include?(attr.name)
|
1094
|
-
type = p
|
1095
|
-
end
|
1096
|
-
nil
|
1097
|
-
end
|
1098
|
-
|
1099
|
-
def guarded_recursion(guard, dflt)
|
1100
|
-
if @self_recursion
|
1101
|
-
guard ||= RecursionGuard.new
|
1102
|
-
guard.with_this(self) { |state| (state & RecursionGuard::SELF_RECURSION_IN_THIS) == 0 ? yield(guard) : dflt }
|
1103
|
-
else
|
1104
|
-
yield(guard)
|
1105
|
-
end
|
1106
|
-
end
|
1107
|
-
|
1108
|
-
def reader
|
1109
|
-
@reader ||= Serialization::ObjectReader::INSTANCE
|
1110
|
-
end
|
1111
|
-
|
1112
|
-
def writer
|
1113
|
-
@writer ||= Serialization::ObjectWriter::INSTANCE
|
1114
|
-
end
|
1115
|
-
end
|
1116
|
-
end
|
1117
|
-
end
|