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,23 @@
|
|
|
1
|
+
require 'puppet/reports'
|
|
2
|
+
|
|
3
|
+
report = Puppet::Util::Reference.newreference :report, :doc => "All available transaction reports" do
|
|
4
|
+
Puppet::Reports.reportdocs
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
report.header = "
|
|
8
|
+
Puppet clients can report back to the server after each transaction. This
|
|
9
|
+
transaction report is sent as a YAML dump of the
|
|
10
|
+
`Puppet::Transaction::Report` class and includes every log message that was
|
|
11
|
+
generated during the transaction along with as many metrics as Puppet knows how
|
|
12
|
+
to collect. See [Reports and Reporting](http://projects.puppetlabs.com/projects/puppet/wiki/Reports_And_Reporting) for more information on how to use reports.
|
|
13
|
+
|
|
14
|
+
Currently, clients default to not sending in reports; you can enable reporting
|
|
15
|
+
by setting the `report` parameter to true.
|
|
16
|
+
|
|
17
|
+
To use a report, set the `reports` parameter on the server; multiple
|
|
18
|
+
reports must be comma-separated. You can also specify `none` to disable
|
|
19
|
+
reports entirely.
|
|
20
|
+
|
|
21
|
+
Puppet provides multiple report handlers that will process client reports:
|
|
22
|
+
|
|
23
|
+
"
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
type = Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types and all their details" do
|
|
2
|
+
types = {}
|
|
3
|
+
Puppet::Type.loadall
|
|
4
|
+
|
|
5
|
+
Puppet::Type.eachtype { |type|
|
|
6
|
+
next if type.name == :puppet
|
|
7
|
+
next if type.name == :component
|
|
8
|
+
next if type.name == :whit
|
|
9
|
+
types[type.name] = type
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
str = %{
|
|
13
|
+
|
|
14
|
+
## Resource Types
|
|
15
|
+
|
|
16
|
+
- The *namevar* is the parameter used to uniquely identify a type instance.
|
|
17
|
+
This is the parameter that gets assigned when a string is provided before
|
|
18
|
+
the colon in a type declaration. In general, only developers will need to
|
|
19
|
+
worry about which parameter is the `namevar`.
|
|
20
|
+
|
|
21
|
+
In the following code:
|
|
22
|
+
|
|
23
|
+
file { "/etc/passwd":
|
|
24
|
+
owner => root,
|
|
25
|
+
group => root,
|
|
26
|
+
mode => 644
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
`/etc/passwd` is considered the title of the file object (used for things like
|
|
30
|
+
dependency handling), and because `path` is the namevar for `file`, that
|
|
31
|
+
string is assigned to the `path` parameter.
|
|
32
|
+
|
|
33
|
+
- *Parameters* determine the specific configuration of the instance. They either
|
|
34
|
+
directly modify the system (internally, these are called properties) or they affect
|
|
35
|
+
how the instance behaves (e.g., adding a search path for `exec` instances or determining recursion on `file` instances).
|
|
36
|
+
|
|
37
|
+
- *Providers* provide low-level functionality for a given resource type. This is
|
|
38
|
+
usually in the form of calling out to external commands.
|
|
39
|
+
|
|
40
|
+
When required binaries are specified for providers, fully qualifed paths
|
|
41
|
+
indicate that the binary must exist at that specific path and unqualified
|
|
42
|
+
binaries indicate that Puppet will search for the binary using the shell
|
|
43
|
+
path.
|
|
44
|
+
|
|
45
|
+
- *Features* are abilities that some providers might not support. You can use the list
|
|
46
|
+
of supported features to determine how a given provider can be used.
|
|
47
|
+
|
|
48
|
+
Resource types define features they can use, and providers can be tested to see
|
|
49
|
+
which features they provide.
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
types.sort { |a,b|
|
|
54
|
+
a.to_s <=> b.to_s
|
|
55
|
+
}.each { |name,type|
|
|
56
|
+
|
|
57
|
+
str << "
|
|
58
|
+
|
|
59
|
+
----------------
|
|
60
|
+
|
|
61
|
+
"
|
|
62
|
+
|
|
63
|
+
str << markdown_header(name, 3)
|
|
64
|
+
str << scrub(type.doc) + "\n\n"
|
|
65
|
+
|
|
66
|
+
# Handle the feature docs.
|
|
67
|
+
if featuredocs = type.featuredocs
|
|
68
|
+
str << markdown_header("Features", 4)
|
|
69
|
+
str << featuredocs
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
docs = {}
|
|
73
|
+
type.validproperties.sort { |a,b|
|
|
74
|
+
a.to_s <=> b.to_s
|
|
75
|
+
}.reject { |sname|
|
|
76
|
+
property = type.propertybyname(sname)
|
|
77
|
+
property.nodoc
|
|
78
|
+
}.each { |sname|
|
|
79
|
+
property = type.propertybyname(sname)
|
|
80
|
+
|
|
81
|
+
raise "Could not retrieve property #{sname} on type #{type.name}" unless property
|
|
82
|
+
|
|
83
|
+
doc = nil
|
|
84
|
+
unless doc = property.doc
|
|
85
|
+
$stderr.puts "No docs for #{type}[#{sname}]"
|
|
86
|
+
next
|
|
87
|
+
end
|
|
88
|
+
doc = doc.dup
|
|
89
|
+
tmp = doc
|
|
90
|
+
tmp = scrub(tmp)
|
|
91
|
+
|
|
92
|
+
docs[sname] = tmp
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
str << markdown_header("Parameters", 4) + "\n"
|
|
96
|
+
type.parameters.sort { |a,b|
|
|
97
|
+
a.to_s <=> b.to_s
|
|
98
|
+
}.each { |name,param|
|
|
99
|
+
#docs[name] = indent(scrub(type.paramdoc(name)), $tab)
|
|
100
|
+
docs[name] = scrub(type.paramdoc(name))
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
additional_key_attributes = type.key_attributes - [:name]
|
|
104
|
+
docs.sort { |a, b|
|
|
105
|
+
a[0].to_s <=> b[0].to_s
|
|
106
|
+
}.each { |name, doc|
|
|
107
|
+
if additional_key_attributes.include?(name)
|
|
108
|
+
doc = "(**Namevar:** If omitted, this parameter's value defaults to the resource's title.)\n\n" + doc
|
|
109
|
+
end
|
|
110
|
+
str << markdown_definitionlist(name, doc)
|
|
111
|
+
}
|
|
112
|
+
str << "\n"
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
str
|
|
116
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# subscriptions are permanent associations determining how different
|
|
4
|
+
# objects react to an event
|
|
5
|
+
|
|
6
|
+
require 'puppet/util/pson'
|
|
7
|
+
|
|
8
|
+
# This is Puppet's class for modeling edges in its configuration graph.
|
|
9
|
+
# It used to be a subclass of GRATR::Edge, but that class has weird hash
|
|
10
|
+
# overrides that dramatically slow down the graphing.
|
|
11
|
+
class Puppet::Relationship
|
|
12
|
+
extend Puppet::Util::Pson
|
|
13
|
+
attr_accessor :source, :target, :callback
|
|
14
|
+
|
|
15
|
+
attr_reader :event
|
|
16
|
+
|
|
17
|
+
def self.from_pson(pson)
|
|
18
|
+
source = pson["source"]
|
|
19
|
+
target = pson["target"]
|
|
20
|
+
|
|
21
|
+
args = {}
|
|
22
|
+
if event = pson["event"]
|
|
23
|
+
args[:event] = event
|
|
24
|
+
end
|
|
25
|
+
if callback = pson["callback"]
|
|
26
|
+
args[:callback] = callback
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
new(source, target, args)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def event=(event)
|
|
33
|
+
raise ArgumentError, "You must pass a callback for non-NONE events" if event != :NONE and ! callback
|
|
34
|
+
@event = event
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def initialize(source, target, options = {})
|
|
38
|
+
@source, @target = source, target
|
|
39
|
+
|
|
40
|
+
options = (options || {}).inject({}) { |h,a| h[a[0].to_sym] = a[1]; h }
|
|
41
|
+
[:callback, :event].each do |option|
|
|
42
|
+
if value = options[option]
|
|
43
|
+
send(option.to_s + "=", value)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Does the passed event match our event? This is where the meaning
|
|
49
|
+
# of :NONE comes from.
|
|
50
|
+
def match?(event)
|
|
51
|
+
if self.event.nil? or event == :NONE or self.event == :NONE
|
|
52
|
+
return false
|
|
53
|
+
elsif self.event == :ALL_EVENTS or event == self.event
|
|
54
|
+
return true
|
|
55
|
+
else
|
|
56
|
+
return false
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def label
|
|
61
|
+
result = {}
|
|
62
|
+
result[:callback] = callback if callback
|
|
63
|
+
result[:event] = event if event
|
|
64
|
+
result
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def ref
|
|
68
|
+
"#{source} => #{target}"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def inspect
|
|
72
|
+
"{ #{source} => #{target} }"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def to_pson_data_hash
|
|
76
|
+
data = {
|
|
77
|
+
'source' => source.to_s,
|
|
78
|
+
'target' => target.to_s
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
["event", "callback"].each do |attr|
|
|
82
|
+
next unless value = send(attr)
|
|
83
|
+
data[attr] = value
|
|
84
|
+
end
|
|
85
|
+
data
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def to_pson(*args)
|
|
89
|
+
to_pson_data_hash.to_pson(*args)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def to_s
|
|
93
|
+
ref
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'net/http'
|
|
3
|
+
require 'uri'
|
|
4
|
+
|
|
5
|
+
Puppet::Reports.register_report(:http) do
|
|
6
|
+
|
|
7
|
+
desc <<-DESC
|
|
8
|
+
Send report information via HTTP to the `reporturl`. Each host sends
|
|
9
|
+
its report as a YAML dump and this sends this YAML to a client via HTTP POST.
|
|
10
|
+
The YAML is the body of the request.
|
|
11
|
+
DESC
|
|
12
|
+
|
|
13
|
+
def process
|
|
14
|
+
url = URI.parse(Puppet[:reporturl])
|
|
15
|
+
req = Net::HTTP::Post.new(url.path)
|
|
16
|
+
req.body = self.to_yaml
|
|
17
|
+
req.content_type = "application/x-yaml"
|
|
18
|
+
Net::HTTP.new(url.host, url.port).start {|http|
|
|
19
|
+
response = http.request(req)
|
|
20
|
+
unless response.kind_of?(Net::HTTPSuccess)
|
|
21
|
+
Puppet.err "Unable to submit report to #{Puppet[:reporturl].to_s} [#{response.code}] #{response.msg}"
|
|
22
|
+
end
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'puppet/reports'
|
|
2
|
+
|
|
3
|
+
Puppet::Reports.register_report(:log) do
|
|
4
|
+
desc "Send all received logs to the local log destinations. Usually
|
|
5
|
+
the log destination is syslog."
|
|
6
|
+
|
|
7
|
+
def process
|
|
8
|
+
self.logs.each do |log|
|
|
9
|
+
log.source = "//#{self.host}/#{log.source}"
|
|
10
|
+
Puppet::Util::Log.newmessage(log)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Puppet::Reports.register_report(:rrdgraph) do
|
|
2
|
+
desc "Graph all available data about hosts using the RRD library. You
|
|
3
|
+
must have the Ruby RRDtool library installed to use this report, which
|
|
4
|
+
you can get from
|
|
5
|
+
[the RubyRRDTool RubyForge page](http://rubyforge.org/projects/rubyrrdtool/).
|
|
6
|
+
This package may also be available as `ruby-rrd` or `rrdtool-ruby` in your
|
|
7
|
+
distribution's package management system. The library and/or package will both
|
|
8
|
+
require the binary `rrdtool` package from your distribution to be installed.
|
|
9
|
+
|
|
10
|
+
This report will create, manage, and graph RRD database files for each
|
|
11
|
+
of the metrics generated during transactions, and it will create a
|
|
12
|
+
few simple html files to display the reporting host's graphs. At this
|
|
13
|
+
point, it will not create a common index file to display links to
|
|
14
|
+
all hosts.
|
|
15
|
+
|
|
16
|
+
All RRD files and graphs get created in the `rrddir` directory. If
|
|
17
|
+
you want to serve these publicly, you should be able to just alias that
|
|
18
|
+
directory in a web server.
|
|
19
|
+
|
|
20
|
+
If you really know what you're doing, you can tune the `rrdinterval`,
|
|
21
|
+
which defaults to the `runinterval`."
|
|
22
|
+
|
|
23
|
+
def hostdir
|
|
24
|
+
@hostdir ||= File.join(Puppet[:rrddir], self.host)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def htmlfile(type, graphs, field)
|
|
28
|
+
file = File.join(hostdir, "#{type}.html")
|
|
29
|
+
File.open(file, "w") do |of|
|
|
30
|
+
of.puts "<html><head><title>#{type.capitalize} graphs for #{host}</title></head><body>"
|
|
31
|
+
|
|
32
|
+
graphs.each do |graph|
|
|
33
|
+
if field == :first
|
|
34
|
+
name = graph.sub(/-\w+.png/, '').capitalize
|
|
35
|
+
else
|
|
36
|
+
name = graph.sub(/\w+-/, '').sub(".png", '').capitalize
|
|
37
|
+
end
|
|
38
|
+
of.puts "<img src=#{graph}><br>"
|
|
39
|
+
end
|
|
40
|
+
of.puts "</body></html>"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
file
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def mkhtml
|
|
47
|
+
images = Dir.entries(hostdir).find_all { |d| d =~ /\.png/ }
|
|
48
|
+
|
|
49
|
+
periodorder = %w{daily weekly monthly yearly}
|
|
50
|
+
|
|
51
|
+
periods = {}
|
|
52
|
+
types = {}
|
|
53
|
+
images.each do |n|
|
|
54
|
+
type, period = n.sub(".png", '').split("-")
|
|
55
|
+
periods[period] ||= []
|
|
56
|
+
types[type] ||= []
|
|
57
|
+
periods[period] << n
|
|
58
|
+
types[type] << n
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
files = []
|
|
62
|
+
# Make the period html files
|
|
63
|
+
periodorder.each do |period|
|
|
64
|
+
unless ary = periods[period]
|
|
65
|
+
raise Puppet::Error, "Could not find graphs for #{period}"
|
|
66
|
+
end
|
|
67
|
+
files << htmlfile(period, ary, :first)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# make the type html files
|
|
71
|
+
types.sort { |a,b| a[0] <=> b[0] }.each do |type, ary|
|
|
72
|
+
newary = []
|
|
73
|
+
periodorder.each do |period|
|
|
74
|
+
if graph = ary.find { |g| g.include?("-#{period}.png") }
|
|
75
|
+
newary << graph
|
|
76
|
+
else
|
|
77
|
+
raise "Could not find #{type}-#{period} graph"
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
files << htmlfile(type, newary, :second)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
File.open(File.join(hostdir, "index.html"), "w") do |of|
|
|
85
|
+
of.puts "<html><head><title>Report graphs for #{host}</title></head><body>"
|
|
86
|
+
files.each do |file|
|
|
87
|
+
of.puts "<a href='#{File.basename(file)}'>#{File.basename(file).sub(".html",'').capitalize}</a><br/>"
|
|
88
|
+
end
|
|
89
|
+
of.puts "</body></html>"
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def process(time = nil)
|
|
94
|
+
time ||= Time.now.to_i
|
|
95
|
+
|
|
96
|
+
unless File.directory?(hostdir) and FileTest.writable?(hostdir)
|
|
97
|
+
# Some hackishness to create the dir with all of the right modes and ownership
|
|
98
|
+
config = Puppet::Util::Settings.new
|
|
99
|
+
config.setdefaults(:reports, :hostdir => {:default => hostdir, :owner => 'service', :mode => 0755, :group => 'service', :desc => "eh"})
|
|
100
|
+
|
|
101
|
+
# This creates the dir.
|
|
102
|
+
config.use(:reports)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
self.metrics.each do |name, metric|
|
|
106
|
+
metric.basedir = hostdir
|
|
107
|
+
|
|
108
|
+
if name == "time"
|
|
109
|
+
timeclean(metric)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
metric.store(time)
|
|
113
|
+
|
|
114
|
+
metric.graph
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
mkhtml unless FileTest.exists?(File.join(hostdir, "index.html"))
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Unfortunately, RRD does not deal well with changing lists of values,
|
|
121
|
+
# so we have to pick a list of values and stick with it. In this case,
|
|
122
|
+
# that means we record the total time, the config time, and that's about
|
|
123
|
+
# it. We should probably send each type's time as a separate metric.
|
|
124
|
+
def timeclean(metric)
|
|
125
|
+
metric.values = metric.values.find_all { |name, label, value| ['total', 'config_retrieval'].include?(name.to_s) }
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
require 'tempfile'
|
|
4
|
+
|
|
5
|
+
SEPARATOR = [Regexp.escape(File::SEPARATOR.to_s), Regexp.escape(File::ALT_SEPARATOR.to_s)].join
|
|
6
|
+
|
|
7
|
+
Puppet::Reports.register_report(:store) do
|
|
8
|
+
desc "Store the yaml report on disk. Each host sends its report as a YAML dump
|
|
9
|
+
and this just stores the file on disk, in the `reportdir` directory.
|
|
10
|
+
|
|
11
|
+
These files collect quickly -- one every half hour -- so it is a good idea
|
|
12
|
+
to perform some maintenance on them if you use this report (it's the only
|
|
13
|
+
default report)."
|
|
14
|
+
|
|
15
|
+
def process
|
|
16
|
+
validate_host(host)
|
|
17
|
+
|
|
18
|
+
dir = File.join(Puppet[:reportdir], host)
|
|
19
|
+
|
|
20
|
+
if ! FileTest.exists?(dir)
|
|
21
|
+
FileUtils.mkdir_p(dir)
|
|
22
|
+
FileUtils.chmod_R(0750, dir)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Now store the report.
|
|
26
|
+
now = Time.now.gmtime
|
|
27
|
+
name = %w{year month day hour min}.collect do |method|
|
|
28
|
+
# Make sure we're at least two digits everywhere
|
|
29
|
+
"%02d" % now.send(method).to_s
|
|
30
|
+
end.join("") + ".yaml"
|
|
31
|
+
|
|
32
|
+
file = File.join(dir, name)
|
|
33
|
+
|
|
34
|
+
f = Tempfile.new(name, dir)
|
|
35
|
+
begin
|
|
36
|
+
begin
|
|
37
|
+
f.chmod(0640)
|
|
38
|
+
f.print to_yaml
|
|
39
|
+
ensure
|
|
40
|
+
f.close
|
|
41
|
+
end
|
|
42
|
+
FileUtils.mv(f.path, file)
|
|
43
|
+
rescue => detail
|
|
44
|
+
puts detail.backtrace if Puppet[:trace]
|
|
45
|
+
Puppet.warning "Could not write report for #{host} at #{file}: #{detail}"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Only testing cares about the return value
|
|
49
|
+
file
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# removes all reports for a given host?
|
|
53
|
+
def self.destroy(host)
|
|
54
|
+
validate_host(host)
|
|
55
|
+
|
|
56
|
+
dir = File.join(Puppet[:reportdir], host)
|
|
57
|
+
|
|
58
|
+
if File.exists?(dir)
|
|
59
|
+
Dir.entries(dir).each do |file|
|
|
60
|
+
next if ['.','..'].include?(file)
|
|
61
|
+
file = File.join(dir, file)
|
|
62
|
+
File.unlink(file) if File.file?(file)
|
|
63
|
+
end
|
|
64
|
+
Dir.rmdir(dir)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def validate_host(host)
|
|
69
|
+
if host =~ Regexp.union(/[#{SEPARATOR}]/, /\A\.\.?\Z/)
|
|
70
|
+
raise ArgumentError, "Invalid node name #{host.inspect}"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
module_function :validate_host
|
|
74
|
+
end
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'pp'
|
|
3
|
+
|
|
4
|
+
require 'net/smtp'
|
|
5
|
+
require 'time'
|
|
6
|
+
|
|
7
|
+
Puppet::Reports.register_report(:tagmail) do
|
|
8
|
+
desc "This report sends specific log messages to specific email addresses
|
|
9
|
+
based on the tags in the log messages.
|
|
10
|
+
|
|
11
|
+
See the [documentation on tags](http://projects.puppetlabs.com/projects/puppet/wiki/Using_Tags) for more information.
|
|
12
|
+
|
|
13
|
+
To use this report, you must create a `tagmail.conf` file in the location
|
|
14
|
+
specified by the `tagmap` setting. This is a simple file that maps tags to
|
|
15
|
+
email addresses: Any log messages in the report that match the specified
|
|
16
|
+
tags will be sent to the specified email addresses.
|
|
17
|
+
|
|
18
|
+
Lines in the `tagmail.conf` file consist of a comma-separated list
|
|
19
|
+
of tags, a colon, and a comma-separated list of email addresses.
|
|
20
|
+
Tags can be !negated with a leading exclamation mark, which will
|
|
21
|
+
subtract any messages with that tag from the set of events handled
|
|
22
|
+
by that line.
|
|
23
|
+
|
|
24
|
+
Puppet's log levels (`debug`, `info`, `notice`, `warning`, `err`,
|
|
25
|
+
`alert`, `emerg`, `crit`, and `verbose`) can also be used as tags,
|
|
26
|
+
and there is an `all` tag that will always match all log messages.
|
|
27
|
+
|
|
28
|
+
An example `tagmail.conf`:
|
|
29
|
+
|
|
30
|
+
all: me@domain.com
|
|
31
|
+
webserver, !mailserver: httpadmins@domain.com
|
|
32
|
+
|
|
33
|
+
This will send all messages to `me@domain.com`, and all messages from
|
|
34
|
+
webservers that are not also from mailservers to `httpadmins@domain.com`.
|
|
35
|
+
|
|
36
|
+
If you are using anti-spam controls such as grey-listing on your mail
|
|
37
|
+
server, you should whitelist the sending email address (controlled by
|
|
38
|
+
`reportform` configuration option) to ensure your email is not discarded as spam.
|
|
39
|
+
"
|
|
40
|
+
|
|
41
|
+
# Find all matching messages.
|
|
42
|
+
def match(taglists)
|
|
43
|
+
matching_logs = []
|
|
44
|
+
taglists.each do |emails, pos, neg|
|
|
45
|
+
# First find all of the messages matched by our positive tags
|
|
46
|
+
messages = nil
|
|
47
|
+
if pos.include?("all")
|
|
48
|
+
messages = self.logs
|
|
49
|
+
else
|
|
50
|
+
# Find all of the messages that are tagged with any of our
|
|
51
|
+
# tags.
|
|
52
|
+
messages = self.logs.find_all do |log|
|
|
53
|
+
pos.detect { |tag| log.tagged?(tag) }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Now go through and remove any messages that match our negative tags
|
|
58
|
+
messages = messages.reject do |log|
|
|
59
|
+
true if neg.detect do |tag| log.tagged?(tag) end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
if messages.empty?
|
|
63
|
+
Puppet.info "No messages to report to #{emails.join(",")}"
|
|
64
|
+
next
|
|
65
|
+
else
|
|
66
|
+
matching_logs << [emails, messages.collect { |m| m.to_report }.join("\n")]
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
matching_logs
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Load the config file
|
|
74
|
+
def parse(text)
|
|
75
|
+
taglists = []
|
|
76
|
+
text.split("\n").each do |line|
|
|
77
|
+
taglist = emails = nil
|
|
78
|
+
case line.chomp
|
|
79
|
+
when /^\s*#/; next
|
|
80
|
+
when /^\s*$/; next
|
|
81
|
+
when /^\s*(.+)\s*:\s*(.+)\s*$/
|
|
82
|
+
taglist = $1
|
|
83
|
+
emails = $2.sub(/#.*$/,'')
|
|
84
|
+
else
|
|
85
|
+
raise ArgumentError, "Invalid tagmail config file"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
pos = []
|
|
89
|
+
neg = []
|
|
90
|
+
taglist.sub(/\s+$/,'').split(/\s*,\s*/).each do |tag|
|
|
91
|
+
unless tag =~ /^!?[-\w\.]+$/
|
|
92
|
+
raise ArgumentError, "Invalid tag #{tag.inspect}"
|
|
93
|
+
end
|
|
94
|
+
case tag
|
|
95
|
+
when /^\w+/; pos << tag
|
|
96
|
+
when /^!\w+/; neg << tag.sub("!", '')
|
|
97
|
+
else
|
|
98
|
+
raise Puppet::Error, "Invalid tag '#{tag}'"
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Now split the emails
|
|
103
|
+
emails = emails.sub(/\s+$/,'').split(/\s*,\s*/)
|
|
104
|
+
taglists << [emails, pos, neg]
|
|
105
|
+
end
|
|
106
|
+
taglists
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Process the report. This just calls the other associated messages.
|
|
110
|
+
def process
|
|
111
|
+
unless FileTest.exists?(Puppet[:tagmap])
|
|
112
|
+
Puppet.notice "Cannot send tagmail report; no tagmap file #{Puppet[:tagmap]}"
|
|
113
|
+
return
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
metrics = raw_summary['resources'] || {} rescue {}
|
|
117
|
+
|
|
118
|
+
if metrics['out_of_sync'] == 0 && metrics['changed'] == 0
|
|
119
|
+
Puppet.notice "Not sending tagmail report; no changes"
|
|
120
|
+
return
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
taglists = parse(File.read(Puppet[:tagmap]))
|
|
124
|
+
|
|
125
|
+
# Now find any appropriately tagged messages.
|
|
126
|
+
reports = match(taglists)
|
|
127
|
+
|
|
128
|
+
send(reports) unless reports.empty?
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Send the email reports.
|
|
132
|
+
def send(reports)
|
|
133
|
+
pid = Puppet::Util.safe_posix_fork do
|
|
134
|
+
if Puppet[:smtpserver] != "none"
|
|
135
|
+
begin
|
|
136
|
+
Net::SMTP.start(Puppet[:smtpserver]) do |smtp|
|
|
137
|
+
reports.each do |emails, messages|
|
|
138
|
+
smtp.open_message_stream(Puppet[:reportfrom], *emails) do |p|
|
|
139
|
+
p.puts "From: #{Puppet[:reportfrom]}"
|
|
140
|
+
p.puts "Subject: Puppet Report for #{self.host}"
|
|
141
|
+
p.puts "To: " + emails.join(", ")
|
|
142
|
+
p.puts "Date: #{Time.now.rfc2822}"
|
|
143
|
+
p.puts
|
|
144
|
+
p.puts messages
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
rescue => detail
|
|
149
|
+
puts detail.backtrace if Puppet[:debug]
|
|
150
|
+
raise Puppet::Error,
|
|
151
|
+
"Could not send report emails through smtp: #{detail}"
|
|
152
|
+
end
|
|
153
|
+
elsif Puppet[:sendmail] != ""
|
|
154
|
+
begin
|
|
155
|
+
reports.each do |emails, messages|
|
|
156
|
+
# We need to open a separate process for every set of email addresses
|
|
157
|
+
IO.popen(Puppet[:sendmail] + " " + emails.join(" "), "w") do |p|
|
|
158
|
+
p.puts "From: #{Puppet[:reportfrom]}"
|
|
159
|
+
p.puts "Subject: Puppet Report for #{self.host}"
|
|
160
|
+
p.puts "To: " + emails.join(", ")
|
|
161
|
+
|
|
162
|
+
p.puts messages
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
rescue => detail
|
|
166
|
+
puts detail.backtrace if Puppet[:debug]
|
|
167
|
+
raise Puppet::Error,
|
|
168
|
+
"Could not send report emails via sendmail: #{detail}"
|
|
169
|
+
end
|
|
170
|
+
else
|
|
171
|
+
raise Puppet::Error, "SMTP server is unset and could not find sendmail"
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Don't bother waiting for the pid to return.
|
|
176
|
+
Process.detach(pid)
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
|