puppet-retrospec 0.7.0 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +7 -3
- data/README.md +8 -0
- data/VERSION +1 -1
- data/bin/retrospec +7 -0
- data/lib/retrospec.rb +1 -0
- data/lib/retrospec/helpers.rb +1 -1
- data/lib/retrospec/version.rb +2 -2
- data/puppet-retrospec.gemspec +1268 -9
- data/vendor/gems/puppet-3.7.3/COMMITTERS.md +244 -0
- data/vendor/gems/puppet-3.7.3/CONTRIBUTING.md +91 -0
- data/vendor/gems/puppet-3.7.3/Gemfile +102 -0
- data/vendor/gems/puppet-3.7.3/LICENSE +17 -0
- data/vendor/gems/puppet-3.7.3/README.md +76 -0
- data/vendor/gems/puppet-3.7.3/Rakefile +68 -0
- data/vendor/gems/puppet-3.7.3/bin/extlookup2hiera +56 -0
- data/vendor/gems/puppet-3.7.3/bin/puppet +8 -0
- data/vendor/gems/puppet-3.7.3/conf/auth.conf +120 -0
- data/vendor/gems/puppet-3.7.3/conf/fileserver.conf +42 -0
- data/vendor/gems/puppet-3.7.3/conf/tagmail.conf +16 -0
- data/vendor/gems/puppet-3.7.3/install.rb +429 -0
- data/vendor/gems/puppet-3.7.3/lib/hiera/backend/puppet_backend.rb +103 -0
- data/vendor/gems/puppet-3.7.3/lib/hiera/scope.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/hiera_puppet.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet.rb +277 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/agent.rb +121 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/agent/disabler.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/agent/locker.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application.rb +513 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/agent.rb +480 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/apply.rb +299 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/ca.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/catalog.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/cert.rb +277 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/certificate.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/certificate_request.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/certificate_revocation_list.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/config.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/describe.rb +254 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/device.rb +238 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/doc.rb +273 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/face_base.rb +250 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/facts.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/file.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/filebucket.rb +184 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/help.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/indirection_base.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/inspect.rb +179 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/instrumentation_data.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/instrumentation_listener.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/instrumentation_probe.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/key.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/kick.rb +351 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/man.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/master.rb +304 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/module.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/node.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/parser.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/plugin.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/queue.rb +161 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/report.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/resource.rb +228 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/resource_type.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/secret_agent.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/application/status.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/bindings.rb +147 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/coercion.rb +40 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/configurer.rb +305 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/configurer/downloader.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/configurer/downloader_factory.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/configurer/fact_handler.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/configurer/plugin_handler.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine.rb +80 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/any.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/exists.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/false.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/feature.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/true.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine/variable.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confine_collection.rb +50 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/confiner.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/context.rb +101 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/context/trusted_information.rb +56 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/daemon.rb +182 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/data_binding.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/defaults.rb +2084 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/dsl.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/dsl/resource_api.rb +120 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/dsl/resource_type_api.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/environments.rb +434 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/error.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/dot.rb +326 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/nagios.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/nagios/base.rb +472 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/nagios/grammar.ry +248 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/nagios/makefile +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/nagios/parser.rb +400 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/pson/common.rb +385 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/pson/pure.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/pson/pure/generator.rb +394 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/pson/pure/parser.rb +318 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/external/pson/version.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/ca.rb +254 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/catalog.rb +130 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/catalog/select.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/certificate.rb +160 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/certificate_request.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/certificate_revocation_list.rb +58 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/config.rb +119 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/facts.rb +81 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/file.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/file/download.rb +57 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/file/store.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/help.rb +194 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/help/action.erb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/help/face.erb +111 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/help/global.erb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/help/man.erb +152 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/instrumentation_data.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/instrumentation_listener.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/instrumentation_probe.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/key.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/man.rb +99 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/build.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/changes.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/generate.rb +251 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/install.rb +145 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/list.rb +275 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/search.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/uninstall.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/module/upgrade.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/node.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/node/clean.rb +159 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/parser.rb +160 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/plugin.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/report.rb +54 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/resource.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/resource_type.rb +81 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/secret_agent.rb +54 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/face/status.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/base.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/cfacter.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/eventlog.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/external_facts.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/libuser.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/msgpack.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/pe_license.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/pson.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/rack.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/rails.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/rdoc1.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/rubygems.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/selinux.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/ssh.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/stomp.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/feature/zlib.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_bucket.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_bucket/dipper.rb +119 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_bucket/file.rb +157 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_collection.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_collection/lookup.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/base.rb +95 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/configuration.rb +109 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/configuration/parser.rb +121 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/content.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/fileset.rb +172 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/metadata.rb +199 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/mount.rb +39 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/mount/file.rb +121 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/mount/modules.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/mount/plugins.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/terminus_helper.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_serving/terminus_selector.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system.rb +366 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/file18.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/file19.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/file19windows.rb +107 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/file_impl.rb +145 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/memory_file.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/memory_impl.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/path_pattern.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/file_system/uniquefile.rb +190 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/forge.rb +226 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/forge/cache.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/forge/errors.rb +112 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/forge/repository.rb +182 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions.rb +555 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/assert_type.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/each.rb +111 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/epp.rb +54 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/filter.rb +113 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/import.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/inline_epp.rb +88 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/map.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/match.rb +102 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/reduce.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/slice.rb +126 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/functions/with.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/key.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/prioritizer.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/random_prioritizer.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/rb_tree_map.rb +388 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/relationship_graph.rb +246 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/simple_graph.rb +566 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/active_record.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/active_record.rb +39 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/compiler.rb +182 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/json.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/queue.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/static_compiler.rb +214 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/catalog/yaml.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate/file.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate/rest.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_request/ca.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_request/memory.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_request/rest.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_revocation_list/rest.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_status.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_status/file.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/certificate_status/rest.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/code.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/couch.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/data_binding/hiera.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/data_binding/none.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/direct_file_server.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/envelope.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/errors.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/exec.rb +38 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/face.rb +139 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/active_record.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/couch.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/facter.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/inventory_active_record.rb +110 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/inventory_service.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/memory.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/network_device.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/rest.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/store_configs.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/facts/yaml.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_bucket_file/file.rb +142 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_content.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_content/file.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_content/file_server.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_content/rest.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_content/selector.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_metadata.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_metadata/file.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_metadata/rest.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_metadata/selector.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/file_server.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/hiera.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/indirection.rb +336 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_data.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_data/local.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_data/rest.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_listener.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_listener/local.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_listener/rest.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_probe.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_probe/local.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/instrumentation_probe/rest.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/json.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/key/ca.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/key/disabled_ca.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/key/file.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/key/memory.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/ldap.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/memory.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/msgpack.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/active_record.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/exec.rb +69 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/ldap.rb +257 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/memory.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/plain.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/rest.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/write_only_yaml.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/node/yaml.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/none.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/plain.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/queue.rb +80 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/report/processor.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/report/rest.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/report/yaml.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/request.rb +317 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource/active_record.rb +104 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource/ral.rb +64 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource/rest.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource/store_configs.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource/validator.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource_type.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource_type/parser.rb +101 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/resource_type/rest.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/rest.rb +267 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/run/local.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/run/rest.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/ssl_file.rb +180 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/status.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/status/local.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/status/rest.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/store_configs.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/terminus.rb +169 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/indirector/yaml.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface.rb +235 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/action.rb +374 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/action_builder.rb +149 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/action_manager.rb +101 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/documentation.rb +342 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/face_collection.rb +125 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/option.rb +150 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/option_builder.rb +93 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/interface/option_manager.rb +99 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/loaders.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/metatype/manager.rb +184 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module.rb +339 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool.rb +194 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/application.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/builder.rb +148 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/installer.rb +353 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/searcher.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/uninstaller.rb +117 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/unpacker.rb +100 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/applications/upgrader.rb +279 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/checksums.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/contents_description.rb +84 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/dependency.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors/base.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors/installer.rb +95 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors/shared.rb +188 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors/uninstaller.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/errors/upgrader.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/install_directory.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/installed_modules.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/local_tarball.rb +90 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/metadata.rb +209 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/modulefile.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/shared_behaviors.rb +180 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/tar.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/tar/gnu.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/module_tool/tar/mini.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/auth_config_parser.rb +84 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/authconfig.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/authentication.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/authorization.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/authstore.rb +282 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/client_request.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/format.rb +110 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/format_handler.rb +105 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/format_support.rb +124 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/formats.rb +216 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/api.rb +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/api/v1.rb +222 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/api/v2.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/api/v2/authorization.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/api/v2/environments.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/compression.rb +118 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/connection.rb +240 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/error.rb +69 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/factory.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/handler.rb +186 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/issues.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/memory_response.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/nocache_pool.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/pool.rb +120 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/rack.rb +33 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/rack/rest.rb +138 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/request.rb +56 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/response.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/route.rb +100 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/session.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/site.rb +39 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/webrick.rb +129 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http/webrick/rest.rb +104 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/http_pool.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/resolver.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/rest_controller.rb +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/rights.rb +219 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/network/server.rb +39 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/node.rb +184 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/node/environment.rb +595 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/node/facts.rb +155 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter.rb +585 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter/boolean.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter/package_options.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter/path.rb +57 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter/value.rb +93 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parameter/value_collection.rb +211 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast.rb +129 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/arithmetic_operator.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/astarray.rb +50 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/asthash.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/block_expression.rb +40 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/boolean_operator.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/branch.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/caseopt.rb +52 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/casestatement.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/collection.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/collexpr.rb +109 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/comparison_operator.rb +38 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/definition.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/else.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/function.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/hostclass.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/ifstatement.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/in_operator.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/lambda.rb +135 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/leaf.rb +232 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/match_operator.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/method_call.rb +77 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/minus.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/node.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/nop.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/not.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/pops_bridge.rb +242 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/relationship.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resource.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resource_defaults.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resource_instance.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resource_override.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resource_reference.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/resourceparam.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/selector.rb +50 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/top_level_construct.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/ast/vardef.rb +38 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/code_merger.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/collector.rb +177 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/compiler.rb +625 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/e4_parser_adapter.rb +81 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/files.rb +137 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions.rb +262 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/assert_type.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/contain.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/create_resources.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/defined.rb +73 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/digest.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/each.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/epp.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/extlookup.rb +153 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/fail.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/file.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/filter.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/fqdn_rand.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/generate.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_array.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_hash.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/hiera_include.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/include.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/inline_epp.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/lookup.rb +144 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/map.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/match.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/md5.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/realize.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/reduce.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/regsubst.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/require.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/search.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/sha1.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/shellquote.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/slice.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/split.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/sprintf.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/tag.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/tagged.rb +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/template.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/versioncmp.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/functions/with.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/grammar.ra +806 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/lexer.rb +608 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/makefile +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/methods.rb +69 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/parser.rb +2559 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/parser_factory.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/parser_support.rb +195 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/relationship.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/resource.rb +275 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/resource/param.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/scope.rb +906 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/templatewrapper.rb +127 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/type_loader.rb +152 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/parser/yaml_trimmer.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops.rb +118 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/adaptable.rb +190 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/adapters.rb +109 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/binder.rb +393 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/binder_issues.rb +122 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_checker.rb +197 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_composer.rb +175 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_factory.rb +805 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_label_provider.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_loader.rb +88 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_model.rb +68 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_model_dumper.rb +187 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/config/binder_config.rb +107 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/config/binder_config_checker.rb +142 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/config/issues.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/injector.rb +767 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/injector_entry.rb +57 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/key_factory.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/lookup.rb +199 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/producers.rb +826 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/binder/system_bindings.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/containment.rb +104 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/access_operator.rb +596 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/callable_signature.rb +100 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/closure.rb +228 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/compare_operator.rb +172 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/epp_evaluator.rb +88 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/evaluator_impl.rb +1115 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/relationship_operator.rb +157 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/evaluator/runtime3_support.rb +599 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/functions/dispatch.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/functions/dispatcher.rb +70 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/functions/function.rb +77 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/issue_reporter.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/issues.rb +548 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/label_provider.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/base_loader.rb +102 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/dependency_loader.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/gem_support.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/loader.rb +180 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/loader_paths.rb +118 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/module_loaders.rb +256 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/null_loader.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/ruby_function_instantiator.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/static_loader.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loader/uri_helper.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/loaders.rb +231 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/ast_transformer.rb +643 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/ast_tree_dumper.rb +386 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/factory.rb +1055 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/model.rb +114 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/model_label_provider.rb +106 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/model_meta.rb +576 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/model_tree_dumper.rb +407 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/model/tree_dumper.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/code_merger.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/egrammar.ra +757 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/eparser.rb +2655 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/epp_support.rb +247 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/evaluating_parser.rb +140 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/heredoc_support.rb +139 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/interpolation_support.rb +231 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/lexer2.rb +696 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/lexer_support.rb +113 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/locatable.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/locator.rb +291 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/parser_support.rb +242 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/parser/slurp_support.rb +95 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/patterns.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/semantic_error.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/class_loader.rb +129 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/enumeration.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/type_calculator.rb +1703 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/type_factory.rb +432 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/type_parser.rb +475 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/types.rb +397 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/types/types_meta.rb +223 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/utils.rb +142 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/validation.rb +432 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/validation/checker4_0.rb +760 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/validation/validator_factory_4_0.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/visitable.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/pops/visitor.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property.rb +617 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property/boolean.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property/ensure.rb +105 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property/keyvalue.rb +95 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property/list.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/property/ordered_list.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider.rb +651 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/aixobject.rb +392 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/augeas/augeas.rb +509 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/cisco.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/command.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/computer/computer.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/confine.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/cron/crontab.rb +260 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/exec.rb +100 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/exec/posix.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/exec/shell.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/exec/windows.rb +55 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/file/posix.rb +136 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/file/windows.rb +104 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/aix.rb +141 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/directoryservice.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/groupadd.rb +85 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/ldap.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/pw.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/group/windows_adsi.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/host/parsed.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/interface/cisco.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/ldap.rb +137 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/macauthorization/macauthorization.rb +309 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/mailalias/aliases.rb +39 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/maillist/mailman.rb +108 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/mcx/mcxcontent.rb +172 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/mount.rb +58 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/mount/parsed.rb +123 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/naginator.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/nameservice.rb +292 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/nameservice/directoryservice.rb +588 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/nameservice/objectadd.rb +33 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/nameservice/pw.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/network_device.rb +68 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package.rb +52 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/aix.rb +152 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/appdmg.rb +106 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/apple.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/apt.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/aptitude.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/aptrpm.rb +83 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/blastwave.rb +111 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/dpkg.rb +165 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/fink.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/freebsd.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/gem.rb +135 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/hpux.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/macports.rb +107 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/msi.rb +125 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/nim.rb +280 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/openbsd.rb +228 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/opkg.rb +76 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pacman.rb +234 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pip.rb +119 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pkg.rb +201 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pkgdmg.rb +149 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pkgin.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/pkgutil.rb +186 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/portage.rb +149 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/ports.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/portupgrade.rb +241 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/rpm.rb +187 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/rug.rb +52 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/sun.rb +132 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/up2date.rb +40 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/urpmi.rb +55 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/windows.rb +113 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/windows/exe_package.rb +70 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/windows/msi_package.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/windows/package.rb +92 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/yum.rb +199 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/yumhelper.py +159 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/package/zypper.rb +90 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/parsedfile.rb +459 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +558 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/selmodule/semodule.rb +134 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/base.rb +106 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/bsd.rb +51 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/daemontools.rb +194 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/debian.rb +64 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/freebsd.rb +143 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/gentoo.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/init.rb +169 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/launchd.rb +353 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/openbsd.rb +342 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/openrc.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/openwrt.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/redhat.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/runit.rb +111 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/service.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/smf.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/src.rb +120 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/systemd.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/upstart.rb +355 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/service/windows.rb +106 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/ssh_authorized_key/parsed.rb +105 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/sshkey/parsed.rb +40 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/aix.rb +369 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/directoryservice.rb +685 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/hpux.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/ldap.rb +128 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/pw.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/user_role_add.rb +210 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/useradd.rb +231 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/user/windows_adsi.rb +99 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/vlan/cisco.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/yumrepo/inifile.rb +300 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/zfs/zfs.rb +83 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/zone/solaris.rb +361 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/provider/zpool/zpool.rb +120 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails.rb +139 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/benchmark.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/database/004_add_inventory_service_tables.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/database/schema.rb +136 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/fact_name.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/fact_value.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/host.rb +258 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/inventory_fact.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/inventory_node.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/param_name.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/param_value.rb +74 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/puppet_tag.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/resource.rb +235 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/resource_tag.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/rails/source_file.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/configuration.rb +73 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/function.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/indirection.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/metaparameter.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/providers.rb +119 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/report.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reference/type.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/relationship.rb +103 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports/http.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports/log.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports/rrdgraph.rb +128 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports/store.rb +68 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/reports/tagmail.rb +179 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource.rb +605 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource/catalog.rb +554 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource/status.rb +155 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource/type.rb +413 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource/type_collection.rb +230 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/resource/type_collection_helper.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/run.rb +109 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/scheduler.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/scheduler/job.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/scheduler/scheduler.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/scheduler/splay_job.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/scheduler/timer.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings.rb +1442 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/array_setting.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/autosign_setting.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/base_setting.rb +195 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/boolean_setting.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/config_file.rb +139 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/directory_setting.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/duration_setting.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/enum_setting.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/environment_conf.rb +175 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/errors.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/file_or_directory_setting.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/file_setting.rb +234 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/ini_file.rb +171 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/path_setting.rb +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/priority_setting.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/string_setting.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/terminus_setting.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/ttl_setting.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/settings/value_translator.rb +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/base.rb +140 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_authority.rb +517 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_authority/autosign_command.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_authority/interface.rb +178 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_factory.rb +219 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_request.rb +299 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_revocation_list.rb +110 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/certificate_signer.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/configuration.rb +64 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/digest.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/host.rb +372 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/inventory.rb +55 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/key.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/oids.rb +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/validator.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/validator/default_validator.rb +175 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/ssl/validator/no_validator.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/status.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/test/test_helper.rb +243 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction.rb +370 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction/additional_resource_generator.rb +126 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction/event.rb +107 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction/event_manager.rb +122 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction/report.rb +383 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/transaction/resource_harness.rb +251 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type.rb +2452 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/augeas.rb +201 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/component.rb +77 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/computer.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/cron.rb +488 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/exec.rb +592 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file.rb +933 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/checksum.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/content.rb +241 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/ctime.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/ensure.rb +189 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/group.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/mode.rb +168 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/mtime.rb +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/owner.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/selcontext.rb +124 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/source.rb +259 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/target.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/file/type.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/filebucket.rb +122 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/group.rb +188 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/host.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/interface.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/k5login.rb +88 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/macauthorization.rb +167 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/mailalias.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/maillist.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/mcx.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/mount.rb +286 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_command.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_contact.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_contactgroup.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_host.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_hostescalation.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_hostextinfo.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_hostgroup.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_service.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_servicedependency.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_serviceescalation.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_servicegroup.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/nagios_timeperiod.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/notify.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/package.rb +466 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/resources.rb +187 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/router.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/schedule.rb +469 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/scheduled_task.rb +169 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/selboolean.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/selmodule.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/service.rb +234 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/ssh_authorized_key.rb +153 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/sshkey.rb +73 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/stage.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/tidy.rb +324 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/user.rb +698 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/vlan.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/whit.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/yumrepo.rb +363 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/zfs.rb +150 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/zone.rb +382 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/type/zpool.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util.rb +554 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/autoload.rb +231 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/backups.rb +86 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/cacher.rb +74 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/checksums.rb +202 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/classgen.rb +236 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/colors.rb +217 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/command_line.rb +199 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/command_line/trollop.rb +824 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/constant_inflector.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/diff.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/docs.rb +128 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/errors.rb +106 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/execution.rb +327 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/execution_stub.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/feature.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/file_watcher.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/fileparsing.rb +376 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/filetype.rb +303 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/http_proxy.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/inifile.rb +341 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/inline_docs.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instance_loader.rb +81 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation.rb +152 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/data.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/indirection_probe.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/instrumentable.rb +136 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb +72 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listeners/log.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listeners/performance.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/json_lockfile.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/ldap.rb +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/ldap/connection.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/ldap/generator.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/ldap/manager.rb +278 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/libuser.conf +15 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/libuser.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/limits.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/lockfile.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/log.rb +343 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/log/destination.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/log/destinations.rb +232 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/log/rate_limited_logger.rb +40 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/logging.rb +181 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/metaid.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/methodhelper.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/metric.rb +210 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/monkey_patches.rb +225 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/monkey_patches/lines.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/nagios_maker.rb +85 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/base.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/cisco.rb +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/cisco/device.rb +267 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/cisco/facts.rb +72 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/cisco/interface.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/config.rb +93 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/ipcalc.rb +68 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/transport.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/transport/base.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/transport/ssh.rb +122 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/network_device/transport/telnet.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/package.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/pidlock.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/platform.rb +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/plugins.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/posix.rb +137 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler/logging.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler/object_counts.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/profiler/wall_clock.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/provider_features.rb +184 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/pson.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/queue.rb +96 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/queue/stomp.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/rails/cache_accumulator.rb +65 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/rails/collection_merger.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/rails/reference_serializer.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/rdoc.rb +96 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/reference.rb +124 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/resource_template.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/retryaction.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/rubygems.rb +75 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/run_mode.rb +82 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/selinux.rb +222 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/ssl.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/storage.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/suidmanager.rb +191 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/symbolic_file_mode.rb +144 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/tag_set.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/tagging.rb +56 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/terminal.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/user_attr.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/warnings.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/watched_file.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/watcher.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/watcher/timer.rb +19 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/access_control_list.rb +113 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/adsi.rb +430 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/api_types.rb +255 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/com.rb +224 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/error.rb +83 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/file.rb +401 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/process.rb +354 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/registry.rb +80 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/root_certs.rb +108 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/security.rb +920 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/sid.rb +162 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/string.rb +16 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/taskscheduler.rb +1241 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/windows/user.rb +292 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/yaml.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/util/zaml.rb +419 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor.rb +57 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/load_pathspec.rb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/load_rgen.rb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/load_safe_yaml.rb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/load_semantic.rb +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/LICENSE +201 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/README.md +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/require_vendored.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/CHANGELOG +197 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/README.rdoc +78 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/Rakefile +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/TODO +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/anounce.txt +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/CHANGES.md +104 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/Gemfile +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/LICENSE.txt +22 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/README.md +179 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/Rakefile +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +253 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +27 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +12 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +26 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +92 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +52 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +94 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +17 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +36 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +38 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +41 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +33 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +13 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +47 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +3 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +21 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +2 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +250 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +702 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +18 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +29 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +10 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +11 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +34 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +42 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +59 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +49 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/safe_yaml_patches.rb +9 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/Gemfile +20 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/Rakefile +69 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic.rb +7 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency.rb +181 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency/graph.rb +60 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency/graph_node.rb +117 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +46 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency/source.rb +25 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/dependency/unsatisfiable_graph.rb +31 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/version.rb +168 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/lib/semantic/version_range.rb +424 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/spec_helper.rb +24 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +141 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +162 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +143 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +5 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +44 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +383 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +307 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +608 -0
- data/vendor/gems/puppet-3.7.3/lib/puppet/version.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppetx.rb +89 -0
- data/vendor/gems/puppet-3.7.3/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
- data/vendor/gems/puppet-3.7.3/lib/puppetx/puppet/syntax_checker.rb +91 -0
- data/vendor/gems/puppet-3.7.3/lib/puppetx/puppetlabs/syntax_checkers/json.rb +37 -0
- data/vendor/gems/puppet-3.7.3/lib/semver.rb +124 -0
- data/vendor/gems/puppet-3.7.3/puppet-3.7.3.gemspec +3648 -0
- data/vendor/gems/puppet-3.7.3/tasks/benchmark.rake +144 -0
- data/vendor/gems/puppet-3.7.3/tasks/ci.rake +29 -0
- data/vendor/gems/puppet-3.7.3/tasks/manpages.rake +84 -0
- data/vendor/gems/puppet-3.7.3/tasks/memwalk.rake +195 -0
- data/vendor/gems/puppet-3.7.3/tasks/parallel.rake +408 -0
- data/vendor/gems/puppet-3.7.3/tasks/parser.rake +19 -0
- data/vendor/gems/puppet-3.7.3/tasks/yard.rake +59 -0
- metadata +1351 -35
@@ -0,0 +1,172 @@
|
|
1
|
+
# Compares the puppet DSL way
|
2
|
+
#
|
3
|
+
# ==Equality
|
4
|
+
# All string vs. numeric equalities check for numeric equality first, then string equality
|
5
|
+
# Arrays are equal to arrays if they have the same length, and each element #equals
|
6
|
+
# Hashes are equal to hashes if they have the same size and keys and values #equals.
|
7
|
+
# All other objects are equal if they are ruby #== equal
|
8
|
+
#
|
9
|
+
class Puppet::Pops::Evaluator::CompareOperator
|
10
|
+
include Puppet::Pops::Utils
|
11
|
+
|
12
|
+
# Provides access to the Puppet 3.x runtime (scope, etc.)
|
13
|
+
# This separation has been made to make it easier to later migrate the evaluator to an improved runtime.
|
14
|
+
#
|
15
|
+
include Puppet::Pops::Evaluator::Runtime3Support
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@@equals_visitor ||= Puppet::Pops::Visitor.new(self, "equals", 1, 1)
|
19
|
+
@@compare_visitor ||= Puppet::Pops::Visitor.new(self, "cmp", 1, 1)
|
20
|
+
@@include_visitor ||= Puppet::Pops::Visitor.new(self, "include", 2, 2)
|
21
|
+
@type_calculator = Puppet::Pops::Types::TypeCalculator.new()
|
22
|
+
end
|
23
|
+
|
24
|
+
def equals (a, b)
|
25
|
+
@@equals_visitor.visit_this_1(self, a, b)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Performs a comparison of a and b, and return > 0 if a is bigger, 0 if equal, and < 0 if b is bigger.
|
29
|
+
# Comparison of String vs. Numeric always compares using numeric.
|
30
|
+
def compare(a, b)
|
31
|
+
@@compare_visitor.visit_this_1(self, a, b)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Answers is b included in a
|
35
|
+
def include?(a, b, scope)
|
36
|
+
@@include_visitor.visit_this_2(self, a, b, scope)
|
37
|
+
end
|
38
|
+
|
39
|
+
protected
|
40
|
+
|
41
|
+
def cmp_String(a, b)
|
42
|
+
# if both are numerics in string form, compare as number
|
43
|
+
n1 = Puppet::Pops::Utils.to_n(a)
|
44
|
+
n2 = Puppet::Pops::Utils.to_n(b)
|
45
|
+
|
46
|
+
# Numeric is always lexically smaller than a string, even if the string is empty.
|
47
|
+
return n1 <=> n2 if n1 && n2
|
48
|
+
return -1 if n1 && b.is_a?(String)
|
49
|
+
return 1 if n2
|
50
|
+
return a.casecmp(b) if b.is_a?(String)
|
51
|
+
|
52
|
+
raise ArgumentError.new("A String is not comparable to a non String or Number")
|
53
|
+
end
|
54
|
+
|
55
|
+
# Equality is case independent.
|
56
|
+
def equals_String(a, b)
|
57
|
+
if n1 = Puppet::Pops::Utils.to_n(a)
|
58
|
+
if n2 = Puppet::Pops::Utils.to_n(b)
|
59
|
+
n1 == n2
|
60
|
+
else
|
61
|
+
false
|
62
|
+
end
|
63
|
+
else
|
64
|
+
return false unless b.is_a?(String)
|
65
|
+
a.casecmp(b) == 0
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def cmp_Numeric(a, b)
|
70
|
+
if n2 = Puppet::Pops::Utils.to_n(b)
|
71
|
+
a <=> n2
|
72
|
+
elsif b.kind_of?(String)
|
73
|
+
# Numeric is always lexiographically smaller than a string, even if the string is empty.
|
74
|
+
-1
|
75
|
+
else
|
76
|
+
raise ArgumentError.new("A Numeric is not comparable to non Numeric or String")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def equals_Numeric(a, b)
|
81
|
+
if n2 = Puppet::Pops::Utils.to_n(b)
|
82
|
+
a == n2
|
83
|
+
else
|
84
|
+
false
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def equals_Array(a, b)
|
89
|
+
return false unless b.is_a?(Array) && a.size == b.size
|
90
|
+
a.each_index {|i| return false unless equals(a.slice(i), b.slice(i)) }
|
91
|
+
true
|
92
|
+
end
|
93
|
+
|
94
|
+
def equals_Hash(a, b)
|
95
|
+
return false unless b.is_a?(Hash) && a.size == b.size
|
96
|
+
a.each {|ak, av| return false unless equals(b[ak], av)}
|
97
|
+
true
|
98
|
+
end
|
99
|
+
|
100
|
+
def cmp_Symbol(a, b)
|
101
|
+
if b.is_a?(Symbol)
|
102
|
+
a <=> b
|
103
|
+
else
|
104
|
+
raise ArgumentError.new("Symbol not comparable to non Symbol")
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def cmp_Object(a, b)
|
109
|
+
raise ArgumentError.new("Only Strings and Numbers are comparable")
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
def equals_Object(a, b)
|
114
|
+
a == b
|
115
|
+
end
|
116
|
+
|
117
|
+
def equals_NilClass(a, b)
|
118
|
+
# :undef supported in case it is passed from a 3x data structure
|
119
|
+
b.nil? || b == :undef
|
120
|
+
end
|
121
|
+
|
122
|
+
def equals_Symbol(a, b)
|
123
|
+
# :undef supported in case it is passed from a 3x data structure
|
124
|
+
a == b || a == :undef && b.nil?
|
125
|
+
end
|
126
|
+
|
127
|
+
def include_Object(a, b, scope)
|
128
|
+
false
|
129
|
+
end
|
130
|
+
|
131
|
+
def include_String(a, b, scope)
|
132
|
+
case b
|
133
|
+
when String
|
134
|
+
# subsstring search downcased
|
135
|
+
a.downcase.include?(b.downcase)
|
136
|
+
when Regexp
|
137
|
+
matched = a.match(b) # nil, or MatchData
|
138
|
+
set_match_data(matched, scope) # creates ephemeral
|
139
|
+
!!matched # match (convert to boolean)
|
140
|
+
when Numeric
|
141
|
+
# convert string to number, true if ==
|
142
|
+
equals(a, b)
|
143
|
+
else
|
144
|
+
false
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def include_Array(a, b, scope)
|
149
|
+
case b
|
150
|
+
when Regexp
|
151
|
+
matched = nil
|
152
|
+
a.each do |element|
|
153
|
+
next unless element.is_a? String
|
154
|
+
matched = element.match(b) # nil, or MatchData
|
155
|
+
break if matched
|
156
|
+
end
|
157
|
+
# Always set match data, a "not found" should not keep old match data visible
|
158
|
+
set_match_data(matched, scope) # creates ephemeral
|
159
|
+
return !!matched
|
160
|
+
when Puppet::Pops::Types::PAnyType
|
161
|
+
a.each {|element| return true if @type_calculator.instance?(b, element) }
|
162
|
+
return false
|
163
|
+
else
|
164
|
+
a.each {|element| return true if equals(element, b) }
|
165
|
+
return false
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
def include_Hash(a, b, scope)
|
170
|
+
include?(a.keys, b, scope)
|
171
|
+
end
|
172
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# Handler of Epp call/evaluation from the epp and inline_epp functions
|
2
|
+
#
|
3
|
+
class Puppet::Pops::Evaluator::EppEvaluator
|
4
|
+
|
5
|
+
def self.inline_epp(scope, epp_source, template_args = nil)
|
6
|
+
unless epp_source.is_a?(String)
|
7
|
+
raise ArgumentError, "inline_epp(): the first argument must be a String with the epp source text, got a #{epp_source.class}"
|
8
|
+
end
|
9
|
+
|
10
|
+
# Parse and validate the source
|
11
|
+
parser = Puppet::Pops::Parser::EvaluatingParser::EvaluatingEppParser.new
|
12
|
+
begin
|
13
|
+
result = parser.parse_string(epp_source, 'inlined-epp-text')
|
14
|
+
rescue Puppet::ParseError => e
|
15
|
+
raise ArgumentError, "inline_epp(): Invalid EPP: #{e.message}"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Evaluate (and check template_args)
|
19
|
+
evaluate(parser, 'inline_epp', scope, false, result, template_args)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.epp(scope, file, env_name, template_args = nil)
|
23
|
+
unless file.is_a?(String)
|
24
|
+
raise ArgumentError, "epp(): the first argument must be a String with the filename, got a #{file.class}"
|
25
|
+
end
|
26
|
+
|
27
|
+
file = file + ".epp" unless file =~ /\.epp$/
|
28
|
+
scope.debug "Retrieving epp template #{file}"
|
29
|
+
template_file = Puppet::Parser::Files.find_template(file, env_name)
|
30
|
+
unless template_file
|
31
|
+
raise Puppet::ParseError, "Could not find template '#{file}'"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Parse and validate the source
|
35
|
+
parser = Puppet::Pops::Parser::EvaluatingParser::EvaluatingEppParser.new
|
36
|
+
begin
|
37
|
+
result = parser.parse_file(template_file)
|
38
|
+
rescue Puppet::ParseError => e
|
39
|
+
raise ArgumentError, "epp(): Invalid EPP: #{e.message}"
|
40
|
+
end
|
41
|
+
|
42
|
+
# Evaluate (and check template_args)
|
43
|
+
evaluate(parser, 'epp', scope, true, result, template_args)
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def self.evaluate(parser, func_name, scope, use_global_scope_only, parse_result, template_args)
|
49
|
+
template_args, template_args_set = handle_template_args(func_name, template_args)
|
50
|
+
|
51
|
+
body = parse_result.body
|
52
|
+
unless body.is_a?(Puppet::Pops::Model::LambdaExpression)
|
53
|
+
raise ArgumentError, "#{func_name}(): the parser did not produce a LambdaExpression, got '#{body.class}'"
|
54
|
+
end
|
55
|
+
unless body.body.is_a?(Puppet::Pops::Model::EppExpression)
|
56
|
+
raise ArgumentError, "#{func_name}(): the parser did not produce an EppExpression, got '#{body.body.class}'"
|
57
|
+
end
|
58
|
+
unless parse_result.definitions.empty?
|
59
|
+
raise ArgumentError, "#{func_name}(): The EPP template contains illegal expressions (definitions)"
|
60
|
+
end
|
61
|
+
|
62
|
+
parameters_specified = body.body.parameters_specified
|
63
|
+
if parameters_specified || template_args_set
|
64
|
+
# no epp params or user provided arguments in a hash, epp() logic
|
65
|
+
# only sees global + what was given
|
66
|
+
closure_scope = scope.find_global_scope
|
67
|
+
enforce_parameters = parameters_specified
|
68
|
+
else
|
69
|
+
# no epp params and no arguments were given => inline_epp() logic
|
70
|
+
# sees all local variables, epp() all global
|
71
|
+
closure_scope = use_global_scope_only ? scope.find_global_scope : scope
|
72
|
+
enforce_parameters = true
|
73
|
+
end
|
74
|
+
evaluated_result = parser.closure(body, closure_scope).call_by_name(scope, template_args, enforce_parameters)
|
75
|
+
evaluated_result
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.handle_template_args(func_name, template_args)
|
79
|
+
if template_args.nil?
|
80
|
+
[{}, false]
|
81
|
+
else
|
82
|
+
unless template_args.is_a?(Hash)
|
83
|
+
raise ArgumentError, "#{func_name}(): the template_args must be a Hash, got a #{template_args.class}"
|
84
|
+
end
|
85
|
+
[template_args, true]
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,1115 @@
|
|
1
|
+
require 'rgen/ecore/ecore'
|
2
|
+
require 'puppet/pops/evaluator/compare_operator'
|
3
|
+
require 'puppet/pops/evaluator/relationship_operator'
|
4
|
+
require 'puppet/pops/evaluator/access_operator'
|
5
|
+
require 'puppet/pops/evaluator/closure'
|
6
|
+
require 'puppet/pops/evaluator/external_syntax_support'
|
7
|
+
|
8
|
+
# This implementation of {Puppet::Pops::Evaluator} performs evaluation using the puppet 3.x runtime system
|
9
|
+
# in a manner largely compatible with Puppet 3.x, but adds new features and introduces constraints.
|
10
|
+
#
|
11
|
+
# The evaluation uses _polymorphic dispatch_ which works by dispatching to the first found method named after
|
12
|
+
# the class or one of its super-classes. The EvaluatorImpl itself mainly deals with evaluation (it currently
|
13
|
+
# also handles assignment), and it uses a delegation pattern to more specialized handlers of some operators
|
14
|
+
# that in turn use polymorphic dispatch; this to not clutter EvaluatorImpl with too much responsibility).
|
15
|
+
#
|
16
|
+
# Since a pattern is used, only the main entry points are fully documented. The parameters _o_ and _scope_ are
|
17
|
+
# the same in all the polymorphic methods, (the type of the parameter _o_ is reflected in the method's name;
|
18
|
+
# either the actual class, or one of its super classes). The _scope_ parameter is always the scope in which
|
19
|
+
# the evaluation takes place. If nothing else is mentioned, the return is always the result of evaluation.
|
20
|
+
#
|
21
|
+
# See {Puppet::Pops::Visitable} and {Puppet::Pops::Visitor} for more information about
|
22
|
+
# polymorphic calling.
|
23
|
+
#
|
24
|
+
class Puppet::Pops::Evaluator::EvaluatorImpl
|
25
|
+
include Puppet::Pops::Utils
|
26
|
+
|
27
|
+
# Provides access to the Puppet 3.x runtime (scope, etc.)
|
28
|
+
# This separation has been made to make it easier to later migrate the evaluator to an improved runtime.
|
29
|
+
#
|
30
|
+
include Puppet::Pops::Evaluator::Runtime3Support
|
31
|
+
include Puppet::Pops::Evaluator::ExternalSyntaxSupport
|
32
|
+
|
33
|
+
# This constant is not defined as Float::INFINITY in Ruby 1.8.7 (but is available in later version
|
34
|
+
# Refactor when support is dropped for Ruby 1.8.7.
|
35
|
+
#
|
36
|
+
INFINITY = 1.0 / 0.0
|
37
|
+
EMPTY_STRING = ''.freeze
|
38
|
+
COMMA_SEPARATOR = ', '.freeze
|
39
|
+
|
40
|
+
# Reference to Issues name space makes it easier to refer to issues
|
41
|
+
# (Issues are shared with the validator).
|
42
|
+
#
|
43
|
+
Issues = Puppet::Pops::Issues
|
44
|
+
|
45
|
+
def initialize
|
46
|
+
@@eval_visitor ||= Puppet::Pops::Visitor.new(self, "eval", 1, 1)
|
47
|
+
@@lvalue_visitor ||= Puppet::Pops::Visitor.new(self, "lvalue", 1, 1)
|
48
|
+
@@assign_visitor ||= Puppet::Pops::Visitor.new(self, "assign", 3, 3)
|
49
|
+
@@string_visitor ||= Puppet::Pops::Visitor.new(self, "string", 1, 1)
|
50
|
+
|
51
|
+
@@type_calculator ||= Puppet::Pops::Types::TypeCalculator.new()
|
52
|
+
@@type_parser ||= Puppet::Pops::Types::TypeParser.new()
|
53
|
+
|
54
|
+
@@compare_operator ||= Puppet::Pops::Evaluator::CompareOperator.new()
|
55
|
+
@@relationship_operator ||= Puppet::Pops::Evaluator::RelationshipOperator.new()
|
56
|
+
|
57
|
+
# Initialize the runtime module
|
58
|
+
Puppet::Pops::Evaluator::Runtime3Support.instance_method(:initialize).bind(self).call()
|
59
|
+
end
|
60
|
+
|
61
|
+
# @api private
|
62
|
+
def type_calculator
|
63
|
+
@@type_calculator
|
64
|
+
end
|
65
|
+
|
66
|
+
# Evaluates the given _target_ object in the given scope.
|
67
|
+
#
|
68
|
+
# @overload evaluate(target, scope)
|
69
|
+
# @param target [Object] evaluation target - see methods on the pattern assign_TYPE for actual supported types.
|
70
|
+
# @param scope [Object] the runtime specific scope class where evaluation should take place
|
71
|
+
# @return [Object] the result of the evaluation
|
72
|
+
#
|
73
|
+
# @api public
|
74
|
+
#
|
75
|
+
def evaluate(target, scope)
|
76
|
+
begin
|
77
|
+
@@eval_visitor.visit_this_1(self, target, scope)
|
78
|
+
|
79
|
+
rescue Puppet::Pops::SemanticError => e
|
80
|
+
# a raised issue may not know the semantic target
|
81
|
+
fail(e.issue, e.semantic || target, e.options, e)
|
82
|
+
|
83
|
+
rescue StandardError => e
|
84
|
+
if e.is_a? Puppet::ParseError
|
85
|
+
# ParseError's are supposed to be fully configured with location information
|
86
|
+
raise e
|
87
|
+
end
|
88
|
+
fail(Issues::RUNTIME_ERROR, target, {:detail => e.message}, e)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# Assigns the given _value_ to the given _target_. The additional argument _o_ is the instruction that
|
93
|
+
# produced the target/value tuple and it is used to set the origin of the result.
|
94
|
+
#
|
95
|
+
# @param target [Object] assignment target - see methods on the pattern assign_TYPE for actual supported types.
|
96
|
+
# @param value [Object] the value to assign to `target`
|
97
|
+
# @param o [Puppet::Pops::Model::PopsObject] originating instruction
|
98
|
+
# @param scope [Object] the runtime specific scope where evaluation should take place
|
99
|
+
#
|
100
|
+
# @api private
|
101
|
+
#
|
102
|
+
def assign(target, value, o, scope)
|
103
|
+
@@assign_visitor.visit_this_3(self, target, value, o, scope)
|
104
|
+
end
|
105
|
+
|
106
|
+
# Computes a value that can be used as the LHS in an assignment.
|
107
|
+
# @param o [Object] the expression to evaluate as a left (assignable) entity
|
108
|
+
# @param scope [Object] the runtime specific scope where evaluation should take place
|
109
|
+
#
|
110
|
+
# @api private
|
111
|
+
#
|
112
|
+
def lvalue(o, scope)
|
113
|
+
@@lvalue_visitor.visit_this_1(self, o, scope)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Produces a String representation of the given object _o_ as used in interpolation.
|
117
|
+
# @param o [Object] the expression of which a string representation is wanted
|
118
|
+
# @param scope [Object] the runtime specific scope where evaluation should take place
|
119
|
+
#
|
120
|
+
# @api public
|
121
|
+
#
|
122
|
+
def string(o, scope)
|
123
|
+
@@string_visitor.visit_this_1(self, o, scope)
|
124
|
+
end
|
125
|
+
|
126
|
+
# Evaluate a BlockExpression in a new scope with variables bound to the
|
127
|
+
# given values.
|
128
|
+
#
|
129
|
+
# @param scope [Puppet::Parser::Scope] the parent scope
|
130
|
+
# @param variable_bindings [Hash{String => Object}] the variable names and values to bind (names are keys, bound values are values)
|
131
|
+
# @param block [Puppet::Pops::Model::BlockExpression] the sequence of expressions to evaluate in the new scope
|
132
|
+
#
|
133
|
+
# @api private
|
134
|
+
#
|
135
|
+
def evaluate_block_with_bindings(scope, variable_bindings, block_expr)
|
136
|
+
with_guarded_scope(scope) do
|
137
|
+
# change to create local scope_from - cannot give it file and line -
|
138
|
+
# that is the place of the call, not "here"
|
139
|
+
create_local_scope_from(variable_bindings, scope)
|
140
|
+
evaluate(block_expr, scope)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
protected
|
145
|
+
|
146
|
+
def lvalue_VariableExpression(o, scope)
|
147
|
+
# evaluate the name
|
148
|
+
evaluate(o.expr, scope)
|
149
|
+
end
|
150
|
+
|
151
|
+
# Catches all illegal lvalues
|
152
|
+
#
|
153
|
+
def lvalue_Object(o, scope)
|
154
|
+
fail(Issues::ILLEGAL_ASSIGNMENT, o)
|
155
|
+
end
|
156
|
+
|
157
|
+
# Assign value to named variable.
|
158
|
+
# The '$' sign is never part of the name.
|
159
|
+
# @example In Puppet DSL
|
160
|
+
# $name = value
|
161
|
+
# @param name [String] name of variable without $
|
162
|
+
# @param value [Object] value to assign to the variable
|
163
|
+
# @param o [Puppet::Pops::Model::PopsObject] originating instruction
|
164
|
+
# @param scope [Object] the runtime specific scope where evaluation should take place
|
165
|
+
# @return [value<Object>]
|
166
|
+
#
|
167
|
+
def assign_String(name, value, o, scope)
|
168
|
+
if name =~ /::/
|
169
|
+
fail(Issues::CROSS_SCOPE_ASSIGNMENT, o.left_expr, {:name => name})
|
170
|
+
end
|
171
|
+
set_variable(name, value, o, scope)
|
172
|
+
value
|
173
|
+
end
|
174
|
+
|
175
|
+
def assign_Numeric(n, value, o, scope)
|
176
|
+
fail(Issues::ILLEGAL_NUMERIC_ASSIGNMENT, o.left_expr, {:varname => n.to_s})
|
177
|
+
end
|
178
|
+
|
179
|
+
# Catches all illegal assignment (e.g. 1 = 2, {'a'=>1} = 2, etc)
|
180
|
+
#
|
181
|
+
def assign_Object(name, value, o, scope)
|
182
|
+
fail(Issues::ILLEGAL_ASSIGNMENT, o)
|
183
|
+
end
|
184
|
+
|
185
|
+
def eval_Factory(o, scope)
|
186
|
+
evaluate(o.current, scope)
|
187
|
+
end
|
188
|
+
|
189
|
+
# Evaluates any object not evaluated to something else to itself.
|
190
|
+
def eval_Object o, scope
|
191
|
+
o
|
192
|
+
end
|
193
|
+
|
194
|
+
# Allows nil to be used as a Nop, Evaluates to nil
|
195
|
+
def eval_NilClass(o, scope)
|
196
|
+
nil
|
197
|
+
end
|
198
|
+
|
199
|
+
# Evaluates Nop to nil.
|
200
|
+
def eval_Nop(o, scope)
|
201
|
+
nil
|
202
|
+
end
|
203
|
+
|
204
|
+
# Captures all LiteralValues not handled elsewhere.
|
205
|
+
#
|
206
|
+
def eval_LiteralValue(o, scope)
|
207
|
+
o.value
|
208
|
+
end
|
209
|
+
|
210
|
+
# Reserved Words fail to evaluate
|
211
|
+
#
|
212
|
+
def eval_ReservedWord(o, scope)
|
213
|
+
fail(Puppet::Pops::Issues::RESERVED_WORD, o, {:word => o.word})
|
214
|
+
end
|
215
|
+
|
216
|
+
def eval_LiteralDefault(o, scope)
|
217
|
+
:default
|
218
|
+
end
|
219
|
+
|
220
|
+
def eval_LiteralUndef(o, scope)
|
221
|
+
nil
|
222
|
+
end
|
223
|
+
|
224
|
+
# A QualifiedReference (i.e. a capitalized qualified name such as Foo, or Foo::Bar) evaluates to a PType
|
225
|
+
#
|
226
|
+
def eval_QualifiedReference(o, scope)
|
227
|
+
@@type_parser.interpret(o)
|
228
|
+
end
|
229
|
+
|
230
|
+
def eval_NotExpression(o, scope)
|
231
|
+
! is_true?(evaluate(o.expr, scope))
|
232
|
+
end
|
233
|
+
|
234
|
+
def eval_UnaryMinusExpression(o, scope)
|
235
|
+
- coerce_numeric(evaluate(o.expr, scope), o, scope)
|
236
|
+
end
|
237
|
+
|
238
|
+
def eval_UnfoldExpression(o, scope)
|
239
|
+
candidate = evaluate(o.expr, scope)
|
240
|
+
case candidate
|
241
|
+
when Array
|
242
|
+
candidate
|
243
|
+
when Hash
|
244
|
+
candidate.to_a
|
245
|
+
else
|
246
|
+
# turns anything else into an array (so result can be unfolded)
|
247
|
+
[candidate]
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
# Abstract evaluation, returns array [left, right] with the evaluated result of left_expr and
|
252
|
+
# right_expr
|
253
|
+
# @return <Array<Object, Object>> array with result of evaluating left and right expressions
|
254
|
+
#
|
255
|
+
def eval_BinaryExpression o, scope
|
256
|
+
[ evaluate(o.left_expr, scope), evaluate(o.right_expr, scope) ]
|
257
|
+
end
|
258
|
+
|
259
|
+
# Evaluates assignment with operators =, +=, -= and
|
260
|
+
#
|
261
|
+
# @example Puppet DSL
|
262
|
+
# $a = 1
|
263
|
+
# $a += 1
|
264
|
+
# $a -= 1
|
265
|
+
#
|
266
|
+
def eval_AssignmentExpression(o, scope)
|
267
|
+
name = lvalue(o.left_expr, scope)
|
268
|
+
value = evaluate(o.right_expr, scope)
|
269
|
+
|
270
|
+
if o.operator == :'='
|
271
|
+
assign(name, value, o, scope)
|
272
|
+
else
|
273
|
+
fail(Issues::UNSUPPORTED_OPERATOR, o, {:operator => o.operator})
|
274
|
+
end
|
275
|
+
value
|
276
|
+
end
|
277
|
+
|
278
|
+
ARITHMETIC_OPERATORS = [:'+', :'-', :'*', :'/', :'%', :'<<', :'>>']
|
279
|
+
COLLECTION_OPERATORS = [:'+', :'-', :'<<']
|
280
|
+
|
281
|
+
# Handles binary expression where lhs and rhs are array/hash or numeric and operator is +, - , *, % / << >>
|
282
|
+
#
|
283
|
+
def eval_ArithmeticExpression(o, scope)
|
284
|
+
left = evaluate(o.left_expr, scope)
|
285
|
+
right = evaluate(o.right_expr, scope)
|
286
|
+
|
287
|
+
begin
|
288
|
+
result = calculate(left, right, o.operator, o.left_expr, o.right_expr, scope)
|
289
|
+
rescue ArgumentError => e
|
290
|
+
fail(Issues::RUNTIME_ERROR, o, {:detail => e.message}, e)
|
291
|
+
end
|
292
|
+
result
|
293
|
+
end
|
294
|
+
|
295
|
+
|
296
|
+
# Handles binary expression where lhs and rhs are array/hash or numeric and operator is +, - , *, % / << >>
|
297
|
+
#
|
298
|
+
def calculate(left, right, operator, left_o, right_o, scope)
|
299
|
+
unless ARITHMETIC_OPERATORS.include?(operator)
|
300
|
+
fail(Issues::UNSUPPORTED_OPERATOR, left_o.eContainer, {:operator => o.operator})
|
301
|
+
end
|
302
|
+
|
303
|
+
if (left.is_a?(Array) || left.is_a?(Hash)) && COLLECTION_OPERATORS.include?(operator)
|
304
|
+
# Handle operation on collections
|
305
|
+
case operator
|
306
|
+
when :'+'
|
307
|
+
concatenate(left, right)
|
308
|
+
when :'-'
|
309
|
+
delete(left, right)
|
310
|
+
when :'<<'
|
311
|
+
unless left.is_a?(Array)
|
312
|
+
fail(Issues::OPERATOR_NOT_APPLICABLE, left_o, {:operator => operator, :left_value => left})
|
313
|
+
end
|
314
|
+
left + [right]
|
315
|
+
end
|
316
|
+
else
|
317
|
+
# Handle operation on numeric
|
318
|
+
left = coerce_numeric(left, left_o, scope)
|
319
|
+
right = coerce_numeric(right, right_o, scope)
|
320
|
+
begin
|
321
|
+
if operator == :'%' && (left.is_a?(Float) || right.is_a?(Float))
|
322
|
+
# Deny users the fun of seeing severe rounding errors and confusing results
|
323
|
+
fail(Issues::OPERATOR_NOT_APPLICABLE, left_o, {:operator => operator, :left_value => left})
|
324
|
+
end
|
325
|
+
result = left.send(operator, right)
|
326
|
+
rescue NoMethodError => e
|
327
|
+
fail(Issues::OPERATOR_NOT_APPLICABLE, left_o, {:operator => operator, :left_value => left})
|
328
|
+
rescue ZeroDivisionError => e
|
329
|
+
fail(Issues::DIV_BY_ZERO, right_o)
|
330
|
+
end
|
331
|
+
if result == INFINITY || result == -INFINITY
|
332
|
+
fail(Issues::RESULT_IS_INFINITY, left_o, {:operator => operator})
|
333
|
+
end
|
334
|
+
result
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
338
|
+
def eval_EppExpression(o, scope)
|
339
|
+
scope["@epp"] = []
|
340
|
+
evaluate(o.body, scope)
|
341
|
+
result = scope["@epp"].join
|
342
|
+
result
|
343
|
+
end
|
344
|
+
|
345
|
+
def eval_RenderStringExpression(o, scope)
|
346
|
+
scope["@epp"] << o.value.dup
|
347
|
+
nil
|
348
|
+
end
|
349
|
+
|
350
|
+
def eval_RenderExpression(o, scope)
|
351
|
+
scope["@epp"] << string(evaluate(o.expr, scope), scope)
|
352
|
+
nil
|
353
|
+
end
|
354
|
+
|
355
|
+
# Evaluates Puppet DSL ->, ~>, <-, and <~
|
356
|
+
def eval_RelationshipExpression(o, scope)
|
357
|
+
# First level evaluation, reduction to basic data types or puppet types, the relationship operator then translates this
|
358
|
+
# to the final set of references (turning strings into references, which can not naturally be done by the main evaluator since
|
359
|
+
# all strings should not be turned into references.
|
360
|
+
#
|
361
|
+
real = eval_BinaryExpression(o, scope)
|
362
|
+
@@relationship_operator.evaluate(real, o, scope)
|
363
|
+
end
|
364
|
+
|
365
|
+
# Evaluates x[key, key, ...]
|
366
|
+
#
|
367
|
+
def eval_AccessExpression(o, scope)
|
368
|
+
left = evaluate(o.left_expr, scope)
|
369
|
+
keys = o.keys.nil? ? [] : o.keys.collect {|key| evaluate(key, scope) }
|
370
|
+
Puppet::Pops::Evaluator::AccessOperator.new(o).access(left, scope, *keys)
|
371
|
+
end
|
372
|
+
|
373
|
+
# Evaluates <, <=, >, >=, and ==
|
374
|
+
#
|
375
|
+
def eval_ComparisonExpression o, scope
|
376
|
+
left = evaluate(o.left_expr, scope)
|
377
|
+
right = evaluate(o.right_expr, scope)
|
378
|
+
|
379
|
+
begin
|
380
|
+
# Left is a type
|
381
|
+
if left.is_a?(Puppet::Pops::Types::PAnyType)
|
382
|
+
case o.operator
|
383
|
+
when :'=='
|
384
|
+
@@type_calculator.equals(left,right)
|
385
|
+
|
386
|
+
when :'!='
|
387
|
+
!@@type_calculator.equals(left,right)
|
388
|
+
|
389
|
+
when :'<'
|
390
|
+
# left can be assigned to right, but they are not equal
|
391
|
+
@@type_calculator.assignable?(right, left) && ! @@type_calculator.equals(left,right)
|
392
|
+
when :'<='
|
393
|
+
# left can be assigned to right
|
394
|
+
@@type_calculator.assignable?(right, left)
|
395
|
+
when :'>'
|
396
|
+
# right can be assigned to left, but they are not equal
|
397
|
+
@@type_calculator.assignable?(left,right) && ! @@type_calculator.equals(left,right)
|
398
|
+
when :'>='
|
399
|
+
# right can be assigned to left
|
400
|
+
@@type_calculator.assignable?(left, right)
|
401
|
+
else
|
402
|
+
fail(Issues::UNSUPPORTED_OPERATOR, o, {:operator => o.operator})
|
403
|
+
end
|
404
|
+
else
|
405
|
+
case o.operator
|
406
|
+
when :'=='
|
407
|
+
@@compare_operator.equals(left,right)
|
408
|
+
when :'!='
|
409
|
+
! @@compare_operator.equals(left,right)
|
410
|
+
when :'<'
|
411
|
+
@@compare_operator.compare(left,right) < 0
|
412
|
+
when :'<='
|
413
|
+
@@compare_operator.compare(left,right) <= 0
|
414
|
+
when :'>'
|
415
|
+
@@compare_operator.compare(left,right) > 0
|
416
|
+
when :'>='
|
417
|
+
@@compare_operator.compare(left,right) >= 0
|
418
|
+
else
|
419
|
+
fail(Issues::UNSUPPORTED_OPERATOR, o, {:operator => o.operator})
|
420
|
+
end
|
421
|
+
end
|
422
|
+
rescue ArgumentError => e
|
423
|
+
fail(Issues::COMPARISON_NOT_POSSIBLE, o, {
|
424
|
+
:operator => o.operator,
|
425
|
+
:left_value => left,
|
426
|
+
:right_value => right,
|
427
|
+
:detail => e.message}, e)
|
428
|
+
end
|
429
|
+
end
|
430
|
+
|
431
|
+
# Evaluates matching expressions with type, string or regexp rhs expression.
|
432
|
+
# If RHS is a type, the =~ matches compatible (instance? of) type.
|
433
|
+
#
|
434
|
+
# @example
|
435
|
+
# x =~ /abc.*/
|
436
|
+
# @example
|
437
|
+
# x =~ "abc.*/"
|
438
|
+
# @example
|
439
|
+
# y = "abc"
|
440
|
+
# x =~ "${y}.*"
|
441
|
+
# @example
|
442
|
+
# [1,2,3] =~ Array[Integer[1,10]]
|
443
|
+
#
|
444
|
+
# Note that a string is not instance? of Regexp, only Regular expressions are.
|
445
|
+
# The Pattern type should instead be used as it is specified as subtype of String.
|
446
|
+
#
|
447
|
+
# @return [Boolean] if a match was made or not. Also sets $0..$n to matchdata in current scope.
|
448
|
+
#
|
449
|
+
def eval_MatchExpression o, scope
|
450
|
+
left = evaluate(o.left_expr, scope)
|
451
|
+
pattern = evaluate(o.right_expr, scope)
|
452
|
+
|
453
|
+
# matches RHS types as instance of for all types except a parameterized Regexp[R]
|
454
|
+
if pattern.is_a?(Puppet::Pops::Types::PAnyType)
|
455
|
+
# evaluate as instance? of type check
|
456
|
+
matched = @@type_calculator.instance?(pattern, left)
|
457
|
+
# convert match result to Boolean true, or false
|
458
|
+
return o.operator == :'=~' ? !!matched : !matched
|
459
|
+
end
|
460
|
+
|
461
|
+
begin
|
462
|
+
pattern = Regexp.new(pattern) unless pattern.is_a?(Regexp)
|
463
|
+
rescue StandardError => e
|
464
|
+
fail(Issues::MATCH_NOT_REGEXP, o.right_expr, {:detail => e.message}, e)
|
465
|
+
end
|
466
|
+
unless left.is_a?(String)
|
467
|
+
fail(Issues::MATCH_NOT_STRING, o.left_expr, {:left_value => left})
|
468
|
+
end
|
469
|
+
|
470
|
+
matched = pattern.match(left) # nil, or MatchData
|
471
|
+
set_match_data(matched,scope) # creates ephemeral
|
472
|
+
|
473
|
+
# convert match result to Boolean true, or false
|
474
|
+
o.operator == :'=~' ? !!matched : !matched
|
475
|
+
end
|
476
|
+
|
477
|
+
# Evaluates Puppet DSL `in` expression
|
478
|
+
#
|
479
|
+
def eval_InExpression o, scope
|
480
|
+
left = evaluate(o.left_expr, scope)
|
481
|
+
right = evaluate(o.right_expr, scope)
|
482
|
+
@@compare_operator.include?(right, left, scope)
|
483
|
+
end
|
484
|
+
|
485
|
+
# @example
|
486
|
+
# $a and $b
|
487
|
+
# b is only evaluated if a is true
|
488
|
+
#
|
489
|
+
def eval_AndExpression o, scope
|
490
|
+
is_true?(evaluate(o.left_expr, scope)) ? is_true?(evaluate(o.right_expr, scope)) : false
|
491
|
+
end
|
492
|
+
|
493
|
+
# @example
|
494
|
+
# a or b
|
495
|
+
# b is only evaluated if a is false
|
496
|
+
#
|
497
|
+
def eval_OrExpression o, scope
|
498
|
+
is_true?(evaluate(o.left_expr, scope)) ? true : is_true?(evaluate(o.right_expr, scope))
|
499
|
+
end
|
500
|
+
|
501
|
+
# Evaluates each entry of the literal list and creates a new Array
|
502
|
+
# Supports unfolding of entries
|
503
|
+
# @return [Array] with the evaluated content
|
504
|
+
#
|
505
|
+
def eval_LiteralList o, scope
|
506
|
+
unfold([], o.values, scope)
|
507
|
+
end
|
508
|
+
|
509
|
+
# Evaluates each entry of the literal hash and creates a new Hash.
|
510
|
+
# @return [Hash] with the evaluated content
|
511
|
+
#
|
512
|
+
def eval_LiteralHash o, scope
|
513
|
+
# optimized
|
514
|
+
o.entries.reduce({}) {|h,entry| h[evaluate(entry.key, scope)] = evaluate(entry.value, scope); h }
|
515
|
+
end
|
516
|
+
|
517
|
+
# Evaluates all statements and produces the last evaluated value
|
518
|
+
#
|
519
|
+
def eval_BlockExpression o, scope
|
520
|
+
r = nil
|
521
|
+
o.statements.each {|s| r = evaluate(s, scope)}
|
522
|
+
r
|
523
|
+
end
|
524
|
+
|
525
|
+
# Performs optimized search over case option values, lazily evaluating each
|
526
|
+
# until there is a match. If no match is found, the case expression's default expression
|
527
|
+
# is evaluated (it may be nil or Nop if there is no default, thus producing nil).
|
528
|
+
# If an option matches, the result of evaluating that option is returned.
|
529
|
+
# @return [Object, nil] what a matched option returns, or nil if nothing matched.
|
530
|
+
#
|
531
|
+
def eval_CaseExpression(o, scope)
|
532
|
+
# memo scope level before evaluating test - don't want a match in the case test to leak $n match vars
|
533
|
+
# to expressions after the case expression.
|
534
|
+
#
|
535
|
+
with_guarded_scope(scope) do
|
536
|
+
test = evaluate(o.test, scope)
|
537
|
+
result = nil
|
538
|
+
the_default = nil
|
539
|
+
if o.options.find do |co|
|
540
|
+
# the first case option that matches
|
541
|
+
if co.values.find do |c|
|
542
|
+
case c
|
543
|
+
when Puppet::Pops::Model::LiteralDefault
|
544
|
+
the_default = co.then_expr
|
545
|
+
is_match?(test, evaluate(c, scope), c, scope)
|
546
|
+
when Puppet::Pops::Model::UnfoldExpression
|
547
|
+
# not ideal for error reporting, since it is not known which unfolded result
|
548
|
+
# that caused an error - the entire unfold expression is blamed (i.e. the var c, passed to is_match?)
|
549
|
+
evaluate(c, scope).any? {|v| is_match?(test, v, c, scope) }
|
550
|
+
else
|
551
|
+
is_match?(test, evaluate(c, scope), c, scope)
|
552
|
+
end
|
553
|
+
end
|
554
|
+
result = evaluate(co.then_expr, scope)
|
555
|
+
true # the option was picked
|
556
|
+
end
|
557
|
+
end
|
558
|
+
result # an option was picked, and produced a result
|
559
|
+
else
|
560
|
+
evaluate(the_default, scope) # evaluate the default (should be a nop/nil) if there is no default).
|
561
|
+
end
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
# Evaluates a CollectExpression by transforming it into a 3x AST::Collection and then evaluating that.
|
566
|
+
# This is done because of the complex API between compiler, indirector, backends, and difference between
|
567
|
+
# collecting virtual resources and exported resources.
|
568
|
+
#
|
569
|
+
def eval_CollectExpression o, scope
|
570
|
+
# The Collect Expression and its contained query expressions are implemented in such a way in
|
571
|
+
# 3x that it is almost impossible to do anything about them (the AST objects are lazily evaluated,
|
572
|
+
# and the built structure consists of both higher order functions and arrays with query expressions
|
573
|
+
# that are either used as a predicate filter, or given to an indirection terminus (such as the Puppet DB
|
574
|
+
# resource terminus). Unfortunately, the 3x implementation has many inconsistencies that the implementation
|
575
|
+
# below carries forward.
|
576
|
+
#
|
577
|
+
collect_3x = Puppet::Pops::Model::AstTransformer.new().transform(o)
|
578
|
+
collected = collect_3x.evaluate(scope)
|
579
|
+
# the 3x returns an instance of Parser::Collector (but it is only registered with the compiler at this
|
580
|
+
# point and does not contain any valuable information (like the result)
|
581
|
+
# Dilemma: If this object is returned, it is a first class value in the Puppet Language and we
|
582
|
+
# need to be able to perform operations on it. We can forbid it from leaking by making CollectExpression
|
583
|
+
# a non R-value. This makes it possible for the evaluator logic to make use of the Collector.
|
584
|
+
collected
|
585
|
+
end
|
586
|
+
|
587
|
+
def eval_ParenthesizedExpression(o, scope)
|
588
|
+
evaluate(o.expr, scope)
|
589
|
+
end
|
590
|
+
|
591
|
+
# This evaluates classes, nodes and resource type definitions to nil, since 3x:
|
592
|
+
# instantiates them, and evaluates their parameters and body. This is achieved by
|
593
|
+
# providing bridge AST classes in Puppet::Parser::AST::PopsBridge that bridges a
|
594
|
+
# Pops Program and a Pops Expression.
|
595
|
+
#
|
596
|
+
# Since all Definitions are handled "out of band", they are treated as a no-op when
|
597
|
+
# evaluated.
|
598
|
+
#
|
599
|
+
def eval_Definition(o, scope)
|
600
|
+
nil
|
601
|
+
end
|
602
|
+
|
603
|
+
def eval_Program(o, scope)
|
604
|
+
evaluate(o.body, scope)
|
605
|
+
end
|
606
|
+
|
607
|
+
# Produces Array[PAnyType], an array of resource references
|
608
|
+
#
|
609
|
+
def eval_ResourceExpression(o, scope)
|
610
|
+
exported = o.exported
|
611
|
+
virtual = o.virtual
|
612
|
+
|
613
|
+
# Get the type name
|
614
|
+
type_name =
|
615
|
+
if (tmp_name = o.type_name).is_a?(Puppet::Pops::Model::QualifiedName)
|
616
|
+
tmp_name.value # already validated as a name
|
617
|
+
else
|
618
|
+
type_name_acceptable =
|
619
|
+
case o.type_name
|
620
|
+
when Puppet::Pops::Model::QualifiedReference
|
621
|
+
true
|
622
|
+
when Puppet::Pops::Model::AccessExpression
|
623
|
+
o.type_name.left_expr.is_a?(Puppet::Pops::Model::QualifiedReference)
|
624
|
+
end
|
625
|
+
|
626
|
+
evaluated_name = evaluate(tmp_name, scope)
|
627
|
+
unless type_name_acceptable
|
628
|
+
actual = type_calculator.generalize!(type_calculator.infer(evaluated_name)).to_s
|
629
|
+
fail(Puppet::Pops::Issues::ILLEGAL_RESOURCE_TYPE, o.type_name, {:actual => actual})
|
630
|
+
end
|
631
|
+
|
632
|
+
# must be a CatalogEntry subtype
|
633
|
+
case evaluated_name
|
634
|
+
when Puppet::Pops::Types::PHostClassType
|
635
|
+
unless evaluated_name.class_name.nil?
|
636
|
+
fail(Puppet::Pops::Issues::ILLEGAL_RESOURCE_TYPE, o.type_name, {:actual=> evaluated_name.to_s})
|
637
|
+
end
|
638
|
+
'class'
|
639
|
+
|
640
|
+
when Puppet::Pops::Types::PResourceType
|
641
|
+
unless evaluated_name.title().nil?
|
642
|
+
fail(Puppet::Pops::Issues::ILLEGAL_RESOURCE_TYPE, o.type_name, {:actual=> evaluated_name.to_s})
|
643
|
+
end
|
644
|
+
evaluated_name.type_name # assume validated
|
645
|
+
|
646
|
+
else
|
647
|
+
actual = type_calculator.generalize!(type_calculator.infer(evaluated_name)).to_s
|
648
|
+
fail(Puppet::Pops::Issues::ILLEGAL_RESOURCE_TYPE, o.type_name, {:actual=>actual})
|
649
|
+
end
|
650
|
+
end
|
651
|
+
|
652
|
+
# This is a runtime check - the model is valid, but will have runtime issues when evaluated
|
653
|
+
# and storeconfigs is not set.
|
654
|
+
if(o.exported)
|
655
|
+
optionally_fail(Puppet::Pops::Issues::RT_NO_STORECONFIGS_EXPORT, o);
|
656
|
+
end
|
657
|
+
|
658
|
+
titles_to_body = {}
|
659
|
+
body_to_titles = {}
|
660
|
+
body_to_params = {}
|
661
|
+
|
662
|
+
# titles are evaluated before attribute operations
|
663
|
+
o.bodies.map do | body |
|
664
|
+
titles = evaluate(body.title, scope)
|
665
|
+
|
666
|
+
# Title may not be nil
|
667
|
+
# Titles may be given as an array, it is ok if it is empty, but not if it contains nil entries
|
668
|
+
# Titles may not be an empty String
|
669
|
+
# Titles must be unique in the same resource expression
|
670
|
+
# There may be a :default entry, its entries apply with lower precedence
|
671
|
+
#
|
672
|
+
if titles.nil?
|
673
|
+
fail(Puppet::Pops::Issues::MISSING_TITLE, body.title)
|
674
|
+
end
|
675
|
+
titles = [titles].flatten
|
676
|
+
|
677
|
+
# Check types of evaluated titles and duplicate entries
|
678
|
+
titles.each_with_index do |title, index|
|
679
|
+
if title.nil?
|
680
|
+
fail(Puppet::Pops::Issues::MISSING_TITLE_AT, body.title, {:index => index})
|
681
|
+
|
682
|
+
elsif !title.is_a?(String) && title != :default
|
683
|
+
actual = type_calculator.generalize!(type_calculator.infer(title)).to_s
|
684
|
+
fail(Puppet::Pops::Issues::ILLEGAL_TITLE_TYPE_AT, body.title, {:index => index, :actual => actual})
|
685
|
+
|
686
|
+
elsif title == EMPTY_STRING
|
687
|
+
fail(Puppet::Pops::Issues::EMPTY_STRING_TITLE_AT, body.title, {:index => index})
|
688
|
+
|
689
|
+
elsif titles_to_body[title]
|
690
|
+
fail(Puppet::Pops::Issues::DUPLICATE_TITLE, o, {:title => title})
|
691
|
+
end
|
692
|
+
titles_to_body[title] = body
|
693
|
+
end
|
694
|
+
|
695
|
+
# Do not create a real instance from the :default case
|
696
|
+
titles.delete(:default)
|
697
|
+
|
698
|
+
body_to_titles[body] = titles
|
699
|
+
|
700
|
+
# Store evaluated parameters in a hash associated with the body, but do not yet create resource
|
701
|
+
# since the entry containing :defaults may appear later
|
702
|
+
body_to_params[body] = body.operations.reduce({}) do |param_memo, op|
|
703
|
+
params = evaluate(op, scope)
|
704
|
+
params = [params] unless params.is_a?(Array)
|
705
|
+
params.each do |p|
|
706
|
+
if param_memo.include? p.name
|
707
|
+
fail(Puppet::Pops::Issues::DUPLICATE_ATTRIBUTE, o, {:attribute => p.name})
|
708
|
+
end
|
709
|
+
param_memo[p.name] = p
|
710
|
+
end
|
711
|
+
param_memo
|
712
|
+
end
|
713
|
+
end
|
714
|
+
|
715
|
+
# Titles and Operations have now been evaluated and resources can be created
|
716
|
+
# Each production is a PResource, and an array of all is produced as the result of
|
717
|
+
# evaluating the ResourceExpression.
|
718
|
+
#
|
719
|
+
defaults_hash = body_to_params[titles_to_body[:default]] || {}
|
720
|
+
o.bodies.map do | body |
|
721
|
+
titles = body_to_titles[body]
|
722
|
+
params = defaults_hash.merge(body_to_params[body] || {})
|
723
|
+
create_resources(o, scope, virtual, exported, type_name, titles, params.values)
|
724
|
+
end.flatten.compact
|
725
|
+
end
|
726
|
+
|
727
|
+
def eval_ResourceOverrideExpression(o, scope)
|
728
|
+
evaluated_resources = evaluate(o.resources, scope)
|
729
|
+
evaluated_parameters = o.operations.map { |op| evaluate(op, scope) }
|
730
|
+
create_resource_overrides(o, scope, [evaluated_resources].flatten, evaluated_parameters)
|
731
|
+
evaluated_resources
|
732
|
+
end
|
733
|
+
|
734
|
+
# Produces 3x parameter
|
735
|
+
def eval_AttributeOperation(o, scope)
|
736
|
+
create_resource_parameter(o, scope, o.attribute_name, evaluate(o.value_expr, scope), o.operator)
|
737
|
+
end
|
738
|
+
|
739
|
+
def eval_AttributesOperation(o, scope)
|
740
|
+
hashed_params = evaluate(o.expr, scope)
|
741
|
+
unless hashed_params.is_a?(Hash)
|
742
|
+
actual = type_calculator.generalize!(type_calculator.infer(hashed_params)).to_s
|
743
|
+
fail(Puppet::Pops::Issues::TYPE_MISMATCH, o.expr, {:expected => 'Hash', :actual => actual})
|
744
|
+
end
|
745
|
+
hashed_params.map { |k,v| create_resource_parameter(o, scope, k, v, :'=>') }
|
746
|
+
end
|
747
|
+
|
748
|
+
# Sets default parameter values for a type, produces the type
|
749
|
+
#
|
750
|
+
def eval_ResourceDefaultsExpression(o, scope)
|
751
|
+
type = evaluate(o.type_ref, scope)
|
752
|
+
type_name =
|
753
|
+
if type.is_a?(Puppet::Pops::Types::PResourceType) && !type.type_name.nil? && type.title.nil?
|
754
|
+
type.type_name # assume it is a valid name
|
755
|
+
else
|
756
|
+
actual = type_calculator.generalize!(type_calculator.infer(type))
|
757
|
+
fail(Issues::ILLEGAL_RESOURCE_TYPE, o.type_ref, {:actual => actual})
|
758
|
+
end
|
759
|
+
evaluated_parameters = o.operations.map {|op| evaluate(op, scope) }
|
760
|
+
create_resource_defaults(o, scope, type_name, evaluated_parameters)
|
761
|
+
# Produce the type
|
762
|
+
type
|
763
|
+
end
|
764
|
+
|
765
|
+
# Evaluates function call by name.
|
766
|
+
#
|
767
|
+
def eval_CallNamedFunctionExpression(o, scope)
|
768
|
+
# The functor expression is not evaluated, it is not possible to select the function to call
|
769
|
+
# via an expression like $a()
|
770
|
+
case o.functor_expr
|
771
|
+
when Puppet::Pops::Model::QualifiedName
|
772
|
+
# ok
|
773
|
+
when Puppet::Pops::Model::RenderStringExpression
|
774
|
+
# helpful to point out this easy to make Epp error
|
775
|
+
fail(Issues::ILLEGAL_EPP_PARAMETERS, o)
|
776
|
+
else
|
777
|
+
fail(Issues::ILLEGAL_EXPRESSION, o.functor_expr, {:feature=>'function name', :container => o})
|
778
|
+
end
|
779
|
+
name = o.functor_expr.value
|
780
|
+
|
781
|
+
evaluated_arguments = unfold([], o.arguments, scope)
|
782
|
+
|
783
|
+
# wrap lambda in a callable block if it is present
|
784
|
+
evaluated_arguments << Puppet::Pops::Evaluator::Closure.new(self, o.lambda, scope) if o.lambda
|
785
|
+
call_function(name, evaluated_arguments, o, scope)
|
786
|
+
end
|
787
|
+
|
788
|
+
# Evaluation of CallMethodExpression handles a NamedAccessExpression functor (receiver.function_name)
|
789
|
+
#
|
790
|
+
def eval_CallMethodExpression(o, scope)
|
791
|
+
unless o.functor_expr.is_a? Puppet::Pops::Model::NamedAccessExpression
|
792
|
+
fail(Issues::ILLEGAL_EXPRESSION, o.functor_expr, {:feature=>'function accessor', :container => o})
|
793
|
+
end
|
794
|
+
receiver = evaluate(o.functor_expr.left_expr, scope)
|
795
|
+
name = o.functor_expr.right_expr
|
796
|
+
unless name.is_a? Puppet::Pops::Model::QualifiedName
|
797
|
+
fail(Issues::ILLEGAL_EXPRESSION, o.functor_expr, {:feature=>'function name', :container => o})
|
798
|
+
end
|
799
|
+
name = name.value # the string function name
|
800
|
+
|
801
|
+
evaluated_arguments = unfold([receiver], o.arguments || [], scope)
|
802
|
+
|
803
|
+
# wrap lambda in a callable block if it is present
|
804
|
+
evaluated_arguments << Puppet::Pops::Evaluator::Closure.new(self, o.lambda, scope) if o.lambda
|
805
|
+
call_function(name, evaluated_arguments, o, scope)
|
806
|
+
end
|
807
|
+
|
808
|
+
# @example
|
809
|
+
# $x ? { 10 => true, 20 => false, default => 0 }
|
810
|
+
#
|
811
|
+
def eval_SelectorExpression o, scope
|
812
|
+
# memo scope level before evaluating test - don't want a match in the case test to leak $n match vars
|
813
|
+
# to expressions after the selector expression.
|
814
|
+
#
|
815
|
+
with_guarded_scope(scope) do
|
816
|
+
test = evaluate(o.left_expr, scope)
|
817
|
+
the_default = nil
|
818
|
+
selected = o.selectors.find do |s|
|
819
|
+
me = s.matching_expr
|
820
|
+
case me
|
821
|
+
when Puppet::Pops::Model::LiteralDefault
|
822
|
+
the_default = s.value_expr
|
823
|
+
false
|
824
|
+
when Puppet::Pops::Model::UnfoldExpression
|
825
|
+
# not ideal for error reporting, since it is not known which unfolded result
|
826
|
+
# that caused an error - the entire unfold expression is blamed (i.e. the var c, passed to is_match?)
|
827
|
+
evaluate(me, scope).any? {|v| is_match?(test, v, me, scope) }
|
828
|
+
else
|
829
|
+
is_match?(test, evaluate(me, scope), me, scope)
|
830
|
+
end
|
831
|
+
end
|
832
|
+
if selected
|
833
|
+
evaluate(selected.value_expr, scope)
|
834
|
+
elsif the_default
|
835
|
+
evaluate(the_default, scope)
|
836
|
+
else
|
837
|
+
fail(Issues::UNMATCHED_SELECTOR, o.left_expr, :param_value => test)
|
838
|
+
end
|
839
|
+
end
|
840
|
+
end
|
841
|
+
|
842
|
+
# SubLocatable is simply an expression that holds location information
|
843
|
+
def eval_SubLocatedExpression o, scope
|
844
|
+
evaluate(o.expr, scope)
|
845
|
+
end
|
846
|
+
|
847
|
+
# Evaluates Puppet DSL Heredoc
|
848
|
+
def eval_HeredocExpression o, scope
|
849
|
+
result = evaluate(o.text_expr, scope)
|
850
|
+
assert_external_syntax(scope, result, o.syntax, o.text_expr)
|
851
|
+
result
|
852
|
+
end
|
853
|
+
|
854
|
+
# Evaluates Puppet DSL `if`
|
855
|
+
def eval_IfExpression o, scope
|
856
|
+
with_guarded_scope(scope) do
|
857
|
+
if is_true?(evaluate(o.test, scope))
|
858
|
+
evaluate(o.then_expr, scope)
|
859
|
+
else
|
860
|
+
evaluate(o.else_expr, scope)
|
861
|
+
end
|
862
|
+
end
|
863
|
+
end
|
864
|
+
|
865
|
+
# Evaluates Puppet DSL `unless`
|
866
|
+
def eval_UnlessExpression o, scope
|
867
|
+
with_guarded_scope(scope) do
|
868
|
+
unless is_true?(evaluate(o.test, scope))
|
869
|
+
evaluate(o.then_expr, scope)
|
870
|
+
else
|
871
|
+
evaluate(o.else_expr, scope)
|
872
|
+
end
|
873
|
+
end
|
874
|
+
end
|
875
|
+
|
876
|
+
# Evaluates a variable (getting its value)
|
877
|
+
# The evaluator is lenient; any expression producing a String is used as a name
|
878
|
+
# of a variable.
|
879
|
+
#
|
880
|
+
def eval_VariableExpression o, scope
|
881
|
+
# Evaluator is not too fussy about what constitutes a name as long as the result
|
882
|
+
# is a String and a valid variable name
|
883
|
+
#
|
884
|
+
name = evaluate(o.expr, scope)
|
885
|
+
|
886
|
+
# Should be caught by validation, but make this explicit here as well, or mysterious evaluation issues
|
887
|
+
# may occur for some evaluation use cases.
|
888
|
+
case name
|
889
|
+
when String
|
890
|
+
when Numeric
|
891
|
+
else
|
892
|
+
fail(Issues::ILLEGAL_VARIABLE_EXPRESSION, o.expr)
|
893
|
+
end
|
894
|
+
get_variable_value(name, o, scope)
|
895
|
+
end
|
896
|
+
|
897
|
+
# Evaluates double quoted strings that may contain interpolation
|
898
|
+
#
|
899
|
+
def eval_ConcatenatedString o, scope
|
900
|
+
o.segments.collect {|expr| string(evaluate(expr, scope), scope)}.join
|
901
|
+
end
|
902
|
+
|
903
|
+
|
904
|
+
# If the wrapped expression is a QualifiedName, it is taken as the name of a variable in scope.
|
905
|
+
# Note that this is different from the 3.x implementation, where an initial qualified name
|
906
|
+
# is accepted. (e.g. `"---${var + 1}---"` is legal. This implementation requires such concrete
|
907
|
+
# syntax to be expressed in a model as `(TextExpression (+ (Variable var) 1)` - i.e. moving the decision to
|
908
|
+
# the parser.
|
909
|
+
#
|
910
|
+
# Semantics; the result of an expression is turned into a string, nil is silently transformed to empty
|
911
|
+
# string.
|
912
|
+
# @return [String] the interpolated result
|
913
|
+
#
|
914
|
+
def eval_TextExpression o, scope
|
915
|
+
if o.expr.is_a?(Puppet::Pops::Model::QualifiedName)
|
916
|
+
string(get_variable_value(o.expr.value, o, scope), scope)
|
917
|
+
else
|
918
|
+
string(evaluate(o.expr, scope), scope)
|
919
|
+
end
|
920
|
+
end
|
921
|
+
|
922
|
+
def string_Object(o, scope)
|
923
|
+
o.to_s
|
924
|
+
end
|
925
|
+
|
926
|
+
def string_Symbol(o, scope)
|
927
|
+
if :undef == o # optimized comparison 1.44 vs 1.95
|
928
|
+
EMPTY_STRING
|
929
|
+
else
|
930
|
+
o.to_s
|
931
|
+
end
|
932
|
+
end
|
933
|
+
|
934
|
+
def string_Array(o, scope)
|
935
|
+
"[#{o.map {|e| string(e, scope)}.join(COMMA_SEPARATOR)}]"
|
936
|
+
end
|
937
|
+
|
938
|
+
def string_Hash(o, scope)
|
939
|
+
"{#{o.map {|k,v| "#{string(k, scope)} => #{string(v, scope)}"}.join(COMMA_SEPARATOR)}}"
|
940
|
+
end
|
941
|
+
|
942
|
+
def string_Regexp(o, scope)
|
943
|
+
"/#{o.source}/"
|
944
|
+
end
|
945
|
+
|
946
|
+
def string_PAnyType(o, scope)
|
947
|
+
@@type_calculator.string(o)
|
948
|
+
end
|
949
|
+
|
950
|
+
# Produces concatenation / merge of x and y.
|
951
|
+
#
|
952
|
+
# When x is an Array, y of type produces:
|
953
|
+
#
|
954
|
+
# * Array => concatenation `[1,2], [3,4] => [1,2,3,4]`
|
955
|
+
# * Hash => concatenation of hash as array `[key, value, key, value, ...]`
|
956
|
+
# * any other => concatenation of single value
|
957
|
+
#
|
958
|
+
# When x is a Hash, y of type produces:
|
959
|
+
#
|
960
|
+
# * Array => merge of array interpreted as `[key, value, key, value,...]`
|
961
|
+
# * Hash => a merge, where entries in `y` overrides
|
962
|
+
# * any other => error
|
963
|
+
#
|
964
|
+
# When x is something else, wrap it in an array first.
|
965
|
+
#
|
966
|
+
# When x is nil, an empty array is used instead.
|
967
|
+
#
|
968
|
+
# @note to concatenate an Array, nest the array - i.e. `[1,2], [[2,3]]`
|
969
|
+
#
|
970
|
+
# @overload concatenate(obj_x, obj_y)
|
971
|
+
# @param obj_x [Object] object to wrap in an array and concatenate to; see other overloaded methods for return type
|
972
|
+
# @param ary_y [Object] array to concatenate at end of `ary_x`
|
973
|
+
# @return [Object] wraps obj_x in array before using other overloaded option based on type of obj_y
|
974
|
+
# @overload concatenate(ary_x, ary_y)
|
975
|
+
# @param ary_x [Array] array to concatenate to
|
976
|
+
# @param ary_y [Array] array to concatenate at end of `ary_x`
|
977
|
+
# @return [Array] new array with `ary_x` + `ary_y`
|
978
|
+
# @overload concatenate(ary_x, hsh_y)
|
979
|
+
# @param ary_x [Array] array to concatenate to
|
980
|
+
# @param hsh_y [Hash] converted to array form, and concatenated to array
|
981
|
+
# @return [Array] new array with `ary_x` + `hsh_y` converted to array
|
982
|
+
# @overload concatenate (ary_x, obj_y)
|
983
|
+
# @param ary_x [Array] array to concatenate to
|
984
|
+
# @param obj_y [Object] non array or hash object to add to array
|
985
|
+
# @return [Array] new array with `ary_x` + `obj_y` added as last entry
|
986
|
+
# @overload concatenate(hsh_x, ary_y)
|
987
|
+
# @param hsh_x [Hash] the hash to merge with
|
988
|
+
# @param ary_y [Array] array interpreted as even numbered sequence of key, value merged with `hsh_x`
|
989
|
+
# @return [Hash] new hash with `hsh_x` merged with `ary_y` interpreted as hash in array form
|
990
|
+
# @overload concatenate(hsh_x, hsh_y)
|
991
|
+
# @param hsh_x [Hash] the hash to merge to
|
992
|
+
# @param hsh_y [Hash] hash merged with `hsh_x`
|
993
|
+
# @return [Hash] new hash with `hsh_x` merged with `hsh_y`
|
994
|
+
# @raise [ArgumentError] when `xxx_x` is neither an Array nor a Hash
|
995
|
+
# @raise [ArgumentError] when `xxx_x` is a Hash, and `xxx_y` is neither Array nor Hash.
|
996
|
+
#
|
997
|
+
def concatenate(x, y)
|
998
|
+
x = [x] unless x.is_a?(Array) || x.is_a?(Hash)
|
999
|
+
case x
|
1000
|
+
when Array
|
1001
|
+
y = case y
|
1002
|
+
when Array then y
|
1003
|
+
when Hash then y.to_a
|
1004
|
+
else
|
1005
|
+
[y]
|
1006
|
+
end
|
1007
|
+
x + y # new array with concatenation
|
1008
|
+
when Hash
|
1009
|
+
y = case y
|
1010
|
+
when Hash then y
|
1011
|
+
when Array
|
1012
|
+
# Hash[[a, 1, b, 2]] => {}
|
1013
|
+
# Hash[a,1,b,2] => {a => 1, b => 2}
|
1014
|
+
# Hash[[a,1], [b,2]] => {[a,1] => [b,2]}
|
1015
|
+
# Hash[[[a,1], [b,2]]] => {a => 1, b => 2}
|
1016
|
+
# Use type calcultor to determine if array is Array[Array[?]], and if so use second form
|
1017
|
+
# of call
|
1018
|
+
t = @@type_calculator.infer(y)
|
1019
|
+
if t.element_type.is_a? Puppet::Pops::Types::PArrayType
|
1020
|
+
Hash[y]
|
1021
|
+
else
|
1022
|
+
Hash[*y]
|
1023
|
+
end
|
1024
|
+
else
|
1025
|
+
raise ArgumentError.new("Can only append Array or Hash to a Hash")
|
1026
|
+
end
|
1027
|
+
x.merge y # new hash with overwrite
|
1028
|
+
else
|
1029
|
+
raise ArgumentError.new("Can only append to an Array or a Hash.")
|
1030
|
+
end
|
1031
|
+
end
|
1032
|
+
|
1033
|
+
# Produces the result x \ y (set difference)
|
1034
|
+
# When `x` is an Array, `y` is transformed to an array and then all matching elements removed from x.
|
1035
|
+
# When `x` is a Hash, all contained keys are removed from x as listed in `y` if it is an Array, or all its keys if it is a Hash.
|
1036
|
+
# The difference is returned. The given `x` and `y` are not modified by this operation.
|
1037
|
+
# @raise [ArgumentError] when `x` is neither an Array nor a Hash
|
1038
|
+
#
|
1039
|
+
def delete(x, y)
|
1040
|
+
result = x.dup
|
1041
|
+
case x
|
1042
|
+
when Array
|
1043
|
+
y = case y
|
1044
|
+
when Array then y
|
1045
|
+
when Hash then y.to_a
|
1046
|
+
else
|
1047
|
+
[y]
|
1048
|
+
end
|
1049
|
+
y.each {|e| result.delete(e) }
|
1050
|
+
when Hash
|
1051
|
+
y = case y
|
1052
|
+
when Array then y
|
1053
|
+
when Hash then y.keys
|
1054
|
+
else
|
1055
|
+
[y]
|
1056
|
+
end
|
1057
|
+
y.each {|e| result.delete(e) }
|
1058
|
+
else
|
1059
|
+
raise ArgumentError.new("Can only delete from an Array or Hash.")
|
1060
|
+
end
|
1061
|
+
result
|
1062
|
+
end
|
1063
|
+
|
1064
|
+
# Implementation of case option matching.
|
1065
|
+
#
|
1066
|
+
# This is the type of matching performed in a case option, using == for every type
|
1067
|
+
# of value except regular expression where a match is performed.
|
1068
|
+
#
|
1069
|
+
def is_match? left, right, o, scope
|
1070
|
+
if right.is_a?(Regexp)
|
1071
|
+
return false unless left.is_a? String
|
1072
|
+
matched = right.match(left)
|
1073
|
+
set_match_data(matched, scope) # creates or clears ephemeral
|
1074
|
+
!!matched # convert to boolean
|
1075
|
+
elsif right.is_a?(Puppet::Pops::Types::PAnyType)
|
1076
|
+
# right is a type and left is not - check if left is an instance of the given type
|
1077
|
+
# (The reverse is not terribly meaningful - computing which of the case options that first produces
|
1078
|
+
# an instance of a given type).
|
1079
|
+
#
|
1080
|
+
@@type_calculator.instance?(right, left)
|
1081
|
+
else
|
1082
|
+
# Handle equality the same way as the language '==' operator (case insensitive etc.)
|
1083
|
+
@@compare_operator.equals(left,right)
|
1084
|
+
end
|
1085
|
+
end
|
1086
|
+
|
1087
|
+
def with_guarded_scope(scope)
|
1088
|
+
scope_memo = get_scope_nesting_level(scope)
|
1089
|
+
begin
|
1090
|
+
yield
|
1091
|
+
ensure
|
1092
|
+
set_scope_nesting_level(scope, scope_memo)
|
1093
|
+
end
|
1094
|
+
end
|
1095
|
+
|
1096
|
+
# Maps the expression in the given array to their product except for UnfoldExpressions which are first unfolded.
|
1097
|
+
# The result is added to the given result Array.
|
1098
|
+
# @param result [Array] Where to add the result (may contain information to add to)
|
1099
|
+
# @param array [Array[Puppet::Pops::Model::Expression] the expressions to map
|
1100
|
+
# @param scope [Puppet::Parser::Scope] the scope to evaluate in
|
1101
|
+
# @return [Array] the given result array with content added from the operation
|
1102
|
+
#
|
1103
|
+
def unfold(result, array, scope)
|
1104
|
+
array.each do |x|
|
1105
|
+
if x.is_a?(Puppet::Pops::Model::UnfoldExpression)
|
1106
|
+
result.concat(evaluate(x, scope))
|
1107
|
+
else
|
1108
|
+
result << evaluate(x, scope)
|
1109
|
+
end
|
1110
|
+
end
|
1111
|
+
result
|
1112
|
+
end
|
1113
|
+
private :unfold
|
1114
|
+
|
1115
|
+
end
|