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
@@ -74,7 +74,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
|
77
|
+
yum "-d", "0", "-e", "0", "-y", operation, wanted
|
78
78
|
|
79
79
|
is = self.query
|
80
80
|
raise Puppet::Error, "Could not find package #{self.name}" unless is
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Puppet::Type.type(:package).provide :zypper, :parent => :rpm do
|
2
2
|
desc "Support for SuSE `zypper` package manager. Found in SLES10sp2+ and SLES11"
|
3
3
|
|
4
|
-
has_feature :versionable
|
4
|
+
has_feature :versionable, :install_options
|
5
5
|
|
6
6
|
commands :zypper => "/usr/bin/zypper"
|
7
7
|
|
@@ -51,9 +51,9 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm do
|
|
51
51
|
|
52
52
|
#zypper 0.6.13 (OpenSuSE 10.2) does not support auto agree with licenses
|
53
53
|
if major < 1 and minor <= 6 and patch <= 13
|
54
|
-
zypper quiet, :install, noconfirm, wanted
|
54
|
+
zypper quiet, :install, noconfirm, install_options, wanted
|
55
55
|
else
|
56
|
-
zypper quiet, :install, license, noconfirm, wanted
|
56
|
+
zypper quiet, :install, license, noconfirm, install_options, wanted
|
57
57
|
end
|
58
58
|
|
59
59
|
unless self.query
|
@@ -81,4 +81,23 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm do
|
|
81
81
|
# zypper install can be used for update, too
|
82
82
|
self.install
|
83
83
|
end
|
84
|
+
|
85
|
+
def install_options
|
86
|
+
join_options(resource[:install_options])
|
87
|
+
end
|
88
|
+
|
89
|
+
def join_options(options)
|
90
|
+
return unless options
|
91
|
+
|
92
|
+
options.collect do |val|
|
93
|
+
case val
|
94
|
+
when Hash
|
95
|
+
val.keys.sort.collect do |k|
|
96
|
+
"#{k} '#{val[k]}'"
|
97
|
+
end.join(' ')
|
98
|
+
else
|
99
|
+
val
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
84
103
|
end
|
@@ -160,15 +160,6 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
160
160
|
[resource_type.validproperties, resource_type.parameters].flatten.each do |attr|
|
161
161
|
attr = attr.intern
|
162
162
|
define_method(attr) do
|
163
|
-
# if @property_hash.empty?
|
164
|
-
# # Note that this swaps the provider out from under us.
|
165
|
-
# prefetch
|
166
|
-
# if @resource.provider == self
|
167
|
-
# return @property_hash[attr]
|
168
|
-
# else
|
169
|
-
# return @resource.provider.send(attr)
|
170
|
-
# end
|
171
|
-
# end
|
172
163
|
# If it's not a valid field for this record type (which can happen
|
173
164
|
# when different platforms support different fields), then just
|
174
165
|
# return the should value, so the resource shuts up.
|
@@ -416,8 +407,6 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
416
407
|
end
|
417
408
|
|
418
409
|
self.class.flush(@property_hash)
|
419
|
-
|
420
|
-
#@property_hash = {}
|
421
410
|
end
|
422
411
|
|
423
412
|
def initialize(record)
|
@@ -425,7 +414,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
425
414
|
|
426
415
|
# The 'record' could be a resource or a record, depending on how the provider
|
427
416
|
# is initialized. If we got an empty property hash (probably because the resource
|
428
|
-
# is just being initialized), then we want to set up some
|
417
|
+
# is just being initialized), then we want to set up some defaults.
|
429
418
|
@property_hash = self.class.record?(resource[:name]) || {:record_type => self.class.name, :ensure => :absent} if @property_hash.empty?
|
430
419
|
end
|
431
420
|
|
@@ -74,7 +74,7 @@ Puppet::Type.type(:scheduled_task).provide(:win32_taskscheduler) do
|
|
74
74
|
task.trigger_count.times do |i|
|
75
75
|
trigger = begin
|
76
76
|
task.trigger(i)
|
77
|
-
rescue Win32::TaskScheduler::Error
|
77
|
+
rescue Win32::TaskScheduler::Error
|
78
78
|
# Win32::TaskScheduler can't handle all of the
|
79
79
|
# trigger types Windows uses, so we need to skip the
|
80
80
|
# unhandled types to prevent "puppet resource" from
|
@@ -92,7 +92,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
92
92
|
end
|
93
93
|
begin
|
94
94
|
output = kill pid
|
95
|
-
rescue Puppet::ExecutionFailure
|
95
|
+
rescue Puppet::ExecutionFailure
|
96
96
|
@resource.fail "Could not kill #{self.name}, PID #{pid}: #{output}"
|
97
97
|
end
|
98
98
|
return true
|
@@ -129,7 +129,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
129
129
|
Puppet.notice "Configuring #{resource[:name]}"
|
130
130
|
command = [ resource[:manifest], resource[:name] ]
|
131
131
|
#texecute("setupservice", command)
|
132
|
-
|
132
|
+
system("#{command}")
|
133
133
|
end
|
134
134
|
rescue Puppet::ExecutionFailure => detail
|
135
135
|
raise Puppet::Error.new( "Cannot config #{self.service} to enable it: #{detail}" )
|
@@ -157,7 +157,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
157
157
|
File.symlink(self.daemon, self.service)
|
158
158
|
end
|
159
159
|
end
|
160
|
-
rescue Puppet::ExecutionFailure
|
160
|
+
rescue Puppet::ExecutionFailure
|
161
161
|
raise Puppet::Error.new( "No daemon directory found for #{self.service}")
|
162
162
|
end
|
163
163
|
|
@@ -173,7 +173,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
173
173
|
File.unlink(self.service)
|
174
174
|
end
|
175
175
|
end
|
176
|
-
rescue Puppet::ExecutionFailure
|
176
|
+
rescue Puppet::ExecutionFailure
|
177
177
|
raise Puppet::Error.new( "No daemon directory found for #{self.service}")
|
178
178
|
end
|
179
179
|
self.stop
|
@@ -43,6 +43,10 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
43
43
|
excludes += %w{wait-for-state portmap-wait}
|
44
44
|
# these excludes were found with grep -r -L start /etc/init.d
|
45
45
|
excludes += %w{rcS module-init-tools}
|
46
|
+
# Prevent puppet failing to get status of the new service introduced
|
47
|
+
# by the fix for this (bug https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/982889)
|
48
|
+
# due to puppet's inability to deal with upstart services with instances.
|
49
|
+
excludes += %w{plymouth-ready}
|
46
50
|
end
|
47
51
|
|
48
52
|
# List all services of this type.
|
@@ -106,33 +110,23 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
106
110
|
end
|
107
111
|
|
108
112
|
def search(name)
|
109
|
-
paths.each
|
113
|
+
paths.each do |path|
|
110
114
|
fqname = File.join(path,name)
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
# should probably rescue specific errors...
|
115
|
+
if File.exist? fqname
|
116
|
+
return fqname
|
117
|
+
else
|
115
118
|
self.debug("Could not find #{name} in #{path}")
|
116
|
-
next
|
117
119
|
end
|
120
|
+
end
|
118
121
|
|
119
|
-
|
120
|
-
return fqname
|
121
|
-
}
|
122
|
-
|
123
|
-
paths.each { |path|
|
122
|
+
paths.each do |path|
|
124
123
|
fqname_sh = File.join(path,"#{name}.sh")
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
# should probably rescue specific errors...
|
124
|
+
if File.exist? fqname_sh
|
125
|
+
return fqname_sh
|
126
|
+
else
|
129
127
|
self.debug("Could not find #{name}.sh in #{path}")
|
130
|
-
next
|
131
128
|
end
|
132
|
-
|
133
|
-
# if we've gotten this far, we found a valid script
|
134
|
-
return fqname_sh
|
135
|
-
}
|
129
|
+
end
|
136
130
|
raise Puppet::Error, "Could not find init script for '#{name}'"
|
137
131
|
end
|
138
132
|
|
@@ -10,8 +10,10 @@ Puppet::Type.type(:service).provide :openrc, :parent => :base do
|
|
10
10
|
defaultfor :operatingsystem => :gentoo
|
11
11
|
defaultfor :operatingsystem => :funtoo
|
12
12
|
|
13
|
+
has_command(:rcstatus, '/bin/rc-status') do
|
14
|
+
environment :RC_SVCNAME => nil
|
15
|
+
end
|
13
16
|
commands :rcservice => '/sbin/rc-service'
|
14
|
-
commands :rcstatus => '/bin/rc-status'
|
15
17
|
commands :rcupdate => '/sbin/rc-update'
|
16
18
|
|
17
19
|
self::STATUSLINE = /^\s+(.*?)\s*\[\s*(.*)\s*\]$/
|
@@ -21,25 +21,22 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def enabled?
|
24
|
+
# Checkconfig always returns 0 on SuSE unless the --check flag is used.
|
25
|
+
args = (Facter.value(:osfamily) == 'Suse' ? ['--check'] : [])
|
26
|
+
|
24
27
|
begin
|
25
|
-
|
28
|
+
chkconfig(@resource[:name], *args)
|
26
29
|
rescue Puppet::ExecutionFailure
|
27
30
|
return :false
|
28
31
|
end
|
29
32
|
|
30
|
-
# If it's disabled on SuSE, then it will print output showing "off"
|
31
|
-
# at the end
|
32
|
-
if output =~ /.* off$/
|
33
|
-
return :false
|
34
|
-
end
|
35
|
-
|
36
33
|
:true
|
37
34
|
end
|
38
35
|
|
39
36
|
# Don't support them specifying runlevels; always use the runlevels
|
40
37
|
# in the init scripts.
|
41
38
|
def enable
|
42
|
-
|
39
|
+
chkconfig(@resource[:name], :on)
|
43
40
|
rescue Puppet::ExecutionFailure => detail
|
44
41
|
raise Puppet::Error, "Could not enable #{self.name}: #{detail}"
|
45
42
|
end
|
@@ -9,12 +9,13 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
9
9
|
When detecting the service directory it will check, in order of preference:
|
10
10
|
|
11
11
|
* `/service`
|
12
|
-
* `/var/service`
|
13
12
|
* `/etc/service`
|
13
|
+
* `/var/service`
|
14
14
|
|
15
15
|
The daemon directory should be in one of the following locations:
|
16
16
|
|
17
17
|
* `/etc/sv`
|
18
|
+
* `/var/lib/service`
|
18
19
|
|
19
20
|
or this can be overriden in the service resource parameters::
|
20
21
|
|
@@ -46,7 +47,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
46
47
|
break
|
47
48
|
end
|
48
49
|
end
|
49
|
-
raise "Could not find the daemon directory (tested [/var/lib/service
|
50
|
+
raise "Could not find the daemon directory (tested [/etc/sv,/var/lib/service])" unless @defpath
|
50
51
|
end
|
51
52
|
@defpath
|
52
53
|
end
|
@@ -47,7 +47,7 @@ Puppet::Type.type(:ssh_authorized_key).provide(
|
|
47
47
|
|
48
48
|
def flush
|
49
49
|
raise Puppet::Error, "Cannot write SSH authorized keys without user" unless @resource.should(:user)
|
50
|
-
raise Puppet::Error, "User '#{@resource.should(:user)}' does not exist" unless
|
50
|
+
raise Puppet::Error, "User '#{@resource.should(:user)}' does not exist" unless Puppet::Util.uid(@resource.should(:user))
|
51
51
|
# ParsedFile usually calls backup_target much later in the flush process,
|
52
52
|
# but our SUID makes that fail to open filebucket files for writing.
|
53
53
|
# Fortunately, there's already logic to make sure it only ever happens once,
|
@@ -27,8 +27,6 @@ Puppet::Type.type(:sshkey).provide(
|
|
27
27
|
},
|
28
28
|
:pre_gen => proc { |hash|
|
29
29
|
if hash[:host_aliases]
|
30
|
-
names = [hash[:name], hash[:host_aliases]].flatten
|
31
|
-
|
32
30
|
hash[:name] = [hash[:name], hash[:host_aliases]].flatten.join(",")
|
33
31
|
hash.delete(:host_aliases)
|
34
32
|
end
|
@@ -38,7 +38,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
38
38
|
has_features :manages_expiry, :manages_password_age
|
39
39
|
|
40
40
|
# Attribute verification (TODO)
|
41
|
-
#verify :gid, "GID must be
|
41
|
+
#verify :gid, "GID must be a string or int of a valid group" do |value|
|
42
42
|
# value.is_a? String || value.is_a? Integer
|
43
43
|
#end
|
44
44
|
#
|
@@ -48,7 +48,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
48
48
|
|
49
49
|
# User attributes to ignore from AIX output.
|
50
50
|
def self.attribute_ignore
|
51
|
-
[]
|
51
|
+
["name"]
|
52
52
|
end
|
53
53
|
|
54
54
|
# AIX attributes to properties mapping.
|
@@ -60,19 +60,20 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
60
60
|
# :to Method to adapt puppet property to aix command value. Optional.
|
61
61
|
# :from Method to adapt aix command value to puppet property. Optional
|
62
62
|
self.attribute_mapping = [
|
63
|
-
#:name => :name,
|
64
63
|
{:aix_attr => :pgrp, :puppet_prop => :gid,
|
65
|
-
|
64
|
+
:to => :gid_to_attr,
|
65
|
+
:from => :gid_from_attr },
|
66
66
|
{:aix_attr => :id, :puppet_prop => :uid},
|
67
67
|
{:aix_attr => :groups, :puppet_prop => :groups},
|
68
68
|
{:aix_attr => :home, :puppet_prop => :home},
|
69
69
|
{:aix_attr => :shell, :puppet_prop => :shell},
|
70
70
|
{:aix_attr => :expires, :puppet_prop => :expiry,
|
71
|
-
|
71
|
+
:to => :expiry_to_attr,
|
72
|
+
:from => :expiry_from_attr },
|
72
73
|
{:aix_attr => :maxage, :puppet_prop => :password_max_age},
|
73
74
|
{:aix_attr => :minage, :puppet_prop => :password_min_age},
|
74
75
|
{:aix_attr => :attributes, :puppet_prop => :attributes},
|
75
|
-
{:aix_attr => :gecos, :puppet_prop => :comment},
|
76
|
+
{ :aix_attr => :gecos, :puppet_prop => :comment },
|
76
77
|
]
|
77
78
|
|
78
79
|
#--------------
|
@@ -140,7 +141,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
140
141
|
if key == :attributes
|
141
142
|
raise Puppet::Error, "Attributes must be a list of pairs key=value on #{@resource.class.name}[#{@resource.name}]" \
|
142
143
|
unless value and value.is_a? Hash
|
143
|
-
return value.
|
144
|
+
return value.map { |k,v| k.to_s.strip + "=" + v.to_s.strip}
|
144
145
|
end
|
145
146
|
|
146
147
|
super(key, value, mapping, objectinfo)
|
@@ -271,18 +272,30 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
|
|
271
272
|
end
|
272
273
|
end
|
273
274
|
|
275
|
+
def managed_attribute_keys(hash)
|
276
|
+
managed_attributes ||= @resource.original_parameters[:attributes] || hash.keys.map{|k| k.to_s}
|
277
|
+
managed_attributes.map {|attr| key, value = attr.split("="); key.strip.to_sym}
|
278
|
+
end
|
279
|
+
|
280
|
+
def should_include?(key, managed_keys)
|
281
|
+
!self.class.attribute_mapping_from.include?(key) and
|
282
|
+
!self.class.attribute_ignore.include?(key) and
|
283
|
+
managed_keys.include?(key)
|
284
|
+
end
|
285
|
+
|
274
286
|
def filter_attributes(hash)
|
275
|
-
# Return only
|
276
|
-
hash
|
277
|
-
|
278
|
-
|
287
|
+
# Return only managed attributtes.
|
288
|
+
managed_keys = managed_attribute_keys(hash)
|
289
|
+
results = hash.select {
|
290
|
+
|k,v| should_include?(k, managed_keys)
|
279
291
|
}.inject({}) {
|
280
292
|
|hash, array| hash[array[0]] = array[1]; hash
|
281
293
|
}
|
294
|
+
results
|
282
295
|
end
|
283
296
|
|
284
297
|
def attributes
|
285
|
-
filter_attributes(getosinfo(
|
298
|
+
filter_attributes(getosinfo(false))
|
286
299
|
end
|
287
300
|
|
288
301
|
def attributes=(attr_hash)
|
@@ -188,7 +188,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
188
188
|
def self.convert_xml_to_binary(plist_data)
|
189
189
|
Puppet.debug('Converting XML plist to binary')
|
190
190
|
Puppet.debug('Executing: \'plutil -convert binary1 -o - -\'')
|
191
|
-
IO.popen('plutil -convert binary1 -o - -',
|
191
|
+
IO.popen('plutil -convert binary1 -o - -', 'r+') do |io|
|
192
192
|
io.write Plist::Emit.dump(plist_data)
|
193
193
|
io.close_write
|
194
194
|
@converted_plist = io.read
|
@@ -201,7 +201,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
201
201
|
def self.convert_binary_to_xml(plist_data)
|
202
202
|
Puppet.debug('Converting binary plist to XML')
|
203
203
|
Puppet.debug('Executing: \'plutil -convert xml1 -o - -\'')
|
204
|
-
IO.popen('plutil -convert xml1 -o - -',
|
204
|
+
IO.popen('plutil -convert xml1 -o - -', 'r+') do |io|
|
205
205
|
io.write plist_data
|
206
206
|
io.close_write
|
207
207
|
@converted_plist = io.read
|
@@ -297,11 +297,8 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
297
297
|
end
|
298
298
|
end
|
299
299
|
|
300
|
-
#
|
301
|
-
|
302
|
-
if (attribute == :gid) and value.class == 'Fixnum'
|
303
|
-
value = self.class.get_attribute_from_dscl('Groups', value, 'PrimaryGroupID')['dsAttrTypeStandard:PrimaryGroupID'][0]
|
304
|
-
end
|
300
|
+
# Ensure group names are converted to integers.
|
301
|
+
value = Puppet::Util.gid(value) if attribute == :gid
|
305
302
|
|
306
303
|
## Set values ##
|
307
304
|
# For the :password and :groups properties, call the setter methods
|
@@ -27,7 +27,6 @@ Puppet::Type.type(:user).provide :ldap, :parent => Puppet::Provider::Ldap do
|
|
27
27
|
# Use the last field of a space-separated array as
|
28
28
|
# the sn. LDAP requires a surname, for some stupid reason.
|
29
29
|
manager.generates(:sn).from(:cn).with do |cn|
|
30
|
-
x = 1
|
31
30
|
cn[0].split(/\s+/)[-1]
|
32
31
|
end
|
33
32
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'puppet/util'
|
2
2
|
require 'puppet/util/user_attr'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source => :useradd do
|
5
6
|
|
@@ -195,6 +196,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
195
196
|
line_arr = line.split(':')
|
196
197
|
if line_arr[0] == @resource[:name]
|
197
198
|
line_arr[1] = cryptopw
|
199
|
+
line_arr[2] = (Date.today - Date.new(1970,1,1)).to_i.to_s
|
198
200
|
line = line_arr.join(':')
|
199
201
|
end
|
200
202
|
fh.print line
|