puppet-parse 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +0 -5
- data/README.md +1 -3
- data/lib/puppet-parse/version.rb +1 -1
- data/lib/puppet-parse.rb +2 -2
- data/lib/vendor/puppet/agent/locker.rb +46 -0
- data/lib/vendor/puppet/agent.rb +99 -0
- data/lib/vendor/puppet/application/agent.rb +489 -0
- data/lib/vendor/puppet/application/apply.rb +266 -0
- data/lib/vendor/puppet/application/ca.rb +5 -0
- data/lib/vendor/puppet/application/catalog.rb +4 -0
- data/lib/vendor/puppet/application/cert.rb +240 -0
- data/lib/vendor/puppet/application/certificate.rb +13 -0
- data/lib/vendor/puppet/application/certificate_request.rb +4 -0
- data/lib/vendor/puppet/application/certificate_revocation_list.rb +4 -0
- data/lib/vendor/puppet/application/config.rb +4 -0
- data/lib/vendor/puppet/application/describe.rb +256 -0
- data/lib/vendor/puppet/application/device.rb +242 -0
- data/lib/vendor/puppet/application/doc.rb +275 -0
- data/lib/vendor/puppet/application/face_base.rb +264 -0
- data/lib/vendor/puppet/application/facts.rb +4 -0
- data/lib/vendor/puppet/application/file.rb +4 -0
- data/lib/vendor/puppet/application/filebucket.rb +191 -0
- data/lib/vendor/puppet/application/help.rb +4 -0
- data/lib/vendor/puppet/application/indirection_base.rb +4 -0
- data/lib/vendor/puppet/application/inspect.rb +191 -0
- data/lib/vendor/puppet/application/instrumentation_data.rb +4 -0
- data/lib/vendor/puppet/application/instrumentation_listener.rb +4 -0
- data/lib/vendor/puppet/application/instrumentation_probe.rb +4 -0
- data/lib/vendor/puppet/application/key.rb +4 -0
- data/lib/vendor/puppet/application/kick.rb +351 -0
- data/lib/vendor/puppet/application/man.rb +4 -0
- data/lib/vendor/puppet/application/master.rb +263 -0
- data/lib/vendor/puppet/application/module.rb +11 -0
- data/lib/vendor/puppet/application/node.rb +4 -0
- data/lib/vendor/puppet/application/parser.rb +5 -0
- data/lib/vendor/puppet/application/plugin.rb +3 -0
- data/lib/vendor/puppet/application/queue.rb +161 -0
- data/lib/vendor/puppet/application/report.rb +4 -0
- data/lib/vendor/puppet/application/resource.rb +237 -0
- data/lib/vendor/puppet/application/resource_type.rb +4 -0
- data/lib/vendor/puppet/application/secret_agent.rb +6 -0
- data/lib/vendor/puppet/application/status.rb +4 -0
- data/lib/vendor/puppet/application.rb +421 -0
- data/lib/vendor/puppet/configurer/downloader.rb +86 -0
- data/lib/vendor/puppet/configurer/fact_handler.rb +56 -0
- data/lib/vendor/puppet/configurer/plugin_handler.rb +37 -0
- data/lib/vendor/puppet/configurer.rb +249 -0
- data/lib/vendor/puppet/daemon.rb +200 -0
- data/lib/vendor/puppet/defaults.rb +970 -0
- data/lib/vendor/puppet/dsl/resource_api.rb +120 -0
- data/lib/vendor/puppet/dsl/resource_type_api.rb +34 -0
- data/lib/vendor/puppet/dsl.rb +7 -0
- data/lib/vendor/puppet/error.rb +43 -0
- data/lib/vendor/puppet/external/base64.rb +19 -0
- data/lib/vendor/puppet/external/dot.rb +326 -0
- data/lib/vendor/puppet/external/lock.rb +63 -0
- data/lib/vendor/puppet/external/nagios/base.rb +472 -0
- data/lib/vendor/puppet/external/nagios/grammar.ry +185 -0
- data/lib/vendor/puppet/external/nagios/makefile +9 -0
- data/lib/vendor/puppet/external/nagios/parser.rb +775 -0
- data/lib/vendor/puppet/external/nagios.rb +48 -0
- data/lib/vendor/puppet/external/pson/common.rb +370 -0
- data/lib/vendor/puppet/external/pson/pure/generator.rb +401 -0
- data/lib/vendor/puppet/external/pson/pure/parser.rb +264 -0
- data/lib/vendor/puppet/external/pson/pure.rb +77 -0
- data/lib/vendor/puppet/external/pson/version.rb +8 -0
- data/lib/vendor/puppet/face/ca.rb +242 -0
- data/lib/vendor/puppet/face/catalog/select.rb +49 -0
- data/lib/vendor/puppet/face/catalog.rb +131 -0
- data/lib/vendor/puppet/face/certificate.rb +148 -0
- data/lib/vendor/puppet/face/certificate_request.rb +53 -0
- data/lib/vendor/puppet/face/certificate_revocation_list.rb +58 -0
- data/lib/vendor/puppet/face/config.rb +45 -0
- data/lib/vendor/puppet/face/facts.rb +81 -0
- data/lib/vendor/puppet/face/file/download.rb +54 -0
- data/lib/vendor/puppet/face/file/store.rb +21 -0
- data/lib/vendor/puppet/face/file.rb +47 -0
- data/lib/vendor/puppet/face/help/action.erb +53 -0
- data/lib/vendor/puppet/face/help/face.erb +79 -0
- data/lib/vendor/puppet/face/help/global.erb +19 -0
- data/lib/vendor/puppet/face/help/man.erb +136 -0
- data/lib/vendor/puppet/face/help.rb +131 -0
- data/lib/vendor/puppet/face/instrumentation_data.rb +28 -0
- data/lib/vendor/puppet/face/instrumentation_listener.rb +96 -0
- data/lib/vendor/puppet/face/instrumentation_probe.rb +77 -0
- data/lib/vendor/puppet/face/key.rb +15 -0
- data/lib/vendor/puppet/face/man.rb +93 -0
- data/lib/vendor/puppet/face/module/build.rb +37 -0
- data/lib/vendor/puppet/face/module/changes.rb +38 -0
- data/lib/vendor/puppet/face/module/generate.rb +42 -0
- data/lib/vendor/puppet/face/module/install.rb +174 -0
- data/lib/vendor/puppet/face/module/list.rb +285 -0
- data/lib/vendor/puppet/face/module/search.rb +88 -0
- data/lib/vendor/puppet/face/module/uninstall.rb +86 -0
- data/lib/vendor/puppet/face/module/upgrade.rb +84 -0
- data/lib/vendor/puppet/face/module.rb +17 -0
- data/lib/vendor/puppet/face/node/clean.rb +156 -0
- data/lib/vendor/puppet/face/node.rb +43 -0
- data/lib/vendor/puppet/face/parser.rb +51 -0
- data/lib/vendor/puppet/face/plugin.rb +55 -0
- data/lib/vendor/puppet/face/report.rb +56 -0
- data/lib/vendor/puppet/face/resource.rb +53 -0
- data/lib/vendor/puppet/face/resource_type.rb +81 -0
- data/lib/vendor/puppet/face/secret_agent.rb +54 -0
- data/lib/vendor/puppet/face/status.rb +53 -0
- data/lib/vendor/puppet/face.rb +12 -0
- data/lib/vendor/puppet/feature/base.rb +67 -0
- data/lib/vendor/puppet/feature/eventlog.rb +6 -0
- data/lib/vendor/puppet/feature/pson.rb +6 -0
- data/lib/vendor/puppet/feature/rack.rb +24 -0
- data/lib/vendor/puppet/feature/rails.rb +30 -0
- data/lib/vendor/puppet/feature/rubygems.rb +3 -0
- data/lib/vendor/puppet/feature/selinux.rb +3 -0
- data/lib/vendor/puppet/feature/ssh.rb +4 -0
- data/lib/vendor/puppet/feature/stomp.rb +6 -0
- data/lib/vendor/puppet/feature/zlib.rb +6 -0
- data/lib/vendor/puppet/file_bucket/dipper.rb +107 -0
- data/lib/vendor/puppet/file_bucket/file.rb +55 -0
- data/lib/vendor/puppet/file_bucket.rb +4 -0
- data/lib/vendor/puppet/file_collection/lookup.rb +10 -0
- data/lib/vendor/puppet/file_collection.rb +19 -0
- data/lib/vendor/puppet/file_serving/base.rb +88 -0
- data/lib/vendor/puppet/file_serving/configuration/parser.rb +115 -0
- data/lib/vendor/puppet/file_serving/configuration.rb +122 -0
- data/lib/vendor/puppet/file_serving/content.rb +45 -0
- data/lib/vendor/puppet/file_serving/fileset.rb +173 -0
- data/lib/vendor/puppet/file_serving/metadata.rb +155 -0
- data/lib/vendor/puppet/file_serving/mount/file.rb +121 -0
- data/lib/vendor/puppet/file_serving/mount/modules.rb +24 -0
- data/lib/vendor/puppet/file_serving/mount/plugins.rb +26 -0
- data/lib/vendor/puppet/file_serving/mount.rb +39 -0
- data/lib/vendor/puppet/file_serving/terminus_helper.rb +21 -0
- data/lib/vendor/puppet/file_serving/terminus_selector.rb +28 -0
- data/lib/vendor/puppet/file_serving.rb +3 -0
- data/lib/vendor/puppet/forge/cache.rb +55 -0
- data/lib/vendor/puppet/forge/repository.rb +102 -0
- data/lib/vendor/puppet/forge.rb +98 -0
- data/lib/vendor/puppet/indirector/active_record.rb +28 -0
- data/lib/vendor/puppet/indirector/catalog/active_record.rb +41 -0
- data/lib/vendor/puppet/indirector/catalog/compiler.rb +153 -0
- data/lib/vendor/puppet/indirector/catalog/queue.rb +5 -0
- data/lib/vendor/puppet/indirector/catalog/rest.rb +6 -0
- data/lib/vendor/puppet/indirector/catalog/static_compiler.rb +136 -0
- data/lib/vendor/puppet/indirector/catalog/store_configs.rb +5 -0
- data/lib/vendor/puppet/indirector/catalog/yaml.rb +22 -0
- data/lib/vendor/puppet/indirector/certificate/ca.rb +9 -0
- data/lib/vendor/puppet/indirector/certificate/disabled_ca.rb +22 -0
- data/lib/vendor/puppet/indirector/certificate/file.rb +9 -0
- data/lib/vendor/puppet/indirector/certificate/rest.rb +15 -0
- data/lib/vendor/puppet/indirector/certificate_request/ca.rb +22 -0
- data/lib/vendor/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
- data/lib/vendor/puppet/indirector/certificate_request/file.rb +8 -0
- data/lib/vendor/puppet/indirector/certificate_request/rest.rb +9 -0
- data/lib/vendor/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/lib/vendor/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
- data/lib/vendor/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/lib/vendor/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
- data/lib/vendor/puppet/indirector/certificate_status/file.rb +82 -0
- data/lib/vendor/puppet/indirector/certificate_status/rest.rb +10 -0
- data/lib/vendor/puppet/indirector/certificate_status.rb +4 -0
- data/lib/vendor/puppet/indirector/code.rb +6 -0
- data/lib/vendor/puppet/indirector/couch.rb +78 -0
- data/lib/vendor/puppet/indirector/direct_file_server.rb +19 -0
- data/lib/vendor/puppet/indirector/envelope.rb +11 -0
- data/lib/vendor/puppet/indirector/exec.rb +48 -0
- data/lib/vendor/puppet/indirector/face.rb +137 -0
- data/lib/vendor/puppet/indirector/facts/active_record.rb +36 -0
- data/lib/vendor/puppet/indirector/facts/couch.rb +31 -0
- data/lib/vendor/puppet/indirector/facts/facter.rb +96 -0
- data/lib/vendor/puppet/indirector/facts/inventory_active_record.rb +100 -0
- data/lib/vendor/puppet/indirector/facts/inventory_service.rb +20 -0
- data/lib/vendor/puppet/indirector/facts/memory.rb +9 -0
- data/lib/vendor/puppet/indirector/facts/network_device.rb +25 -0
- data/lib/vendor/puppet/indirector/facts/rest.rb +8 -0
- data/lib/vendor/puppet/indirector/facts/store_configs.rb +5 -0
- data/lib/vendor/puppet/indirector/facts/yaml.rb +82 -0
- data/lib/vendor/puppet/indirector/file_bucket_file/file.rb +136 -0
- data/lib/vendor/puppet/indirector/file_bucket_file/rest.rb +8 -0
- data/lib/vendor/puppet/indirector/file_bucket_file/selector.rb +49 -0
- data/lib/vendor/puppet/indirector/file_content/file.rb +7 -0
- data/lib/vendor/puppet/indirector/file_content/file_server.rb +7 -0
- data/lib/vendor/puppet/indirector/file_content/rest.rb +7 -0
- data/lib/vendor/puppet/indirector/file_content/selector.rb +30 -0
- data/lib/vendor/puppet/indirector/file_content.rb +5 -0
- data/lib/vendor/puppet/indirector/file_metadata/file.rb +22 -0
- data/lib/vendor/puppet/indirector/file_metadata/file_server.rb +7 -0
- data/lib/vendor/puppet/indirector/file_metadata/rest.rb +7 -0
- data/lib/vendor/puppet/indirector/file_metadata/selector.rb +30 -0
- data/lib/vendor/puppet/indirector/file_metadata.rb +5 -0
- data/lib/vendor/puppet/indirector/file_server.rb +65 -0
- data/lib/vendor/puppet/indirector/indirection.rb +323 -0
- data/lib/vendor/puppet/indirector/instrumentation_data/local.rb +19 -0
- data/lib/vendor/puppet/indirector/instrumentation_data/rest.rb +5 -0
- data/lib/vendor/puppet/indirector/instrumentation_data.rb +3 -0
- data/lib/vendor/puppet/indirector/instrumentation_listener/local.rb +23 -0
- data/lib/vendor/puppet/indirector/instrumentation_listener/rest.rb +5 -0
- data/lib/vendor/puppet/indirector/instrumentation_listener.rb +3 -0
- data/lib/vendor/puppet/indirector/instrumentation_probe/local.rb +24 -0
- data/lib/vendor/puppet/indirector/instrumentation_probe/rest.rb +5 -0
- data/lib/vendor/puppet/indirector/instrumentation_probe.rb +3 -0
- data/lib/vendor/puppet/indirector/inventory/yaml.rb +81 -0
- data/lib/vendor/puppet/indirector/key/ca.rb +12 -0
- data/lib/vendor/puppet/indirector/key/disabled_ca.rb +22 -0
- data/lib/vendor/puppet/indirector/key/file.rb +42 -0
- data/lib/vendor/puppet/indirector/ldap.rb +78 -0
- data/lib/vendor/puppet/indirector/memory.rb +21 -0
- data/lib/vendor/puppet/indirector/node/active_record.rb +13 -0
- data/lib/vendor/puppet/indirector/node/exec.rb +60 -0
- data/lib/vendor/puppet/indirector/node/ldap.rb +256 -0
- data/lib/vendor/puppet/indirector/node/memory.rb +10 -0
- data/lib/vendor/puppet/indirector/node/plain.rb +19 -0
- data/lib/vendor/puppet/indirector/node/rest.rb +7 -0
- data/lib/vendor/puppet/indirector/node/store_configs.rb +5 -0
- data/lib/vendor/puppet/indirector/node/yaml.rb +7 -0
- data/lib/vendor/puppet/indirector/plain.rb +9 -0
- data/lib/vendor/puppet/indirector/queue.rb +81 -0
- data/lib/vendor/puppet/indirector/report/processor.rb +61 -0
- data/lib/vendor/puppet/indirector/report/rest.rb +7 -0
- data/lib/vendor/puppet/indirector/report/yaml.rb +11 -0
- data/lib/vendor/puppet/indirector/request.rb +204 -0
- data/lib/vendor/puppet/indirector/resource/active_record.rb +93 -0
- data/lib/vendor/puppet/indirector/resource/ral.rb +53 -0
- data/lib/vendor/puppet/indirector/resource/rest.rb +5 -0
- data/lib/vendor/puppet/indirector/resource/store_configs.rb +3 -0
- data/lib/vendor/puppet/indirector/resource_type/parser.rb +43 -0
- data/lib/vendor/puppet/indirector/resource_type/rest.rb +7 -0
- data/lib/vendor/puppet/indirector/resource_type.rb +5 -0
- data/lib/vendor/puppet/indirector/rest.rb +166 -0
- data/lib/vendor/puppet/indirector/run/local.rb +8 -0
- data/lib/vendor/puppet/indirector/run/rest.rb +6 -0
- data/lib/vendor/puppet/indirector/ssl_file.rb +178 -0
- data/lib/vendor/puppet/indirector/status/local.rb +7 -0
- data/lib/vendor/puppet/indirector/status/rest.rb +5 -0
- data/lib/vendor/puppet/indirector/status.rb +3 -0
- data/lib/vendor/puppet/indirector/store_configs.rb +30 -0
- data/lib/vendor/puppet/indirector/terminus.rb +145 -0
- data/lib/vendor/puppet/indirector/yaml.rb +75 -0
- data/lib/vendor/puppet/indirector.rb +57 -0
- data/lib/vendor/puppet/interface/action.rb +322 -0
- data/lib/vendor/puppet/interface/action_builder.rb +74 -0
- data/lib/vendor/puppet/interface/action_manager.rb +74 -0
- data/lib/vendor/puppet/interface/documentation.rb +230 -0
- data/lib/vendor/puppet/interface/face_collection.rb +128 -0
- data/lib/vendor/puppet/interface/option.rb +127 -0
- data/lib/vendor/puppet/interface/option_builder.rb +67 -0
- data/lib/vendor/puppet/interface/option_manager.rb +68 -0
- data/lib/vendor/puppet/interface.rb +161 -0
- data/lib/vendor/puppet/metatype/manager.rb +141 -0
- data/lib/vendor/puppet/module.rb +314 -0
- data/lib/vendor/puppet/module_tool/applications/application.rb +82 -0
- data/lib/vendor/puppet/module_tool/applications/builder.rb +91 -0
- data/lib/vendor/puppet/module_tool/applications/checksummer.rb +56 -0
- data/lib/vendor/puppet/module_tool/applications/generator.rb +141 -0
- data/lib/vendor/puppet/module_tool/applications/installer.rb +183 -0
- data/lib/vendor/puppet/module_tool/applications/searcher.rb +15 -0
- data/lib/vendor/puppet/module_tool/applications/uninstaller.rb +107 -0
- data/lib/vendor/puppet/module_tool/applications/unpacker.rb +67 -0
- data/lib/vendor/puppet/module_tool/applications/upgrader.rb +109 -0
- data/lib/vendor/puppet/module_tool/applications.rb +15 -0
- data/lib/vendor/puppet/module_tool/checksums.rb +52 -0
- data/lib/vendor/puppet/module_tool/contents_description.rb +82 -0
- data/lib/vendor/puppet/module_tool/dependency.rb +24 -0
- data/lib/vendor/puppet/module_tool/errors/base.rb +15 -0
- data/lib/vendor/puppet/module_tool/errors/installer.rb +90 -0
- data/lib/vendor/puppet/module_tool/errors/shared.rb +115 -0
- data/lib/vendor/puppet/module_tool/errors/uninstaller.rb +45 -0
- data/lib/vendor/puppet/module_tool/errors/upgrader.rb +72 -0
- data/lib/vendor/puppet/module_tool/errors.rb +9 -0
- data/lib/vendor/puppet/module_tool/metadata.rb +141 -0
- data/lib/vendor/puppet/module_tool/modulefile.rb +75 -0
- data/lib/vendor/puppet/module_tool/shared_behaviors.rb +161 -0
- data/lib/vendor/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +11 -0
- data/lib/vendor/puppet/module_tool/skeleton/templates/generator/README.erb +16 -0
- data/lib/vendor/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +41 -0
- data/lib/vendor/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +17 -0
- data/lib/vendor/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +11 -0
- data/lib/vendor/puppet/module_tool/skeleton.rb +34 -0
- data/lib/vendor/puppet/module_tool.rb +99 -0
- data/lib/vendor/puppet/network/authconfig.rb +174 -0
- data/lib/vendor/puppet/network/authorization.rb +76 -0
- data/lib/vendor/puppet/network/authstore.rb +267 -0
- data/lib/vendor/puppet/network/client_request.rb +29 -0
- data/lib/vendor/puppet/network/format.rb +111 -0
- data/lib/vendor/puppet/network/format_handler.rb +181 -0
- data/lib/vendor/puppet/network/formats.rb +171 -0
- data/lib/vendor/puppet/network/handler/ca.rb +61 -0
- data/lib/vendor/puppet/network/handler/filebucket.rb +53 -0
- data/lib/vendor/puppet/network/handler/fileserver.rb +732 -0
- data/lib/vendor/puppet/network/handler/master.rb +87 -0
- data/lib/vendor/puppet/network/handler/report.rb +82 -0
- data/lib/vendor/puppet/network/handler/runner.rb +33 -0
- data/lib/vendor/puppet/network/handler/status.rb +18 -0
- data/lib/vendor/puppet/network/handler.rb +50 -0
- data/lib/vendor/puppet/network/http/api/v1.rb +83 -0
- data/lib/vendor/puppet/network/http/api.rb +4 -0
- data/lib/vendor/puppet/network/http/compression.rb +114 -0
- data/lib/vendor/puppet/network/http/handler.rb +247 -0
- data/lib/vendor/puppet/network/http/mongrel/rest.rb +99 -0
- data/lib/vendor/puppet/network/http/mongrel.rb +55 -0
- data/lib/vendor/puppet/network/http/rack/httphandler.rb +16 -0
- data/lib/vendor/puppet/network/http/rack/rest.rb +100 -0
- data/lib/vendor/puppet/network/http/rack/xmlrpc.rb +65 -0
- data/lib/vendor/puppet/network/http/rack.rb +65 -0
- data/lib/vendor/puppet/network/http/webrick/rest.rb +81 -0
- data/lib/vendor/puppet/network/http/webrick.rb +141 -0
- data/lib/vendor/puppet/network/http.rb +15 -0
- data/lib/vendor/puppet/network/http_pool.rb +57 -0
- data/lib/vendor/puppet/network/http_server/mongrel.rb +129 -0
- data/lib/vendor/puppet/network/http_server.rb +3 -0
- data/lib/vendor/puppet/network/rest_authconfig.rb +102 -0
- data/lib/vendor/puppet/network/rest_authorization.rb +23 -0
- data/lib/vendor/puppet/network/rest_controller.rb +2 -0
- data/lib/vendor/puppet/network/rights.rb +275 -0
- data/lib/vendor/puppet/network/server.rb +164 -0
- data/lib/vendor/puppet/network/xmlrpc/processor.rb +86 -0
- data/lib/vendor/puppet/network/xmlrpc/server.rb +19 -0
- data/lib/vendor/puppet/network/xmlrpc/webrick_servlet.rb +114 -0
- data/lib/vendor/puppet/network.rb +3 -0
- data/lib/vendor/puppet/node/environment.rb +216 -0
- data/lib/vendor/puppet/node/facts.rb +99 -0
- data/lib/vendor/puppet/node/inventory.rb +7 -0
- data/lib/vendor/puppet/node.rb +120 -0
- data/lib/vendor/puppet/parameter/path.rb +34 -0
- data/lib/vendor/puppet/parameter/value.rb +69 -0
- data/lib/vendor/puppet/parameter/value_collection.rb +143 -0
- data/lib/vendor/puppet/parameter.rb +316 -0
- data/lib/vendor/puppet/parser/ast/arithmetic_operator.rb +39 -0
- data/lib/vendor/puppet/parser/ast/astarray.rb +50 -0
- data/lib/vendor/puppet/parser/ast/asthash.rb +37 -0
- data/lib/vendor/puppet/parser/ast/boolean_operator.rb +46 -0
- data/lib/vendor/puppet/parser/ast/branch.rb +37 -0
- data/lib/vendor/puppet/parser/ast/caseopt.rb +52 -0
- data/lib/vendor/puppet/parser/ast/casestatement.rb +44 -0
- data/lib/vendor/puppet/parser/ast/collection.rb +49 -0
- data/lib/vendor/puppet/parser/ast/collexpr.rb +57 -0
- data/lib/vendor/puppet/parser/ast/comparison_operator.rb +38 -0
- data/lib/vendor/puppet/parser/ast/definition.rb +17 -0
- data/lib/vendor/puppet/parser/ast/else.rb +22 -0
- data/lib/vendor/puppet/parser/ast/function.rb +50 -0
- data/lib/vendor/puppet/parser/ast/hostclass.rb +29 -0
- data/lib/vendor/puppet/parser/ast/ifstatement.rb +34 -0
- data/lib/vendor/puppet/parser/ast/in_operator.rb +24 -0
- data/lib/vendor/puppet/parser/ast/leaf.rb +221 -0
- data/lib/vendor/puppet/parser/ast/match_operator.rb +28 -0
- data/lib/vendor/puppet/parser/ast/minus.rb +23 -0
- data/lib/vendor/puppet/parser/ast/node.rb +20 -0
- data/lib/vendor/puppet/parser/ast/nop.rb +11 -0
- data/lib/vendor/puppet/parser/ast/not.rb +19 -0
- data/lib/vendor/puppet/parser/ast/relationship.rb +47 -0
- data/lib/vendor/puppet/parser/ast/resource.rb +74 -0
- data/lib/vendor/puppet/parser/ast/resource_defaults.rb +24 -0
- data/lib/vendor/puppet/parser/ast/resource_instance.rb +9 -0
- data/lib/vendor/puppet/parser/ast/resource_override.rb +67 -0
- data/lib/vendor/puppet/parser/ast/resource_reference.rb +28 -0
- data/lib/vendor/puppet/parser/ast/resourceparam.rb +29 -0
- data/lib/vendor/puppet/parser/ast/selector.rb +44 -0
- data/lib/vendor/puppet/parser/ast/tag.rb +24 -0
- data/lib/vendor/puppet/parser/ast/top_level_construct.rb +4 -0
- data/lib/vendor/puppet/parser/ast/vardef.rb +33 -0
- data/lib/vendor/puppet/parser/ast.rb +139 -0
- data/lib/vendor/puppet/parser/collector.rb +176 -0
- data/lib/vendor/puppet/parser/compiler.rb +476 -0
- data/lib/vendor/puppet/parser/files.rb +88 -0
- data/lib/vendor/puppet/parser/functions/create_resources.rb +75 -0
- data/lib/vendor/puppet/parser/functions/defined.rb +49 -0
- data/lib/vendor/puppet/parser/functions/extlookup.rb +152 -0
- data/lib/vendor/puppet/parser/functions/fail.rb +4 -0
- data/lib/vendor/puppet/parser/functions/file.rb +23 -0
- data/lib/vendor/puppet/parser/functions/fqdn_rand.rb +13 -0
- data/lib/vendor/puppet/parser/functions/generate.rb +37 -0
- data/lib/vendor/puppet/parser/functions/include.rb +24 -0
- data/lib/vendor/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/vendor/puppet/parser/functions/md5.rb +5 -0
- data/lib/vendor/puppet/parser/functions/realize.rb +14 -0
- data/lib/vendor/puppet/parser/functions/regsubst.rb +119 -0
- data/lib/vendor/puppet/parser/functions/require.rb +57 -0
- data/lib/vendor/puppet/parser/functions/search.rb +7 -0
- data/lib/vendor/puppet/parser/functions/sha1.rb +5 -0
- data/lib/vendor/puppet/parser/functions/shellquote.rb +61 -0
- data/lib/vendor/puppet/parser/functions/split.rb +29 -0
- data/lib/vendor/puppet/parser/functions/sprintf.rb +39 -0
- data/lib/vendor/puppet/parser/functions/tag.rb +6 -0
- data/lib/vendor/puppet/parser/functions/tagged.rb +18 -0
- data/lib/vendor/puppet/parser/functions/template.rb +23 -0
- data/lib/vendor/puppet/parser/functions/versioncmp.rb +37 -0
- data/lib/vendor/puppet/parser/functions.rb +165 -0
- data/lib/vendor/puppet/parser/grammar.ra +771 -0
- data/lib/vendor/puppet/parser/lexer.rb +617 -0
- data/lib/vendor/puppet/parser/makefile +8 -0
- data/lib/vendor/puppet/parser/parser.rb +2421 -0
- data/lib/vendor/puppet/parser/parser_support.rb +211 -0
- data/lib/vendor/puppet/parser/relationship.rb +62 -0
- data/lib/vendor/puppet/parser/resource/param.rb +25 -0
- data/lib/vendor/puppet/parser/resource.rb +341 -0
- data/lib/vendor/puppet/parser/scope.rb +497 -0
- data/lib/vendor/puppet/parser/templatewrapper.rb +115 -0
- data/lib/vendor/puppet/parser/type_loader.rb +172 -0
- data/lib/vendor/puppet/parser/yaml_trimmer.rb +9 -0
- data/lib/vendor/puppet/parser.rb +4 -0
- data/lib/vendor/puppet/property/ensure.rb +92 -0
- data/lib/vendor/puppet/property/keyvalue.rb +86 -0
- data/lib/vendor/puppet/property/list.rb +75 -0
- data/lib/vendor/puppet/property/ordered_list.rb +22 -0
- data/lib/vendor/puppet/property.rb +373 -0
- data/lib/vendor/puppet/provider/aixobject.rb +393 -0
- data/lib/vendor/puppet/provider/augeas/augeas.rb +418 -0
- data/lib/vendor/puppet/provider/cisco.rb +9 -0
- data/lib/vendor/puppet/provider/computer/computer.rb +20 -0
- data/lib/vendor/puppet/provider/confine/exists.rb +19 -0
- data/lib/vendor/puppet/provider/confine/false.rb +19 -0
- data/lib/vendor/puppet/provider/confine/feature.rb +17 -0
- data/lib/vendor/puppet/provider/confine/true.rb +20 -0
- data/lib/vendor/puppet/provider/confine/variable.rb +59 -0
- data/lib/vendor/puppet/provider/confine.rb +80 -0
- data/lib/vendor/puppet/provider/confine_collection.rb +50 -0
- data/lib/vendor/puppet/provider/confiner.rb +16 -0
- data/lib/vendor/puppet/provider/cron/crontab.rb +200 -0
- data/lib/vendor/puppet/provider/exec/posix.rb +39 -0
- data/lib/vendor/puppet/provider/exec/shell.rb +25 -0
- data/lib/vendor/puppet/provider/exec/windows.rb +56 -0
- data/lib/vendor/puppet/provider/exec.rb +84 -0
- data/lib/vendor/puppet/provider/file/posix.rb +135 -0
- data/lib/vendor/puppet/provider/file/windows.rb +88 -0
- data/lib/vendor/puppet/provider/group/aix.rb +141 -0
- data/lib/vendor/puppet/provider/group/directoryservice.rb +12 -0
- data/lib/vendor/puppet/provider/group/groupadd.rb +29 -0
- data/lib/vendor/puppet/provider/group/ldap.rb +45 -0
- data/lib/vendor/puppet/provider/group/pw.rb +48 -0
- data/lib/vendor/puppet/provider/group/windows_adsi.rb +54 -0
- data/lib/vendor/puppet/provider/host/parsed.rb +44 -0
- data/lib/vendor/puppet/provider/interface/base.rb +0 -0
- data/lib/vendor/puppet/provider/interface/cisco.rb +27 -0
- data/lib/vendor/puppet/provider/ldap.rb +137 -0
- data/lib/vendor/puppet/provider/macauthorization/macauthorization.rb +313 -0
- data/lib/vendor/puppet/provider/mailalias/aliases.rb +44 -0
- data/lib/vendor/puppet/provider/maillist/mailman.rb +108 -0
- data/lib/vendor/puppet/provider/mcx/mcxcontent.rb +166 -0
- data/lib/vendor/puppet/provider/mount/parsed.rb +124 -0
- data/lib/vendor/puppet/provider/mount.rb +46 -0
- data/lib/vendor/puppet/provider/naginator.rb +63 -0
- data/lib/vendor/puppet/provider/nameservice/directoryservice.rb +652 -0
- data/lib/vendor/puppet/provider/nameservice/objectadd.rb +33 -0
- data/lib/vendor/puppet/provider/nameservice/pw.rb +21 -0
- data/lib/vendor/puppet/provider/nameservice.rb +276 -0
- data/lib/vendor/puppet/provider/network_device.rb +68 -0
- data/lib/vendor/puppet/provider/package/aix.rb +128 -0
- data/lib/vendor/puppet/provider/package/appdmg.rb +109 -0
- data/lib/vendor/puppet/provider/package/apple.rb +47 -0
- data/lib/vendor/puppet/provider/package/apt.rb +111 -0
- data/lib/vendor/puppet/provider/package/aptitude.rb +29 -0
- data/lib/vendor/puppet/provider/package/aptrpm.rb +83 -0
- data/lib/vendor/puppet/provider/package/blastwave.rb +111 -0
- data/lib/vendor/puppet/provider/package/dpkg.rb +155 -0
- data/lib/vendor/puppet/provider/package/fink.rb +81 -0
- data/lib/vendor/puppet/provider/package/freebsd.rb +49 -0
- data/lib/vendor/puppet/provider/package/gem.rb +127 -0
- data/lib/vendor/puppet/provider/package/hpux.rb +44 -0
- data/lib/vendor/puppet/provider/package/macports.rb +105 -0
- data/lib/vendor/puppet/provider/package/msi.rb +141 -0
- data/lib/vendor/puppet/provider/package/nim.rb +35 -0
- data/lib/vendor/puppet/provider/package/openbsd.rb +112 -0
- data/lib/vendor/puppet/provider/package/pacman.rb +94 -0
- data/lib/vendor/puppet/provider/package/pip.rb +111 -0
- data/lib/vendor/puppet/provider/package/pkg.rb +112 -0
- data/lib/vendor/puppet/provider/package/pkgdmg.rb +123 -0
- data/lib/vendor/puppet/provider/package/pkgutil.rb +174 -0
- data/lib/vendor/puppet/provider/package/portage.rb +124 -0
- data/lib/vendor/puppet/provider/package/ports.rb +94 -0
- data/lib/vendor/puppet/provider/package/portupgrade.rb +241 -0
- data/lib/vendor/puppet/provider/package/rpm.rb +132 -0
- data/lib/vendor/puppet/provider/package/rug.rb +52 -0
- data/lib/vendor/puppet/provider/package/sun.rb +154 -0
- data/lib/vendor/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/vendor/puppet/provider/package/up2date.rb +41 -0
- data/lib/vendor/puppet/provider/package/urpmi.rb +59 -0
- data/lib/vendor/puppet/provider/package/yum.rb +106 -0
- data/lib/vendor/puppet/provider/package/yumhelper.py +129 -0
- data/lib/vendor/puppet/provider/package/zypper.rb +84 -0
- data/lib/vendor/puppet/provider/package.rb +28 -0
- data/lib/vendor/puppet/provider/parsedfile.rb +374 -0
- data/lib/vendor/puppet/provider/port/parsed.rb +173 -0
- data/lib/vendor/puppet/provider/scheduled_task/win32_taskscheduler.rb +565 -0
- data/lib/vendor/puppet/provider/selboolean/getsetsebool.rb +47 -0
- data/lib/vendor/puppet/provider/selmodule/semodule.rb +134 -0
- data/lib/vendor/puppet/provider/service/base.rb +105 -0
- data/lib/vendor/puppet/provider/service/bsd.rb +49 -0
- data/lib/vendor/puppet/provider/service/daemontools.rb +194 -0
- data/lib/vendor/puppet/provider/service/debian.rb +68 -0
- data/lib/vendor/puppet/provider/service/freebsd.rb +139 -0
- data/lib/vendor/puppet/provider/service/gentoo.rb +54 -0
- data/lib/vendor/puppet/provider/service/init.rb +140 -0
- data/lib/vendor/puppet/provider/service/launchd.rb +303 -0
- data/lib/vendor/puppet/provider/service/openrc.rb +69 -0
- data/lib/vendor/puppet/provider/service/redhat.rb +76 -0
- data/lib/vendor/puppet/provider/service/runit.rb +103 -0
- data/lib/vendor/puppet/provider/service/service.rb +43 -0
- data/lib/vendor/puppet/provider/service/smf.rb +104 -0
- data/lib/vendor/puppet/provider/service/src.rb +86 -0
- data/lib/vendor/puppet/provider/service/systemd.rb +64 -0
- data/lib/vendor/puppet/provider/service/upstart.rb +347 -0
- data/lib/vendor/puppet/provider/service/windows.rb +106 -0
- data/lib/vendor/puppet/provider/ssh_authorized_key/parsed.rb +88 -0
- data/lib/vendor/puppet/provider/sshkey/parsed.rb +37 -0
- data/lib/vendor/puppet/provider/user/aix.rb +357 -0
- data/lib/vendor/puppet/provider/user/directoryservice.rb +86 -0
- data/lib/vendor/puppet/provider/user/hpux.rb +31 -0
- data/lib/vendor/puppet/provider/user/ldap.rb +129 -0
- data/lib/vendor/puppet/provider/user/pw.rb +101 -0
- data/lib/vendor/puppet/provider/user/user_role_add.rb +207 -0
- data/lib/vendor/puppet/provider/user/useradd.rb +127 -0
- data/lib/vendor/puppet/provider/user/windows_adsi.rb +99 -0
- data/lib/vendor/puppet/provider/vlan/cisco.rb +28 -0
- data/lib/vendor/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/vendor/puppet/provider/zone/solaris.rb +260 -0
- data/lib/vendor/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/vendor/puppet/provider.rb +290 -0
- data/lib/vendor/puppet/rails/benchmark.rb +63 -0
- data/lib/vendor/puppet/rails/database/001_add_created_at_to_all_tables.rb +13 -0
- data/lib/vendor/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +13 -0
- data/lib/vendor/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/vendor/puppet/rails/database/004_add_inventory_service_tables.rb +36 -0
- data/lib/vendor/puppet/rails/database/schema.rb +131 -0
- data/lib/vendor/puppet/rails/fact_name.rb +6 -0
- data/lib/vendor/puppet/rails/fact_value.rb +8 -0
- data/lib/vendor/puppet/rails/host.rb +258 -0
- data/lib/vendor/puppet/rails/inventory_fact.rb +5 -0
- data/lib/vendor/puppet/rails/inventory_node.rb +43 -0
- data/lib/vendor/puppet/rails/param_name.rb +25 -0
- data/lib/vendor/puppet/rails/param_value.rb +74 -0
- data/lib/vendor/puppet/rails/puppet_tag.rb +10 -0
- data/lib/vendor/puppet/rails/resource.rb +231 -0
- data/lib/vendor/puppet/rails/resource_tag.rb +26 -0
- data/lib/vendor/puppet/rails/source_file.rb +8 -0
- data/lib/vendor/puppet/rails.rb +132 -0
- data/lib/vendor/puppet/rb_tree_map.rb +388 -0
- data/lib/vendor/puppet/reference/configuration.rb +69 -0
- data/lib/vendor/puppet/reference/function.rb +17 -0
- data/lib/vendor/puppet/reference/indirection.rb +32 -0
- data/lib/vendor/puppet/reference/metaparameter.rb +43 -0
- data/lib/vendor/puppet/reference/network.rb +39 -0
- data/lib/vendor/puppet/reference/providers.rb +119 -0
- data/lib/vendor/puppet/reference/report.rb +23 -0
- data/lib/vendor/puppet/reference/type.rb +116 -0
- data/lib/vendor/puppet/relationship.rb +95 -0
- data/lib/vendor/puppet/reports/http.rb +25 -0
- data/lib/vendor/puppet/reports/log.rb +14 -0
- data/lib/vendor/puppet/reports/rrdgraph.rb +128 -0
- data/lib/vendor/puppet/reports/store.rb +74 -0
- data/lib/vendor/puppet/reports/tagmail.rb +179 -0
- data/lib/vendor/puppet/reports.rb +49 -0
- data/lib/vendor/puppet/resource/catalog.rb +661 -0
- data/lib/vendor/puppet/resource/status.rb +79 -0
- data/lib/vendor/puppet/resource/type.rb +344 -0
- data/lib/vendor/puppet/resource/type_collection.rb +215 -0
- data/lib/vendor/puppet/resource/type_collection_helper.rb +7 -0
- data/lib/vendor/puppet/resource.rb +467 -0
- data/lib/vendor/puppet/run.rb +77 -0
- data/lib/vendor/puppet/simple_graph.rb +550 -0
- data/lib/vendor/puppet/ssl/base.rb +86 -0
- data/lib/vendor/puppet/ssl/certificate.rb +40 -0
- data/lib/vendor/puppet/ssl/certificate_authority/interface.rb +182 -0
- data/lib/vendor/puppet/ssl/certificate_authority.rb +374 -0
- data/lib/vendor/puppet/ssl/certificate_factory.rb +166 -0
- data/lib/vendor/puppet/ssl/certificate_request.rb +149 -0
- data/lib/vendor/puppet/ssl/certificate_revocation_list.rb +84 -0
- data/lib/vendor/puppet/ssl/host.rb +365 -0
- data/lib/vendor/puppet/ssl/inventory.rb +54 -0
- data/lib/vendor/puppet/ssl/key.rb +56 -0
- data/lib/vendor/puppet/ssl.rb +8 -0
- data/lib/vendor/puppet/status.rb +28 -0
- data/lib/vendor/puppet/test/test_helper.rb +141 -0
- data/lib/vendor/puppet/transaction/event.rb +66 -0
- data/lib/vendor/puppet/transaction/event_manager.rb +115 -0
- data/lib/vendor/puppet/transaction/report.rb +200 -0
- data/lib/vendor/puppet/transaction/resource_harness.rb +178 -0
- data/lib/vendor/puppet/transaction.rb +493 -0
- data/lib/vendor/puppet/transportable.rb +248 -0
- data/lib/vendor/puppet/type/augeas.rb +218 -0
- data/lib/vendor/puppet/type/component.rb +85 -0
- data/lib/vendor/puppet/type/computer.rb +66 -0
- data/lib/vendor/puppet/type/cron.rb +421 -0
- data/lib/vendor/puppet/type/exec.rb +520 -0
- data/lib/vendor/puppet/type/file/checksum.rb +33 -0
- data/lib/vendor/puppet/type/file/content.rb +230 -0
- data/lib/vendor/puppet/type/file/ctime.rb +18 -0
- data/lib/vendor/puppet/type/file/ensure.rb +172 -0
- data/lib/vendor/puppet/type/file/group.rb +41 -0
- data/lib/vendor/puppet/type/file/mode.rb +148 -0
- data/lib/vendor/puppet/type/file/mtime.rb +17 -0
- data/lib/vendor/puppet/type/file/owner.rb +44 -0
- data/lib/vendor/puppet/type/file/selcontext.rb +123 -0
- data/lib/vendor/puppet/type/file/source.rb +195 -0
- data/lib/vendor/puppet/type/file/target.rb +87 -0
- data/lib/vendor/puppet/type/file/type.rb +19 -0
- data/lib/vendor/puppet/type/file.rb +829 -0
- data/lib/vendor/puppet/type/filebucket.rb +114 -0
- data/lib/vendor/puppet/type/group.rb +149 -0
- data/lib/vendor/puppet/type/host.rb +87 -0
- data/lib/vendor/puppet/type/interface.rb +112 -0
- data/lib/vendor/puppet/type/k5login.rb +88 -0
- data/lib/vendor/puppet/type/macauthorization.rb +167 -0
- data/lib/vendor/puppet/type/mailalias.rb +48 -0
- data/lib/vendor/puppet/type/maillist.rb +62 -0
- data/lib/vendor/puppet/type/mcx.rb +99 -0
- data/lib/vendor/puppet/type/mount.rb +241 -0
- data/lib/vendor/puppet/type/nagios_command.rb +3 -0
- data/lib/vendor/puppet/type/nagios_contact.rb +3 -0
- data/lib/vendor/puppet/type/nagios_contactgroup.rb +3 -0
- data/lib/vendor/puppet/type/nagios_host.rb +3 -0
- data/lib/vendor/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/vendor/puppet/type/nagios_hostescalation.rb +3 -0
- data/lib/vendor/puppet/type/nagios_hostextinfo.rb +3 -0
- data/lib/vendor/puppet/type/nagios_hostgroup.rb +3 -0
- data/lib/vendor/puppet/type/nagios_service.rb +3 -0
- data/lib/vendor/puppet/type/nagios_servicedependency.rb +3 -0
- data/lib/vendor/puppet/type/nagios_serviceescalation.rb +3 -0
- data/lib/vendor/puppet/type/nagios_serviceextinfo.rb +3 -0
- data/lib/vendor/puppet/type/nagios_servicegroup.rb +3 -0
- data/lib/vendor/puppet/type/nagios_timeperiod.rb +3 -0
- data/lib/vendor/puppet/type/notify.rb +44 -0
- data/lib/vendor/puppet/type/package.rb +357 -0
- data/lib/vendor/puppet/type/port.rb +119 -0
- data/lib/vendor/puppet/type/resources.rb +131 -0
- data/lib/vendor/puppet/type/router.rb +17 -0
- data/lib/vendor/puppet/type/schedule.rb +360 -0
- data/lib/vendor/puppet/type/scheduled_task.rb +166 -0
- data/lib/vendor/puppet/type/selboolean.rb +26 -0
- data/lib/vendor/puppet/type/selmodule.rb +59 -0
- data/lib/vendor/puppet/type/service.rb +221 -0
- data/lib/vendor/puppet/type/ssh_authorized_key.rb +112 -0
- data/lib/vendor/puppet/type/sshkey.rb +72 -0
- data/lib/vendor/puppet/type/stage.rb +19 -0
- data/lib/vendor/puppet/type/tidy.rb +333 -0
- data/lib/vendor/puppet/type/user.rb +524 -0
- data/lib/vendor/puppet/type/vlan.rb +26 -0
- data/lib/vendor/puppet/type/whit.rb +34 -0
- data/lib/vendor/puppet/type/yumrepo.rb +361 -0
- data/lib/vendor/puppet/type/zfs.rb +146 -0
- data/lib/vendor/puppet/type/zone.rb +492 -0
- data/lib/vendor/puppet/type/zpool.rb +91 -0
- data/lib/vendor/puppet/type.rb +1979 -0
- data/lib/vendor/puppet/util/adsi.rb +296 -0
- data/lib/vendor/puppet/util/autoload/file_cache.rb +92 -0
- data/lib/vendor/puppet/util/autoload.rb +158 -0
- data/lib/vendor/puppet/util/backups.rb +87 -0
- data/lib/vendor/puppet/util/cacher.rb +80 -0
- data/lib/vendor/puppet/util/checksums.rb +143 -0
- data/lib/vendor/puppet/util/classgen.rb +209 -0
- data/lib/vendor/puppet/util/colors.rb +128 -0
- data/lib/vendor/puppet/util/command_line.rb +185 -0
- data/lib/vendor/puppet/util/constant_inflector.rb +15 -0
- data/lib/vendor/puppet/util/diff.rb +77 -0
- data/lib/vendor/puppet/util/docs.rb +123 -0
- data/lib/vendor/puppet/util/errors.rb +63 -0
- data/lib/vendor/puppet/util/execution.rb +20 -0
- data/lib/vendor/puppet/util/execution_stub.rb +26 -0
- data/lib/vendor/puppet/util/feature.rb +83 -0
- data/lib/vendor/puppet/util/file_locking.rb +47 -0
- data/lib/vendor/puppet/util/fileparsing.rb +373 -0
- data/lib/vendor/puppet/util/filetype.rb +296 -0
- data/lib/vendor/puppet/util/graph.rb +27 -0
- data/lib/vendor/puppet/util/inifile.rb +203 -0
- data/lib/vendor/puppet/util/inline_docs.rb +26 -0
- data/lib/vendor/puppet/util/instance_loader.rb +81 -0
- data/lib/vendor/puppet/util/instrumentation/data.rb +34 -0
- data/lib/vendor/puppet/util/instrumentation/indirection_probe.rb +29 -0
- data/lib/vendor/puppet/util/instrumentation/instrumentable.rb +143 -0
- data/lib/vendor/puppet/util/instrumentation/listener.rb +60 -0
- data/lib/vendor/puppet/util/instrumentation/listeners/log.rb +29 -0
- data/lib/vendor/puppet/util/instrumentation/listeners/performance.rb +30 -0
- data/lib/vendor/puppet/util/instrumentation.rb +171 -0
- data/lib/vendor/puppet/util/ldap/connection.rb +74 -0
- data/lib/vendor/puppet/util/ldap/generator.rb +42 -0
- data/lib/vendor/puppet/util/ldap/manager.rb +279 -0
- data/lib/vendor/puppet/util/ldap.rb +2 -0
- data/lib/vendor/puppet/util/loadedfile.rb +61 -0
- data/lib/vendor/puppet/util/log/destination.rb +49 -0
- data/lib/vendor/puppet/util/log/destinations.rb +268 -0
- data/lib/vendor/puppet/util/log.rb +275 -0
- data/lib/vendor/puppet/util/log_paths.rb +22 -0
- data/lib/vendor/puppet/util/logging.rb +51 -0
- data/lib/vendor/puppet/util/metaid.rb +21 -0
- data/lib/vendor/puppet/util/methodhelper.rb +32 -0
- data/lib/vendor/puppet/util/metric.rb +186 -0
- data/lib/vendor/puppet/util/monkey_patches.rb +243 -0
- data/lib/vendor/puppet/util/nagios_maker.rb +60 -0
- data/lib/vendor/puppet/util/network_device/base.rb +27 -0
- data/lib/vendor/puppet/util/network_device/cisco/device.rb +257 -0
- data/lib/vendor/puppet/util/network_device/cisco/facts.rb +72 -0
- data/lib/vendor/puppet/util/network_device/cisco/interface.rb +82 -0
- data/lib/vendor/puppet/util/network_device/cisco.rb +4 -0
- data/lib/vendor/puppet/util/network_device/config.rb +92 -0
- data/lib/vendor/puppet/util/network_device/ipcalc.rb +68 -0
- data/lib/vendor/puppet/util/network_device/transport/base.rb +26 -0
- data/lib/vendor/puppet/util/network_device/transport/ssh.rb +121 -0
- data/lib/vendor/puppet/util/network_device/transport/telnet.rb +42 -0
- data/lib/vendor/puppet/util/network_device/transport.rb +3 -0
- data/lib/vendor/puppet/util/network_device.rb +17 -0
- data/lib/vendor/puppet/util/package.rb +31 -0
- data/lib/vendor/puppet/util/pidlock.rb +117 -0
- data/lib/vendor/puppet/util/platform.rb +22 -0
- data/lib/vendor/puppet/util/plugins.rb +82 -0
- data/lib/vendor/puppet/util/posix.rb +137 -0
- data/lib/vendor/puppet/util/provider_features.rb +168 -0
- data/lib/vendor/puppet/util/pson.rb +13 -0
- data/lib/vendor/puppet/util/queue/stomp.rb +60 -0
- data/lib/vendor/puppet/util/queue.rb +96 -0
- data/lib/vendor/puppet/util/rails/cache_accumulator.rb +65 -0
- data/lib/vendor/puppet/util/rails/collection_merger.rb +17 -0
- data/lib/vendor/puppet/util/rails/reference_serializer.rb +32 -0
- data/lib/vendor/puppet/util/rdoc.rb +87 -0
- data/lib/vendor/puppet/util/reference.rb +124 -0
- data/lib/vendor/puppet/util/resource_template.rb +61 -0
- data/lib/vendor/puppet/util/retryaction.rb +48 -0
- data/lib/vendor/puppet/util/run_mode.rb +82 -0
- data/lib/vendor/puppet/util/selinux.rb +211 -0
- data/lib/vendor/puppet/util/settings/boolean_setting.rb +30 -0
- data/lib/vendor/puppet/util/settings/file_setting.rb +135 -0
- data/lib/vendor/puppet/util/settings/setting.rb +94 -0
- data/lib/vendor/puppet/util/settings.rb +926 -0
- data/lib/vendor/puppet/util/storage.rb +96 -0
- data/lib/vendor/puppet/util/subclass_loader.rb +82 -0
- data/lib/vendor/puppet/util/suidmanager.rb +173 -0
- data/lib/vendor/puppet/util/symbolic_file_mode.rb +140 -0
- data/lib/vendor/puppet/util/tagging.rb +78 -0
- data/lib/vendor/puppet/util/terminal.rb +16 -0
- data/lib/vendor/puppet/util/user_attr.rb +21 -0
- data/lib/vendor/puppet/util/warnings.rb +29 -0
- data/lib/vendor/puppet/util/windows/error.rb +16 -0
- data/lib/vendor/puppet/util/windows/file.rb +27 -0
- data/lib/vendor/puppet/util/windows/process.rb +33 -0
- data/lib/vendor/puppet/util/windows/security.rb +622 -0
- data/lib/vendor/puppet/util/windows/sid.rb +96 -0
- data/lib/vendor/puppet/util/windows/user.rb +106 -0
- data/lib/vendor/puppet/util/windows.rb +8 -0
- data/lib/vendor/puppet/util/zaml.rb +407 -0
- data/lib/vendor/puppet/util.rb +646 -0
- data/lib/vendor/puppet/version.rb +18 -0
- data/lib/vendor/puppet.rb +125 -0
- data/lib/vendor/semver.rb +124 -0
- data/puppet-parse.gemspec +2 -8
- metadata +812 -94
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
# The scope class, which handles storing and retrieving variables and types and
|
|
2
|
+
# such.
|
|
3
|
+
|
|
4
|
+
require 'puppet/parser/parser'
|
|
5
|
+
require 'puppet/parser/templatewrapper'
|
|
6
|
+
require 'puppet/transportable'
|
|
7
|
+
require 'strscan'
|
|
8
|
+
|
|
9
|
+
require 'puppet/resource/type_collection_helper'
|
|
10
|
+
|
|
11
|
+
class Puppet::Parser::Scope
|
|
12
|
+
include Puppet::Resource::TypeCollectionHelper
|
|
13
|
+
require 'puppet/parser/resource'
|
|
14
|
+
|
|
15
|
+
AST = Puppet::Parser::AST
|
|
16
|
+
|
|
17
|
+
Puppet::Util.logmethods(self)
|
|
18
|
+
|
|
19
|
+
include Enumerable
|
|
20
|
+
include Puppet::Util::Errors
|
|
21
|
+
attr_accessor :source, :resource
|
|
22
|
+
attr_accessor :base, :keyword
|
|
23
|
+
attr_accessor :top, :translated, :compiler
|
|
24
|
+
attr_accessor :parent
|
|
25
|
+
attr_reader :namespaces
|
|
26
|
+
|
|
27
|
+
# thin wrapper around an ephemeral
|
|
28
|
+
# symbol table.
|
|
29
|
+
# when a symbol
|
|
30
|
+
class Ephemeral
|
|
31
|
+
def initialize(parent=nil)
|
|
32
|
+
@symbols = {}
|
|
33
|
+
@parent = parent
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
[:include?, :delete, :[]=].each do |m|
|
|
37
|
+
define_method(m) do |*args|
|
|
38
|
+
@symbols.send(m, *args)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def [](name)
|
|
43
|
+
unless @symbols.include?(name) or @parent.nil?
|
|
44
|
+
@parent[name]
|
|
45
|
+
else
|
|
46
|
+
@symbols[name]
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# A demeterific shortcut to the catalog.
|
|
52
|
+
def catalog
|
|
53
|
+
compiler.catalog
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def environment
|
|
57
|
+
compiler.environment
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Proxy accessors
|
|
61
|
+
def host
|
|
62
|
+
@compiler.node.name
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Is the value true? This allows us to control the definition of truth
|
|
66
|
+
# in one place.
|
|
67
|
+
def self.true?(value)
|
|
68
|
+
(value != false and value != "" and value != :undef)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Is the value a number?, return the correct object or nil if not a number
|
|
72
|
+
def self.number?(value)
|
|
73
|
+
return nil unless value.is_a?(Fixnum) or value.is_a?(Bignum) or value.is_a?(Float) or value.is_a?(String)
|
|
74
|
+
|
|
75
|
+
if value.is_a?(String)
|
|
76
|
+
if value =~ /^-?\d+(:?\.\d+|(:?\.\d+)?e\d+)$/
|
|
77
|
+
return value.to_f
|
|
78
|
+
elsif value =~ /^0x[0-9a-f]+$/i
|
|
79
|
+
return value.to_i(16)
|
|
80
|
+
elsif value =~ /^0[0-7]+$/
|
|
81
|
+
return value.to_i(8)
|
|
82
|
+
elsif value =~ /^-?\d+$/
|
|
83
|
+
return value.to_i
|
|
84
|
+
else
|
|
85
|
+
return nil
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
# it is one of Fixnum,Bignum or Float
|
|
89
|
+
value
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Add to our list of namespaces.
|
|
93
|
+
def add_namespace(ns)
|
|
94
|
+
return false if @namespaces.include?(ns)
|
|
95
|
+
if @namespaces == [""]
|
|
96
|
+
@namespaces = [ns]
|
|
97
|
+
else
|
|
98
|
+
@namespaces << ns
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Remove this when rebasing
|
|
103
|
+
def environment
|
|
104
|
+
compiler ? compiler.environment : nil
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def find_hostclass(name)
|
|
108
|
+
known_resource_types.find_hostclass(namespaces, name)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def find_definition(name)
|
|
112
|
+
known_resource_types.find_definition(namespaces, name)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def findresource(string, name = nil)
|
|
116
|
+
compiler.findresource(string, name)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Initialize our new scope. Defaults to having no parent.
|
|
120
|
+
def initialize(hash = {})
|
|
121
|
+
if hash.include?(:namespace)
|
|
122
|
+
if n = hash[:namespace]
|
|
123
|
+
@namespaces = [n]
|
|
124
|
+
end
|
|
125
|
+
hash.delete(:namespace)
|
|
126
|
+
else
|
|
127
|
+
@namespaces = [""]
|
|
128
|
+
end
|
|
129
|
+
hash.each { |name, val|
|
|
130
|
+
method = name.to_s + "="
|
|
131
|
+
if self.respond_to? method
|
|
132
|
+
self.send(method, val)
|
|
133
|
+
else
|
|
134
|
+
raise Puppet::DevError, "Invalid scope argument #{name}"
|
|
135
|
+
end
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
extend_with_functions_module
|
|
139
|
+
|
|
140
|
+
@tags = []
|
|
141
|
+
|
|
142
|
+
# The symbol table for this scope. This is where we store variables.
|
|
143
|
+
@symtable = {}
|
|
144
|
+
|
|
145
|
+
# the ephemeral symbol tables
|
|
146
|
+
# those should not persist long, and are used for the moment only
|
|
147
|
+
# for $0..$xy capture variables of regexes
|
|
148
|
+
# this is actually implemented as a stack, with each ephemeral scope
|
|
149
|
+
# shadowing the previous one
|
|
150
|
+
@ephemeral = [ Ephemeral.new ]
|
|
151
|
+
|
|
152
|
+
# All of the defaults set for types. It's a hash of hashes,
|
|
153
|
+
# with the first key being the type, then the second key being
|
|
154
|
+
# the parameter.
|
|
155
|
+
@defaults = Hash.new { |dhash,type|
|
|
156
|
+
dhash[type] = {}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
# The table for storing class singletons. This will only actually
|
|
160
|
+
# be used by top scopes and node scopes.
|
|
161
|
+
@class_scopes = {}
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Store the fact that we've evaluated a class, and store a reference to
|
|
165
|
+
# the scope in which it was evaluated, so that we can look it up later.
|
|
166
|
+
def class_set(name, scope)
|
|
167
|
+
return parent.class_set(name,scope) if parent
|
|
168
|
+
@class_scopes[name] = scope
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
# Return the scope associated with a class. This is just here so
|
|
172
|
+
# that subclasses can set their parent scopes to be the scope of
|
|
173
|
+
# their parent class, and it's also used when looking up qualified
|
|
174
|
+
# variables.
|
|
175
|
+
def class_scope(klass)
|
|
176
|
+
# They might pass in either the class or class name
|
|
177
|
+
k = klass.respond_to?(:name) ? klass.name : klass
|
|
178
|
+
@class_scopes[k] || (parent && parent.class_scope(k))
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Collect all of the defaults set at any higher scopes.
|
|
182
|
+
# This is a different type of lookup because it's additive --
|
|
183
|
+
# it collects all of the defaults, with defaults in closer scopes
|
|
184
|
+
# overriding those in later scopes.
|
|
185
|
+
def lookupdefaults(type)
|
|
186
|
+
values = {}
|
|
187
|
+
|
|
188
|
+
# first collect the values from the parents
|
|
189
|
+
unless parent.nil?
|
|
190
|
+
parent.lookupdefaults(type).each { |var,value|
|
|
191
|
+
values[var] = value
|
|
192
|
+
}
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
# then override them with any current values
|
|
196
|
+
# this should probably be done differently
|
|
197
|
+
if @defaults.include?(type)
|
|
198
|
+
@defaults[type].each { |var,value|
|
|
199
|
+
values[var] = value
|
|
200
|
+
}
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
#Puppet.debug "Got defaults for %s: %s" %
|
|
204
|
+
# [type,values.inspect]
|
|
205
|
+
values
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# Look up a defined type.
|
|
209
|
+
def lookuptype(name)
|
|
210
|
+
find_definition(name) || find_hostclass(name)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def undef_as(x,v)
|
|
214
|
+
(v == :undefined) ? x : (v == :undef) ? x : v
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
def qualified_scope(classname)
|
|
218
|
+
raise "class #{classname} could not be found" unless klass = find_hostclass(classname)
|
|
219
|
+
raise "class #{classname} has not been evaluated" unless kscope = class_scope(klass)
|
|
220
|
+
kscope
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
private :qualified_scope
|
|
224
|
+
|
|
225
|
+
# Look up a variable with traditional scoping and then with new scoping. If
|
|
226
|
+
# the answers differ then print a deprecation warning.
|
|
227
|
+
def lookupvar(name, options = {})
|
|
228
|
+
dynamic_value = dynamic_lookupvar(name,options)
|
|
229
|
+
twoscope_value = twoscope_lookupvar(name,options)
|
|
230
|
+
if dynamic_value != twoscope_value
|
|
231
|
+
location = (options[:file] && options[:line]) ? " at #{options[:file]}:#{options[:line]}" : ''
|
|
232
|
+
Puppet.deprecation_warning("Dynamic lookup of $#{name}#{location} is deprecated. For more information, see http://docs.puppetlabs.com/guides/scope_and_puppet.html. To see the change in behavior, use the --debug flag.")
|
|
233
|
+
Puppet.debug("Currently $#{name} is #{dynamic_value.inspect}")
|
|
234
|
+
Puppet.debug("In the future $#{name} will be #{twoscope_value == :undefined ? "undefined" : twoscope_value.inspect}")
|
|
235
|
+
end
|
|
236
|
+
dynamic_value
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
# Look up a variable. The simplest value search we do.
|
|
240
|
+
def twoscope_lookupvar(name, options = {})
|
|
241
|
+
# Save the originating scope for the request
|
|
242
|
+
options[:origin] = self unless options[:origin]
|
|
243
|
+
table = ephemeral?(name) ? @ephemeral.last : @symtable
|
|
244
|
+
|
|
245
|
+
if name =~ /^(.*)::(.+)$/
|
|
246
|
+
begin
|
|
247
|
+
qualified_scope($1).twoscope_lookupvar($2, options.merge({:origin => nil}))
|
|
248
|
+
rescue RuntimeError => e
|
|
249
|
+
location = (options[:file] && options[:line]) ? " at #{options[:file]}:#{options[:line]}" : ''
|
|
250
|
+
warning "Could not look up qualified variable '#{name}'; #{e.message}#{location}"
|
|
251
|
+
:undefined
|
|
252
|
+
end
|
|
253
|
+
# If the value is present and either we are top/node scope or originating scope...
|
|
254
|
+
elsif (ephemeral_include?(name) or table.include?(name)) and (compiler and self == compiler.topscope or (resource and resource.type == "Node") or self == options[:origin])
|
|
255
|
+
table[name]
|
|
256
|
+
elsif resource and resource.type == "Class" and parent_type = resource.resource_type.parent
|
|
257
|
+
qualified_scope(parent_type).twoscope_lookupvar(name,options.merge({:origin => nil}))
|
|
258
|
+
elsif parent
|
|
259
|
+
parent.twoscope_lookupvar(name, options)
|
|
260
|
+
else
|
|
261
|
+
:undefined
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
# Look up a variable. The simplest value search we do.
|
|
266
|
+
def dynamic_lookupvar(name, options = {})
|
|
267
|
+
table = ephemeral?(name) ? @ephemeral.last : @symtable
|
|
268
|
+
# If the variable is qualified, then find the specified scope and look the variable up there instead.
|
|
269
|
+
if name =~ /^(.*)::(.+)$/
|
|
270
|
+
begin
|
|
271
|
+
qualified_scope($1).dynamic_lookupvar($2,options)
|
|
272
|
+
rescue RuntimeError => e
|
|
273
|
+
location = (options[:file] && options[:line]) ? " at #{options[:file]}:#{options[:line]}" : ''
|
|
274
|
+
warning "Could not look up qualified variable '#{name}'; #{e.message}#{location}"
|
|
275
|
+
:undefined
|
|
276
|
+
end
|
|
277
|
+
elsif ephemeral_include?(name) or table.include?(name)
|
|
278
|
+
# We can't use "if table[name]" here because the value might be false
|
|
279
|
+
table[name]
|
|
280
|
+
elsif parent
|
|
281
|
+
parent.dynamic_lookupvar(name,options)
|
|
282
|
+
else
|
|
283
|
+
:undefined
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
# Return a hash containing our variables and their values, optionally (and
|
|
288
|
+
# by default) including the values defined in our parent. Local values
|
|
289
|
+
# shadow parent values.
|
|
290
|
+
def to_hash(recursive = true)
|
|
291
|
+
target = parent.to_hash(recursive) if recursive and parent
|
|
292
|
+
target ||= Hash.new
|
|
293
|
+
@symtable.keys.each { |name|
|
|
294
|
+
value = @symtable[name]
|
|
295
|
+
if value == :undef
|
|
296
|
+
target.delete(name)
|
|
297
|
+
else
|
|
298
|
+
target[name] = value
|
|
299
|
+
end
|
|
300
|
+
}
|
|
301
|
+
target
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
def namespaces
|
|
305
|
+
@namespaces.dup
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
# Create a new scope and set these options.
|
|
309
|
+
def newscope(options = {})
|
|
310
|
+
compiler.newscope(self, options)
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
def parent_module_name
|
|
314
|
+
return nil unless @parent
|
|
315
|
+
return nil unless @parent.source
|
|
316
|
+
@parent.source.module_name
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
# Return the list of scopes up to the top scope, ordered with our own first.
|
|
320
|
+
# This is used for looking up variables and defaults.
|
|
321
|
+
def scope_path
|
|
322
|
+
if parent
|
|
323
|
+
[self, parent.scope_path].flatten.compact
|
|
324
|
+
else
|
|
325
|
+
[self]
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
# Set defaults for a type. The typename should already be downcased,
|
|
330
|
+
# so that the syntax is isolated. We don't do any kind of type-checking
|
|
331
|
+
# here; instead we let the resource do it when the defaults are used.
|
|
332
|
+
def setdefaults(type, params)
|
|
333
|
+
table = @defaults[type]
|
|
334
|
+
|
|
335
|
+
# if we got a single param, it'll be in its own array
|
|
336
|
+
params = [params] unless params.is_a?(Array)
|
|
337
|
+
|
|
338
|
+
params.each { |param|
|
|
339
|
+
#Puppet.debug "Default for %s is %s => %s" %
|
|
340
|
+
# [type,ary[0].inspect,ary[1].inspect]
|
|
341
|
+
if table.include?(param.name)
|
|
342
|
+
raise Puppet::ParseError.new("Default already defined for #{type} { #{param.name} }; cannot redefine", param.line, param.file)
|
|
343
|
+
end
|
|
344
|
+
table[param.name] = param
|
|
345
|
+
}
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
# Set a variable in the current scope. This will override settings
|
|
349
|
+
# in scopes above, but will not allow variables in the current scope
|
|
350
|
+
# to be reassigned.
|
|
351
|
+
def setvar(name,value, options = {})
|
|
352
|
+
table = options[:ephemeral] ? @ephemeral.last : @symtable
|
|
353
|
+
if table.include?(name)
|
|
354
|
+
unless options[:append]
|
|
355
|
+
error = Puppet::ParseError.new("Cannot reassign variable #{name}")
|
|
356
|
+
else
|
|
357
|
+
error = Puppet::ParseError.new("Cannot append, variable #{name} is defined in this scope")
|
|
358
|
+
end
|
|
359
|
+
error.file = options[:file] if options[:file]
|
|
360
|
+
error.line = options[:line] if options[:line]
|
|
361
|
+
raise error
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
unless options[:append]
|
|
365
|
+
table[name] = value
|
|
366
|
+
else # append case
|
|
367
|
+
# lookup the value in the scope if it exists and insert the var
|
|
368
|
+
table[name] = undef_as('',lookupvar(name))
|
|
369
|
+
# concatenate if string, append if array, nothing for other types
|
|
370
|
+
case value
|
|
371
|
+
when Array
|
|
372
|
+
table[name] += value
|
|
373
|
+
when Hash
|
|
374
|
+
raise ArgumentError, "Trying to append to a hash with something which is not a hash is unsupported" unless value.is_a?(Hash)
|
|
375
|
+
table[name].merge!(value)
|
|
376
|
+
else
|
|
377
|
+
table[name] << value
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
# Return the tags associated with this scope. It's basically
|
|
383
|
+
# just our parents' tags, plus our type. We don't cache this value
|
|
384
|
+
# because our parent tags might change between calls.
|
|
385
|
+
def tags
|
|
386
|
+
resource.tags
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
# Used mainly for logging
|
|
390
|
+
def to_s
|
|
391
|
+
"Scope(#{@resource})"
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
# Undefine a variable; only used for testing.
|
|
395
|
+
def unsetvar(var)
|
|
396
|
+
table = ephemeral?(var) ? @ephemeral.last : @symtable
|
|
397
|
+
table.delete(var) if table.include?(var)
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
# remove ephemeral scope up to level
|
|
401
|
+
def unset_ephemeral_var(level=:all)
|
|
402
|
+
if level == :all
|
|
403
|
+
@ephemeral = [ Ephemeral.new ]
|
|
404
|
+
else
|
|
405
|
+
(@ephemeral.size - level).times do
|
|
406
|
+
@ephemeral.pop
|
|
407
|
+
end
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
# check if name exists in one of the ephemeral scope.
|
|
412
|
+
def ephemeral_include?(name)
|
|
413
|
+
@ephemeral.reverse_each do |eph|
|
|
414
|
+
return true if eph.include?(name)
|
|
415
|
+
end
|
|
416
|
+
false
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
# is name an ephemeral variable?
|
|
420
|
+
def ephemeral?(name)
|
|
421
|
+
name =~ /^\d+$/
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
def ephemeral_level
|
|
425
|
+
@ephemeral.size
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
def new_ephemeral
|
|
429
|
+
@ephemeral.push(Ephemeral.new(@ephemeral.last))
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
def ephemeral_from(match, file = nil, line = nil)
|
|
433
|
+
raise(ArgumentError,"Invalid regex match data") unless match.is_a?(MatchData)
|
|
434
|
+
|
|
435
|
+
new_ephemeral
|
|
436
|
+
|
|
437
|
+
setvar("0", match[0], :file => file, :line => line, :ephemeral => true)
|
|
438
|
+
match.captures.each_with_index do |m,i|
|
|
439
|
+
setvar("#{i+1}", m, :file => file, :line => line, :ephemeral => true)
|
|
440
|
+
end
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
def find_resource_type(type)
|
|
444
|
+
# It still works fine without the type == 'class' short-cut, but it is a lot slower.
|
|
445
|
+
return nil if ["class", "node"].include? type.to_s.downcase
|
|
446
|
+
find_builtin_resource_type(type) || find_defined_resource_type(type)
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
def find_builtin_resource_type(type)
|
|
450
|
+
Puppet::Type.type(type.to_s.downcase.to_sym)
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
def find_defined_resource_type(type)
|
|
454
|
+
environment.known_resource_types.find_definition(namespaces, type.to_s.downcase)
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
def method_missing(method, *args, &block)
|
|
458
|
+
method.to_s =~ /^function_(.*)$/
|
|
459
|
+
super unless $1
|
|
460
|
+
super unless Puppet::Parser::Functions.function($1)
|
|
461
|
+
# In odd circumstances, this might not end up defined by the previous
|
|
462
|
+
# method, so we might as well be certain.
|
|
463
|
+
if respond_to? method
|
|
464
|
+
send(method, *args)
|
|
465
|
+
else
|
|
466
|
+
raise Puppet::DevError, "Function #{$1} not defined despite being loaded!"
|
|
467
|
+
end
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
def resolve_type_and_titles(type, titles)
|
|
471
|
+
raise ArgumentError, "titles must be an array" unless titles.is_a?(Array)
|
|
472
|
+
|
|
473
|
+
case type.downcase
|
|
474
|
+
when "class"
|
|
475
|
+
# resolve the titles
|
|
476
|
+
titles = titles.collect do |a_title|
|
|
477
|
+
hostclass = find_hostclass(a_title)
|
|
478
|
+
hostclass ? hostclass.name : a_title
|
|
479
|
+
end
|
|
480
|
+
when "node"
|
|
481
|
+
# no-op
|
|
482
|
+
else
|
|
483
|
+
# resolve the type
|
|
484
|
+
resource_type = find_resource_type(type)
|
|
485
|
+
type = resource_type.name if resource_type
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
return [type, titles]
|
|
489
|
+
end
|
|
490
|
+
|
|
491
|
+
private
|
|
492
|
+
|
|
493
|
+
def extend_with_functions_module
|
|
494
|
+
extend Puppet::Parser::Functions.environment_module(Puppet::Node::Environment.root)
|
|
495
|
+
extend Puppet::Parser::Functions.environment_module(environment)
|
|
496
|
+
end
|
|
497
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# A simple wrapper for templates, so they don't have full access to
|
|
2
|
+
# the scope objects.
|
|
3
|
+
require 'puppet/parser/files'
|
|
4
|
+
require 'erb'
|
|
5
|
+
|
|
6
|
+
class Puppet::Parser::TemplateWrapper
|
|
7
|
+
attr_writer :scope
|
|
8
|
+
attr_reader :file
|
|
9
|
+
attr_accessor :string
|
|
10
|
+
include Puppet::Util
|
|
11
|
+
Puppet::Util.logmethods(self)
|
|
12
|
+
|
|
13
|
+
def initialize(scope)
|
|
14
|
+
@__scope__ = scope
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def scope
|
|
18
|
+
@__scope__
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def script_line
|
|
22
|
+
# find which line in the template (if any) we were called from
|
|
23
|
+
(caller.find { |l| l =~ /#{file}:/ }||"")[/:(\d+):/,1]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Should return true if a variable is defined, false if it is not
|
|
27
|
+
def has_variable?(name)
|
|
28
|
+
scope.lookupvar(name.to_s, :file => file, :line => script_line) != :undefined
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Allow templates to access the defined classes
|
|
32
|
+
def classes
|
|
33
|
+
scope.catalog.classes
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Allow templates to access the tags defined in the current scope
|
|
37
|
+
def tags
|
|
38
|
+
scope.tags
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Allow templates to access the all the defined tags
|
|
42
|
+
def all_tags
|
|
43
|
+
scope.catalog.tags
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Ruby treats variables like methods, so we used to expose variables
|
|
47
|
+
# within scope to the ERB code via method_missing. As per RedMine #1427,
|
|
48
|
+
# though, this means that conflicts between methods in our inheritance
|
|
49
|
+
# tree (Kernel#fork) and variable names (fork => "yes/no") could arise.
|
|
50
|
+
#
|
|
51
|
+
# Worse, /new/ conflicts could pop up when a new kernel or object method
|
|
52
|
+
# was added to Ruby, causing templates to suddenly fail mysteriously when
|
|
53
|
+
# Ruby was upgraded.
|
|
54
|
+
#
|
|
55
|
+
# To ensure that legacy templates using unqualified names work we retain
|
|
56
|
+
# the missing_method definition here until we declare the syntax finally
|
|
57
|
+
# dead.
|
|
58
|
+
def method_missing(name, *args)
|
|
59
|
+
value = scope.lookupvar(name.to_s,:file => file,:line => script_line)
|
|
60
|
+
if value != :undefined
|
|
61
|
+
return value
|
|
62
|
+
else
|
|
63
|
+
# Just throw an error immediately, instead of searching for
|
|
64
|
+
# other missingmethod things or whatever.
|
|
65
|
+
raise Puppet::ParseError.new("Could not find value for '#{name}'",@file,script_line)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def file=(filename)
|
|
70
|
+
unless @file = Puppet::Parser::Files.find_template(filename, scope.compiler.environment.to_s)
|
|
71
|
+
raise Puppet::ParseError, "Could not find template '#{filename}'"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# We'll only ever not have a parser in testing, but, eh.
|
|
75
|
+
scope.known_resource_types.watch_file(file)
|
|
76
|
+
|
|
77
|
+
@string = File.read(file)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def result(string = nil)
|
|
81
|
+
if string
|
|
82
|
+
self.string = string
|
|
83
|
+
template_source = "inline template"
|
|
84
|
+
else
|
|
85
|
+
template_source = file
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Expose all the variables in our scope as instance variables of the
|
|
89
|
+
# current object, making it possible to access them without conflict
|
|
90
|
+
# to the regular methods.
|
|
91
|
+
benchmark(:debug, "Bound template variables for #{template_source}") do
|
|
92
|
+
scope.to_hash.each { |name, value|
|
|
93
|
+
if name.kind_of?(String)
|
|
94
|
+
realname = name.gsub(/[^\w]/, "_")
|
|
95
|
+
else
|
|
96
|
+
realname = name
|
|
97
|
+
end
|
|
98
|
+
instance_variable_set("@#{realname}", value)
|
|
99
|
+
}
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
result = nil
|
|
103
|
+
benchmark(:debug, "Interpolated template #{template_source}") do
|
|
104
|
+
template = ERB.new(self.string, 0, "-")
|
|
105
|
+
template.filename = file
|
|
106
|
+
result = template.result(binding)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
result
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def to_s
|
|
113
|
+
"template[#{(file ? file : "inline")}]"
|
|
114
|
+
end
|
|
115
|
+
end
|