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
@@ -228,7 +228,7 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
|
|
228
228
|
{
|
229
229
|
'UniqueID' => '1000',
|
230
230
|
'RealName' => resource[:name],
|
231
|
-
'PrimaryGroupID' =>
|
231
|
+
'PrimaryGroupID' => 20,
|
232
232
|
'UserShell' => '/bin/bash',
|
233
233
|
'NFSHomeDirectory' => "/Users/#{resource[:name]}"
|
234
234
|
}
|
@@ -266,6 +266,13 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
|
|
266
266
|
provider.expects(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembers', 'GUID')
|
267
267
|
provider.create
|
268
268
|
end
|
269
|
+
|
270
|
+
it 'should convert group names into integers' do
|
271
|
+
resource[:gid] = 'somegroup'
|
272
|
+
Puppet::Util.expects(:gid).with('somegroup').returns(21)
|
273
|
+
provider.expects(:merge_attribute_with_dscl).with('Users', username, 'PrimaryGroupID', 21)
|
274
|
+
provider.create
|
275
|
+
end
|
269
276
|
end
|
270
277
|
|
271
278
|
describe 'self#instances' do
|
@@ -599,7 +606,7 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
|
|
599
606
|
}]
|
600
607
|
end
|
601
608
|
|
602
|
-
it 'should return
|
609
|
+
it 'should return an array of hashes containing group data' do
|
603
610
|
provider.class.expects(:dscl).with('-plist', '.', 'readall', '/Groups').returns(groups_xml)
|
604
611
|
provider.class.get_list_of_groups.should == groups_hash
|
605
612
|
end
|
@@ -696,7 +703,7 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
|
|
696
703
|
let(:password_hash_file) { '/var/db/shadow/hash/user_guid' }
|
697
704
|
let(:stub_password_file) { stub('connection') }
|
698
705
|
|
699
|
-
it 'should return a
|
706
|
+
it 'should return a sha1 hash read from disk' do
|
700
707
|
File.expects(:exists?).with(password_hash_file).returns(true)
|
701
708
|
File.expects(:file?).with(password_hash_file).returns(true)
|
702
709
|
File.expects(:readable?).with(password_hash_file).returns(true)
|
@@ -773,7 +780,7 @@ describe Puppet::Type.type(:user).provider(:directoryservice) do
|
|
773
780
|
}
|
774
781
|
end
|
775
782
|
|
776
|
-
it 'should call set_salted_sha512 on 10.7 when given a
|
783
|
+
it 'should call set_salted_sha512 on 10.7 when given a salted-SHA512 password hash' do
|
777
784
|
provider.expects(:get_users_plist).returns(sample_users_plist)
|
778
785
|
provider.expects(:get_shadow_hash_data).with(sample_users_plist).returns(sha512_shadowhashdata)
|
779
786
|
provider.class.expects(:get_os_version).returns('10.7')
|
@@ -267,6 +267,7 @@ FIXTURE
|
|
267
267
|
end
|
268
268
|
|
269
269
|
it "should only update the target user" do
|
270
|
+
Date.expects(:today).returns Date.new(2011,12,07)
|
270
271
|
write_fixture <<FIXTURE
|
271
272
|
before:seriously:15315:0:99999:7:::
|
272
273
|
fakeval:seriously:15315:0:99999:7:::
|
@@ -294,6 +295,23 @@ FIXTURE
|
|
294
295
|
provider.password = "totally"
|
295
296
|
File.read(path).should == fixture
|
296
297
|
end
|
298
|
+
|
299
|
+
it "should update the lastchg field" do
|
300
|
+
Date.expects(:today).returns Date.new(2013,5,12) # 15837 days after 1970-01-01
|
301
|
+
write_fixture <<FIXTURE
|
302
|
+
before:seriously:15315:0:99999:7:::
|
303
|
+
fakeval:seriously:15629:0:99999:7:::
|
304
|
+
fakevalish:seriously:15315:0:99999:7:::
|
305
|
+
after:seriously:15315:0:99999:7:::
|
306
|
+
FIXTURE
|
307
|
+
provider.password = "totally"
|
308
|
+
File.read(path).should == <<EOT
|
309
|
+
before:seriously:15315:0:99999:7:::
|
310
|
+
fakeval:totally:15837:0:99999:7:::
|
311
|
+
fakevalish:seriously:15315:0:99999:7:::
|
312
|
+
after:seriously:15315:0:99999:7:::
|
313
|
+
EOT
|
314
|
+
end
|
297
315
|
end
|
298
316
|
|
299
317
|
describe "#shadow_entry" do
|
data/spec/unit/provider_spec.rb
CHANGED
@@ -448,28 +448,17 @@ describe Puppet::Provider do
|
|
448
448
|
|
449
449
|
fields = %w{prop1 prop2 param1 param2}
|
450
450
|
|
451
|
-
# This is needed for Ruby 1.8.5, which throws an exception that the
|
452
|
-
# default rescue doesn't catch if the method isn't present. Also, it has
|
453
|
-
# no convenient predicate for them, which equally hurts.
|
454
|
-
def has_method?(object, name)
|
455
|
-
begin
|
456
|
-
return true if object.instance_method(name)
|
457
|
-
rescue Exception
|
458
|
-
return false
|
459
|
-
end
|
460
|
-
end
|
461
|
-
|
462
451
|
fields.each do |name|
|
463
452
|
it "should add getter methods for #{name}" do
|
464
453
|
expect { subject.mk_resource_methods }.
|
465
|
-
to change {
|
454
|
+
to change { subject.method_defined?(name) }.
|
466
455
|
from(false).to(true)
|
467
456
|
end
|
468
457
|
|
469
458
|
it "should add setter methods for #{name}" do
|
470
459
|
method = name + '='
|
471
460
|
expect { subject.mk_resource_methods }.
|
472
|
-
to change {
|
461
|
+
to change { subject.method_defined?(name) }.
|
473
462
|
from(false).to(true)
|
474
463
|
end
|
475
464
|
end
|
@@ -260,7 +260,9 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
260
260
|
|
261
261
|
it "should add resources to the relationship graph if it exists" do
|
262
262
|
relgraph = @catalog.relationship_graph
|
263
|
+
|
263
264
|
@catalog.add_resource @one
|
265
|
+
|
264
266
|
relgraph.should be_vertex(@one)
|
265
267
|
end
|
266
268
|
|
@@ -275,6 +277,21 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
275
277
|
@catalog.vertices.find { |r| r.ref == @one.ref }.must equal(@one)
|
276
278
|
end
|
277
279
|
|
280
|
+
it "tracks the container through edges" do
|
281
|
+
@catalog.add_resource(@two)
|
282
|
+
@catalog.add_resource(@one)
|
283
|
+
|
284
|
+
@catalog.add_edge(@one, @two)
|
285
|
+
|
286
|
+
@catalog.container_of(@two).must == @one
|
287
|
+
end
|
288
|
+
|
289
|
+
it "a resource without a container is contained in nil" do
|
290
|
+
@catalog.add_resource(@one)
|
291
|
+
|
292
|
+
@catalog.container_of(@one).must be_nil
|
293
|
+
end
|
294
|
+
|
278
295
|
it "should canonize how resources are referred to during retrieval when both type and title are provided" do
|
279
296
|
@catalog.add_resource(@one)
|
280
297
|
@catalog.resource("notify", "one").must equal(@one)
|
@@ -311,10 +328,6 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
311
328
|
end
|
312
329
|
end
|
313
330
|
|
314
|
-
it "should not store objects that do not respond to :ref" do
|
315
|
-
proc { @catalog.add_resource("thing") }.should raise_error(ArgumentError)
|
316
|
-
end
|
317
|
-
|
318
331
|
it "should remove all resources when asked" do
|
319
332
|
@catalog.add_resource @one
|
320
333
|
@catalog.add_resource @two
|
@@ -523,10 +536,9 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
523
536
|
before :each do
|
524
537
|
@catalog = Puppet::Resource::Catalog.new("host")
|
525
538
|
|
526
|
-
@transaction = Puppet::Transaction.new(@catalog)
|
539
|
+
@transaction = Puppet::Transaction.new(@catalog, nil, Puppet::Graph::RandomPrioritizer.new)
|
527
540
|
Puppet::Transaction.stubs(:new).returns(@transaction)
|
528
541
|
@transaction.stubs(:evaluate)
|
529
|
-
@transaction.stubs(:add_times)
|
530
542
|
@transaction.stubs(:for_network_device=)
|
531
543
|
|
532
544
|
Puppet.settings.stubs(:use)
|
@@ -537,18 +549,6 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
537
549
|
@catalog.apply
|
538
550
|
end
|
539
551
|
|
540
|
-
it "should provide the catalog retrieval time to the transaction" do
|
541
|
-
@catalog.retrieval_duration = 5
|
542
|
-
@transaction.expects(:add_times).with(:config_retrieval => 5)
|
543
|
-
@catalog.apply
|
544
|
-
end
|
545
|
-
|
546
|
-
it "should use a retrieval time of 0 if none is set in the catalog" do
|
547
|
-
@catalog.retrieval_duration = nil
|
548
|
-
@transaction.expects(:add_times).with(:config_retrieval => 0)
|
549
|
-
@catalog.apply
|
550
|
-
end
|
551
|
-
|
552
552
|
it "should return the transaction" do
|
553
553
|
@catalog.apply.should equal(@transaction)
|
554
554
|
end
|
@@ -627,90 +627,15 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
627
627
|
|
628
628
|
describe "when creating a relationship graph" do
|
629
629
|
before do
|
630
|
-
Puppet::Type.type(:component)
|
631
630
|
@catalog = Puppet::Resource::Catalog.new("host")
|
632
|
-
@compone = Puppet::Type::Component.new :name => "one"
|
633
|
-
@comptwo = Puppet::Type::Component.new :name => "two", :require => "Class[one]"
|
634
|
-
@file = Puppet::Type.type(:file)
|
635
|
-
@one = @file.new :path => @basepath+"/one"
|
636
|
-
@two = @file.new :path => @basepath+"/two"
|
637
|
-
@sub = @file.new :path => @basepath+"/two/subdir"
|
638
|
-
@catalog.add_edge @compone, @one
|
639
|
-
@catalog.add_edge @comptwo, @two
|
640
|
-
|
641
|
-
@three = @file.new :path => @basepath+"/three"
|
642
|
-
@four = @file.new :path => @basepath+"/four", :require => "File[#{@basepath}/three]"
|
643
|
-
@five = @file.new :path => @basepath+"/five"
|
644
|
-
@catalog.add_resource @compone, @comptwo, @one, @two, @three, @four, @five, @sub
|
645
|
-
|
646
|
-
@relationships = @catalog.relationship_graph
|
647
|
-
end
|
648
|
-
|
649
|
-
it "should be able to create a relationship graph" do
|
650
|
-
@relationships.should be_instance_of(Puppet::SimpleGraph)
|
651
|
-
end
|
652
|
-
|
653
|
-
it "should not have any components" do
|
654
|
-
@relationships.vertices.find { |r| r.instance_of?(Puppet::Type::Component) }.should be_nil
|
655
|
-
end
|
656
|
-
|
657
|
-
it "should have all non-component resources from the catalog" do
|
658
|
-
# The failures print out too much info, so i just do a class comparison
|
659
|
-
@relationships.vertex?(@five).should be_true
|
660
|
-
end
|
661
|
-
|
662
|
-
it "should have all resource relationships set as edges" do
|
663
|
-
@relationships.edge?(@three, @four).should be_true
|
664
|
-
end
|
665
|
-
|
666
|
-
it "should copy component relationships to all contained resources" do
|
667
|
-
@relationships.path_between(@one, @two).should be
|
668
|
-
end
|
669
|
-
|
670
|
-
it "should add automatic relationships to the relationship graph" do
|
671
|
-
@relationships.edge?(@two, @sub).should be_true
|
672
631
|
end
|
673
632
|
|
674
633
|
it "should get removed when the catalog is cleaned up" do
|
675
|
-
@
|
676
|
-
@catalog.clear
|
677
|
-
@catalog.instance_variable_get("@relationship_graph").should be_nil
|
678
|
-
end
|
634
|
+
@catalog.relationship_graph.expects(:clear)
|
679
635
|
|
680
|
-
it "should write :relationships and :expanded_relationships graph files if the catalog is a host catalog" do
|
681
636
|
@catalog.clear
|
682
|
-
graph = Puppet::SimpleGraph.new
|
683
|
-
Puppet::SimpleGraph.expects(:new).returns graph
|
684
|
-
|
685
|
-
graph.expects(:write_graph).with(:relationships)
|
686
|
-
graph.expects(:write_graph).with(:expanded_relationships)
|
687
|
-
|
688
|
-
@catalog.host_config = true
|
689
637
|
|
690
|
-
@catalog.relationship_graph
|
691
|
-
end
|
692
|
-
|
693
|
-
it "should not write graph files if the catalog is not a host catalog" do
|
694
|
-
@catalog.clear
|
695
|
-
graph = Puppet::SimpleGraph.new
|
696
|
-
Puppet::SimpleGraph.expects(:new).returns graph
|
697
|
-
|
698
|
-
graph.expects(:write_graph).never
|
699
|
-
|
700
|
-
@catalog.host_config = false
|
701
|
-
|
702
|
-
@catalog.relationship_graph
|
703
|
-
end
|
704
|
-
|
705
|
-
it "should create a new relationship graph after clearing the old one" do
|
706
|
-
@relationships.expects(:clear)
|
707
|
-
@catalog.clear
|
708
|
-
@catalog.relationship_graph.should be_instance_of(Puppet::SimpleGraph)
|
709
|
-
end
|
710
|
-
|
711
|
-
it "should remove removed resources from the relationship graph if it exists" do
|
712
|
-
@catalog.remove_resource(@one)
|
713
|
-
@catalog.relationship_graph.vertex?(@one).should be_false
|
638
|
+
@catalog.instance_variable_get("@relationship_graph").should be_nil
|
714
639
|
end
|
715
640
|
end
|
716
641
|
|
@@ -902,8 +827,9 @@ describe Puppet::Resource::Catalog, "when converting from pson" do
|
|
902
827
|
it 'should convert the resources list into resources and add each of them' do
|
903
828
|
@data['resources'] = [Puppet::Resource.new(:file, "/foo"), Puppet::Resource.new(:file, "/bar")]
|
904
829
|
|
905
|
-
|
906
|
-
|
830
|
+
catalog = PSON.parse @pson.to_pson
|
831
|
+
|
832
|
+
catalog.resources.collect(&:ref) == ["File[/foo]", "File[/bar]"]
|
907
833
|
end
|
908
834
|
|
909
835
|
it 'should convert resources even if they do not include "type" information' do
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"type": "object",
|
3
|
+
"properties": {
|
4
|
+
"doc": {
|
5
|
+
"type": "string"
|
6
|
+
},
|
7
|
+
"line": {
|
8
|
+
"type": "integer"
|
9
|
+
},
|
10
|
+
"file": {
|
11
|
+
"type": "string"
|
12
|
+
},
|
13
|
+
"parent": {
|
14
|
+
"type": "string"
|
15
|
+
},
|
16
|
+
"name": {
|
17
|
+
"type": "string",
|
18
|
+
"required": "true"
|
19
|
+
},
|
20
|
+
"kind": {
|
21
|
+
"type": "string",
|
22
|
+
"enum": [
|
23
|
+
"class",
|
24
|
+
"node",
|
25
|
+
"defined_type"
|
26
|
+
],
|
27
|
+
"required": "true"
|
28
|
+
},
|
29
|
+
"parameters": {
|
30
|
+
"type": "object"
|
31
|
+
}
|
32
|
+
},
|
33
|
+
"additionalProperties": false
|
34
|
+
}
|
@@ -8,6 +8,8 @@ describe Puppet::Resource::Status do
|
|
8
8
|
|
9
9
|
before do
|
10
10
|
@resource = Puppet::Type.type(:file).new :path => make_absolute("/my/file")
|
11
|
+
@containment_path = ["foo", "bar", "baz"]
|
12
|
+
@resource.stubs(:pathbuilder).returns @containment_path
|
11
13
|
@status = Puppet::Resource::Status.new(@resource)
|
12
14
|
end
|
13
15
|
|
@@ -44,6 +46,10 @@ describe Puppet::Resource::Status do
|
|
44
46
|
Puppet::Resource::Status.new(@resource).source_description.should == "/my/path"
|
45
47
|
end
|
46
48
|
|
49
|
+
it "should set its containment path" do
|
50
|
+
Puppet::Resource::Status.new(@resource).containment_path.should == @containment_path
|
51
|
+
end
|
52
|
+
|
47
53
|
[:file, :line].each do |attr|
|
48
54
|
it "should copy the resource's #{attr}" do
|
49
55
|
@resource.expects(attr).returns "foo"
|
@@ -151,4 +157,54 @@ describe Puppet::Resource::Status do
|
|
151
157
|
@status.to_yaml_properties.should =~ Puppet::Resource::Status::YAML_ATTRIBUTES
|
152
158
|
end
|
153
159
|
end
|
160
|
+
|
161
|
+
it "should round trip through pson" do
|
162
|
+
@status.file = "/foo.rb"
|
163
|
+
@status.line = 27
|
164
|
+
@status.evaluation_time = 2.7
|
165
|
+
@status.tags = %w{one two}
|
166
|
+
@status << Puppet::Transaction::Event.new(:name => :mode_changed, :status => 'audit')
|
167
|
+
@status.failed = false
|
168
|
+
@status.changed = true
|
169
|
+
@status.out_of_sync = true
|
170
|
+
@status.skipped = false
|
171
|
+
|
172
|
+
@status.containment_path.should == @containment_path
|
173
|
+
|
174
|
+
tripped = Puppet::Resource::Status.from_pson(PSON.parse(@status.to_pson))
|
175
|
+
|
176
|
+
tripped.title.should == @status.title
|
177
|
+
tripped.containment_path.should == @status.containment_path
|
178
|
+
tripped.file.should == @status.file
|
179
|
+
tripped.line.should == @status.line
|
180
|
+
tripped.resource.should == @status.resource
|
181
|
+
tripped.resource_type.should == @status.resource_type
|
182
|
+
tripped.evaluation_time.should == @status.evaluation_time
|
183
|
+
tripped.tags.should == @status.tags
|
184
|
+
tripped.time.should == @status.time
|
185
|
+
tripped.failed.should == @status.failed
|
186
|
+
tripped.changed.should == @status.changed
|
187
|
+
tripped.out_of_sync.should == @status.out_of_sync
|
188
|
+
tripped.skipped.should == @status.skipped
|
189
|
+
|
190
|
+
tripped.change_count.should == @status.change_count
|
191
|
+
tripped.out_of_sync_count.should == @status.out_of_sync_count
|
192
|
+
events_as_hashes(tripped).should == events_as_hashes(@status)
|
193
|
+
end
|
194
|
+
|
195
|
+
def events_as_hashes(report)
|
196
|
+
report.events.collect do |e|
|
197
|
+
{
|
198
|
+
:audited => e.audited,
|
199
|
+
:property => e.property,
|
200
|
+
:previous_value => e.previous_value,
|
201
|
+
:desired_value => e.desired_value,
|
202
|
+
:historical_value => e.historical_value,
|
203
|
+
:message => e.message,
|
204
|
+
:name => e.name,
|
205
|
+
:status => e.status,
|
206
|
+
:time => e.time,
|
207
|
+
}
|
208
|
+
end
|
209
|
+
end
|
154
210
|
end
|
@@ -190,7 +190,7 @@ describe Puppet::Resource::TypeCollection do
|
|
190
190
|
@code.loader.expects(:try_load_fqname).with(:hostclass, "klass").returns(nil)
|
191
191
|
@code.find_hostclass("Ns", "Klass").should be_nil
|
192
192
|
|
193
|
-
Puppet.expects(:
|
193
|
+
Puppet.expects(:debug).at_least_once.with {|msg| msg =~ /Not attempting to load hostclass/}
|
194
194
|
@code.find_hostclass("Ns", "Klass").should be_nil
|
195
195
|
end
|
196
196
|
end
|
@@ -369,7 +369,7 @@ describe Puppet::Resource::TypeCollection do
|
|
369
369
|
describe "when managing files" do
|
370
370
|
before do
|
371
371
|
@loader = Puppet::Resource::TypeCollection.new("env")
|
372
|
-
Puppet::Util::
|
372
|
+
Puppet::Util::WatchedFile.stubs(:new).returns stub("watched_file")
|
373
373
|
end
|
374
374
|
|
375
375
|
it "should have a method for specifying a file should be watched" do
|
@@ -381,15 +381,15 @@ describe Puppet::Resource::TypeCollection do
|
|
381
381
|
@loader.should be_watching_file("/foo/bar")
|
382
382
|
end
|
383
383
|
|
384
|
-
it "should use
|
385
|
-
Puppet::Util::
|
384
|
+
it "should use WatchedFile to watch files" do
|
385
|
+
Puppet::Util::WatchedFile.expects(:new).with("/foo/bar").returns stub("watched_file")
|
386
386
|
@loader.watch_file("/foo/bar")
|
387
387
|
end
|
388
388
|
|
389
389
|
it "should be considered stale if any files have changed" do
|
390
390
|
file1 = stub 'file1', :changed? => false
|
391
391
|
file2 = stub 'file2', :changed? => true
|
392
|
-
Puppet::Util::
|
392
|
+
Puppet::Util::WatchedFile.expects(:new).times(2).returns(file1).then.returns(file2)
|
393
393
|
@loader.watch_file("/foo/bar")
|
394
394
|
@loader.watch_file("/other/bar")
|
395
395
|
|
@@ -399,7 +399,7 @@ describe Puppet::Resource::TypeCollection do
|
|
399
399
|
it "should not be considered stable if no files have changed" do
|
400
400
|
file1 = stub 'file1', :changed? => false
|
401
401
|
file2 = stub 'file2', :changed? => false
|
402
|
-
Puppet::Util::
|
402
|
+
Puppet::Util::WatchedFile.expects(:new).times(2).returns(file1).then.returns(file2)
|
403
403
|
@loader.watch_file("/foo/bar")
|
404
404
|
@loader.watch_file("/other/bar")
|
405
405
|
|