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,373 @@
|
|
|
1
|
+
# A mini-language for parsing files. This is only used file the ParsedFile
|
|
2
|
+
# provider, but it makes more sense to split it out so it's easy to maintain
|
|
3
|
+
# in one place.
|
|
4
|
+
#
|
|
5
|
+
# You can use this module to create simple parser/generator classes. For instance,
|
|
6
|
+
# the following parser should go most of the way to parsing /etc/passwd:
|
|
7
|
+
#
|
|
8
|
+
# class Parser
|
|
9
|
+
# include Puppet::Util::FileParsing
|
|
10
|
+
# record_line :user, :fields => %w{name password uid gid gecos home shell},
|
|
11
|
+
# :separator => ":"
|
|
12
|
+
# end
|
|
13
|
+
#
|
|
14
|
+
# You would use it like this:
|
|
15
|
+
#
|
|
16
|
+
# parser = Parser.new
|
|
17
|
+
# lines = parser.parse(File.read("/etc/passwd"))
|
|
18
|
+
#
|
|
19
|
+
# lines.each do |type, hash| # type will always be :user, since we only have one
|
|
20
|
+
# p hash
|
|
21
|
+
# end
|
|
22
|
+
#
|
|
23
|
+
# Each line in this case would be a hash, with each field set appropriately.
|
|
24
|
+
# You could then call 'parser.to_line(hash)' on any of those hashes to generate
|
|
25
|
+
# the text line again.
|
|
26
|
+
|
|
27
|
+
require 'puppet/util/methodhelper'
|
|
28
|
+
|
|
29
|
+
module Puppet::Util::FileParsing
|
|
30
|
+
include Puppet::Util
|
|
31
|
+
attr_writer :line_separator, :trailing_separator
|
|
32
|
+
|
|
33
|
+
class FileRecord
|
|
34
|
+
include Puppet::Util
|
|
35
|
+
include Puppet::Util::MethodHelper
|
|
36
|
+
attr_accessor :absent, :joiner, :rts, :separator, :rollup, :name, :match, :block_eval
|
|
37
|
+
|
|
38
|
+
attr_reader :fields, :optional, :type
|
|
39
|
+
|
|
40
|
+
INVALID_FIELDS = [:record_type, :target, :on_disk]
|
|
41
|
+
|
|
42
|
+
# Customize this so we can do a bit of validation.
|
|
43
|
+
def fields=(fields)
|
|
44
|
+
@fields = fields.collect do |field|
|
|
45
|
+
r = field.intern
|
|
46
|
+
raise ArgumentError.new("Cannot have fields named #{r}") if INVALID_FIELDS.include?(r)
|
|
47
|
+
r
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def initialize(type, options = {}, &block)
|
|
52
|
+
@type = type.intern
|
|
53
|
+
raise ArgumentError, "Invalid record type #{@type}" unless [:record, :text].include?(@type)
|
|
54
|
+
|
|
55
|
+
set_options(options)
|
|
56
|
+
|
|
57
|
+
if self.type == :record
|
|
58
|
+
# Now set defaults.
|
|
59
|
+
self.absent ||= ""
|
|
60
|
+
self.separator ||= /\s+/
|
|
61
|
+
self.joiner ||= " "
|
|
62
|
+
self.optional ||= []
|
|
63
|
+
@rollup = true unless defined?(@rollup)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
if block_given?
|
|
67
|
+
@block_eval ||= :process
|
|
68
|
+
|
|
69
|
+
# Allow the developer to specify that a block should be instance-eval'ed.
|
|
70
|
+
if @block_eval == :instance
|
|
71
|
+
instance_eval(&block)
|
|
72
|
+
else
|
|
73
|
+
meta_def(@block_eval, &block)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Convert a record into a line by joining the fields together appropriately.
|
|
79
|
+
# This is pulled into a separate method so it can be called by the hooks.
|
|
80
|
+
def join(details)
|
|
81
|
+
joinchar = self.joiner
|
|
82
|
+
|
|
83
|
+
fields.collect { |field|
|
|
84
|
+
# If the field is marked absent, use the appropriate replacement
|
|
85
|
+
if details[field] == :absent or details[field] == [:absent] or details[field].nil?
|
|
86
|
+
if self.optional.include?(field)
|
|
87
|
+
self.absent
|
|
88
|
+
else
|
|
89
|
+
raise ArgumentError, "Field '#{field}' is required"
|
|
90
|
+
end
|
|
91
|
+
else
|
|
92
|
+
details[field].to_s
|
|
93
|
+
end
|
|
94
|
+
}.reject { |c| c.nil?}.join(joinchar)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Customize this so we can do a bit of validation.
|
|
98
|
+
def optional=(optional)
|
|
99
|
+
@optional = optional.collect do |field|
|
|
100
|
+
field.intern
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Create a hook that modifies the hash resulting from parsing.
|
|
105
|
+
def post_parse=(block)
|
|
106
|
+
meta_def(:post_parse, &block)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Create a hook that modifies the hash just prior to generation.
|
|
110
|
+
def pre_gen=(block)
|
|
111
|
+
meta_def(:pre_gen, &block)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Are we a text type?
|
|
115
|
+
def text?
|
|
116
|
+
type == :text
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def to_line=(block)
|
|
120
|
+
meta_def(:to_line, &block)
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Clear all existing record definitions. Only used for testing.
|
|
125
|
+
def clear_records
|
|
126
|
+
@record_types.clear
|
|
127
|
+
@record_order.clear
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def fields(type)
|
|
131
|
+
if record = record_type(type)
|
|
132
|
+
record.fields.dup
|
|
133
|
+
else
|
|
134
|
+
nil
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Try to match a specific text line.
|
|
139
|
+
def handle_text_line(line, record)
|
|
140
|
+
line =~ record.match ? {:record_type => record.name, :line => line} : nil
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Try to match a record.
|
|
144
|
+
def handle_record_line(line, record)
|
|
145
|
+
ret = nil
|
|
146
|
+
if record.respond_to?(:process)
|
|
147
|
+
if ret = record.send(:process, line.dup)
|
|
148
|
+
unless ret.is_a?(Hash)
|
|
149
|
+
raise Puppet::DevError,
|
|
150
|
+
"Process record type #{record.name} returned non-hash"
|
|
151
|
+
end
|
|
152
|
+
else
|
|
153
|
+
return nil
|
|
154
|
+
end
|
|
155
|
+
elsif regex = record.match
|
|
156
|
+
# In this case, we try to match the whole line and then use the
|
|
157
|
+
# match captures to get our fields.
|
|
158
|
+
if match = regex.match(line)
|
|
159
|
+
fields = []
|
|
160
|
+
ret = {}
|
|
161
|
+
record.fields.zip(match.captures).each do |field, value|
|
|
162
|
+
if value == record.absent
|
|
163
|
+
ret[field] = :absent
|
|
164
|
+
else
|
|
165
|
+
ret[field] = value
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
else
|
|
169
|
+
nil
|
|
170
|
+
end
|
|
171
|
+
else
|
|
172
|
+
ret = {}
|
|
173
|
+
sep = record.separator
|
|
174
|
+
|
|
175
|
+
# String "helpfully" replaces ' ' with /\s+/ in splitting, so we
|
|
176
|
+
# have to work around it.
|
|
177
|
+
if sep == " "
|
|
178
|
+
sep = / /
|
|
179
|
+
end
|
|
180
|
+
line_fields = line.split(sep)
|
|
181
|
+
record.fields.each do |param|
|
|
182
|
+
value = line_fields.shift
|
|
183
|
+
if value and value != record.absent
|
|
184
|
+
ret[param] = value
|
|
185
|
+
else
|
|
186
|
+
ret[param] = :absent
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
if record.rollup and ! line_fields.empty?
|
|
191
|
+
last_field = record.fields[-1]
|
|
192
|
+
val = ([ret[last_field]] + line_fields).join(record.joiner)
|
|
193
|
+
ret[last_field] = val
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
if ret
|
|
198
|
+
ret[:record_type] = record.name
|
|
199
|
+
return ret
|
|
200
|
+
else
|
|
201
|
+
return nil
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def line_separator
|
|
206
|
+
@line_separator ||= "\n"
|
|
207
|
+
|
|
208
|
+
@line_separator
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
# Split text into separate lines using the record separator.
|
|
212
|
+
def lines(text)
|
|
213
|
+
# Remove any trailing separators, and then split based on them
|
|
214
|
+
# LAK:NOTE See http://snurl.com/21zf8 [groups_google_com]
|
|
215
|
+
x = text.sub(/#{self.line_separator}\Q/,'').split(self.line_separator)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
# Split a bunch of text into lines and then parse them individually.
|
|
219
|
+
def parse(text)
|
|
220
|
+
count = 1
|
|
221
|
+
lines(text).collect do |line|
|
|
222
|
+
count += 1
|
|
223
|
+
if val = parse_line(line)
|
|
224
|
+
val
|
|
225
|
+
else
|
|
226
|
+
error = Puppet::Error.new("Could not parse line #{line.inspect}")
|
|
227
|
+
error.line = count
|
|
228
|
+
raise error
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
# Handle parsing a single line.
|
|
234
|
+
def parse_line(line)
|
|
235
|
+
raise Puppet::DevError, "No record types defined; cannot parse lines" unless records?
|
|
236
|
+
|
|
237
|
+
@record_order.each do |record|
|
|
238
|
+
# These are basically either text or record lines.
|
|
239
|
+
method = "handle_#{record.type}_line"
|
|
240
|
+
if respond_to?(method)
|
|
241
|
+
if result = send(method, line, record)
|
|
242
|
+
record.send(:post_parse, result) if record.respond_to?(:post_parse)
|
|
243
|
+
return result
|
|
244
|
+
end
|
|
245
|
+
else
|
|
246
|
+
raise Puppet::DevError,
|
|
247
|
+
"Somehow got invalid line type #{record.type}"
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
nil
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# Define a new type of record. These lines get split into hashes. Valid
|
|
255
|
+
# options are:
|
|
256
|
+
# * <tt>:absent</tt>: What to use as value within a line, when a field is
|
|
257
|
+
# absent. Note that in the record object, the literal :absent symbol is
|
|
258
|
+
# used, and not this value. Defaults to "".
|
|
259
|
+
# * <tt>:fields</tt>: The list of fields, as an array. By default, all
|
|
260
|
+
# fields are considered required.
|
|
261
|
+
# * <tt>:joiner</tt>: How to join fields together. Defaults to '\t'.
|
|
262
|
+
# * <tt>:optional</tt>: Which fields are optional. If these are missing,
|
|
263
|
+
# you'll just get the 'absent' value instead of an ArgumentError.
|
|
264
|
+
# * <tt>:rts</tt>: Whether to remove trailing whitespace. Defaults to false.
|
|
265
|
+
# If true, whitespace will be removed; if a regex, then whatever matches
|
|
266
|
+
# the regex will be removed.
|
|
267
|
+
# * <tt>:separator</tt>: The record separator. Defaults to /\s+/.
|
|
268
|
+
def record_line(name, options, &block)
|
|
269
|
+
raise ArgumentError, "Must include a list of fields" unless options.include?(:fields)
|
|
270
|
+
|
|
271
|
+
record = FileRecord.new(:record, options, &block)
|
|
272
|
+
record.name = name.intern
|
|
273
|
+
|
|
274
|
+
new_line_type(record)
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# Are there any record types defined?
|
|
278
|
+
def records?
|
|
279
|
+
defined?(@record_types) and ! @record_types.empty?
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
# Define a new type of text record.
|
|
283
|
+
def text_line(name, options, &block)
|
|
284
|
+
raise ArgumentError, "You must provide a :match regex for text lines" unless options.include?(:match)
|
|
285
|
+
|
|
286
|
+
record = FileRecord.new(:text, options, &block)
|
|
287
|
+
record.name = name.intern
|
|
288
|
+
|
|
289
|
+
new_line_type(record)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
# Generate a file from a bunch of hash records.
|
|
293
|
+
def to_file(records)
|
|
294
|
+
text = records.collect { |record| to_line(record) }.join(line_separator)
|
|
295
|
+
|
|
296
|
+
text += line_separator if trailing_separator
|
|
297
|
+
|
|
298
|
+
text
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# Convert our parsed record into a text record.
|
|
302
|
+
def to_line(details)
|
|
303
|
+
unless record = record_type(details[:record_type])
|
|
304
|
+
raise ArgumentError, "Invalid record type #{details[:record_type].inspect}"
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
if record.respond_to?(:pre_gen)
|
|
308
|
+
details = details.dup
|
|
309
|
+
record.send(:pre_gen, details)
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
case record.type
|
|
313
|
+
when :text; return details[:line]
|
|
314
|
+
else
|
|
315
|
+
return record.to_line(details) if record.respond_to?(:to_line)
|
|
316
|
+
|
|
317
|
+
line = record.join(details)
|
|
318
|
+
|
|
319
|
+
if regex = record.rts
|
|
320
|
+
# If they say true, then use whitespace; else, use their regex.
|
|
321
|
+
if regex == true
|
|
322
|
+
regex = /\s+$/
|
|
323
|
+
end
|
|
324
|
+
return line.sub(regex,'')
|
|
325
|
+
else
|
|
326
|
+
return line
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# Whether to add a trailing separator to the file. Defaults to true
|
|
332
|
+
def trailing_separator
|
|
333
|
+
if defined?(@trailing_separator)
|
|
334
|
+
return @trailing_separator
|
|
335
|
+
else
|
|
336
|
+
return true
|
|
337
|
+
end
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
def valid_attr?(type, attr)
|
|
341
|
+
type = type.intern
|
|
342
|
+
if record = record_type(type) and record.fields.include?(attr.intern)
|
|
343
|
+
return true
|
|
344
|
+
else
|
|
345
|
+
if attr.intern == :ensure
|
|
346
|
+
return true
|
|
347
|
+
else
|
|
348
|
+
false
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
private
|
|
354
|
+
|
|
355
|
+
# Define a new type of record.
|
|
356
|
+
def new_line_type(record)
|
|
357
|
+
@record_types ||= {}
|
|
358
|
+
@record_order ||= []
|
|
359
|
+
|
|
360
|
+
raise ArgumentError, "Line type #{record.name} is already defined" if @record_types.include?(record.name)
|
|
361
|
+
|
|
362
|
+
@record_types[record.name] = record
|
|
363
|
+
@record_order << record
|
|
364
|
+
|
|
365
|
+
record
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
# Retrieve the record object.
|
|
369
|
+
def record_type(type)
|
|
370
|
+
@record_types[type.intern]
|
|
371
|
+
end
|
|
372
|
+
end
|
|
373
|
+
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Basic classes for reading, writing, and emptying files. Not much
|
|
2
|
+
# to see here.
|
|
3
|
+
|
|
4
|
+
require 'puppet/util/selinux'
|
|
5
|
+
require 'tempfile'
|
|
6
|
+
require 'fileutils'
|
|
7
|
+
|
|
8
|
+
class Puppet::Util::FileType
|
|
9
|
+
attr_accessor :loaded, :path, :synced
|
|
10
|
+
|
|
11
|
+
include Puppet::Util::SELinux
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
attr_accessor :name
|
|
15
|
+
include Puppet::Util::ClassGen
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Create a new filetype.
|
|
19
|
+
def self.newfiletype(name, &block)
|
|
20
|
+
@filetypes ||= {}
|
|
21
|
+
|
|
22
|
+
klass = genclass(
|
|
23
|
+
name,
|
|
24
|
+
:block => block,
|
|
25
|
+
:prefix => "FileType",
|
|
26
|
+
:hash => @filetypes
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
# Rename the read and write methods, so that we're sure they
|
|
30
|
+
# maintain the stats.
|
|
31
|
+
klass.class_eval do
|
|
32
|
+
# Rename the read method
|
|
33
|
+
define_method(:real_read, instance_method(:read))
|
|
34
|
+
define_method(:read) do
|
|
35
|
+
begin
|
|
36
|
+
val = real_read
|
|
37
|
+
@loaded = Time.now
|
|
38
|
+
if val
|
|
39
|
+
return val.gsub(/# HEADER.*\n/,'')
|
|
40
|
+
else
|
|
41
|
+
return ""
|
|
42
|
+
end
|
|
43
|
+
rescue Puppet::Error => detail
|
|
44
|
+
raise
|
|
45
|
+
rescue => detail
|
|
46
|
+
puts detail.backtrace if Puppet[:trace]
|
|
47
|
+
raise Puppet::Error, "#{self.class} could not read #{@path}: #{detail}"
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# And then the write method
|
|
52
|
+
define_method(:real_write, instance_method(:write))
|
|
53
|
+
define_method(:write) do |text|
|
|
54
|
+
begin
|
|
55
|
+
val = real_write(text)
|
|
56
|
+
@synced = Time.now
|
|
57
|
+
return val
|
|
58
|
+
rescue Puppet::Error => detail
|
|
59
|
+
raise
|
|
60
|
+
rescue => detail
|
|
61
|
+
puts detail.backtrace if Puppet[:debug]
|
|
62
|
+
raise Puppet::Error, "#{self.class} could not write #{@path}: #{detail}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def self.filetype(type)
|
|
69
|
+
@filetypes[type]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Pick or create a filebucket to use.
|
|
73
|
+
def bucket
|
|
74
|
+
@bucket ||= Puppet::Type.type(:filebucket).mkdefaultbucket.bucket
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def initialize(path)
|
|
78
|
+
raise ArgumentError.new("Path is nil") if path.nil?
|
|
79
|
+
@path = path
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Arguments that will be passed to the execute method. Will set the uid
|
|
83
|
+
# to the target user if the target user and the current user are not
|
|
84
|
+
# the same
|
|
85
|
+
def cronargs
|
|
86
|
+
if uid = Puppet::Util.uid(@path) and uid == Puppet::Util::SUIDManager.uid
|
|
87
|
+
{:failonfail => true, :combine => true}
|
|
88
|
+
else
|
|
89
|
+
{:failonfail => true, :combine => true, :uid => @path}
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Operate on plain files.
|
|
94
|
+
newfiletype(:flat) do
|
|
95
|
+
# Back the file up before replacing it.
|
|
96
|
+
def backup
|
|
97
|
+
bucket.backup(@path) if File.exists?(@path)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Read the file.
|
|
101
|
+
def read
|
|
102
|
+
if File.exist?(@path)
|
|
103
|
+
File.read(@path)
|
|
104
|
+
else
|
|
105
|
+
return nil
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Remove the file.
|
|
110
|
+
def remove
|
|
111
|
+
File.unlink(@path) if File.exist?(@path)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Overwrite the file.
|
|
115
|
+
def write(text)
|
|
116
|
+
tf = Tempfile.new("puppet")
|
|
117
|
+
tf.print text; tf.flush
|
|
118
|
+
FileUtils.cp(tf.path, @path)
|
|
119
|
+
tf.close
|
|
120
|
+
# If SELinux is present, we need to ensure the file has its expected context
|
|
121
|
+
set_selinux_default_context(@path)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Operate on plain files.
|
|
126
|
+
newfiletype(:ram) do
|
|
127
|
+
@@tabs = {}
|
|
128
|
+
|
|
129
|
+
def self.clear
|
|
130
|
+
@@tabs.clear
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def initialize(path)
|
|
134
|
+
super
|
|
135
|
+
@@tabs[@path] ||= ""
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Read the file.
|
|
139
|
+
def read
|
|
140
|
+
Puppet.info "Reading #{@path} from RAM"
|
|
141
|
+
@@tabs[@path]
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Remove the file.
|
|
145
|
+
def remove
|
|
146
|
+
Puppet.info "Removing #{@path} from RAM"
|
|
147
|
+
@@tabs[@path] = ""
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Overwrite the file.
|
|
151
|
+
def write(text)
|
|
152
|
+
Puppet.info "Writing #{@path} to RAM"
|
|
153
|
+
@@tabs[@path] = text
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Handle Linux-style cron tabs.
|
|
158
|
+
newfiletype(:crontab) do
|
|
159
|
+
def initialize(user)
|
|
160
|
+
self.path = user
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def path=(user)
|
|
164
|
+
begin
|
|
165
|
+
@uid = Puppet::Util.uid(user)
|
|
166
|
+
rescue Puppet::Error => detail
|
|
167
|
+
raise Puppet::Error, "Could not retrieve user #{user}: #{detail}", detail.backtrace
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# XXX We have to have the user name, not the uid, because some
|
|
171
|
+
# systems *cough*linux*cough* require it that way
|
|
172
|
+
@path = user
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Read a specific @path's cron tab.
|
|
176
|
+
def read
|
|
177
|
+
%x{#{cmdbase} -l 2>/dev/null}
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
# Remove a specific @path's cron tab.
|
|
181
|
+
def remove
|
|
182
|
+
if %w{Darwin FreeBSD}.include?(Facter.value("operatingsystem"))
|
|
183
|
+
%x{/bin/echo yes | #{cmdbase} -r 2>/dev/null}
|
|
184
|
+
else
|
|
185
|
+
%x{#{cmdbase} -r 2>/dev/null}
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Overwrite a specific @path's cron tab; must be passed the @path name
|
|
190
|
+
# and the text with which to create the cron tab.
|
|
191
|
+
def write(text)
|
|
192
|
+
IO.popen("#{cmdbase()} -", "w") { |p|
|
|
193
|
+
p.print text
|
|
194
|
+
}
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
private
|
|
198
|
+
|
|
199
|
+
# Only add the -u flag when the @path is different. Fedora apparently
|
|
200
|
+
# does not think I should be allowed to set the @path to my own user name
|
|
201
|
+
def cmdbase
|
|
202
|
+
cmd = nil
|
|
203
|
+
if @uid == Puppet::Util::SUIDManager.uid || Facter.value(:operatingsystem) == "HP-UX"
|
|
204
|
+
return "crontab"
|
|
205
|
+
else
|
|
206
|
+
return "crontab -u #{@path}"
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
# SunOS has completely different cron commands; this class implements
|
|
212
|
+
# its versions.
|
|
213
|
+
newfiletype(:suntab) do
|
|
214
|
+
# Read a specific @path's cron tab.
|
|
215
|
+
def read
|
|
216
|
+
Puppet::Util.execute(%w{crontab -l}, cronargs)
|
|
217
|
+
rescue => detail
|
|
218
|
+
case detail.to_s
|
|
219
|
+
when /can't open your crontab/
|
|
220
|
+
return ""
|
|
221
|
+
when /you are not authorized to use cron/
|
|
222
|
+
raise Puppet::Error, "User #{@path} not authorized to use cron", detail.backtrace
|
|
223
|
+
else
|
|
224
|
+
raise Puppet::Error, "Could not read crontab for #{@path}: #{detail}", detail.backtrace
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# Remove a specific @path's cron tab.
|
|
229
|
+
def remove
|
|
230
|
+
Puppet::Util.execute(%w{crontab -r}, cronargs)
|
|
231
|
+
rescue => detail
|
|
232
|
+
raise Puppet::Error, "Could not remove crontab for #{@path}: #{detail}", detail.backtrace
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
# Overwrite a specific @path's cron tab; must be passed the @path name
|
|
236
|
+
# and the text with which to create the cron tab.
|
|
237
|
+
def write(text)
|
|
238
|
+
output_file = Tempfile.new("puppet_suntab")
|
|
239
|
+
begin
|
|
240
|
+
output_file.print text
|
|
241
|
+
output_file.close
|
|
242
|
+
# We have to chown the stupid file to the user.
|
|
243
|
+
File.chown(Puppet::Util.uid(@path), nil, output_file.path)
|
|
244
|
+
Puppet::Util.execute(["crontab", output_file.path], cronargs)
|
|
245
|
+
rescue => detail
|
|
246
|
+
raise Puppet::Error, "Could not write crontab for #{@path}: #{detail}", detail.backtrace
|
|
247
|
+
ensure
|
|
248
|
+
output_file.close
|
|
249
|
+
output_file.unlink
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# Support for AIX crontab with output different than suntab's crontab command.
|
|
255
|
+
newfiletype(:aixtab) do
|
|
256
|
+
# Read a specific @path's cron tab.
|
|
257
|
+
def read
|
|
258
|
+
Puppet::Util.execute(%w{crontab -l}, cronargs)
|
|
259
|
+
rescue => detail
|
|
260
|
+
case detail.to_s
|
|
261
|
+
when /Cannot open a file in the .* directory/
|
|
262
|
+
return ""
|
|
263
|
+
when /You are not authorized to use the cron command/
|
|
264
|
+
raise Puppet::Error, "User #{@path} not authorized to use cron", detail.backtrace
|
|
265
|
+
else
|
|
266
|
+
raise Puppet::Error, "Could not read crontab for #{@path}: #{detail}", detail.backtrace
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
# Remove a specific @path's cron tab.
|
|
271
|
+
def remove
|
|
272
|
+
Puppet::Util.execute(%w{crontab -r}, cronargs)
|
|
273
|
+
rescue => detail
|
|
274
|
+
raise Puppet::Error, "Could not remove crontab for #{@path}: #{detail}", detail.backtrace
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# Overwrite a specific @path's cron tab; must be passed the @path name
|
|
278
|
+
# and the text with which to create the cron tab.
|
|
279
|
+
def write(text)
|
|
280
|
+
output_file = Tempfile.new("puppet_aixtab")
|
|
281
|
+
|
|
282
|
+
begin
|
|
283
|
+
output_file.print text
|
|
284
|
+
output_file.close
|
|
285
|
+
# We have to chown the stupid file to the user.
|
|
286
|
+
File.chown(Puppet::Util.uid(@path), nil, output_file.path)
|
|
287
|
+
Puppet::Util.execute(["crontab", output_file.path], cronargs)
|
|
288
|
+
rescue => detail
|
|
289
|
+
raise Puppet::Error, "Could not write crontab for #{@path}: #{detail}", detail.backtrace
|
|
290
|
+
ensure
|
|
291
|
+
output_file.close
|
|
292
|
+
output_file.unlink
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
end
|
|
296
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'puppet/simple_graph'
|
|
3
|
+
|
|
4
|
+
# A module that handles the small amount of graph stuff in Puppet.
|
|
5
|
+
module Puppet::Util::Graph
|
|
6
|
+
# Make a graph where each of our children gets converted to
|
|
7
|
+
# the receiving end of an edge. Call the same thing on all
|
|
8
|
+
# of our children, optionally using a block
|
|
9
|
+
def to_graph(graph = nil, &block)
|
|
10
|
+
# Allow our calling function to send in a graph, so that we
|
|
11
|
+
# can call this recursively with one graph.
|
|
12
|
+
graph ||= Puppet::SimpleGraph.new
|
|
13
|
+
|
|
14
|
+
self.each do |child|
|
|
15
|
+
unless block_given? and ! yield(child)
|
|
16
|
+
graph.add_edge(self, child)
|
|
17
|
+
|
|
18
|
+
child.to_graph(graph, &block) if child.respond_to?(:to_graph)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Do a topsort, which will throw an exception if the graph is cyclic.
|
|
23
|
+
|
|
24
|
+
graph
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|