puppet 3.3.2 → 3.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CONTRIBUTING.md +22 -0
- data/Gemfile +11 -2
- data/README.md +13 -17
- data/README_DEVELOPER.md +1 -1
- data/Rakefile +1 -1
- data/examples/hiera/README.md +4 -4
- data/ext/debian/puppetmaster.init +1 -0
- data/ext/debian/rules +2 -5
- data/ext/nagios/check_puppet.rb +7 -7
- data/ext/osx/file_mapping.yaml +1 -1
- data/ext/osx/preflight.erb +34 -19
- data/ext/rack/{files/config.ru → config.ru} +0 -0
- data/ext/rack/{files/apache2.conf → example-passenger-vhost.conf} +6 -0
- data/ext/redhat/puppet.spec.erb +20 -2
- data/ext/systemd/{puppetagent.service → puppet.service} +0 -0
- data/lib/hiera_puppet.rb +2 -2
- data/lib/puppet/agent.rb +1 -6
- data/lib/puppet/application.rb +15 -2
- data/lib/puppet/application/agent.rb +2 -7
- data/lib/puppet/application/apply.rb +8 -13
- data/lib/puppet/application/cert.rb +47 -7
- data/lib/puppet/application/device.rb +1 -6
- data/lib/puppet/application/face_base.rb +1 -1
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/inspect.rb +3 -12
- data/lib/puppet/application/master.rb +1 -6
- data/lib/puppet/application/queue.rb +1 -6
- data/lib/puppet/application/resource.rb +2 -6
- data/lib/puppet/coercion.rb +11 -0
- data/lib/puppet/configurer.rb +5 -3
- data/lib/puppet/configurer/downloader.rb +3 -1
- data/lib/puppet/configurer/plugin_handler.rb +10 -0
- data/lib/puppet/confine.rb +80 -0
- data/lib/puppet/{provider/confine → confine}/exists.rb +3 -3
- data/lib/puppet/{provider/confine → confine}/false.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/feature.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/true.rb +2 -2
- data/lib/puppet/{provider/confine → confine}/variable.rb +2 -2
- data/lib/puppet/{provider/confine_collection.rb → confine_collection.rb} +4 -4
- data/lib/puppet/{provider/confiner.rb → confiner.rb} +4 -4
- data/lib/puppet/daemon.rb +2 -6
- data/lib/puppet/data_binding.rb +2 -30
- data/lib/puppet/defaults.rb +283 -174
- data/lib/puppet/error.rb +1 -0
- data/lib/puppet/external/nagios.rb +0 -2
- data/lib/puppet/external/nagios/base.rb +4 -3
- data/lib/puppet/external/nagios/grammar.ry +173 -112
- data/lib/puppet/external/nagios/parser.rb +233 -184
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/module/generate.rb +5 -7
- data/lib/puppet/face/parser.rb +12 -2
- data/lib/puppet/face/plugin.rb +6 -0
- data/lib/puppet/feature/base.rb +16 -0
- data/lib/puppet/feature/external_facts.rb +5 -0
- data/lib/puppet/feature/libuser.rb +1 -1
- data/lib/puppet/feature/msgpack.rb +1 -0
- data/lib/puppet/feature/rails.rb +2 -2
- data/lib/puppet/file_bucket/dipper.rb +8 -6
- data/lib/puppet/file_bucket/file.rb +17 -1
- data/lib/puppet/file_serving/base.rb +21 -10
- data/lib/puppet/file_serving/configuration.rb +5 -7
- data/lib/puppet/file_serving/configuration/parser.rb +1 -1
- data/lib/puppet/file_serving/content.rb +1 -1
- data/lib/puppet/file_serving/fileset.rb +3 -3
- data/lib/puppet/file_serving/metadata.rb +22 -18
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/lib/puppet/file_system.rb +3 -0
- data/lib/puppet/file_system/file.rb +261 -0
- data/lib/puppet/file_system/file18.rb +5 -0
- data/lib/puppet/file_system/file19.rb +5 -0
- data/lib/puppet/file_system/file19windows.rb +113 -0
- data/lib/puppet/file_system/memory_file.rb +31 -0
- data/lib/puppet/file_system/tempfile.rb +20 -0
- data/lib/puppet/indirector/active_record.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +28 -0
- data/lib/puppet/indirector/certificate_request/memory.rb +6 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +46 -2
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/facts/facter.rb +25 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +60 -74
- data/lib/puppet/indirector/indirection.rb +5 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/key/ca.rb +4 -0
- data/lib/puppet/indirector/key/file.rb +7 -3
- data/lib/puppet/indirector/key/memory.rb +6 -0
- data/lib/puppet/indirector/node/write_only_yaml.rb +2 -2
- data/lib/puppet/indirector/request.rb +17 -11
- data/lib/puppet/indirector/resource/ral.rb +5 -0
- data/lib/puppet/indirector/resource/rest.rb +1 -0
- data/lib/puppet/indirector/resource/store_configs.rb +4 -0
- data/lib/puppet/indirector/rest.rb +2 -1
- data/lib/puppet/indirector/ssl_file.rb +7 -7
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/interface/documentation.rb +4 -11
- data/lib/puppet/module.rb +19 -6
- data/lib/puppet/module_tool/applications/builder.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +1 -1
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/dependency.rb +7 -3
- data/lib/puppet/module_tool/metadata.rb +6 -2
- data/lib/puppet/module_tool/tar.rb +2 -1
- data/lib/puppet/module_tool/tar/gnu.rb +6 -2
- data/lib/puppet/module_tool/tar/mini.rb +2 -0
- data/lib/puppet/module_tool/tar/solaris.rb +2 -5
- data/lib/puppet/network/authconfig.rb +0 -2
- data/lib/puppet/network/authentication.rb +1 -1
- data/lib/puppet/network/authstore.rb +6 -7
- data/lib/puppet/network/format.rb +2 -3
- data/lib/puppet/network/format_handler.rb +16 -11
- data/lib/puppet/network/format_support.rb +14 -0
- data/lib/puppet/network/formats.rb +26 -0
- data/lib/puppet/network/http/connection.rb +8 -41
- data/lib/puppet/network/http/handler.rb +28 -32
- data/lib/puppet/network/http/webrick.rb +15 -22
- data/lib/puppet/network/http_pool.rb +43 -9
- data/lib/puppet/network/rights.rb +0 -0
- data/lib/puppet/node.rb +24 -8
- data/lib/puppet/node/environment.rb +18 -20
- data/lib/puppet/node/facts.rb +23 -6
- data/lib/puppet/parameter.rb +15 -2
- data/lib/puppet/parameter/boolean.rb +5 -0
- data/lib/puppet/parameter/value_collection.rb +6 -4
- data/lib/puppet/parser/ast/resourceparam.rb +2 -1
- data/lib/puppet/parser/compiler.rb +25 -9
- data/lib/puppet/parser/files.rb +1 -1
- data/lib/puppet/parser/functions.rb +12 -21
- data/lib/puppet/parser/functions/collect.rb +6 -35
- data/lib/puppet/parser/functions/contain.rb +26 -0
- data/lib/puppet/parser/functions/create_resources.rb +5 -0
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/{reject.rb → filter.rb} +13 -12
- data/lib/puppet/parser/functions/fqdn_rand.rb +13 -5
- data/lib/puppet/parser/functions/include.rb +18 -1
- data/lib/puppet/parser/functions/map.rb +44 -0
- data/lib/puppet/parser/functions/select.rb +6 -38
- data/lib/puppet/parser/lexer.rb +1 -1
- data/lib/puppet/parser/parser_support.rb +1 -1
- data/lib/puppet/parser/resource.rb +6 -45
- data/lib/puppet/parser/scope.rb +33 -2
- data/lib/puppet/parser/type_loader.rb +4 -60
- data/lib/puppet/pops/binder/bindings_loader.rb +1 -1
- data/lib/puppet/pops/binder/config/binder_config.rb +3 -3
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +1 -1
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +1 -1
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +2 -2
- data/lib/puppet/pops/issues.rb +4 -0
- data/lib/puppet/pops/model/ast_transformer.rb +4 -1
- data/lib/puppet/pops/model/model_label_provider.rb +1 -1
- data/lib/puppet/pops/parser/egrammar.ra +5 -24
- data/lib/puppet/pops/parser/eparser.rb +859 -902
- data/lib/puppet/pops/parser/lexer.rb +48 -30
- data/lib/puppet/pops/parser/parser_support.rb +1 -1
- data/lib/puppet/pops/patterns.rb +4 -4
- data/lib/puppet/pops/utils.rb +1 -1
- data/lib/puppet/pops/validation/checker3_1.rb +25 -20
- data/lib/puppet/provider.rb +23 -6
- data/lib/puppet/provider/aixobject.rb +0 -0
- data/lib/puppet/provider/augeas/augeas.rb +21 -5
- data/lib/puppet/provider/confine.rb +5 -79
- data/lib/puppet/provider/cron/crontab.rb +0 -0
- data/lib/puppet/provider/exec.rb +9 -7
- data/lib/puppet/provider/exec/posix.rb +10 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +16 -5
- data/lib/puppet/provider/group/aix.rb +0 -0
- data/lib/puppet/provider/group/windows_adsi.rb +33 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +0 -0
- data/lib/puppet/provider/maillist/mailman.rb +0 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +1 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -0
- data/lib/puppet/provider/package/blastwave.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -0
- data/lib/puppet/provider/package/gem.rb +0 -0
- data/lib/puppet/provider/package/macports.rb +0 -0
- data/lib/puppet/provider/package/msi.rb +4 -10
- data/lib/puppet/provider/package/nim.rb +8 -8
- data/lib/puppet/provider/package/openbsd.rb +1 -1
- data/lib/puppet/provider/package/opkg.rb +0 -0
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +0 -0
- data/lib/puppet/provider/package/rpm.rb +39 -3
- data/lib/puppet/provider/package/sun.rb +3 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -0
- data/lib/puppet/provider/package/windows.rb +12 -19
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/parsedfile.rb +0 -0
- data/lib/puppet/provider/port/parsed.rb +0 -0
- data/lib/puppet/provider/service/base.rb +0 -0
- data/lib/puppet/provider/service/bsd.rb +3 -3
- data/lib/puppet/provider/service/daemontools.rb +8 -8
- data/lib/puppet/provider/service/debian.rb +0 -0
- data/lib/puppet/provider/service/freebsd.rb +3 -3
- data/lib/puppet/provider/service/init.rb +5 -4
- data/lib/puppet/provider/service/launchd.rb +35 -24
- data/lib/puppet/provider/service/openbsd.rb +23 -0
- data/lib/puppet/provider/service/redhat.rb +0 -0
- data/lib/puppet/provider/service/runit.rb +3 -3
- data/lib/puppet/provider/service/smf.rb +0 -0
- data/lib/puppet/provider/service/src.rb +0 -0
- data/lib/puppet/provider/service/systemd.rb +0 -0
- data/lib/puppet/provider/service/upstart.rb +3 -3
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
- data/lib/puppet/provider/sshkey/parsed.rb +0 -0
- data/lib/puppet/provider/user/aix.rb +0 -0
- data/lib/puppet/provider/user/directoryservice.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +1 -1
- data/lib/puppet/rails/benchmark.rb +1 -1
- data/lib/puppet/reference/configuration.rb +1 -2
- data/lib/puppet/reference/indirection.rb +12 -14
- data/lib/puppet/relationship.rb +7 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +2 -2
- data/lib/puppet/resource.rb +66 -8
- data/lib/puppet/resource/catalog.rb +18 -25
- data/lib/puppet/resource/status.rb +10 -4
- data/lib/puppet/run.rb +6 -2
- data/lib/puppet/settings.rb +39 -119
- data/lib/puppet/settings/base_setting.rb +8 -9
- data/lib/puppet/settings/directory_setting.rb +8 -0
- data/lib/puppet/settings/file_setting.rb +35 -1
- data/lib/puppet/settings/priority_setting.rb +42 -0
- data/lib/puppet/ssl.rb +4 -0
- data/lib/puppet/ssl/certificate.rb +18 -0
- data/lib/puppet/ssl/certificate_authority.rb +101 -72
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +44 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +21 -17
- data/lib/puppet/ssl/certificate_factory.rb +38 -12
- data/lib/puppet/ssl/certificate_request.rb +201 -47
- data/lib/puppet/ssl/certificate_request_attributes.rb +34 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +2 -2
- data/lib/puppet/ssl/host.rb +21 -10
- data/lib/puppet/ssl/inventory.rb +6 -10
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/oids.rb +78 -0
- data/lib/puppet/ssl/validator.rb +41 -97
- data/lib/puppet/ssl/validator/default_validator.rb +153 -0
- data/lib/puppet/ssl/validator/no_validator.rb +17 -0
- data/lib/puppet/status.rb +4 -0
- data/lib/puppet/test/test_helper.rb +5 -0
- data/lib/puppet/transaction.rb +13 -0
- data/lib/puppet/transaction/event.rb +8 -3
- data/lib/puppet/transaction/report.rb +6 -2
- data/lib/puppet/transaction/resource_harness.rb +173 -115
- data/lib/puppet/type.rb +30 -13
- data/lib/puppet/type/augeas.rb +12 -46
- data/lib/puppet/type/component.rb +1 -7
- data/lib/puppet/type/cron.rb +0 -0
- data/lib/puppet/type/exec.rb +13 -1
- data/lib/puppet/type/file.rb +19 -10
- data/lib/puppet/type/file/checksum.rb +0 -0
- data/lib/puppet/type/file/content.rb +3 -0
- data/lib/puppet/type/file/ensure.rb +33 -15
- data/lib/puppet/type/file/group.rb +0 -0
- data/lib/puppet/type/file/mode.rb +6 -2
- data/lib/puppet/type/file/owner.rb +0 -0
- data/lib/puppet/type/file/source.rb +65 -14
- data/lib/puppet/type/file/target.rb +6 -6
- data/lib/puppet/type/file/type.rb +0 -0
- data/lib/puppet/type/filebucket.rb +0 -0
- data/lib/puppet/type/group.rb +18 -0
- data/lib/puppet/type/host.rb +0 -0
- data/lib/puppet/type/k5login.rb +4 -4
- data/lib/puppet/type/mailalias.rb +0 -0
- data/lib/puppet/type/maillist.rb +0 -0
- data/lib/puppet/type/mount.rb +15 -1
- data/lib/puppet/type/package.rb +7 -1
- data/lib/puppet/type/port.rb +0 -0
- data/lib/puppet/type/schedule.rb +9 -4
- data/lib/puppet/type/service.rb +1 -1
- data/lib/puppet/type/sshkey.rb +0 -0
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +3 -0
- data/lib/puppet/type/yumrepo.rb +8 -6
- data/lib/puppet/type/zpool.rb +0 -0
- data/lib/puppet/util.rb +4 -31
- data/lib/puppet/util/adsi.rb +73 -17
- data/lib/puppet/util/autoload.rb +3 -3
- data/lib/puppet/util/backups.rb +4 -4
- data/lib/puppet/util/cacher.rb +7 -13
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +3 -1
- data/lib/puppet/util/colors.rb +1 -0
- data/lib/puppet/util/command_line.rb +5 -0
- data/lib/puppet/util/docs.rb +33 -27
- data/lib/puppet/util/execution.rb +42 -18
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/instance_loader.rb +2 -2
- data/lib/puppet/util/instrumentation.rb +23 -42
- data/lib/puppet/util/instrumentation/data.rb +11 -4
- data/lib/puppet/util/instrumentation/indirection_probe.rb +11 -4
- data/lib/puppet/util/instrumentation/instrumentable.rb +7 -14
- data/lib/puppet/util/instrumentation/listener.rb +15 -8
- data/lib/puppet/util/instrumentation/listeners/log.rb +4 -10
- data/lib/puppet/util/instrumentation/listeners/performance.rb +8 -14
- data/lib/puppet/util/limits.rb +12 -0
- data/lib/puppet/util/lockfile.rb +2 -2
- data/lib/puppet/util/log.rb +14 -6
- data/lib/puppet/util/log/destinations.rb +23 -1
- data/lib/puppet/util/metric.rb +9 -3
- data/lib/puppet/util/monkey_patches.rb +7 -2
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/plugins.rb +1 -1
- data/lib/puppet/util/posix.rb +0 -0
- data/lib/puppet/util/profiler.rb +7 -2
- data/lib/puppet/util/provider_features.rb +2 -2
- data/lib/puppet/util/rdoc.rb +28 -30
- data/lib/puppet/util/rdoc/code_objects.rb +75 -25
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +12 -487
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +477 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +19 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +1 -1
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/suidmanager.rb +1 -1
- data/lib/puppet/util/tag_set.rb +29 -0
- data/lib/puppet/util/tagging.rb +8 -24
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +1 -1
- data/lib/puppet/util/windows.rb +3 -0
- data/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/lib/puppet/util/windows/access_control_list.rb +106 -0
- data/lib/puppet/util/windows/file.rb +213 -0
- data/lib/puppet/util/windows/process.rb +199 -0
- data/lib/puppet/util/windows/root_certs.rb +52 -37
- data/lib/puppet/util/windows/security.rb +270 -245
- data/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/lib/puppet/util/windows/sid.rb +26 -4
- data/lib/puppet/version.rb +2 -2
- data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
- data/spec/fixtures/unit/indirector/{hiera → data_binding/hiera}/global.yaml +0 -0
- data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +1 -0
- data/spec/fixtures/unit/module/trailing-comma.json +24 -0
- data/spec/fixtures/unit/util/monkey_patches/x509.pem +32 -0
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/doc_spec.rb +1 -1
- data/spec/integration/configurer_spec.rb +4 -2
- data/spec/integration/data_binding.rb +100 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +16 -13
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/integration/node/facts_spec.rb +1 -1
- data/spec/integration/node_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +90 -0
- data/spec/integration/parser/parser_spec.rb +2 -2
- data/spec/integration/provider/cron/crontab_spec.rb +3 -5
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/ssl/autosign_spec.rb +90 -0
- data/spec/integration/ssl/certificate_authority_spec.rb +62 -69
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/host_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +13 -13
- data/spec/integration/type/exec_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +287 -45
- data/spec/integration/type/tidy_spec.rb +3 -3
- data/spec/integration/util/rdoc/parser_spec.rb +236 -35
- data/spec/integration/util/settings_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +22 -0
- data/spec/integration/util/windows/security_spec.rb +316 -106
- data/spec/lib/matchers/containment_matchers.rb +52 -0
- data/spec/lib/puppet_spec/compiler.rb +6 -0
- data/spec/lib/puppet_spec/files.rb +20 -21
- data/spec/shared_behaviours/documentation_on_faces.rb +3 -3
- data/spec/shared_behaviours/file_server_terminus.rb +2 -2
- data/spec/shared_contexts/platform.rb +1 -0
- data/spec/spec_helper.rb +13 -1
- data/spec/unit/agent_spec.rb +0 -12
- data/spec/unit/application/agent_spec.rb +4 -4
- data/spec/unit/application/apply_spec.rb +18 -2
- data/spec/unit/application/cert_spec.rb +8 -6
- data/spec/unit/application/device_spec.rb +1 -1
- data/spec/unit/application/filebucket_spec.rb +1 -1
- data/spec/unit/application/inspect_spec.rb +1 -1
- data/spec/unit/application_spec.rb +24 -0
- data/spec/unit/configurer/downloader_spec.rb +8 -7
- data/spec/unit/configurer/fact_handler_spec.rb +23 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +7 -2
- data/spec/unit/configurer_spec.rb +15 -5
- data/spec/unit/{provider/confine → confine}/exists_spec.rb +12 -12
- data/spec/unit/{provider/confine → confine}/false_spec.rb +9 -9
- data/spec/unit/{provider/confine → confine}/feature_spec.rb +10 -10
- data/spec/unit/{provider/confine → confine}/true_spec.rb +7 -7
- data/spec/unit/{provider/confine → confine}/variable_spec.rb +16 -16
- data/spec/unit/{provider/confine_collection_spec.rb → confine_collection_spec.rb} +30 -30
- data/spec/unit/{provider/confine_spec.rb → confine_spec.rb} +11 -11
- data/spec/unit/{provider/confiner_spec.rb → confiner_spec.rb} +4 -4
- data/spec/unit/face/parser_spec.rb +54 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/base_spec.rb +32 -9
- data/spec/unit/file_serving/configuration_spec.rb +7 -7
- data/spec/unit/file_serving/content_spec.rb +12 -7
- data/spec/unit/file_serving/fileset_spec.rb +57 -27
- data/spec/unit/file_serving/metadata_spec.rb +74 -12
- data/spec/unit/file_serving/mount/file_spec.rb +10 -10
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +73 -0
- data/spec/unit/file_system/file_spec.rb +486 -0
- data/spec/unit/file_system/tempfile_spec.rb +48 -0
- data/spec/unit/graph/relationship_graph_spec.rb +0 -6
- data/spec/unit/hiera_puppet_spec.rb +2 -2
- data/spec/unit/indirector/catalog/compiler_spec.rb +15 -19
- data/spec/unit/indirector/certificate_status/file_spec.rb +30 -40
- data/spec/unit/indirector/data_binding/hiera_spec.rb +95 -2
- data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
- data/spec/unit/indirector/facts/facter_spec.rb +33 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +61 -52
- data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
- data/spec/unit/indirector/file_server_spec.rb +4 -4
- data/spec/unit/indirector/json_spec.rb +4 -4
- data/spec/unit/indirector/key/file_spec.rb +13 -14
- data/spec/unit/indirector/resource/ral_spec.rb +7 -0
- data/spec/unit/indirector/resource/store_configs_spec.rb +11 -0
- data/spec/unit/indirector/rest_spec.rb +7 -3
- data/spec/unit/indirector/ssl_file_spec.rb +14 -17
- data/spec/unit/indirector/yaml_spec.rb +4 -4
- data/spec/unit/module_spec.rb +43 -15
- data/spec/unit/module_tool/tar/gnu_spec.rb +2 -2
- data/spec/unit/module_tool/tar/solaris_spec.rb +2 -2
- data/spec/unit/module_tool/tar_spec.rb +45 -0
- data/spec/unit/network/authconfig_spec.rb +2 -1
- data/spec/unit/network/authentication_spec.rb +2 -2
- data/spec/unit/network/format_handler_spec.rb +2 -2
- data/spec/unit/network/formats_spec.rb +24 -0
- data/spec/unit/network/http/connection_spec.rb +76 -199
- data/spec/unit/network/http/handler_spec.rb +33 -34
- data/spec/unit/network/http_pool_spec.rb +8 -5
- data/spec/unit/node/environment_spec.rb +76 -90
- data/spec/unit/node/facts_spec.rb +20 -3
- data/spec/unit/node_spec.rb +43 -0
- data/spec/unit/parameter/boolean_spec.rb +22 -12
- data/spec/unit/parser/ast/resourceparam_spec.rb +51 -0
- data/spec/unit/parser/compiler_spec.rb +103 -35
- data/spec/unit/parser/eparser_adapter_spec.rb +12 -12
- data/spec/unit/parser/files_spec.rb +11 -11
- data/spec/unit/parser/functions/contain_spec.rb +185 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +13 -5
- data/spec/unit/parser/functions/generate_spec.rb +1 -1
- data/spec/unit/parser/functions_spec.rb +2 -2
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/each_spec.rb +1 -1
- data/spec/unit/parser/methods/{select_spec.rb → filter_spec.rb} +11 -11
- data/spec/unit/parser/methods/map_spec.rb +95 -0
- data/spec/unit/parser/methods/reduce_spec.rb +12 -11
- data/spec/unit/parser/methods/shared.rb +5 -5
- data/spec/unit/parser/methods/slice_spec.rb +13 -13
- data/spec/unit/parser/parser_spec.rb +1 -1
- data/spec/unit/parser/resource/param_spec.rb +44 -0
- data/spec/unit/parser/resource_spec.rb +16 -15
- data/spec/unit/pops/model/ast_transformer_spec.rb +18 -4
- data/spec/unit/pops/parser/lexer_spec.rb +22 -5
- data/spec/unit/pops/parser/parse_calls_spec.rb +5 -5
- data/spec/unit/pops/transformer/transform_calls_spec.rb +6 -6
- data/spec/unit/pops/transformer/transform_containers_spec.rb +2 -2
- data/spec/unit/pops/validator/validator_spec.rb +31 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +57 -2
- data/spec/unit/provider/exec/posix_spec.rb +8 -3
- data/spec/unit/provider/file/posix_spec.rb +2 -2
- data/spec/unit/provider/group/windows_adsi_spec.rb +70 -3
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +1 -1
- data/spec/unit/provider/package/msi_spec.rb +15 -42
- data/spec/unit/provider/package/openbsd_spec.rb +3 -3
- data/spec/unit/provider/package/rpm_spec.rb +56 -13
- data/spec/unit/provider/package/windows_spec.rb +15 -19
- data/spec/unit/provider/service/base_spec.rb +1 -1
- data/spec/unit/provider/service/daemontools_spec.rb +18 -8
- data/spec/unit/provider/service/freebsd_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_spec.rb +5 -2
- data/spec/unit/provider/service/init_spec.rb +17 -17
- data/spec/unit/provider/service/launchd_spec.rb +76 -23
- data/spec/unit/provider/service/openbsd_spec.rb +125 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +12 -5
- data/spec/unit/provider/service/upstart_spec.rb +4 -4
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +5 -5
- data/spec/unit/provider/user/directoryservice_spec.rb +4 -4
- data/spec/unit/provider/zone/solaris_spec.rb +1 -1
- data/spec/unit/provider_spec.rb +2 -2
- data/spec/unit/reports/http_spec.rb +19 -34
- data/spec/unit/reports/store_spec.rb +2 -2
- data/spec/unit/resource/catalog_spec.rb +81 -11
- data/spec/unit/resource/status_spec.rb +11 -1
- data/spec/unit/resource/type_spec.rb +30 -1
- data/spec/unit/resource_spec.rb +40 -4
- data/spec/unit/settings/file_setting_spec.rb +2 -2
- data/spec/unit/settings/path_setting_spec.rb +2 -2
- data/spec/unit/settings/priority_setting_spec.rb +66 -0
- data/spec/unit/settings_spec.rb +16 -31
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +30 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +129 -134
- data/spec/unit/ssl/certificate_factory_spec.rb +18 -0
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +61 -0
- data/spec/unit/ssl/certificate_request_spec.rb +103 -0
- data/spec/unit/ssl/certificate_spec.rb +31 -18
- data/spec/unit/ssl/host_spec.rb +34 -8
- data/spec/unit/ssl/inventory_spec.rb +27 -62
- data/spec/unit/ssl/key_spec.rb +4 -4
- data/spec/unit/ssl/oids_spec.rb +48 -0
- data/spec/unit/ssl/validator_spec.rb +49 -6
- data/spec/unit/status_spec.rb +9 -0
- data/spec/unit/transaction/event_spec.rb +1 -9
- data/spec/unit/transaction/report_spec.rb +20 -1
- data/spec/unit/transaction/resource_harness_spec.rb +60 -210
- data/spec/unit/transaction_spec.rb +54 -8
- data/spec/unit/type/component_spec.rb +2 -2
- data/spec/unit/type/exec_spec.rb +14 -7
- data/spec/unit/type/file/content_spec.rb +13 -2
- data/spec/unit/type/file/ctime_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +48 -2
- data/spec/unit/type/file/mtime_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +177 -7
- data/spec/unit/type/file_spec.rb +63 -71
- data/spec/unit/type/group_spec.rb +20 -0
- data/spec/unit/type/k5login_spec.rb +3 -3
- data/spec/unit/type/mount_spec.rb +53 -0
- data/spec/unit/type/nagios_spec.rb +216 -0
- data/spec/unit/type/package_spec.rb +7 -1
- data/spec/unit/type/schedule_spec.rb +6 -0
- data/spec/unit/type/service_spec.rb +3 -3
- data/spec/unit/type/tidy_spec.rb +14 -14
- data/spec/unit/type/user_spec.rb +9 -0
- data/spec/unit/type_spec.rb +86 -4
- data/spec/unit/util/adsi_spec.rb +120 -12
- data/spec/unit/util/autoload_spec.rb +14 -14
- data/spec/unit/util/backups_spec.rb +29 -21
- data/spec/unit/util/checksums_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +41 -0
- data/spec/unit/util/docs_spec.rb +91 -0
- data/spec/unit/util/execution_spec.rb +26 -2
- data/spec/unit/util/filetype_spec.rb +7 -7
- data/spec/unit/util/lockfile_spec.rb +2 -2
- data/spec/unit/util/log/destinations_spec.rb +32 -0
- data/spec/unit/util/monkey_patches_spec.rb +41 -0
- data/spec/unit/util/pidlock_spec.rb +6 -6
- data/spec/unit/util/rdoc/parser_spec.rb +15 -13
- data/spec/unit/util/rdoc_spec.rb +18 -24
- data/spec/unit/util/resource_template_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +4 -2
- data/spec/unit/util/storage_spec.rb +4 -4
- data/spec/unit/util/suidmanager_spec.rb +7 -0
- data/spec/unit/util/tag_set_spec.rb +46 -0
- data/spec/unit/util/tagging_spec.rb +82 -45
- data/spec/unit/util/watcher_spec.rb +4 -1
- data/spec/unit/util/windows/access_control_entry_spec.rb +67 -0
- data/spec/unit/util/windows/access_control_list_spec.rb +133 -0
- data/spec/unit/util/windows/root_certs_spec.rb +10 -8
- data/spec/unit/util/windows/security_descriptor_spec.rb +117 -0
- data/spec/unit/util/windows/sid_spec.rb +69 -0
- data/spec/unit/util_spec.rb +7 -7
- data/tasks/ci.rake +17 -36
- metadata +2811 -2746
- checksums.yaml +0 -7
- data/examples/mac_automount.pp +0 -16
- data/examples/mcx_dock_absent.pp +0 -4
- data/examples/mcx_dock_default.pp +0 -118
- data/examples/mcx_dock_full.pp +0 -125
- data/examples/mcx_dock_invalid.pp +0 -9
- data/examples/mcx_nogroup.pp +0 -118
- data/examples/mcx_notexists_absent.pp +0 -4
- data/ext/rack/README +0 -58
- data/ext/rack/manifest.pp +0 -59
- data/lib/puppet/external/lock.rb +0 -63
- data/lib/puppet/indirector/hiera.rb +0 -39
- data/lib/puppet/parser/functions/foreach.rb +0 -95
- data/spec/integration/network/server/webrick_spec.rb +0 -76
- data/spec/integration/parser/functions_spec.rb +0 -16
- data/spec/unit/indirector/hiera_spec.rb +0 -154
- data/spec/unit/parser/methods/collect_spec.rb +0 -153
- data/spec/unit/parser/methods/foreach_spec.rb +0 -91
- data/spec/unit/parser/methods/reject_spec.rb +0 -73
- data/spec/unit/resource/resource_type.json +0 -34
@@ -37,16 +37,12 @@ class Puppet::Indirector::Request
|
|
37
37
|
request
|
38
38
|
end
|
39
39
|
|
40
|
-
def
|
40
|
+
def to_data_hash
|
41
41
|
result = {
|
42
|
-
'
|
43
|
-
'
|
44
|
-
|
45
|
-
'method' => method,
|
46
|
-
'key' => key
|
47
|
-
}
|
42
|
+
'type' => indirection_name,
|
43
|
+
'method' => method,
|
44
|
+
'key' => key
|
48
45
|
}
|
49
|
-
data = result['data']
|
50
46
|
attributes = {}
|
51
47
|
OPTION_ATTRIBUTES.each do |key|
|
52
48
|
next unless value = send(key)
|
@@ -57,10 +53,20 @@ class Puppet::Indirector::Request
|
|
57
53
|
attributes[opt] = value
|
58
54
|
end
|
59
55
|
|
60
|
-
|
61
|
-
|
56
|
+
result['attributes'] = attributes unless attributes.empty?
|
57
|
+
result['instance'] = instance if instance
|
58
|
+
result
|
59
|
+
end
|
62
60
|
|
63
|
-
|
61
|
+
def to_pson_data_hash
|
62
|
+
{
|
63
|
+
'document_type' => 'IndirectorRequest',
|
64
|
+
'data' => to_data_hash,
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def to_pson(*args)
|
69
|
+
to_pson_data_hash.to_pson(*args)
|
64
70
|
end
|
65
71
|
|
66
72
|
# Is this an authenticated request?
|
@@ -5,6 +5,11 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
|
|
5
5
|
|
6
6
|
desc "Manipulate resources with the resource abstraction layer. Only used internally."
|
7
7
|
|
8
|
+
def allow_remote_requests?
|
9
|
+
Puppet.deprecation_warning("Accessing resources on the network is deprecated. See http://links.puppetlabs.com/deprecate-networked-resource")
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
8
13
|
def find( request )
|
9
14
|
# find by name
|
10
15
|
res = type(request).instances.find { |o| o.name == resource_name(request) }
|
@@ -6,4 +6,8 @@ class Puppet::Resource::StoreConfigs < Puppet::Indirector::StoreConfigs
|
|
6
6
|
|
7
7
|
desc %q{Part of the "storeconfigs" feature. Should not be directly set by end users.}
|
8
8
|
|
9
|
+
def allow_remote_requests?
|
10
|
+
Puppet.deprecation_warning("Accessing resources on the network is deprecated. See http://links.puppetlabs.com/deprecate-networked-resource")
|
11
|
+
super
|
12
|
+
end
|
9
13
|
end
|
@@ -55,7 +55,8 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def network(request)
|
58
|
-
Puppet::Network::
|
58
|
+
Puppet::Network::HttpPool.http_instance(request.server || self.class.server,
|
59
|
+
request.port || self.class.port)
|
59
60
|
end
|
60
61
|
|
61
62
|
def http_get(request, path, headers = nil, *args)
|
@@ -70,11 +70,11 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
70
70
|
# Remove our file.
|
71
71
|
def destroy(request)
|
72
72
|
path = path(request.key)
|
73
|
-
return false unless
|
73
|
+
return false unless Puppet::FileSystem::File.exist?(path)
|
74
74
|
|
75
75
|
Puppet.notice "Removing file #{model} #{request.key} at '#{path}'"
|
76
76
|
begin
|
77
|
-
File.unlink(path)
|
77
|
+
Puppet::FileSystem::File.unlink(path)
|
78
78
|
rescue => detail
|
79
79
|
raise Puppet::Error, "Could not remove #{request.key}: #{detail}"
|
80
80
|
end
|
@@ -135,10 +135,10 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
135
135
|
# which we'll be EOL'ing at some point. This method was added at 20080702
|
136
136
|
# and should be removed at some point.
|
137
137
|
def rename_files_with_uppercase(file)
|
138
|
-
return file if
|
138
|
+
return file if Puppet::FileSystem::File.exist?(file)
|
139
139
|
|
140
140
|
dir, short = File.split(file)
|
141
|
-
return nil unless
|
141
|
+
return nil unless Puppet::FileSystem::File.exist?(dir)
|
142
142
|
|
143
143
|
raise ArgumentError, "Tried to fix SSL files to a file containing uppercase" unless short.downcase == short
|
144
144
|
real_file = Dir.entries(dir).reject { |f| f =~ /^\./ }.find do |other|
|
@@ -159,12 +159,12 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
159
159
|
# the work or opening a filehandle manually.
|
160
160
|
def write(name, path)
|
161
161
|
if ca?(name) and ca_location
|
162
|
-
Puppet.settings.
|
162
|
+
Puppet.settings.setting(self.class.ca_setting).open('w') { |f| yield f }
|
163
163
|
elsif file_location
|
164
|
-
Puppet.settings.
|
164
|
+
Puppet.settings.setting(self.class.file_setting).open('w') { |f| yield f }
|
165
165
|
elsif setting = self.class.directory_setting
|
166
166
|
begin
|
167
|
-
Puppet.settings.
|
167
|
+
Puppet.settings.setting(setting).open_file(path, 'w') { |f| yield f }
|
168
168
|
rescue => detail
|
169
169
|
raise Puppet::Error, "Could not write #{path} to #{setting}: #{detail}"
|
170
170
|
end
|
@@ -6,7 +6,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
6
6
|
# Read a given name's file in and convert it from YAML.
|
7
7
|
def find(request)
|
8
8
|
file = path(request.key)
|
9
|
-
return nil unless
|
9
|
+
return nil unless Puppet::FileSystem::File.exist?(file)
|
10
10
|
|
11
11
|
begin
|
12
12
|
return Puppet::Util::Yaml.load_file(file)
|
@@ -24,7 +24,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
24
24
|
basedir = File.dirname(file)
|
25
25
|
|
26
26
|
# This is quite likely a bad idea, since we're not managing ownership or modes.
|
27
|
-
Dir.mkdir(basedir) unless
|
27
|
+
Dir.mkdir(basedir) unless Puppet::FileSystem::File.exist?(basedir)
|
28
28
|
|
29
29
|
begin
|
30
30
|
Puppet::Util::Yaml.dump(request.instance, file)
|
@@ -46,7 +46,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
46
46
|
|
47
47
|
def destroy(request)
|
48
48
|
file_path = path(request.key)
|
49
|
-
File.unlink(file_path) if File.
|
49
|
+
Puppet::FileSystem::File.unlink(file_path) if Puppet::FileSystem::File.exist?(file_path)
|
50
50
|
end
|
51
51
|
|
52
52
|
def search(request)
|
@@ -1,19 +1,12 @@
|
|
1
1
|
class Puppet::Interface
|
2
2
|
# @api private
|
3
3
|
module DocGen
|
4
|
+
require 'puppet/util/docs'
|
5
|
+
|
4
6
|
# @api private
|
5
7
|
def self.strip_whitespace(text)
|
6
|
-
|
7
|
-
|
8
|
-
# We need to identify an indent: the minimum number of whitespace
|
9
|
-
# characters at the start of any line in the text.
|
10
|
-
indent = text.split(/\n/).map {|x| x.index(/[^\s]/) }.compact.min
|
11
|
-
|
12
|
-
if indent > 0 then
|
13
|
-
text.gsub!(/^[ \t\f]{0,#{indent}}/, '')
|
14
|
-
end
|
15
|
-
|
16
|
-
return text
|
8
|
+
# I don't want no...
|
9
|
+
Puppet::Util::Docs.scrub(text)
|
17
10
|
end
|
18
11
|
|
19
12
|
# The documentation attributes all have some common behaviours; previously
|
data/lib/puppet/module.rb
CHANGED
@@ -20,6 +20,7 @@ class Puppet::Module
|
|
20
20
|
"files" => "files",
|
21
21
|
"templates" => "templates",
|
22
22
|
"plugins" => "lib",
|
23
|
+
"pluginfacts" => "facts.d",
|
23
24
|
}
|
24
25
|
|
25
26
|
# Find and return the +module+ that +path+ belongs to. If +path+ is
|
@@ -53,10 +54,14 @@ class Puppet::Module
|
|
53
54
|
def has_metadata?
|
54
55
|
return false unless metadata_file
|
55
56
|
|
56
|
-
return false unless
|
57
|
-
|
58
|
-
metadata = PSON.parse File.read(metadata_file)
|
57
|
+
return false unless Puppet::FileSystem::File.exist?(metadata_file)
|
59
58
|
|
59
|
+
begin
|
60
|
+
metadata = PSON.parse(File.read(metadata_file))
|
61
|
+
rescue PSON::PSONError => e
|
62
|
+
Puppet.debug("#{name} has an invalid and unparsable metadata.json file. The parse error: #{e.message}")
|
63
|
+
return false
|
64
|
+
end
|
60
65
|
|
61
66
|
return metadata.is_a?(Hash) && !metadata.keys.empty?
|
62
67
|
end
|
@@ -66,7 +71,7 @@ class Puppet::Module
|
|
66
71
|
# we have files of a given type.
|
67
72
|
define_method(type +'?') do
|
68
73
|
type_subpath = subpath(location)
|
69
|
-
unless
|
74
|
+
unless Puppet::FileSystem::File.exist?(type_subpath)
|
70
75
|
Puppet.debug("No #{type} found in subpath '#{type_subpath}' " +
|
71
76
|
"(file / directory does not exist)")
|
72
77
|
return false
|
@@ -89,7 +94,7 @@ class Puppet::Module
|
|
89
94
|
full_path = subpath(location)
|
90
95
|
end
|
91
96
|
|
92
|
-
return nil unless
|
97
|
+
return nil unless Puppet::FileSystem::File.exist?(full_path)
|
93
98
|
return full_path
|
94
99
|
end
|
95
100
|
|
@@ -148,7 +153,7 @@ class Puppet::Module
|
|
148
153
|
end
|
149
154
|
|
150
155
|
def all_manifests
|
151
|
-
return [] unless File.
|
156
|
+
return [] unless Puppet::FileSystem::File.exist?(manifests)
|
152
157
|
|
153
158
|
Dir.glob(File.join(manifests, '**', '*.{rb,pp}'))
|
154
159
|
end
|
@@ -169,6 +174,14 @@ class Puppet::Module
|
|
169
174
|
subpath("lib")
|
170
175
|
end
|
171
176
|
|
177
|
+
def plugin_fact_directory
|
178
|
+
subpath("facts.d")
|
179
|
+
end
|
180
|
+
|
181
|
+
def has_external_facts?
|
182
|
+
File.directory?(plugin_fact_directory)
|
183
|
+
end
|
184
|
+
|
172
185
|
def supports(name, version = nil)
|
173
186
|
@supports ||= []
|
174
187
|
@supports << [name, version]
|
@@ -32,7 +32,7 @@ module Puppet::ModuleTool
|
|
32
32
|
if is_module_package?(@name)
|
33
33
|
@source = :filesystem
|
34
34
|
@filename = File.expand_path(@name)
|
35
|
-
raise MissingPackageError, :requested_package => @filename unless File.exist?(@filename)
|
35
|
+
raise MissingPackageError, :requested_package => @filename unless Puppet::FileSystem::File.exist?(@filename)
|
36
36
|
|
37
37
|
parsed = parse_filename(@filename)
|
38
38
|
@module_name = parsed[:module_name]
|
@@ -16,7 +16,7 @@ module Puppet::ModuleTool
|
|
16
16
|
|
17
17
|
# Return checksum for the +Pathname+.
|
18
18
|
def checksum(pathname)
|
19
|
-
return Digest::MD5.hexdigest(
|
19
|
+
return Digest::MD5.hexdigest(Puppet::FileSystem::File.new(pathname).binread)
|
20
20
|
end
|
21
21
|
|
22
22
|
# Return checksums for object's +Pathname+, generate if it's needed.
|
@@ -15,12 +15,16 @@ module Puppet::ModuleTool
|
|
15
15
|
@repository = repository ? Puppet::Forge::Repository.new(repository) : nil
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
def to_pson(*args)
|
18
|
+
def to_data_hash
|
20
19
|
result = { :name => @full_module_name }
|
21
20
|
result[:version_requirement] = @version_requirement if @version_requirement && ! @version_requirement.nil?
|
22
21
|
result[:repository] = @repository.to_s if @repository && ! @repository.nil?
|
23
|
-
result
|
22
|
+
result
|
23
|
+
end
|
24
|
+
|
25
|
+
# Return PSON representation of this data.
|
26
|
+
def to_pson(*args)
|
27
|
+
to_data_hash.to_pson(*args)
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
@@ -129,7 +129,7 @@ module Puppet::ModuleTool
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
def
|
132
|
+
def to_data_hash()
|
133
133
|
return extra_metadata.merge({
|
134
134
|
'name' => @full_module_name,
|
135
135
|
'version' => @version,
|
@@ -145,9 +145,13 @@ module Puppet::ModuleTool
|
|
145
145
|
})
|
146
146
|
end
|
147
147
|
|
148
|
+
def to_hash()
|
149
|
+
to_data_hash
|
150
|
+
end
|
151
|
+
|
148
152
|
# Return the PSON record representing this instance.
|
149
153
|
def to_pson(*args)
|
150
|
-
return
|
154
|
+
return to_data_hash.to_pson(*args)
|
151
155
|
end
|
152
156
|
end
|
153
157
|
end
|
@@ -4,7 +4,8 @@ module Puppet::ModuleTool::Tar
|
|
4
4
|
require 'puppet/module_tool/tar/mini'
|
5
5
|
|
6
6
|
def self.instance(module_name)
|
7
|
-
|
7
|
+
gtar_platforms = ['Solaris', 'OpenBSD']
|
8
|
+
if gtar_platforms.include?(Facter.value('osfamily')) && Puppet::Util.which('gtar')
|
8
9
|
Solaris.new
|
9
10
|
elsif Puppet::Util.which('tar') && ! Puppet::Util::Platform.windows?
|
10
11
|
Gnu.new
|
@@ -1,8 +1,12 @@
|
|
1
1
|
class Puppet::ModuleTool::Tar::Gnu
|
2
|
+
def initialize(command = "tar")
|
3
|
+
@command = command
|
4
|
+
end
|
5
|
+
|
2
6
|
def unpack(sourcefile, destdir, owner)
|
3
|
-
Puppet::Util::Execution.execute("
|
7
|
+
Puppet::Util::Execution.execute("#{@command} xzf #{sourcefile} --no-same-owner -C #{destdir}")
|
4
8
|
Puppet::Util::Execution.execute("find #{destdir} -type d -exec chmod 755 {} +")
|
5
|
-
Puppet::Util::Execution.execute("find #{destdir} -type f -exec chmod
|
9
|
+
Puppet::Util::Execution.execute("find #{destdir} -type f -exec chmod a-wst {} +")
|
6
10
|
Puppet::Util::Execution.execute("chown -R #{owner} #{destdir}")
|
7
11
|
end
|
8
12
|
|
@@ -7,6 +7,8 @@ class Puppet::ModuleTool::Tar::Mini
|
|
7
7
|
Zlib::GzipReader.open(sourcefile) do |reader|
|
8
8
|
Archive::Tar::Minitar.unpack(reader, destdir) do |action, name, stats|
|
9
9
|
case action
|
10
|
+
when :file_done
|
11
|
+
File.chmod(0444, "#{destdir}/#{name}")
|
10
12
|
when :dir, :file_start
|
11
13
|
validate_entry(destdir, name)
|
12
14
|
Puppet.debug("extracting #{destdir}/#{name}")
|
@@ -1,8 +1,5 @@
|
|
1
1
|
class Puppet::ModuleTool::Tar::Solaris < Puppet::ModuleTool::Tar::Gnu
|
2
|
-
def
|
3
|
-
|
4
|
-
Puppet::Util::Execution.execute("find #{destdir} -type d -exec chmod 755 {} +")
|
5
|
-
Puppet::Util::Execution.execute("find #{destdir} -type f -exec chmod 644 {} +")
|
6
|
-
Puppet::Util::Execution.execute("chown -R #{owner} #{destdir}")
|
2
|
+
def initialize
|
3
|
+
super("gtar")
|
7
4
|
end
|
8
5
|
end
|
@@ -14,7 +14,7 @@ module Puppet::Network::Authentication
|
|
14
14
|
certs << Puppet::SSL::CertificateAuthority.instance.host.certificate if Puppet::SSL::CertificateAuthority.ca?
|
15
15
|
|
16
16
|
# Always check the host cert if we have one, this will be the agent or master cert depending on the run mode
|
17
|
-
certs << Puppet::SSL::Host.localhost.certificate if
|
17
|
+
certs << Puppet::SSL::Host.localhost.certificate if Puppet::FileSystem::File.exist?(Puppet[:hostcert])
|
18
18
|
|
19
19
|
# Remove nil values for caller convenience
|
20
20
|
certs.compact.each do |cert|
|
@@ -82,21 +82,20 @@ module Puppet
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def interpolate(match)
|
85
|
-
|
85
|
+
@modified_declarations = @declarations.collect { |ace| ace.interpolate(match) }.sort
|
86
86
|
end
|
87
87
|
|
88
88
|
def reset_interpolation
|
89
|
-
|
89
|
+
@modified_declarations = nil
|
90
90
|
end
|
91
91
|
|
92
92
|
private
|
93
93
|
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
# by a modified version in a multithread safe way.
|
94
|
+
# Returns our ACEs list, but if we have a modification of it, let's return
|
95
|
+
# it. This is used if we want to override the this purely immutable list
|
96
|
+
# by a modified version.
|
98
97
|
def declarations
|
99
|
-
|
98
|
+
@modified_declarations || @declarations
|
100
99
|
end
|
101
100
|
|
102
101
|
# Store the results of a pattern into our hash. Basically just
|
@@ -1,10 +1,9 @@
|
|
1
|
-
require 'puppet/
|
2
|
-
require 'puppet/provider/confiner'
|
1
|
+
require 'puppet/confiner'
|
3
2
|
|
4
3
|
# A simple class for modeling encoding formats for moving
|
5
4
|
# instances around the network.
|
6
5
|
class Puppet::Network::Format
|
7
|
-
include Puppet::
|
6
|
+
include Puppet::Confiner
|
8
7
|
|
9
8
|
attr_reader :name, :mime
|
10
9
|
attr_accessor :intern_method, :render_method, :intern_multiple_method, :render_multiple_method, :weight, :required_methods, :extension
|
@@ -5,6 +5,8 @@ require 'puppet/network/format'
|
|
5
5
|
module Puppet::Network::FormatHandler
|
6
6
|
class FormatError < Puppet::Error; end
|
7
7
|
|
8
|
+
ALL_MEDIA_TYPES = '*/*'.freeze
|
9
|
+
|
8
10
|
@formats = {}
|
9
11
|
|
10
12
|
def self.create(*args, &block)
|
@@ -70,24 +72,20 @@ module Puppet::Network::FormatHandler
|
|
70
72
|
# that generally conforms to an HTTP Accept header. Any quality specifiers
|
71
73
|
# are ignored and instead the formats are simply in strict preference order
|
72
74
|
# (most preferred is first)
|
73
|
-
# @param supported [Array<Symbol>] the names of the supported formats (
|
74
|
-
#
|
75
|
+
# @param supported [Array<Symbol>] the names of the supported formats (the
|
76
|
+
# most preferred format is first)
|
75
77
|
# @return [Puppet::Network::Format, nil] the most suitable format
|
76
78
|
# @api private
|
77
79
|
def self.most_suitable_format_for(accepted, supported)
|
78
80
|
format_name = accepted.collect do |accepted|
|
79
81
|
accepted.to_s.sub(/;q=.*$/, '')
|
80
82
|
end.collect do |accepted|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
format_to_canonical_name(accepted)
|
86
|
-
end
|
87
|
-
rescue ArgumentError
|
88
|
-
nil
|
83
|
+
if accepted == ALL_MEDIA_TYPES
|
84
|
+
supported.first
|
85
|
+
else
|
86
|
+
format_to_canonical_name_or_nil(accepted)
|
89
87
|
end
|
90
|
-
end.
|
88
|
+
end.find do |accepted|
|
91
89
|
supported.include?(accepted)
|
92
90
|
end
|
93
91
|
|
@@ -95,6 +93,13 @@ module Puppet::Network::FormatHandler
|
|
95
93
|
format_for(format_name)
|
96
94
|
end
|
97
95
|
end
|
96
|
+
|
97
|
+
# @api private
|
98
|
+
def self.format_to_canonical_name_or_nil(format)
|
99
|
+
format_to_canonical_name(format)
|
100
|
+
rescue ArgumentError
|
101
|
+
nil
|
102
|
+
end
|
98
103
|
end
|
99
104
|
|
100
105
|
require 'puppet/network/formats'
|