bolt 0.0.1 → 0.5.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/.gitignore +33 -0
- data/.gitmodules +12 -0
- data/.rspec +2 -0
- data/.rubocop.yml +61 -0
- data/.travis.yml +18 -0
- data/Gemfile +9 -0
- data/INSTALL.md +70 -0
- data/LICENSE +201 -0
- data/README.md +372 -0
- data/Rakefile +27 -0
- data/Vagrantfile +13 -0
- data/appveyor.yml +29 -0
- data/bolt.gemspec +50 -0
- data/docs/writing_tasks_and_plans.pdf +0 -0
- data/exe/bolt +15 -0
- data/lib/bolt.rb +13 -0
- data/lib/bolt/cli.rb +409 -0
- data/lib/bolt/executor.rb +71 -0
- data/lib/bolt/node.rb +79 -0
- data/lib/bolt/node/formatter.rb +15 -0
- data/lib/bolt/node/orch.rb +118 -0
- data/lib/bolt/node/result.rb +110 -0
- data/lib/bolt/node/ssh.rb +145 -0
- data/lib/bolt/node/winrm.rb +237 -0
- data/lib/bolt/node_uri.rb +42 -0
- data/lib/bolt/result.rb +139 -0
- data/lib/bolt/version.rb +3 -0
- data/metadata.json +13 -0
- data/tasks/init.json +3 -0
- data/tasks/init.rb +44 -0
- data/ux/bolt-CLI-spec.md +186 -0
- data/vendored/facter/lib/facter.rb +261 -0
- data/vendored/facter/lib/facter/Cfkey.rb +42 -0
- data/vendored/facter/lib/facter/application.rb +206 -0
- data/vendored/facter/lib/facter/architecture.rb +50 -0
- data/vendored/facter/lib/facter/augeasversion.rb +28 -0
- data/vendored/facter/lib/facter/blockdevices.rb +105 -0
- data/vendored/facter/lib/facter/core/aggregate.rb +220 -0
- data/vendored/facter/lib/facter/core/directed_graph.rb +46 -0
- data/vendored/facter/lib/facter/core/execution.rb +123 -0
- data/vendored/facter/lib/facter/core/execution/base.rb +81 -0
- data/vendored/facter/lib/facter/core/execution/posix.rb +50 -0
- data/vendored/facter/lib/facter/core/execution/windows.rb +57 -0
- data/vendored/facter/lib/facter/core/logging.rb +197 -0
- data/vendored/facter/lib/facter/core/resolvable.rb +94 -0
- data/vendored/facter/lib/facter/core/suitable.rb +113 -0
- data/vendored/facter/lib/facter/dhcp_servers.rb +45 -0
- data/vendored/facter/lib/facter/domain.rb +99 -0
- data/vendored/facter/lib/facter/ec2.rb +68 -0
- data/vendored/facter/lib/facter/ec2/rest.rb +137 -0
- data/vendored/facter/lib/facter/facterversion.rb +15 -0
- data/vendored/facter/lib/facter/filesystems.rb +45 -0
- data/vendored/facter/lib/facter/fqdn.rb +24 -0
- data/vendored/facter/lib/facter/gce.rb +16 -0
- data/vendored/facter/lib/facter/gce/metadata.rb +87 -0
- data/vendored/facter/lib/facter/gid.rb +25 -0
- data/vendored/facter/lib/facter/hardwareisa.rb +20 -0
- data/vendored/facter/lib/facter/hardwaremodel.rb +67 -0
- data/vendored/facter/lib/facter/hostname.rb +31 -0
- data/vendored/facter/lib/facter/id.rb +21 -0
- data/vendored/facter/lib/facter/interfaces.rb +58 -0
- data/vendored/facter/lib/facter/ipaddress.rb +169 -0
- data/vendored/facter/lib/facter/ipaddress6.rb +82 -0
- data/vendored/facter/lib/facter/iphostnumber.rb +29 -0
- data/vendored/facter/lib/facter/kernel.rb +22 -0
- data/vendored/facter/lib/facter/kernelmajversion.rb +23 -0
- data/vendored/facter/lib/facter/kernelrelease.rb +45 -0
- data/vendored/facter/lib/facter/kernelversion.rb +22 -0
- data/vendored/facter/lib/facter/ldom.rb +51 -0
- data/vendored/facter/lib/facter/lsbdistcodename.rb +20 -0
- data/vendored/facter/lib/facter/lsbdistdescription.rb +21 -0
- data/vendored/facter/lib/facter/lsbdistid.rb +20 -0
- data/vendored/facter/lib/facter/lsbdistrelease.rb +20 -0
- data/vendored/facter/lib/facter/lsbmajdistrelease.rb +22 -0
- data/vendored/facter/lib/facter/lsbminordistrelease.rb +22 -0
- data/vendored/facter/lib/facter/lsbrelease.rb +20 -0
- data/vendored/facter/lib/facter/macaddress.rb +99 -0
- data/vendored/facter/lib/facter/macosx.rb +56 -0
- data/vendored/facter/lib/facter/manufacturer.rb +68 -0
- data/vendored/facter/lib/facter/memory.rb +168 -0
- data/vendored/facter/lib/facter/netmask.rb +43 -0
- data/vendored/facter/lib/facter/network.rb +20 -0
- data/vendored/facter/lib/facter/operatingsystem.rb +24 -0
- data/vendored/facter/lib/facter/operatingsystem/base.rb +61 -0
- data/vendored/facter/lib/facter/operatingsystem/cumuluslinux.rb +27 -0
- data/vendored/facter/lib/facter/operatingsystem/implementation.rb +33 -0
- data/vendored/facter/lib/facter/operatingsystem/linux.rb +484 -0
- data/vendored/facter/lib/facter/operatingsystem/osreleaselinux.rb +28 -0
- data/vendored/facter/lib/facter/operatingsystem/sunos.rb +54 -0
- data/vendored/facter/lib/facter/operatingsystem/vmkernel.rb +11 -0
- data/vendored/facter/lib/facter/operatingsystem/windows.rb +43 -0
- data/vendored/facter/lib/facter/operatingsystemmajrelease.rb +31 -0
- data/vendored/facter/lib/facter/operatingsystemrelease.rb +29 -0
- data/vendored/facter/lib/facter/os.rb +98 -0
- data/vendored/facter/lib/facter/osfamily.rb +18 -0
- data/vendored/facter/lib/facter/partitions.rb +39 -0
- data/vendored/facter/lib/facter/path.rb +14 -0
- data/vendored/facter/lib/facter/physicalprocessorcount.rb +27 -0
- data/vendored/facter/lib/facter/processor.rb +52 -0
- data/vendored/facter/lib/facter/processors.rb +66 -0
- data/vendored/facter/lib/facter/processors/os.rb +244 -0
- data/vendored/facter/lib/facter/ps.rb +31 -0
- data/vendored/facter/lib/facter/puppetversion.rb +20 -0
- data/vendored/facter/lib/facter/rackspace.rb +37 -0
- data/vendored/facter/lib/facter/rubyplatform.rb +12 -0
- data/vendored/facter/lib/facter/rubysitedir.rb +15 -0
- data/vendored/facter/lib/facter/rubyversion.rb +12 -0
- data/vendored/facter/lib/facter/selinux.rb +154 -0
- data/vendored/facter/lib/facter/ssh.rb +73 -0
- data/vendored/facter/lib/facter/system32.rb +21 -0
- data/vendored/facter/lib/facter/system_uptime.rb +44 -0
- data/vendored/facter/lib/facter/timezone.rb +14 -0
- data/vendored/facter/lib/facter/uniqueid.rb +4 -0
- data/vendored/facter/lib/facter/uptime.rb +16 -0
- data/vendored/facter/lib/facter/uptime_days.rb +13 -0
- data/vendored/facter/lib/facter/uptime_hours.rb +13 -0
- data/vendored/facter/lib/facter/uptime_seconds.rb +20 -0
- data/vendored/facter/lib/facter/util/architecture.rb +19 -0
- data/vendored/facter/lib/facter/util/collection.rb +161 -0
- data/vendored/facter/lib/facter/util/composite_loader.rb +12 -0
- data/vendored/facter/lib/facter/util/config.rb +88 -0
- data/vendored/facter/lib/facter/util/confine.rb +66 -0
- data/vendored/facter/lib/facter/util/dhcp_servers.rb +58 -0
- data/vendored/facter/lib/facter/util/directory_loader.rb +88 -0
- data/vendored/facter/lib/facter/util/ec2.rb +106 -0
- data/vendored/facter/lib/facter/util/fact.rb +204 -0
- data/vendored/facter/lib/facter/util/file_read.rb +37 -0
- data/vendored/facter/lib/facter/util/formatter.rb +39 -0
- data/vendored/facter/lib/facter/util/ip.rb +340 -0
- data/vendored/facter/lib/facter/util/ip/windows.rb +215 -0
- data/vendored/facter/lib/facter/util/loader.rb +155 -0
- data/vendored/facter/lib/facter/util/macaddress.rb +43 -0
- data/vendored/facter/lib/facter/util/macosx.rb +73 -0
- data/vendored/facter/lib/facter/util/manufacturer.rb +99 -0
- data/vendored/facter/lib/facter/util/memory.rb +228 -0
- data/vendored/facter/lib/facter/util/netmask.rb +40 -0
- data/vendored/facter/lib/facter/util/normalization.rb +94 -0
- data/vendored/facter/lib/facter/util/nothing_loader.rb +12 -0
- data/vendored/facter/lib/facter/util/operatingsystem.rb +21 -0
- data/vendored/facter/lib/facter/util/parser.rb +168 -0
- data/vendored/facter/lib/facter/util/partitions.rb +47 -0
- data/vendored/facter/lib/facter/util/partitions/linux.rb +71 -0
- data/vendored/facter/lib/facter/util/partitions/openbsd.rb +40 -0
- data/vendored/facter/lib/facter/util/plist.rb +24 -0
- data/vendored/facter/lib/facter/util/plist/generator.rb +228 -0
- data/vendored/facter/lib/facter/util/plist/parser.rb +226 -0
- data/vendored/facter/lib/facter/util/posix.rb +16 -0
- data/vendored/facter/lib/facter/util/processor.rb +289 -0
- data/vendored/facter/lib/facter/util/registry.rb +11 -0
- data/vendored/facter/lib/facter/util/resolution.rb +160 -0
- data/vendored/facter/lib/facter/util/solaris_zones.rb +158 -0
- data/vendored/facter/lib/facter/util/unix_root.rb +5 -0
- data/vendored/facter/lib/facter/util/uptime.rb +83 -0
- data/vendored/facter/lib/facter/util/values.rb +109 -0
- data/vendored/facter/lib/facter/util/virtual.rb +212 -0
- data/vendored/facter/lib/facter/util/vlans.rb +21 -0
- data/vendored/facter/lib/facter/util/windows.rb +10 -0
- data/vendored/facter/lib/facter/util/windows/api_types.rb +135 -0
- data/vendored/facter/lib/facter/util/windows/dir.rb +43 -0
- data/vendored/facter/lib/facter/util/windows/error.rb +87 -0
- data/vendored/facter/lib/facter/util/windows/process.rb +294 -0
- data/vendored/facter/lib/facter/util/windows/user.rb +186 -0
- data/vendored/facter/lib/facter/util/windows_root.rb +7 -0
- data/vendored/facter/lib/facter/util/wmi.rb +49 -0
- data/vendored/facter/lib/facter/util/xendomains.rb +28 -0
- data/vendored/facter/lib/facter/version.rb +86 -0
- data/vendored/facter/lib/facter/virtual.rb +328 -0
- data/vendored/facter/lib/facter/vlans.rb +17 -0
- data/vendored/facter/lib/facter/xendomains.rb +20 -0
- data/vendored/facter/lib/facter/zfs_version.rb +14 -0
- data/vendored/facter/lib/facter/zonename.rb +6 -0
- data/vendored/facter/lib/facter/zones.rb +18 -0
- data/vendored/facter/lib/facter/zpool_version.rb +10 -0
- data/vendored/hiera/lib/hiera.rb +119 -0
- data/vendored/hiera/lib/hiera/backend.rb +360 -0
- data/vendored/hiera/lib/hiera/backend/json_backend.rb +58 -0
- data/vendored/hiera/lib/hiera/backend/yaml_backend.rb +63 -0
- data/vendored/hiera/lib/hiera/config.rb +97 -0
- data/vendored/hiera/lib/hiera/console_logger.rb +13 -0
- data/vendored/hiera/lib/hiera/error.rb +4 -0
- data/vendored/hiera/lib/hiera/fallback_logger.rb +41 -0
- data/vendored/hiera/lib/hiera/filecache.rb +86 -0
- data/vendored/hiera/lib/hiera/interpolate.rb +121 -0
- data/vendored/hiera/lib/hiera/noop_logger.rb +8 -0
- data/vendored/hiera/lib/hiera/puppet_logger.rb +17 -0
- data/vendored/hiera/lib/hiera/recursive_guard.rb +20 -0
- data/vendored/hiera/lib/hiera/util.rb +65 -0
- data/vendored/hiera/lib/hiera/util/win32.rb +40 -0
- data/vendored/hiera/lib/hiera/version.rb +89 -0
- data/vendored/puppet/lib/hiera/puppet_function.rb +81 -0
- data/vendored/puppet/lib/hiera/scope.rb +61 -0
- data/vendored/puppet/lib/hiera_puppet.rb +79 -0
- data/vendored/puppet/lib/puppet.rb +311 -0
- data/vendored/puppet/lib/puppet/agent.rb +114 -0
- data/vendored/puppet/lib/puppet/agent/disabler.rb +53 -0
- data/vendored/puppet/lib/puppet/agent/locker.rb +52 -0
- data/vendored/puppet/lib/puppet/application.rb +485 -0
- data/vendored/puppet/lib/puppet/application/agent.rb +468 -0
- data/vendored/puppet/lib/puppet/application/apply.rb +358 -0
- data/vendored/puppet/lib/puppet/application/ca.rb +11 -0
- data/vendored/puppet/lib/puppet/application/catalog.rb +4 -0
- data/vendored/puppet/lib/puppet/application/cert.rb +334 -0
- data/vendored/puppet/lib/puppet/application/certificate.rb +17 -0
- data/vendored/puppet/lib/puppet/application/certificate_request.rb +7 -0
- data/vendored/puppet/lib/puppet/application/certificate_revocation_list.rb +7 -0
- data/vendored/puppet/lib/puppet/application/config.rb +4 -0
- data/vendored/puppet/lib/puppet/application/describe.rb +258 -0
- data/vendored/puppet/lib/puppet/application/device.rb +292 -0
- data/vendored/puppet/lib/puppet/application/doc.rb +230 -0
- data/vendored/puppet/lib/puppet/application/epp.rb +5 -0
- data/vendored/puppet/lib/puppet/application/face_base.rb +268 -0
- data/vendored/puppet/lib/puppet/application/facts.rb +4 -0
- data/vendored/puppet/lib/puppet/application/filebucket.rb +262 -0
- data/vendored/puppet/lib/puppet/application/generate.rb +5 -0
- data/vendored/puppet/lib/puppet/application/help.rb +4 -0
- data/vendored/puppet/lib/puppet/application/indirection_base.rb +4 -0
- data/vendored/puppet/lib/puppet/application/key.rb +4 -0
- data/vendored/puppet/lib/puppet/application/lookup.rb +361 -0
- data/vendored/puppet/lib/puppet/application/man.rb +4 -0
- data/vendored/puppet/lib/puppet/application/master.rb +317 -0
- data/vendored/puppet/lib/puppet/application/module.rb +4 -0
- data/vendored/puppet/lib/puppet/application/node.rb +4 -0
- data/vendored/puppet/lib/puppet/application/parser.rb +5 -0
- data/vendored/puppet/lib/puppet/application/plugin.rb +3 -0
- data/vendored/puppet/lib/puppet/application/report.rb +4 -0
- data/vendored/puppet/lib/puppet/application/resource.rb +231 -0
- data/vendored/puppet/lib/puppet/application/script.rb +255 -0
- data/vendored/puppet/lib/puppet/application/status.rb +4 -0
- data/vendored/puppet/lib/puppet/application_support.rb +57 -0
- data/vendored/puppet/lib/puppet/bindings.rb +147 -0
- data/vendored/puppet/lib/puppet/coercion.rb +40 -0
- data/vendored/puppet/lib/puppet/compilable_resource_type.rb +15 -0
- data/vendored/puppet/lib/puppet/configurer.rb +447 -0
- data/vendored/puppet/lib/puppet/configurer/downloader.rb +67 -0
- data/vendored/puppet/lib/puppet/configurer/downloader_factory.rb +34 -0
- data/vendored/puppet/lib/puppet/configurer/fact_handler.rb +46 -0
- data/vendored/puppet/lib/puppet/configurer/plugin_handler.rb +25 -0
- data/vendored/puppet/lib/puppet/confine.rb +80 -0
- data/vendored/puppet/lib/puppet/confine/any.rb +26 -0
- data/vendored/puppet/lib/puppet/confine/exists.rb +19 -0
- data/vendored/puppet/lib/puppet/confine/false.rb +19 -0
- data/vendored/puppet/lib/puppet/confine/feature.rb +17 -0
- data/vendored/puppet/lib/puppet/confine/true.rb +20 -0
- data/vendored/puppet/lib/puppet/confine/variable.rb +59 -0
- data/vendored/puppet/lib/puppet/confine_collection.rb +50 -0
- data/vendored/puppet/lib/puppet/confiner.rb +46 -0
- data/vendored/puppet/lib/puppet/context.rb +116 -0
- data/vendored/puppet/lib/puppet/context/trusted_information.rb +76 -0
- data/vendored/puppet/lib/puppet/daemon.rb +195 -0
- data/vendored/puppet/lib/puppet/data_binding.rb +14 -0
- data/vendored/puppet/lib/puppet/defaults.rb +1957 -0
- data/vendored/puppet/lib/puppet/environments.rb +509 -0
- data/vendored/puppet/lib/puppet/error.rb +117 -0
- data/vendored/puppet/lib/puppet/etc.rb +161 -0
- data/vendored/puppet/lib/puppet/external/dot.rb +326 -0
- data/vendored/puppet/lib/puppet/external/nagios.rb +46 -0
- data/vendored/puppet/lib/puppet/external/nagios/base.rb +472 -0
- data/vendored/puppet/lib/puppet/external/nagios/grammar.ry +248 -0
- data/vendored/puppet/lib/puppet/external/nagios/makefile +9 -0
- data/vendored/puppet/lib/puppet/external/nagios/parser.rb +400 -0
- data/vendored/puppet/lib/puppet/external/pson/common.rb +374 -0
- data/vendored/puppet/lib/puppet/external/pson/pure.rb +15 -0
- data/vendored/puppet/lib/puppet/external/pson/pure/generator.rb +395 -0
- data/vendored/puppet/lib/puppet/external/pson/pure/parser.rb +307 -0
- data/vendored/puppet/lib/puppet/external/pson/version.rb +8 -0
- data/vendored/puppet/lib/puppet/face.rb +12 -0
- data/vendored/puppet/lib/puppet/face/ca.rb +266 -0
- data/vendored/puppet/lib/puppet/face/catalog.rb +130 -0
- data/vendored/puppet/lib/puppet/face/catalog/select.rb +49 -0
- data/vendored/puppet/lib/puppet/face/certificate.rb +165 -0
- data/vendored/puppet/lib/puppet/face/certificate_request.rb +56 -0
- data/vendored/puppet/lib/puppet/face/certificate_revocation_list.rb +56 -0
- data/vendored/puppet/lib/puppet/face/config.rb +119 -0
- data/vendored/puppet/lib/puppet/face/epp.rb +527 -0
- data/vendored/puppet/lib/puppet/face/facts.rb +38 -0
- data/vendored/puppet/lib/puppet/face/generate.rb +64 -0
- data/vendored/puppet/lib/puppet/face/help.rb +205 -0
- data/vendored/puppet/lib/puppet/face/help/action.erb +86 -0
- data/vendored/puppet/lib/puppet/face/help/face.erb +114 -0
- data/vendored/puppet/lib/puppet/face/help/global.erb +16 -0
- data/vendored/puppet/lib/puppet/face/help/man.erb +152 -0
- data/vendored/puppet/lib/puppet/face/key.rb +16 -0
- data/vendored/puppet/lib/puppet/face/man.rb +101 -0
- data/vendored/puppet/lib/puppet/face/module.rb +19 -0
- data/vendored/puppet/lib/puppet/face/module/build.rb +63 -0
- data/vendored/puppet/lib/puppet/face/module/changes.rb +42 -0
- data/vendored/puppet/lib/puppet/face/module/generate.rb +251 -0
- data/vendored/puppet/lib/puppet/face/module/install.rb +149 -0
- data/vendored/puppet/lib/puppet/face/module/list.rb +279 -0
- data/vendored/puppet/lib/puppet/face/module/search.rb +94 -0
- data/vendored/puppet/lib/puppet/face/module/uninstall.rb +81 -0
- data/vendored/puppet/lib/puppet/face/module/upgrade.rb +90 -0
- data/vendored/puppet/lib/puppet/face/node.rb +42 -0
- data/vendored/puppet/lib/puppet/face/node/clean.rb +96 -0
- data/vendored/puppet/lib/puppet/face/parser.rb +161 -0
- data/vendored/puppet/lib/puppet/face/plugin.rb +58 -0
- data/vendored/puppet/lib/puppet/face/report.rb +54 -0
- data/vendored/puppet/lib/puppet/face/resource.rb +53 -0
- data/vendored/puppet/lib/puppet/face/status.rb +50 -0
- data/vendored/puppet/lib/puppet/feature/base.rb +95 -0
- data/vendored/puppet/lib/puppet/feature/bolt.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/cfpropertylist.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/eventlog.rb +5 -0
- data/vendored/puppet/lib/puppet/feature/hiera_eyaml.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/hocon.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/libuser.rb +8 -0
- data/vendored/puppet/lib/puppet/feature/msgpack.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/pe_license.rb +4 -0
- data/vendored/puppet/lib/puppet/feature/rack.rb +19 -0
- data/vendored/puppet/lib/puppet/feature/selinux.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/ssh.rb +3 -0
- data/vendored/puppet/lib/puppet/feature/telnet.rb +9 -0
- data/vendored/puppet/lib/puppet/feature/zlib.rb +5 -0
- data/vendored/puppet/lib/puppet/file_bucket.rb +4 -0
- data/vendored/puppet/lib/puppet/file_bucket/dipper.rb +174 -0
- data/vendored/puppet/lib/puppet/file_bucket/file.rb +131 -0
- data/vendored/puppet/lib/puppet/file_serving.rb +3 -0
- data/vendored/puppet/lib/puppet/file_serving/base.rb +85 -0
- data/vendored/puppet/lib/puppet/file_serving/configuration.rb +112 -0
- data/vendored/puppet/lib/puppet/file_serving/configuration/parser.rb +123 -0
- data/vendored/puppet/lib/puppet/file_serving/content.rb +43 -0
- data/vendored/puppet/lib/puppet/file_serving/fileset.rb +174 -0
- data/vendored/puppet/lib/puppet/file_serving/http_metadata.rb +46 -0
- data/vendored/puppet/lib/puppet/file_serving/metadata.rb +163 -0
- data/vendored/puppet/lib/puppet/file_serving/mount.rb +39 -0
- data/vendored/puppet/lib/puppet/file_serving/mount/file.rb +121 -0
- data/vendored/puppet/lib/puppet/file_serving/mount/modules.rb +24 -0
- data/vendored/puppet/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/vendored/puppet/lib/puppet/file_serving/mount/plugins.rb +35 -0
- data/vendored/puppet/lib/puppet/file_serving/mount/tasks.rb +21 -0
- data/vendored/puppet/lib/puppet/file_serving/terminus_helper.rb +31 -0
- data/vendored/puppet/lib/puppet/file_serving/terminus_selector.rb +32 -0
- data/vendored/puppet/lib/puppet/file_system.rb +404 -0
- data/vendored/puppet/lib/puppet/file_system/file_impl.rb +154 -0
- data/vendored/puppet/lib/puppet/file_system/memory_file.rb +66 -0
- data/vendored/puppet/lib/puppet/file_system/memory_impl.rb +86 -0
- data/vendored/puppet/lib/puppet/file_system/path_pattern.rb +98 -0
- data/vendored/puppet/lib/puppet/file_system/posix.rb +46 -0
- data/vendored/puppet/lib/puppet/file_system/uniquefile.rb +190 -0
- data/vendored/puppet/lib/puppet/file_system/windows.rb +130 -0
- data/vendored/puppet/lib/puppet/forge.rb +229 -0
- data/vendored/puppet/lib/puppet/forge/cache.rb +60 -0
- data/vendored/puppet/lib/puppet/forge/errors.rb +112 -0
- data/vendored/puppet/lib/puppet/forge/repository.rb +155 -0
- data/vendored/puppet/lib/puppet/functions.rb +745 -0
- data/vendored/puppet/lib/puppet/functions/alert.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/all.rb +104 -0
- data/vendored/puppet/lib/puppet/functions/annotate.rb +108 -0
- data/vendored/puppet/lib/puppet/functions/any.rb +109 -0
- data/vendored/puppet/lib/puppet/functions/assert_type.rb +93 -0
- data/vendored/puppet/lib/puppet/functions/binary_file.rb +19 -0
- data/vendored/puppet/lib/puppet/functions/break.rb +22 -0
- data/vendored/puppet/lib/puppet/functions/call.rb +42 -0
- data/vendored/puppet/lib/puppet/functions/contain.rb +39 -0
- data/vendored/puppet/lib/puppet/functions/crit.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/debug.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/defined.rb +160 -0
- data/vendored/puppet/lib/puppet/functions/dig.rb +23 -0
- data/vendored/puppet/lib/puppet/functions/each.rb +163 -0
- data/vendored/puppet/lib/puppet/functions/emerg.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/epp.rb +48 -0
- data/vendored/puppet/lib/puppet/functions/err.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/eyaml_lookup_key.rb +94 -0
- data/vendored/puppet/lib/puppet/functions/file_upload.rb +48 -0
- data/vendored/puppet/lib/puppet/functions/filter.rb +143 -0
- data/vendored/puppet/lib/puppet/functions/find_file.rb +31 -0
- data/vendored/puppet/lib/puppet/functions/hiera.rb +88 -0
- data/vendored/puppet/lib/puppet/functions/hiera_array.rb +81 -0
- data/vendored/puppet/lib/puppet/functions/hiera_hash.rb +92 -0
- data/vendored/puppet/lib/puppet/functions/hiera_include.rb +104 -0
- data/vendored/puppet/lib/puppet/functions/hocon_data.rb +41 -0
- data/vendored/puppet/lib/puppet/functions/import.rb +7 -0
- data/vendored/puppet/lib/puppet/functions/include.rb +27 -0
- data/vendored/puppet/lib/puppet/functions/info.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/inline_epp.rb +59 -0
- data/vendored/puppet/lib/puppet/functions/json_data.rb +33 -0
- data/vendored/puppet/lib/puppet/functions/lest.rb +17 -0
- data/vendored/puppet/lib/puppet/functions/lookup.rb +223 -0
- data/vendored/puppet/lib/puppet/functions/map.rb +126 -0
- data/vendored/puppet/lib/puppet/functions/match.rb +120 -0
- data/vendored/puppet/lib/puppet/functions/new.rb +32 -0
- data/vendored/puppet/lib/puppet/functions/next.rb +23 -0
- data/vendored/puppet/lib/puppet/functions/notice.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/reduce.rb +164 -0
- data/vendored/puppet/lib/puppet/functions/regsubst.rb +76 -0
- data/vendored/puppet/lib/puppet/functions/require.rb +43 -0
- data/vendored/puppet/lib/puppet/functions/return.rb +22 -0
- data/vendored/puppet/lib/puppet/functions/reverse_each.rb +25 -0
- data/vendored/puppet/lib/puppet/functions/run_command.rb +41 -0
- data/vendored/puppet/lib/puppet/functions/run_plan.rb +40 -0
- data/vendored/puppet/lib/puppet/functions/run_script.rb +50 -0
- data/vendored/puppet/lib/puppet/functions/run_task.rb +73 -0
- data/vendored/puppet/lib/puppet/functions/scanf.rb +44 -0
- data/vendored/puppet/lib/puppet/functions/slice.rb +111 -0
- data/vendored/puppet/lib/puppet/functions/split.rb +47 -0
- data/vendored/puppet/lib/puppet/functions/step.rb +26 -0
- data/vendored/puppet/lib/puppet/functions/strftime.rb +43 -0
- data/vendored/puppet/lib/puppet/functions/then.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/tree_each.rb +200 -0
- data/vendored/puppet/lib/puppet/functions/type.rb +31 -0
- data/vendored/puppet/lib/puppet/functions/unique.rb +132 -0
- data/vendored/puppet/lib/puppet/functions/unwrap.rb +40 -0
- data/vendored/puppet/lib/puppet/functions/versioncmp.rb +36 -0
- data/vendored/puppet/lib/puppet/functions/warning.rb +14 -0
- data/vendored/puppet/lib/puppet/functions/with.rb +30 -0
- data/vendored/puppet/lib/puppet/functions/yaml_data.rb +42 -0
- data/vendored/puppet/lib/puppet/generate/models/type/property.rb +70 -0
- data/vendored/puppet/lib/puppet/generate/models/type/type.rb +62 -0
- data/vendored/puppet/lib/puppet/generate/templates/type/pcore.erb +42 -0
- data/vendored/puppet/lib/puppet/generate/type.rb +239 -0
- data/vendored/puppet/lib/puppet/gettext/config.rb +70 -0
- data/vendored/puppet/lib/puppet/gettext/stubs.rb +11 -0
- data/vendored/puppet/lib/puppet/graph.rb +11 -0
- data/vendored/puppet/lib/puppet/graph/key.rb +26 -0
- data/vendored/puppet/lib/puppet/graph/prioritizer.rb +29 -0
- data/vendored/puppet/lib/puppet/graph/random_prioritizer.rb +16 -0
- data/vendored/puppet/lib/puppet/graph/rb_tree_map.rb +388 -0
- data/vendored/puppet/lib/puppet/graph/relationship_graph.rb +277 -0
- data/vendored/puppet/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/vendored/puppet/lib/puppet/graph/simple_graph.rb +539 -0
- data/vendored/puppet/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
- data/vendored/puppet/lib/puppet/indirector.rb +61 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/compiler.rb +384 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/json.rb +24 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/catalog/yaml.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate/file.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/certificate/rest.rb +16 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_request/ca.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_request/memory.rb +6 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_request/rest.rb +10 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/rest.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_status.rb +4 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_status/file.rb +91 -0
- data/vendored/puppet/lib/puppet/indirector/certificate_status/rest.rb +11 -0
- data/vendored/puppet/lib/puppet/indirector/code.rb +6 -0
- data/vendored/puppet/lib/puppet/indirector/data_binding/hiera.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/data_binding/none.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/direct_file_server.rb +17 -0
- data/vendored/puppet/lib/puppet/indirector/envelope.rb +11 -0
- data/vendored/puppet/lib/puppet/indirector/errors.rb +5 -0
- data/vendored/puppet/lib/puppet/indirector/exec.rb +38 -0
- data/vendored/puppet/lib/puppet/indirector/face.rb +153 -0
- data/vendored/puppet/lib/puppet/indirector/facts/facter.rb +90 -0
- data/vendored/puppet/lib/puppet/indirector/facts/memory.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/facts/network_device.rb +27 -0
- data/vendored/puppet/lib/puppet/indirector/facts/store_configs.rb +11 -0
- data/vendored/puppet/lib/puppet/indirector/facts/yaml.rb +86 -0
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/file.rb +255 -0
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
- data/vendored/puppet/lib/puppet/indirector/file_content.rb +5 -0
- data/vendored/puppet/lib/puppet/indirector/file_content/file.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/file_content/file_server.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/file_content/http.rb +15 -0
- data/vendored/puppet/lib/puppet/indirector/file_content/rest.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/file_content/selector.rb +30 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata.rb +5 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata/http.rb +27 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata/rest.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/file_metadata/selector.rb +30 -0
- data/vendored/puppet/lib/puppet/indirector/file_server.rb +59 -0
- data/vendored/puppet/lib/puppet/indirector/generic_http.rb +16 -0
- data/vendored/puppet/lib/puppet/indirector/hiera.rb +94 -0
- data/vendored/puppet/lib/puppet/indirector/indirection.rb +336 -0
- data/vendored/puppet/lib/puppet/indirector/json.rb +75 -0
- data/vendored/puppet/lib/puppet/indirector/key/ca.rb +16 -0
- data/vendored/puppet/lib/puppet/indirector/key/disabled_ca.rb +22 -0
- data/vendored/puppet/lib/puppet/indirector/key/file.rb +50 -0
- data/vendored/puppet/lib/puppet/indirector/key/memory.rb +6 -0
- data/vendored/puppet/lib/puppet/indirector/ldap.rb +80 -0
- data/vendored/puppet/lib/puppet/indirector/memory.rb +34 -0
- data/vendored/puppet/lib/puppet/indirector/msgpack.rb +83 -0
- data/vendored/puppet/lib/puppet/indirector/node/exec.rb +71 -0
- data/vendored/puppet/lib/puppet/indirector/node/ldap.rb +259 -0
- data/vendored/puppet/lib/puppet/indirector/node/memory.rb +10 -0
- data/vendored/puppet/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/node/plain.rb +21 -0
- data/vendored/puppet/lib/puppet/indirector/node/rest.rb +7 -0
- data/vendored/puppet/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/node/write_only_yaml.rb +37 -0
- data/vendored/puppet/lib/puppet/indirector/node/yaml.rb +13 -0
- data/vendored/puppet/lib/puppet/indirector/none.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/plain.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/vendored/puppet/lib/puppet/indirector/report/processor.rb +59 -0
- data/vendored/puppet/lib/puppet/indirector/report/rest.rb +28 -0
- data/vendored/puppet/lib/puppet/indirector/report/yaml.rb +11 -0
- data/vendored/puppet/lib/puppet/indirector/request.rb +274 -0
- data/vendored/puppet/lib/puppet/indirector/resource/ral.rb +63 -0
- data/vendored/puppet/lib/puppet/indirector/resource/store_configs.rb +12 -0
- data/vendored/puppet/lib/puppet/indirector/resource/validator.rb +8 -0
- data/vendored/puppet/lib/puppet/indirector/rest.rb +348 -0
- data/vendored/puppet/lib/puppet/indirector/ssl_file.rb +201 -0
- data/vendored/puppet/lib/puppet/indirector/status.rb +3 -0
- data/vendored/puppet/lib/puppet/indirector/status/local.rb +12 -0
- data/vendored/puppet/lib/puppet/indirector/status/rest.rb +9 -0
- data/vendored/puppet/lib/puppet/indirector/store_configs.rb +30 -0
- data/vendored/puppet/lib/puppet/indirector/terminus.rb +169 -0
- data/vendored/puppet/lib/puppet/indirector/yaml.rb +63 -0
- data/vendored/puppet/lib/puppet/info_service.rb +17 -0
- data/vendored/puppet/lib/puppet/info_service/class_information_service.rb +110 -0
- data/vendored/puppet/lib/puppet/info_service/task_information_service.rb +32 -0
- data/vendored/puppet/lib/puppet/interface.rb +236 -0
- data/vendored/puppet/lib/puppet/interface/action.rb +374 -0
- data/vendored/puppet/lib/puppet/interface/action_builder.rb +149 -0
- data/vendored/puppet/lib/puppet/interface/action_manager.rb +97 -0
- data/vendored/puppet/lib/puppet/interface/documentation.rb +342 -0
- data/vendored/puppet/lib/puppet/interface/face_collection.rb +130 -0
- data/vendored/puppet/lib/puppet/interface/option.rb +150 -0
- data/vendored/puppet/lib/puppet/interface/option_builder.rb +91 -0
- data/vendored/puppet/lib/puppet/interface/option_manager.rb +99 -0
- data/vendored/puppet/lib/puppet/loaders.rb +26 -0
- data/vendored/puppet/lib/puppet/metatype/manager.rb +195 -0
- data/vendored/puppet/lib/puppet/module.rb +473 -0
- data/vendored/puppet/lib/puppet/module/task.rb +90 -0
- data/vendored/puppet/lib/puppet/module_tool.rb +196 -0
- data/vendored/puppet/lib/puppet/module_tool/applications.rb +14 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/application.rb +90 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/builder.rb +148 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/installer.rb +352 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/searcher.rb +29 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/uninstaller.rb +118 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/unpacker.rb +100 -0
- data/vendored/puppet/lib/puppet/module_tool/applications/upgrader.rb +278 -0
- data/vendored/puppet/lib/puppet/module_tool/checksums.rb +49 -0
- data/vendored/puppet/lib/puppet/module_tool/contents_description.rb +88 -0
- data/vendored/puppet/lib/puppet/module_tool/dependency.rb +41 -0
- data/vendored/puppet/lib/puppet/module_tool/errors.rb +11 -0
- data/vendored/puppet/lib/puppet/module_tool/errors/base.rb +15 -0
- data/vendored/puppet/lib/puppet/module_tool/errors/installer.rb +95 -0
- data/vendored/puppet/lib/puppet/module_tool/errors/shared.rb +190 -0
- data/vendored/puppet/lib/puppet/module_tool/errors/uninstaller.rb +49 -0
- data/vendored/puppet/lib/puppet/module_tool/errors/upgrader.rb +63 -0
- data/vendored/puppet/lib/puppet/module_tool/install_directory.rb +45 -0
- data/vendored/puppet/lib/puppet/module_tool/installed_modules.rb +96 -0
- data/vendored/puppet/lib/puppet/module_tool/local_tarball.rb +90 -0
- data/vendored/puppet/lib/puppet/module_tool/metadata.rb +224 -0
- data/vendored/puppet/lib/puppet/module_tool/shared_behaviors.rb +180 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.fixtures.yml.erb +7 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.gitignore +18 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.rubocop.yml +42 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.yardopts +1 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +18 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +89 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +32 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +12 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +48 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +1 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +6 -0
- data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -0
- data/vendored/puppet/lib/puppet/module_tool/tar.rb +18 -0
- data/vendored/puppet/lib/puppet/module_tool/tar/gnu.rb +19 -0
- data/vendored/puppet/lib/puppet/module_tool/tar/mini.rb +53 -0
- data/vendored/puppet/lib/puppet/network.rb +3 -0
- data/vendored/puppet/lib/puppet/network/auth_config_parser.rb +85 -0
- data/vendored/puppet/lib/puppet/network/authconfig.rb +112 -0
- data/vendored/puppet/lib/puppet/network/authorization.rb +41 -0
- data/vendored/puppet/lib/puppet/network/authstore.rb +282 -0
- data/vendored/puppet/lib/puppet/network/client_request.rb +29 -0
- data/vendored/puppet/lib/puppet/network/format.rb +110 -0
- data/vendored/puppet/lib/puppet/network/format_handler.rb +108 -0
- data/vendored/puppet/lib/puppet/network/format_support.rb +134 -0
- data/vendored/puppet/lib/puppet/network/formats.rb +171 -0
- data/vendored/puppet/lib/puppet/network/http.rb +30 -0
- data/vendored/puppet/lib/puppet/network/http/api.rb +44 -0
- data/vendored/puppet/lib/puppet/network/http/api/ca.rb +2 -0
- data/vendored/puppet/lib/puppet/network/http/api/ca/v1.rb +11 -0
- data/vendored/puppet/lib/puppet/network/http/api/indirected_routes.rb +278 -0
- data/vendored/puppet/lib/puppet/network/http/api/indirection_type.rb +32 -0
- data/vendored/puppet/lib/puppet/network/http/api/master.rb +2 -0
- data/vendored/puppet/lib/puppet/network/http/api/master/v3.rb +28 -0
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/authorization.rb +18 -0
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environment.rb +82 -0
- data/vendored/puppet/lib/puppet/network/http/api/master/v3/environments.rb +35 -0
- data/vendored/puppet/lib/puppet/network/http/compression.rb +120 -0
- data/vendored/puppet/lib/puppet/network/http/connection.rb +332 -0
- data/vendored/puppet/lib/puppet/network/http/error.rb +73 -0
- data/vendored/puppet/lib/puppet/network/http/factory.rb +47 -0
- data/vendored/puppet/lib/puppet/network/http/handler.rb +183 -0
- data/vendored/puppet/lib/puppet/network/http/issues.rb +12 -0
- data/vendored/puppet/lib/puppet/network/http/memory_response.rb +13 -0
- data/vendored/puppet/lib/puppet/network/http/nocache_pool.rb +21 -0
- data/vendored/puppet/lib/puppet/network/http/pool.rb +129 -0
- data/vendored/puppet/lib/puppet/network/http/rack.rb +33 -0
- data/vendored/puppet/lib/puppet/network/http/rack/rest.rb +162 -0
- data/vendored/puppet/lib/puppet/network/http/request.rb +70 -0
- data/vendored/puppet/lib/puppet/network/http/response.rb +23 -0
- data/vendored/puppet/lib/puppet/network/http/route.rb +100 -0
- data/vendored/puppet/lib/puppet/network/http/session.rb +17 -0
- data/vendored/puppet/lib/puppet/network/http/site.rb +39 -0
- data/vendored/puppet/lib/puppet/network/http/webrick.rb +125 -0
- data/vendored/puppet/lib/puppet/network/http/webrick/rest.rb +114 -0
- data/vendored/puppet/lib/puppet/network/http_pool.rb +61 -0
- data/vendored/puppet/lib/puppet/network/resolver.rb +86 -0
- data/vendored/puppet/lib/puppet/network/rest_controller.rb +2 -0
- data/vendored/puppet/lib/puppet/network/rights.rb +209 -0
- data/vendored/puppet/lib/puppet/network/server.rb +39 -0
- data/vendored/puppet/lib/puppet/node.rb +262 -0
- data/vendored/puppet/lib/puppet/node/environment.rb +572 -0
- data/vendored/puppet/lib/puppet/node/facts.rb +128 -0
- data/vendored/puppet/lib/puppet/parameter.rb +567 -0
- data/vendored/puppet/lib/puppet/parameter/boolean.rb +15 -0
- data/vendored/puppet/lib/puppet/parameter/package_options.rb +31 -0
- data/vendored/puppet/lib/puppet/parameter/path.rb +57 -0
- data/vendored/puppet/lib/puppet/parameter/value.rb +91 -0
- data/vendored/puppet/lib/puppet/parameter/value_collection.rb +212 -0
- data/vendored/puppet/lib/puppet/parser.rb +20 -0
- data/vendored/puppet/lib/puppet/parser/abstract_compiler.rb +36 -0
- data/vendored/puppet/lib/puppet/parser/ast.rb +65 -0
- data/vendored/puppet/lib/puppet/parser/ast/block_expression.rb +15 -0
- data/vendored/puppet/lib/puppet/parser/ast/branch.rb +19 -0
- data/vendored/puppet/lib/puppet/parser/ast/hostclass.rb +27 -0
- data/vendored/puppet/lib/puppet/parser/ast/leaf.rb +75 -0
- data/vendored/puppet/lib/puppet/parser/ast/node.rb +17 -0
- data/vendored/puppet/lib/puppet/parser/ast/pops_bridge.rb +273 -0
- data/vendored/puppet/lib/puppet/parser/ast/resource.rb +66 -0
- data/vendored/puppet/lib/puppet/parser/ast/resource_instance.rb +10 -0
- data/vendored/puppet/lib/puppet/parser/ast/resourceparam.rb +31 -0
- data/vendored/puppet/lib/puppet/parser/ast/top_level_construct.rb +4 -0
- data/vendored/puppet/lib/puppet/parser/compiler.rb +788 -0
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +57 -0
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
- data/vendored/puppet/lib/puppet/parser/e4_parser_adapter.rb +60 -0
- data/vendored/puppet/lib/puppet/parser/environment_compiler.rb +199 -0
- data/vendored/puppet/lib/puppet/parser/files.rb +92 -0
- data/vendored/puppet/lib/puppet/parser/functions.rb +278 -0
- data/vendored/puppet/lib/puppet/parser/functions/assert_type.rb +60 -0
- data/vendored/puppet/lib/puppet/parser/functions/binary_file.rb +24 -0
- data/vendored/puppet/lib/puppet/parser/functions/break.rb +39 -0
- data/vendored/puppet/lib/puppet/parser/functions/contain.rb +30 -0
- data/vendored/puppet/lib/puppet/parser/functions/create_resources.rb +112 -0
- data/vendored/puppet/lib/puppet/parser/functions/defined.rb +107 -0
- data/vendored/puppet/lib/puppet/parser/functions/dig.rb +38 -0
- data/vendored/puppet/lib/puppet/parser/functions/digest.rb +5 -0
- data/vendored/puppet/lib/puppet/parser/functions/each.rb +104 -0
- data/vendored/puppet/lib/puppet/parser/functions/epp.rb +39 -0
- data/vendored/puppet/lib/puppet/parser/functions/fail.rb +4 -0
- data/vendored/puppet/lib/puppet/parser/functions/file.rb +33 -0
- data/vendored/puppet/lib/puppet/parser/functions/filter.rb +78 -0
- data/vendored/puppet/lib/puppet/parser/functions/find_file.rb +28 -0
- data/vendored/puppet/lib/puppet/parser/functions/fqdn_rand.rb +21 -0
- data/vendored/puppet/lib/puppet/parser/functions/generate.rb +38 -0
- data/vendored/puppet/lib/puppet/parser/functions/hiera.rb +103 -0
- data/vendored/puppet/lib/puppet/parser/functions/hiera_array.rb +92 -0
- data/vendored/puppet/lib/puppet/parser/functions/hiera_hash.rb +102 -0
- data/vendored/puppet/lib/puppet/parser/functions/hiera_include.rb +102 -0
- data/vendored/puppet/lib/puppet/parser/functions/include.rb +34 -0
- data/vendored/puppet/lib/puppet/parser/functions/inline_epp.rb +51 -0
- data/vendored/puppet/lib/puppet/parser/functions/inline_template.rb +27 -0
- data/vendored/puppet/lib/puppet/parser/functions/lest.rb +49 -0
- data/vendored/puppet/lib/puppet/parser/functions/lookup.rb +132 -0
- data/vendored/puppet/lib/puppet/parser/functions/map.rb +76 -0
- data/vendored/puppet/lib/puppet/parser/functions/match.rb +43 -0
- data/vendored/puppet/lib/puppet/parser/functions/md5.rb +5 -0
- data/vendored/puppet/lib/puppet/parser/functions/new.rb +1006 -0
- data/vendored/puppet/lib/puppet/parser/functions/next.rb +38 -0
- data/vendored/puppet/lib/puppet/parser/functions/realize.rb +20 -0
- data/vendored/puppet/lib/puppet/parser/functions/reduce.rb +137 -0
- data/vendored/puppet/lib/puppet/parser/functions/regsubst.rb +62 -0
- data/vendored/puppet/lib/puppet/parser/functions/require.rb +40 -0
- data/vendored/puppet/lib/puppet/parser/functions/return.rb +71 -0
- data/vendored/puppet/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/vendored/puppet/lib/puppet/parser/functions/scanf.rb +38 -0
- data/vendored/puppet/lib/puppet/parser/functions/sha1.rb +5 -0
- data/vendored/puppet/lib/puppet/parser/functions/shellquote.rb +61 -0
- data/vendored/puppet/lib/puppet/parser/functions/slice.rb +39 -0
- data/vendored/puppet/lib/puppet/parser/functions/split.rb +28 -0
- data/vendored/puppet/lib/puppet/parser/functions/sprintf.rb +36 -0
- data/vendored/puppet/lib/puppet/parser/functions/step.rb +84 -0
- data/vendored/puppet/lib/puppet/parser/functions/strftime.rb +185 -0
- data/vendored/puppet/lib/puppet/parser/functions/tag.rb +12 -0
- data/vendored/puppet/lib/puppet/parser/functions/tagged.rb +24 -0
- data/vendored/puppet/lib/puppet/parser/functions/template.rb +35 -0
- data/vendored/puppet/lib/puppet/parser/functions/then.rb +73 -0
- data/vendored/puppet/lib/puppet/parser/functions/type.rb +53 -0
- data/vendored/puppet/lib/puppet/parser/functions/versioncmp.rb +30 -0
- data/vendored/puppet/lib/puppet/parser/functions/with.rb +28 -0
- data/vendored/puppet/lib/puppet/parser/parser_factory.rb +30 -0
- data/vendored/puppet/lib/puppet/parser/relationship.rb +83 -0
- data/vendored/puppet/lib/puppet/parser/resource.rb +418 -0
- data/vendored/puppet/lib/puppet/parser/resource/param.rb +22 -0
- data/vendored/puppet/lib/puppet/parser/scope.rb +1112 -0
- data/vendored/puppet/lib/puppet/parser/script_compiler.rb +117 -0
- data/vendored/puppet/lib/puppet/parser/templatewrapper.rb +101 -0
- data/vendored/puppet/lib/puppet/parser/type_loader.rb +149 -0
- data/vendored/puppet/lib/puppet/plugins.rb +9 -0
- data/vendored/puppet/lib/puppet/plugins/configuration.rb +25 -0
- data/vendored/puppet/lib/puppet/plugins/syntax_checkers.rb +98 -0
- data/vendored/puppet/lib/puppet/pops.rb +120 -0
- data/vendored/puppet/lib/puppet/pops/adaptable.rb +206 -0
- data/vendored/puppet/lib/puppet/pops/adapters.rb +138 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/access_operator.rb +706 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/callable_signature.rb +107 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/closure.rb +373 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/collector_transformer.rb +233 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +86 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +29 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/exported_collector.rb +69 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +37 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/compare_operator.rb +252 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/epp_evaluator.rb +94 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/evaluator_impl.rb +1258 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/external_syntax_support.rb +45 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +82 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/puppet_proc.rb +69 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/relationship_operator.rb +185 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_converter.rb +200 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_resource_support.rb +117 -0
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_support.rb +538 -0
- data/vendored/puppet/lib/puppet/pops/functions/dispatch.rb +100 -0
- data/vendored/puppet/lib/puppet/pops/functions/dispatcher.rb +71 -0
- data/vendored/puppet/lib/puppet/pops/functions/function.rb +135 -0
- data/vendored/puppet/lib/puppet/pops/issue_reporter.rb +115 -0
- data/vendored/puppet/lib/puppet/pops/issues.rb +888 -0
- data/vendored/puppet/lib/puppet/pops/label_provider.rb +90 -0
- data/vendored/puppet/lib/puppet/pops/loader/base_loader.rb +166 -0
- data/vendored/puppet/lib/puppet/pops/loader/dependency_loader.rb +92 -0
- data/vendored/puppet/lib/puppet/pops/loader/gem_support.rb +49 -0
- data/vendored/puppet/lib/puppet/pops/loader/loader.rb +204 -0
- data/vendored/puppet/lib/puppet/pops/loader/loader_paths.rb +296 -0
- data/vendored/puppet/lib/puppet/pops/loader/module_loaders.rb +452 -0
- data/vendored/puppet/lib/puppet/pops/loader/null_loader.rb +60 -0
- data/vendored/puppet/lib/puppet/pops/loader/predefined_loader.rb +24 -0
- data/vendored/puppet/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
- data/vendored/puppet/lib/puppet/pops/loader/puppet_plan_instantiator.rb +84 -0
- data/vendored/puppet/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +79 -0
- data/vendored/puppet/lib/puppet/pops/loader/ruby_function_instantiator.rb +46 -0
- data/vendored/puppet/lib/puppet/pops/loader/runtime3_type_loader.rb +101 -0
- data/vendored/puppet/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/vendored/puppet/lib/puppet/pops/loader/static_loader.rb +164 -0
- data/vendored/puppet/lib/puppet/pops/loader/task_instantiator.rb +117 -0
- data/vendored/puppet/lib/puppet/pops/loader/type_definition_instantiator.rb +97 -0
- data/vendored/puppet/lib/puppet/pops/loader/typed_name.rb +54 -0
- data/vendored/puppet/lib/puppet/pops/loader/uri_helper.rb +22 -0
- data/vendored/puppet/lib/puppet/pops/loaders.rb +517 -0
- data/vendored/puppet/lib/puppet/pops/lookup.rb +96 -0
- data/vendored/puppet/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
- data/vendored/puppet/lib/puppet/pops/lookup/context.rb +200 -0
- data/vendored/puppet/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/vendored/puppet/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
- data/vendored/puppet/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
- data/vendored/puppet/lib/puppet/pops/lookup/data_provider.rb +92 -0
- data/vendored/puppet/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
- data/vendored/puppet/lib/puppet/pops/lookup/explainer.rb +594 -0
- data/vendored/puppet/lib/puppet/pops/lookup/function_provider.rb +110 -0
- data/vendored/puppet/lib/puppet/pops/lookup/global_data_provider.rb +75 -0
- data/vendored/puppet/lib/puppet/pops/lookup/hiera_config.rb +761 -0
- data/vendored/puppet/lib/puppet/pops/lookup/interpolation.rb +154 -0
- data/vendored/puppet/lib/puppet/pops/lookup/invocation.rb +261 -0
- data/vendored/puppet/lib/puppet/pops/lookup/location_resolver.rb +99 -0
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_adapter.rb +472 -0
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/vendored/puppet/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
- data/vendored/puppet/lib/puppet/pops/lookup/module_data_provider.rb +89 -0
- data/vendored/puppet/lib/puppet/pops/lookup/sub_lookup.rb +92 -0
- data/vendored/puppet/lib/puppet/pops/merge_strategy.rb +434 -0
- data/vendored/puppet/lib/puppet/pops/migration/migration_checker.rb +58 -0
- data/vendored/puppet/lib/puppet/pops/model/ast.pp +695 -0
- data/vendored/puppet/lib/puppet/pops/model/ast.rb +4870 -0
- data/vendored/puppet/lib/puppet/pops/model/ast_transformer.rb +131 -0
- data/vendored/puppet/lib/puppet/pops/model/factory.rb +1145 -0
- data/vendored/puppet/lib/puppet/pops/model/model_label_provider.rb +132 -0
- data/vendored/puppet/lib/puppet/pops/model/model_tree_dumper.rb +463 -0
- data/vendored/puppet/lib/puppet/pops/model/tree_dumper.rb +59 -0
- data/vendored/puppet/lib/puppet/pops/parser/code_merger.rb +29 -0
- data/vendored/puppet/lib/puppet/pops/parser/egrammar.ra +937 -0
- data/vendored/puppet/lib/puppet/pops/parser/eparser.rb +3347 -0
- data/vendored/puppet/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/vendored/puppet/lib/puppet/pops/parser/epp_support.rb +262 -0
- data/vendored/puppet/lib/puppet/pops/parser/evaluating_parser.rb +165 -0
- data/vendored/puppet/lib/puppet/pops/parser/heredoc_support.rb +143 -0
- data/vendored/puppet/lib/puppet/pops/parser/interpolation_support.rb +244 -0
- data/vendored/puppet/lib/puppet/pops/parser/lexer2.rb +796 -0
- data/vendored/puppet/lib/puppet/pops/parser/lexer_support.rb +220 -0
- data/vendored/puppet/lib/puppet/pops/parser/locatable.rb +23 -0
- data/vendored/puppet/lib/puppet/pops/parser/locator.rb +344 -0
- data/vendored/puppet/lib/puppet/pops/parser/parser_support.rb +247 -0
- data/vendored/puppet/lib/puppet/pops/parser/slurp_support.rb +120 -0
- data/vendored/puppet/lib/puppet/pops/patterns.rb +60 -0
- data/vendored/puppet/lib/puppet/pops/pcore.rb +107 -0
- data/vendored/puppet/lib/puppet/pops/puppet_stack.rb +43 -0
- data/vendored/puppet/lib/puppet/pops/resource/param.rb +55 -0
- data/vendored/puppet/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
- data/vendored/puppet/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
- data/vendored/puppet/lib/puppet/pops/semantic_error.rb +29 -0
- data/vendored/puppet/lib/puppet/pops/serialization.rb +41 -0
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
- data/vendored/puppet/lib/puppet/pops/serialization/abstract_writer.rb +215 -0
- data/vendored/puppet/lib/puppet/pops/serialization/deserializer.rb +80 -0
- data/vendored/puppet/lib/puppet/pops/serialization/extension.rb +157 -0
- data/vendored/puppet/lib/puppet/pops/serialization/from_data_converter.rb +169 -0
- data/vendored/puppet/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/vendored/puppet/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/vendored/puppet/lib/puppet/pops/serialization/json.rb +297 -0
- data/vendored/puppet/lib/puppet/pops/serialization/json_path.rb +126 -0
- data/vendored/puppet/lib/puppet/pops/serialization/object.rb +71 -0
- data/vendored/puppet/lib/puppet/pops/serialization/serializer.rb +139 -0
- data/vendored/puppet/lib/puppet/pops/serialization/time_factory.rb +67 -0
- data/vendored/puppet/lib/puppet/pops/serialization/to_data_converter.rb +301 -0
- data/vendored/puppet/lib/puppet/pops/time/timespan.rb +718 -0
- data/vendored/puppet/lib/puppet/pops/time/timestamp.rb +160 -0
- data/vendored/puppet/lib/puppet/pops/types/annotatable.rb +36 -0
- data/vendored/puppet/lib/puppet/pops/types/annotation.rb +71 -0
- data/vendored/puppet/lib/puppet/pops/types/class_loader.rb +129 -0
- data/vendored/puppet/lib/puppet/pops/types/enumeration.rb +16 -0
- data/vendored/puppet/lib/puppet/pops/types/execution_result.rb +126 -0
- data/vendored/puppet/lib/puppet/pops/types/implementation_registry.rb +141 -0
- data/vendored/puppet/lib/puppet/pops/types/iterable.rb +330 -0
- data/vendored/puppet/lib/puppet/pops/types/p_binary_type.rb +226 -0
- data/vendored/puppet/lib/puppet/pops/types/p_error_type.rb +146 -0
- data/vendored/puppet/lib/puppet/pops/types/p_init_type.rb +238 -0
- data/vendored/puppet/lib/puppet/pops/types/p_meta_type.rb +90 -0
- data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +976 -0
- data/vendored/puppet/lib/puppet/pops/types/p_runtime_type.rb +115 -0
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_range_type.rb +191 -0
- data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
- data/vendored/puppet/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
- data/vendored/puppet/lib/puppet/pops/types/p_timespan_type.rb +192 -0
- data/vendored/puppet/lib/puppet/pops/types/p_timestamp_type.rb +73 -0
- data/vendored/puppet/lib/puppet/pops/types/p_type_set_type.rb +361 -0
- data/vendored/puppet/lib/puppet/pops/types/puppet_object.rb +30 -0
- data/vendored/puppet/lib/puppet/pops/types/recursion_guard.rb +136 -0
- data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +432 -0
- data/vendored/puppet/lib/puppet/pops/types/ruby_method.rb +31 -0
- data/vendored/puppet/lib/puppet/pops/types/string_converter.rb +1102 -0
- data/vendored/puppet/lib/puppet/pops/types/task.rb +116 -0
- data/vendored/puppet/lib/puppet/pops/types/tree_iterators.rb +250 -0
- data/vendored/puppet/lib/puppet/pops/types/type_acceptor.rb +25 -0
- data/vendored/puppet/lib/puppet/pops/types/type_asserter.rb +47 -0
- data/vendored/puppet/lib/puppet/pops/types/type_assertion_error.rb +27 -0
- data/vendored/puppet/lib/puppet/pops/types/type_calculator.rb +799 -0
- data/vendored/puppet/lib/puppet/pops/types/type_conversion_error.rb +15 -0
- data/vendored/puppet/lib/puppet/pops/types/type_factory.rb +599 -0
- data/vendored/puppet/lib/puppet/pops/types/type_formatter.rb +769 -0
- data/vendored/puppet/lib/puppet/pops/types/type_mismatch_describer.rb +1062 -0
- data/vendored/puppet/lib/puppet/pops/types/type_parser.rb +602 -0
- data/vendored/puppet/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/vendored/puppet/lib/puppet/pops/types/types.rb +3519 -0
- data/vendored/puppet/lib/puppet/pops/utils.rb +119 -0
- data/vendored/puppet/lib/puppet/pops/validation.rb +464 -0
- data/vendored/puppet/lib/puppet/pops/validation/checker4_0.rb +996 -0
- data/vendored/puppet/lib/puppet/pops/validation/tasks_checker.rb +60 -0
- data/vendored/puppet/lib/puppet/pops/validation/validator_factory_4_0.rb +43 -0
- data/vendored/puppet/lib/puppet/pops/visitable.rb +6 -0
- data/vendored/puppet/lib/puppet/pops/visitor.rb +116 -0
- data/vendored/puppet/lib/puppet/property.rb +600 -0
- data/vendored/puppet/lib/puppet/property/boolean.rb +7 -0
- data/vendored/puppet/lib/puppet/property/ensure.rb +105 -0
- data/vendored/puppet/lib/puppet/property/keyvalue.rb +95 -0
- data/vendored/puppet/lib/puppet/property/list.rb +69 -0
- data/vendored/puppet/lib/puppet/property/ordered_list.rb +29 -0
- data/vendored/puppet/lib/puppet/provider.rb +603 -0
- data/vendored/puppet/lib/puppet/provider/aixobject.rb +392 -0
- data/vendored/puppet/lib/puppet/provider/augeas/augeas.rb +567 -0
- data/vendored/puppet/lib/puppet/provider/cisco.rb +9 -0
- data/vendored/puppet/lib/puppet/provider/command.rb +25 -0
- data/vendored/puppet/lib/puppet/provider/computer/computer.rb +20 -0
- data/vendored/puppet/lib/puppet/provider/confine.rb +6 -0
- data/vendored/puppet/lib/puppet/provider/cron/crontab.rb +297 -0
- data/vendored/puppet/lib/puppet/provider/exec.rb +98 -0
- data/vendored/puppet/lib/puppet/provider/exec/posix.rb +48 -0
- data/vendored/puppet/lib/puppet/provider/exec/shell.rb +25 -0
- data/vendored/puppet/lib/puppet/provider/exec/windows.rb +55 -0
- data/vendored/puppet/lib/puppet/provider/file/posix.rb +136 -0
- data/vendored/puppet/lib/puppet/provider/file/windows.rb +104 -0
- data/vendored/puppet/lib/puppet/provider/group/aix.rb +141 -0
- data/vendored/puppet/lib/puppet/provider/group/directoryservice.rb +22 -0
- data/vendored/puppet/lib/puppet/provider/group/groupadd.rb +85 -0
- data/vendored/puppet/lib/puppet/provider/group/ldap.rb +45 -0
- data/vendored/puppet/lib/puppet/provider/group/pw.rb +49 -0
- data/vendored/puppet/lib/puppet/provider/group/windows_adsi.rb +109 -0
- data/vendored/puppet/lib/puppet/provider/host/parsed.rb +46 -0
- data/vendored/puppet/lib/puppet/provider/interface/cisco.rb +27 -0
- data/vendored/puppet/lib/puppet/provider/ldap.rb +137 -0
- data/vendored/puppet/lib/puppet/provider/macauthorization/macauthorization.rb +298 -0
- data/vendored/puppet/lib/puppet/provider/mailalias/aliases.rb +50 -0
- data/vendored/puppet/lib/puppet/provider/maillist/mailman.rb +108 -0
- data/vendored/puppet/lib/puppet/provider/mcx/mcxcontent.rb +173 -0
- data/vendored/puppet/lib/puppet/provider/mount.rb +59 -0
- data/vendored/puppet/lib/puppet/provider/mount/parsed.rb +282 -0
- data/vendored/puppet/lib/puppet/provider/naginator.rb +63 -0
- data/vendored/puppet/lib/puppet/provider/nameservice.rb +317 -0
- data/vendored/puppet/lib/puppet/provider/nameservice/directoryservice.rb +507 -0
- data/vendored/puppet/lib/puppet/provider/nameservice/objectadd.rb +33 -0
- data/vendored/puppet/lib/puppet/provider/nameservice/pw.rb +21 -0
- data/vendored/puppet/lib/puppet/provider/network_device.rb +72 -0
- data/vendored/puppet/lib/puppet/provider/package.rb +56 -0
- data/vendored/puppet/lib/puppet/provider/package/aix.rb +152 -0
- data/vendored/puppet/lib/puppet/provider/package/appdmg.rb +110 -0
- data/vendored/puppet/lib/puppet/provider/package/apple.rb +47 -0
- data/vendored/puppet/lib/puppet/provider/package/apt.rb +116 -0
- data/vendored/puppet/lib/puppet/provider/package/aptitude.rb +29 -0
- data/vendored/puppet/lib/puppet/provider/package/aptrpm.rb +83 -0
- data/vendored/puppet/lib/puppet/provider/package/blastwave.rb +111 -0
- data/vendored/puppet/lib/puppet/provider/package/dnf.rb +46 -0
- data/vendored/puppet/lib/puppet/provider/package/dpkg.rb +165 -0
- data/vendored/puppet/lib/puppet/provider/package/fink.rb +79 -0
- data/vendored/puppet/lib/puppet/provider/package/freebsd.rb +47 -0
- data/vendored/puppet/lib/puppet/provider/package/gem.rb +175 -0
- data/vendored/puppet/lib/puppet/provider/package/hpux.rb +44 -0
- data/vendored/puppet/lib/puppet/provider/package/macports.rb +107 -0
- data/vendored/puppet/lib/puppet/provider/package/nim.rb +283 -0
- data/vendored/puppet/lib/puppet/provider/package/openbsd.rb +242 -0
- data/vendored/puppet/lib/puppet/provider/package/opkg.rb +81 -0
- data/vendored/puppet/lib/puppet/provider/package/pacman.rb +267 -0
- data/vendored/puppet/lib/puppet/provider/package/pip.rb +188 -0
- data/vendored/puppet/lib/puppet/provider/package/pip3.rb +20 -0
- data/vendored/puppet/lib/puppet/provider/package/pkg.rb +249 -0
- data/vendored/puppet/lib/puppet/provider/package/pkgdmg.rb +152 -0
- data/vendored/puppet/lib/puppet/provider/package/pkgin.rb +87 -0
- data/vendored/puppet/lib/puppet/provider/package/pkgng.rb +143 -0
- data/vendored/puppet/lib/puppet/provider/package/pkgutil.rb +186 -0
- data/vendored/puppet/lib/puppet/provider/package/portage.rb +301 -0
- data/vendored/puppet/lib/puppet/provider/package/ports.rb +91 -0
- data/vendored/puppet/lib/puppet/provider/package/portupgrade.rb +239 -0
- data/vendored/puppet/lib/puppet/provider/package/puppet_gem.rb +17 -0
- data/vendored/puppet/lib/puppet/provider/package/rpm.rb +405 -0
- data/vendored/puppet/lib/puppet/provider/package/rug.rb +51 -0
- data/vendored/puppet/lib/puppet/provider/package/sun.rb +133 -0
- data/vendored/puppet/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/vendored/puppet/lib/puppet/provider/package/tdnf.rb +28 -0
- data/vendored/puppet/lib/puppet/provider/package/up2date.rb +40 -0
- data/vendored/puppet/lib/puppet/provider/package/urpmi.rb +55 -0
- data/vendored/puppet/lib/puppet/provider/package/windows.rb +113 -0
- data/vendored/puppet/lib/puppet/provider/package/windows/exe_package.rb +71 -0
- data/vendored/puppet/lib/puppet/provider/package/windows/msi_package.rb +62 -0
- data/vendored/puppet/lib/puppet/provider/package/windows/package.rb +100 -0
- data/vendored/puppet/lib/puppet/provider/package/yum.rb +278 -0
- data/vendored/puppet/lib/puppet/provider/package/zypper.rb +145 -0
- data/vendored/puppet/lib/puppet/provider/parsedfile.rb +459 -0
- data/vendored/puppet/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +590 -0
- data/vendored/puppet/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
- data/vendored/puppet/lib/puppet/provider/selmodule/semodule.rb +138 -0
- data/vendored/puppet/lib/puppet/provider/service/base.rb +121 -0
- data/vendored/puppet/lib/puppet/provider/service/bsd.rb +51 -0
- data/vendored/puppet/lib/puppet/provider/service/daemontools.rb +194 -0
- data/vendored/puppet/lib/puppet/provider/service/debian.rb +74 -0
- data/vendored/puppet/lib/puppet/provider/service/freebsd.rb +143 -0
- data/vendored/puppet/lib/puppet/provider/service/gentoo.rb +45 -0
- data/vendored/puppet/lib/puppet/provider/service/init.rb +193 -0
- data/vendored/puppet/lib/puppet/provider/service/launchd.rb +346 -0
- data/vendored/puppet/lib/puppet/provider/service/openbsd.rb +100 -0
- data/vendored/puppet/lib/puppet/provider/service/openrc.rb +71 -0
- data/vendored/puppet/lib/puppet/provider/service/openwrt.rb +36 -0
- data/vendored/puppet/lib/puppet/provider/service/rcng.rb +51 -0
- data/vendored/puppet/lib/puppet/provider/service/redhat.rb +71 -0
- data/vendored/puppet/lib/puppet/provider/service/runit.rb +111 -0
- data/vendored/puppet/lib/puppet/provider/service/service.rb +42 -0
- data/vendored/puppet/lib/puppet/provider/service/smf.rb +167 -0
- data/vendored/puppet/lib/puppet/provider/service/src.rb +147 -0
- data/vendored/puppet/lib/puppet/provider/service/systemd.rb +186 -0
- data/vendored/puppet/lib/puppet/provider/service/upstart.rb +359 -0
- data/vendored/puppet/lib/puppet/provider/service/windows.rb +106 -0
- data/vendored/puppet/lib/puppet/provider/ssh_authorized_key/parsed.rb +105 -0
- data/vendored/puppet/lib/puppet/provider/sshkey/parsed.rb +50 -0
- data/vendored/puppet/lib/puppet/provider/user/aix.rb +375 -0
- data/vendored/puppet/lib/puppet/provider/user/directoryservice.rb +632 -0
- data/vendored/puppet/lib/puppet/provider/user/hpux.rb +95 -0
- data/vendored/puppet/lib/puppet/provider/user/ldap.rb +128 -0
- data/vendored/puppet/lib/puppet/provider/user/openbsd.rb +75 -0
- data/vendored/puppet/lib/puppet/provider/user/pw.rb +98 -0
- data/vendored/puppet/lib/puppet/provider/user/user_role_add.rb +227 -0
- data/vendored/puppet/lib/puppet/provider/user/useradd.rb +231 -0
- data/vendored/puppet/lib/puppet/provider/user/windows_adsi.rb +148 -0
- data/vendored/puppet/lib/puppet/provider/vlan/cisco.rb +28 -0
- data/vendored/puppet/lib/puppet/provider/yumrepo/inifile.rb +304 -0
- data/vendored/puppet/lib/puppet/provider/zfs/zfs.rb +84 -0
- data/vendored/puppet/lib/puppet/provider/zone/solaris.rb +364 -0
- data/vendored/puppet/lib/puppet/provider/zpool/zpool.rb +125 -0
- data/vendored/puppet/lib/puppet/reference/configuration.rb +82 -0
- data/vendored/puppet/lib/puppet/reference/function.rb +17 -0
- data/vendored/puppet/lib/puppet/reference/indirection.rb +71 -0
- data/vendored/puppet/lib/puppet/reference/metaparameter.rb +35 -0
- data/vendored/puppet/lib/puppet/reference/providers.rb +118 -0
- data/vendored/puppet/lib/puppet/reference/report.rb +20 -0
- data/vendored/puppet/lib/puppet/reference/type.rb +114 -0
- data/vendored/puppet/lib/puppet/relationship.rb +88 -0
- data/vendored/puppet/lib/puppet/reports.rb +93 -0
- data/vendored/puppet/lib/puppet/reports/http.rb +37 -0
- data/vendored/puppet/lib/puppet/reports/log.rb +14 -0
- data/vendored/puppet/lib/puppet/reports/store.rb +68 -0
- data/vendored/puppet/lib/puppet/resource.rb +669 -0
- data/vendored/puppet/lib/puppet/resource/capability_finder.rb +147 -0
- data/vendored/puppet/lib/puppet/resource/catalog.rb +667 -0
- data/vendored/puppet/lib/puppet/resource/status.rb +221 -0
- data/vendored/puppet/lib/puppet/resource/type.rb +524 -0
- data/vendored/puppet/lib/puppet/resource/type_collection.rb +263 -0
- data/vendored/puppet/lib/puppet/scheduler.rb +16 -0
- data/vendored/puppet/lib/puppet/scheduler/job.rb +53 -0
- data/vendored/puppet/lib/puppet/scheduler/scheduler.rb +44 -0
- data/vendored/puppet/lib/puppet/scheduler/splay_job.rb +32 -0
- data/vendored/puppet/lib/puppet/scheduler/timer.rb +13 -0
- data/vendored/puppet/lib/puppet/settings.rb +1457 -0
- data/vendored/puppet/lib/puppet/settings/array_setting.rb +17 -0
- data/vendored/puppet/lib/puppet/settings/autosign_setting.rb +22 -0
- data/vendored/puppet/lib/puppet/settings/base_setting.rb +177 -0
- data/vendored/puppet/lib/puppet/settings/boolean_setting.rb +32 -0
- data/vendored/puppet/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
- data/vendored/puppet/lib/puppet/settings/config_file.rb +143 -0
- data/vendored/puppet/lib/puppet/settings/directory_setting.rb +18 -0
- data/vendored/puppet/lib/puppet/settings/duration_setting.rb +32 -0
- data/vendored/puppet/lib/puppet/settings/enum_setting.rb +16 -0
- data/vendored/puppet/lib/puppet/settings/environment_conf.rb +204 -0
- data/vendored/puppet/lib/puppet/settings/errors.rb +11 -0
- data/vendored/puppet/lib/puppet/settings/file_or_directory_setting.rb +40 -0
- data/vendored/puppet/lib/puppet/settings/file_setting.rb +245 -0
- data/vendored/puppet/lib/puppet/settings/ini_file.rb +200 -0
- data/vendored/puppet/lib/puppet/settings/path_setting.rb +8 -0
- data/vendored/puppet/lib/puppet/settings/priority_setting.rb +42 -0
- data/vendored/puppet/lib/puppet/settings/server_list_setting.rb +20 -0
- data/vendored/puppet/lib/puppet/settings/string_setting.rb +9 -0
- data/vendored/puppet/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
- data/vendored/puppet/lib/puppet/settings/terminus_setting.rb +14 -0
- data/vendored/puppet/lib/puppet/settings/ttl_setting.rb +46 -0
- data/vendored/puppet/lib/puppet/settings/value_translator.rb +15 -0
- data/vendored/puppet/lib/puppet/ssl.rb +13 -0
- data/vendored/puppet/lib/puppet/ssl/base.rb +153 -0
- data/vendored/puppet/lib/puppet/ssl/certificate.rb +95 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_authority.rb +553 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_authority/autosign_command.rb +45 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_authority/interface.rb +324 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_factory.rb +219 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_request.rb +327 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_revocation_list.rb +111 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_signer.rb +27 -0
- data/vendored/puppet/lib/puppet/ssl/configuration.rb +61 -0
- data/vendored/puppet/lib/puppet/ssl/digest.rb +20 -0
- data/vendored/puppet/lib/puppet/ssl/host.rb +400 -0
- data/vendored/puppet/lib/puppet/ssl/inventory.rb +55 -0
- data/vendored/puppet/lib/puppet/ssl/key.rb +63 -0
- data/vendored/puppet/lib/puppet/ssl/oids.rb +187 -0
- data/vendored/puppet/lib/puppet/ssl/validator.rb +60 -0
- data/vendored/puppet/lib/puppet/ssl/validator/default_validator.rb +173 -0
- data/vendored/puppet/lib/puppet/ssl/validator/no_validator.rb +20 -0
- data/vendored/puppet/lib/puppet/status.rb +40 -0
- data/vendored/puppet/lib/puppet/syntax_checkers.rb +3 -0
- data/vendored/puppet/lib/puppet/syntax_checkers/base64.rb +41 -0
- data/vendored/puppet/lib/puppet/syntax_checkers/json.rb +35 -0
- data/vendored/puppet/lib/puppet/test/test_helper.rb +252 -0
- data/vendored/puppet/lib/puppet/transaction.rb +417 -0
- data/vendored/puppet/lib/puppet/transaction/additional_resource_generator.rb +220 -0
- data/vendored/puppet/lib/puppet/transaction/event.rb +144 -0
- data/vendored/puppet/lib/puppet/transaction/event_manager.rb +167 -0
- data/vendored/puppet/lib/puppet/transaction/persistence.rb +84 -0
- data/vendored/puppet/lib/puppet/transaction/report.rb +460 -0
- data/vendored/puppet/lib/puppet/transaction/resource_harness.rb +318 -0
- data/vendored/puppet/lib/puppet/type.rb +2664 -0
- data/vendored/puppet/lib/puppet/type/augeas.rb +211 -0
- data/vendored/puppet/lib/puppet/type/component.rb +88 -0
- data/vendored/puppet/lib/puppet/type/computer.rb +66 -0
- data/vendored/puppet/lib/puppet/type/cron.rb +475 -0
- data/vendored/puppet/lib/puppet/type/exec.rb +622 -0
- data/vendored/puppet/lib/puppet/type/file.rb +1039 -0
- data/vendored/puppet/lib/puppet/type/file/checksum.rb +44 -0
- data/vendored/puppet/lib/puppet/type/file/checksum_value.rb +53 -0
- data/vendored/puppet/lib/puppet/type/file/content.rb +160 -0
- data/vendored/puppet/lib/puppet/type/file/ctime.rb +20 -0
- data/vendored/puppet/lib/puppet/type/file/data_sync.rb +92 -0
- data/vendored/puppet/lib/puppet/type/file/ensure.rb +192 -0
- data/vendored/puppet/lib/puppet/type/file/group.rb +41 -0
- data/vendored/puppet/lib/puppet/type/file/mode.rb +177 -0
- data/vendored/puppet/lib/puppet/type/file/mtime.rb +18 -0
- data/vendored/puppet/lib/puppet/type/file/owner.rb +44 -0
- data/vendored/puppet/lib/puppet/type/file/selcontext.rb +141 -0
- data/vendored/puppet/lib/puppet/type/file/source.rb +356 -0
- data/vendored/puppet/lib/puppet/type/file/target.rb +87 -0
- data/vendored/puppet/lib/puppet/type/file/type.rb +19 -0
- data/vendored/puppet/lib/puppet/type/filebucket.rb +117 -0
- data/vendored/puppet/lib/puppet/type/group.rb +206 -0
- data/vendored/puppet/lib/puppet/type/host.rb +95 -0
- data/vendored/puppet/lib/puppet/type/interface.rb +121 -0
- data/vendored/puppet/lib/puppet/type/k5login.rb +88 -0
- data/vendored/puppet/lib/puppet/type/macauthorization.rb +167 -0
- data/vendored/puppet/lib/puppet/type/mailalias.rb +46 -0
- data/vendored/puppet/lib/puppet/type/maillist.rb +62 -0
- data/vendored/puppet/lib/puppet/type/mcx.rb +98 -0
- data/vendored/puppet/lib/puppet/type/mount.rb +310 -0
- data/vendored/puppet/lib/puppet/type/nagios_command.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_contact.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_contactgroup.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_host.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_hostescalation.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_hostextinfo.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_hostgroup.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_service.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_servicedependency.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_serviceescalation.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_servicegroup.rb +3 -0
- data/vendored/puppet/lib/puppet/type/nagios_timeperiod.rb +3 -0
- data/vendored/puppet/lib/puppet/type/notify.rb +46 -0
- data/vendored/puppet/lib/puppet/type/package.rb +571 -0
- data/vendored/puppet/lib/puppet/type/resources.rb +180 -0
- data/vendored/puppet/lib/puppet/type/router.rb +17 -0
- data/vendored/puppet/lib/puppet/type/schedule.rb +469 -0
- data/vendored/puppet/lib/puppet/type/scheduled_task.rb +183 -0
- data/vendored/puppet/lib/puppet/type/selboolean.rb +26 -0
- data/vendored/puppet/lib/puppet/type/selmodule.rb +59 -0
- data/vendored/puppet/lib/puppet/type/service.rb +258 -0
- data/vendored/puppet/lib/puppet/type/ssh_authorized_key.rb +143 -0
- data/vendored/puppet/lib/puppet/type/sshkey.rb +83 -0
- data/vendored/puppet/lib/puppet/type/stage.rb +27 -0
- data/vendored/puppet/lib/puppet/type/tidy.rb +336 -0
- data/vendored/puppet/lib/puppet/type/user.rb +770 -0
- data/vendored/puppet/lib/puppet/type/vlan.rb +26 -0
- data/vendored/puppet/lib/puppet/type/whit.rb +34 -0
- data/vendored/puppet/lib/puppet/type/yumrepo.rb +409 -0
- data/vendored/puppet/lib/puppet/type/zfs.rb +150 -0
- data/vendored/puppet/lib/puppet/type/zone.rb +382 -0
- data/vendored/puppet/lib/puppet/type/zpool.rb +91 -0
- data/vendored/puppet/lib/puppet/util.rb +705 -0
- data/vendored/puppet/lib/puppet/util/at_fork.rb +35 -0
- data/vendored/puppet/lib/puppet/util/at_fork/noop.rb +18 -0
- data/vendored/puppet/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/vendored/puppet/lib/puppet/util/autoload.rb +226 -0
- data/vendored/puppet/lib/puppet/util/backups.rb +86 -0
- data/vendored/puppet/lib/puppet/util/character_encoding.rb +98 -0
- data/vendored/puppet/lib/puppet/util/checksums.rb +282 -0
- data/vendored/puppet/lib/puppet/util/classgen.rb +228 -0
- data/vendored/puppet/lib/puppet/util/colors.rb +100 -0
- data/vendored/puppet/lib/puppet/util/command_line.rb +185 -0
- data/vendored/puppet/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
- data/vendored/puppet/lib/puppet/util/command_line/trollop.rb +824 -0
- data/vendored/puppet/lib/puppet/util/constant_inflector.rb +24 -0
- data/vendored/puppet/lib/puppet/util/diff.rb +79 -0
- data/vendored/puppet/lib/puppet/util/docs.rb +128 -0
- data/vendored/puppet/lib/puppet/util/errors.rb +108 -0
- data/vendored/puppet/lib/puppet/util/execution.rb +412 -0
- data/vendored/puppet/lib/puppet/util/execution_stub.rb +26 -0
- data/vendored/puppet/lib/puppet/util/feature.rb +95 -0
- data/vendored/puppet/lib/puppet/util/file_watcher.rb +28 -0
- data/vendored/puppet/lib/puppet/util/fileparsing.rb +377 -0
- data/vendored/puppet/lib/puppet/util/filetype.rb +309 -0
- data/vendored/puppet/lib/puppet/util/http_proxy.rb +197 -0
- data/vendored/puppet/lib/puppet/util/inifile.rb +341 -0
- data/vendored/puppet/lib/puppet/util/instance_loader.rb +81 -0
- data/vendored/puppet/lib/puppet/util/json_lockfile.rb +44 -0
- data/vendored/puppet/lib/puppet/util/ldap.rb +2 -0
- data/vendored/puppet/lib/puppet/util/ldap/connection.rb +71 -0
- data/vendored/puppet/lib/puppet/util/ldap/generator.rb +42 -0
- data/vendored/puppet/lib/puppet/util/ldap/manager.rb +278 -0
- data/vendored/puppet/lib/puppet/util/libuser.conf +15 -0
- data/vendored/puppet/lib/puppet/util/libuser.rb +12 -0
- data/vendored/puppet/lib/puppet/util/limits.rb +12 -0
- data/vendored/puppet/lib/puppet/util/lockfile.rb +66 -0
- data/vendored/puppet/lib/puppet/util/log.rb +423 -0
- data/vendored/puppet/lib/puppet/util/log/destination.rb +49 -0
- data/vendored/puppet/lib/puppet/util/log/destinations.rb +249 -0
- data/vendored/puppet/lib/puppet/util/logging.rb +318 -0
- data/vendored/puppet/lib/puppet/util/metaid.rb +21 -0
- data/vendored/puppet/lib/puppet/util/methodhelper.rb +32 -0
- data/vendored/puppet/lib/puppet/util/metric.rb +64 -0
- data/vendored/puppet/lib/puppet/util/monkey_patches.rb +108 -0
- data/vendored/puppet/lib/puppet/util/multi_match.rb +51 -0
- data/vendored/puppet/lib/puppet/util/nagios_maker.rb +85 -0
- data/vendored/puppet/lib/puppet/util/network_device.rb +17 -0
- data/vendored/puppet/lib/puppet/util/network_device/base.rb +23 -0
- data/vendored/puppet/lib/puppet/util/network_device/cisco.rb +4 -0
- data/vendored/puppet/lib/puppet/util/network_device/cisco/device.rb +285 -0
- data/vendored/puppet/lib/puppet/util/network_device/cisco/facts.rb +72 -0
- data/vendored/puppet/lib/puppet/util/network_device/cisco/interface.rb +94 -0
- data/vendored/puppet/lib/puppet/util/network_device/config.rb +98 -0
- data/vendored/puppet/lib/puppet/util/network_device/ipcalc.rb +68 -0
- data/vendored/puppet/lib/puppet/util/network_device/transport.rb +5 -0
- data/vendored/puppet/lib/puppet/util/network_device/transport/base.rb +26 -0
- data/vendored/puppet/lib/puppet/util/network_device/transport/ssh.rb +126 -0
- data/vendored/puppet/lib/puppet/util/network_device/transport/telnet.rb +47 -0
- data/vendored/puppet/lib/puppet/util/package.rb +31 -0
- data/vendored/puppet/lib/puppet/util/pidlock.rb +62 -0
- data/vendored/puppet/lib/puppet/util/platform.rb +22 -0
- data/vendored/puppet/lib/puppet/util/plist.rb +153 -0
- data/vendored/puppet/lib/puppet/util/posix.rb +137 -0
- data/vendored/puppet/lib/puppet/util/profiler.rb +53 -0
- data/vendored/puppet/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/vendored/puppet/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/vendored/puppet/lib/puppet/util/profiler/logging.rb +48 -0
- data/vendored/puppet/lib/puppet/util/profiler/object_counts.rb +17 -0
- data/vendored/puppet/lib/puppet/util/profiler/wall_clock.rb +35 -0
- data/vendored/puppet/lib/puppet/util/provider_features.rb +184 -0
- data/vendored/puppet/lib/puppet/util/psych_support.rb +30 -0
- data/vendored/puppet/lib/puppet/util/rdoc.rb +60 -0
- data/vendored/puppet/lib/puppet/util/rdoc/code_objects.rb +294 -0
- data/vendored/puppet/lib/puppet/util/rdoc/generators/puppet_generator.rb +910 -0
- data/vendored/puppet/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
- data/vendored/puppet/lib/puppet/util/rdoc/parser.rb +12 -0
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +259 -0
- data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
- data/vendored/puppet/lib/puppet/util/reference.rb +126 -0
- data/vendored/puppet/lib/puppet/util/resource_template.rb +61 -0
- data/vendored/puppet/lib/puppet/util/retry_action.rb +46 -0
- data/vendored/puppet/lib/puppet/util/rubygems.rb +75 -0
- data/vendored/puppet/lib/puppet/util/run_mode.rb +110 -0
- data/vendored/puppet/lib/puppet/util/selinux.rb +264 -0
- data/vendored/puppet/lib/puppet/util/skip_tags.rb +9 -0
- data/vendored/puppet/lib/puppet/util/splayer.rb +18 -0
- data/vendored/puppet/lib/puppet/util/ssl.rb +53 -0
- data/vendored/puppet/lib/puppet/util/storage.rb +89 -0
- data/vendored/puppet/lib/puppet/util/suidmanager.rb +165 -0
- data/vendored/puppet/lib/puppet/util/symbolic_file_mode.rb +144 -0
- data/vendored/puppet/lib/puppet/util/tag_set.rb +27 -0
- data/vendored/puppet/lib/puppet/util/tagging.rb +118 -0
- data/vendored/puppet/lib/puppet/util/terminal.rb +16 -0
- data/vendored/puppet/lib/puppet/util/user_attr.rb +21 -0
- data/vendored/puppet/lib/puppet/util/warnings.rb +33 -0
- data/vendored/puppet/lib/puppet/util/watched_file.rb +37 -0
- data/vendored/puppet/lib/puppet/util/watcher.rb +17 -0
- data/vendored/puppet/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/vendored/puppet/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/vendored/puppet/lib/puppet/util/watcher/timer.rb +19 -0
- data/vendored/puppet/lib/puppet/util/windows.rb +35 -0
- data/vendored/puppet/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/vendored/puppet/lib/puppet/util/windows/access_control_list.rb +113 -0
- data/vendored/puppet/lib/puppet/util/windows/adsi.rb +548 -0
- data/vendored/puppet/lib/puppet/util/windows/api_types.rb +282 -0
- data/vendored/puppet/lib/puppet/util/windows/com.rb +224 -0
- data/vendored/puppet/lib/puppet/util/windows/error.rb +83 -0
- data/vendored/puppet/lib/puppet/util/windows/eventlog.rb +192 -0
- data/vendored/puppet/lib/puppet/util/windows/file.rb +488 -0
- data/vendored/puppet/lib/puppet/util/windows/principal.rb +191 -0
- data/vendored/puppet/lib/puppet/util/windows/process.rb +497 -0
- data/vendored/puppet/lib/puppet/util/windows/registry.rb +374 -0
- data/vendored/puppet/lib/puppet/util/windows/root_certs.rb +108 -0
- data/vendored/puppet/lib/puppet/util/windows/security.rb +857 -0
- data/vendored/puppet/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/vendored/puppet/lib/puppet/util/windows/sid.rb +231 -0
- data/vendored/puppet/lib/puppet/util/windows/string.rb +16 -0
- data/vendored/puppet/lib/puppet/util/windows/taskscheduler.rb +1276 -0
- data/vendored/puppet/lib/puppet/util/windows/user.rb +309 -0
- data/vendored/puppet/lib/puppet/util/yaml.rb +36 -0
- data/vendored/puppet/lib/puppet/vendor.rb +57 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/CHANGELOG +45 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/Gemfile +3 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/LICENSE +21 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/PUPPET_README.md +6 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/README.md +113 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/Rakefile +19 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/deep_merge.gemspec +35 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +2 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +210 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +28 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +27 -0
- data/vendored/puppet/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +608 -0
- data/vendored/puppet/lib/puppet/vendor/load_deep_merge.rb +1 -0
- data/vendored/puppet/lib/puppet/vendor/load_pathspec.rb +1 -0
- data/vendored/puppet/lib/puppet/vendor/load_semantic.rb +1 -0
- data/vendored/puppet/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/LICENSE +201 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/README.md +53 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec.rb +122 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
- data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
- data/vendored/puppet/lib/puppet/vendor/require_vendored.rb +6 -0
- data/vendored/puppet/lib/puppet/vendor/semantic/lib/semantic.rb +5 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +7 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +181 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +60 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +117 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +25 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +31 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +203 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +758 -0
- data/vendored/puppet/lib/puppet/vendor/semantic_puppet/locales/config.yaml +21 -0
- data/vendored/puppet/lib/puppet/version.rb +93 -0
- data/vendored/puppet/lib/puppet_pal.rb +290 -0
- data/vendored/puppet/lib/puppet_x.rb +14 -0
- data/vendored/require_vendored.rb +11 -0
- metadata +1501 -9
@@ -0,0 +1,22 @@
|
|
1
|
+
# The parameters we stick in Resources.
|
2
|
+
class Puppet::Parser::Resource::Param
|
3
|
+
include Puppet::Util
|
4
|
+
include Puppet::Util::Errors
|
5
|
+
include Puppet::Util::MethodHelper
|
6
|
+
|
7
|
+
attr_accessor :name, :value, :source, :add, :file, :line
|
8
|
+
|
9
|
+
def initialize(hash)
|
10
|
+
set_options(hash)
|
11
|
+
requiredopts(:name)
|
12
|
+
@name = @name.intern
|
13
|
+
end
|
14
|
+
|
15
|
+
def line_to_i
|
16
|
+
line ? Integer(line) : nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_s
|
20
|
+
"#{self.name} => #{self.value}"
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,1112 @@
|
|
1
|
+
|
2
|
+
# The scope class, which handles storing and retrieving variables and types and
|
3
|
+
# such.
|
4
|
+
require 'forwardable'
|
5
|
+
|
6
|
+
require 'puppet/parser'
|
7
|
+
require 'puppet/parser/templatewrapper'
|
8
|
+
require 'puppet/parser/resource'
|
9
|
+
|
10
|
+
require 'puppet/util/methodhelper'
|
11
|
+
|
12
|
+
# This class is part of the internal parser/evaluator/compiler functionality of Puppet.
|
13
|
+
# It is passed between the various classes that participate in evaluation.
|
14
|
+
# None of its methods are API except those that are clearly marked as such.
|
15
|
+
#
|
16
|
+
# @api public
|
17
|
+
class Puppet::Parser::Scope
|
18
|
+
extend Forwardable
|
19
|
+
include Puppet::Util::MethodHelper
|
20
|
+
|
21
|
+
# Variables that always exist with nil value even if not set
|
22
|
+
BUILT_IN_VARS = ['module_name'.freeze, 'caller_module_name'.freeze].freeze
|
23
|
+
EMPTY_HASH = {}.freeze
|
24
|
+
|
25
|
+
Puppet::Util.logmethods(self)
|
26
|
+
|
27
|
+
include Puppet::Util::Errors
|
28
|
+
attr_accessor :source, :resource
|
29
|
+
attr_reader :compiler
|
30
|
+
attr_accessor :parent
|
31
|
+
|
32
|
+
# Hash of hashes of default values per type name
|
33
|
+
attr_reader :defaults
|
34
|
+
|
35
|
+
# Alias for `compiler.environment`
|
36
|
+
def environment
|
37
|
+
@compiler.environment
|
38
|
+
end
|
39
|
+
|
40
|
+
# Alias for `compiler.catalog`
|
41
|
+
def catalog
|
42
|
+
@compiler.catalog
|
43
|
+
end
|
44
|
+
|
45
|
+
# Abstract base class for LocalScope and MatchScope
|
46
|
+
#
|
47
|
+
class Ephemeral
|
48
|
+
|
49
|
+
attr_reader :parent
|
50
|
+
|
51
|
+
def initialize(parent = nil)
|
52
|
+
@parent = parent
|
53
|
+
end
|
54
|
+
|
55
|
+
def is_local_scope?
|
56
|
+
false
|
57
|
+
end
|
58
|
+
|
59
|
+
def [](name)
|
60
|
+
if @parent
|
61
|
+
@parent[name]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def include?(name)
|
66
|
+
(@parent and @parent.include?(name))
|
67
|
+
end
|
68
|
+
|
69
|
+
def bound?(name)
|
70
|
+
false
|
71
|
+
end
|
72
|
+
|
73
|
+
def add_entries_to(target = {})
|
74
|
+
@parent.add_entries_to(target) unless @parent.nil?
|
75
|
+
# do not include match data ($0-$n)
|
76
|
+
target
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class LocalScope < Ephemeral
|
81
|
+
|
82
|
+
def initialize(parent=nil)
|
83
|
+
super parent
|
84
|
+
@symbols = {}
|
85
|
+
end
|
86
|
+
|
87
|
+
def [](name)
|
88
|
+
val = @symbols[name]
|
89
|
+
val.nil? && !@symbols.include?(name) ? super : val
|
90
|
+
end
|
91
|
+
|
92
|
+
def is_local_scope?
|
93
|
+
true
|
94
|
+
end
|
95
|
+
|
96
|
+
def []=(name, value)
|
97
|
+
@symbols[name] = value
|
98
|
+
end
|
99
|
+
|
100
|
+
def include?(name)
|
101
|
+
bound?(name) || super
|
102
|
+
end
|
103
|
+
|
104
|
+
def delete(name)
|
105
|
+
@symbols.delete(name)
|
106
|
+
end
|
107
|
+
|
108
|
+
def bound?(name)
|
109
|
+
@symbols.include?(name)
|
110
|
+
end
|
111
|
+
|
112
|
+
def add_entries_to(target = {})
|
113
|
+
super
|
114
|
+
@symbols.each do |k, v|
|
115
|
+
if v == :undef || v.nil?
|
116
|
+
target.delete(k)
|
117
|
+
else
|
118
|
+
target[ k ] = v
|
119
|
+
end
|
120
|
+
end
|
121
|
+
target
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
class MatchScope < Ephemeral
|
126
|
+
|
127
|
+
attr_accessor :match_data
|
128
|
+
|
129
|
+
def initialize(parent = nil, match_data = nil)
|
130
|
+
super parent
|
131
|
+
@match_data = match_data
|
132
|
+
end
|
133
|
+
|
134
|
+
def is_local_scope?
|
135
|
+
false
|
136
|
+
end
|
137
|
+
|
138
|
+
def [](name)
|
139
|
+
if bound?(name)
|
140
|
+
@match_data[name.to_i]
|
141
|
+
else
|
142
|
+
super
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def include?(name)
|
147
|
+
bound?(name) or super
|
148
|
+
end
|
149
|
+
|
150
|
+
def bound?(name)
|
151
|
+
# A "match variables" scope reports all numeric variables to be bound if the scope has
|
152
|
+
# match_data. Without match data the scope is transparent.
|
153
|
+
#
|
154
|
+
@match_data && name =~ /^\d+$/
|
155
|
+
end
|
156
|
+
|
157
|
+
def []=(name, value)
|
158
|
+
# TODO: Bad choice of exception
|
159
|
+
raise Puppet::ParseError, _("Numerical variables cannot be changed. Attempt to set $%{name}") % { name: name }
|
160
|
+
end
|
161
|
+
|
162
|
+
def delete(name)
|
163
|
+
# TODO: Bad choice of exception
|
164
|
+
raise Puppet::ParseError, _("Numerical variables cannot be deleted: Attempt to delete: $%{name}") % { name: name }
|
165
|
+
end
|
166
|
+
|
167
|
+
def add_entries_to(target = {})
|
168
|
+
# do not include match data ($0-$n)
|
169
|
+
super
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
# @api private
|
175
|
+
class ParameterScope < Ephemeral
|
176
|
+
class Access
|
177
|
+
attr_accessor :value
|
178
|
+
|
179
|
+
def assigned?
|
180
|
+
instance_variable_defined?(:@value)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
# A parameter default must be evaluated using a special scope. The scope that is given to this method must
|
185
|
+
# have a `ParameterScope` as its last ephemeral scope. This method will then push a `MatchScope` while the
|
186
|
+
# given `expression` is evaluated. The method will catch any throw of `:unevaluated_parameter` and produce
|
187
|
+
# an error saying that the evaluated parameter X tries to access the unevaluated parameter Y.
|
188
|
+
#
|
189
|
+
# @param name [String] the name of the currently evaluated parameter
|
190
|
+
# @param expression [Puppet::Parser::AST] the expression to evaluate
|
191
|
+
# @param scope [Puppet::Parser::Scope] a scope where a `ParameterScope` has been pushed
|
192
|
+
# @return [Object] the result of the evaluation
|
193
|
+
#
|
194
|
+
# @api private
|
195
|
+
def evaluate3x(name, expression, scope)
|
196
|
+
scope.with_guarded_scope do
|
197
|
+
bad = catch(:unevaluated_parameter) do
|
198
|
+
scope.new_match_scope(nil)
|
199
|
+
return as_read_only { expression.safeevaluate(scope) }
|
200
|
+
end
|
201
|
+
parameter_reference_failure(name, bad)
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
def evaluate(name, expression, scope, evaluator)
|
206
|
+
scope.with_guarded_scope do
|
207
|
+
bad = catch(:unevaluated_parameter) do
|
208
|
+
scope.new_match_scope(nil)
|
209
|
+
return as_read_only { evaluator.evaluate(expression, scope) }
|
210
|
+
end
|
211
|
+
parameter_reference_failure(name, bad)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
def parameter_reference_failure(from, to)
|
216
|
+
# Parameters are evaluated in the order they have in the @params hash.
|
217
|
+
keys = @params.keys
|
218
|
+
raise Puppet::Error, _("%{callee}: expects a value for parameter $%{to}") % { callee: @callee_name, to: to } if keys.index(to) < keys.index(from)
|
219
|
+
raise Puppet::Error, _("%{callee}: default expression for $%{from} tries to illegally access not yet evaluated $%{to}") % { callee: @callee_name, from: from, to: to }
|
220
|
+
end
|
221
|
+
private :parameter_reference_failure
|
222
|
+
|
223
|
+
def initialize(parent, callee_name, param_names)
|
224
|
+
super(parent)
|
225
|
+
@callee_name = callee_name
|
226
|
+
@params = {}
|
227
|
+
param_names.each { |name| @params[name] = Access.new }
|
228
|
+
end
|
229
|
+
|
230
|
+
def [](name)
|
231
|
+
access = @params[name]
|
232
|
+
return super if access.nil?
|
233
|
+
throw(:unevaluated_parameter, name) unless access.assigned?
|
234
|
+
access.value
|
235
|
+
end
|
236
|
+
|
237
|
+
def []=(name, value)
|
238
|
+
raise Puppet::Error, _("Attempt to assign variable %{name} when evaluating parameters") % { name: name } if @read_only
|
239
|
+
@params[name] ||= Access.new
|
240
|
+
@params[name].value = value
|
241
|
+
end
|
242
|
+
|
243
|
+
def bound?(name)
|
244
|
+
@params.include?(name)
|
245
|
+
end
|
246
|
+
|
247
|
+
def include?(name)
|
248
|
+
@params.include?(name) || super
|
249
|
+
end
|
250
|
+
|
251
|
+
def is_local_scope?
|
252
|
+
true
|
253
|
+
end
|
254
|
+
|
255
|
+
def as_read_only
|
256
|
+
read_only = @read_only
|
257
|
+
@read_only = true
|
258
|
+
begin
|
259
|
+
yield
|
260
|
+
ensure
|
261
|
+
@read_only = read_only
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
def to_hash
|
266
|
+
Hash[@params.select {|_, access| access.assigned? }.map { |name, access| [name, access.value] }]
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
|
271
|
+
# Returns true if the variable of the given name has a non nil value.
|
272
|
+
# TODO: This has vague semantics - does the variable exist or not?
|
273
|
+
# use ['name'] to get nil or value, and if nil check with exist?('name')
|
274
|
+
# this include? is only useful because of checking against the boolean value false.
|
275
|
+
#
|
276
|
+
def include?(name)
|
277
|
+
catch(:undefined_variable) {
|
278
|
+
return ! self[name].nil?
|
279
|
+
}
|
280
|
+
false
|
281
|
+
end
|
282
|
+
|
283
|
+
# Returns true if the variable of the given name is set to any value (including nil)
|
284
|
+
#
|
285
|
+
# @return [Boolean] if variable exists or not
|
286
|
+
#
|
287
|
+
def exist?(name)
|
288
|
+
# Note !! ensure the answer is boolean
|
289
|
+
!! if name =~ /^(.*)::(.+)$/
|
290
|
+
class_name = $1
|
291
|
+
variable_name = $2
|
292
|
+
return true if class_name == '' && BUILT_IN_VARS.include?(variable_name)
|
293
|
+
|
294
|
+
# lookup class, but do not care if it is not evaluated since that will result
|
295
|
+
# in it not existing anyway. (Tests may run with just scopes and no evaluated classes which
|
296
|
+
# will result in class_scope for "" not returning topscope).
|
297
|
+
klass = find_hostclass(class_name)
|
298
|
+
other_scope = klass.nil? ? nil : class_scope(klass)
|
299
|
+
if other_scope.nil?
|
300
|
+
class_name == '' ? compiler.topscope.exist?(variable_name) : false
|
301
|
+
else
|
302
|
+
other_scope.exist?(variable_name)
|
303
|
+
end
|
304
|
+
else
|
305
|
+
next_scope = inherited_scope || enclosing_scope
|
306
|
+
effective_symtable(true).include?(name) || next_scope && next_scope.exist?(name) || BUILT_IN_VARS.include?(name)
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
# Returns true if the given name is bound in the current (most nested) scope for assignments.
|
311
|
+
#
|
312
|
+
def bound?(name)
|
313
|
+
# Do not look in ephemeral (match scope), the semantics is to answer if an assignable variable is bound
|
314
|
+
effective_symtable(false).bound?(name)
|
315
|
+
end
|
316
|
+
|
317
|
+
# Is the value true? This allows us to control the definition of truth
|
318
|
+
# in one place.
|
319
|
+
def self.true?(value)
|
320
|
+
case value
|
321
|
+
when ''
|
322
|
+
false
|
323
|
+
when :undef
|
324
|
+
false
|
325
|
+
else
|
326
|
+
!!value
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
# Coerce value to a number, or return `nil` if it isn't one.
|
331
|
+
def self.number?(value)
|
332
|
+
case value
|
333
|
+
when Numeric
|
334
|
+
value
|
335
|
+
when /^-?\d+(:?\.\d+|(:?\.\d+)?e\d+)$/
|
336
|
+
value.to_f
|
337
|
+
when /^0x[0-9a-f]+$/i
|
338
|
+
value.to_i(16)
|
339
|
+
when /^0[0-7]+$/
|
340
|
+
value.to_i(8)
|
341
|
+
when /^-?\d+$/
|
342
|
+
value.to_i
|
343
|
+
else
|
344
|
+
nil
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
def find_hostclass(name)
|
349
|
+
environment.known_resource_types.find_hostclass(name)
|
350
|
+
end
|
351
|
+
|
352
|
+
def find_definition(name)
|
353
|
+
environment.known_resource_types.find_definition(name)
|
354
|
+
end
|
355
|
+
|
356
|
+
def find_global_scope()
|
357
|
+
# walk upwards until first found node_scope or top_scope
|
358
|
+
if is_nodescope? || is_topscope?
|
359
|
+
self
|
360
|
+
else
|
361
|
+
next_scope = inherited_scope || enclosing_scope
|
362
|
+
if next_scope.nil?
|
363
|
+
# this happens when testing, and there is only a single test scope and no link to any
|
364
|
+
# other scopes
|
365
|
+
self
|
366
|
+
else
|
367
|
+
next_scope.find_global_scope()
|
368
|
+
end
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
372
|
+
def findresource(type, title = nil)
|
373
|
+
@compiler.catalog.resource(type, title)
|
374
|
+
end
|
375
|
+
|
376
|
+
# Initialize our new scope. Defaults to having no parent.
|
377
|
+
def initialize(compiler, options = EMPTY_HASH)
|
378
|
+
if compiler.is_a? Puppet::Parser::AbstractCompiler
|
379
|
+
@compiler = compiler
|
380
|
+
else
|
381
|
+
raise Puppet::DevError, "you must pass a compiler instance to a new scope object"
|
382
|
+
end
|
383
|
+
|
384
|
+
set_options(options)
|
385
|
+
|
386
|
+
extend_with_functions_module
|
387
|
+
|
388
|
+
# The symbol table for this scope. This is where we store variables.
|
389
|
+
# @symtable = Ephemeral.new(nil, true)
|
390
|
+
@symtable = LocalScope.new(nil)
|
391
|
+
|
392
|
+
@ephemeral = [ MatchScope.new(@symtable, nil) ]
|
393
|
+
|
394
|
+
# All of the defaults set for types. It's a hash of hashes,
|
395
|
+
# with the first key being the type, then the second key being
|
396
|
+
# the parameter.
|
397
|
+
@defaults = Hash.new { |dhash,type|
|
398
|
+
dhash[type] = {}
|
399
|
+
}
|
400
|
+
|
401
|
+
# The table for storing class singletons. This will only actually
|
402
|
+
# be used by top scopes and node scopes.
|
403
|
+
@class_scopes = {}
|
404
|
+
end
|
405
|
+
|
406
|
+
# Store the fact that we've evaluated a class, and store a reference to
|
407
|
+
# the scope in which it was evaluated, so that we can look it up later.
|
408
|
+
def class_set(name, scope)
|
409
|
+
if parent
|
410
|
+
parent.class_set(name, scope)
|
411
|
+
else
|
412
|
+
@class_scopes[name] = scope
|
413
|
+
end
|
414
|
+
end
|
415
|
+
|
416
|
+
# Return the scope associated with a class. This is just here so
|
417
|
+
# that subclasses can set their parent scopes to be the scope of
|
418
|
+
# their parent class, and it's also used when looking up qualified
|
419
|
+
# variables.
|
420
|
+
def class_scope(klass)
|
421
|
+
# They might pass in either the class or class name
|
422
|
+
k = klass.respond_to?(:name) ? klass.name : klass
|
423
|
+
@class_scopes[k] || (parent && parent.class_scope(k))
|
424
|
+
end
|
425
|
+
|
426
|
+
# Collect all of the defaults set at any higher scopes.
|
427
|
+
# This is a different type of lookup because it's
|
428
|
+
# additive -- it collects all of the defaults, with defaults
|
429
|
+
# in closer scopes overriding those in later scopes.
|
430
|
+
#
|
431
|
+
# The lookupdefaults searches in the the order:
|
432
|
+
#
|
433
|
+
# * inherited
|
434
|
+
# * contained (recursive)
|
435
|
+
# * self
|
436
|
+
#
|
437
|
+
def lookupdefaults(type)
|
438
|
+
values = {}
|
439
|
+
|
440
|
+
# first collect the values from the parents
|
441
|
+
if parent
|
442
|
+
parent.lookupdefaults(type).each { |var,value|
|
443
|
+
values[var] = value
|
444
|
+
}
|
445
|
+
end
|
446
|
+
|
447
|
+
# then override them with any current values
|
448
|
+
# this should probably be done differently
|
449
|
+
if @defaults.include?(type)
|
450
|
+
@defaults[type].each { |var,value|
|
451
|
+
values[var] = value
|
452
|
+
}
|
453
|
+
end
|
454
|
+
|
455
|
+
values
|
456
|
+
end
|
457
|
+
|
458
|
+
# Check if the given value is a known default for the given type
|
459
|
+
#
|
460
|
+
def is_default?(type, key, value)
|
461
|
+
defaults_for_type = @defaults[type]
|
462
|
+
unless defaults_for_type.nil?
|
463
|
+
default_param = defaults_for_type[key]
|
464
|
+
return true if !default_param.nil? && value == default_param.value
|
465
|
+
end
|
466
|
+
!parent.nil? && parent.is_default?(type, key, value)
|
467
|
+
end
|
468
|
+
|
469
|
+
# Look up a defined type.
|
470
|
+
def lookuptype(name)
|
471
|
+
# This happens a lot, avoid making a call to make a call
|
472
|
+
krt = environment.known_resource_types
|
473
|
+
krt.find_definition(name) || krt.find_hostclass(name)
|
474
|
+
end
|
475
|
+
|
476
|
+
def undef_as(x,v)
|
477
|
+
if v.nil? or v == :undef
|
478
|
+
x
|
479
|
+
else
|
480
|
+
v
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
# Lookup a variable within this scope using the Puppet language's
|
485
|
+
# scoping rules. Variables can be qualified using just as in a
|
486
|
+
# manifest.
|
487
|
+
#
|
488
|
+
# @param [String] name the variable name to lookup
|
489
|
+
# @param [Hash] hash of options, only internal code should give this
|
490
|
+
# @param [Boolean] if resolution is of the leaf of a qualified name - only internal code should give this
|
491
|
+
# @return Object the value of the variable, or if not found; nil if `strict_variables` is false, and thrown :undefined_variable otherwise
|
492
|
+
#
|
493
|
+
# @api public
|
494
|
+
def lookupvar(name, options = EMPTY_HASH)
|
495
|
+
unless name.is_a? String
|
496
|
+
raise Puppet::ParseError, _("Scope variable name %{name} is a %{klass}, not a string") % { name: name.inspect, klass: name.class }
|
497
|
+
end
|
498
|
+
|
499
|
+
# If name has '::' in it, it is resolved as a qualified variable
|
500
|
+
unless (idx = name.index('::')).nil?
|
501
|
+
# Always drop leading '::' if present as that is how the values are keyed.
|
502
|
+
return lookup_qualified_variable(idx == 0 ? name[2..-1] : name, options)
|
503
|
+
end
|
504
|
+
|
505
|
+
# At this point, search is for a non qualified (simple) name
|
506
|
+
table = @ephemeral.last
|
507
|
+
val = table[name]
|
508
|
+
return val unless val.nil? && !table.include?(name)
|
509
|
+
|
510
|
+
next_scope = inherited_scope || enclosing_scope
|
511
|
+
if next_scope
|
512
|
+
next_scope.lookupvar(name, options)
|
513
|
+
else
|
514
|
+
variable_not_found(name)
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
518
|
+
UNDEFINED_VARIABLES_KIND = 'undefined_variables'.freeze
|
519
|
+
|
520
|
+
# The exception raised when a throw is uncaught is different in different versions
|
521
|
+
# of ruby. In >=2.2.0 it is UncaughtThrowError (which did not exist prior to this)
|
522
|
+
#
|
523
|
+
UNCAUGHT_THROW_EXCEPTION = defined?(UncaughtThrowError) ? UncaughtThrowError : ArgumentError
|
524
|
+
|
525
|
+
def variable_not_found(name, reason=nil)
|
526
|
+
# Built in variables and numeric variables always exist
|
527
|
+
if BUILT_IN_VARS.include?(name) || name =~ Puppet::Pops::Patterns::NUMERIC_VAR_NAME
|
528
|
+
return nil
|
529
|
+
end
|
530
|
+
begin
|
531
|
+
throw(:undefined_variable, reason)
|
532
|
+
rescue UNCAUGHT_THROW_EXCEPTION
|
533
|
+
case Puppet[:strict]
|
534
|
+
when :off
|
535
|
+
# do nothing
|
536
|
+
when :warning
|
537
|
+
Puppet.warn_once(UNDEFINED_VARIABLES_KIND, _("Variable: %{name}") % { name: name },
|
538
|
+
_("Undefined variable '%{name}'; %{reason}") % { name: name, reason: reason } )
|
539
|
+
when :error
|
540
|
+
raise ArgumentError, _("Undefined variable '%{name}'; %{reason}") % { name: name, reason: reason }
|
541
|
+
end
|
542
|
+
end
|
543
|
+
nil
|
544
|
+
end
|
545
|
+
|
546
|
+
# Retrieves the variable value assigned to the name given as an argument. The name must be a String,
|
547
|
+
# and namespace can be qualified with '::'. The value is looked up in this scope, its parent scopes,
|
548
|
+
# or in a specific visible named scope.
|
549
|
+
#
|
550
|
+
# @param varname [String] the name of the variable (may be a qualified name using `(ns'::')*varname`
|
551
|
+
# @param options [Hash] Additional options, not part of api.
|
552
|
+
# @return [Object] the value assigned to the given varname
|
553
|
+
# @see #[]=
|
554
|
+
# @api public
|
555
|
+
#
|
556
|
+
def [](varname, options = EMPTY_HASH)
|
557
|
+
lookupvar(varname, options)
|
558
|
+
end
|
559
|
+
|
560
|
+
# The class scope of the inherited thing of this scope's resource.
|
561
|
+
#
|
562
|
+
# @return [Puppet::Parser::Scope] The scope or nil if there is not an inherited scope
|
563
|
+
def inherited_scope
|
564
|
+
if resource && resource.type == TYPENAME_CLASS && !resource.resource_type.parent.nil?
|
565
|
+
qualified_scope(resource.resource_type.parent)
|
566
|
+
else
|
567
|
+
nil
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
# The enclosing scope (topscope or nodescope) of this scope.
|
572
|
+
# The enclosing scopes are produced when a class or define is included at
|
573
|
+
# some point. The parent scope of the included class or define becomes the
|
574
|
+
# scope in which it was included. The chain of parent scopes is followed
|
575
|
+
# until a node scope or the topscope is found
|
576
|
+
#
|
577
|
+
# @return [Puppet::Parser::Scope] The scope or nil if there is no enclosing scope
|
578
|
+
def enclosing_scope
|
579
|
+
if has_enclosing_scope?
|
580
|
+
if parent.is_topscope? || parent.is_nodescope?
|
581
|
+
parent
|
582
|
+
else
|
583
|
+
parent.enclosing_scope
|
584
|
+
end
|
585
|
+
end
|
586
|
+
end
|
587
|
+
|
588
|
+
def is_classscope?
|
589
|
+
resource && resource.type == TYPENAME_CLASS
|
590
|
+
end
|
591
|
+
|
592
|
+
def is_nodescope?
|
593
|
+
resource && resource.type == TYPENAME_NODE
|
594
|
+
end
|
595
|
+
|
596
|
+
def is_topscope?
|
597
|
+
equal?(@compiler.topscope)
|
598
|
+
end
|
599
|
+
|
600
|
+
# @api private
|
601
|
+
def lookup_qualified_variable(fqn, options)
|
602
|
+
table = @compiler.qualified_variables
|
603
|
+
val = table[fqn]
|
604
|
+
return val if !val.nil? || table.include?(fqn)
|
605
|
+
|
606
|
+
# not found - search inherited scope for class
|
607
|
+
leaf_index = fqn.rindex('::')
|
608
|
+
unless leaf_index.nil?
|
609
|
+
leaf_name = fqn[ (leaf_index+2)..-1 ]
|
610
|
+
class_name = fqn[ 0, leaf_index ]
|
611
|
+
begin
|
612
|
+
qs = qualified_scope(class_name)
|
613
|
+
unless qs.nil?
|
614
|
+
iscope = qs.inherited_scope
|
615
|
+
return lookup_qualified_variable("#{iscope.source.name}::#{leaf_name}", options) unless iscope.nil?
|
616
|
+
end
|
617
|
+
rescue RuntimeError => e
|
618
|
+
# because a failure to find the class, or inherited should be reported against given name
|
619
|
+
return handle_not_found(class_name, leaf_name, options, e.message)
|
620
|
+
end
|
621
|
+
end
|
622
|
+
# report with leading '::' by using empty class_name
|
623
|
+
return handle_not_found('', fqn, options)
|
624
|
+
end
|
625
|
+
|
626
|
+
def handle_not_found(class_name, variable_name, position, reason = nil)
|
627
|
+
unless Puppet[:strict_variables]
|
628
|
+
# Do not issue warning if strict variables are on, as an error will be raised by variable_not_found
|
629
|
+
location = if position[:lineproc]
|
630
|
+
" at #{position[:lineproc].call}"
|
631
|
+
elsif position[:file] && position[:line]
|
632
|
+
" at #{position[:file]}:#{position[:line]}"
|
633
|
+
else
|
634
|
+
""
|
635
|
+
end
|
636
|
+
variable_not_found("#{class_name}::#{variable_name}", "#{reason}#{location}")
|
637
|
+
return nil
|
638
|
+
end
|
639
|
+
variable_not_found("#{class_name}::#{variable_name}", reason)
|
640
|
+
end
|
641
|
+
|
642
|
+
def has_enclosing_scope?
|
643
|
+
! parent.nil?
|
644
|
+
end
|
645
|
+
private :has_enclosing_scope?
|
646
|
+
|
647
|
+
def qualified_scope(classname)
|
648
|
+
raise _("class %{classname} could not be found") % { classname: classname } unless klass = find_hostclass(classname)
|
649
|
+
raise _("class %{classname} has not been evaluated") % { classname: classname } unless kscope = class_scope(klass)
|
650
|
+
kscope
|
651
|
+
end
|
652
|
+
private :qualified_scope
|
653
|
+
|
654
|
+
# Returns a Hash containing all variables and their values, optionally (and
|
655
|
+
# by default) including the values defined in parent. Local values
|
656
|
+
# shadow parent values. Ephemeral scopes for match results ($0 - $n) are not included.
|
657
|
+
#
|
658
|
+
def to_hash(recursive = true)
|
659
|
+
if recursive and has_enclosing_scope?
|
660
|
+
target = enclosing_scope.to_hash(recursive)
|
661
|
+
if !(inherited = inherited_scope).nil?
|
662
|
+
target.merge!(inherited.to_hash(recursive))
|
663
|
+
end
|
664
|
+
else
|
665
|
+
target = Hash.new
|
666
|
+
end
|
667
|
+
|
668
|
+
# add all local scopes
|
669
|
+
@ephemeral.last.add_entries_to(target)
|
670
|
+
target
|
671
|
+
end
|
672
|
+
|
673
|
+
# Create a new scope and set these options.
|
674
|
+
def newscope(options = {})
|
675
|
+
compiler.newscope(self, options)
|
676
|
+
end
|
677
|
+
|
678
|
+
def parent_module_name
|
679
|
+
return nil unless @parent && @parent.source
|
680
|
+
@parent.source.module_name
|
681
|
+
end
|
682
|
+
|
683
|
+
# Set defaults for a type. The typename should already be downcased,
|
684
|
+
# so that the syntax is isolated. We don't do any kind of type-checking
|
685
|
+
# here; instead we let the resource do it when the defaults are used.
|
686
|
+
def define_settings(type, params)
|
687
|
+
table = @defaults[type]
|
688
|
+
|
689
|
+
# if we got a single param, it'll be in its own array
|
690
|
+
params = [params] unless params.is_a?(Array)
|
691
|
+
|
692
|
+
params.each { |param|
|
693
|
+
if table.include?(param.name)
|
694
|
+
raise Puppet::ParseError.new(_("Default already defined for %{type} { %{param} }; cannot redefine") % { type: type, param: param.name }, param.file, param.line)
|
695
|
+
end
|
696
|
+
table[param.name] = param
|
697
|
+
}
|
698
|
+
end
|
699
|
+
|
700
|
+
# Merge all settings for the given _env_name_ into this scope
|
701
|
+
# @param env_name [Symbol] the name of the environment
|
702
|
+
# @param set_in_this_scope [Boolean] if the settings variables should also be set in this instance of scope
|
703
|
+
def merge_settings(env_name, set_in_this_scope=true)
|
704
|
+
settings = Puppet.settings
|
705
|
+
table = effective_symtable(false)
|
706
|
+
global_table = compiler.qualified_variables
|
707
|
+
all_local = {}
|
708
|
+
settings.each_key do |name|
|
709
|
+
next if :name == name
|
710
|
+
key = name.to_s
|
711
|
+
value = transform_setting(settings.value_sym(name, env_name))
|
712
|
+
if set_in_this_scope
|
713
|
+
table[key] = value
|
714
|
+
end
|
715
|
+
all_local[key] = value
|
716
|
+
# also write the fqn into global table for direct lookup
|
717
|
+
global_table["settings::#{key}"] = value
|
718
|
+
end
|
719
|
+
# set the 'all_local' - a hash of all settings
|
720
|
+
global_table["settings::all_local"] = all_local
|
721
|
+
nil
|
722
|
+
end
|
723
|
+
|
724
|
+
def transform_setting(val)
|
725
|
+
if val.is_a?(String) || val.is_a?(Numeric) || true == val || false == val || nil == val
|
726
|
+
val
|
727
|
+
elsif val.is_a?(Array)
|
728
|
+
val.map {|entry| transform_setting(entry) }
|
729
|
+
elsif val.is_a?(Hash)
|
730
|
+
result = {}
|
731
|
+
val.each {|k,v| result[transform_setting(k)] = transform_setting(v) }
|
732
|
+
result
|
733
|
+
else
|
734
|
+
# not ideal, but required as there are settings values that are special
|
735
|
+
:undef == val ? nil : val.to_s
|
736
|
+
end
|
737
|
+
end
|
738
|
+
private :transform_setting
|
739
|
+
|
740
|
+
VARNAME_TRUSTED = 'trusted'.freeze
|
741
|
+
VARNAME_FACTS = 'facts'.freeze
|
742
|
+
VARNAME_SERVER_FACTS = 'server_facts'.freeze
|
743
|
+
RESERVED_VARIABLE_NAMES = [VARNAME_TRUSTED, VARNAME_FACTS].freeze
|
744
|
+
TYPENAME_CLASS = 'Class'.freeze
|
745
|
+
TYPENAME_NODE = 'Node'.freeze
|
746
|
+
|
747
|
+
# Set a variable in the current scope. This will override settings
|
748
|
+
# in scopes above, but will not allow variables in the current scope
|
749
|
+
# to be reassigned.
|
750
|
+
# It's preferred that you use self[]= instead of this; only use this
|
751
|
+
# when you need to set options.
|
752
|
+
def setvar(name, value, options = EMPTY_HASH)
|
753
|
+
if name =~ /^[0-9]+$/
|
754
|
+
raise Puppet::ParseError.new(_("Cannot assign to a numeric match result variable '$%{name}'") % { name: name }) # unless options[:ephemeral]
|
755
|
+
end
|
756
|
+
unless name.is_a? String
|
757
|
+
raise Puppet::ParseError, _("Scope variable name %{value0} is a %{value1}, not a string") % { value0: name.inspect, value1: name.class }
|
758
|
+
end
|
759
|
+
|
760
|
+
# Check for reserved variable names
|
761
|
+
if (name == VARNAME_TRUSTED || name == VARNAME_FACTS) && !options[:privileged]
|
762
|
+
raise Puppet::ParseError, _("Attempt to assign to a reserved variable name: '%{name}'") % { name: name }
|
763
|
+
end
|
764
|
+
|
765
|
+
# Check for server_facts reserved variable name if the trusted_sever_facts setting is true
|
766
|
+
if name == VARNAME_SERVER_FACTS && !options[:privileged] && Puppet[:trusted_server_facts]
|
767
|
+
raise Puppet::ParseError, _("Attempt to assign to a reserved variable name: '%{name}'") % { name: name }
|
768
|
+
end
|
769
|
+
|
770
|
+
table = effective_symtable(options[:ephemeral])
|
771
|
+
if table.bound?(name)
|
772
|
+
error = Puppet::ParseError.new(_("Cannot reassign variable '$%{name}'") % { name: name })
|
773
|
+
error.file = options[:file] if options[:file]
|
774
|
+
error.line = options[:line] if options[:line]
|
775
|
+
raise error
|
776
|
+
end
|
777
|
+
|
778
|
+
table[name] = value
|
779
|
+
|
780
|
+
# Assign the qualified name in the environment
|
781
|
+
# Note that Settings scope has a source set to Boolean true.
|
782
|
+
#
|
783
|
+
# Only meaningful to set a fqn globally if table to assign to is the top of the scope's ephemeral stack
|
784
|
+
if @symtable.equal?(table)
|
785
|
+
if is_topscope?
|
786
|
+
# the scope name is '::'
|
787
|
+
compiler.qualified_variables[name] = value
|
788
|
+
elsif source.is_a?(Puppet::Resource::Type) && source.type == :hostclass
|
789
|
+
# the name is the name of the class
|
790
|
+
sourcename = source.name
|
791
|
+
compiler.qualified_variables["#{sourcename}::#{name}"] = value
|
792
|
+
end
|
793
|
+
end
|
794
|
+
value
|
795
|
+
end
|
796
|
+
|
797
|
+
def set_trusted(hash)
|
798
|
+
setvar('trusted', deep_freeze(hash), :privileged => true)
|
799
|
+
end
|
800
|
+
|
801
|
+
def set_facts(hash)
|
802
|
+
setvar('facts', deep_freeze(hash), :privileged => true)
|
803
|
+
end
|
804
|
+
|
805
|
+
def set_server_facts(hash)
|
806
|
+
setvar('server_facts', deep_freeze(hash), :privileged => true)
|
807
|
+
end
|
808
|
+
|
809
|
+
# Deeply freezes the given object. The object and its content must be of the types:
|
810
|
+
# Array, Hash, Numeric, Boolean, Symbol, Regexp, NilClass, or String. All other types raises an Error.
|
811
|
+
# (i.e. if they are assignable to Puppet::Pops::Types::Data type).
|
812
|
+
#
|
813
|
+
def deep_freeze(object)
|
814
|
+
case object
|
815
|
+
when Array
|
816
|
+
object.each {|v| deep_freeze(v) }
|
817
|
+
object.freeze
|
818
|
+
when Hash
|
819
|
+
object.each {|k, v| deep_freeze(k); deep_freeze(v) }
|
820
|
+
object.freeze
|
821
|
+
when NilClass, Numeric, TrueClass, FalseClass
|
822
|
+
# do nothing
|
823
|
+
when String
|
824
|
+
object.freeze
|
825
|
+
else
|
826
|
+
raise Puppet::Error, _("Unsupported data type: '%{klass}'") % { klass: object.class }
|
827
|
+
end
|
828
|
+
object
|
829
|
+
end
|
830
|
+
private :deep_freeze
|
831
|
+
|
832
|
+
# Return the effective "table" for setting variables.
|
833
|
+
# This method returns the first ephemeral "table" that acts as a local scope, or this
|
834
|
+
# scope's symtable. If the parameter `use_ephemeral` is true, the "top most" ephemeral "table"
|
835
|
+
# will be returned (irrespective of it being a match scope or a local scope).
|
836
|
+
#
|
837
|
+
# @param use_ephemeral [Boolean] whether the top most ephemeral (of any kind) should be used or not
|
838
|
+
def effective_symtable(use_ephemeral)
|
839
|
+
s = @ephemeral[-1]
|
840
|
+
return s || @symtable if use_ephemeral
|
841
|
+
|
842
|
+
while s && !s.is_local_scope?()
|
843
|
+
s = s.parent
|
844
|
+
end
|
845
|
+
s || @symtable
|
846
|
+
end
|
847
|
+
|
848
|
+
# Sets the variable value of the name given as an argument to the given value. The value is
|
849
|
+
# set in the current scope and may shadow a variable with the same name in a visible outer scope.
|
850
|
+
# It is illegal to re-assign a variable in the same scope. It is illegal to set a variable in some other
|
851
|
+
# scope/namespace than the scope passed to a method.
|
852
|
+
#
|
853
|
+
# @param varname [String] The variable name to which the value is assigned. Must not contain `::`
|
854
|
+
# @param value [String] The value to assign to the given variable name.
|
855
|
+
# @param options [Hash] Additional options, not part of api and no longer used.
|
856
|
+
#
|
857
|
+
# @api public
|
858
|
+
#
|
859
|
+
def []=(varname, value, _ = nil)
|
860
|
+
setvar(varname, value)
|
861
|
+
end
|
862
|
+
|
863
|
+
# Used mainly for logging
|
864
|
+
def to_s
|
865
|
+
# As this is used for logging, this should really not be done in this class at all...
|
866
|
+
return "Scope(#{@resource})" unless @resource.nil?
|
867
|
+
|
868
|
+
# For logging of function-scope - it is now showing the file and line.
|
869
|
+
detail = Puppet::Pops::PuppetStack.stacktrace[0]
|
870
|
+
return "Scope()" unless detail.is_a?(Array)
|
871
|
+
|
872
|
+
# shorten the path if possible
|
873
|
+
path = detail[0]
|
874
|
+
env_path = nil
|
875
|
+
env_path = environment.configuration.path_to_env unless (environment.nil? || environment.configuration.nil?)
|
876
|
+
if env_path && path && path.start_with?(env_path)
|
877
|
+
path = "<env>" + path[env_path.length..-1]
|
878
|
+
end
|
879
|
+
# TODO: also shorten module paths to <module>/name/...
|
880
|
+
|
881
|
+
# Make the output appear as "Scope(path, line)"
|
882
|
+
"Scope(#{[path, detail[1]].join(', ')})"
|
883
|
+
end
|
884
|
+
|
885
|
+
alias_method :inspect, :to_s
|
886
|
+
|
887
|
+
# Pop ephemeral scopes up to level and return them
|
888
|
+
#
|
889
|
+
# @param level [Integer] a positive integer
|
890
|
+
# @return [Array] the removed ephemeral scopes
|
891
|
+
# @api private
|
892
|
+
def pop_ephemerals(level)
|
893
|
+
@ephemeral.pop(@ephemeral.size - level)
|
894
|
+
end
|
895
|
+
|
896
|
+
# Push ephemeral scopes onto the ephemeral scope stack
|
897
|
+
# @param ephemeral_scopes [Array]
|
898
|
+
# @api private
|
899
|
+
def push_ephemerals(ephemeral_scopes)
|
900
|
+
ephemeral_scopes.each { |ephemeral_scope| @ephemeral.push(ephemeral_scope) } unless ephemeral_scopes.nil?
|
901
|
+
end
|
902
|
+
|
903
|
+
def ephemeral_level
|
904
|
+
@ephemeral.size
|
905
|
+
end
|
906
|
+
|
907
|
+
# TODO: Who calls this?
|
908
|
+
def new_ephemeral(local_scope = false)
|
909
|
+
if local_scope
|
910
|
+
@ephemeral.push(LocalScope.new(@ephemeral.last))
|
911
|
+
else
|
912
|
+
@ephemeral.push(MatchScope.new(@ephemeral.last, nil))
|
913
|
+
end
|
914
|
+
end
|
915
|
+
|
916
|
+
# Execute given block in global scope with no ephemerals present
|
917
|
+
#
|
918
|
+
# @yieldparam [Scope] global_scope the global and ephemeral less scope
|
919
|
+
# @return [Object] the return of the block
|
920
|
+
#
|
921
|
+
# @api private
|
922
|
+
def with_global_scope(&block)
|
923
|
+
find_global_scope.without_ephemeral_scopes(&block)
|
924
|
+
end
|
925
|
+
|
926
|
+
# Execute given block with a ephemeral scope containing the given variables
|
927
|
+
# @api private
|
928
|
+
def with_local_scope(scope_variables)
|
929
|
+
local = LocalScope.new(@ephemeral.last)
|
930
|
+
scope_variables.each_pair { |k, v| local[k] = v }
|
931
|
+
@ephemeral.push(local)
|
932
|
+
begin
|
933
|
+
yield(self)
|
934
|
+
ensure
|
935
|
+
@ephemeral.pop
|
936
|
+
end
|
937
|
+
end
|
938
|
+
|
939
|
+
# Execute given block with all ephemeral popped from the ephemeral stack
|
940
|
+
#
|
941
|
+
# @api private
|
942
|
+
def without_ephemeral_scopes
|
943
|
+
save_ephemeral = @ephemeral
|
944
|
+
begin
|
945
|
+
@ephemeral = [ @symtable ]
|
946
|
+
yield(self)
|
947
|
+
ensure
|
948
|
+
@ephemeral = save_ephemeral
|
949
|
+
end
|
950
|
+
end
|
951
|
+
|
952
|
+
# Nests a parameter scope
|
953
|
+
# @param [String] callee_name the name of the function, template, or resource that defines the parameters
|
954
|
+
# @param [Array<String>] param_names list of parameter names
|
955
|
+
# @yieldparam [ParameterScope] param_scope the nested scope
|
956
|
+
# @api private
|
957
|
+
def with_parameter_scope(callee_name, param_names)
|
958
|
+
param_scope = ParameterScope.new(@ephemeral.last, callee_name, param_names)
|
959
|
+
with_guarded_scope do
|
960
|
+
@ephemeral.push(param_scope)
|
961
|
+
yield(param_scope)
|
962
|
+
end
|
963
|
+
end
|
964
|
+
|
965
|
+
# Execute given block and ensure that ephemeral level is restored
|
966
|
+
#
|
967
|
+
# @return [Object] the return of the block
|
968
|
+
#
|
969
|
+
# @api private
|
970
|
+
def with_guarded_scope
|
971
|
+
elevel = ephemeral_level
|
972
|
+
begin
|
973
|
+
yield
|
974
|
+
ensure
|
975
|
+
pop_ephemerals(elevel)
|
976
|
+
end
|
977
|
+
end
|
978
|
+
|
979
|
+
# Sets match data in the most nested scope (which always is a MatchScope), it clobbers match data already set there
|
980
|
+
#
|
981
|
+
def set_match_data(match_data)
|
982
|
+
@ephemeral.last.match_data = match_data
|
983
|
+
end
|
984
|
+
|
985
|
+
# Nests a match data scope
|
986
|
+
def new_match_scope(match_data)
|
987
|
+
@ephemeral.push(MatchScope.new(@ephemeral.last, match_data))
|
988
|
+
end
|
989
|
+
|
990
|
+
def ephemeral_from(match, file = nil, line = nil)
|
991
|
+
case match
|
992
|
+
when Hash
|
993
|
+
# Create local scope ephemeral and set all values from hash
|
994
|
+
new_ephemeral(true)
|
995
|
+
match.each {|k,v| setvar(k, v, :file => file, :line => line, :ephemeral => true) }
|
996
|
+
# Must always have an inner match data scope (that starts out as transparent)
|
997
|
+
# In 3x slightly wasteful, since a new nested scope is created for a match
|
998
|
+
# (TODO: Fix that problem)
|
999
|
+
new_ephemeral(false)
|
1000
|
+
else
|
1001
|
+
raise(ArgumentError,_("Invalid regex match data. Got a %{klass}") % { klass: match.class }) unless match.is_a?(MatchData)
|
1002
|
+
# Create a match ephemeral and set values from match data
|
1003
|
+
new_match_scope(match)
|
1004
|
+
end
|
1005
|
+
end
|
1006
|
+
|
1007
|
+
# @api private
|
1008
|
+
def find_resource_type(type)
|
1009
|
+
raise Puppet::DevError, "Scope#find_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
1010
|
+
end
|
1011
|
+
|
1012
|
+
# @api private
|
1013
|
+
def find_builtin_resource_type(type)
|
1014
|
+
raise Puppet::DevError, "Scope#find_builtin_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
1015
|
+
end
|
1016
|
+
|
1017
|
+
# @api private
|
1018
|
+
def find_defined_resource_type(type)
|
1019
|
+
raise Puppet::DevError, "Scope#find_defined_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
1020
|
+
end
|
1021
|
+
|
1022
|
+
|
1023
|
+
def method_missing(method, *args, &block)
|
1024
|
+
method.to_s =~ /^function_(.*)$/
|
1025
|
+
name = $1
|
1026
|
+
super unless name
|
1027
|
+
super unless Puppet::Parser::Functions.function(name)
|
1028
|
+
# In odd circumstances, this might not end up defined by the previous
|
1029
|
+
# method, so we might as well be certain.
|
1030
|
+
if respond_to? method
|
1031
|
+
send(method, *args)
|
1032
|
+
else
|
1033
|
+
raise Puppet::DevError, "Function #{name} not defined despite being loaded!"
|
1034
|
+
end
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
# To be removed when enough time has passed after puppet 5.0.0
|
1038
|
+
# @api private
|
1039
|
+
def resolve_type_and_titles(type, titles)
|
1040
|
+
raise Puppet::DevError, "Scope#resolve_type_and_title() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
1041
|
+
end
|
1042
|
+
|
1043
|
+
# Transforms references to classes to the form suitable for
|
1044
|
+
# lookup in the compiler.
|
1045
|
+
#
|
1046
|
+
# Makes names passed in the names array absolute if they are relative.
|
1047
|
+
#
|
1048
|
+
# Transforms Class[] and Resource[] type references to class name
|
1049
|
+
# or raises an error if a Class[] is unspecific, if a Resource is not
|
1050
|
+
# a 'class' resource, or if unspecific (no title).
|
1051
|
+
#
|
1052
|
+
#
|
1053
|
+
# @param names [Array<String>] names to (optionally) make absolute
|
1054
|
+
# @return [Array<String>] names after transformation
|
1055
|
+
#
|
1056
|
+
def transform_and_assert_classnames(names)
|
1057
|
+
names.map do |name|
|
1058
|
+
case name
|
1059
|
+
when String
|
1060
|
+
name.sub(/^([^:]{1,2})/, '::\1')
|
1061
|
+
|
1062
|
+
when Puppet::Resource
|
1063
|
+
assert_class_and_title(name.type, name.title)
|
1064
|
+
name.title.sub(/^([^:]{1,2})/, '::\1')
|
1065
|
+
|
1066
|
+
when Puppet::Pops::Types::PClassType
|
1067
|
+
#TRANSLATORS "Class" and "Type" are Puppet keywords and should not be translated
|
1068
|
+
raise ArgumentError, _("Cannot use an unspecific Class[] Type") unless name.class_name
|
1069
|
+
name.class_name.sub(/^([^:]{1,2})/, '::\1')
|
1070
|
+
|
1071
|
+
when Puppet::Pops::Types::PResourceType
|
1072
|
+
assert_class_and_title(name.type_name, name.title)
|
1073
|
+
name.title.sub(/^([^:]{1,2})/, '::\1')
|
1074
|
+
end.downcase
|
1075
|
+
end
|
1076
|
+
end
|
1077
|
+
|
1078
|
+
# Calls a 3.x or 4.x function by name with arguments given in an array using the 4.x calling convention
|
1079
|
+
# and returns the result.
|
1080
|
+
# Note that it is the caller's responsibility to rescue the given ArgumentError and provide location information
|
1081
|
+
# to aid the user find the problem. The problem is otherwise reported against the source location that
|
1082
|
+
# invoked the function that ultimately called this method.
|
1083
|
+
#
|
1084
|
+
# @return [Object] the result of the called function
|
1085
|
+
# @raise ArgumentError if the function does not exist
|
1086
|
+
def call_function(func_name, args, &block)
|
1087
|
+
Puppet::Pops::Parser::EvaluatingParser.new.evaluator.external_call_function(func_name, args, self, &block)
|
1088
|
+
end
|
1089
|
+
|
1090
|
+
private
|
1091
|
+
|
1092
|
+
def assert_class_and_title(type_name, title)
|
1093
|
+
if type_name.nil? || type_name == ''
|
1094
|
+
#TRANSLATORS "Resource" is a class name and should not be translated
|
1095
|
+
raise ArgumentError, _("Cannot use an unspecific Resource[] where a Resource['class', name] is expected")
|
1096
|
+
end
|
1097
|
+
unless type_name =~ /^[Cc]lass$/
|
1098
|
+
#TRANSLATORS "Resource" is a class name and should not be translated
|
1099
|
+
raise ArgumentError, _("Cannot use a Resource[%{type_name}] where a Resource['class', name] is expected") % { type_name: type_name }
|
1100
|
+
end
|
1101
|
+
if title.nil?
|
1102
|
+
#TRANSLATORS "Resource" is a class name and should not be translated
|
1103
|
+
raise ArgumentError, _("Cannot use an unspecific Resource['class'] where a Resource['class', name] is expected")
|
1104
|
+
end
|
1105
|
+
end
|
1106
|
+
|
1107
|
+
def extend_with_functions_module
|
1108
|
+
root = Puppet.lookup(:root_environment)
|
1109
|
+
extend Puppet::Parser::Functions.environment_module(root)
|
1110
|
+
extend Puppet::Parser::Functions.environment_module(environment) if environment != root
|
1111
|
+
end
|
1112
|
+
end
|