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,732 @@
|
|
|
1
|
+
require 'puppet'
|
|
2
|
+
require 'puppet/network/authstore'
|
|
3
|
+
require 'webrick/httpstatus'
|
|
4
|
+
require 'cgi'
|
|
5
|
+
require 'delegate'
|
|
6
|
+
require 'sync'
|
|
7
|
+
require 'puppet/network/handler'
|
|
8
|
+
|
|
9
|
+
require 'puppet/network/handler'
|
|
10
|
+
require 'puppet/network/xmlrpc/server'
|
|
11
|
+
require 'puppet/file_serving'
|
|
12
|
+
require 'puppet/file_serving/metadata'
|
|
13
|
+
require 'puppet/network/handler'
|
|
14
|
+
|
|
15
|
+
class Puppet::Network::Handler
|
|
16
|
+
AuthStoreError = Puppet::AuthStoreError
|
|
17
|
+
class FileServerError < Puppet::Error; end
|
|
18
|
+
class FileServer < Handler
|
|
19
|
+
desc "The interface to Puppet's fileserving abilities."
|
|
20
|
+
|
|
21
|
+
attr_accessor :local
|
|
22
|
+
|
|
23
|
+
CHECKPARAMS = [:mode, :type, :owner, :group, :checksum]
|
|
24
|
+
|
|
25
|
+
# Special filserver module for puppet's module system
|
|
26
|
+
MODULES = "modules"
|
|
27
|
+
PLUGINS = "plugins"
|
|
28
|
+
|
|
29
|
+
@interface = XMLRPC::Service::Interface.new("fileserver") { |iface|
|
|
30
|
+
iface.add_method("string describe(string, string)")
|
|
31
|
+
iface.add_method("string list(string, string, boolean, array)")
|
|
32
|
+
iface.add_method("string retrieve(string, string)")
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
def self.params
|
|
36
|
+
CHECKPARAMS.dup
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# If the configuration file exists, then create (if necessary) a LoadedFile
|
|
40
|
+
# object to manage it; else, return nil.
|
|
41
|
+
def configuration
|
|
42
|
+
# Short-circuit the default case.
|
|
43
|
+
return @configuration if defined?(@configuration)
|
|
44
|
+
|
|
45
|
+
config_path = @passed_configuration_path || Puppet[:fileserverconfig]
|
|
46
|
+
return nil unless FileTest.exist?(config_path)
|
|
47
|
+
|
|
48
|
+
# The file exists but we don't have a LoadedFile instance for it.
|
|
49
|
+
@configuration = Puppet::Util::LoadedFile.new(config_path)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Create our default mounts for modules and plugins. This is duplicated code,
|
|
53
|
+
# but I'm not really worried about that.
|
|
54
|
+
def create_default_mounts
|
|
55
|
+
@mounts = {}
|
|
56
|
+
Puppet.debug "No file server configuration file; autocreating #{MODULES} mount with default permissions"
|
|
57
|
+
mount = Mount.new(MODULES)
|
|
58
|
+
mount.allow("*")
|
|
59
|
+
@mounts[MODULES] = mount
|
|
60
|
+
|
|
61
|
+
Puppet.debug "No file server configuration file; autocreating #{PLUGINS} mount with default permissions"
|
|
62
|
+
mount = PluginMount.new(PLUGINS)
|
|
63
|
+
mount.allow("*")
|
|
64
|
+
@mounts[PLUGINS] = mount
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Describe a given file. This returns all of the manageable aspects
|
|
68
|
+
# of that file.
|
|
69
|
+
def describe(url, links = :follow, client = nil, clientip = nil)
|
|
70
|
+
links = links.intern if links.is_a? String
|
|
71
|
+
|
|
72
|
+
mount, path = convert(url, client, clientip)
|
|
73
|
+
|
|
74
|
+
mount.debug("Describing #{url} for #{client}") if client
|
|
75
|
+
|
|
76
|
+
# use the mount to resolve the path for us.
|
|
77
|
+
return "" unless full_path = mount.file_path(path, client)
|
|
78
|
+
|
|
79
|
+
metadata = Puppet::FileServing::Metadata.new(url, :path => full_path, :links => links)
|
|
80
|
+
|
|
81
|
+
return "" unless metadata.exist?
|
|
82
|
+
|
|
83
|
+
begin
|
|
84
|
+
metadata.collect
|
|
85
|
+
rescue => detail
|
|
86
|
+
puts detail.backtrace if Puppet[:trace]
|
|
87
|
+
Puppet.err detail
|
|
88
|
+
return ""
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
metadata.attributes_with_tabs
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Create a new fileserving module.
|
|
95
|
+
def initialize(hash = {})
|
|
96
|
+
@mounts = {}
|
|
97
|
+
@files = {}
|
|
98
|
+
|
|
99
|
+
@local = hash[:Local]
|
|
100
|
+
|
|
101
|
+
@noreadconfig = true if hash[:Config] == false
|
|
102
|
+
|
|
103
|
+
@passed_configuration_path = hash[:Config]
|
|
104
|
+
|
|
105
|
+
if hash.include?(:Mount)
|
|
106
|
+
@passedconfig = true
|
|
107
|
+
raise Puppet::DevError, "Invalid mount hash #{hash[:Mount].inspect}" unless hash[:Mount].is_a?(Hash)
|
|
108
|
+
|
|
109
|
+
hash[:Mount].each { |dir, name|
|
|
110
|
+
self.mount(dir, name) if FileTest.exists?(dir)
|
|
111
|
+
}
|
|
112
|
+
self.mount(nil, MODULES)
|
|
113
|
+
self.mount(nil, PLUGINS)
|
|
114
|
+
else
|
|
115
|
+
@passedconfig = false
|
|
116
|
+
if configuration
|
|
117
|
+
readconfig(false) # don't check the file the first time.
|
|
118
|
+
else
|
|
119
|
+
create_default_mounts
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# List a specific directory's contents.
|
|
125
|
+
def list(url, links = :ignore, recurse = false, ignore = false, client = nil, clientip = nil)
|
|
126
|
+
mount, path = convert(url, client, clientip)
|
|
127
|
+
|
|
128
|
+
mount.debug "Listing #{url} for #{client}" if client
|
|
129
|
+
|
|
130
|
+
return "" unless mount.path_exists?(path, client)
|
|
131
|
+
|
|
132
|
+
desc = mount.list(path, recurse, ignore, client)
|
|
133
|
+
|
|
134
|
+
if desc.length == 0
|
|
135
|
+
mount.notice "Got no information on //#{mount}/#{path}"
|
|
136
|
+
return ""
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
desc.collect { |sub| sub.join("\t") }.join("\n")
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def local?
|
|
143
|
+
self.local
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# Is a given mount available?
|
|
147
|
+
def mounted?(name)
|
|
148
|
+
@mounts.include?(name)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Mount a new directory with a name.
|
|
152
|
+
def mount(path, name)
|
|
153
|
+
if @mounts.include?(name)
|
|
154
|
+
if @mounts[name] != path
|
|
155
|
+
raise FileServerError, "#{@mounts[name].path} is already mounted at #{name}"
|
|
156
|
+
else
|
|
157
|
+
# it's already mounted; no problem
|
|
158
|
+
return
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# Let the mounts do their own error-checking.
|
|
163
|
+
@mounts[name] = Mount.new(name, path)
|
|
164
|
+
@mounts[name].info "Mounted #{path}"
|
|
165
|
+
|
|
166
|
+
@mounts[name]
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Retrieve a file from the local disk and pass it to the remote
|
|
170
|
+
# client.
|
|
171
|
+
def retrieve(url, links = :ignore, client = nil, clientip = nil)
|
|
172
|
+
links = links.intern if links.is_a? String
|
|
173
|
+
|
|
174
|
+
mount, path = convert(url, client, clientip)
|
|
175
|
+
|
|
176
|
+
mount.info "Sending #{url} to #{client}" if client
|
|
177
|
+
|
|
178
|
+
unless mount.path_exists?(path, client)
|
|
179
|
+
mount.debug "#{mount} reported that #{path} does not exist"
|
|
180
|
+
return ""
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
links = links.intern if links.is_a? String
|
|
184
|
+
|
|
185
|
+
if links == :ignore and FileTest.symlink?(path)
|
|
186
|
+
mount.debug "I think that #{path} is a symlink and we're ignoring them"
|
|
187
|
+
return ""
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
str = mount.read_file(path, client)
|
|
191
|
+
|
|
192
|
+
if @local
|
|
193
|
+
return str
|
|
194
|
+
else
|
|
195
|
+
return CGI.escape(str)
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def umount(name)
|
|
200
|
+
@mounts.delete(name) if @mounts.include? name
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
private
|
|
204
|
+
|
|
205
|
+
def authcheck(file, mount, client, clientip)
|
|
206
|
+
# If we're local, don't bother passing in information.
|
|
207
|
+
if local?
|
|
208
|
+
client = nil
|
|
209
|
+
clientip = nil
|
|
210
|
+
end
|
|
211
|
+
unless mount.allowed?(client, clientip)
|
|
212
|
+
mount.warning "#{client} cannot access #{file}"
|
|
213
|
+
raise Puppet::AuthorizationError, "Cannot access #{mount}"
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
# Take a URL and some client info and return a mount and relative
|
|
218
|
+
# path pair.
|
|
219
|
+
#
|
|
220
|
+
def convert(url, client, clientip)
|
|
221
|
+
readconfig
|
|
222
|
+
|
|
223
|
+
url = URI.unescape(url)
|
|
224
|
+
|
|
225
|
+
mount, stub = splitpath(url, client)
|
|
226
|
+
|
|
227
|
+
authcheck(url, mount, client, clientip)
|
|
228
|
+
|
|
229
|
+
return mount, stub
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
# Return the mount for the Puppet modules; allows file copying from
|
|
233
|
+
# the modules.
|
|
234
|
+
def modules_mount(module_name, client)
|
|
235
|
+
# Find our environment, if we have one.
|
|
236
|
+
unless hostname = (client || Facter.value("hostname"))
|
|
237
|
+
raise ArgumentError, "Could not find hostname"
|
|
238
|
+
end
|
|
239
|
+
env = (node = Puppet::Node.indirection.find(hostname)) ? node.environment : nil
|
|
240
|
+
|
|
241
|
+
# And use the environment to look up the module.
|
|
242
|
+
(mod = Puppet::Node::Environment.new(env).module(module_name) and mod.files?) ? @mounts[MODULES].copy(mod.name, mod.file_directory) : nil
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Read the configuration file.
|
|
246
|
+
def readconfig(check = true)
|
|
247
|
+
return if @noreadconfig
|
|
248
|
+
|
|
249
|
+
return unless configuration
|
|
250
|
+
|
|
251
|
+
return if check and ! @configuration.changed?
|
|
252
|
+
|
|
253
|
+
newmounts = {}
|
|
254
|
+
begin
|
|
255
|
+
File.open(@configuration.file) { |f|
|
|
256
|
+
mount = nil
|
|
257
|
+
count = 1
|
|
258
|
+
f.each_line { |line|
|
|
259
|
+
case line
|
|
260
|
+
when /^\s*#/; next # skip comments
|
|
261
|
+
when /^\s*$/; next # skip blank lines
|
|
262
|
+
when /\[([-\w]+)\]/
|
|
263
|
+
name = $1
|
|
264
|
+
raise FileServerError, "#{newmounts[name]} is already mounted as #{name} in #{@configuration.file}" if newmounts.include?(name)
|
|
265
|
+
mount = Mount.new(name)
|
|
266
|
+
newmounts[name] = mount
|
|
267
|
+
when /^\s*(\w+)\s+(.+)$/
|
|
268
|
+
var = $1
|
|
269
|
+
value = $2
|
|
270
|
+
case var
|
|
271
|
+
when "path"
|
|
272
|
+
raise FileServerError.new("No mount specified for argument #{var} #{value}") unless mount
|
|
273
|
+
if mount.name == MODULES
|
|
274
|
+
Puppet.warning "The '#{mount.name}' module can not have a path. Ignoring attempt to set it"
|
|
275
|
+
else
|
|
276
|
+
begin
|
|
277
|
+
mount.path = value
|
|
278
|
+
rescue FileServerError => detail
|
|
279
|
+
Puppet.err "Removing mount #{mount.name}: #{detail}"
|
|
280
|
+
newmounts.delete(mount.name)
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
when "allow"
|
|
284
|
+
raise FileServerError.new("No mount specified for argument #{var} #{value}") unless mount
|
|
285
|
+
value.split(/\s*,\s*/).each { |val|
|
|
286
|
+
begin
|
|
287
|
+
mount.info "allowing #{val} access"
|
|
288
|
+
mount.allow(val)
|
|
289
|
+
rescue AuthStoreError => detail
|
|
290
|
+
puts detail.backtrace if Puppet[:trace]
|
|
291
|
+
|
|
292
|
+
raise FileServerError.new(
|
|
293
|
+
detail.to_s,
|
|
294
|
+
|
|
295
|
+
count, @configuration.file)
|
|
296
|
+
end
|
|
297
|
+
}
|
|
298
|
+
when "deny"
|
|
299
|
+
raise FileServerError.new("No mount specified for argument #{var} #{value}") unless mount
|
|
300
|
+
value.split(/\s*,\s*/).each { |val|
|
|
301
|
+
begin
|
|
302
|
+
mount.info "denying #{val} access"
|
|
303
|
+
mount.deny(val)
|
|
304
|
+
rescue AuthStoreError => detail
|
|
305
|
+
|
|
306
|
+
raise FileServerError.new(
|
|
307
|
+
detail.to_s,
|
|
308
|
+
|
|
309
|
+
count, @configuration.file)
|
|
310
|
+
end
|
|
311
|
+
}
|
|
312
|
+
else
|
|
313
|
+
raise FileServerError.new("Invalid argument '#{var}'", count, @configuration.file)
|
|
314
|
+
end
|
|
315
|
+
else
|
|
316
|
+
raise FileServerError.new("Invalid line '#{line.chomp}'", count, @configuration.file)
|
|
317
|
+
end
|
|
318
|
+
count += 1
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
rescue Errno::EACCES => detail
|
|
322
|
+
Puppet.err "FileServer error: Cannot read #{@configuration}; cannot serve"
|
|
323
|
+
#raise Puppet::Error, "Cannot read #{@configuration}"
|
|
324
|
+
rescue Errno::ENOENT => detail
|
|
325
|
+
Puppet.err "FileServer error: '#{@configuration}' does not exist; cannot serve"
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
unless newmounts[MODULES]
|
|
329
|
+
Puppet.debug "No #{MODULES} mount given; autocreating with default permissions"
|
|
330
|
+
mount = Mount.new(MODULES)
|
|
331
|
+
mount.allow("*")
|
|
332
|
+
newmounts[MODULES] = mount
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
unless newmounts[PLUGINS]
|
|
336
|
+
Puppet.debug "No #{PLUGINS} mount given; autocreating with default permissions"
|
|
337
|
+
mount = PluginMount.new(PLUGINS)
|
|
338
|
+
mount.allow("*")
|
|
339
|
+
newmounts[PLUGINS] = mount
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
unless newmounts[PLUGINS].valid?
|
|
343
|
+
Puppet.debug "No path given for #{PLUGINS} mount; creating a special PluginMount"
|
|
344
|
+
# We end up here if the user has specified access rules for
|
|
345
|
+
# the plugins mount, without specifying a path (which means
|
|
346
|
+
# they want to have the default behaviour for the mount, but
|
|
347
|
+
# special access control). So we need to move all the
|
|
348
|
+
# user-specified access controls into the new PluginMount
|
|
349
|
+
# object...
|
|
350
|
+
mount = PluginMount.new(PLUGINS)
|
|
351
|
+
# Yes, you're allowed to hate me for this.
|
|
352
|
+
|
|
353
|
+
mount.instance_variable_set(
|
|
354
|
+
:@declarations,
|
|
355
|
+
|
|
356
|
+
newmounts[PLUGINS].instance_variable_get(:@declarations)
|
|
357
|
+
)
|
|
358
|
+
newmounts[PLUGINS] = mount
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
# Verify each of the mounts are valid.
|
|
362
|
+
# We let the check raise an error, so that it can raise an error
|
|
363
|
+
# pointing to the specific problem.
|
|
364
|
+
newmounts.each { |name, mount|
|
|
365
|
+
raise FileServerError, "Invalid mount #{name}" unless mount.valid?
|
|
366
|
+
}
|
|
367
|
+
@mounts = newmounts
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
# Split the path into the separate mount point and path.
|
|
371
|
+
def splitpath(dir, client)
|
|
372
|
+
# the dir is based on one of the mounts
|
|
373
|
+
# so first retrieve the mount path
|
|
374
|
+
mount = nil
|
|
375
|
+
path = nil
|
|
376
|
+
if dir =~ %r{/([-\w]+)}
|
|
377
|
+
# Strip off the mount name.
|
|
378
|
+
mount_name, path = dir.sub(%r{^/}, '').split(File::Separator, 2)
|
|
379
|
+
|
|
380
|
+
unless mount = modules_mount(mount_name, client)
|
|
381
|
+
unless mount = @mounts[mount_name]
|
|
382
|
+
raise FileServerError, "Fileserver module '#{mount_name}' not mounted"
|
|
383
|
+
end
|
|
384
|
+
end
|
|
385
|
+
else
|
|
386
|
+
raise FileServerError, "Fileserver error: Invalid path '#{dir}'"
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
if path.nil? or path == ''
|
|
390
|
+
path = '/'
|
|
391
|
+
elsif path
|
|
392
|
+
# Remove any double slashes that might have occurred
|
|
393
|
+
path = URI.unescape(path.gsub(/\/\//, "/"))
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
return mount, path
|
|
397
|
+
end
|
|
398
|
+
|
|
399
|
+
def to_s
|
|
400
|
+
"fileserver"
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
# A simple class for wrapping mount points. Instances of this class
|
|
404
|
+
# don't know about the enclosing object; they're mainly just used for
|
|
405
|
+
# authorization.
|
|
406
|
+
class Mount < Puppet::Network::AuthStore
|
|
407
|
+
attr_reader :name
|
|
408
|
+
|
|
409
|
+
@@syncs = {}
|
|
410
|
+
|
|
411
|
+
@@files = {}
|
|
412
|
+
|
|
413
|
+
Puppet::Util.logmethods(self, true)
|
|
414
|
+
|
|
415
|
+
# Create a map for a specific client.
|
|
416
|
+
def clientmap(client)
|
|
417
|
+
{
|
|
418
|
+
"h" => client.sub(/\..*$/, ""),
|
|
419
|
+
"H" => client,
|
|
420
|
+
"d" => client.sub(/[^.]+\./, "") # domain name
|
|
421
|
+
}
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
# Replace % patterns as appropriate.
|
|
425
|
+
def expand(path, client = nil)
|
|
426
|
+
# This map should probably be moved into a method.
|
|
427
|
+
map = nil
|
|
428
|
+
|
|
429
|
+
if client
|
|
430
|
+
map = clientmap(client)
|
|
431
|
+
else
|
|
432
|
+
Puppet.notice "No client; expanding '#{path}' with local host"
|
|
433
|
+
# Else, use the local information
|
|
434
|
+
map = localmap
|
|
435
|
+
end
|
|
436
|
+
path.gsub(/%(.)/) do |v|
|
|
437
|
+
key = $1
|
|
438
|
+
if key == "%"
|
|
439
|
+
"%"
|
|
440
|
+
else
|
|
441
|
+
map[key] || v
|
|
442
|
+
end
|
|
443
|
+
end
|
|
444
|
+
end
|
|
445
|
+
|
|
446
|
+
# Do we have any patterns in our path, yo?
|
|
447
|
+
def expandable?
|
|
448
|
+
if defined?(@expandable)
|
|
449
|
+
@expandable
|
|
450
|
+
else
|
|
451
|
+
false
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
# Return a fully qualified path, given a short path and
|
|
456
|
+
# possibly a client name.
|
|
457
|
+
def file_path(relative_path, node = nil)
|
|
458
|
+
full_path = path(node)
|
|
459
|
+
|
|
460
|
+
unless full_path
|
|
461
|
+
p self
|
|
462
|
+
raise ArgumentError.new("Mounts without paths are not usable") unless full_path
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
# If there's no relative path name, then we're serving the mount itself.
|
|
466
|
+
return full_path unless relative_path and relative_path != "/"
|
|
467
|
+
|
|
468
|
+
File.join(full_path, relative_path)
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
# Create out object. It must have a name.
|
|
472
|
+
def initialize(name, path = nil)
|
|
473
|
+
unless name =~ %r{^[-\w]+$}
|
|
474
|
+
raise FileServerError, "Invalid name format '#{name}'"
|
|
475
|
+
end
|
|
476
|
+
@name = name
|
|
477
|
+
|
|
478
|
+
if path
|
|
479
|
+
self.path = path
|
|
480
|
+
else
|
|
481
|
+
@path = nil
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
@files = {}
|
|
485
|
+
|
|
486
|
+
super()
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
def fileobj(path, links, client)
|
|
490
|
+
obj = nil
|
|
491
|
+
if obj = @files[file_path(path, client)]
|
|
492
|
+
# This can only happen in local fileserving, but it's an
|
|
493
|
+
# important one. It'd be nice if we didn't just set
|
|
494
|
+
# the check params every time, but I'm not sure it's worth
|
|
495
|
+
# the effort.
|
|
496
|
+
obj[:audit] = CHECKPARAMS
|
|
497
|
+
else
|
|
498
|
+
|
|
499
|
+
obj = Puppet::Type.type(:file).new(
|
|
500
|
+
|
|
501
|
+
:name => file_path(path, client),
|
|
502
|
+
|
|
503
|
+
:audit => CHECKPARAMS
|
|
504
|
+
)
|
|
505
|
+
@files[file_path(path, client)] = obj
|
|
506
|
+
end
|
|
507
|
+
|
|
508
|
+
if links == :manage
|
|
509
|
+
links = :follow
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
# This, ah, might be completely redundant
|
|
513
|
+
obj[:links] = links unless obj[:links] == links
|
|
514
|
+
|
|
515
|
+
obj
|
|
516
|
+
end
|
|
517
|
+
|
|
518
|
+
# Read the contents of the file at the relative path given.
|
|
519
|
+
def read_file(relpath, client)
|
|
520
|
+
File.read(file_path(relpath, client))
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
# Cache this manufactured map, since if it's used it's likely
|
|
524
|
+
# to get used a lot.
|
|
525
|
+
def localmap
|
|
526
|
+
unless defined?(@@localmap)
|
|
527
|
+
@@localmap = {
|
|
528
|
+
"h" => Facter.value("hostname"),
|
|
529
|
+
"H" => [Facter.value("hostname"),
|
|
530
|
+
Facter.value("domain")].join("."),
|
|
531
|
+
"d" => Facter.value("domain")
|
|
532
|
+
}
|
|
533
|
+
end
|
|
534
|
+
@@localmap
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
# Return the path as appropriate, expanding as necessary.
|
|
538
|
+
def path(client = nil)
|
|
539
|
+
if expandable?
|
|
540
|
+
return expand(@path, client)
|
|
541
|
+
else
|
|
542
|
+
return @path
|
|
543
|
+
end
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
# Set the path.
|
|
547
|
+
def path=(path)
|
|
548
|
+
# FIXME: For now, just don't validate paths with replacement
|
|
549
|
+
# patterns in them.
|
|
550
|
+
if path =~ /%./
|
|
551
|
+
# Mark that we're expandable.
|
|
552
|
+
@expandable = true
|
|
553
|
+
else
|
|
554
|
+
raise FileServerError, "#{path} does not exist" unless FileTest.exists?(path)
|
|
555
|
+
raise FileServerError, "#{path} is not a directory" unless FileTest.directory?(path)
|
|
556
|
+
raise FileServerError, "#{path} is not readable" unless FileTest.readable?(path)
|
|
557
|
+
@expandable = false
|
|
558
|
+
end
|
|
559
|
+
@path = path
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
# Verify that the path given exists within this mount's subtree.
|
|
563
|
+
#
|
|
564
|
+
def path_exists?(relpath, client = nil)
|
|
565
|
+
File.exists?(file_path(relpath, client))
|
|
566
|
+
end
|
|
567
|
+
|
|
568
|
+
# Return the current values for the object.
|
|
569
|
+
def properties(obj)
|
|
570
|
+
obj.retrieve.inject({}) { |props, ary| props[ary[0].name] = ary[1]; props }
|
|
571
|
+
end
|
|
572
|
+
|
|
573
|
+
# Retrieve a specific directory relative to a mount point.
|
|
574
|
+
# If they pass in a client, then expand as necessary.
|
|
575
|
+
def subdir(dir = nil, client = nil)
|
|
576
|
+
basedir = self.path(client)
|
|
577
|
+
|
|
578
|
+
dirname = if dir
|
|
579
|
+
File.join(basedir, *dir.split("/"))
|
|
580
|
+
else
|
|
581
|
+
basedir
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
dirname
|
|
585
|
+
end
|
|
586
|
+
|
|
587
|
+
def sync(path)
|
|
588
|
+
@@syncs[path] ||= Sync.new
|
|
589
|
+
@@syncs[path]
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
def to_s
|
|
593
|
+
"mount[#{@name}]"
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
# Verify our configuration is valid. This should really check to
|
|
597
|
+
# make sure at least someone will be allowed, but, eh.
|
|
598
|
+
def valid?
|
|
599
|
+
if name == MODULES
|
|
600
|
+
return @path.nil?
|
|
601
|
+
else
|
|
602
|
+
return ! @path.nil?
|
|
603
|
+
end
|
|
604
|
+
end
|
|
605
|
+
|
|
606
|
+
# Return a new mount with the same properties as +self+, except
|
|
607
|
+
# with a different name and path.
|
|
608
|
+
def copy(name, path)
|
|
609
|
+
result = self.clone
|
|
610
|
+
result.path = path
|
|
611
|
+
result.instance_variable_set(:@name, name)
|
|
612
|
+
result
|
|
613
|
+
end
|
|
614
|
+
|
|
615
|
+
# List the contents of the relative path +relpath+ of this mount.
|
|
616
|
+
#
|
|
617
|
+
# +recurse+ is the number of levels to recurse into the tree,
|
|
618
|
+
# or false to provide no recursion or true if you just want to
|
|
619
|
+
# go for broke.
|
|
620
|
+
#
|
|
621
|
+
# +ignore+ is an array of filenames to ignore when traversing
|
|
622
|
+
# the list.
|
|
623
|
+
#
|
|
624
|
+
# The return value of this method is a complex nest of arrays,
|
|
625
|
+
# which describes a directory tree. Each file or directory is
|
|
626
|
+
# represented by an array, where the first element is the path
|
|
627
|
+
# of the file (relative to the root of the mount), and the
|
|
628
|
+
# second element is the type. A directory is represented by an
|
|
629
|
+
# array as well, where the first element is a "directory" array,
|
|
630
|
+
# while the remaining elements are other file or directory
|
|
631
|
+
# arrays. Confusing? Hell yes. As an added bonus, all names
|
|
632
|
+
# must start with a slash, because... well, I'm fairly certain
|
|
633
|
+
# a complete explanation would involve the words "crack pipe"
|
|
634
|
+
# and "bad batch".
|
|
635
|
+
#
|
|
636
|
+
def list(relpath, recurse, ignore, client = nil)
|
|
637
|
+
abspath = file_path(relpath, client)
|
|
638
|
+
if FileTest.exists?(abspath)
|
|
639
|
+
if FileTest.directory?(abspath) and recurse
|
|
640
|
+
return reclist(abspath, recurse, ignore)
|
|
641
|
+
else
|
|
642
|
+
return [["/", File.stat(abspath).ftype]]
|
|
643
|
+
end
|
|
644
|
+
end
|
|
645
|
+
nil
|
|
646
|
+
end
|
|
647
|
+
|
|
648
|
+
require 'puppet/file_serving'
|
|
649
|
+
require 'puppet/file_serving/fileset'
|
|
650
|
+
def reclist(abspath, recurse, ignore)
|
|
651
|
+
if recurse.is_a?(Fixnum)
|
|
652
|
+
args = { :recurse => true, :recurselimit => recurse, :links => :follow }
|
|
653
|
+
else
|
|
654
|
+
args = { :recurse => recurse, :links => :follow }
|
|
655
|
+
end
|
|
656
|
+
args[:ignore] = ignore if ignore
|
|
657
|
+
fs = Puppet::FileServing::Fileset.new(abspath, args)
|
|
658
|
+
ary = fs.files.collect do |file|
|
|
659
|
+
if file == "."
|
|
660
|
+
file = "/"
|
|
661
|
+
else
|
|
662
|
+
file = File.join("/", file )
|
|
663
|
+
end
|
|
664
|
+
stat = fs.stat(File.join(abspath, file))
|
|
665
|
+
next if stat.nil?
|
|
666
|
+
[ file, stat.ftype ]
|
|
667
|
+
end
|
|
668
|
+
|
|
669
|
+
ary.compact
|
|
670
|
+
end
|
|
671
|
+
|
|
672
|
+
end
|
|
673
|
+
|
|
674
|
+
# A special mount class specifically for the plugins mount -- just
|
|
675
|
+
# has some magic to effectively do a union mount of the 'plugins'
|
|
676
|
+
# directory of all modules.
|
|
677
|
+
#
|
|
678
|
+
class PluginMount < Mount
|
|
679
|
+
def path(client)
|
|
680
|
+
''
|
|
681
|
+
end
|
|
682
|
+
|
|
683
|
+
def mod_path_exists?(mod, relpath, client = nil)
|
|
684
|
+
! mod.plugin(relpath).nil?
|
|
685
|
+
end
|
|
686
|
+
|
|
687
|
+
def path_exists?(relpath, client = nil)
|
|
688
|
+
!valid_modules(client).find { |mod| mod.plugin(relpath) }.nil?
|
|
689
|
+
end
|
|
690
|
+
|
|
691
|
+
def valid?
|
|
692
|
+
true
|
|
693
|
+
end
|
|
694
|
+
|
|
695
|
+
def mod_file_path(mod, relpath, client = nil)
|
|
696
|
+
File.join(mod, PLUGINS, relpath)
|
|
697
|
+
end
|
|
698
|
+
|
|
699
|
+
def file_path(relpath, client = nil)
|
|
700
|
+
return nil unless mod = valid_modules(client).find { |m| m.plugin(relpath) }
|
|
701
|
+
mod.plugin(relpath)
|
|
702
|
+
end
|
|
703
|
+
|
|
704
|
+
# create a list of files by merging all modules
|
|
705
|
+
def list(relpath, recurse, ignore, client = nil)
|
|
706
|
+
result = []
|
|
707
|
+
valid_modules(client).each do |mod|
|
|
708
|
+
if modpath = mod.plugin(relpath)
|
|
709
|
+
if FileTest.directory?(modpath) and recurse
|
|
710
|
+
ary = reclist(modpath, recurse, ignore)
|
|
711
|
+
ary ||= []
|
|
712
|
+
result += ary
|
|
713
|
+
else
|
|
714
|
+
result += [["/", File.stat(modpath).ftype]]
|
|
715
|
+
end
|
|
716
|
+
end
|
|
717
|
+
end
|
|
718
|
+
result
|
|
719
|
+
end
|
|
720
|
+
|
|
721
|
+
private
|
|
722
|
+
def valid_modules(client)
|
|
723
|
+
Puppet::Node::Environment.new.modules.find_all { |mod| mod.exist? }
|
|
724
|
+
end
|
|
725
|
+
|
|
726
|
+
def add_to_filetree(f, filetree)
|
|
727
|
+
first, rest = f.split(File::SEPARATOR, 2)
|
|
728
|
+
end
|
|
729
|
+
end
|
|
730
|
+
end
|
|
731
|
+
end
|
|
732
|
+
|