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,128 @@
|
|
|
1
|
+
require 'puppet/interface'
|
|
2
|
+
|
|
3
|
+
module Puppet::Interface::FaceCollection
|
|
4
|
+
@faces = Hash.new { |hash, key| hash[key] = {} }
|
|
5
|
+
|
|
6
|
+
def self.faces
|
|
7
|
+
unless @loaded
|
|
8
|
+
@loaded = true
|
|
9
|
+
$LOAD_PATH.each do |dir|
|
|
10
|
+
Dir.glob("#{dir}/puppet/face/*.rb").
|
|
11
|
+
collect {|f| File.basename(f, '.rb') }.
|
|
12
|
+
each {|name| self[name, :current] }
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
@faces.keys.select {|name| @faces[name].length > 0 }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.[](name, version)
|
|
19
|
+
name = underscorize(name)
|
|
20
|
+
get_face(name, version) or load_face(name, version)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.get_action_for_face(name, action_name, version)
|
|
24
|
+
name = underscorize(name)
|
|
25
|
+
|
|
26
|
+
# If the version they request specifically doesn't exist, don't search
|
|
27
|
+
# elsewhere. Usually this will start from :current and all...
|
|
28
|
+
return nil unless face = self[name, version]
|
|
29
|
+
unless action = face.get_action(action_name)
|
|
30
|
+
# ...we need to search for it bound to an o{lder,ther} version. Since
|
|
31
|
+
# we load all actions when the face is first references, this will be in
|
|
32
|
+
# memory in the known set of versions of the face.
|
|
33
|
+
(@faces[name].keys - [ :current ]).sort.reverse.each do |version|
|
|
34
|
+
break if action = @faces[name][version].get_action(action_name)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
return action
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# get face from memory, without loading.
|
|
42
|
+
def self.get_face(name, pattern)
|
|
43
|
+
return nil unless @faces.has_key? name
|
|
44
|
+
return @faces[name][:current] if pattern == :current
|
|
45
|
+
|
|
46
|
+
versions = @faces[name].keys - [ :current ]
|
|
47
|
+
found = SemVer.find_matching(pattern, versions)
|
|
48
|
+
return @faces[name][found]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# try to load the face, and return it.
|
|
52
|
+
def self.load_face(name, version)
|
|
53
|
+
# We always load the current version file; the common case is that we have
|
|
54
|
+
# the expected version and any compatibility versions in the same file,
|
|
55
|
+
# the default. Which means that this is almost always the case.
|
|
56
|
+
#
|
|
57
|
+
# We use require to avoid executing the code multiple times, like any
|
|
58
|
+
# other Ruby library that we might want to use. --daniel 2011-04-06
|
|
59
|
+
if safely_require name then
|
|
60
|
+
# If we wanted :current, we need to index to find that; direct version
|
|
61
|
+
# requests just work™ as they go. --daniel 2011-04-06
|
|
62
|
+
if version == :current then
|
|
63
|
+
# We need to find current out of this. This is the largest version
|
|
64
|
+
# number that doesn't have a dedicated on-disk file present; those
|
|
65
|
+
# represent "experimental" versions of faces, which we don't fully
|
|
66
|
+
# support yet.
|
|
67
|
+
#
|
|
68
|
+
# We walk the versions from highest to lowest and take the first version
|
|
69
|
+
# that is not defined in an explicitly versioned file on disk as the
|
|
70
|
+
# current version.
|
|
71
|
+
#
|
|
72
|
+
# This constrains us to only ship experimental versions with *one*
|
|
73
|
+
# version in the file, not multiple, but given you can't reliably load
|
|
74
|
+
# them except by side-effect when you ignore that rule this seems safe
|
|
75
|
+
# enough...
|
|
76
|
+
#
|
|
77
|
+
# Given those constraints, and that we are not going to ship a versioned
|
|
78
|
+
# interface that is not :current in this release, we are going to leave
|
|
79
|
+
# these thoughts in place, and just punt on the actual versioning.
|
|
80
|
+
#
|
|
81
|
+
# When we upgrade the core to support multiple versions we can solve the
|
|
82
|
+
# problems then; as lazy as possible.
|
|
83
|
+
#
|
|
84
|
+
# We do support multiple versions in the same file, though, so we sort
|
|
85
|
+
# versions here and return the last item in that set.
|
|
86
|
+
#
|
|
87
|
+
# --daniel 2011-04-06
|
|
88
|
+
latest_ver = @faces[name].keys.sort.last
|
|
89
|
+
@faces[name][:current] = @faces[name][latest_ver]
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
unless version == :current or get_face(name, version)
|
|
94
|
+
# Try an obsolete version of the face, if needed, to see if that helps?
|
|
95
|
+
safely_require name, version
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
return get_face(name, version)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def self.safely_require(name, version = nil)
|
|
102
|
+
path = File.join 'puppet' ,'face', version.to_s, name.to_s
|
|
103
|
+
require path
|
|
104
|
+
true
|
|
105
|
+
|
|
106
|
+
rescue LoadError => e
|
|
107
|
+
raise unless e.message =~ %r{-- #{path}$}
|
|
108
|
+
# ...guess we didn't find the file; return a much better problem.
|
|
109
|
+
nil
|
|
110
|
+
rescue SyntaxError => e
|
|
111
|
+
raise unless e.message =~ %r{#{path}\.rb:\d+: }
|
|
112
|
+
Puppet.err "Failed to load face #{name}:\n#{e}"
|
|
113
|
+
# ...but we just carry on after complaining.
|
|
114
|
+
nil
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def self.register(face)
|
|
118
|
+
@faces[underscorize(face.name)][face.version] = face
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def self.underscorize(name)
|
|
122
|
+
unless name.to_s =~ /^[-_a-z]+$/i then
|
|
123
|
+
raise ArgumentError, "#{name.inspect} (#{name.class}) is not a valid face name"
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
name.to_s.downcase.split(/[-_]/).join('_').to_sym
|
|
127
|
+
end
|
|
128
|
+
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
require 'puppet/interface'
|
|
2
|
+
|
|
3
|
+
class Puppet::Interface::Option
|
|
4
|
+
include Puppet::Interface::TinyDocs
|
|
5
|
+
|
|
6
|
+
def initialize(parent, *declaration, &block)
|
|
7
|
+
@parent = parent
|
|
8
|
+
@optparse = []
|
|
9
|
+
@default = nil
|
|
10
|
+
|
|
11
|
+
# Collect and sort the arguments in the declaration.
|
|
12
|
+
dups = {}
|
|
13
|
+
declaration.each do |item|
|
|
14
|
+
if item.is_a? String and item.to_s =~ /^-/ then
|
|
15
|
+
unless item =~ /^-[a-z]\b/ or item =~ /^--[^-]/ then
|
|
16
|
+
raise ArgumentError, "#{item.inspect}: long options need two dashes (--)"
|
|
17
|
+
end
|
|
18
|
+
@optparse << item
|
|
19
|
+
|
|
20
|
+
# Duplicate checking...
|
|
21
|
+
name = optparse_to_name(item)
|
|
22
|
+
if dup = dups[name] then
|
|
23
|
+
raise ArgumentError, "#{item.inspect}: duplicates existing alias #{dup.inspect} in #{@parent}"
|
|
24
|
+
else
|
|
25
|
+
dups[name] = item
|
|
26
|
+
end
|
|
27
|
+
else
|
|
28
|
+
raise ArgumentError, "#{item.inspect} is not valid for an option argument"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
if @optparse.empty? then
|
|
33
|
+
raise ArgumentError, "No option declarations found while building"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Now, infer the name from the options; we prefer the first long option as
|
|
37
|
+
# the name, rather than just the first option.
|
|
38
|
+
@name = optparse_to_name(@optparse.find do |a| a =~ /^--/ end || @optparse.first)
|
|
39
|
+
@aliases = @optparse.map { |o| optparse_to_name(o) }
|
|
40
|
+
|
|
41
|
+
# Do we take an argument? If so, are we consistent about it, because
|
|
42
|
+
# incoherence here makes our life super-difficult, and we can more easily
|
|
43
|
+
# relax this rule later if we find a valid use case for it. --daniel 2011-03-30
|
|
44
|
+
@argument = @optparse.any? { |o| o =~ /[ =]/ }
|
|
45
|
+
if @argument and not @optparse.all? { |o| o =~ /[ =]/ } then
|
|
46
|
+
raise ArgumentError, "Option #{@name} is inconsistent about taking an argument"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Is our argument optional? The rules about consistency apply here, also,
|
|
50
|
+
# just like they do to taking arguments at all. --daniel 2011-03-30
|
|
51
|
+
@optional_argument = @optparse.any? { |o| o=~/[ =]\[/ }
|
|
52
|
+
@optional_argument and raise ArgumentError, "Options with optional arguments are not supported"
|
|
53
|
+
if @optional_argument and not @optparse.all? { |o| o=~/[ =]\[/ } then
|
|
54
|
+
raise ArgumentError, "Option #{@name} is inconsistent about the argument being optional"
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# to_s and optparse_to_name are roughly mirrored, because they are used to
|
|
59
|
+
# transform options to name symbols, and vice-versa. This isn't a full
|
|
60
|
+
# bidirectional transformation though. --daniel 2011-04-07
|
|
61
|
+
def to_s
|
|
62
|
+
@name.to_s.tr('_', '-')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def optparse_to_name(declaration)
|
|
66
|
+
unless found = declaration.match(/^-+(?:\[no-\])?([^ =]+)/) then
|
|
67
|
+
raise ArgumentError, "Can't find a name in the declaration #{declaration.inspect}"
|
|
68
|
+
end
|
|
69
|
+
name = found.captures.first.tr('-', '_')
|
|
70
|
+
raise "#{name.inspect} is an invalid option name" unless name.to_s =~ /^[a-z]\w*$/
|
|
71
|
+
name.to_sym
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def takes_argument?
|
|
76
|
+
!!@argument
|
|
77
|
+
end
|
|
78
|
+
def optional_argument?
|
|
79
|
+
!!@optional_argument
|
|
80
|
+
end
|
|
81
|
+
def required?
|
|
82
|
+
!!@required
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def has_default?
|
|
86
|
+
!!@default
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def default=(proc)
|
|
90
|
+
required and raise ArgumentError, "#{self} can't be optional and have a default value"
|
|
91
|
+
proc.is_a? Proc or raise ArgumentError, "default value for #{self} is a #{proc.class.name.inspect}, not a proc"
|
|
92
|
+
@default = proc
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def default
|
|
96
|
+
@default and @default.call
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
attr_reader :parent, :name, :aliases, :optparse
|
|
100
|
+
attr_accessor :required
|
|
101
|
+
def required=(value)
|
|
102
|
+
has_default? and raise ArgumentError, "#{self} can't be optional and have a default value"
|
|
103
|
+
@required = value
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
attr_accessor :before_action
|
|
107
|
+
def before_action=(proc)
|
|
108
|
+
proc.is_a? Proc or raise ArgumentError, "before action hook for #{self} is a #{proc.class.name.inspect}, not a proc"
|
|
109
|
+
@before_action =
|
|
110
|
+
@parent.__send__(:__add_method, __decoration_name(:before), proc)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
attr_accessor :after_action
|
|
114
|
+
def after_action=(proc)
|
|
115
|
+
proc.is_a? Proc or raise ArgumentError, "after action hook for #{self} is a #{proc.class.name.inspect}, not a proc"
|
|
116
|
+
@after_action =
|
|
117
|
+
@parent.__send__(:__add_method, __decoration_name(:after), proc)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def __decoration_name(type)
|
|
121
|
+
if @parent.is_a? Puppet::Interface::Action then
|
|
122
|
+
:"option #{name} from #{parent.name} #{type} decoration"
|
|
123
|
+
else
|
|
124
|
+
:"option #{name} #{type} decoration"
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'puppet/interface/option'
|
|
2
|
+
|
|
3
|
+
class Puppet::Interface::OptionBuilder
|
|
4
|
+
attr_reader :option
|
|
5
|
+
|
|
6
|
+
def self.build(face, *declaration, &block)
|
|
7
|
+
new(face, *declaration, &block).option
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
def initialize(face, *declaration, &block)
|
|
12
|
+
@face = face
|
|
13
|
+
@option = Puppet::Interface::Option.new(face, *declaration)
|
|
14
|
+
instance_eval(&block) if block_given?
|
|
15
|
+
@option
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Metaprogram the simple DSL from the option class.
|
|
19
|
+
Puppet::Interface::Option.instance_methods.grep(/=$/).each do |setter|
|
|
20
|
+
next if setter =~ /^=/
|
|
21
|
+
dsl = setter.to_s.chomp('=')
|
|
22
|
+
|
|
23
|
+
unless private_method_defined? dsl
|
|
24
|
+
define_method(dsl) do |value| @option.send(setter, value) end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Override some methods that deal in blocks, not objects.
|
|
29
|
+
def before_action(&block)
|
|
30
|
+
block or raise ArgumentError, "#{@option} before_action requires a block"
|
|
31
|
+
if @option.before_action
|
|
32
|
+
raise ArgumentError, "#{@option} already has a before_action set"
|
|
33
|
+
end
|
|
34
|
+
unless block.arity == 3 then
|
|
35
|
+
raise ArgumentError, "before_action takes three arguments, action, args, and options"
|
|
36
|
+
end
|
|
37
|
+
@option.before_action = block
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def after_action(&block)
|
|
41
|
+
block or raise ArgumentError, "#{@option} after_action requires a block"
|
|
42
|
+
if @option.after_action
|
|
43
|
+
raise ArgumentError, "#{@option} already has a after_action set"
|
|
44
|
+
end
|
|
45
|
+
unless block.arity == 3 then
|
|
46
|
+
raise ArgumentError, "after_action takes three arguments, action, args, and options"
|
|
47
|
+
end
|
|
48
|
+
@option.after_action = block
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def required(value = true)
|
|
52
|
+
@option.required = value
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def default_to(&block)
|
|
56
|
+
block or raise ArgumentError, "#{@option} default_to requires a block"
|
|
57
|
+
if @option.has_default?
|
|
58
|
+
raise ArgumentError, "#{@option} already has a default value"
|
|
59
|
+
end
|
|
60
|
+
# Ruby 1.8 treats a block without arguments as accepting any number; 1.9
|
|
61
|
+
# gets this right, so we work around it for now... --daniel 2011-07-20
|
|
62
|
+
unless block.arity == 0 or (RUBY_VERSION =~ /^1\.8/ and block.arity == -1)
|
|
63
|
+
raise ArgumentError, "#{@option} default_to block should not take any arguments"
|
|
64
|
+
end
|
|
65
|
+
@option.default = block
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'puppet/interface/option_builder'
|
|
2
|
+
|
|
3
|
+
module Puppet::Interface::OptionManager
|
|
4
|
+
# Declare that this app can take a specific option, and provide
|
|
5
|
+
# the code to do so.
|
|
6
|
+
def option(*declaration, &block)
|
|
7
|
+
add_option Puppet::Interface::OptionBuilder.build(self, *declaration, &block)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def add_option(option)
|
|
11
|
+
# @options collects the added options in the order they're declared.
|
|
12
|
+
# @options_hash collects the options keyed by alias for quick lookups.
|
|
13
|
+
@options ||= []
|
|
14
|
+
@options_hash ||= {}
|
|
15
|
+
|
|
16
|
+
option.aliases.each do |name|
|
|
17
|
+
if conflict = get_option(name) then
|
|
18
|
+
raise ArgumentError, "Option #{option} conflicts with existing option #{conflict}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
actions.each do |action|
|
|
22
|
+
action = get_action(action)
|
|
23
|
+
if conflict = action.get_option(name) then
|
|
24
|
+
raise ArgumentError, "Option #{option} conflicts with existing option #{conflict} on #{action}"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
@options << option.name
|
|
30
|
+
|
|
31
|
+
option.aliases.each do |name|
|
|
32
|
+
@options_hash[name] = option
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
return option
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def options
|
|
39
|
+
result = (@options ||= [])
|
|
40
|
+
|
|
41
|
+
if self.is_a?(Class) and superclass.respond_to?(:options)
|
|
42
|
+
result = superclass.options + result
|
|
43
|
+
elsif self.class.respond_to?(:options)
|
|
44
|
+
result = self.class.options + result
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
return result
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def get_option(name, with_inherited_options = true)
|
|
51
|
+
@options_hash ||= {}
|
|
52
|
+
|
|
53
|
+
result = @options_hash[name.to_sym]
|
|
54
|
+
if result.nil? and with_inherited_options then
|
|
55
|
+
if self.is_a?(Class) and superclass.respond_to?(:get_option)
|
|
56
|
+
result = superclass.get_option(name)
|
|
57
|
+
elsif self.class.respond_to?(:get_option)
|
|
58
|
+
result = self.class.get_option(name)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
return result
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def option?(name)
|
|
66
|
+
options.include? name.to_sym
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'puppet/util/autoload'
|
|
3
|
+
require 'puppet/interface/documentation'
|
|
4
|
+
require 'prettyprint'
|
|
5
|
+
require 'semver'
|
|
6
|
+
|
|
7
|
+
class Puppet::Interface
|
|
8
|
+
include FullDocs
|
|
9
|
+
|
|
10
|
+
require 'puppet/interface/face_collection'
|
|
11
|
+
|
|
12
|
+
require 'puppet/interface/action_manager'
|
|
13
|
+
include Puppet::Interface::ActionManager
|
|
14
|
+
extend Puppet::Interface::ActionManager
|
|
15
|
+
|
|
16
|
+
require 'puppet/interface/option_manager'
|
|
17
|
+
include Puppet::Interface::OptionManager
|
|
18
|
+
extend Puppet::Interface::OptionManager
|
|
19
|
+
|
|
20
|
+
include Puppet::Util
|
|
21
|
+
|
|
22
|
+
class << self
|
|
23
|
+
# This is just so we can search for actions. We only use its
|
|
24
|
+
# list of directories to search.
|
|
25
|
+
# Can't we utilize an external autoloader, or simply use the $LOAD_PATH? -pvb
|
|
26
|
+
def autoloader
|
|
27
|
+
@autoloader ||= Puppet::Util::Autoload.new(:application, "puppet/face")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def faces
|
|
31
|
+
Puppet::Interface::FaceCollection.faces
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def register(instance)
|
|
35
|
+
Puppet::Interface::FaceCollection.register(instance)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def define(name, version, &block)
|
|
39
|
+
face = Puppet::Interface::FaceCollection[name, version]
|
|
40
|
+
if face.nil? then
|
|
41
|
+
face = self.new(name, version)
|
|
42
|
+
Puppet::Interface::FaceCollection.register(face)
|
|
43
|
+
# REVISIT: Shouldn't this be delayed until *after* we evaluate the
|
|
44
|
+
# current block, not done before? --daniel 2011-04-07
|
|
45
|
+
face.load_actions
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
face.instance_eval(&block) if block_given?
|
|
49
|
+
|
|
50
|
+
return face
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def face?(name, version)
|
|
54
|
+
Puppet::Interface::FaceCollection[name, version]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def [](name, version)
|
|
58
|
+
unless face = Puppet::Interface::FaceCollection[name, version]
|
|
59
|
+
if current = Puppet::Interface::FaceCollection[name, :current]
|
|
60
|
+
raise Puppet::Error, "Could not find version #{version} of #{name}"
|
|
61
|
+
else
|
|
62
|
+
raise Puppet::Error, "Could not find Puppet Face #{name.inspect}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
face
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def find_action(name, action, version = :current)
|
|
69
|
+
Puppet::Interface::FaceCollection.get_action_for_face(name, action, version)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def set_default_format(format)
|
|
74
|
+
Puppet.warning("set_default_format is deprecated (and ineffective); use render_as on your actions instead.")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
########################################################################
|
|
79
|
+
# Documentation. We currently have to rewrite both getters because we share
|
|
80
|
+
# the same instance between build-time and the runtime instance. When that
|
|
81
|
+
# splits out this should merge into a module that both the action and face
|
|
82
|
+
# include. --daniel 2011-04-17
|
|
83
|
+
def synopsis
|
|
84
|
+
build_synopsis self.name, '<action>'
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
########################################################################
|
|
89
|
+
attr_reader :name, :version
|
|
90
|
+
|
|
91
|
+
def initialize(name, version, &block)
|
|
92
|
+
unless SemVer.valid?(version)
|
|
93
|
+
raise ArgumentError, "Cannot create face #{name.inspect} with invalid version number '#{version}'!"
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
@name = Puppet::Interface::FaceCollection.underscorize(name)
|
|
97
|
+
@version = SemVer.new(version)
|
|
98
|
+
|
|
99
|
+
# The few bits of documentation we actually demand. The default license
|
|
100
|
+
# is a favour to our end users; if you happen to get that in a core face
|
|
101
|
+
# report it as a bug, please. --daniel 2011-04-26
|
|
102
|
+
@authors = []
|
|
103
|
+
@license = 'All Rights Reserved'
|
|
104
|
+
|
|
105
|
+
instance_eval(&block) if block_given?
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Try to find actions defined in other files.
|
|
109
|
+
def load_actions
|
|
110
|
+
Puppet::Interface.autoloader.search_directories.each do |dir|
|
|
111
|
+
Dir.glob(File.join(dir, "puppet/face/#{name}", "*.rb")).each do |file|
|
|
112
|
+
action = file.sub(dir, '').sub(/^[\\\/]/, '').sub(/\.rb/, '')
|
|
113
|
+
Puppet.debug "Loading action '#{action}' for '#{name}' from '#{dir}/#{action}.rb'"
|
|
114
|
+
require(action)
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def to_s
|
|
120
|
+
"Puppet::Face[#{name.inspect}, #{version.inspect}]"
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
########################################################################
|
|
124
|
+
# Action decoration, whee! You are not expected to care about this code,
|
|
125
|
+
# which exists to support face building and construction. I marked these
|
|
126
|
+
# private because the implementation is crude and ugly, and I don't yet know
|
|
127
|
+
# enough to work out how to make it clean.
|
|
128
|
+
#
|
|
129
|
+
# Once we have established that these methods will likely change radically,
|
|
130
|
+
# to be unrecognizable in the final outcome. At which point we will throw
|
|
131
|
+
# all this away, replace it with something nice, and work out if we should
|
|
132
|
+
# be making this visible to the outside world... --daniel 2011-04-14
|
|
133
|
+
private
|
|
134
|
+
def __invoke_decorations(type, action, passed_args = [], passed_options = {})
|
|
135
|
+
[:before, :after].member?(type) or fail "unknown decoration type #{type}"
|
|
136
|
+
|
|
137
|
+
# Collect the decoration methods matching our pass.
|
|
138
|
+
methods = action.options.select do |name|
|
|
139
|
+
passed_options.has_key? name
|
|
140
|
+
end.map do |name|
|
|
141
|
+
action.get_option(name).__decoration_name(type)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
methods.reverse! if type == :after
|
|
145
|
+
|
|
146
|
+
# Exceptions here should propagate up; this implements a hook we can use
|
|
147
|
+
# reasonably for option validation.
|
|
148
|
+
methods.each do |hook|
|
|
149
|
+
respond_to? hook and self.__send__(hook, action, passed_args, passed_options)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def __add_method(name, proc)
|
|
154
|
+
meta_def(name, &proc)
|
|
155
|
+
method(name).unbind
|
|
156
|
+
end
|
|
157
|
+
def self.__add_method(name, proc)
|
|
158
|
+
define_method(name, proc)
|
|
159
|
+
instance_method(name)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'puppet/util/classgen'
|
|
3
|
+
|
|
4
|
+
# Methods dealing with Type management. This module gets included into the
|
|
5
|
+
# Puppet::Type class, it's just split out here for clarity.
|
|
6
|
+
module Puppet::MetaType
|
|
7
|
+
module Manager
|
|
8
|
+
include Puppet::Util::ClassGen
|
|
9
|
+
|
|
10
|
+
# remove all type instances; this is mostly only useful for testing
|
|
11
|
+
def allclear
|
|
12
|
+
@types.each { |name, type|
|
|
13
|
+
type.clear
|
|
14
|
+
}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# iterate across all of the subclasses of Type
|
|
18
|
+
def eachtype
|
|
19
|
+
@types.each do |name, type|
|
|
20
|
+
# Only consider types that have names
|
|
21
|
+
#if ! type.parameters.empty? or ! type.validproperties.empty?
|
|
22
|
+
yield type
|
|
23
|
+
#end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Load all types. Only currently used for documentation.
|
|
28
|
+
def loadall
|
|
29
|
+
typeloader.loadall
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Define a new type.
|
|
33
|
+
def newtype(name, options = {}, &block)
|
|
34
|
+
# Handle backward compatibility
|
|
35
|
+
unless options.is_a?(Hash)
|
|
36
|
+
Puppet.warning "Puppet::Type.newtype(#{name}) now expects a hash as the second argument, not #{options.inspect}"
|
|
37
|
+
options = {:parent => options}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# First make sure we don't have a method sitting around
|
|
41
|
+
name = name.intern
|
|
42
|
+
newmethod = "new#{name}"
|
|
43
|
+
|
|
44
|
+
# Used for method manipulation.
|
|
45
|
+
selfobj = singleton_class
|
|
46
|
+
|
|
47
|
+
@types ||= {}
|
|
48
|
+
|
|
49
|
+
if @types.include?(name)
|
|
50
|
+
if self.respond_to?(newmethod)
|
|
51
|
+
# Remove the old newmethod
|
|
52
|
+
selfobj.send(:remove_method,newmethod)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
options = symbolize_options(options)
|
|
57
|
+
|
|
58
|
+
if parent = options[:parent]
|
|
59
|
+
options.delete(:parent)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Then create the class.
|
|
63
|
+
|
|
64
|
+
klass = genclass(
|
|
65
|
+
name,
|
|
66
|
+
:parent => (parent || Puppet::Type),
|
|
67
|
+
:overwrite => true,
|
|
68
|
+
:hash => @types,
|
|
69
|
+
:attributes => options,
|
|
70
|
+
&block
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
# Now define a "new<type>" method for convenience.
|
|
74
|
+
if self.respond_to? newmethod
|
|
75
|
+
# Refuse to overwrite existing methods like 'newparam' or 'newtype'.
|
|
76
|
+
Puppet.warning "'new#{name.to_s}' method already exists; skipping"
|
|
77
|
+
else
|
|
78
|
+
selfobj.send(:define_method, newmethod) do |*args|
|
|
79
|
+
klass.new(*args)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# If they've got all the necessary methods defined and they haven't
|
|
84
|
+
# already added the property, then do so now.
|
|
85
|
+
klass.ensurable if klass.ensurable? and ! klass.validproperty?(:ensure)
|
|
86
|
+
|
|
87
|
+
# Now set up autoload any providers that might exist for this type.
|
|
88
|
+
|
|
89
|
+
klass.providerloader = Puppet::Util::Autoload.new(klass, "puppet/provider/#{klass.name.to_s}")
|
|
90
|
+
|
|
91
|
+
# We have to load everything so that we can figure out the default provider.
|
|
92
|
+
klass.providerloader.loadall
|
|
93
|
+
klass.providify unless klass.providers.empty?
|
|
94
|
+
|
|
95
|
+
klass
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Remove an existing defined type. Largely used for testing.
|
|
99
|
+
def rmtype(name)
|
|
100
|
+
# Then create the class.
|
|
101
|
+
|
|
102
|
+
klass = rmclass(name, :hash => @types)
|
|
103
|
+
|
|
104
|
+
singleton_class.send(:remove_method, "new#{name}") if respond_to?("new#{name}")
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Return a Type instance by name.
|
|
108
|
+
def type(name)
|
|
109
|
+
@types ||= {}
|
|
110
|
+
|
|
111
|
+
# We are overwhelmingly symbols here, which usually match, so it is worth
|
|
112
|
+
# having this special-case to return quickly. Like, 25K to 300 symbols to
|
|
113
|
+
# strings in this method. --daniel 2012-07-17
|
|
114
|
+
return @types[name] if @types[name]
|
|
115
|
+
|
|
116
|
+
# Try mangling the name, if it is a string.
|
|
117
|
+
if name.is_a? String
|
|
118
|
+
name = name.downcase.intern
|
|
119
|
+
return @types[name] if @types[name]
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Try loading the type.
|
|
123
|
+
if typeloader.load(name, Puppet::Node::Environment.current)
|
|
124
|
+
Puppet.warning "Loaded puppet/type/#{name} but no class was created" unless @types.include? name
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# ...and I guess that is that, eh.
|
|
128
|
+
return @types[name]
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Create a loader for Puppet types.
|
|
132
|
+
def typeloader
|
|
133
|
+
unless defined?(@typeloader)
|
|
134
|
+
@typeloader = Puppet::Util::Autoload.new(self, "puppet/type", :wrap => false)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
@typeloader
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|