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,96 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
require 'sync'
|
|
3
|
+
|
|
4
|
+
require 'puppet/util/file_locking'
|
|
5
|
+
|
|
6
|
+
# a class for storing state
|
|
7
|
+
class Puppet::Util::Storage
|
|
8
|
+
include Singleton
|
|
9
|
+
include Puppet::Util
|
|
10
|
+
|
|
11
|
+
def self.state
|
|
12
|
+
@@state
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def initialize
|
|
16
|
+
self.class.load
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Return a hash that will be stored to disk. It's worth noting
|
|
20
|
+
# here that we use the object's full path, not just the name/type
|
|
21
|
+
# combination. At the least, this is useful for those non-isomorphic
|
|
22
|
+
# types like exec, but it also means that if an object changes locations
|
|
23
|
+
# in the configuration it will lose its cache.
|
|
24
|
+
def self.cache(object)
|
|
25
|
+
if object.is_a?(Symbol)
|
|
26
|
+
name = object
|
|
27
|
+
else
|
|
28
|
+
name = object.to_s
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
@@state[name] ||= {}
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.clear
|
|
35
|
+
@@state.clear
|
|
36
|
+
Storage.init
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.init
|
|
40
|
+
@@state = {}
|
|
41
|
+
@@splitchar = "\t"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
self.init
|
|
45
|
+
|
|
46
|
+
def self.load
|
|
47
|
+
Puppet.settings.use(:main) unless FileTest.directory?(Puppet[:statedir])
|
|
48
|
+
|
|
49
|
+
unless File.exists?(Puppet[:statefile])
|
|
50
|
+
self.init unless !@@state.nil?
|
|
51
|
+
return
|
|
52
|
+
end
|
|
53
|
+
unless File.file?(Puppet[:statefile])
|
|
54
|
+
Puppet.warning("Checksumfile #{Puppet[:statefile]} is not a file, ignoring")
|
|
55
|
+
return
|
|
56
|
+
end
|
|
57
|
+
Puppet::Util.benchmark(:debug, "Loaded state") do
|
|
58
|
+
Puppet::Util::FileLocking.readlock(Puppet[:statefile]) do |file|
|
|
59
|
+
begin
|
|
60
|
+
@@state = YAML.load(file)
|
|
61
|
+
rescue => detail
|
|
62
|
+
Puppet.err "Checksumfile #{Puppet[:statefile]} is corrupt (#{detail}); replacing"
|
|
63
|
+
begin
|
|
64
|
+
File.rename(Puppet[:statefile], Puppet[:statefile] + ".bad")
|
|
65
|
+
rescue
|
|
66
|
+
raise Puppet::Error,
|
|
67
|
+
"Could not rename corrupt #{Puppet[:statefile]}; remove manually"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
unless @@state.is_a?(Hash)
|
|
74
|
+
Puppet.err "State got corrupted"
|
|
75
|
+
self.init
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
#Puppet.debug "Loaded state is #{@@state.inspect}"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def self.stateinspect
|
|
82
|
+
@@state.inspect
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def self.store
|
|
86
|
+
Puppet.debug "Storing state"
|
|
87
|
+
|
|
88
|
+
Puppet.info "Creating state file #{Puppet[:statefile]}" unless FileTest.exist?(Puppet[:statefile])
|
|
89
|
+
|
|
90
|
+
Puppet::Util.benchmark(:debug, "Stored state") do
|
|
91
|
+
Puppet::Util::FileLocking.writelock(Puppet[:statefile], 0660) do |file|
|
|
92
|
+
file.print YAML.dump(@@state)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# A module for loading subclasses into an array and retrieving
|
|
2
|
+
# them by name. Also sets up a method for each class so
|
|
3
|
+
# that you can just do Klass.subclass, rather than Klass.subclass(:subclass).
|
|
4
|
+
#
|
|
5
|
+
# This module is currently used by network handlers and clients.
|
|
6
|
+
module Puppet::Util::SubclassLoader
|
|
7
|
+
attr_accessor :loader, :classloader
|
|
8
|
+
|
|
9
|
+
# Iterate over each of the subclasses.
|
|
10
|
+
def each
|
|
11
|
+
@subclasses ||= []
|
|
12
|
+
@subclasses.each { |c| yield c }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# The hook method that sets up subclass loading. We need the name
|
|
16
|
+
# of the method to create and the path in which to look for them.
|
|
17
|
+
def handle_subclasses(name, path)
|
|
18
|
+
raise ArgumentError, "Must be a class to use SubclassLoader" unless self.is_a?(Class)
|
|
19
|
+
@subclasses = []
|
|
20
|
+
|
|
21
|
+
@loader = Puppet::Util::Autoload.new(
|
|
22
|
+
self,
|
|
23
|
+
|
|
24
|
+
path, :wrap => false
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
@subclassname = name
|
|
28
|
+
|
|
29
|
+
@classloader = self
|
|
30
|
+
|
|
31
|
+
# Now create a method for retrieving these subclasses by name. Note
|
|
32
|
+
# that we're defining a class method here, not an instance.
|
|
33
|
+
meta_def(name) do |subname|
|
|
34
|
+
subname = subname.to_s.downcase
|
|
35
|
+
|
|
36
|
+
unless c = @subclasses.find { |c| c.name.to_s.downcase == subname }
|
|
37
|
+
loader.load(subname)
|
|
38
|
+
c = @subclasses.find { |c| c.name.to_s.downcase == subname }
|
|
39
|
+
|
|
40
|
+
# Now make the method that returns this subclass. This way we
|
|
41
|
+
# normally avoid the method_missing method.
|
|
42
|
+
define_method(subname) { c } if c and ! respond_to?(subname)
|
|
43
|
+
end
|
|
44
|
+
return c
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Add a new class to our list. Note that this has to handle subclasses of
|
|
49
|
+
# subclasses, thus the reason we're keeping track of the @@classloader.
|
|
50
|
+
def inherited(sub)
|
|
51
|
+
@subclasses ||= []
|
|
52
|
+
sub.classloader = self.classloader
|
|
53
|
+
if self.classloader == self
|
|
54
|
+
@subclasses << sub
|
|
55
|
+
else
|
|
56
|
+
@classloader.inherited(sub)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# See if we can load a class.
|
|
61
|
+
def method_missing(method, *args)
|
|
62
|
+
unless self == self.classloader
|
|
63
|
+
super
|
|
64
|
+
end
|
|
65
|
+
return nil unless defined?(@subclassname)
|
|
66
|
+
self.send(@subclassname, method) || nil
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Retrieve or calculate a name.
|
|
70
|
+
def name(dummy_argument=:work_arround_for_ruby_GC_bug)
|
|
71
|
+
@name ||= self.to_s.sub(/.+::/, '').intern
|
|
72
|
+
|
|
73
|
+
@name
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Provide a list of all subclasses.
|
|
77
|
+
def subclasses
|
|
78
|
+
@loader.loadall
|
|
79
|
+
@subclasses.collect { |klass| klass.name }
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'facter'
|
|
2
|
+
require 'puppet/util/warnings'
|
|
3
|
+
require 'forwardable'
|
|
4
|
+
require 'etc'
|
|
5
|
+
|
|
6
|
+
module Puppet::Util::SUIDManager
|
|
7
|
+
include Puppet::Util::Warnings
|
|
8
|
+
extend Forwardable
|
|
9
|
+
|
|
10
|
+
# Note groups= is handled specially due to a bug in OS X 10.6, 10.7,
|
|
11
|
+
# and probably upcoming releases...
|
|
12
|
+
to_delegate_to_process = [ :euid=, :euid, :egid=, :egid, :uid=, :uid, :gid=, :gid, :groups ]
|
|
13
|
+
|
|
14
|
+
to_delegate_to_process.each do |method|
|
|
15
|
+
def_delegator Process, method
|
|
16
|
+
module_function method
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def osx_maj_ver
|
|
20
|
+
return @osx_maj_ver unless @osx_maj_ver.nil?
|
|
21
|
+
# 'kernel' is available without explicitly loading all facts
|
|
22
|
+
if Facter.value('kernel') != 'Darwin'
|
|
23
|
+
@osx_maj_ver = false
|
|
24
|
+
return @osx_maj_ver
|
|
25
|
+
end
|
|
26
|
+
# But 'macosx_productversion_major' requires it.
|
|
27
|
+
Facter.loadfacts
|
|
28
|
+
@osx_maj_ver = Facter.value('macosx_productversion_major')
|
|
29
|
+
end
|
|
30
|
+
module_function :osx_maj_ver
|
|
31
|
+
|
|
32
|
+
def groups=(grouplist)
|
|
33
|
+
begin
|
|
34
|
+
return Process.groups = grouplist
|
|
35
|
+
rescue Errno::EINVAL => e
|
|
36
|
+
#We catch Errno::EINVAL as some operating systems (OS X in particular) can
|
|
37
|
+
# cause troubles when using Process#groups= to change *this* user / process
|
|
38
|
+
# list of supplementary groups membership. This is done via Ruby's function
|
|
39
|
+
# "static VALUE proc_setgroups(VALUE obj, VALUE ary)" which is effectively
|
|
40
|
+
# a wrapper for "int setgroups(size_t size, const gid_t *list)" (part of SVr4
|
|
41
|
+
# and 4.3BSD but not in POSIX.1-2001) that fails and sets errno to EINVAL.
|
|
42
|
+
#
|
|
43
|
+
# This does not appear to be a problem with Ruby but rather an issue on the
|
|
44
|
+
# operating system side. Therefore we catch the exception and look whether
|
|
45
|
+
# we run under OS X or not -- if so, then we acknowledge the problem and
|
|
46
|
+
# re-throw the exception otherwise.
|
|
47
|
+
if osx_maj_ver and not osx_maj_ver.empty?
|
|
48
|
+
return true
|
|
49
|
+
else
|
|
50
|
+
raise e
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
module_function :groups=
|
|
55
|
+
|
|
56
|
+
def self.root?
|
|
57
|
+
return Process.uid == 0 unless Puppet.features.microsoft_windows?
|
|
58
|
+
|
|
59
|
+
require 'puppet/util/windows/user'
|
|
60
|
+
Puppet::Util::Windows::User.admin?
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Methods to handle changing uid/gid of the running process. In general,
|
|
64
|
+
# these will noop or fail on Windows, and require root to change to anything
|
|
65
|
+
# but the current uid/gid (which is a noop).
|
|
66
|
+
|
|
67
|
+
# Runs block setting euid and egid if provided then restoring original ids.
|
|
68
|
+
# If running on Windows or without root, the block will be run with the
|
|
69
|
+
# current euid/egid.
|
|
70
|
+
def asuser(new_uid=nil, new_gid=nil)
|
|
71
|
+
return yield if Puppet.features.microsoft_windows?
|
|
72
|
+
return yield unless root?
|
|
73
|
+
return yield unless new_uid or new_gid
|
|
74
|
+
|
|
75
|
+
old_euid, old_egid = self.euid, self.egid
|
|
76
|
+
begin
|
|
77
|
+
change_privileges(new_uid, new_gid, false)
|
|
78
|
+
|
|
79
|
+
yield
|
|
80
|
+
ensure
|
|
81
|
+
change_privileges(new_uid ? old_euid : nil, old_egid, false)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
module_function :asuser
|
|
85
|
+
|
|
86
|
+
# If `permanently` is set, will permanently change the uid/gid of the
|
|
87
|
+
# process. If not, it will only set the euid/egid. If only uid is supplied,
|
|
88
|
+
# the primary group of the supplied gid will be used. If only gid is
|
|
89
|
+
# supplied, only gid will be changed. This method will fail if used on
|
|
90
|
+
# Windows.
|
|
91
|
+
def change_privileges(uid=nil, gid=nil, permanently=false)
|
|
92
|
+
return unless uid or gid
|
|
93
|
+
|
|
94
|
+
unless gid
|
|
95
|
+
uid = convert_xid(:uid, uid)
|
|
96
|
+
gid = Etc.getpwuid(uid).gid
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
change_group(gid, permanently)
|
|
100
|
+
change_user(uid, permanently) if uid
|
|
101
|
+
end
|
|
102
|
+
module_function :change_privileges
|
|
103
|
+
|
|
104
|
+
# Changes the egid of the process if `permanently` is not set, otherwise
|
|
105
|
+
# changes gid. This method will fail if used on Windows, or attempting to
|
|
106
|
+
# change to a different gid without root.
|
|
107
|
+
def change_group(group, permanently=false)
|
|
108
|
+
gid = convert_xid(:gid, group)
|
|
109
|
+
raise Puppet::Error, "No such group #{group}" unless gid
|
|
110
|
+
|
|
111
|
+
if permanently
|
|
112
|
+
Process::GID.change_privilege(gid)
|
|
113
|
+
else
|
|
114
|
+
Process.egid = gid
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
module_function :change_group
|
|
118
|
+
|
|
119
|
+
# As change_group, but operates on uids. If changing user permanently,
|
|
120
|
+
# supplementary groups will be set the to default groups for the new uid.
|
|
121
|
+
def change_user(user, permanently=false)
|
|
122
|
+
uid = convert_xid(:uid, user)
|
|
123
|
+
raise Puppet::Error, "No such user #{user}" unless uid
|
|
124
|
+
|
|
125
|
+
if permanently
|
|
126
|
+
# If changing uid, we must be root. So initgroups first here.
|
|
127
|
+
initgroups(uid)
|
|
128
|
+
|
|
129
|
+
Process::UID.change_privilege(uid)
|
|
130
|
+
else
|
|
131
|
+
# We must be root to initgroups, so initgroups before dropping euid if
|
|
132
|
+
# we're root, otherwise elevate euid before initgroups.
|
|
133
|
+
# change euid (to root) first.
|
|
134
|
+
if Process.euid == 0
|
|
135
|
+
initgroups(uid)
|
|
136
|
+
Process.euid = uid
|
|
137
|
+
else
|
|
138
|
+
Process.euid = uid
|
|
139
|
+
initgroups(uid)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
module_function :change_user
|
|
144
|
+
|
|
145
|
+
# Make sure the passed argument is a number.
|
|
146
|
+
def convert_xid(type, id)
|
|
147
|
+
map = {:gid => :group, :uid => :user}
|
|
148
|
+
raise ArgumentError, "Invalid id type #{type}" unless map.include?(type)
|
|
149
|
+
ret = Puppet::Util.send(type, id)
|
|
150
|
+
if ret == nil
|
|
151
|
+
raise Puppet::Error, "Invalid #{map[type]}: #{id}"
|
|
152
|
+
end
|
|
153
|
+
ret
|
|
154
|
+
end
|
|
155
|
+
module_function :convert_xid
|
|
156
|
+
|
|
157
|
+
# Initialize primary and supplemental groups to those of the target user. We
|
|
158
|
+
# take the UID and manually look up their details in the system database,
|
|
159
|
+
# including username and primary group. This method will fail on Windows, or
|
|
160
|
+
# if used without root to initgroups of another user.
|
|
161
|
+
def initgroups(uid)
|
|
162
|
+
pwent = Etc.getpwuid(uid)
|
|
163
|
+
Process.initgroups(pwent.name, pwent.gid)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
module_function :initgroups
|
|
167
|
+
|
|
168
|
+
def run_and_capture(command, new_uid=nil, new_gid=nil)
|
|
169
|
+
output = Puppet::Util.execute(command, :failonfail => false, :combine => true, :uid => new_uid, :gid => new_gid)
|
|
170
|
+
[output, $CHILD_STATUS.dup]
|
|
171
|
+
end
|
|
172
|
+
module_function :run_and_capture
|
|
173
|
+
end
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
require 'puppet/util'
|
|
2
|
+
|
|
3
|
+
module Puppet::Util::SymbolicFileMode
|
|
4
|
+
SetUIDBit = ReadBit = 4
|
|
5
|
+
SetGIDBit = WriteBit = 2
|
|
6
|
+
StickyBit = ExecBit = 1
|
|
7
|
+
SymbolicMode = { 'x' => ExecBit, 'w' => WriteBit, 'r' => ReadBit }
|
|
8
|
+
SymbolicSpecialToBit = {
|
|
9
|
+
't' => { 'u' => StickyBit, 'g' => StickyBit, 'o' => StickyBit },
|
|
10
|
+
's' => { 'u' => SetUIDBit, 'g' => SetGIDBit, 'o' => StickyBit }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
def valid_symbolic_mode?(value)
|
|
14
|
+
value = normalize_symbolic_mode(value)
|
|
15
|
+
return true if value =~ /^0?[0-7]{1,4}$/
|
|
16
|
+
return true if value =~ /^([ugoa]*[-=+][-=+rstwxXugo]*)(,[ugoa]*[-=+][-=+rstwxXugo]*)*$/
|
|
17
|
+
return false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def normalize_symbolic_mode(value)
|
|
21
|
+
return nil if value.nil?
|
|
22
|
+
|
|
23
|
+
# We need to treat integers as octal numbers.
|
|
24
|
+
if value.is_a? Numeric then
|
|
25
|
+
return value.to_s(8)
|
|
26
|
+
elsif value =~ /^0?[0-7]{1,4}$/ then
|
|
27
|
+
return value.to_i(8).to_s(8)
|
|
28
|
+
else
|
|
29
|
+
return value
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def symbolic_mode_to_int(modification, to_mode = 0, is_a_directory = false)
|
|
34
|
+
if modification.nil? or modification == '' then
|
|
35
|
+
raise Puppet::Error, "An empty mode string is illegal"
|
|
36
|
+
end
|
|
37
|
+
if modification =~ /^[0-7]+$/ then return modification.to_i(8) end
|
|
38
|
+
if modification =~ /^\d+$/ then
|
|
39
|
+
raise Puppet::Error, "Numeric modes must be in octal, not decimal!"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
fail "non-numeric current mode (#{to_mode.inspect})" unless to_mode.is_a?(Numeric)
|
|
43
|
+
|
|
44
|
+
original_mode = {
|
|
45
|
+
's' => (to_mode & 07000) >> 9,
|
|
46
|
+
'u' => (to_mode & 00700) >> 6,
|
|
47
|
+
'g' => (to_mode & 00070) >> 3,
|
|
48
|
+
'o' => (to_mode & 00007) >> 0,
|
|
49
|
+
# Are there any execute bits set in the original mode?
|
|
50
|
+
'any x?' => (to_mode & 00111) != 0
|
|
51
|
+
}
|
|
52
|
+
final_mode = {
|
|
53
|
+
's' => original_mode['s'],
|
|
54
|
+
'u' => original_mode['u'],
|
|
55
|
+
'g' => original_mode['g'],
|
|
56
|
+
'o' => original_mode['o'],
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
modification.split(/\s*,\s*/).each do |part|
|
|
60
|
+
begin
|
|
61
|
+
_, to, dsl = /^([ugoa]*)([-+=].*)$/.match(part).to_a
|
|
62
|
+
if dsl.nil? then raise Puppet::Error, 'Missing action' end
|
|
63
|
+
to = "a" unless to and to.length > 0
|
|
64
|
+
|
|
65
|
+
# We want a snapshot of the mode before we start messing with it to
|
|
66
|
+
# make actions like 'a-g' atomic. Various parts of the DSL refer to
|
|
67
|
+
# the original mode, the final mode, or the current snapshot of the
|
|
68
|
+
# mode, for added fun.
|
|
69
|
+
snapshot_mode = {}
|
|
70
|
+
final_mode.each {|k,v| snapshot_mode[k] = v }
|
|
71
|
+
|
|
72
|
+
to.gsub('a', 'ugo').split('').uniq.each do |who|
|
|
73
|
+
value = snapshot_mode[who]
|
|
74
|
+
|
|
75
|
+
action = '!'
|
|
76
|
+
actions = {
|
|
77
|
+
'!' => lambda {|_,_| raise Puppet::Error, 'Missing operation (-, =, or +)' },
|
|
78
|
+
'=' => lambda {|m,v| m | v },
|
|
79
|
+
'+' => lambda {|m,v| m | v },
|
|
80
|
+
'-' => lambda {|m,v| m & ~v },
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
dsl.split('').each do |op|
|
|
84
|
+
case op
|
|
85
|
+
when /[-+=]/ then
|
|
86
|
+
action = op
|
|
87
|
+
# Clear all bits, if this is assignment
|
|
88
|
+
value = 0 if op == '='
|
|
89
|
+
|
|
90
|
+
when /[ugo]/ then
|
|
91
|
+
value = actions[action].call(value, snapshot_mode[op])
|
|
92
|
+
|
|
93
|
+
when /[rwx]/ then
|
|
94
|
+
value = actions[action].call(value, SymbolicMode[op])
|
|
95
|
+
|
|
96
|
+
when 'X' then
|
|
97
|
+
# Only meaningful in combination with "set" actions.
|
|
98
|
+
if action != '+' then
|
|
99
|
+
raise Puppet::Error, "X only works with the '+' operator"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# As per the BSD manual page, set if this is a directory, or if
|
|
103
|
+
# any execute bit is set on the original (unmodified) mode.
|
|
104
|
+
# Ignored otherwise; it is "add if", not "add or clear".
|
|
105
|
+
if is_a_directory or original_mode['any x?'] then
|
|
106
|
+
value = actions[action].call(value, ExecBit)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
when /[st]/ then
|
|
110
|
+
bit = SymbolicSpecialToBit[op][who] or fail "internal error"
|
|
111
|
+
final_mode['s'] = actions[action].call(final_mode['s'], bit)
|
|
112
|
+
|
|
113
|
+
else
|
|
114
|
+
raise Puppet::Error, 'Unknown operation'
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Now, assign back the value.
|
|
119
|
+
final_mode[who] = value
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
rescue Puppet::Error => e
|
|
123
|
+
if part.inspect != modification.inspect then
|
|
124
|
+
rest = " at #{part.inspect}"
|
|
125
|
+
else
|
|
126
|
+
rest = ''
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
raise Puppet::Error, "#{e}#{rest} in symbolic mode #{modification.inspect}"
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
result =
|
|
134
|
+
final_mode['s'] << 9 |
|
|
135
|
+
final_mode['u'] << 6 |
|
|
136
|
+
final_mode['g'] << 3 |
|
|
137
|
+
final_mode['o'] << 0
|
|
138
|
+
return result
|
|
139
|
+
end
|
|
140
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Created on 2008-01-19
|
|
2
|
+
# Copyright Luke Kanies
|
|
3
|
+
|
|
4
|
+
# A common module to handle tagging.
|
|
5
|
+
#
|
|
6
|
+
# So, do you want the bad news or the good news first?
|
|
7
|
+
#
|
|
8
|
+
# The bad news is that using an array here is hugely costly compared to using
|
|
9
|
+
# a hash. Like, the same speed empty, 50 percent slower with one item, and
|
|
10
|
+
# 300 percent slower at 6 - one of our common peaks for tagging items.
|
|
11
|
+
#
|
|
12
|
+
# ...and that assumes an efficient implementation, just using include?. These
|
|
13
|
+
# methods have even more costs hidden in them.
|
|
14
|
+
#
|
|
15
|
+
# The good news is that this module has no API. Various objects directly
|
|
16
|
+
# interact with their `@tags` member as an array, or dump it directly in YAML,
|
|
17
|
+
# or whatever.
|
|
18
|
+
#
|
|
19
|
+
# So, er, you can't actually change this. No matter how much you want to be
|
|
20
|
+
# cause it is inefficient in both CPU and object allocation terms.
|
|
21
|
+
#
|
|
22
|
+
# Good luck, my friend. --daniel 2012-07-17
|
|
23
|
+
module Puppet::Util::Tagging
|
|
24
|
+
# Add a tag to our current list. These tags will be added to all
|
|
25
|
+
# of the objects contained in this scope.
|
|
26
|
+
def tag(*ary)
|
|
27
|
+
@tags ||= []
|
|
28
|
+
|
|
29
|
+
qualified = []
|
|
30
|
+
|
|
31
|
+
ary.collect { |tag| tag.to_s.downcase }.each do |tag|
|
|
32
|
+
fail(Puppet::ParseError, "Invalid tag #{tag.inspect}") unless valid_tag?(tag)
|
|
33
|
+
qualified << tag if tag.include?("::")
|
|
34
|
+
@tags << tag unless @tags.include?(tag)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
handle_qualified_tags( qualified )
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Are we tagged with the provided tag?
|
|
41
|
+
def tagged?(*tags)
|
|
42
|
+
not ( self.tags & tags.flatten.collect { |t| t.to_s } ).empty?
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Return a copy of the tag list, so someone can't ask for our tags
|
|
46
|
+
# and then modify them.
|
|
47
|
+
def tags
|
|
48
|
+
@tags ||= []
|
|
49
|
+
@tags.dup
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def tags=(tags)
|
|
53
|
+
@tags = []
|
|
54
|
+
|
|
55
|
+
return if tags.nil? or tags == ""
|
|
56
|
+
|
|
57
|
+
tags = tags.strip.split(/\s*,\s*/) if tags.is_a?(String)
|
|
58
|
+
|
|
59
|
+
tags.each {|t| tag(t) }
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
private
|
|
63
|
+
|
|
64
|
+
def handle_qualified_tags(qualified)
|
|
65
|
+
# LAK:NOTE See http://snurl.com/21zf8 [groups_google_com]
|
|
66
|
+
x = 1
|
|
67
|
+
qualified.each do |name|
|
|
68
|
+
name.split("::").each do |tag|
|
|
69
|
+
@tags << tag unless @tags.include?(tag)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
ValidTagRegex = /^\w[-\w:.]*$/
|
|
75
|
+
def valid_tag?(tag)
|
|
76
|
+
tag.is_a?(String) and tag =~ ValidTagRegex
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Puppet::Util::Terminal
|
|
2
|
+
# Attempts to determine the width of the terminal. This is currently only
|
|
3
|
+
# supported on POSIX systems, and relies on the claims of `stty` (or `tput`).
|
|
4
|
+
#
|
|
5
|
+
# Inspired by code from Thor; thanks wycats!
|
|
6
|
+
# @return [Number] The column width of the terminal. Defaults to 80 columns.
|
|
7
|
+
def self.width
|
|
8
|
+
if Puppet.features.posix?
|
|
9
|
+
result = %x{stty size 2>/dev/null}.split[1] ||
|
|
10
|
+
%x{tput cols 2>/dev/null}.split[0]
|
|
11
|
+
end
|
|
12
|
+
return (result || '80').to_i
|
|
13
|
+
rescue
|
|
14
|
+
return 80
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class UserAttr
|
|
2
|
+
def self.get_attributes_by_name(name)
|
|
3
|
+
attributes = nil
|
|
4
|
+
|
|
5
|
+
File.readlines('/etc/user_attr').each do |line|
|
|
6
|
+
next if line =~ /^#/
|
|
7
|
+
|
|
8
|
+
token = line.split(':')
|
|
9
|
+
|
|
10
|
+
if token[0] == name
|
|
11
|
+
attributes = {:name => name}
|
|
12
|
+
token[4].split(';').each do |attr|
|
|
13
|
+
key_value = attr.split('=')
|
|
14
|
+
attributes[key_value[0].intern] = key_value[1].strip
|
|
15
|
+
end
|
|
16
|
+
break
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
attributes
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Methods to help with handling warnings.
|
|
2
|
+
module Puppet::Util::Warnings
|
|
3
|
+
module_function
|
|
4
|
+
|
|
5
|
+
def notice_once(msg)
|
|
6
|
+
Puppet::Util::Warnings.maybe_log(msg, self.class) { Puppet.notice msg }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def warnonce(msg)
|
|
11
|
+
Puppet::Util::Warnings.maybe_log(msg, self.class) { Puppet.warning msg }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def clear_warnings
|
|
15
|
+
@stampwarnings = {}
|
|
16
|
+
nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
protected
|
|
20
|
+
|
|
21
|
+
def self.maybe_log(message, klass)
|
|
22
|
+
@stampwarnings ||= {}
|
|
23
|
+
@stampwarnings[klass] ||= []
|
|
24
|
+
return nil if @stampwarnings[klass].include? message
|
|
25
|
+
yield
|
|
26
|
+
@stampwarnings[klass] << message
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'puppet/util/windows'
|
|
2
|
+
|
|
3
|
+
# represents an error resulting from a Win32 error code
|
|
4
|
+
class Puppet::Util::Windows::Error < Puppet::Error
|
|
5
|
+
require 'windows/error'
|
|
6
|
+
include ::Windows::Error
|
|
7
|
+
|
|
8
|
+
attr_reader :code
|
|
9
|
+
|
|
10
|
+
def initialize(message, code = GetLastError.call)
|
|
11
|
+
super(message + ": #{get_last_error(code)}")
|
|
12
|
+
|
|
13
|
+
@code = code
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'puppet/util/windows'
|
|
2
|
+
|
|
3
|
+
module Puppet::Util::Windows::File
|
|
4
|
+
require 'windows/api'
|
|
5
|
+
require 'windows/wide_string'
|
|
6
|
+
|
|
7
|
+
ReplaceFileWithoutBackupW = Windows::API.new('ReplaceFileW', 'PPVLVV', 'B')
|
|
8
|
+
def replace_file(target, source)
|
|
9
|
+
result = ReplaceFileWithoutBackupW.call(WideString.new(target.to_s),
|
|
10
|
+
WideString.new(source.to_s),
|
|
11
|
+
0, 0x1, 0, 0)
|
|
12
|
+
return true unless result == 0
|
|
13
|
+
raise Puppet::Util::Windows::Error.new("ReplaceFile(#{target}, #{source})")
|
|
14
|
+
end
|
|
15
|
+
module_function :replace_file
|
|
16
|
+
|
|
17
|
+
MoveFileEx = Windows::API.new('MoveFileExW', 'PPL', 'B')
|
|
18
|
+
def move_file_ex(source, target, flags = 0)
|
|
19
|
+
result = MoveFileEx.call(WideString.new(source.to_s),
|
|
20
|
+
WideString.new(target.to_s),
|
|
21
|
+
flags)
|
|
22
|
+
return true unless result == 0
|
|
23
|
+
raise Puppet::Util::Windows::Error.
|
|
24
|
+
new("MoveFileEx(#{source}, #{target}, #{flags.to_s(8)})")
|
|
25
|
+
end
|
|
26
|
+
module_function :move_file_ex
|
|
27
|
+
end
|