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
data/Rakefile
CHANGED
data/ext/build_defaults.yaml
CHANGED
@@ -10,13 +10,14 @@ gpg_key: '4BD6EC30'
|
|
10
10
|
sign_tar: FALSE
|
11
11
|
# a space separated list of mock configs
|
12
12
|
final_mocks: 'pl-el-5-i386 pl-el-6-i386 pl-fedora-17-i386 pl-fedora-18-i386 pl-fedora-19-i386'
|
13
|
-
yum_host: '
|
13
|
+
yum_host: 'yum.puppetlabs.com'
|
14
14
|
yum_repo_path: '/opt/repository/yum/'
|
15
15
|
build_gem: TRUE
|
16
16
|
build_dmg: TRUE
|
17
|
-
apt_host: '
|
17
|
+
apt_host: 'apt.puppetlabs.com'
|
18
18
|
apt_repo_url: 'http://apt.puppetlabs.com'
|
19
19
|
apt_repo_path: '/opt/repository/incoming'
|
20
20
|
ips_repo: '/var/pkgrepo'
|
21
21
|
ips_store: '/opt/repository'
|
22
22
|
ips_host: 'solaris-11-ips-repo.acctest.dc1.puppetlabs.net'
|
23
|
+
tar_host: 'downloads.puppetlabs.com'
|
@@ -1,3 +1,35 @@
|
|
1
1
|
man/man5/puppet.conf.5
|
2
|
-
man/man8/puppet.8
|
3
2
|
man/man8/extlookup2hiera.8
|
3
|
+
man/man8/puppet.8
|
4
|
+
man/man8/puppet-agent.8
|
5
|
+
man/man8/puppet-apply.8
|
6
|
+
man/man8/puppet-catalog.8
|
7
|
+
man/man8/puppet-cert.8
|
8
|
+
man/man8/puppet-certificate.8
|
9
|
+
man/man8/puppet-certificate_request.8
|
10
|
+
man/man8/puppet-certificate_revocation_list.8
|
11
|
+
man/man8/puppet-config.8
|
12
|
+
man/man8/puppet-describe.8
|
13
|
+
man/man8/puppet-device.8
|
14
|
+
man/man8/puppet-doc.8
|
15
|
+
man/man8/puppet-facts.8
|
16
|
+
man/man8/puppet-file.8
|
17
|
+
man/man8/puppet-filebucket.8
|
18
|
+
man/man8/puppet-help.8
|
19
|
+
man/man8/puppet-inspect.8
|
20
|
+
man/man8/puppet-instrumentation_data.8
|
21
|
+
man/man8/puppet-instrumentation_listener.8
|
22
|
+
man/man8/puppet-instrumentation_probe.8
|
23
|
+
man/man8/puppet-key.8
|
24
|
+
man/man8/puppet-kick.8
|
25
|
+
man/man8/puppet-man.8
|
26
|
+
man/man8/puppet-module.8
|
27
|
+
man/man8/puppet-node.8
|
28
|
+
man/man8/puppet-parser.8
|
29
|
+
man/man8/puppet-plugin.8
|
30
|
+
man/man8/puppet-queue.8
|
31
|
+
man/man8/puppet-report.8
|
32
|
+
man/man8/puppet-resource.8
|
33
|
+
man/man8/puppet-resource_type.8
|
34
|
+
man/man8/puppet-secret_agent.8
|
35
|
+
man/man8/puppet-status.8
|
data/ext/gentoo/init.d/puppet
CHANGED
@@ -10,7 +10,7 @@ depend() {
|
|
10
10
|
|
11
11
|
checkconfig() {
|
12
12
|
if [[ ! -d "${PUPPET_PID_DIR}" ]] ; then
|
13
|
-
eerror "Please make sure PUPPET_PID_DIR is defined and points to
|
13
|
+
eerror "Please make sure PUPPET_PID_DIR is defined and points to an existing directory"
|
14
14
|
return 1
|
15
15
|
fi
|
16
16
|
|
@@ -10,7 +10,7 @@ depend() {
|
|
10
10
|
|
11
11
|
checkconfig() {
|
12
12
|
if [[ ! -d "${PUPPETMASTER_PID_DIR}" ]] ; then
|
13
|
-
eerror "Please make sure PUPPETMASTER_PID_DIR is defined and points to
|
13
|
+
eerror "Please make sure PUPPETMASTER_PID_DIR is defined and points to an existing directory"
|
14
14
|
return 1
|
15
15
|
fi
|
16
16
|
|
data/ext/redhat/puppet.spec.erb
CHANGED
data/install.rb
CHANGED
@@ -107,6 +107,7 @@ end
|
|
107
107
|
|
108
108
|
def do_libs(libs, strip = 'lib/')
|
109
109
|
libs.each do |lf|
|
110
|
+
next if File.directory? lf
|
110
111
|
olf = File.join(InstallOptions.site_dir, lf.sub(/^#{strip}/, ''))
|
111
112
|
op = File.dirname(olf)
|
112
113
|
if $haveftools
|
@@ -414,7 +415,7 @@ FileUtils.cd File.dirname(__FILE__) do
|
|
414
415
|
rdoc = glob(%w{bin/* lib/**/*.rb README* }).reject { |e| e=~ /\.(bat|cmd)$/ }
|
415
416
|
ri = glob(%w{bin/*.rb lib/**/*.rb}).reject { |e| e=~ /\.(bat|cmd)$/ }
|
416
417
|
man = glob(%w{man/man[0-9]/*})
|
417
|
-
libs = glob(%w{lib
|
418
|
+
libs = glob(%w{lib/**/*})
|
418
419
|
|
419
420
|
check_prereqs
|
420
421
|
prepare_installation
|
@@ -48,7 +48,7 @@ class Hiera
|
|
48
48
|
|
49
49
|
Hiera.debug("Looking up #{key} in Puppet backend")
|
50
50
|
|
51
|
-
|
51
|
+
Puppet::Parser::Functions.function(:include)
|
52
52
|
loaded_classes = scope.catalog.classes
|
53
53
|
|
54
54
|
hierarchy(scope, order_override).each do |klass|
|
data/lib/puppet/application.rb
CHANGED
@@ -87,7 +87,7 @@ module Puppet
|
|
87
87
|
#
|
88
88
|
# === Setup
|
89
89
|
# Applications can use the setup block to perform any initialization.
|
90
|
-
# The
|
90
|
+
# The default +setup+ behaviour is to: read Puppet configuration and manage log level and destination
|
91
91
|
#
|
92
92
|
# === What and how to run
|
93
93
|
# If the +dispatch+ block is defined it is called. This block should return the name of the registered command
|
@@ -97,7 +97,7 @@ module Puppet
|
|
97
97
|
# === Execution state
|
98
98
|
# The class attributes/methods of Puppet::Application serve as a global place to set and query the execution
|
99
99
|
# status of the application: stopping, restarting, etc. The setting of the application status does not directly
|
100
|
-
#
|
100
|
+
# affect its running status; it's assumed that the various components within the application will consult these
|
101
101
|
# settings appropriately and affect their own processing accordingly. Control operations (signal handlers and
|
102
102
|
# the like) should set the status appropriately to indicate to the overall system that it's the process of
|
103
103
|
# stopping or restarting (or just running as usual).
|
@@ -377,13 +377,14 @@ class Application
|
|
377
377
|
end
|
378
378
|
|
379
379
|
def setup_logs
|
380
|
-
if options[:debug]
|
380
|
+
if options[:debug] || options[:verbose]
|
381
381
|
Puppet::Util::Log.newdestination(:console)
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
382
|
+
end
|
383
|
+
|
384
|
+
if options[:debug]
|
385
|
+
Puppet::Util::Log.level = :debug
|
386
|
+
elsif options[:verbose]
|
387
|
+
Puppet::Util::Log.level = :info
|
387
388
|
end
|
388
389
|
|
389
390
|
Puppet::Util::Log.setup_default unless options[:setdest]
|
@@ -402,7 +403,7 @@ class Application
|
|
402
403
|
# Create an option parser
|
403
404
|
option_parser = OptionParser.new(self.class.banner)
|
404
405
|
|
405
|
-
#
|
406
|
+
# Here we're building up all of the options that the application may need to handle. The main
|
406
407
|
# puppet settings defined in "defaults.rb" have already been parsed once (in command_line.rb) by
|
407
408
|
# the time we get here; however, our app may wish to handle some of them specially, so we need to
|
408
409
|
# make the parser aware of them again. We might be able to make this a bit more efficient by
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'puppet/application'
|
2
2
|
require 'puppet/run'
|
3
|
+
require 'puppet/daemon'
|
4
|
+
require 'puppet/util/pidlock'
|
3
5
|
|
4
6
|
class Puppet::Application::Agent < Puppet::Application
|
5
7
|
|
6
8
|
run_mode :agent
|
7
9
|
|
8
|
-
attr_accessor :args, :agent, :daemon, :host
|
9
|
-
|
10
10
|
def app_defaults
|
11
11
|
super.merge({
|
12
12
|
:catalog_terminus => :rest,
|
@@ -28,7 +28,6 @@ class Puppet::Application::Agent < Puppet::Application
|
|
28
28
|
:detailed_exitcodes => false,
|
29
29
|
:verbose => false,
|
30
30
|
:debug => false,
|
31
|
-
:centrallogs => false,
|
32
31
|
:setdest => false,
|
33
32
|
:enable => false,
|
34
33
|
:disable => false,
|
@@ -42,14 +41,9 @@ class Puppet::Application::Agent < Puppet::Application
|
|
42
41
|
options[opt] = val
|
43
42
|
end
|
44
43
|
|
45
|
-
@
|
46
|
-
require 'puppet/daemon'
|
47
|
-
@daemon = Puppet::Daemon.new
|
48
|
-
@daemon.argv = ARGV.dup
|
44
|
+
@argv = ARGV.dup
|
49
45
|
end
|
50
46
|
|
51
|
-
option("--centrallogging")
|
52
|
-
|
53
47
|
option("--disable [MESSAGE]") do |message|
|
54
48
|
options[:disable] = true
|
55
49
|
options[:disable_message] = message
|
@@ -85,10 +79,6 @@ class Puppet::Application::Agent < Puppet::Application
|
|
85
79
|
options[:waitforcert] = arg.to_i
|
86
80
|
end
|
87
81
|
|
88
|
-
option("--port PORT","-p") do |arg|
|
89
|
-
@args[:Port] = arg
|
90
|
-
end
|
91
|
-
|
92
82
|
def help
|
93
83
|
<<-'HELP'
|
94
84
|
|
@@ -323,12 +313,25 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
323
313
|
end
|
324
314
|
|
325
315
|
def run_command
|
326
|
-
|
327
|
-
|
328
|
-
|
316
|
+
if options[:fingerprint]
|
317
|
+
fingerprint
|
318
|
+
else
|
319
|
+
# It'd be nice to daemonize later, but we have to daemonize before
|
320
|
+
# waiting for certificates so that we don't block
|
321
|
+
daemon = daemonize_process_when(Puppet[:daemonize])
|
322
|
+
|
323
|
+
wait_for_certificates
|
324
|
+
|
325
|
+
if Puppet[:onetime]
|
326
|
+
onetime(daemon)
|
327
|
+
else
|
328
|
+
main(daemon)
|
329
|
+
end
|
330
|
+
end
|
329
331
|
end
|
330
332
|
|
331
333
|
def fingerprint
|
334
|
+
host = Puppet::SSL::Host.new
|
332
335
|
unless cert = host.certificate || host.certificate_request
|
333
336
|
$stderr.puts "Fingerprint asked but no certificate nor certificate request have yet been issued"
|
334
337
|
exit(1)
|
@@ -340,22 +343,26 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
340
343
|
puts digest.to_s
|
341
344
|
end
|
342
345
|
|
343
|
-
def onetime
|
346
|
+
def onetime(daemon)
|
347
|
+
if Puppet[:listen]
|
348
|
+
Puppet.notice "Ignoring --listen on onetime run"
|
349
|
+
end
|
350
|
+
|
344
351
|
unless options[:client]
|
345
|
-
|
352
|
+
Puppet.err "onetime is specified but there is no client"
|
346
353
|
exit(43)
|
347
354
|
return
|
348
355
|
end
|
349
356
|
|
350
|
-
|
357
|
+
daemon.set_signal_traps
|
351
358
|
|
352
359
|
begin
|
353
|
-
exitstatus =
|
360
|
+
exitstatus = daemon.agent.run
|
354
361
|
rescue => detail
|
355
362
|
Puppet.log_exception(detail)
|
356
363
|
end
|
357
364
|
|
358
|
-
|
365
|
+
daemon.stop(:exit => false)
|
359
366
|
|
360
367
|
if not exitstatus
|
361
368
|
exit(1)
|
@@ -366,10 +373,13 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
366
373
|
end
|
367
374
|
end
|
368
375
|
|
369
|
-
def main
|
376
|
+
def main(daemon)
|
377
|
+
if Puppet[:listen]
|
378
|
+
setup_listen(daemon)
|
379
|
+
end
|
370
380
|
Puppet.notice "Starting Puppet client version #{Puppet.version}"
|
371
381
|
|
372
|
-
|
382
|
+
daemon.start
|
373
383
|
end
|
374
384
|
|
375
385
|
# Enable all of the most common test options.
|
@@ -384,6 +394,43 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
384
394
|
options[:detailed_exitcodes] = true
|
385
395
|
end
|
386
396
|
|
397
|
+
def setup
|
398
|
+
setup_test if options[:test]
|
399
|
+
|
400
|
+
setup_logs
|
401
|
+
|
402
|
+
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
403
|
+
|
404
|
+
if options[:fqdn]
|
405
|
+
Puppet[:certname] = options[:fqdn]
|
406
|
+
end
|
407
|
+
|
408
|
+
Puppet.settings.use :main, :agent, :ssl
|
409
|
+
|
410
|
+
# Always ignoreimport for agent. It really shouldn't even try to import,
|
411
|
+
# but this is just a temporary band-aid.
|
412
|
+
Puppet[:ignoreimport] = true
|
413
|
+
|
414
|
+
Puppet::Transaction::Report.indirection.terminus_class = :rest
|
415
|
+
# we want the last report to be persisted locally
|
416
|
+
Puppet::Transaction::Report.indirection.cache_class = :yaml
|
417
|
+
|
418
|
+
if Puppet[:catalog_cache_terminus]
|
419
|
+
Puppet::Resource::Catalog.indirection.cache_class = Puppet[:catalog_cache_terminus]
|
420
|
+
end
|
421
|
+
|
422
|
+
if options[:fingerprint]
|
423
|
+
# in fingerprint mode we just need
|
424
|
+
# access to the local files and we don't need a ca
|
425
|
+
Puppet::SSL::Host.ca_location = :none
|
426
|
+
else
|
427
|
+
Puppet::SSL::Host.ca_location = :remote
|
428
|
+
setup_agent
|
429
|
+
end
|
430
|
+
end
|
431
|
+
|
432
|
+
private
|
433
|
+
|
387
434
|
def enable_disable_client(agent)
|
388
435
|
if options[:enable]
|
389
436
|
agent.enable
|
@@ -393,7 +440,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
393
440
|
exit(0)
|
394
441
|
end
|
395
442
|
|
396
|
-
def setup_listen
|
443
|
+
def setup_listen(daemon)
|
397
444
|
Puppet.warning "Puppet --listen / kick is deprecated. See http://links.puppetlabs.com/puppet-kick-deprecation"
|
398
445
|
unless FileTest.exists?(Puppet[:rest_authconfig])
|
399
446
|
Puppet.err "Will not start without authorization file #{Puppet[:rest_authconfig]}"
|
@@ -404,87 +451,34 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
404
451
|
# No REST handlers yet.
|
405
452
|
server = Puppet::Network::Server.new(Puppet[:bindaddress], Puppet[:puppetport])
|
406
453
|
|
407
|
-
|
408
|
-
end
|
409
|
-
|
410
|
-
def setup_host
|
411
|
-
@host = Puppet::SSL::Host.new
|
412
|
-
waitforcert = options[:waitforcert] || (Puppet[:onetime] ? 0 : Puppet[:waitforcert])
|
413
|
-
cert = @host.wait_for_cert(waitforcert) unless options[:fingerprint]
|
454
|
+
daemon.server = server
|
414
455
|
end
|
415
456
|
|
416
457
|
def setup_agent
|
417
|
-
# We need
|
458
|
+
# We need to make the client either way, we just don't start it
|
418
459
|
# if --no-client is set.
|
419
460
|
require 'puppet/agent'
|
420
461
|
require 'puppet/configurer'
|
421
|
-
|
422
|
-
|
423
|
-
enable_disable_client(@agent) if options[:enable] or options[:disable]
|
462
|
+
agent = Puppet::Agent.new(Puppet::Configurer, (not(Puppet[:onetime])))
|
424
463
|
|
425
|
-
|
464
|
+
enable_disable_client(agent) if options[:enable] or options[:disable]
|
426
465
|
|
427
|
-
|
428
|
-
# waitforcert happens.
|
429
|
-
@daemon.daemonize if Puppet[:daemonize]
|
430
|
-
|
431
|
-
setup_host
|
432
|
-
|
433
|
-
@objects = []
|
434
|
-
|
435
|
-
# This has to go after the certs are dealt with.
|
436
|
-
if Puppet[:listen]
|
437
|
-
unless Puppet[:onetime]
|
438
|
-
setup_listen
|
439
|
-
else
|
440
|
-
Puppet.notice "Ignoring --listen on onetime run"
|
441
|
-
end
|
442
|
-
end
|
466
|
+
@agent = agent if options[:client]
|
443
467
|
end
|
444
468
|
|
445
|
-
def
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
451
|
-
|
452
|
-
args[:Server] = Puppet[:server]
|
453
|
-
if options[:fqdn]
|
454
|
-
args[:FQDN] = options[:fqdn]
|
455
|
-
Puppet[:certname] = options[:fqdn]
|
456
|
-
end
|
457
|
-
|
458
|
-
if options[:centrallogs]
|
459
|
-
logdest = args[:Server]
|
460
|
-
|
461
|
-
logdest += ":" + args[:Port] if args.include?(:Port)
|
462
|
-
Puppet::Util::Log.newdestination(logdest)
|
463
|
-
end
|
464
|
-
|
465
|
-
Puppet.settings.use :main, :agent, :ssl
|
466
|
-
|
467
|
-
# Always ignoreimport for agent. It really shouldn't even try to import,
|
468
|
-
# but this is just a temporary band-aid.
|
469
|
-
Puppet[:ignoreimport] = true
|
470
|
-
|
471
|
-
# We need to specify a ca location for all of the SSL-related i
|
472
|
-
# indirected classes to work; in fingerprint mode we just need
|
473
|
-
# access to the local files and we don't need a ca.
|
474
|
-
Puppet::SSL::Host.ca_location = options[:fingerprint] ? :none : :remote
|
469
|
+
def daemonize_process_when(should_daemonize)
|
470
|
+
daemon = Puppet::Daemon.new(Puppet::Util::Pidlock.new(Puppet[:pidfile]))
|
471
|
+
daemon.argv = @argv
|
472
|
+
daemon.agent = @agent
|
475
473
|
|
476
|
-
|
477
|
-
# we want the last report to be persisted locally
|
478
|
-
Puppet::Transaction::Report.indirection.cache_class = :yaml
|
474
|
+
daemon.daemonize if should_daemonize
|
479
475
|
|
480
|
-
|
481
|
-
|
482
|
-
end
|
476
|
+
daemon
|
477
|
+
end
|
483
478
|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
end
|
479
|
+
def wait_for_certificates
|
480
|
+
host = Puppet::SSL::Host.new
|
481
|
+
waitforcert = options[:waitforcert] || (Puppet[:onetime] ? 0 : Puppet[:waitforcert])
|
482
|
+
host.wait_for_cert(waitforcert)
|
489
483
|
end
|
490
484
|
end
|
@@ -239,8 +239,6 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
239
239
|
exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
|
240
240
|
|
241
241
|
Puppet::Util::Log.newdestination(:console) unless options[:logset]
|
242
|
-
client = nil
|
243
|
-
server = nil
|
244
242
|
|
245
243
|
Signal.trap(:INT) do
|
246
244
|
$stderr.puts "Exiting"
|