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,365 @@
|
|
|
1
|
+
require 'puppet/indirector'
|
|
2
|
+
require 'puppet/ssl'
|
|
3
|
+
require 'puppet/ssl/key'
|
|
4
|
+
require 'puppet/ssl/certificate'
|
|
5
|
+
require 'puppet/ssl/certificate_request'
|
|
6
|
+
require 'puppet/ssl/certificate_revocation_list'
|
|
7
|
+
|
|
8
|
+
# The class that manages all aspects of our SSL certificates --
|
|
9
|
+
# private keys, public keys, requests, etc.
|
|
10
|
+
class Puppet::SSL::Host
|
|
11
|
+
# Yay, ruby's strange constant lookups.
|
|
12
|
+
Key = Puppet::SSL::Key
|
|
13
|
+
CA_NAME = Puppet::SSL::CA_NAME
|
|
14
|
+
Certificate = Puppet::SSL::Certificate
|
|
15
|
+
CertificateRequest = Puppet::SSL::CertificateRequest
|
|
16
|
+
CertificateRevocationList = Puppet::SSL::CertificateRevocationList
|
|
17
|
+
|
|
18
|
+
extend Puppet::Indirector
|
|
19
|
+
indirects :certificate_status, :terminus_class => :file
|
|
20
|
+
|
|
21
|
+
attr_reader :name
|
|
22
|
+
attr_accessor :ca
|
|
23
|
+
|
|
24
|
+
attr_writer :key, :certificate, :certificate_request
|
|
25
|
+
|
|
26
|
+
# This accessor is used in instances for indirector requests to hold desired state
|
|
27
|
+
attr_accessor :desired_state
|
|
28
|
+
|
|
29
|
+
def self.localhost
|
|
30
|
+
return @localhost if @localhost
|
|
31
|
+
@localhost = new
|
|
32
|
+
@localhost.generate unless @localhost.certificate
|
|
33
|
+
@localhost.key
|
|
34
|
+
@localhost
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.reset
|
|
38
|
+
@localhost = nil
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# This is the constant that people will use to mark that a given host is
|
|
42
|
+
# a certificate authority.
|
|
43
|
+
def self.ca_name
|
|
44
|
+
CA_NAME
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class << self
|
|
48
|
+
attr_reader :ca_location
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Configure how our various classes interact with their various terminuses.
|
|
52
|
+
def self.configure_indirection(terminus, cache = nil)
|
|
53
|
+
Certificate.indirection.terminus_class = terminus
|
|
54
|
+
CertificateRequest.indirection.terminus_class = terminus
|
|
55
|
+
CertificateRevocationList.indirection.terminus_class = terminus
|
|
56
|
+
|
|
57
|
+
host_map = {:ca => :file, :disabled_ca => nil, :file => nil, :rest => :rest}
|
|
58
|
+
if term = host_map[terminus]
|
|
59
|
+
self.indirection.terminus_class = term
|
|
60
|
+
else
|
|
61
|
+
self.indirection.reset_terminus_class
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
if cache
|
|
65
|
+
# This is weird; we don't actually cache our keys, we
|
|
66
|
+
# use what would otherwise be the cache as our normal
|
|
67
|
+
# terminus.
|
|
68
|
+
Key.indirection.terminus_class = cache
|
|
69
|
+
else
|
|
70
|
+
Key.indirection.terminus_class = terminus
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
if cache
|
|
74
|
+
Certificate.indirection.cache_class = cache
|
|
75
|
+
CertificateRequest.indirection.cache_class = cache
|
|
76
|
+
CertificateRevocationList.indirection.cache_class = cache
|
|
77
|
+
else
|
|
78
|
+
# Make sure we have no cache configured. puppet master
|
|
79
|
+
# switches the configurations around a bit, so it's important
|
|
80
|
+
# that we specify the configs for absolutely everything, every
|
|
81
|
+
# time.
|
|
82
|
+
Certificate.indirection.cache_class = nil
|
|
83
|
+
CertificateRequest.indirection.cache_class = nil
|
|
84
|
+
CertificateRevocationList.indirection.cache_class = nil
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
CA_MODES = {
|
|
89
|
+
# Our ca is local, so we use it as the ultimate source of information
|
|
90
|
+
# And we cache files locally.
|
|
91
|
+
:local => [:ca, :file],
|
|
92
|
+
# We're a remote CA client.
|
|
93
|
+
:remote => [:rest, :file],
|
|
94
|
+
# We are the CA, so we don't have read/write access to the normal certificates.
|
|
95
|
+
:only => [:ca],
|
|
96
|
+
# We have no CA, so we just look in the local file store.
|
|
97
|
+
:none => [:disabled_ca]
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
# Specify how we expect to interact with our certificate authority.
|
|
101
|
+
def self.ca_location=(mode)
|
|
102
|
+
modes = CA_MODES.collect { |m, vals| m.to_s }.join(", ")
|
|
103
|
+
raise ArgumentError, "CA Mode can only be one of: #{modes}" unless CA_MODES.include?(mode)
|
|
104
|
+
|
|
105
|
+
@ca_location = mode
|
|
106
|
+
|
|
107
|
+
configure_indirection(*CA_MODES[@ca_location])
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Puppet::SSL::Host is actually indirected now so the original implementation
|
|
111
|
+
# has been moved into the certificate_status indirector. This method is in-use
|
|
112
|
+
# in `puppet cert -c <certname>`.
|
|
113
|
+
def self.destroy(name)
|
|
114
|
+
indirection.destroy(name)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def self.from_pson(pson)
|
|
118
|
+
instance = new(pson["name"])
|
|
119
|
+
if pson["desired_state"]
|
|
120
|
+
instance.desired_state = pson["desired_state"]
|
|
121
|
+
end
|
|
122
|
+
instance
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Puppet::SSL::Host is actually indirected now so the original implementation
|
|
126
|
+
# has been moved into the certificate_status indirector. This method does not
|
|
127
|
+
# appear to be in use in `puppet cert -l`.
|
|
128
|
+
def self.search(options = {})
|
|
129
|
+
indirection.search("*", options)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Is this a ca host, meaning that all of its files go in the CA location?
|
|
133
|
+
def ca?
|
|
134
|
+
ca
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def key
|
|
138
|
+
@key ||= Key.indirection.find(name)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# This is the private key; we can create it from scratch
|
|
142
|
+
# with no inputs.
|
|
143
|
+
def generate_key
|
|
144
|
+
@key = Key.new(name)
|
|
145
|
+
@key.generate
|
|
146
|
+
begin
|
|
147
|
+
Key.indirection.save(@key)
|
|
148
|
+
rescue
|
|
149
|
+
@key = nil
|
|
150
|
+
raise
|
|
151
|
+
end
|
|
152
|
+
true
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def certificate_request
|
|
156
|
+
@certificate_request ||= CertificateRequest.indirection.find(name)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def this_csr_is_for_the_current_host
|
|
160
|
+
name == Puppet[:certname].downcase
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def this_csr_is_for_the_current_host
|
|
164
|
+
name == Puppet[:certname].downcase
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Our certificate request requires the key but that's all.
|
|
168
|
+
def generate_certificate_request(options = {})
|
|
169
|
+
generate_key unless key
|
|
170
|
+
|
|
171
|
+
# If this is for the current machine...
|
|
172
|
+
if this_csr_is_for_the_current_host
|
|
173
|
+
# ...add our configured dns_alt_names
|
|
174
|
+
if Puppet[:dns_alt_names] and Puppet[:dns_alt_names] != ''
|
|
175
|
+
options[:dns_alt_names] ||= Puppet[:dns_alt_names]
|
|
176
|
+
elsif Puppet::SSL::CertificateAuthority.ca? and fqdn = Facter.value(:fqdn) and domain = Facter.value(:domain)
|
|
177
|
+
options[:dns_alt_names] = "puppet, #{fqdn}, puppet.#{domain}"
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
@certificate_request = CertificateRequest.new(name)
|
|
182
|
+
@certificate_request.generate(key.content, options)
|
|
183
|
+
begin
|
|
184
|
+
CertificateRequest.indirection.save(@certificate_request)
|
|
185
|
+
rescue
|
|
186
|
+
@certificate_request = nil
|
|
187
|
+
raise
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
true
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def certificate
|
|
194
|
+
unless @certificate
|
|
195
|
+
generate_key unless key
|
|
196
|
+
|
|
197
|
+
# get the CA cert first, since it's required for the normal cert
|
|
198
|
+
# to be of any use.
|
|
199
|
+
return nil unless Certificate.indirection.find("ca") unless ca?
|
|
200
|
+
return nil unless @certificate = Certificate.indirection.find(name)
|
|
201
|
+
|
|
202
|
+
validate_certificate_with_key
|
|
203
|
+
end
|
|
204
|
+
@certificate
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def validate_certificate_with_key
|
|
208
|
+
raise Puppet::Error, "No certificate to validate." unless certificate
|
|
209
|
+
raise Puppet::Error, "No private key with which to validate certificate with fingerprint: #{certificate.fingerprint}" unless key
|
|
210
|
+
unless certificate.content.check_private_key(key.content)
|
|
211
|
+
raise Puppet::Error, <<ERROR_STRING
|
|
212
|
+
The certificate retrieved from the master does not match the agent's private key.
|
|
213
|
+
Certificate fingerprint: #{certificate.fingerprint}
|
|
214
|
+
To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
|
|
215
|
+
On the master:
|
|
216
|
+
puppet cert clean #{Puppet[:certname]}
|
|
217
|
+
On the agent:
|
|
218
|
+
rm -f #{Puppet[:hostcert]}
|
|
219
|
+
puppet agent -t
|
|
220
|
+
ERROR_STRING
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
# Generate all necessary parts of our ssl host.
|
|
225
|
+
def generate
|
|
226
|
+
generate_key unless key
|
|
227
|
+
generate_certificate_request unless certificate_request
|
|
228
|
+
|
|
229
|
+
# If we can get a CA instance, then we're a valid CA, and we
|
|
230
|
+
# should use it to sign our request; else, just try to read
|
|
231
|
+
# the cert.
|
|
232
|
+
if ! certificate and ca = Puppet::SSL::CertificateAuthority.instance
|
|
233
|
+
ca.sign(self.name, true)
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def initialize(name = nil)
|
|
238
|
+
@name = (name || Puppet[:certname]).downcase
|
|
239
|
+
Puppet::SSL::Base.validate_certname(@name)
|
|
240
|
+
@key = @certificate = @certificate_request = nil
|
|
241
|
+
@ca = (name == self.class.ca_name)
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
# Extract the public key from the private key.
|
|
245
|
+
def public_key
|
|
246
|
+
key.content.public_key
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
# Create/return a store that uses our SSL info to validate
|
|
250
|
+
# connections.
|
|
251
|
+
def ssl_store(purpose = OpenSSL::X509::PURPOSE_ANY)
|
|
252
|
+
unless @ssl_store
|
|
253
|
+
@ssl_store = OpenSSL::X509::Store.new
|
|
254
|
+
@ssl_store.purpose = purpose
|
|
255
|
+
|
|
256
|
+
# Use the file path here, because we don't want to cause
|
|
257
|
+
# a lookup in the middle of setting our ssl connection.
|
|
258
|
+
@ssl_store.add_file(Puppet[:localcacert])
|
|
259
|
+
|
|
260
|
+
# If there's a CRL, add it to our store.
|
|
261
|
+
if crl = Puppet::SSL::CertificateRevocationList.indirection.find(CA_NAME)
|
|
262
|
+
@ssl_store.flags = OpenSSL::X509::V_FLAG_CRL_CHECK_ALL|OpenSSL::X509::V_FLAG_CRL_CHECK if Puppet.settings[:certificate_revocation]
|
|
263
|
+
@ssl_store.add_crl(crl.content)
|
|
264
|
+
end
|
|
265
|
+
return @ssl_store
|
|
266
|
+
end
|
|
267
|
+
@ssl_store
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
def to_pson(*args)
|
|
271
|
+
my_cert = Puppet::SSL::Certificate.indirection.find(name)
|
|
272
|
+
pson_hash = { :name => name }
|
|
273
|
+
|
|
274
|
+
my_state = state
|
|
275
|
+
|
|
276
|
+
pson_hash[:state] = my_state
|
|
277
|
+
pson_hash[:desired_state] = desired_state if desired_state
|
|
278
|
+
|
|
279
|
+
thing_to_use = (my_state == 'requested') ? certificate_request : my_cert
|
|
280
|
+
|
|
281
|
+
# this is for backwards-compatibility
|
|
282
|
+
# we should deprecate it and transition people to using
|
|
283
|
+
# pson[:fingerprints][:default]
|
|
284
|
+
# It appears that we have no internal consumers of this api
|
|
285
|
+
# --jeffweiss 30 aug 2012
|
|
286
|
+
pson_hash[:fingerprint] = thing_to_use.fingerprint
|
|
287
|
+
|
|
288
|
+
# The above fingerprint doesn't tell us what message digest algorithm was used
|
|
289
|
+
# No problem, except that the default is changing between 2.7 and 3.0. Also, as
|
|
290
|
+
# we move to FIPS 140-2 compliance, MD5 is no longer allowed (and, gasp, will
|
|
291
|
+
# segfault in rubies older than 1.9.3)
|
|
292
|
+
# So, when we add the newer fingerprints, we're explicit about the hashing
|
|
293
|
+
# algorithm used.
|
|
294
|
+
# --jeffweiss 31 july 2012
|
|
295
|
+
pson_hash[:fingerprints] = {}
|
|
296
|
+
pson_hash[:fingerprints][:default] = thing_to_use.fingerprint
|
|
297
|
+
|
|
298
|
+
suitable_message_digest_algorithms.each do |md|
|
|
299
|
+
pson_hash[:fingerprints][md] = thing_to_use.fingerprint md
|
|
300
|
+
end
|
|
301
|
+
pson_hash[:dns_alt_names] = thing_to_use.subject_alt_names
|
|
302
|
+
|
|
303
|
+
pson_hash.to_pson(*args)
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
# eventually we'll probably want to move this somewhere else or make it
|
|
307
|
+
# configurable
|
|
308
|
+
# --jeffweiss 29 aug 2012
|
|
309
|
+
def suitable_message_digest_algorithms
|
|
310
|
+
[:SHA1, :SHA256, :SHA512]
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
# Attempt to retrieve a cert, if we don't already have one.
|
|
314
|
+
def wait_for_cert(time)
|
|
315
|
+
begin
|
|
316
|
+
return if certificate
|
|
317
|
+
generate
|
|
318
|
+
return if certificate
|
|
319
|
+
rescue SystemExit,NoMemoryError
|
|
320
|
+
raise
|
|
321
|
+
rescue Exception => detail
|
|
322
|
+
puts detail.backtrace if Puppet[:trace]
|
|
323
|
+
Puppet.err "Could not request certificate: #{detail}"
|
|
324
|
+
if time < 1
|
|
325
|
+
puts "Exiting; failed to retrieve certificate and waitforcert is disabled"
|
|
326
|
+
exit(1)
|
|
327
|
+
else
|
|
328
|
+
sleep(time)
|
|
329
|
+
end
|
|
330
|
+
retry
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
if time < 1
|
|
334
|
+
puts "Exiting; no certificate found and waitforcert is disabled"
|
|
335
|
+
exit(1)
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
while true
|
|
339
|
+
sleep time
|
|
340
|
+
begin
|
|
341
|
+
break if certificate
|
|
342
|
+
Puppet.notice "Did not receive certificate"
|
|
343
|
+
rescue StandardError => detail
|
|
344
|
+
puts detail.backtrace if Puppet[:trace]
|
|
345
|
+
Puppet.err "Could not request certificate: #{detail}"
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
def state
|
|
351
|
+
my_cert = Puppet::SSL::Certificate.indirection.find(name)
|
|
352
|
+
if certificate_request
|
|
353
|
+
return 'requested'
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
begin
|
|
357
|
+
Puppet::SSL::CertificateAuthority.new.verify(my_cert)
|
|
358
|
+
return 'signed'
|
|
359
|
+
rescue Puppet::SSL::CertificateAuthority::CertificateVerificationError
|
|
360
|
+
return 'revoked'
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
require 'puppet/ssl/certificate_authority'
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'puppet/ssl'
|
|
2
|
+
require 'puppet/ssl/certificate'
|
|
3
|
+
|
|
4
|
+
# Keep track of all of our known certificates.
|
|
5
|
+
class Puppet::SSL::Inventory
|
|
6
|
+
attr_reader :path
|
|
7
|
+
|
|
8
|
+
# Add a certificate to our inventory.
|
|
9
|
+
def add(cert)
|
|
10
|
+
cert = cert.content if cert.is_a?(Puppet::SSL::Certificate)
|
|
11
|
+
|
|
12
|
+
# Create our file, if one does not already exist.
|
|
13
|
+
rebuild unless FileTest.exist?(@path)
|
|
14
|
+
|
|
15
|
+
Puppet.settings.write(:cert_inventory, "a") do |f|
|
|
16
|
+
f.print format(cert)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Format our certificate for output.
|
|
21
|
+
def format(cert)
|
|
22
|
+
iso = '%Y-%m-%dT%H:%M:%S%Z'
|
|
23
|
+
"0x%04x %s %s %s\n" % [cert.serial, cert.not_before.strftime(iso), cert.not_after.strftime(iso), cert.subject]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def initialize
|
|
27
|
+
@path = Puppet[:cert_inventory]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Rebuild the inventory from scratch. This should happen if
|
|
31
|
+
# the file is entirely missing or if it's somehow corrupted.
|
|
32
|
+
def rebuild
|
|
33
|
+
Puppet.notice "Rebuilding inventory file"
|
|
34
|
+
|
|
35
|
+
Puppet.settings.write(:cert_inventory) do |f|
|
|
36
|
+
f.print "# Inventory of signed certificates\n# SERIAL NOT_BEFORE NOT_AFTER SUBJECT\n"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
Puppet::SSL::Certificate.indirection.search("*").each { |cert| add(cert) }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Find the serial number for a given certificate.
|
|
43
|
+
def serial(name)
|
|
44
|
+
return nil unless FileTest.exist?(@path)
|
|
45
|
+
|
|
46
|
+
File.readlines(@path).each do |line|
|
|
47
|
+
next unless line =~ /^(\S+).+\/CN=#{name}$/
|
|
48
|
+
|
|
49
|
+
return Integer($1)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
return nil
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require 'puppet/ssl/base'
|
|
2
|
+
require 'puppet/indirector'
|
|
3
|
+
|
|
4
|
+
# Manage private and public keys as a pair.
|
|
5
|
+
class Puppet::SSL::Key < Puppet::SSL::Base
|
|
6
|
+
wraps OpenSSL::PKey::RSA
|
|
7
|
+
|
|
8
|
+
extend Puppet::Indirector
|
|
9
|
+
indirects :key, :terminus_class => :file
|
|
10
|
+
|
|
11
|
+
# Because of how the format handler class is included, this
|
|
12
|
+
# can't be in the base class.
|
|
13
|
+
def self.supported_formats
|
|
14
|
+
[:s]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_accessor :password_file
|
|
18
|
+
|
|
19
|
+
# Knows how to create keys with our system defaults.
|
|
20
|
+
def generate
|
|
21
|
+
Puppet.info "Creating a new SSL key for #{name}"
|
|
22
|
+
@content = OpenSSL::PKey::RSA.new(Puppet[:keylength].to_i)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def initialize(name)
|
|
26
|
+
super
|
|
27
|
+
|
|
28
|
+
if ca?
|
|
29
|
+
@password_file = Puppet[:capass]
|
|
30
|
+
else
|
|
31
|
+
@password_file = Puppet[:passfile]
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def password
|
|
36
|
+
return nil unless password_file and FileTest.exist?(password_file)
|
|
37
|
+
|
|
38
|
+
::File.read(password_file)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Optionally support specifying a password file.
|
|
42
|
+
def read(path)
|
|
43
|
+
return super unless password_file
|
|
44
|
+
|
|
45
|
+
#@content = wrapped_class.new(::File.read(path), password)
|
|
46
|
+
@content = wrapped_class.new(::File.read(path), password)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def to_s
|
|
50
|
+
if pass = password
|
|
51
|
+
@content.export(OpenSSL::Cipher::DES.new(:EDE3, :CBC), pass)
|
|
52
|
+
else
|
|
53
|
+
return super
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'puppet/indirector'
|
|
2
|
+
|
|
3
|
+
class Puppet::Status
|
|
4
|
+
extend Puppet::Indirector
|
|
5
|
+
indirects :status, :terminus_class => :local
|
|
6
|
+
|
|
7
|
+
attr :status, true
|
|
8
|
+
|
|
9
|
+
def initialize( status = nil )
|
|
10
|
+
@status = status || {"is_alive" => true}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def to_pson(*args)
|
|
14
|
+
@status.to_pson
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.from_pson( pson )
|
|
18
|
+
self.new( pson )
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def name
|
|
22
|
+
"status"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def name=(name)
|
|
26
|
+
# NOOP
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
module Puppet::Test
|
|
2
|
+
# This class is intended to provide an API to be used by external projects
|
|
3
|
+
# when they are running tests that depend on puppet core. This should
|
|
4
|
+
# allow us to vary the implementation details of managing puppet's state
|
|
5
|
+
# for testing, from one version of puppet to the next--without forcing
|
|
6
|
+
# the external projects to do any of that state management or be aware of
|
|
7
|
+
# the implementation details.
|
|
8
|
+
#
|
|
9
|
+
# For now, this consists of a few very simple signatures. The plan is
|
|
10
|
+
# that it should be the responsibility of the puppetlabs_spec_helper
|
|
11
|
+
# to broker between external projects and this API; thus, if any
|
|
12
|
+
# hacks are required (e.g. to determine whether or not a particular)
|
|
13
|
+
# version of puppet supports this API, those hacks will be consolidated in
|
|
14
|
+
# one place and won't need to be duplicated in every external project.
|
|
15
|
+
#
|
|
16
|
+
# This should also alleviate the anti-pattern that we've been following,
|
|
17
|
+
# wherein each external project starts off with a copy of puppet core's
|
|
18
|
+
# test_helper.rb and is exposed to risk of that code getting out of
|
|
19
|
+
# sync with core.
|
|
20
|
+
#
|
|
21
|
+
# Since this class will be "library code" that ships with puppet, it does
|
|
22
|
+
# not use API from any existing test framework such as rspec. This should
|
|
23
|
+
# theoretically allow it to be used with other unit test frameworks in the
|
|
24
|
+
# future, if desired.
|
|
25
|
+
#
|
|
26
|
+
# Note that in the future this API could potentially be expanded to handle
|
|
27
|
+
# other features such as "around_test", but we didn't see a compelling
|
|
28
|
+
# reason to deal with that right now.
|
|
29
|
+
class TestHelper
|
|
30
|
+
# Call this method once, when beginning a test run--prior to running
|
|
31
|
+
# any individual tests.
|
|
32
|
+
# @return nil
|
|
33
|
+
def self.before_all_tests()
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Call this method once, at the end of a test run, when no more tests
|
|
38
|
+
# will be run.
|
|
39
|
+
# @return nil
|
|
40
|
+
def self.after_all_tests()
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Call this method once per test, prior to execution of each invididual test.
|
|
45
|
+
# @return nil
|
|
46
|
+
def self.before_each_test()
|
|
47
|
+
# We need to preserve the current state of all our indirection cache and
|
|
48
|
+
# terminus classes. This is pretty important, because changes to these
|
|
49
|
+
# are global and lead to order dependencies in our testing.
|
|
50
|
+
#
|
|
51
|
+
# We go direct to the implementation because there is no safe, sane public
|
|
52
|
+
# API to manage restoration of these to their default values. This
|
|
53
|
+
# should, once the value is proved, be moved to a standard API on the
|
|
54
|
+
# indirector.
|
|
55
|
+
#
|
|
56
|
+
# To make things worse, a number of the tests stub parts of the
|
|
57
|
+
# indirector. These stubs have very specific expectations that what
|
|
58
|
+
# little of the public API we could use is, well, likely to explode
|
|
59
|
+
# randomly in some tests. So, direct access. --daniel 2011-08-30
|
|
60
|
+
$saved_indirection_state = {}
|
|
61
|
+
indirections = Puppet::Indirector::Indirection.send(:class_variable_get, :@@indirections)
|
|
62
|
+
indirections.each do |indirector|
|
|
63
|
+
$saved_indirection_state[indirector.name] = {
|
|
64
|
+
:@terminus_class => indirector.instance_variable_get(:@terminus_class),
|
|
65
|
+
:@cache_class => indirector.instance_variable_get(:@cache_class)
|
|
66
|
+
}
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
initialize_settings_before_each()
|
|
70
|
+
|
|
71
|
+
# Longer keys are secure, but they sure make for some slow testing - both
|
|
72
|
+
# in terms of generating keys, and in terms of anything the next step down
|
|
73
|
+
# the line doing validation or whatever. Most tests don't care how long
|
|
74
|
+
# or secure it is, just that it exists, so these are better and faster
|
|
75
|
+
# defaults, in testing only.
|
|
76
|
+
#
|
|
77
|
+
# I would make these even shorter, but OpenSSL doesn't support anything
|
|
78
|
+
# below 512 bits. Sad, really, because a 0 bit key would be just fine.
|
|
79
|
+
Puppet[:req_bits] = 512
|
|
80
|
+
Puppet[:keylength] = 512
|
|
81
|
+
|
|
82
|
+
Puppet::Node::Environment.clear
|
|
83
|
+
Puppet::Parser::Functions.reset
|
|
84
|
+
|
|
85
|
+
Puppet.clear_deprecation_warnings
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Call this method once per test, after execution of each individual test.
|
|
89
|
+
# @return nil
|
|
90
|
+
def self.after_each_test()
|
|
91
|
+
clear_settings_after_each()
|
|
92
|
+
|
|
93
|
+
Puppet::Util::Storage.clear
|
|
94
|
+
Puppet::Util::ExecutionStub.reset
|
|
95
|
+
|
|
96
|
+
# Restore the indirector configuration. See before hook.
|
|
97
|
+
indirections = Puppet::Indirector::Indirection.send(:class_variable_get, :@@indirections)
|
|
98
|
+
indirections.each do |indirector|
|
|
99
|
+
$saved_indirection_state.fetch(indirector.name, {}).each do |variable, value|
|
|
100
|
+
indirector.instance_variable_set(variable, value)
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
$saved_indirection_state = nil
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# Some tests can cause us to connect, in which case the lingering
|
|
107
|
+
# connection is a resource that can cause unexpected failure in later
|
|
108
|
+
# tests, as well as sharing state accidentally.
|
|
109
|
+
# We're testing if ActiveRecord::Base is defined because some test cases
|
|
110
|
+
# may stub Puppet.features.rails? which is how we should normally
|
|
111
|
+
# introspect for this functionality.
|
|
112
|
+
ActiveRecord::Base.remove_connection if defined?(ActiveRecord::Base)
|
|
113
|
+
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
#########################################################################################
|
|
118
|
+
# PRIVATE METHODS (not part of the public TestHelper API--do not call these from outside
|
|
119
|
+
# of this class!)
|
|
120
|
+
#########################################################################################
|
|
121
|
+
|
|
122
|
+
def self.initialize_settings_before_each()
|
|
123
|
+
# these globals are set by Application
|
|
124
|
+
$puppet_application_mode = nil
|
|
125
|
+
$puppet_application_name = nil
|
|
126
|
+
# Set the confdir and vardir to gibberish so that tests
|
|
127
|
+
# have to be correctly mocked.
|
|
128
|
+
Puppet[:confdir] = "/dev/null"
|
|
129
|
+
Puppet[:vardir] = "/dev/null"
|
|
130
|
+
|
|
131
|
+
# Avoid opening ports to the outside world
|
|
132
|
+
Puppet[:bindaddress] = "127.0.0.1"
|
|
133
|
+
end
|
|
134
|
+
private_class_method :initialize_settings_before_each
|
|
135
|
+
|
|
136
|
+
def self.clear_settings_after_each()
|
|
137
|
+
Puppet.settings.clear
|
|
138
|
+
end
|
|
139
|
+
private_class_method :clear_settings_after_each
|
|
140
|
+
end
|
|
141
|
+
end
|