puppet 3.2.4 → 3.3.0.rc2
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/COMMITTERS.md +101 -42
- data/Gemfile +15 -4
- data/README.md +5 -1
- data/README_DEVELOPER.md +117 -54
- data/Rakefile +4 -0
- data/ext/build_defaults.yaml +3 -2
- data/ext/debian/puppet-common.manpages +33 -1
- data/ext/gentoo/init.d/puppet +1 -1
- data/ext/gentoo/init.d/puppetmaster +1 -1
- data/ext/redhat/puppet.spec.erb +0 -1
- data/install.rb +2 -1
- data/lib/hiera/backend/puppet_backend.rb +1 -1
- data/lib/puppet/application.rb +10 -9
- data/lib/puppet/application/agent.rb +87 -93
- data/lib/puppet/application/apply.rb +0 -2
- data/lib/puppet/application/device.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +41 -19
- data/lib/puppet/application/queue.rb +5 -3
- data/lib/puppet/bindings.rb +147 -0
- data/lib/puppet/configurer.rb +25 -15
- data/lib/puppet/configurer/fact_handler.rb +2 -9
- data/lib/puppet/daemon.rb +44 -33
- data/lib/puppet/defaults.rb +57 -26
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +2 -2
- data/lib/puppet/external/nagios/base.rb +1 -6
- data/lib/puppet/external/pson/common.rb +2 -2
- data/lib/puppet/external/pson/pure/generator.rb +2 -2
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/ca.rb +1 -1
- data/lib/puppet/face/config.rb +1 -1
- data/lib/puppet/face/help.rb +2 -2
- data/lib/puppet/face/module/list.rb +2 -2
- data/lib/puppet/feature/rails.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +0 -1
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +20 -14
- data/lib/puppet/forge.rb +0 -32
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/forge/repository.rb +7 -42
- data/lib/puppet/graph.rb +11 -0
- data/lib/puppet/graph/key.rb +26 -0
- data/lib/puppet/graph/prioritizer.rb +29 -0
- data/lib/puppet/graph/random_prioritizer.rb +16 -0
- data/lib/puppet/{rb_tree_map.rb → graph/rb_tree_map.rb} +3 -3
- data/lib/puppet/graph/relationship_graph.rb +246 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/lib/puppet/{simple_graph.rb → graph/simple_graph.rb} +22 -3
- data/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/indirector/catalog/compiler.rb +10 -7
- data/lib/puppet/indirector/catalog/static_compiler.rb +50 -0
- data/lib/puppet/indirector/certificate/rest.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +2 -2
- data/lib/puppet/indirector/facts/inventory_active_record.rb +0 -1
- data/lib/puppet/indirector/facts/network_device.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +0 -1
- data/lib/puppet/indirector/indirection.rb +2 -2
- data/lib/puppet/indirector/memory.rb +9 -0
- data/lib/puppet/indirector/node/ldap.rb +2 -4
- data/lib/puppet/indirector/report/processor.rb +1 -2
- data/lib/puppet/indirector/report/rest.rb +1 -1
- data/lib/puppet/indirector/request.rb +32 -10
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +31 -12
- data/lib/puppet/interface.rb +1 -1
- data/lib/puppet/interface/documentation.rb +7 -11
- data/lib/puppet/interface/option.rb +1 -1
- data/lib/puppet/interface/option_builder.rb +1 -1
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module.rb +7 -1
- data/lib/puppet/module_tool.rb +1 -1
- data/lib/puppet/module_tool/applications/application.rb +10 -0
- data/lib/puppet/module_tool/applications/installer.rb +6 -3
- data/lib/puppet/module_tool/dependency.rb +2 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
- data/lib/puppet/module_tool/metadata.rb +25 -13
- data/lib/puppet/module_tool/modulefile.rb +7 -7
- data/lib/puppet/module_tool/shared_behaviors.rb +4 -2
- data/lib/puppet/module_tool/skeleton.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +5 -5
- data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +5 -4
- data/lib/puppet/network/auth_config_parser.rb +3 -0
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +1 -1
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/format_handler.rb +25 -114
- data/lib/puppet/network/format_support.rb +106 -0
- data/lib/puppet/network/formats.rb +10 -4
- data/lib/puppet/network/http/compression.rb +1 -1
- data/lib/puppet/network/http/connection.rb +76 -32
- data/lib/puppet/network/http/handler.rb +122 -61
- data/lib/puppet/network/http/rack/rest.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +9 -3
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/network/resolver.rb +1 -0
- data/lib/puppet/network/server.rb +5 -81
- data/lib/puppet/node/environment.rb +256 -13
- data/lib/puppet/node/facts.rb +28 -2
- data/lib/puppet/parameter.rb +27 -18
- data/lib/puppet/parameter/boolean.rb +20 -0
- data/lib/puppet/parameter/path.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +1 -1
- data/lib/puppet/parser/ast/arithmetic_operator.rb +8 -0
- data/lib/puppet/parser/ast/casestatement.rb +0 -3
- data/lib/puppet/parser/ast/lambda.rb +25 -6
- data/lib/puppet/parser/ast/leaf.rb +10 -3
- data/lib/puppet/parser/ast/nop.rb +1 -1
- data/lib/puppet/parser/ast/resource_override.rb +0 -2
- data/lib/puppet/parser/compiler.rb +92 -34
- data/lib/puppet/parser/files.rb +0 -5
- data/lib/puppet/parser/functions/create_resources.rb +23 -46
- data/lib/puppet/parser/functions/each.rb +0 -2
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/foreach.rb +0 -2
- data/lib/puppet/parser/functions/hiera_include.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +44 -0
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/grammar.ra +0 -1
- data/lib/puppet/parser/lexer.rb +0 -1
- data/lib/puppet/parser/parser.rb +0 -1
- data/lib/puppet/parser/parser_factory.rb +3 -2
- data/lib/puppet/parser/parser_support.rb +1 -1
- data/lib/puppet/parser/relationship.rb +1 -1
- data/lib/puppet/parser/scope.rb +49 -24
- data/lib/puppet/parser/type_loader.rb +13 -18
- data/lib/puppet/pops.rb +45 -0
- data/lib/puppet/pops/adaptable.rb +2 -2
- data/lib/puppet/pops/adapters.rb +4 -0
- data/lib/puppet/pops/binder/binder.rb +421 -0
- data/lib/puppet/pops/binder/binder_issues.rb +142 -0
- data/lib/puppet/pops/binder/bindings_checker.rb +217 -0
- data/lib/puppet/pops/binder/bindings_composer.rb +241 -0
- data/lib/puppet/pops/binder/bindings_factory.rb +847 -0
- data/lib/puppet/pops/binder/bindings_label_provider.rb +46 -0
- data/lib/puppet/pops/binder/bindings_loader.rb +79 -0
- data/lib/puppet/pops/binder/bindings_model.rb +215 -0
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +205 -0
- data/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
- data/lib/puppet/pops/binder/config/binder_config.rb +139 -0
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +183 -0
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
- data/lib/puppet/pops/binder/config/issues.rb +106 -0
- data/lib/puppet/pops/binder/hiera2.rb +10 -0
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +148 -0
- data/lib/puppet/pops/binder/hiera2/config.rb +69 -0
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +68 -0
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +36 -0
- data/lib/puppet/pops/binder/hiera2/issues.rb +67 -0
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +18 -0
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +21 -0
- data/lib/puppet/pops/binder/injector.rb +688 -0
- data/lib/puppet/pops/binder/injector_entry.rb +53 -0
- data/lib/puppet/pops/binder/key_factory.rb +61 -0
- data/lib/puppet/pops/binder/producers.rb +829 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +67 -0
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +92 -0
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +54 -0
- data/lib/puppet/pops/binder/system_bindings.rb +72 -0
- data/lib/puppet/pops/issue_reporter.rb +75 -0
- data/lib/puppet/pops/issues.rb +9 -5
- data/lib/puppet/pops/model/ast_transformer.rb +4 -4
- data/lib/puppet/pops/model/ast_tree_dumper.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +25 -13
- data/lib/puppet/pops/model/model.rb +1 -1
- data/lib/puppet/pops/model/tree_dumper.rb +2 -2
- data/lib/puppet/pops/parser/egrammar.ra +0 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +162 -0
- data/lib/puppet/pops/parser/lexer.rb +8 -6
- data/lib/puppet/pops/types/class_loader.rb +118 -0
- data/lib/puppet/pops/types/type_calculator.rb +557 -0
- data/lib/puppet/pops/types/type_factory.rb +147 -0
- data/lib/puppet/pops/types/type_parser.rb +117 -0
- data/lib/puppet/pops/types/types.rb +132 -0
- data/lib/puppet/pops/validation.rb +146 -17
- data/lib/puppet/pops/validation/checker3_1.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +6 -16
- data/lib/puppet/property.rb +3 -3
- data/lib/puppet/property/keyvalue.rb +1 -1
- data/lib/puppet/provider.rb +2 -2
- data/lib/puppet/provider/aixobject.rb +19 -21
- data/lib/puppet/provider/augeas/augeas.rb +3 -1
- data/lib/puppet/provider/command.rb +2 -2
- data/lib/puppet/provider/group/aix.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +3 -8
- data/lib/puppet/provider/mcx/mcxcontent.rb +7 -1
- data/lib/puppet/provider/mount.rb +8 -3
- data/lib/puppet/provider/nameservice.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +86 -32
- data/lib/puppet/provider/package/fink.rb +0 -2
- data/lib/puppet/provider/package/freebsd.rb +0 -2
- data/lib/puppet/provider/package/openbsd.rb +57 -10
- data/lib/puppet/provider/package/opkg.rb +0 -1
- data/lib/puppet/provider/package/pacman.rb +0 -1
- data/lib/puppet/provider/package/pip.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +17 -6
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +9 -1
- data/lib/puppet/provider/package/ports.rb +2 -2
- data/lib/puppet/provider/package/rpm.rb +29 -12
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/urpmi.rb +11 -15
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -26
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/package/zypper.rb +22 -3
- data/lib/puppet/provider/parsedfile.rb +1 -12
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +1 -1
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +3 -3
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/init.rb +14 -20
- data/lib/puppet/provider/service/openrc.rb +3 -1
- data/lib/puppet/provider/service/redhat.rb +5 -8
- data/lib/puppet/provider/service/runit.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -2
- data/lib/puppet/provider/user/aix.rb +25 -12
- data/lib/puppet/provider/user/directoryservice.rb +4 -7
- data/lib/puppet/provider/user/ldap.rb +0 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -0
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +1 -2
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +1 -1
- data/lib/puppet/resource.rb +16 -4
- data/lib/puppet/resource/catalog.rb +111 -173
- data/lib/puppet/resource/status.rb +42 -3
- data/lib/puppet/resource/type.rb +33 -46
- data/lib/puppet/resource/type_collection.rb +19 -15
- data/lib/puppet/run.rb +5 -1
- data/lib/puppet/scheduler/scheduler.rb +14 -15
- data/lib/puppet/settings.rb +78 -41
- data/lib/puppet/settings/boolean_setting.rb +0 -2
- data/lib/puppet/settings/config_file.rb +0 -2
- data/lib/puppet/settings/directory_setting.rb +0 -2
- data/lib/puppet/settings/duration_setting.rb +0 -2
- data/lib/puppet/settings/enum_setting.rb +16 -0
- data/lib/puppet/settings/file_setting.rb +0 -2
- data/lib/puppet/settings/path_setting.rb +0 -2
- data/lib/puppet/settings/string_setting.rb +0 -3
- data/lib/puppet/settings/terminus_setting.rb +0 -2
- data/lib/puppet/ssl/certificate_authority.rb +102 -9
- data/lib/puppet/test/test_helper.rb +1 -0
- data/lib/puppet/transaction.rb +130 -292
- data/lib/puppet/transaction/additional_resource_generator.rb +126 -0
- data/lib/puppet/transaction/event.rb +16 -1
- data/lib/puppet/transaction/report.rb +34 -14
- data/lib/puppet/transaction/resource_harness.rb +16 -19
- data/lib/puppet/type.rb +59 -53
- data/lib/puppet/type/component.rb +0 -2
- data/lib/puppet/type/cron.rb +13 -2
- data/lib/puppet/type/exec.rb +5 -7
- data/lib/puppet/type/file.rb +9 -32
- data/lib/puppet/type/file/content.rb +4 -1
- data/lib/puppet/type/file/ctime.rb +3 -1
- data/lib/puppet/type/file/ensure.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -1
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/group.rb +7 -9
- data/lib/puppet/type/host.rb +1 -2
- data/lib/puppet/type/mcx.rb +0 -1
- data/lib/puppet/type/mount.rb +38 -6
- data/lib/puppet/type/package.rb +2 -2
- data/lib/puppet/type/resources.rb +5 -4
- data/lib/puppet/type/schedule.rb +1 -4
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +1 -3
- data/lib/puppet/type/tidy.rb +3 -3
- data/lib/puppet/type/user.rb +9 -13
- data/lib/puppet/type/yumrepo.rb +11 -7
- data/lib/puppet/util.rb +14 -7
- data/lib/puppet/util/autoload.rb +0 -1
- data/lib/puppet/util/backups.rb +1 -3
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -3
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/constant_inflector.rb +1 -2
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +28 -0
- data/lib/puppet/util/fileparsing.rb +1 -3
- data/lib/puppet/util/filetype.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +38 -0
- data/lib/puppet/util/ldap/manager.rb +1 -2
- data/lib/puppet/util/log.rb +31 -10
- data/lib/puppet/util/log/destinations.rb +0 -50
- data/lib/puppet/util/metric.rb +8 -1
- data/lib/puppet/util/monkey_patches.rb +14 -148
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +6 -9
- data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
- data/lib/puppet/util/pidlock.rb +3 -0
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -1
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -42
- data/lib/puppet/util/retryaction.rb +0 -1
- data/lib/puppet/util/symbolic_file_mode.rb +5 -1
- data/lib/puppet/util/tagging.rb +0 -2
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +37 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/lib/puppet/util/watcher/timer.rb +19 -0
- data/lib/puppet/util/windows/user.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +109 -0
- data/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
- data/lib/puppetx/puppet/hiera2_backend.rb +31 -0
- data/lib/puppetx/puppet/syntax_checker.rb +91 -0
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +39 -0
- data/lib/semver.rb +1 -1
- data/man/man8/puppet-kick.8 +1 -1
- data/spec/fixtures/integration/provider/cron/crontab/unspecialized +15 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +19 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +13 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +4 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +11 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_scheme_handler.rb +18 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +3 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +11 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +9 -0
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +5 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +10 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +7 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +4 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +2 -0
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +8 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/empty/common.yaml +0 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +1 -0
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +2 -0
- data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +2 -0
- data/spec/integration/agent/logging_spec.rb +178 -0
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +0 -6
- data/spec/integration/network/authconfig_spec.rb +19 -0
- data/spec/integration/network/server/webrick_spec.rb +10 -11
- data/spec/integration/parser/catalog_spec.rb +85 -0
- data/spec/integration/provider/cron/crontab_spec.rb +11 -0
- data/spec/integration/provider/mount_spec.rb +1 -0
- data/spec/integration/transaction_spec.rb +8 -8
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +58 -11
- data/spec/lib/matchers/include_in_order.rb +21 -0
- data/spec/lib/matchers/include_in_order_spec.rb +30 -0
- data/spec/lib/matchers/relationship_graph_matchers.rb +48 -0
- data/spec/lib/puppet_spec/compiler.rb +24 -0
- data/spec/lib/puppet_spec/pops.rb +16 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/unit/application/agent_spec.rb +145 -145
- data/spec/unit/application/apply_spec.rb +1 -1
- data/spec/unit/application/doc_spec.rb +1 -1
- data/spec/unit/application/face_base_spec.rb +3 -3
- data/spec/unit/application/facts_spec.rb +1 -0
- data/spec/unit/application/master_spec.rb +0 -15
- data/spec/unit/application/queue_spec.rb +6 -12
- data/spec/unit/application/resource_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +19 -50
- data/spec/unit/configurer_spec.rb +23 -7
- data/spec/unit/daemon_spec.rb +97 -121
- data/spec/unit/defaults_spec.rb +44 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -33
- data/spec/unit/file_serving/configuration_spec.rb +2 -2
- data/spec/unit/file_serving/mount/file_spec.rb +4 -4
- data/spec/unit/forge/repository_spec.rb +9 -29
- data/spec/unit/graph/key_spec.rb +41 -0
- data/spec/unit/{rb_tree_map_spec.rb → graph/rb_tree_map_spec.rb} +7 -7
- data/spec/unit/graph/relationship_graph_spec.rb +393 -0
- data/spec/unit/graph/sequential_prioritizer_spec.rb +32 -0
- data/spec/unit/{simple_graph_spec.rb → graph/simple_graph.rb} +42 -254
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +49 -0
- data/spec/unit/hiera_puppet_spec.rb +1 -1
- data/spec/unit/indirector/catalog/active_record_spec.rb +4 -2
- data/spec/unit/indirector/catalog/compiler_spec.rb +20 -26
- data/spec/unit/indirector/face_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +11 -1
- data/spec/unit/indirector/facts/network_device_spec.rb +11 -1
- data/spec/unit/indirector/hiera_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_data/local_spec.rb +1 -1
- data/spec/unit/indirector/instrumentation_listener/local_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +92 -39
- data/spec/unit/indirector/rest_spec.rb +1 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/option_builder_spec.rb +1 -0
- data/spec/unit/interface/option_spec.rb +1 -0
- data/spec/unit/interface_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +49 -2
- data/spec/unit/module_tool/metadata_spec.rb +13 -0
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/format_handler_spec.rb +33 -282
- data/spec/unit/network/format_support_spec.rb +199 -0
- data/spec/unit/network/formats_spec.rb +2 -2
- data/spec/unit/network/http/connection_spec.rb +88 -7
- data/spec/unit/network/http/handler_spec.rb +271 -249
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +73 -22
- data/spec/unit/network/http_pool_spec.rb +40 -0
- data/spec/unit/network/server_spec.rb +18 -207
- data/spec/unit/node/facts_spec.rb +68 -17
- data/spec/unit/other/selinux_spec.rb +24 -20
- data/spec/unit/parameter/boolean_spec.rb +25 -0
- data/spec/unit/parameter/value_collection_spec.rb +7 -7
- data/spec/unit/parameter_spec.rb +10 -13
- data/spec/unit/parser/ast/function_spec.rb +4 -4
- data/spec/unit/parser/ast/leaf_spec.rb +45 -6
- data/spec/unit/parser/collector_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +4 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +9 -25
- data/spec/unit/parser/functions/extlookup_spec.rb +2 -2
- data/spec/unit/parser/functions/hiera_include_spec.rb +12 -0
- data/spec/unit/parser/functions/lookup_spec.rb +96 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +2 -2
- data/spec/unit/parser/functions/split_spec.rb +2 -2
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -1
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -2
- data/spec/unit/parser/functions_spec.rb +7 -7
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/collect_spec.rb +43 -0
- data/spec/unit/parser/resource_spec.rb +9 -9
- data/spec/unit/parser/scope_spec.rb +45 -2
- data/spec/unit/parser/type_loader_spec.rb +159 -175
- data/spec/unit/pops/binder/binder_spec.rb +62 -0
- data/spec/unit/pops/binder/bindings_checker_spec.rb +196 -0
- data/spec/unit/pops/binder/bindings_composer_spec.rb +89 -0
- data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +18 -0
- data/spec/unit/pops/binder/config/binder_config_spec.rb +48 -0
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +74 -0
- data/spec/unit/pops/binder/hiera2/config_spec.rb +61 -0
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +33 -0
- data/spec/unit/pops/binder/injector_spec.rb +789 -0
- data/spec/unit/pops/containment_spec.rb +1 -0
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +88 -0
- data/spec/unit/pops/parser/lexer_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +4 -0
- data/spec/unit/pops/parser/parser_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +484 -0
- data/spec/unit/pops/types/type_factory_spec.rb +65 -0
- data/spec/unit/pops/types/type_parser_spec.rb +93 -0
- data/spec/unit/property/list_spec.rb +1 -1
- data/spec/unit/property/ordered_list_spec.rb +1 -1
- data/spec/unit/provider/aixobject_spec.rb +101 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +14 -3
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +52 -16
- data/spec/unit/provider/mount/parsed_spec.rb +44 -56
- data/spec/unit/provider/mount_spec.rb +11 -2
- data/spec/unit/provider/naginator_spec.rb +8 -0
- data/spec/unit/provider/package/apt_spec.rb +5 -1
- data/spec/unit/provider/package/aptitude_spec.rb +9 -5
- data/spec/unit/provider/package/aptrpm_spec.rb +2 -2
- data/spec/unit/provider/package/dpkg_spec.rb +274 -99
- data/spec/unit/provider/package/openbsd_spec.rb +84 -1
- data/spec/unit/provider/package/opkg_spec.rb +3 -3
- data/spec/unit/provider/package/pip_spec.rb +16 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +62 -7
- data/spec/unit/provider/package/rpm_spec.rb +112 -21
- data/spec/unit/provider/package/urpmi.rb +80 -0
- data/spec/unit/provider/package/windows/exe_package_spec.rb +1 -1
- data/spec/unit/provider/package/yum_spec.rb +85 -0
- data/spec/unit/provider/package/zypper_spec.rb +25 -6
- data/spec/unit/provider/parsedfile_spec.rb +3 -2
- data/spec/unit/provider/service/init_spec.rb +10 -10
- data/spec/unit/provider/service/openrc_spec.rb +16 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +7 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -2
- data/spec/unit/provider/user/aix_spec.rb +89 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +11 -4
- data/spec/unit/provider/user/user_role_add_spec.rb +18 -0
- data/spec/unit/provider_spec.rb +2 -13
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/resource/catalog_spec.rb +23 -97
- data/spec/unit/resource/resource_type.json +34 -0
- data/spec/unit/resource/status_spec.rb +56 -0
- data/spec/unit/resource/type_collection_spec.rb +6 -6
- data/spec/unit/resource/type_spec.rb +25 -5
- data/spec/unit/resource_spec.rb +68 -24
- data/spec/unit/run_spec.rb +16 -0
- data/spec/unit/scheduler/scheduler_spec.rb +14 -27
- data/spec/unit/semver_spec.rb +5 -0
- data/spec/unit/settings/enum_setting_spec.rb +27 -0
- data/spec/unit/settings_spec.rb +53 -44
- data/spec/unit/ssl/certificate_authority_spec.rb +155 -19
- data/spec/unit/transaction/additional_resource_generator_spec.rb +419 -0
- data/spec/unit/transaction/event_manager_spec.rb +2 -2
- data/spec/unit/transaction/event_spec.rb +57 -0
- data/spec/unit/transaction/report_spec.rb +66 -0
- data/spec/unit/transaction/resource_harness_spec.rb +27 -20
- data/spec/unit/transaction_spec.rb +182 -390
- data/spec/unit/type/augeas_spec.rb +3 -3
- data/spec/unit/type/component_spec.rb +0 -9
- data/spec/unit/type/computer_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +2 -2
- data/spec/unit/type/exec_spec.rb +4 -2
- data/spec/unit/type/file/content_spec.rb +11 -0
- data/spec/unit/type/file/group_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +16 -8
- data/spec/unit/type/mount_spec.rb +445 -259
- data/spec/unit/type/package_spec.rb +4 -4
- data/spec/unit/type/resources_spec.rb +30 -1
- data/spec/unit/type/user_spec.rb +26 -3
- data/spec/unit/type/yumrepo_spec.rb +7 -27
- data/spec/unit/type/zone_spec.rb +4 -1
- data/spec/unit/type_spec.rb +66 -33
- data/spec/unit/util/backups_spec.rb +3 -3
- data/spec/unit/util/http_proxy_spec.rb +83 -0
- data/spec/unit/util/log_spec.rb +79 -8
- data/spec/unit/util/metric_spec.rb +12 -0
- data/spec/unit/util/monkey_patches_spec.rb +6 -0
- data/spec/unit/util/network_device/config_spec.rb +26 -64
- data/spec/unit/util/pidlock_spec.rb +4 -1
- data/spec/unit/util/tagging_spec.rb +5 -9
- data/spec/unit/util/warnings_spec.rb +1 -1
- data/spec/unit/util/watched_file_spec.rb +52 -0
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +52 -0
- data/spec/unit/util/watcher_spec.rb +56 -0
- data/spec/unit/util_spec.rb +16 -0
- metadata +2767 -2576
- data/ext/debian/puppet.manpages +0 -32
- data/ext/osx/PackageInfo.plist +0 -36
- data/ext/osx/createpackage.sh +0 -187
- data/ext/redhat/rundir-perms.patch +0 -28
- data/lib/puppet/external/base64.rb +0 -19
- data/lib/puppet/util/graph.rb +0 -27
- data/lib/puppet/util/loadedfile.rb +0 -61
- data/lib/puppet/util/log_paths.rb +0 -22
- data/lib/puppet/util/subclass_loader.rb +0 -78
- data/spec/monkey_patches/publicize_methods.rb +0 -11
- data/spec/unit/util/loadedfile_spec.rb +0 -71
@@ -109,14 +109,13 @@ class Puppet::Util::Ldap::Manager
|
|
109
109
|
# Find the associated entry for a resource. Returns a hash, minus
|
110
110
|
# 'dn', or nil if the entry cannot be found.
|
111
111
|
def find(name)
|
112
|
-
result = nil
|
113
112
|
connect do |conn|
|
114
113
|
begin
|
115
114
|
conn.search2(dn(name), 0, "objectclass=*") do |result|
|
116
115
|
# Convert to puppet-appropriate attributes
|
117
116
|
return entry2provider(result)
|
118
117
|
end
|
119
|
-
rescue
|
118
|
+
rescue
|
120
119
|
return nil
|
121
120
|
end
|
122
121
|
end
|
data/lib/puppet/util/log.rb
CHANGED
@@ -142,6 +142,19 @@ class Puppet::Util::Log
|
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
145
|
+
def Log.with_destination(destination, &block)
|
146
|
+
if @destinations.include?(destination)
|
147
|
+
yield
|
148
|
+
else
|
149
|
+
newdestination(destination)
|
150
|
+
begin
|
151
|
+
yield
|
152
|
+
ensure
|
153
|
+
close(destination)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
145
158
|
# Route the actual message. FIXME There are lots of things this method
|
146
159
|
# should do, like caching and a bit more. It's worth noting that there's
|
147
160
|
# a potential for a loop here, if the machine somehow gets the destination set as
|
@@ -261,6 +274,18 @@ class Puppet::Util::Log
|
|
261
274
|
@line = data['line'] if data['line']
|
262
275
|
end
|
263
276
|
|
277
|
+
def to_pson
|
278
|
+
{
|
279
|
+
'level' => @level,
|
280
|
+
'message' => @message,
|
281
|
+
'source' => @source,
|
282
|
+
'tags' => @tags,
|
283
|
+
'time' => @time.iso8601(9),
|
284
|
+
'file' => @file,
|
285
|
+
'line' => @line,
|
286
|
+
}.to_pson
|
287
|
+
end
|
288
|
+
|
264
289
|
def message=(msg)
|
265
290
|
raise ArgumentError, "Puppet::Util::Log requires a message" unless msg
|
266
291
|
@message = msg.to_s
|
@@ -279,16 +304,11 @@ class Puppet::Util::Log
|
|
279
304
|
# If they pass a source in to us, we make sure it is a string, and
|
280
305
|
# we retrieve any tags we can.
|
281
306
|
def source=(source)
|
282
|
-
if source.respond_to?(:
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
[:file, :line].each do |param|
|
289
|
-
next unless descriptors[param]
|
290
|
-
send(param.to_s + "=", descriptors[param])
|
291
|
-
end
|
307
|
+
if source.respond_to?(:path)
|
308
|
+
@source = source.path
|
309
|
+
source.tags.each { |t| tag(t) }
|
310
|
+
self.file = source.file
|
311
|
+
self.line = source.line
|
292
312
|
else
|
293
313
|
@source = source.to_s
|
294
314
|
end
|
@@ -301,6 +321,7 @@ class Puppet::Util::Log
|
|
301
321
|
def to_s
|
302
322
|
message
|
303
323
|
end
|
324
|
+
|
304
325
|
end
|
305
326
|
|
306
327
|
# This is for backward compatibility from when we changed the constant to Puppet::Util::Log
|
@@ -126,56 +126,6 @@ Puppet::Util::Log.newdesttype :console do
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
129
|
-
Puppet::Util::Log.newdesttype :host do
|
130
|
-
def initialize(host)
|
131
|
-
Puppet.info "Treating #{host} as a hostname"
|
132
|
-
args = {}
|
133
|
-
if host =~ /:(\d+)/
|
134
|
-
args[:Port] = $1
|
135
|
-
args[:Server] = host.sub(/:\d+/, '')
|
136
|
-
else
|
137
|
-
args[:Server] = host
|
138
|
-
end
|
139
|
-
|
140
|
-
@name = host
|
141
|
-
|
142
|
-
@driver = Puppet::Network::Client::LogClient.new(args)
|
143
|
-
end
|
144
|
-
|
145
|
-
def handle(msg)
|
146
|
-
unless msg.is_a?(String) or msg.remote
|
147
|
-
@hostname ||= Facter["hostname"].value
|
148
|
-
unless defined?(@domain)
|
149
|
-
@domain = Facter["domain"].value
|
150
|
-
@hostname += ".#{@domain}" if @domain
|
151
|
-
end
|
152
|
-
if Puppet::Util.absolute_path?(msg.source)
|
153
|
-
msg.source = @hostname + ":#{msg.source}"
|
154
|
-
elsif msg.source == "Puppet"
|
155
|
-
msg.source = @hostname + " #{msg.source}"
|
156
|
-
else
|
157
|
-
msg.source = @hostname + " #{msg.source}"
|
158
|
-
end
|
159
|
-
begin
|
160
|
-
#puts "would have sent #{msg}"
|
161
|
-
#puts "would have sent %s" %
|
162
|
-
# CGI.escape(YAML.dump(msg))
|
163
|
-
begin
|
164
|
-
tmp = CGI.escape(YAML.dump(msg))
|
165
|
-
rescue => detail
|
166
|
-
puts "Could not dump: #{detail}"
|
167
|
-
return
|
168
|
-
end
|
169
|
-
# Add the hostname to the source
|
170
|
-
@driver.addlog(tmp)
|
171
|
-
rescue => detail
|
172
|
-
Puppet.log_exception(detail)
|
173
|
-
Puppet::Util::Log.close(self)
|
174
|
-
end
|
175
|
-
end
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
129
|
# Log to a transaction report.
|
180
130
|
Puppet::Util::Log.newdesttype :report do
|
181
131
|
attr_reader :report
|
data/lib/puppet/util/metric.rb
CHANGED
@@ -15,6 +15,14 @@ class Puppet::Util::Metric
|
|
15
15
|
metric
|
16
16
|
end
|
17
17
|
|
18
|
+
def to_pson
|
19
|
+
{
|
20
|
+
'name' => @name,
|
21
|
+
'label' => @label,
|
22
|
+
'values' => @values
|
23
|
+
}.to_pson
|
24
|
+
end
|
25
|
+
|
18
26
|
# Return a specific value
|
19
27
|
def [](name)
|
20
28
|
if value = @values.find { |v| v[0] == name }
|
@@ -85,7 +93,6 @@ class Puppet::Util::Metric
|
|
85
93
|
args.push("--title",self.label)
|
86
94
|
args.push("--imgformat","PNG")
|
87
95
|
args.push("--interlace")
|
88
|
-
i = 0
|
89
96
|
defs = []
|
90
97
|
lines = []
|
91
98
|
#p @values.collect { |s,l| s }
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'puppet/util'
|
2
1
|
module Puppet::Util::MonkeyPatches
|
3
2
|
end
|
4
3
|
|
@@ -67,53 +66,6 @@ class Object
|
|
67
66
|
end
|
68
67
|
end
|
69
68
|
|
70
|
-
# Workaround for yaml_initialize, which isn't supported before Ruby
|
71
|
-
# 1.8.3.
|
72
|
-
if RUBY_VERSION == '1.8.1' || RUBY_VERSION == '1.8.2'
|
73
|
-
YAML.add_ruby_type( /^object/ ) { |tag, val|
|
74
|
-
type, obj_class = YAML.read_type_class( tag, Object )
|
75
|
-
r = YAML.object_maker( obj_class, val )
|
76
|
-
if r.respond_to? :yaml_initialize
|
77
|
-
r.instance_eval { instance_variables.each { |name| remove_instance_variable name } }
|
78
|
-
r.yaml_initialize(tag, val)
|
79
|
-
end
|
80
|
-
r
|
81
|
-
}
|
82
|
-
end
|
83
|
-
|
84
|
-
class Fixnum
|
85
|
-
# Returns the int itself. This method is intended for compatibility to
|
86
|
-
# character constant in Ruby 1.9. 1.8.5 is missing it; add it.
|
87
|
-
def ord
|
88
|
-
self
|
89
|
-
end unless method_defined? 'ord'
|
90
|
-
end
|
91
|
-
|
92
|
-
class Array
|
93
|
-
# Ruby < 1.8.7 doesn't have this method but we use it in tests
|
94
|
-
def combination(num)
|
95
|
-
return [] if num < 0 || num > size
|
96
|
-
return [[]] if num == 0
|
97
|
-
return map{|e| [e] } if num == 1
|
98
|
-
tmp = self.dup
|
99
|
-
self[0, size - (num - 1)].inject([]) do |ret, e|
|
100
|
-
tmp.shift
|
101
|
-
ret += tmp.combination(num - 1).map{|a| a.unshift(e) }
|
102
|
-
end
|
103
|
-
end unless method_defined? :combination
|
104
|
-
|
105
|
-
alias :count :length unless method_defined? :count
|
106
|
-
|
107
|
-
# Ruby 1.8.5 lacks `drop`, which we don't want to lose.
|
108
|
-
def drop(n)
|
109
|
-
n = n.to_int
|
110
|
-
raise ArgumentError, "attempt to drop negative size" if n < 0
|
111
|
-
|
112
|
-
slice(n, length - n) or []
|
113
|
-
end unless method_defined? :drop
|
114
|
-
end
|
115
|
-
|
116
|
-
|
117
69
|
class Symbol
|
118
70
|
# So, it turns out that one of the biggest memory allocation hot-spots in
|
119
71
|
# our code was using symbol-to-proc - because it allocated a new instance
|
@@ -187,6 +139,10 @@ class IO
|
|
187
139
|
end unless singleton_methods.include?(:binwrite)
|
188
140
|
end
|
189
141
|
|
142
|
+
class Float
|
143
|
+
INFINITY = (1.0/0.0) if defined?(Float::INFINITY).nil?
|
144
|
+
end
|
145
|
+
|
190
146
|
class Range
|
191
147
|
def intersection(other)
|
192
148
|
raise ArgumentError, 'value must be a Range' unless other.kind_of?(Range)
|
@@ -205,15 +161,6 @@ class Range
|
|
205
161
|
alias_method :&, :intersection unless method_defined? :&
|
206
162
|
end
|
207
163
|
|
208
|
-
# Ruby 1.8.5 doesn't have tap
|
209
|
-
module Kernel
|
210
|
-
def tap
|
211
|
-
yield(self)
|
212
|
-
self
|
213
|
-
end unless method_defined?(:tap)
|
214
|
-
end
|
215
|
-
|
216
|
-
|
217
164
|
########################################################################
|
218
165
|
# The return type of `instance_variables` changes between Ruby 1.8 and 1.9
|
219
166
|
# releases; it used to return an array of strings in the form "@foo", but
|
@@ -266,97 +213,6 @@ if RUBY_VERSION[0,3] == '1.8'
|
|
266
213
|
end
|
267
214
|
end
|
268
215
|
|
269
|
-
# The mv method in Ruby 1.8.5 can't mv directories across devices
|
270
|
-
# File.rename causes "Invalid cross-device link", which is rescued, but in Ruby
|
271
|
-
# 1.8.5 it tries to recover with a copy and unlink, but the unlink causes the
|
272
|
-
# error "Is a directory". In newer Rubies remove_entry is used
|
273
|
-
# The implementation below is what's used in Ruby 1.8.7 and Ruby 1.9
|
274
|
-
if RUBY_VERSION == '1.8.5'
|
275
|
-
require 'fileutils'
|
276
|
-
|
277
|
-
module FileUtils
|
278
|
-
def mv(src, dest, options = {})
|
279
|
-
fu_check_options options, OPT_TABLE['mv']
|
280
|
-
fu_output_message "mv#{options[:force] ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
|
281
|
-
return if options[:noop]
|
282
|
-
fu_each_src_dest(src, dest) do |s, d|
|
283
|
-
destent = Entry_.new(d, nil, true)
|
284
|
-
begin
|
285
|
-
if destent.exist?
|
286
|
-
if destent.directory?
|
287
|
-
raise Errno::EEXIST, dest
|
288
|
-
else
|
289
|
-
destent.remove_file if rename_cannot_overwrite_file?
|
290
|
-
end
|
291
|
-
end
|
292
|
-
begin
|
293
|
-
File.rename s, d
|
294
|
-
rescue Errno::EXDEV
|
295
|
-
copy_entry s, d, true
|
296
|
-
if options[:secure]
|
297
|
-
remove_entry_secure s, options[:force]
|
298
|
-
else
|
299
|
-
remove_entry s, options[:force]
|
300
|
-
end
|
301
|
-
end
|
302
|
-
rescue SystemCallError
|
303
|
-
raise unless options[:force]
|
304
|
-
end
|
305
|
-
end
|
306
|
-
end
|
307
|
-
module_function :mv
|
308
|
-
|
309
|
-
alias move mv
|
310
|
-
module_function :move
|
311
|
-
end
|
312
|
-
end
|
313
|
-
|
314
|
-
# Ruby 1.8.6 doesn't have it either
|
315
|
-
# From https://github.com/puppetlabs/hiera/pull/47/files:
|
316
|
-
# In ruby 1.8.5 Dir does not have mktmpdir defined, so this monkey patches
|
317
|
-
# Dir to include the 1.8.7 definition of that method if it isn't already defined.
|
318
|
-
# Method definition borrowed from ruby-1.8.7-p357/lib/ruby/1.8/tmpdir.rb
|
319
|
-
unless Dir.respond_to?(:mktmpdir)
|
320
|
-
def Dir.mktmpdir(prefix_suffix=nil, tmpdir=nil)
|
321
|
-
case prefix_suffix
|
322
|
-
when nil
|
323
|
-
prefix = "d"
|
324
|
-
suffix = ""
|
325
|
-
when String
|
326
|
-
prefix = prefix_suffix
|
327
|
-
suffix = ""
|
328
|
-
when Array
|
329
|
-
prefix = prefix_suffix[0]
|
330
|
-
suffix = prefix_suffix[1]
|
331
|
-
else
|
332
|
-
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
333
|
-
end
|
334
|
-
tmpdir ||= Dir.tmpdir
|
335
|
-
t = Time.now.strftime("%Y%m%d")
|
336
|
-
n = nil
|
337
|
-
begin
|
338
|
-
path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
339
|
-
path << "-#{n}" if n
|
340
|
-
path << suffix
|
341
|
-
Dir.mkdir(path, 0700)
|
342
|
-
rescue Errno::EEXIST
|
343
|
-
n ||= 0
|
344
|
-
n += 1
|
345
|
-
retry
|
346
|
-
end
|
347
|
-
|
348
|
-
if block_given?
|
349
|
-
begin
|
350
|
-
yield path
|
351
|
-
ensure
|
352
|
-
FileUtils.remove_entry_secure path
|
353
|
-
end
|
354
|
-
else
|
355
|
-
path
|
356
|
-
end
|
357
|
-
end
|
358
|
-
end
|
359
|
-
|
360
216
|
# (#19151) Reject all SSLv2 ciphers and handshakes
|
361
217
|
require 'openssl'
|
362
218
|
class OpenSSL::SSL::SSLContext
|
@@ -399,3 +255,13 @@ if Puppet::Util::Platform.windows?
|
|
399
255
|
end
|
400
256
|
end
|
401
257
|
|
258
|
+
# Older versions of SecureRandom (e.g. in 1.8.7) don't have the uuid method
|
259
|
+
module SecureRandom
|
260
|
+
def self.uuid
|
261
|
+
# Copied from the 1.9.1 stdlib implementation of uuid
|
262
|
+
ary = self.random_bytes(16).unpack("NnnnnN")
|
263
|
+
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
264
|
+
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
265
|
+
"%08x-%04x-%04x-%04x-%04x%08x" % ary
|
266
|
+
end unless singleton_methods.include?(:uuid)
|
267
|
+
end
|
@@ -64,7 +64,7 @@ class Puppet::Util::NetworkDevice::Cisco::Facts
|
|
64
64
|
|
65
65
|
def uptime_to_seconds(uptime)
|
66
66
|
captures = (uptime.match /^(?:(\d+) years?,)?\s*(?:(\d+) weeks?,)?\s*(?:(\d+) days?,)?\s*(?:(\d+) hours?,)?\s*(\d+) minutes?$/).captures
|
67
|
-
|
67
|
+
captures.zip([31536000, 604800, 86400, 3600, 60]).inject(0) do |total, (x,y)|
|
68
68
|
total + (x.nil? ? 0 : x.to_i * y)
|
69
69
|
end
|
70
70
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'ostruct'
|
2
|
-
require 'puppet/util/
|
2
|
+
require 'puppet/util/watched_file'
|
3
3
|
require 'puppet/util/network_device'
|
4
4
|
|
5
|
-
class Puppet::Util::NetworkDevice::Config
|
5
|
+
class Puppet::Util::NetworkDevice::Config
|
6
6
|
|
7
7
|
def self.main
|
8
8
|
@main ||= self.new
|
@@ -18,12 +18,9 @@ class Puppet::Util::NetworkDevice::Config < Puppet::Util::LoadedFile
|
|
18
18
|
FileTest.exists?(@file)
|
19
19
|
end
|
20
20
|
|
21
|
-
def initialize
|
22
|
-
@file = Puppet[:deviceconfig]
|
21
|
+
def initialize
|
22
|
+
@file = Puppet::Util::WatchedFile.new(Puppet[:deviceconfig])
|
23
23
|
|
24
|
-
raise Puppet::DevError, "No device config file defined" unless @file
|
25
|
-
return unless self.exists?
|
26
|
-
super(@file)
|
27
24
|
@devices = {}
|
28
25
|
|
29
26
|
read(true) # force reading at start
|
@@ -31,9 +28,9 @@ class Puppet::Util::NetworkDevice::Config < Puppet::Util::LoadedFile
|
|
31
28
|
|
32
29
|
# Read the configuration file.
|
33
30
|
def read(force = false)
|
34
|
-
return unless
|
31
|
+
return unless exists?
|
35
32
|
|
36
|
-
parse if force or changed?
|
33
|
+
parse if force or @file.changed?
|
37
34
|
end
|
38
35
|
|
39
36
|
private
|
@@ -36,7 +36,7 @@ class Puppet::Util::NetworkDevice::Transport::Ssh < Puppet::Util::NetworkDevice:
|
|
36
36
|
raise TimeoutError, "timed out while opening an ssh connection to the host"
|
37
37
|
rescue Net::SSH::AuthenticationFailed
|
38
38
|
raise Puppet::Error, "SSH authentication failure connecting to #{host} as #{user}"
|
39
|
-
rescue Net::SSH::Exception
|
39
|
+
rescue Net::SSH::Exception
|
40
40
|
raise Puppet::Error, "SSH connection failure to #{host}"
|
41
41
|
end
|
42
42
|
|
data/lib/puppet/util/pidlock.rb
CHANGED
data/lib/puppet/util/posix.rb
CHANGED
data/lib/puppet/util/profiler.rb
CHANGED
data/lib/puppet/util/rdoc.rb
CHANGED