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,168 @@
|
|
|
1
|
+
# Provides feature definitions.
|
|
2
|
+
require 'puppet/util/methodhelper'
|
|
3
|
+
require 'puppet/util/docs'
|
|
4
|
+
require 'puppet/util'
|
|
5
|
+
module Puppet::Util::ProviderFeatures
|
|
6
|
+
include Puppet::Util::Docs
|
|
7
|
+
# The class that models the features and handles checking whether the features
|
|
8
|
+
# are present.
|
|
9
|
+
class ProviderFeature
|
|
10
|
+
include Puppet::Util
|
|
11
|
+
include Puppet::Util::MethodHelper
|
|
12
|
+
include Puppet::Util::Docs
|
|
13
|
+
attr_accessor :name, :docs, :methods
|
|
14
|
+
|
|
15
|
+
# Are all of the requirements met?
|
|
16
|
+
def available?(obj)
|
|
17
|
+
if self.methods
|
|
18
|
+
return !!methods_available?(obj)
|
|
19
|
+
else
|
|
20
|
+
# In this case, the provider has to declare support for this
|
|
21
|
+
# feature, and that's been checked before we ever get to the
|
|
22
|
+
# method checks.
|
|
23
|
+
return false
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def initialize(name, docs, hash)
|
|
28
|
+
self.name = name.intern
|
|
29
|
+
self.docs = docs
|
|
30
|
+
hash = symbolize_options(hash)
|
|
31
|
+
set_options(hash)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
# Are all of the required methods available?
|
|
37
|
+
def methods_available?(obj)
|
|
38
|
+
methods.each do |m|
|
|
39
|
+
if obj.is_a?(Class)
|
|
40
|
+
return false unless obj.public_method_defined?(m)
|
|
41
|
+
else
|
|
42
|
+
return false unless obj.respond_to?(m)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
true
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Define one or more features. At a minimum, features require a name
|
|
50
|
+
# and docs, and at this point they should also specify a list of methods
|
|
51
|
+
# required to determine if the feature is present.
|
|
52
|
+
def feature(name, docs, hash = {})
|
|
53
|
+
@features ||= {}
|
|
54
|
+
raise(Puppet::DevError, "Feature #{name} is already defined") if @features.include?(name)
|
|
55
|
+
begin
|
|
56
|
+
obj = ProviderFeature.new(name, docs, hash)
|
|
57
|
+
@features[obj.name] = obj
|
|
58
|
+
rescue ArgumentError => detail
|
|
59
|
+
error = ArgumentError.new(
|
|
60
|
+
"Could not create feature #{name}: #{detail}"
|
|
61
|
+
)
|
|
62
|
+
error.set_backtrace(detail.backtrace)
|
|
63
|
+
raise error
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Return a hash of all feature documentation.
|
|
68
|
+
def featuredocs
|
|
69
|
+
str = ""
|
|
70
|
+
@features ||= {}
|
|
71
|
+
return nil if @features.empty?
|
|
72
|
+
names = @features.keys.sort { |a,b| a.to_s <=> b.to_s }
|
|
73
|
+
names.each do |name|
|
|
74
|
+
doc = @features[name].docs.gsub(/\n\s+/, " ")
|
|
75
|
+
str += "- *#{name}*: #{doc}\n"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
if providers.length > 0
|
|
79
|
+
headers = ["Provider", names].flatten
|
|
80
|
+
data = {}
|
|
81
|
+
providers.each do |provname|
|
|
82
|
+
data[provname] = []
|
|
83
|
+
prov = provider(provname)
|
|
84
|
+
names.each do |name|
|
|
85
|
+
if prov.feature?(name)
|
|
86
|
+
data[provname] << "*X*"
|
|
87
|
+
else
|
|
88
|
+
data[provname] << ""
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
str += doctable(headers, data)
|
|
93
|
+
end
|
|
94
|
+
str
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Return a list of features.
|
|
98
|
+
def features
|
|
99
|
+
@features ||= {}
|
|
100
|
+
@features.keys
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Generate a module that sets up the boolean methods to test for given
|
|
104
|
+
# features.
|
|
105
|
+
def feature_module
|
|
106
|
+
unless defined?(@feature_module)
|
|
107
|
+
@features ||= {}
|
|
108
|
+
@feature_module = ::Module.new
|
|
109
|
+
const_set("FeatureModule", @feature_module)
|
|
110
|
+
features = @features
|
|
111
|
+
# Create a feature? method that can be passed a feature name and
|
|
112
|
+
# determine if the feature is present.
|
|
113
|
+
@feature_module.send(:define_method, :feature?) do |name|
|
|
114
|
+
method = name.to_s + "?"
|
|
115
|
+
return !!(respond_to?(method) and send(method))
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Create a method that will list all functional features.
|
|
119
|
+
@feature_module.send(:define_method, :features) do
|
|
120
|
+
return false unless defined?(features)
|
|
121
|
+
features.keys.find_all { |n| feature?(n) }.sort { |a,b|
|
|
122
|
+
a.to_s <=> b.to_s
|
|
123
|
+
}
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Create a method that will determine if a provided list of
|
|
127
|
+
# features are satisfied by the curred provider.
|
|
128
|
+
@feature_module.send(:define_method, :satisfies?) do |*needed|
|
|
129
|
+
ret = true
|
|
130
|
+
needed.flatten.each do |feature|
|
|
131
|
+
unless feature?(feature)
|
|
132
|
+
ret = false
|
|
133
|
+
break
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
ret
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Create a boolean method for each feature so you can test them
|
|
140
|
+
# individually as you might need.
|
|
141
|
+
@features.each do |name, feature|
|
|
142
|
+
method = name.to_s + "?"
|
|
143
|
+
@feature_module.send(:define_method, method) do
|
|
144
|
+
(is_a?(Class) ? declared_feature?(name) : self.class.declared_feature?(name)) or feature.available?(self)
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Allow the provider to declare that it has a given feature.
|
|
149
|
+
@feature_module.send(:define_method, :has_features) do |*names|
|
|
150
|
+
@declared_features ||= []
|
|
151
|
+
names.each do |name|
|
|
152
|
+
@declared_features << name.intern
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
# Aaah, grammatical correctness
|
|
156
|
+
@feature_module.send(:alias_method, :has_feature, :has_features)
|
|
157
|
+
end
|
|
158
|
+
@feature_module
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Return the actual provider feature instance. Really only used for testing.
|
|
162
|
+
def provider_feature(name)
|
|
163
|
+
return nil unless defined?(@features)
|
|
164
|
+
|
|
165
|
+
@features[name]
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# A simple module to provide consistency between how we use PSON and how
|
|
2
|
+
# ruby expects it to be used. Basically, we don't want to require
|
|
3
|
+
# that the sender specify a class.
|
|
4
|
+
# Ruby wants everyone to provide a 'type' field, and the PSON support
|
|
5
|
+
# requires such a field to track the class down. Because we use our URL to
|
|
6
|
+
# figure out what class we're working on, we don't need that, and we don't want
|
|
7
|
+
# our consumers and producers to need to know anything about our internals.
|
|
8
|
+
module Puppet::Util::Pson
|
|
9
|
+
def pson_create(pson)
|
|
10
|
+
raise ArgumentError, "No data provided in pson data" unless pson['data']
|
|
11
|
+
from_pson(pson['data'])
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'puppet/util/queue'
|
|
2
|
+
require 'stomp'
|
|
3
|
+
require 'uri'
|
|
4
|
+
|
|
5
|
+
# Implements the Ruby Stomp client as a queue type within the
|
|
6
|
+
# Puppet::Indirector::Queue::Client registry, for use with the <tt>:queue</tt>
|
|
7
|
+
# indirection terminus type.
|
|
8
|
+
#
|
|
9
|
+
# Looks to <tt>Puppet[:queue_source]</tt> for the sole argument to the
|
|
10
|
+
# underlying Stomp::Client constructor; consequently, for this client to work,
|
|
11
|
+
# <tt>Puppet[:queue_source]</tt> must use the Stomp::Client URL-like syntax
|
|
12
|
+
# for identifying the Stomp message broker: <em>login:pass@host.port</em>
|
|
13
|
+
class Puppet::Util::Queue::Stomp
|
|
14
|
+
attr_accessor :stomp_client
|
|
15
|
+
|
|
16
|
+
def initialize
|
|
17
|
+
begin
|
|
18
|
+
uri = URI.parse(Puppet[:queue_source])
|
|
19
|
+
rescue => detail
|
|
20
|
+
raise ArgumentError, "Could not create Stomp client instance - queue source #{Puppet[:queue_source]} is invalid: #{detail}"
|
|
21
|
+
end
|
|
22
|
+
unless uri.scheme == "stomp"
|
|
23
|
+
raise ArgumentError, "Could not create Stomp client instance - queue source #{Puppet[:queue_source]} is not a Stomp URL: #{detail}"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
begin
|
|
27
|
+
self.stomp_client = Stomp::Client.new(uri.user, uri.password, uri.host, uri.port, true)
|
|
28
|
+
rescue => detail
|
|
29
|
+
raise ArgumentError, "Could not create Stomp client instance with queue source #{Puppet[:queue_source]}: got internal Stomp client error #{detail}"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Identify the supported method for sending messages.
|
|
33
|
+
@method =
|
|
34
|
+
case
|
|
35
|
+
when stomp_client.respond_to?(:publish)
|
|
36
|
+
:publish
|
|
37
|
+
when stomp_client.respond_to?(:send)
|
|
38
|
+
:send
|
|
39
|
+
else
|
|
40
|
+
raise ArgumentError, "STOMP client does not respond to either publish or send"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def publish_message(target, msg)
|
|
45
|
+
stomp_client.__send__(@method, stompify_target(target), msg, :persistent => true)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def subscribe(target)
|
|
49
|
+
stomp_client.subscribe(stompify_target(target), :ack => :client) do |stomp_message|
|
|
50
|
+
yield(stomp_message.body)
|
|
51
|
+
stomp_client.acknowledge(stomp_message)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def stompify_target(target)
|
|
56
|
+
'/queue/' + target.to_s
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
Puppet::Util::Queue.register_queue_type(self, :stomp)
|
|
60
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
|
|
2
|
+
require 'puppet/indirector'
|
|
3
|
+
require 'puppet/util/instance_loader'
|
|
4
|
+
|
|
5
|
+
# Implements a message queue client type plugin registry for use by the indirector facility.
|
|
6
|
+
# Client modules for speaking a particular protocol (e.g. Stomp::Client for Stomp message
|
|
7
|
+
# brokers, Memcached for Starling and Sparrow, etc.) register themselves with this module.
|
|
8
|
+
#
|
|
9
|
+
# Client classes are expected to live under the Puppet::Util::Queue namespace and corresponding
|
|
10
|
+
# directory; the attempted use of a client via its typename (see below) will cause Puppet::Util::Queue
|
|
11
|
+
# to attempt to load the corresponding plugin if it is not yet loaded. The client class registers itself
|
|
12
|
+
# with Puppet::Util::Queue and should use the same type name as the autloader expects for the plugin file.
|
|
13
|
+
# class Puppet::Util::Queue::SpecialMagicalClient < Messaging::SpecialMagic
|
|
14
|
+
# ...
|
|
15
|
+
# Puppet::Util::Queue.register_queue_type_class(self)
|
|
16
|
+
# end
|
|
17
|
+
#
|
|
18
|
+
# This module reduces the rightmost segment of the class name into a pretty symbol that will
|
|
19
|
+
# serve as the queuing client's name. Which means that the "SpecialMagicalClient" above will
|
|
20
|
+
# be named <em>:special_magical_client</em> within the registry.
|
|
21
|
+
#
|
|
22
|
+
# Another class/module may mix-in this module, and may then make use of the registered clients.
|
|
23
|
+
# class Queue::Fue
|
|
24
|
+
# # mix it in at the class object level rather than instance level
|
|
25
|
+
# extend ::Puppet::Util::Queue
|
|
26
|
+
# end
|
|
27
|
+
#
|
|
28
|
+
# Queue::Fue instances can get a message queue client through the registry through the mixed-in method
|
|
29
|
+
# +client+, which will return a class-wide singleton client instance, determined by +client_class+.
|
|
30
|
+
#
|
|
31
|
+
# The client plugins are expected to implement an interface similar to that of Stomp::Client:
|
|
32
|
+
# * <tt>new</tt> should return a connected, ready-to-go client instance. Note that no arguments are passed in.
|
|
33
|
+
# * <tt>publish_message(queue, message)</tt> should publish the _message_ to the specified _queue_.
|
|
34
|
+
# * <tt>subscribe(queue)</tt> _block_ subscribes to _queue_ and executes _block_ upon receiving a message.
|
|
35
|
+
# * _queue_ names are simple names independent of the message broker or client library. No "/queue/" prefixes like in Stomp::Client.
|
|
36
|
+
module Puppet::Util::Queue
|
|
37
|
+
extend Puppet::Util::InstanceLoader
|
|
38
|
+
instance_load :queue_clients, 'puppet/util/queue'
|
|
39
|
+
|
|
40
|
+
# Adds a new class/queue-type pair to the registry. The _type_ argument is optional; if not provided,
|
|
41
|
+
# _type_ defaults to a lowercased, underscored symbol programmatically derived from the rightmost
|
|
42
|
+
# namespace of <em>klass.name</em>.
|
|
43
|
+
#
|
|
44
|
+
# # register with default name +:you+
|
|
45
|
+
# register_queue_type(Foo::You)
|
|
46
|
+
#
|
|
47
|
+
# # register with explicit queue type name +:myself+
|
|
48
|
+
# register_queue_type(Foo::Me, :myself)
|
|
49
|
+
#
|
|
50
|
+
# If the type is already registered, an exception is thrown. No checking is performed of _klass_,
|
|
51
|
+
# however; a given class could be registered any number of times, as long as the _type_ differs with
|
|
52
|
+
# each registration.
|
|
53
|
+
def self.register_queue_type(klass, type = nil)
|
|
54
|
+
type ||= queue_type_from_class(klass)
|
|
55
|
+
raise Puppet::Error, "Queue type #{type} is already registered" if instance_hash(:queue_clients).include?(type)
|
|
56
|
+
instance_hash(:queue_clients)[type] = klass
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Given a queue type symbol, returns the associated +Class+ object. If the queue type is unknown
|
|
60
|
+
# (meaning it hasn't been registered with this module), an exception is thrown.
|
|
61
|
+
def self.queue_type_to_class(type)
|
|
62
|
+
c = loaded_instance :queue_clients, type
|
|
63
|
+
raise Puppet::Error, "Queue type #{type} is unknown." unless c
|
|
64
|
+
c
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Given a class object _klass_, returns the programmatic default queue type name symbol for _klass_.
|
|
68
|
+
# The algorithm is as shown in earlier examples; the last namespace segment of _klass.name_ is taken
|
|
69
|
+
# and converted from mixed case to underscore-separated lowercase, and interned.
|
|
70
|
+
# queue_type_from_class(Foo) -> :foo
|
|
71
|
+
# queue_type_from_class(Foo::Too) -> :too
|
|
72
|
+
# queue_type_from_class(Foo::ForYouTwo) -> :for_you_too
|
|
73
|
+
#
|
|
74
|
+
# The implicit assumption here, consistent with Puppet's approach to plugins in general,
|
|
75
|
+
# is that all your client modules live in the same namespace, such that reduction to
|
|
76
|
+
# a flat namespace of symbols is reasonably safe.
|
|
77
|
+
def self.queue_type_from_class(klass)
|
|
78
|
+
# convert last segment of classname from studly caps to lower case with underscores, and symbolize
|
|
79
|
+
klass.name.split('::').pop.sub(/^[A-Z]/) {|c| c.downcase}.gsub(/[A-Z]/) {|c| '_' + c.downcase }.intern
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# The class object for the client to be used, determined by queue configuration
|
|
83
|
+
# settings.
|
|
84
|
+
# Looks to the <tt>:queue_type</tt> configuration entry in the running application for
|
|
85
|
+
# the default queue type to use.
|
|
86
|
+
def client_class
|
|
87
|
+
Puppet::Util::Queue.queue_type_to_class(Puppet[:queue_type])
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Returns (instantiating as necessary) the singleton queue client instance, according to the
|
|
91
|
+
# client_class. No arguments go to the client class constructor, meaning its up to the client class
|
|
92
|
+
# to know how to determine its queue message source (presumably through Puppet configuration data).
|
|
93
|
+
def client
|
|
94
|
+
@client ||= client_class.new
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require 'puppet/util'
|
|
2
|
+
|
|
3
|
+
module Puppet::Util::CacheAccumulator
|
|
4
|
+
def self.included(klass)
|
|
5
|
+
klass.extend ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Base
|
|
9
|
+
attr_reader :klass, :attribute
|
|
10
|
+
|
|
11
|
+
def initialize(klass, attribute)
|
|
12
|
+
@klass = klass
|
|
13
|
+
@attribute = attribute
|
|
14
|
+
@find_or_create = "find_or_create_by_#{@attribute.to_s}".intern
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def store
|
|
18
|
+
@store || reset
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def reset
|
|
22
|
+
@store = {}
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def find(*keys)
|
|
26
|
+
result = nil
|
|
27
|
+
if keys.length == 1
|
|
28
|
+
result = store[keys[0]] ||= @klass.send(@find_or_create, *keys)
|
|
29
|
+
else
|
|
30
|
+
found, missing = keys.partition {|k| store.include? k}
|
|
31
|
+
result = found.length
|
|
32
|
+
result += do_multi_find(missing) if missing.length > 0
|
|
33
|
+
end
|
|
34
|
+
result
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def do_multi_find(keys)
|
|
38
|
+
result = 0
|
|
39
|
+
@klass.find(:all, :conditions => {@attribute => keys}).each do |obj|
|
|
40
|
+
store[obj.send(@attribute)] = obj
|
|
41
|
+
result += 1
|
|
42
|
+
end
|
|
43
|
+
result
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
module ClassMethods
|
|
48
|
+
def accumulates(*attributes)
|
|
49
|
+
attributes.each {|attrib| install_accumulator(attrib)}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def accumulators
|
|
53
|
+
@accumulators ||= {}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def install_accumulator(attribute)
|
|
57
|
+
self.accumulators[attribute] = Base.new(self, attribute)
|
|
58
|
+
module_eval %{
|
|
59
|
+
def self.accumulate_by_#{attribute.to_s}(*keys)
|
|
60
|
+
accumulators[:#{attribute.to_s}].find(*keys)
|
|
61
|
+
end
|
|
62
|
+
}
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Puppet::Util::CollectionMerger
|
|
2
|
+
def ar_hash_merge(db_hash, mem_hash, args)
|
|
3
|
+
(db_hash.keys | mem_hash.keys).each do |key|
|
|
4
|
+
if (db_hash[key] && mem_hash[key])
|
|
5
|
+
# in both, update value
|
|
6
|
+
args[:modify].call(db_hash[key], mem_hash[key])
|
|
7
|
+
elsif (db_hash[key])
|
|
8
|
+
# in db, not memory, delete from database
|
|
9
|
+
args[:delete].call(db_hash[key])
|
|
10
|
+
else
|
|
11
|
+
# in mem, not in db, insert into the database
|
|
12
|
+
args[:create].call(key, mem_hash[key])
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
module Puppet::Util::ReferenceSerializer
|
|
3
|
+
def unserialize_value(val)
|
|
4
|
+
case val
|
|
5
|
+
when /^--- /
|
|
6
|
+
YAML.load(val)
|
|
7
|
+
when "true"
|
|
8
|
+
true
|
|
9
|
+
when "false"
|
|
10
|
+
false
|
|
11
|
+
else
|
|
12
|
+
val
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def serialize_value(val)
|
|
17
|
+
case val
|
|
18
|
+
when Puppet::Resource
|
|
19
|
+
YAML.dump(val)
|
|
20
|
+
when true, false
|
|
21
|
+
# The database does this for us, but I prefer the
|
|
22
|
+
# methods be their exact inverses.
|
|
23
|
+
# Note that this means quoted booleans get returned
|
|
24
|
+
# as actual booleans, but there doesn't appear to be
|
|
25
|
+
# a way to fix that while keeping the ability to
|
|
26
|
+
# search for parameters set to true.
|
|
27
|
+
val.to_s
|
|
28
|
+
else
|
|
29
|
+
val
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
|
|
2
|
+
module Puppet::Util::RDoc
|
|
3
|
+
|
|
4
|
+
module_function
|
|
5
|
+
|
|
6
|
+
# launch a rdoc documenation process
|
|
7
|
+
# with the files/dir passed in +files+
|
|
8
|
+
def rdoc(outputdir, files, charset = nil)
|
|
9
|
+
Puppet[:ignoreimport] = true
|
|
10
|
+
|
|
11
|
+
# then rdoc
|
|
12
|
+
require 'rdoc/rdoc'
|
|
13
|
+
require 'rdoc/options'
|
|
14
|
+
|
|
15
|
+
# load our parser
|
|
16
|
+
require 'puppet/util/rdoc/parser'
|
|
17
|
+
|
|
18
|
+
r = RDoc::RDoc.new
|
|
19
|
+
|
|
20
|
+
RDoc::RDoc::GENERATORS["puppet"] = RDoc::RDoc::Generator.new(
|
|
21
|
+
"puppet/util/rdoc/generators/puppet_generator.rb",
|
|
22
|
+
"PuppetGenerator".intern,
|
|
23
|
+
"puppet")
|
|
24
|
+
|
|
25
|
+
# specify our own format & where to output
|
|
26
|
+
options = [ "--fmt", "puppet",
|
|
27
|
+
"--quiet",
|
|
28
|
+
"--exclude", "/modules/[^/]*/files/.*$",
|
|
29
|
+
"--exclude", "/modules/[^/]*/templates/.*$",
|
|
30
|
+
"--op", outputdir ]
|
|
31
|
+
|
|
32
|
+
options << "--force-update" if Options::OptionList.options.any? { |o| o[0] == "--force-update" }
|
|
33
|
+
options += [ "--charset", charset] if charset
|
|
34
|
+
options += files
|
|
35
|
+
#TODO dedup file paths (not strict duplication sense, parents, children, etc
|
|
36
|
+
|
|
37
|
+
# launch the documentation process
|
|
38
|
+
r.document(options)
|
|
39
|
+
rescue RDoc::RDocError => e
|
|
40
|
+
raise Puppet::ParseError.new("RDoc error #{e}")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# launch a output to console manifest doc
|
|
44
|
+
def manifestdoc(files)
|
|
45
|
+
Puppet[:ignoreimport] = true
|
|
46
|
+
files.select { |f| FileTest.file?(f) }.each do |f|
|
|
47
|
+
parser = Puppet::Parser::Parser.new(Puppet::Node::Environment.new(Puppet[:environment]))
|
|
48
|
+
parser.file = f
|
|
49
|
+
ast = parser.parse
|
|
50
|
+
output(f, ast)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Ouputs to the console the documentation
|
|
55
|
+
# of a manifest
|
|
56
|
+
def output(file, ast)
|
|
57
|
+
astobj = []
|
|
58
|
+
ast.instantiate('').each do |resource_type|
|
|
59
|
+
astobj << resource_type if resource_type.file == file
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
astobj.sort! {|a,b| a.line <=> b.line }.each do |k|
|
|
63
|
+
output_astnode_doc(k)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def output_astnode_doc(ast)
|
|
68
|
+
puts ast.doc if !ast.doc.nil? and !ast.doc.empty?
|
|
69
|
+
if Puppet.settings[:document_all]
|
|
70
|
+
# scan each underlying resources to produce documentation
|
|
71
|
+
code = ast.code.children if ast.code.is_a?(Puppet::Parser::AST::ASTArray)
|
|
72
|
+
code ||= ast.code
|
|
73
|
+
output_resource_doc(code) unless code.nil?
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def output_resource_doc(code)
|
|
78
|
+
code.sort { |a,b| a.line <=> b.line }.each do |stmt|
|
|
79
|
+
output_resource_doc(stmt.children) if stmt.is_a?(Puppet::Parser::AST::ASTArray)
|
|
80
|
+
|
|
81
|
+
if stmt.is_a?(Puppet::Parser::AST::Resource)
|
|
82
|
+
puts stmt.doc if !stmt.doc.nil? and !stmt.doc.empty?
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
require 'puppet/util/instance_loader'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
# Manage Reference Documentation.
|
|
5
|
+
class Puppet::Util::Reference
|
|
6
|
+
include Puppet::Util
|
|
7
|
+
include Puppet::Util::Docs
|
|
8
|
+
|
|
9
|
+
extend Puppet::Util::InstanceLoader
|
|
10
|
+
|
|
11
|
+
instance_load(:reference, 'puppet/reference')
|
|
12
|
+
|
|
13
|
+
def self.footer
|
|
14
|
+
"\n\n----------------\n\n*This page autogenerated on #{Time.now}*\n"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.modes
|
|
18
|
+
%w{pdf text}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.newreference(name, options = {}, &block)
|
|
22
|
+
ref = self.new(name, options, &block)
|
|
23
|
+
instance_hash(:reference)[name.intern] = ref
|
|
24
|
+
|
|
25
|
+
ref
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.page(*sections)
|
|
29
|
+
depth = 4
|
|
30
|
+
# Use the minimum depth
|
|
31
|
+
sections.each do |name|
|
|
32
|
+
section = reference(name) or raise "Could not find section #{name}"
|
|
33
|
+
depth = section.depth if section.depth < depth
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.pdf(text)
|
|
38
|
+
puts "creating pdf"
|
|
39
|
+
rst2latex = which('rst2latex') || which('rst2latex.py') ||
|
|
40
|
+
raise("Could not find rst2latex")
|
|
41
|
+
|
|
42
|
+
cmd = %{#{rst2latex} /tmp/puppetdoc.txt > /tmp/puppetdoc.tex}
|
|
43
|
+
Puppet::Util.replace_file("/tmp/puppetdoc.txt") {|f| f.puts text }
|
|
44
|
+
# There used to be an attempt to use secure_open / replace_file to secure
|
|
45
|
+
# the target, too, but that did nothing: the race was still here. We can
|
|
46
|
+
# get exactly the same benefit from running this effort:
|
|
47
|
+
File.unlink('/tmp/puppetdoc.tex') rescue nil
|
|
48
|
+
output = %x{#{cmd}}
|
|
49
|
+
unless $CHILD_STATUS == 0
|
|
50
|
+
$stderr.puts "rst2latex failed"
|
|
51
|
+
$stderr.puts output
|
|
52
|
+
exit(1)
|
|
53
|
+
end
|
|
54
|
+
$stderr.puts output
|
|
55
|
+
|
|
56
|
+
# Now convert to pdf
|
|
57
|
+
Dir.chdir("/tmp") do
|
|
58
|
+
%x{texi2pdf puppetdoc.tex >/dev/null 2>/dev/null}
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def self.references
|
|
64
|
+
instance_loader(:reference).loadall
|
|
65
|
+
loaded_instances(:reference).sort { |a,b| a.to_s <=> b.to_s }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
attr_accessor :page, :depth, :header, :title, :dynamic
|
|
69
|
+
attr_writer :doc
|
|
70
|
+
|
|
71
|
+
def doc
|
|
72
|
+
if defined?(@doc)
|
|
73
|
+
return "#{@name} - #{@doc}"
|
|
74
|
+
else
|
|
75
|
+
return @title
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def dynamic?
|
|
80
|
+
self.dynamic
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def initialize(name, options = {}, &block)
|
|
84
|
+
@name = name
|
|
85
|
+
options.each do |option, value|
|
|
86
|
+
send(option.to_s + "=", value)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
meta_def(:generate, &block)
|
|
90
|
+
|
|
91
|
+
# Now handle the defaults
|
|
92
|
+
@title ||= "#{@name.to_s.capitalize} Reference"
|
|
93
|
+
@page ||= @title.gsub(/\s+/, '')
|
|
94
|
+
@depth ||= 2
|
|
95
|
+
@header ||= ""
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Indent every line in the chunk except those which begin with '..'.
|
|
99
|
+
def indent(text, tab)
|
|
100
|
+
text.gsub(/(^|\A)/, tab).gsub(/^ +\.\./, "..")
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def option(name, value)
|
|
104
|
+
":#{name.to_s.capitalize}: #{value}\n"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def text
|
|
108
|
+
puts output
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def to_markdown(withcontents = true)
|
|
112
|
+
# First the header
|
|
113
|
+
text = markdown_header(@title, 1)
|
|
114
|
+
text << "\n\n**This page is autogenerated; any changes will get overwritten** *(last generated on #{Time.now.to_s})*\n\n"
|
|
115
|
+
|
|
116
|
+
text << @header
|
|
117
|
+
|
|
118
|
+
text << generate
|
|
119
|
+
|
|
120
|
+
text << self.class.footer if withcontents
|
|
121
|
+
|
|
122
|
+
text
|
|
123
|
+
end
|
|
124
|
+
end
|