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
@@ -9,7 +9,7 @@ class Puppet::Resource::Rest < Puppet::Indirector::REST
|
|
9
9
|
|
10
10
|
def deserialize_save(content_type, body)
|
11
11
|
# Body is [ral_res.to_resource, transaction.report]
|
12
|
-
format = Puppet::Network::FormatHandler.
|
12
|
+
format = Puppet::Network::FormatHandler.format_for(content_type)
|
13
13
|
ary = format.intern(Array, body)
|
14
14
|
[Puppet::Resource.from_pson(ary[0]), Puppet::Transaction::Report.from_pson(ary[1])]
|
15
15
|
end
|
@@ -2,9 +2,26 @@ require 'puppet/resource/type'
|
|
2
2
|
require 'puppet/indirector/code'
|
3
3
|
require 'puppet/indirector/resource_type'
|
4
4
|
|
5
|
+
# The main terminus for Puppet::Resource::Type
|
6
|
+
#
|
7
|
+
# This exposes the known resource types from within Puppet. Only find
|
8
|
+
# and search are supported. When a request is received, Puppet will
|
9
|
+
# attempt to load all resource types (by parsing manifests and modules) and
|
10
|
+
# returns a description of the resource types found. The format of these
|
11
|
+
# objects is documented at {Puppet::Resource::Type}.
|
12
|
+
#
|
13
|
+
# @api public
|
5
14
|
class Puppet::Indirector::ResourceType::Parser < Puppet::Indirector::Code
|
6
15
|
desc "Return the data-form of a resource type."
|
7
16
|
|
17
|
+
# Find will return the first resource_type with the given name. It is
|
18
|
+
# not possible to specify the kind of the resource type.
|
19
|
+
#
|
20
|
+
# @param request [Puppet::Indirector::Request] The request object.
|
21
|
+
# The only parameters used from the request are `environment` and
|
22
|
+
# `key`, which corresponds to the resource type's `name` field.
|
23
|
+
# @return [Puppet::Resource::Type, nil]
|
24
|
+
# @api public
|
8
25
|
def find(request)
|
9
26
|
krt = request.environment.known_resource_types
|
10
27
|
|
@@ -20,19 +37,21 @@ class Puppet::Indirector::ResourceType::Parser < Puppet::Indirector::Code
|
|
20
37
|
nil
|
21
38
|
end
|
22
39
|
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
40
|
+
# Search for resource types using a regular expression. Unlike `find`, this
|
41
|
+
# allows you to filter the results by the "kind" of the resource type
|
42
|
+
# ("class", "defined_type", or "node"). All three are searched if no
|
43
|
+
# `kind` filter is given. This also accepts the special string "`*`"
|
44
|
+
# to return all resource type objects.
|
45
|
+
#
|
46
|
+
# @param request [Puppet::Indirector::Request] The request object. The
|
47
|
+
# `key` field holds the regular expression used to search, and
|
48
|
+
# `options[:kind]` holds the kind query parameter to filter the
|
49
|
+
# result as described above. The `environment` field specifies the
|
50
|
+
# environment used to load resources.
|
51
|
+
#
|
52
|
+
# @return [Array<Puppet::Resource::Type>, nil]
|
26
53
|
#
|
27
|
-
# @
|
28
|
-
# Important properties of the request parameter:
|
29
|
-
# 1. request.environment : The environment in which to look for types.
|
30
|
-
# 2. request.key : A String that will be treated as a regular expression to
|
31
|
-
# be matched against the names of the available types. You may also
|
32
|
-
# pass a "*", which will match all available types.
|
33
|
-
# 3. request.options[:kind] : a String that can be used to filter the output
|
34
|
-
# to only return the desired kinds. The current supported values are
|
35
|
-
# 'class', 'defined_type', and 'node'.
|
54
|
+
# @api public
|
36
55
|
def search(request)
|
37
56
|
krt = request.environment.known_resource_types
|
38
57
|
# Make sure we've got all of the types loaded.
|
data/lib/puppet/interface.rb
CHANGED
@@ -101,7 +101,7 @@ class Puppet::Interface
|
|
101
101
|
def [](name, version)
|
102
102
|
unless face = Puppet::Interface::FaceCollection[name, version]
|
103
103
|
# REVISIT (#18042) no sense in rechecking if version == :current -- josh
|
104
|
-
if
|
104
|
+
if Puppet::Interface::FaceCollection[name, :current]
|
105
105
|
raise Puppet::Error, "Could not find version #{version} of #{name}"
|
106
106
|
else
|
107
107
|
raise Puppet::Error, "Could not find Puppet Face #{name.to_s}"
|
@@ -7,9 +7,6 @@ class Puppet::Interface
|
|
7
7
|
|
8
8
|
# We need to identify an indent: the minimum number of whitespace
|
9
9
|
# characters at the start of any line in the text.
|
10
|
-
#
|
11
|
-
# Using split rather than each_line is because the later only takes a
|
12
|
-
# block on Ruby 1.8.5 / Centos, and we support that. --daniel 2011-05-03
|
13
10
|
indent = text.split(/\n/).map {|x| x.index(/[^\s]/) }.compact.min
|
14
11
|
|
15
12
|
if indent > 0 then
|
@@ -79,7 +76,7 @@ class Puppet::Interface
|
|
79
76
|
|
80
77
|
# @api private
|
81
78
|
def build_synopsis(face, action = nil, arguments = nil)
|
82
|
-
|
79
|
+
PrettyPrint.format do |s|
|
83
80
|
s.text("puppet #{face}")
|
84
81
|
s.text(" #{action}") unless action.nil?
|
85
82
|
s.text(" ")
|
@@ -105,7 +102,6 @@ class Puppet::Interface
|
|
105
102
|
display_global_options.sort.each do |option|
|
106
103
|
wrap = %w{ [ ] }
|
107
104
|
s.group(0, *wrap) do
|
108
|
-
desc = Puppet.settings.setting(option).desc
|
109
105
|
type = Puppet.settings.setting(option).default
|
110
106
|
type ||= Puppet.settings.setting(option).type.to_s.upcase
|
111
107
|
s.text "--#{option} #{type}"
|
@@ -134,11 +130,11 @@ class Puppet::Interface
|
|
134
130
|
# Sets examples.
|
135
131
|
# @param text [String] Example text
|
136
132
|
# @api public
|
137
|
-
# @
|
133
|
+
# @return [void]
|
138
134
|
# @dsl Faces
|
139
135
|
# @overload examples
|
140
136
|
# Returns documentation of examples
|
141
|
-
# @
|
137
|
+
# @return [String] The examples
|
142
138
|
# @api private
|
143
139
|
attr_doc :examples
|
144
140
|
|
@@ -147,11 +143,11 @@ class Puppet::Interface
|
|
147
143
|
# Sets optional notes.
|
148
144
|
# @param text [String] The notes
|
149
145
|
# @api public
|
150
|
-
# @
|
146
|
+
# @return [void]
|
151
147
|
# @dsl Faces
|
152
148
|
# @overload notes
|
153
149
|
# Returns any optional notes
|
154
|
-
# @
|
150
|
+
# @return [String] The notes
|
155
151
|
# @api private
|
156
152
|
attr_doc :notes
|
157
153
|
|
@@ -160,11 +156,11 @@ class Puppet::Interface
|
|
160
156
|
# Sets the license text
|
161
157
|
# @param text [String] the license text
|
162
158
|
# @api public
|
163
|
-
# @
|
159
|
+
# @return [void]
|
164
160
|
# @dsl Faces
|
165
161
|
# @overload license
|
166
162
|
# Returns the license
|
167
|
-
# @
|
163
|
+
# @return [String] The license
|
168
164
|
# @api private
|
169
165
|
attr_doc :license
|
170
166
|
|
@@ -84,7 +84,7 @@ class Puppet::Interface::Option
|
|
84
84
|
unless found = declaration.match(/^-+(?:\[no-\])?([^ =]+)/) then
|
85
85
|
raise ArgumentError, "Can't find a name in the declaration #{declaration.inspect}"
|
86
86
|
end
|
87
|
-
|
87
|
+
found.captures.first
|
88
88
|
end
|
89
89
|
|
90
90
|
# @api private
|
@@ -57,7 +57,7 @@ class Puppet::Interface::OptionBuilder
|
|
57
57
|
def after_action(&block)
|
58
58
|
block or raise ArgumentError, "#{@option} after_action requires a block"
|
59
59
|
if @option.after_action
|
60
|
-
raise ArgumentError, "#{@option} already has
|
60
|
+
raise ArgumentError, "#{@option} already has an after_action set"
|
61
61
|
end
|
62
62
|
unless block.arity == 3 then
|
63
63
|
raise ArgumentError, "after_action takes three arguments, action, args, and options"
|
@@ -131,7 +131,7 @@ module Manager
|
|
131
131
|
def rmtype(name)
|
132
132
|
# Then create the class.
|
133
133
|
|
134
|
-
|
134
|
+
rmclass(name, :hash => @types)
|
135
135
|
|
136
136
|
singleton_class.send(:remove_method, "new#{name}") if respond_to?("new#{name}")
|
137
137
|
end
|
@@ -145,7 +145,7 @@ module Manager
|
|
145
145
|
@types ||= {}
|
146
146
|
|
147
147
|
# We are overwhelmingly symbols here, which usually match, so it is worth
|
148
|
-
# having this special-case to return quickly. Like, 25K
|
148
|
+
# having this special-case to return quickly. Like, 25K symbols vs. 300
|
149
149
|
# strings in this method. --daniel 2012-07-17
|
150
150
|
return @types[name] if @types[name]
|
151
151
|
|
data/lib/puppet/module.rb
CHANGED
@@ -147,6 +147,12 @@ class Puppet::Module
|
|
147
147
|
init_manifests + searched_manifests
|
148
148
|
end
|
149
149
|
|
150
|
+
def all_manifests
|
151
|
+
return [] unless File.exists?(manifests)
|
152
|
+
|
153
|
+
Dir.glob(File.join(manifests, '**', '*.{rb,pp}'))
|
154
|
+
end
|
155
|
+
|
150
156
|
def metadata_file
|
151
157
|
return @metadata_file if defined?(@metadata_file)
|
152
158
|
|
@@ -234,7 +240,7 @@ class Puppet::Module
|
|
234
240
|
|
235
241
|
dep_mod = begin
|
236
242
|
environment.module_by_forge_name(forge_name)
|
237
|
-
rescue
|
243
|
+
rescue
|
238
244
|
nil
|
239
245
|
end
|
240
246
|
|
data/lib/puppet/module_tool.rb
CHANGED
@@ -17,7 +17,7 @@ module Puppet
|
|
17
17
|
# Is this a directory that shouldn't be checksummed?
|
18
18
|
#
|
19
19
|
# TODO: Should this be part of Checksums?
|
20
|
-
# TODO: Rename this method to reflect
|
20
|
+
# TODO: Rename this method to reflect its purpose?
|
21
21
|
# TODO: Shouldn't this be used when building packages too?
|
22
22
|
def self.artifact?(path)
|
23
23
|
case File.basename(path)
|
@@ -47,6 +47,16 @@ module Puppet::ModuleTool
|
|
47
47
|
elsif require_modulefile
|
48
48
|
raise ArgumentError, "No Modulefile found."
|
49
49
|
end
|
50
|
+
extra_metadata_path = File.join(@path, 'metadata.json')
|
51
|
+
if File.file?(extra_metadata_path)
|
52
|
+
File.open(extra_metadata_path) do |f|
|
53
|
+
begin
|
54
|
+
@metadata.extra_metadata = PSON.load(f)
|
55
|
+
rescue PSON::ParserError
|
56
|
+
raise ArgumentError, "Could not parse JSON #{extra_metadata_path}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
50
60
|
end
|
51
61
|
@metadata
|
52
62
|
end
|
@@ -122,7 +122,7 @@ module Puppet::ModuleTool
|
|
122
122
|
|
123
123
|
#
|
124
124
|
# Resolve installation conflicts by checking if the requested module
|
125
|
-
# or one of
|
125
|
+
# or one of its dependencies conflicts with an installed module.
|
126
126
|
#
|
127
127
|
# Conflicts occur under the following conditions:
|
128
128
|
#
|
@@ -153,7 +153,10 @@ module Puppet::ModuleTool
|
|
153
153
|
:version => release[:version][:vstring]
|
154
154
|
}
|
155
155
|
dependency = is_dependency ? dependency_info : nil
|
156
|
-
|
156
|
+
all_versions = @versions["#{@module_name}"].sort_by { |h| h[:semver] }
|
157
|
+
versions = all_versions.select { |x| x[:semver].special == '' }
|
158
|
+
versions = all_versions if versions.empty?
|
159
|
+
latest_version = versions.last[:vstring]
|
157
160
|
|
158
161
|
raise InstallConflictError,
|
159
162
|
:requested_module => @module_name,
|
@@ -172,7 +175,7 @@ module Puppet::ModuleTool
|
|
172
175
|
# Check if a file is a vaild module package.
|
173
176
|
# ---
|
174
177
|
# FIXME: Checking for a valid module package should be more robust and
|
175
|
-
# use the
|
178
|
+
# use the actual metadata contained in the package. 03132012 - Hightower
|
176
179
|
# +++
|
177
180
|
#
|
178
181
|
def is_module_package?(name)
|
@@ -2,6 +2,8 @@ module Puppet::ModuleTool
|
|
2
2
|
|
3
3
|
class Dependency
|
4
4
|
|
5
|
+
attr_reader :full_module_name, :username, :name, :version_requirement, :repository
|
6
|
+
|
5
7
|
# Instantiates a new module dependency with a +full_module_name+ (e.g.
|
6
8
|
# "myuser-mymodule"), and optional +version_requirement+ (e.g. "0.0.1") and
|
7
9
|
# optional repository (a URL string).
|
@@ -14,7 +14,7 @@ module Puppet::ModuleTool::Errors
|
|
14
14
|
@installed_version = options[:installed_version]
|
15
15
|
@dependency_name = options[:dependency_name]
|
16
16
|
@conditions = options[:conditions]
|
17
|
-
super "Could not upgrade '#{@module_name}';
|
17
|
+
super "Could not upgrade '#{@module_name}';"
|
18
18
|
end
|
19
19
|
|
20
20
|
def multiline
|
@@ -79,6 +79,14 @@ module Puppet::ModuleTool
|
|
79
79
|
@description = description
|
80
80
|
end
|
81
81
|
|
82
|
+
def extra_metadata
|
83
|
+
@extra_metadata || {}
|
84
|
+
end
|
85
|
+
|
86
|
+
def extra_metadata=(extra_metadata)
|
87
|
+
@extra_metadata = extra_metadata
|
88
|
+
end
|
89
|
+
|
82
90
|
def project_page
|
83
91
|
@project_page || 'UNKNOWN'
|
84
92
|
end
|
@@ -121,21 +129,25 @@ module Puppet::ModuleTool
|
|
121
129
|
end
|
122
130
|
end
|
123
131
|
|
132
|
+
def to_hash()
|
133
|
+
return extra_metadata.merge({
|
134
|
+
'name' => @full_module_name,
|
135
|
+
'version' => @version,
|
136
|
+
'source' => source,
|
137
|
+
'author' => author,
|
138
|
+
'license' => license,
|
139
|
+
'summary' => summary,
|
140
|
+
'description' => description,
|
141
|
+
'project_page' => project_page,
|
142
|
+
'dependencies' => dependencies,
|
143
|
+
'types' => types,
|
144
|
+
'checksums' => checksums
|
145
|
+
})
|
146
|
+
end
|
147
|
+
|
124
148
|
# Return the PSON record representing this instance.
|
125
149
|
def to_pson(*args)
|
126
|
-
return
|
127
|
-
:name => @full_module_name,
|
128
|
-
:version => @version,
|
129
|
-
:source => source,
|
130
|
-
:author => author,
|
131
|
-
:license => license,
|
132
|
-
:summary => summary,
|
133
|
-
:description => description,
|
134
|
-
:project_page => project_page,
|
135
|
-
:dependencies => dependencies,
|
136
|
-
:types => types,
|
137
|
-
:checksums => checksums
|
138
|
-
}.to_pson(*args)
|
150
|
+
return to_hash.to_pson(*args)
|
139
151
|
end
|
140
152
|
end
|
141
153
|
end
|
@@ -57,18 +57,18 @@ module Puppet::ModuleTool
|
|
57
57
|
@metadata.license = license
|
58
58
|
end
|
59
59
|
|
60
|
-
|
61
|
-
|
60
|
+
# Set the summary
|
61
|
+
def summary(summary)
|
62
62
|
@metadata.summary = summary
|
63
63
|
end
|
64
64
|
|
65
|
-
|
66
|
-
|
65
|
+
# Set the description
|
66
|
+
def description(description)
|
67
67
|
@metadata.description = description
|
68
|
-
|
68
|
+
end
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
# Set the project page
|
71
|
+
def project_page(project_page)
|
72
72
|
@metadata.project_page = project_page
|
73
73
|
end
|
74
74
|
end
|
@@ -36,7 +36,7 @@ module Puppet::ModuleTool::Shared
|
|
36
36
|
mod_name, releases = pair
|
37
37
|
mod_name = mod_name.gsub('/', '-')
|
38
38
|
releases.each do |rel|
|
39
|
-
semver = SemVer.new(rel['version'] || '0.0.0') rescue SemVer
|
39
|
+
semver = SemVer.new(rel['version'] || '0.0.0') rescue SemVer::MIN
|
40
40
|
@versions[mod_name] << { :vstring => rel['version'], :semver => semver }
|
41
41
|
@versions[mod_name].sort! { |a, b| a[:semver] <=> b[:semver] }
|
42
42
|
@urls["#{mod_name}@#{rel['version']}"] = rel['file']
|
@@ -107,7 +107,9 @@ module Puppet::ModuleTool::Shared
|
|
107
107
|
@conditions.each { |_, conds| conds.delete_if { |c| c[:module] == mod } }
|
108
108
|
end
|
109
109
|
|
110
|
-
|
110
|
+
versions = @versions["#{mod}"].select { |h| range === h[:semver] }
|
111
|
+
valid_versions = versions.select { |x| x[:semver].special == '' }
|
112
|
+
valid_versions = versions if valid_versions.empty?
|
111
113
|
|
112
114
|
unless version = valid_versions.last
|
113
115
|
req_module = @module_name
|
@@ -23,7 +23,7 @@ module Puppet::ModuleTool
|
|
23
23
|
|
24
24
|
# Return Pathname of custom templates directory.
|
25
25
|
def custom_path
|
26
|
-
Pathname(Puppet.settings[:
|
26
|
+
Pathname(Puppet.settings[:module_skeleton_dir])
|
27
27
|
end
|
28
28
|
|
29
29
|
# Return Pathname of default template directory.
|
@@ -15,16 +15,16 @@
|
|
15
15
|
# Here you should define a list of variables that this module would require.
|
16
16
|
#
|
17
17
|
# [*sample_variable*]
|
18
|
-
# Explanation of how this variable affects the funtion of this class and if
|
19
|
-
# has a default. e.g. "The parameter enc_ntp_servers must be set by the
|
18
|
+
# Explanation of how this variable affects the funtion of this class and if
|
19
|
+
# it has a default. e.g. "The parameter enc_ntp_servers must be set by the
|
20
20
|
# External Node Classifier as a comma separated list of hostnames." (Note,
|
21
|
-
# global variables should
|
22
|
-
# Puppet 2.6.)
|
21
|
+
# global variables should be avoided in favor of class parameters as
|
22
|
+
# of Puppet 2.6.)
|
23
23
|
#
|
24
24
|
# === Examples
|
25
25
|
#
|
26
26
|
# class { <%= metadata.name %>:
|
27
|
-
# servers => [ 'pool.ntp.org', 'ntp.local.company.com' ]
|
27
|
+
# servers => [ 'pool.ntp.org', 'ntp.local.company.com' ],
|
28
28
|
# }
|
29
29
|
#
|
30
30
|
# === Authors
|
@@ -2,10 +2,11 @@
|
|
2
2
|
# should have a corresponding test manifest that declares that class or defined
|
3
3
|
# type.
|
4
4
|
#
|
5
|
-
# Tests are then run by using puppet apply --noop (to check for compilation
|
6
|
-
# and view a log of events) or by fully applying the test in a virtual
|
7
|
-
# (to compare the resulting system state to the desired state).
|
5
|
+
# Tests are then run by using puppet apply --noop (to check for compilation
|
6
|
+
# errors and view a log of events) or by fully applying the test in a virtual
|
7
|
+
# environment (to compare the resulting system state to the desired state).
|
8
8
|
#
|
9
|
-
# Learn more about module testing here:
|
9
|
+
# Learn more about module testing here:
|
10
|
+
# http://docs.puppetlabs.com/guides/tests_smoke.html
|
10
11
|
#
|
11
12
|
include <%= metadata.name %>
|
@@ -27,6 +27,9 @@ class AuthConfigParser
|
|
27
27
|
name = $1.chomp
|
28
28
|
right = rights.newright(name, count, @file)
|
29
29
|
when /^\s*(allow(?:_ip)?|deny(?:_ip)?|method|environment|auth(?:enticated)?)\s+(.+?)(\s*#.*)?$/
|
30
|
+
if right.nil?
|
31
|
+
raise Puppet::ConfigurationError, "Missing or invalid 'path' before right directive at line #{count} of #{@file}"
|
32
|
+
end
|
30
33
|
parse_right_directive(right, $1, $2, count)
|
31
34
|
else
|
32
35
|
raise Puppet::ConfigurationError, "Invalid line #{count}: #{line}"
|