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,322 @@
|
|
|
1
|
+
require 'puppet/interface'
|
|
2
|
+
require 'puppet/interface/documentation'
|
|
3
|
+
require 'prettyprint'
|
|
4
|
+
|
|
5
|
+
class Puppet::Interface::Action
|
|
6
|
+
extend Puppet::Interface::DocGen
|
|
7
|
+
include Puppet::Interface::FullDocs
|
|
8
|
+
|
|
9
|
+
def initialize(face, name, attrs = {})
|
|
10
|
+
raise "#{name.inspect} is an invalid action name" unless name.to_s =~ /^[a-z]\w*$/
|
|
11
|
+
@face = face
|
|
12
|
+
@name = name.to_sym
|
|
13
|
+
|
|
14
|
+
# The few bits of documentation we actually demand. The default license
|
|
15
|
+
# is a favour to our end users; if you happen to get that in a core face
|
|
16
|
+
# report it as a bug, please. --daniel 2011-04-26
|
|
17
|
+
@authors = []
|
|
18
|
+
@license = 'All Rights Reserved'
|
|
19
|
+
|
|
20
|
+
attrs.each do |k, v| send("#{k}=", v) end
|
|
21
|
+
|
|
22
|
+
# @options collects the added options in the order they're declared.
|
|
23
|
+
# @options_hash collects the options keyed by alias for quick lookups.
|
|
24
|
+
@options = []
|
|
25
|
+
@options_hash = {}
|
|
26
|
+
@when_rendering = {}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# This is not nice, but it is the easiest way to make us behave like the
|
|
30
|
+
# Ruby Method object rather than UnboundMethod. Duplication is vaguely
|
|
31
|
+
# annoying, but at least we are a shallow clone. --daniel 2011-04-12
|
|
32
|
+
def __dup_and_rebind_to(to)
|
|
33
|
+
bound_version = self.dup
|
|
34
|
+
bound_version.instance_variable_set(:@face, to)
|
|
35
|
+
return bound_version
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def to_s() "#{@face}##{@name}" end
|
|
39
|
+
|
|
40
|
+
attr_reader :name
|
|
41
|
+
attr_reader :face
|
|
42
|
+
attr_accessor :default
|
|
43
|
+
def default?
|
|
44
|
+
!!@default
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
########################################################################
|
|
48
|
+
# Documentation...
|
|
49
|
+
attr_doc :returns
|
|
50
|
+
attr_doc :arguments
|
|
51
|
+
def synopsis
|
|
52
|
+
build_synopsis(@face.name, default? ? nil : name, arguments)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
########################################################################
|
|
56
|
+
# Support for rendering formats and all.
|
|
57
|
+
def when_rendering(type)
|
|
58
|
+
unless type.is_a? Symbol
|
|
59
|
+
raise ArgumentError, "The rendering format must be a symbol, not #{type.class.name}"
|
|
60
|
+
end
|
|
61
|
+
# Do we have a rendering hook for this name?
|
|
62
|
+
return @when_rendering[type].bind(@face) if @when_rendering.has_key? type
|
|
63
|
+
|
|
64
|
+
# How about by another name?
|
|
65
|
+
alt = type.to_s.sub(/^to_/, '').to_sym
|
|
66
|
+
return @when_rendering[alt].bind(@face) if @when_rendering.has_key? alt
|
|
67
|
+
|
|
68
|
+
# Guess not, nothing to run.
|
|
69
|
+
return nil
|
|
70
|
+
end
|
|
71
|
+
def set_rendering_method_for(type, proc)
|
|
72
|
+
unless proc.is_a? Proc
|
|
73
|
+
msg = "The second argument to set_rendering_method_for must be a Proc"
|
|
74
|
+
msg += ", not #{proc.class.name}" unless proc.nil?
|
|
75
|
+
raise ArgumentError, msg
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
if proc.arity != 1 and proc.arity != (@positional_arg_count + 1)
|
|
79
|
+
msg = "the when_rendering method for the #{@face.name} face #{name} action "
|
|
80
|
+
msg += "takes either just one argument, the result of when_invoked, "
|
|
81
|
+
msg += "or the result plus the #{@positional_arg_count} arguments passed "
|
|
82
|
+
msg += "to the when_invoked block, not "
|
|
83
|
+
if proc.arity < 0 then
|
|
84
|
+
msg += "a variable number"
|
|
85
|
+
else
|
|
86
|
+
msg += proc.arity.to_s
|
|
87
|
+
end
|
|
88
|
+
raise ArgumentError, msg
|
|
89
|
+
end
|
|
90
|
+
unless type.is_a? Symbol
|
|
91
|
+
raise ArgumentError, "The rendering format must be a symbol, not #{type.class.name}"
|
|
92
|
+
end
|
|
93
|
+
if @when_rendering.has_key? type then
|
|
94
|
+
raise ArgumentError, "You can't define a rendering method for #{type} twice"
|
|
95
|
+
end
|
|
96
|
+
# Now, the ugly bit. We add the method to our interface object, and
|
|
97
|
+
# retrieve it, to rotate through the dance of getting a suitable method
|
|
98
|
+
# object out of the whole process. --daniel 2011-04-18
|
|
99
|
+
@when_rendering[type] =
|
|
100
|
+
@face.__send__( :__add_method, __render_method_name_for(type), proc)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def __render_method_name_for(type)
|
|
104
|
+
:"#{name}_when_rendering_#{type}"
|
|
105
|
+
end
|
|
106
|
+
private :__render_method_name_for
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
attr_accessor :render_as
|
|
110
|
+
def render_as=(value)
|
|
111
|
+
@render_as = value.to_sym
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
########################################################################
|
|
116
|
+
# Initially, this was defined to allow the @action.invoke pattern, which is
|
|
117
|
+
# a very natural way to invoke behaviour given our introspection
|
|
118
|
+
# capabilities. Heck, our initial plan was to have the faces delegate to
|
|
119
|
+
# the action object for invocation and all.
|
|
120
|
+
#
|
|
121
|
+
# It turns out that we have a binding problem to solve: @face was bound to
|
|
122
|
+
# the parent class, not the subclass instance, and we don't pass the
|
|
123
|
+
# appropriate context or change the binding enough to make this work.
|
|
124
|
+
#
|
|
125
|
+
# We could hack around it, by either mandating that you pass the context in
|
|
126
|
+
# to invoke, or try to get the binding right, but that has probably got
|
|
127
|
+
# subtleties that we don't instantly think of – especially around threads.
|
|
128
|
+
#
|
|
129
|
+
# So, we are pulling this method for now, and will return it to life when we
|
|
130
|
+
# have the time to resolve the problem. For now, you should replace...
|
|
131
|
+
#
|
|
132
|
+
# @action = @face.get_action(name)
|
|
133
|
+
# @action.invoke(arg1, arg2, arg3)
|
|
134
|
+
#
|
|
135
|
+
# ...with...
|
|
136
|
+
#
|
|
137
|
+
# @action = @face.get_action(name)
|
|
138
|
+
# @face.send(@action.name, arg1, arg2, arg3)
|
|
139
|
+
#
|
|
140
|
+
# I understand that is somewhat cumbersome, but it functions as desired.
|
|
141
|
+
# --daniel 2011-03-31
|
|
142
|
+
#
|
|
143
|
+
# PS: This code is left present, but commented, to support this chunk of
|
|
144
|
+
# documentation, for the benefit of the reader.
|
|
145
|
+
#
|
|
146
|
+
# def invoke(*args, &block)
|
|
147
|
+
# @face.send(name, *args, &block)
|
|
148
|
+
# end
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
# We need to build an instance method as a wrapper, using normal code, to be
|
|
152
|
+
# able to expose argument defaulting between the caller and definer in the
|
|
153
|
+
# Ruby API. An extra method is, sadly, required for Ruby 1.8 to work since
|
|
154
|
+
# it doesn't expose bind on a block.
|
|
155
|
+
#
|
|
156
|
+
# Hopefully we can improve this when we finally shuffle off the last of Ruby
|
|
157
|
+
# 1.8 support, but that looks to be a few "enterprise" release eras away, so
|
|
158
|
+
# we are pretty stuck with this for now.
|
|
159
|
+
#
|
|
160
|
+
# Patches to make this work more nicely with Ruby 1.9 using runtime version
|
|
161
|
+
# checking and all are welcome, provided that they don't change anything
|
|
162
|
+
# outside this little ol' bit of code and all.
|
|
163
|
+
#
|
|
164
|
+
# Incidentally, we though about vendoring evil-ruby and actually adjusting
|
|
165
|
+
# the internal C structure implementation details under the hood to make
|
|
166
|
+
# this stuff work, because it would have been cleaner. Which gives you an
|
|
167
|
+
# idea how motivated we were to make this cleaner. Sorry.
|
|
168
|
+
# --daniel 2011-03-31
|
|
169
|
+
attr_reader :positional_arg_count
|
|
170
|
+
attr_accessor :when_invoked
|
|
171
|
+
def when_invoked=(block)
|
|
172
|
+
|
|
173
|
+
internal_name = "#{@name} implementation, required on Ruby 1.8".to_sym
|
|
174
|
+
|
|
175
|
+
arity = @positional_arg_count = block.arity
|
|
176
|
+
if arity == 0 then
|
|
177
|
+
# This will never fire on 1.8.7, which treats no arguments as "*args",
|
|
178
|
+
# but will on 1.9.2, which treats it as "no arguments". Which bites,
|
|
179
|
+
# because this just begs for us to wind up in the horrible situation
|
|
180
|
+
# where a 1.8 vs 1.9 error bites our end users. --daniel 2011-04-19
|
|
181
|
+
raise ArgumentError, "when_invoked requires at least one argument (options) for action #{@name}"
|
|
182
|
+
elsif arity > 0 then
|
|
183
|
+
range = Range.new(1, arity - 1)
|
|
184
|
+
decl = range.map { |x| "arg#{x}" } << "options = {}"
|
|
185
|
+
optn = ""
|
|
186
|
+
args = "[" + (range.map { |x| "arg#{x}" } << "options").join(", ") + "]"
|
|
187
|
+
else
|
|
188
|
+
range = Range.new(1, arity.abs - 1)
|
|
189
|
+
decl = range.map { |x| "arg#{x}" } << "*rest"
|
|
190
|
+
optn = "rest << {} unless rest.last.is_a?(Hash)"
|
|
191
|
+
if arity == -1 then
|
|
192
|
+
args = "rest"
|
|
193
|
+
else
|
|
194
|
+
args = "[" + range.map { |x| "arg#{x}" }.join(", ") + "] + rest"
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
file = __FILE__ + "+eval[wrapper]"
|
|
199
|
+
line = __LINE__ + 2 # <== points to the same line as 'def' in the wrapper.
|
|
200
|
+
wrapper = <<WRAPPER
|
|
201
|
+
def #{@name}(#{decl.join(", ")})
|
|
202
|
+
#{optn}
|
|
203
|
+
args = #{args}
|
|
204
|
+
action = get_action(#{name.inspect})
|
|
205
|
+
args << action.validate_and_clean(args.pop)
|
|
206
|
+
__invoke_decorations(:before, action, args, args.last)
|
|
207
|
+
rval = self.__send__(#{internal_name.inspect}, *args)
|
|
208
|
+
__invoke_decorations(:after, action, args, args.last)
|
|
209
|
+
return rval
|
|
210
|
+
end
|
|
211
|
+
WRAPPER
|
|
212
|
+
|
|
213
|
+
if @face.is_a?(Class)
|
|
214
|
+
@face.class_eval do eval wrapper, nil, file, line end
|
|
215
|
+
@face.send(:define_method, internal_name, &block)
|
|
216
|
+
@when_invoked = @face.instance_method(name)
|
|
217
|
+
else
|
|
218
|
+
@face.instance_eval do eval wrapper, nil, file, line end
|
|
219
|
+
@face.meta_def(internal_name, &block)
|
|
220
|
+
@when_invoked = @face.method(name).unbind
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def add_option(option)
|
|
225
|
+
option.aliases.each do |name|
|
|
226
|
+
if conflict = get_option(name) then
|
|
227
|
+
raise ArgumentError, "Option #{option} conflicts with existing option #{conflict}"
|
|
228
|
+
elsif conflict = @face.get_option(name) then
|
|
229
|
+
raise ArgumentError, "Option #{option} conflicts with existing option #{conflict} on #{@face}"
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
@options << option.name
|
|
234
|
+
|
|
235
|
+
option.aliases.each do |name|
|
|
236
|
+
@options_hash[name] = option
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
option
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
def option?(name)
|
|
243
|
+
@options_hash.include? name.to_sym
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
def options
|
|
247
|
+
@face.options + @options
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
def get_option(name, with_inherited_options = true)
|
|
251
|
+
option = @options_hash[name.to_sym]
|
|
252
|
+
if option.nil? and with_inherited_options
|
|
253
|
+
option = @face.get_option(name)
|
|
254
|
+
end
|
|
255
|
+
option
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
def validate_and_clean(original)
|
|
259
|
+
# The final set of arguments; effectively a hand-rolled shallow copy of
|
|
260
|
+
# the original, which protects the caller from the surprises they might
|
|
261
|
+
# get if they passed us a hash and we mutated it...
|
|
262
|
+
result = {}
|
|
263
|
+
|
|
264
|
+
# Check for multiple aliases for the same option, and canonicalize the
|
|
265
|
+
# name of the argument while we are about it.
|
|
266
|
+
overlap = Hash.new do |h, k| h[k] = [] end
|
|
267
|
+
unknown = []
|
|
268
|
+
original.keys.each do |name|
|
|
269
|
+
if option = get_option(name) then
|
|
270
|
+
canonical = option.name
|
|
271
|
+
if result.has_key? canonical
|
|
272
|
+
overlap[canonical] << name
|
|
273
|
+
else
|
|
274
|
+
result[canonical] = original[name]
|
|
275
|
+
end
|
|
276
|
+
elsif Puppet.settings.include? name
|
|
277
|
+
result[name] = original[name]
|
|
278
|
+
else
|
|
279
|
+
unknown << name
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
unless overlap.empty?
|
|
284
|
+
msg = overlap.map {|k, v| "(#{k}, #{v.sort.join(', ')})" }.join(", ")
|
|
285
|
+
raise ArgumentError, "Multiple aliases for the same option passed: #{msg}"
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
unless unknown.empty?
|
|
289
|
+
msg = unknown.sort.join(", ")
|
|
290
|
+
raise ArgumentError, "Unknown options passed: #{msg}"
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
# Inject default arguments and check for missing mandating options.
|
|
294
|
+
missing = []
|
|
295
|
+
options.map {|x| get_option(x) }.each do |option|
|
|
296
|
+
name = option.name
|
|
297
|
+
next if result.has_key? name
|
|
298
|
+
|
|
299
|
+
if option.has_default?
|
|
300
|
+
result[name] = option.default
|
|
301
|
+
elsif option.required?
|
|
302
|
+
missing << name
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
unless missing.empty?
|
|
307
|
+
msg = missing.sort.join(', ')
|
|
308
|
+
raise ArgumentError, "The following options are required: #{msg}"
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
# All done.
|
|
312
|
+
return result
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
########################################################################
|
|
316
|
+
# Support code for action decoration; see puppet/interface.rb for the gory
|
|
317
|
+
# details of why this is hidden away behind private. --daniel 2011-04-15
|
|
318
|
+
private
|
|
319
|
+
def __add_method(name, proc)
|
|
320
|
+
@face.__send__ :__add_method, name, proc
|
|
321
|
+
end
|
|
322
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'puppet/interface'
|
|
2
|
+
require 'puppet/interface/action'
|
|
3
|
+
|
|
4
|
+
class Puppet::Interface::ActionBuilder
|
|
5
|
+
attr_reader :action
|
|
6
|
+
|
|
7
|
+
def self.build(face, name, &block)
|
|
8
|
+
raise "Action #{name.inspect} must specify a block" unless block
|
|
9
|
+
new(face, name, &block).action
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Ideally the method we're defining here would be added to the action, and a
|
|
13
|
+
# method on the face would defer to it, but we can't get scope correct, so
|
|
14
|
+
# we stick with this. --daniel 2011-03-24
|
|
15
|
+
def when_invoked(&block)
|
|
16
|
+
@action.when_invoked = block
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def when_rendering(type = nil, &block)
|
|
20
|
+
if type.nil? then # the default error message sucks --daniel 2011-04-18
|
|
21
|
+
raise ArgumentError, 'You must give a rendering format to when_rendering'
|
|
22
|
+
end
|
|
23
|
+
if block.nil? then
|
|
24
|
+
raise ArgumentError, 'You must give a block to when_rendering'
|
|
25
|
+
end
|
|
26
|
+
@action.set_rendering_method_for(type, block)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def option(*declaration, &block)
|
|
30
|
+
option = Puppet::Interface::OptionBuilder.build(@action, *declaration, &block)
|
|
31
|
+
@action.add_option(option)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def default(value = true)
|
|
35
|
+
@action.default = !!value
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def render_as(value = nil)
|
|
39
|
+
value.nil? and raise ArgumentError, "You must give a rendering format to render_as"
|
|
40
|
+
|
|
41
|
+
formats = Puppet::Network::FormatHandler.formats
|
|
42
|
+
unless formats.include? value
|
|
43
|
+
raise ArgumentError, "#{value.inspect} is not a valid rendering format: #{formats.sort.join(", ")}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
@action.render_as = value
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Metaprogram the simple DSL from the target class.
|
|
50
|
+
Puppet::Interface::Action.instance_methods.grep(/=$/).each do |setter|
|
|
51
|
+
next if setter =~ /^=/
|
|
52
|
+
property = setter.to_s.chomp('=')
|
|
53
|
+
|
|
54
|
+
unless method_defined? property
|
|
55
|
+
# Using eval because the argument handling semantics are less awful than
|
|
56
|
+
# when we use the define_method/block version. The later warns on older
|
|
57
|
+
# Ruby versions if you pass the wrong number of arguments, but carries
|
|
58
|
+
# on, which is totally not what we want. --daniel 2011-04-18
|
|
59
|
+
eval <<-METHOD
|
|
60
|
+
def #{property}(value)
|
|
61
|
+
@action.#{property} = value
|
|
62
|
+
end
|
|
63
|
+
METHOD
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
def initialize(face, name, &block)
|
|
69
|
+
@face = face
|
|
70
|
+
@action = Puppet::Interface::Action.new(face, name)
|
|
71
|
+
instance_eval(&block)
|
|
72
|
+
@action.when_invoked or raise ArgumentError, "actions need to know what to do when_invoked; please add the block"
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'puppet/interface/action'
|
|
2
|
+
require 'puppet/interface/action_builder'
|
|
3
|
+
|
|
4
|
+
module Puppet::Interface::ActionManager
|
|
5
|
+
# Declare that this app can take a specific action, and provide
|
|
6
|
+
# the code to do so.
|
|
7
|
+
def action(name, &block)
|
|
8
|
+
@actions ||= {}
|
|
9
|
+
raise "Action #{name} already defined for #{self}" if action?(name)
|
|
10
|
+
|
|
11
|
+
action = Puppet::Interface::ActionBuilder.build(self, name, &block)
|
|
12
|
+
|
|
13
|
+
if action.default and current = get_default_action
|
|
14
|
+
raise "Actions #{current.name} and #{name} cannot both be default"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
@actions[action.name] = action
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# This is the short-form of an action definition; it doesn't use the
|
|
21
|
+
# builder, just creates the action directly from the block.
|
|
22
|
+
def script(name, &block)
|
|
23
|
+
@actions ||= {}
|
|
24
|
+
raise "Action #{name} already defined for #{self}" if action?(name)
|
|
25
|
+
@actions[name] = Puppet::Interface::Action.new(self, name, :when_invoked => block)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def actions
|
|
29
|
+
@actions ||= {}
|
|
30
|
+
result = @actions.keys
|
|
31
|
+
|
|
32
|
+
if self.is_a?(Class) and superclass.respond_to?(:actions)
|
|
33
|
+
result += superclass.actions
|
|
34
|
+
elsif self.class.respond_to?(:actions)
|
|
35
|
+
result += self.class.actions
|
|
36
|
+
end
|
|
37
|
+
# We need to uniq the result, because we duplicate actions when they are
|
|
38
|
+
# fetched to ensure that they have the correct bindings; they shadow the
|
|
39
|
+
# parent, and uniq implements that. --daniel 2011-06-01
|
|
40
|
+
result.uniq.sort
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def get_action(name)
|
|
44
|
+
@actions ||= {}
|
|
45
|
+
result = @actions[name.to_sym]
|
|
46
|
+
if result.nil?
|
|
47
|
+
if self.is_a?(Class) and superclass.respond_to?(:get_action)
|
|
48
|
+
found = superclass.get_action(name)
|
|
49
|
+
elsif self.class.respond_to?(:get_action)
|
|
50
|
+
found = self.class.get_action(name)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
if found then
|
|
54
|
+
# This is not the nicest way to make action equivalent to the Ruby
|
|
55
|
+
# Method object, rather than UnboundMethod, but it will do for now,
|
|
56
|
+
# and we only have to make this change in *one* place. --daniel 2011-04-12
|
|
57
|
+
result = @actions[name.to_sym] = found.__dup_and_rebind_to(self)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
return result
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def get_default_action
|
|
64
|
+
default = actions.map {|x| get_action(x) }.select {|x| x.default }
|
|
65
|
+
if default.length > 1
|
|
66
|
+
raise "The actions #{default.map(&:name).join(", ")} cannot all be default"
|
|
67
|
+
end
|
|
68
|
+
default.first
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def action?(name)
|
|
72
|
+
actions.include?(name.to_sym)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# This isn't usable outside Puppet::Interface; don't load it alone.
|
|
2
|
+
class Puppet::Interface
|
|
3
|
+
module DocGen
|
|
4
|
+
def self.strip_whitespace(text)
|
|
5
|
+
text.gsub!(/[ \t\f]+$/, '')
|
|
6
|
+
|
|
7
|
+
# We need to identify an indent: the minimum number of whitespace
|
|
8
|
+
# characters at the start of any line in the text.
|
|
9
|
+
#
|
|
10
|
+
# Using split rather than each_line is because the later only takes a
|
|
11
|
+
# block on Ruby 1.8.5 / Centos, and we support that. --daniel 2011-05-03
|
|
12
|
+
indent = text.split(/\n/).map {|x| x.index(/[^\s]/) }.compact.min
|
|
13
|
+
|
|
14
|
+
if indent > 0 then
|
|
15
|
+
text.gsub!(/^[ \t\f]{0,#{indent}}/, '')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
return text
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# The documentation attributes all have some common behaviours; previously
|
|
22
|
+
# we open-coded them across the set of six things, but that seemed
|
|
23
|
+
# wasteful - especially given that they were literally the same, and had
|
|
24
|
+
# the same bug hidden in them.
|
|
25
|
+
#
|
|
26
|
+
# This feels a bit like overkill, but at least the common code is common
|
|
27
|
+
# now. --daniel 2011-04-29
|
|
28
|
+
def attr_doc(name, &validate)
|
|
29
|
+
# Now, which form of the setter do we want, validated or not?
|
|
30
|
+
get_arg = "value.to_s"
|
|
31
|
+
if validate
|
|
32
|
+
define_method(:"_validate_#{name}", validate)
|
|
33
|
+
get_arg = "_validate_#{name}(#{get_arg})"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# We use module_eval, which I don't like much, because we can't have an
|
|
37
|
+
# argument to a block with a default value in Ruby 1.8, and I don't like
|
|
38
|
+
# the side-effects (eg: no argument count validation) of using blocks
|
|
39
|
+
# without as metheds. When we are 1.9 only (hah!) you can totally
|
|
40
|
+
# replace this with some up-and-up define_method. --daniel 2011-04-29
|
|
41
|
+
module_eval(<<-EOT, __FILE__, __LINE__ + 1)
|
|
42
|
+
def #{name}(value = nil)
|
|
43
|
+
self.#{name} = value unless value.nil?
|
|
44
|
+
@#{name}
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def #{name}=(value)
|
|
48
|
+
@#{name} = Puppet::Interface::DocGen.strip_whitespace(#{get_arg})
|
|
49
|
+
end
|
|
50
|
+
EOT
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
module TinyDocs
|
|
55
|
+
extend Puppet::Interface::DocGen
|
|
56
|
+
|
|
57
|
+
attr_doc :summary do |value|
|
|
58
|
+
value =~ /\n/ and
|
|
59
|
+
raise ArgumentError, "Face summary should be a single line; put the long text in 'description' instead."
|
|
60
|
+
value
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
attr_doc :description
|
|
64
|
+
|
|
65
|
+
def build_synopsis(face, action = nil, arguments = nil)
|
|
66
|
+
output = PrettyPrint.format do |s|
|
|
67
|
+
s.text("puppet #{face}")
|
|
68
|
+
s.text(" #{action}") unless action.nil?
|
|
69
|
+
s.text(" ")
|
|
70
|
+
|
|
71
|
+
options.each do |option|
|
|
72
|
+
option = get_option(option)
|
|
73
|
+
wrap = option.required? ? %w{ < > } : %w{ [ ] }
|
|
74
|
+
|
|
75
|
+
s.group(0, *wrap) do
|
|
76
|
+
option.optparse.each do |item|
|
|
77
|
+
unless s.current_group.first?
|
|
78
|
+
s.breakable
|
|
79
|
+
s.text '|'
|
|
80
|
+
s.breakable
|
|
81
|
+
end
|
|
82
|
+
s.text item
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
s.breakable
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
if arguments then
|
|
90
|
+
s.text arguments.to_s
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
module FullDocs
|
|
98
|
+
extend Puppet::Interface::DocGen
|
|
99
|
+
include TinyDocs
|
|
100
|
+
|
|
101
|
+
attr_doc :examples
|
|
102
|
+
attr_doc :notes
|
|
103
|
+
attr_doc :license
|
|
104
|
+
|
|
105
|
+
attr_doc :short_description
|
|
106
|
+
def short_description(value = nil)
|
|
107
|
+
self.short_description = value unless value.nil?
|
|
108
|
+
if @short_description.nil? then
|
|
109
|
+
return nil if @description.nil?
|
|
110
|
+
lines = @description.split("\n")
|
|
111
|
+
first_paragraph_break = lines.index('') || 5
|
|
112
|
+
grab = [5, first_paragraph_break].min
|
|
113
|
+
@short_description = lines[0, grab].join("\n")
|
|
114
|
+
@short_description += ' [...]' if (grab < lines.length and first_paragraph_break >= 5)
|
|
115
|
+
end
|
|
116
|
+
@short_description
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def author(value = nil)
|
|
120
|
+
unless value.nil? then
|
|
121
|
+
unless value.is_a? String
|
|
122
|
+
raise ArgumentError, 'author must be a string; use multiple statements for multiple authors'
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
if value =~ /\n/ then
|
|
126
|
+
raise ArgumentError, 'author should be a single line; use multiple statements for multiple authors'
|
|
127
|
+
end
|
|
128
|
+
@authors.push(Puppet::Interface::DocGen.strip_whitespace(value))
|
|
129
|
+
end
|
|
130
|
+
@authors.empty? ? nil : @authors.join("\n")
|
|
131
|
+
end
|
|
132
|
+
def authors
|
|
133
|
+
@authors
|
|
134
|
+
end
|
|
135
|
+
def author=(value)
|
|
136
|
+
if Array(value).any? {|x| x =~ /\n/ } then
|
|
137
|
+
raise ArgumentError, 'author should be a single line; use multiple statements'
|
|
138
|
+
end
|
|
139
|
+
@authors = Array(value).map{|x| Puppet::Interface::DocGen.strip_whitespace(x) }
|
|
140
|
+
end
|
|
141
|
+
alias :authors= :author=
|
|
142
|
+
|
|
143
|
+
def copyright(owner = nil, years = nil)
|
|
144
|
+
if years.nil? and not owner.nil? then
|
|
145
|
+
raise ArgumentError, 'copyright takes the owners names, then the years covered'
|
|
146
|
+
end
|
|
147
|
+
self.copyright_owner = owner unless owner.nil?
|
|
148
|
+
self.copyright_years = years unless years.nil?
|
|
149
|
+
|
|
150
|
+
if self.copyright_years or self.copyright_owner then
|
|
151
|
+
"Copyright #{self.copyright_years} by #{self.copyright_owner}"
|
|
152
|
+
else
|
|
153
|
+
"Unknown copyright owner and years."
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
attr_accessor :copyright_owner
|
|
158
|
+
def copyright_owner=(value)
|
|
159
|
+
case value
|
|
160
|
+
when String then @copyright_owner = value
|
|
161
|
+
when Array then @copyright_owner = value.join(", ")
|
|
162
|
+
else
|
|
163
|
+
raise ArgumentError, "copyright owner must be a string or an array of strings"
|
|
164
|
+
end
|
|
165
|
+
@copyright_owner
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
attr_accessor :copyright_years
|
|
169
|
+
def copyright_years=(value)
|
|
170
|
+
years = munge_copyright_year value
|
|
171
|
+
years = (years.is_a?(Array) ? years : [years]).
|
|
172
|
+
sort_by do |x| x.is_a?(Range) ? x.first : x end
|
|
173
|
+
|
|
174
|
+
@copyright_years = years.map do |year|
|
|
175
|
+
if year.is_a? Range then
|
|
176
|
+
"#{year.first}-#{year.last}"
|
|
177
|
+
else
|
|
178
|
+
year
|
|
179
|
+
end
|
|
180
|
+
end.join(", ")
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def munge_copyright_year(input)
|
|
184
|
+
case input
|
|
185
|
+
when Range then input
|
|
186
|
+
when Integer then
|
|
187
|
+
if input < 1970 then
|
|
188
|
+
fault = "before 1970"
|
|
189
|
+
elsif input > (future = Time.now.year + 2) then
|
|
190
|
+
fault = "after #{future}"
|
|
191
|
+
end
|
|
192
|
+
if fault then
|
|
193
|
+
raise ArgumentError, "copyright with a year #{fault} is very strange; did you accidentally add or subtract two years?"
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
input
|
|
197
|
+
|
|
198
|
+
when String then
|
|
199
|
+
input.strip.split(/,/).map do |part|
|
|
200
|
+
part = part.strip
|
|
201
|
+
if part =~ /^\d+$/ then
|
|
202
|
+
part.to_i
|
|
203
|
+
elsif found = part.split(/-/) then
|
|
204
|
+
unless found.length == 2 and found.all? {|x| x.strip =~ /^\d+$/ }
|
|
205
|
+
raise ArgumentError, "#{part.inspect} is not a good copyright year or range"
|
|
206
|
+
end
|
|
207
|
+
Range.new(found[0].to_i, found[1].to_i)
|
|
208
|
+
else
|
|
209
|
+
raise ArgumentError, "#{part.inspect} is not a good copyright year or range"
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
when Array then
|
|
214
|
+
result = []
|
|
215
|
+
input.each do |item|
|
|
216
|
+
item = munge_copyright_year item
|
|
217
|
+
if item.is_a? Array
|
|
218
|
+
result.concat item
|
|
219
|
+
else
|
|
220
|
+
result << item
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
result
|
|
224
|
+
|
|
225
|
+
else
|
|
226
|
+
raise ArgumentError, "#{input.inspect} is not a good copyright year, set, or range"
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|