puppet 4.2.3-x86-mingw32 → 4.3.0-x86-mingw32
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/Gemfile +3 -0
- data/README.md +1 -1
- data/ext/debian/puppet.init +0 -1
- data/ext/debian/puppet.logrotate +14 -5
- data/ext/osx/puppet.plist +0 -2
- data/ext/redhat/client.init +13 -5
- data/ext/redhat/logrotate +15 -3
- data/ext/redhat/puppet.spec.erb +5 -1
- data/ext/redhat/server.init +1 -1
- data/ext/systemd/puppet.service +1 -0
- data/lib/puppet.rb +12 -0
- data/lib/puppet/agent.rb +4 -4
- data/lib/puppet/agent/locker.rb +11 -2
- data/lib/puppet/application/agent.rb +5 -1
- data/lib/puppet/application/apply.rb +4 -0
- data/lib/puppet/application/filebucket.rb +78 -4
- data/lib/puppet/application/lookup.rb +356 -0
- data/lib/puppet/application/master.rb +3 -0
- data/lib/puppet/configurer.rb +9 -5
- data/lib/puppet/context.rb +16 -1
- data/lib/puppet/context/trusted_information.rb +21 -1
- data/lib/puppet/daemon.rb +17 -13
- data/lib/puppet/data_binding.rb +4 -2
- data/lib/puppet/data_providers.rb +12 -13
- data/lib/puppet/data_providers/data_adapter.rb +7 -68
- data/lib/puppet/data_providers/data_function_support.rb +5 -26
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -10
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -22
- data/lib/puppet/data_providers/hiera_config.rb +106 -0
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +18 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +97 -0
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +23 -0
- data/lib/puppet/data_providers/hiera_support.rb +37 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +31 -0
- data/lib/puppet/data_providers/lookup_adapter.rb +200 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +32 -0
- data/lib/puppet/defaults.rb +12 -2
- data/lib/puppet/error.rb +4 -0
- data/lib/puppet/face/module/changes.rb +2 -1
- data/lib/puppet/feature/cfacter.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +58 -2
- data/lib/puppet/functions.rb +2 -4
- data/lib/puppet/functions/assert_type.rb +48 -12
- data/lib/puppet/functions/defined.rb +79 -48
- data/lib/puppet/functions/each.rb +85 -27
- data/lib/puppet/functions/filter.rb +58 -23
- data/lib/puppet/functions/hiera.rb +76 -3
- data/lib/puppet/functions/hiera_array.rb +65 -3
- data/lib/puppet/functions/hiera_hash.rb +74 -2
- data/lib/puppet/functions/hiera_include.rb +75 -2
- data/lib/puppet/functions/lookup.rb +19 -17
- data/lib/puppet/functions/map.rb +56 -21
- data/lib/puppet/functions/match.rb +29 -12
- data/lib/puppet/functions/reduce.rb +95 -58
- data/lib/puppet/functions/versioncmp.rb +36 -0
- data/lib/puppet/functions/with.rb +15 -7
- data/lib/puppet/indirector/catalog/compiler.rb +3 -3
- data/lib/puppet/indirector/catalog/static_compiler.rb +46 -30
- data/lib/puppet/indirector/data_binding/none.rb +4 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +58 -1
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/request.rb +7 -8
- data/lib/puppet/indirector/resource_type/parser.rb +5 -3
- data/lib/puppet/info_service.rb +7 -0
- data/lib/puppet/info_service/class_information_service.rb +111 -0
- data/lib/puppet/module_tool/metadata.rb +32 -9
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
- data/lib/puppet/network/authconfig.rb +21 -1
- data/lib/puppet/network/authorization.rb +8 -1
- data/lib/puppet/network/http/api/master/v3.rb +7 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +59 -0
- data/lib/puppet/node/environment.rb +9 -2
- data/lib/puppet/parser.rb +3 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +39 -1
- data/lib/puppet/parser/compiler.rb +302 -12
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +38 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
- data/lib/puppet/parser/environment_compiler.rb +165 -0
- data/lib/puppet/parser/functions/assert_type.rb +46 -16
- data/lib/puppet/parser/functions/defined.rb +105 -68
- data/lib/puppet/parser/functions/each.rb +85 -27
- data/lib/puppet/parser/functions/filter.rb +59 -23
- data/lib/puppet/parser/functions/hiera.rb +83 -27
- data/lib/puppet/parser/functions/hiera_array.rb +71 -28
- data/lib/puppet/parser/functions/hiera_hash.rb +81 -30
- data/lib/puppet/parser/functions/hiera_include.rb +81 -40
- data/lib/puppet/parser/functions/map.rb +55 -20
- data/lib/puppet/parser/functions/match.rb +27 -12
- data/lib/puppet/parser/functions/reduce.rb +97 -60
- data/lib/puppet/parser/functions/with.rb +16 -8
- data/lib/puppet/parser/resource.rb +98 -19
- data/lib/puppet/plugins/configuration.rb +3 -2
- data/lib/puppet/plugins/data_providers.rb +12 -60
- data/lib/puppet/plugins/data_providers/data_provider.rb +283 -0
- data/lib/puppet/plugins/data_providers/registry.rb +84 -0
- data/lib/puppet/pops.rb +19 -17
- data/lib/puppet/pops/adapters.rb +12 -0
- data/lib/puppet/pops/binder/binder.rb +2 -2
- data/lib/puppet/pops/binder/bindings_checker.rb +1 -1
- data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
- data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
- data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
- data/lib/puppet/pops/binder/injector.rb +4 -4
- data/lib/puppet/pops/binder/key_factory.rb +3 -9
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
- data/lib/puppet/pops/evaluator/access_operator.rb +27 -60
- data/lib/puppet/pops/evaluator/closure.rb +8 -8
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +7 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/issues.rb +1 -1
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/lookup.rb +25 -47
- data/lib/puppet/pops/lookup/explainer.rb +402 -0
- data/lib/puppet/pops/lookup/invocation.rb +117 -0
- data/lib/puppet/pops/merge_strategy.rb +73 -5
- data/lib/puppet/pops/model/factory.rb +34 -0
- data/lib/puppet/pops/model/model_label_provider.rb +10 -1
- data/lib/puppet/pops/model/model_meta.rb +15 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +18 -0
- data/lib/puppet/pops/parser/code_merger.rb +13 -1
- data/lib/puppet/pops/parser/egrammar.ra +56 -3
- data/lib/puppet/pops/parser/eparser.rb +1549 -1352
- data/lib/puppet/pops/parser/lexer2.rb +31 -6
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +25 -13
- data/lib/puppet/pops/types/enumeration.rb +1 -2
- data/lib/puppet/pops/types/type_asserter.rb +16 -15
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
- data/lib/puppet/pops/types/type_calculator.rb +171 -1020
- data/lib/puppet/pops/types/type_factory.rb +87 -148
- data/lib/puppet/pops/types/type_mismatch_describer.rb +743 -0
- data/lib/puppet/pops/types/type_parser.rb +116 -127
- data/lib/puppet/pops/types/types.rb +1394 -255
- data/lib/puppet/pops/types/types_meta.rb +0 -234
- data/lib/puppet/pops/validation.rb +7 -2
- data/lib/puppet/pops/validation/checker4_0.rb +28 -0
- data/lib/puppet/provider/augeas/augeas.rb +50 -0
- data/lib/puppet/provider/group/directoryservice.rb +10 -0
- data/lib/puppet/provider/package/dnf.rb +41 -0
- data/lib/puppet/provider/package/gem.rb +7 -2
- data/lib/puppet/provider/package/rpm.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
- data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
- data/lib/puppet/provider/package/windows/package.rb +9 -1
- data/lib/puppet/provider/package/yum.rb +14 -9
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +21 -0
- data/lib/puppet/provider/service/init.rb +6 -0
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +43 -2
- data/lib/puppet/provider/service/src.rb +27 -0
- data/lib/puppet/provider/service/systemd.rb +15 -3
- data/lib/puppet/provider/sshkey/parsed.rb +19 -9
- data/lib/puppet/reference/report.rb +9 -12
- data/lib/puppet/reports.rb +5 -1
- data/lib/puppet/resource.rb +50 -73
- data/lib/puppet/resource/capability_finder.rb +95 -0
- data/lib/puppet/resource/catalog.rb +47 -7
- data/lib/puppet/resource/status.rb +0 -2
- data/lib/puppet/resource/type.rb +238 -44
- data/lib/puppet/resource/type_collection.rb +60 -2
- data/lib/puppet/settings.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +2 -2
- data/lib/puppet/ssl/oids.rb +9 -1
- data/lib/puppet/transaction.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +71 -8
- data/lib/puppet/transaction/resource_harness.rb +9 -4
- data/lib/puppet/type.rb +74 -3
- data/lib/puppet/type/augeas.rb +8 -0
- data/lib/puppet/type/file/source.rb +14 -12
- data/lib/puppet/type/user.rb +4 -2
- data/lib/puppet/util/windows/security.rb +4 -1
- data/lib/puppet/util/windows/taskscheduler.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +3 -0
- data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +46 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/hiera.yaml +8 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/metadata.json +9 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
- data/spec/integration/data_binding_spec.rb +229 -0
- data/spec/integration/file_bucket/file_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +23 -19
- data/spec/integration/parser/resource_expressions_spec.rb +4 -4
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/type/package_spec.rb +2 -0
- data/spec/integration/util/windows/security_spec.rb +18 -0
- data/spec/lib/matchers/include_in_order.rb +2 -2
- data/spec/shared_behaviours/iterative_functions.rb +8 -8
- data/spec/spec_helper.rb +7 -0
- data/spec/unit/agent/locker_spec.rb +4 -4
- data/spec/unit/agent_spec.rb +0 -8
- data/spec/unit/application/agent_spec.rb +5 -0
- data/spec/unit/application/apply_spec.rb +8 -0
- data/spec/unit/application/filebucket_spec.rb +87 -1
- data/spec/unit/application/lookup_spec.rb +195 -0
- data/spec/unit/appmgmt_spec.rb +657 -0
- data/spec/unit/capability_spec.rb +414 -0
- data/spec/unit/configurer_spec.rb +7 -1
- data/spec/unit/context/trusted_information_spec.rb +24 -1
- data/spec/unit/daemon_spec.rb +18 -8
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +201 -0
- data/spec/unit/file_bucket/dipper_spec.rb +210 -1
- data/spec/unit/functions/assert_type_spec.rb +5 -7
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/lookup_spec.rb +200 -9
- data/spec/unit/functions/regsubst_spec.rb +17 -8
- data/spec/unit/functions/scanf_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +2 -2
- data/spec/unit/functions/versioncmp_spec.rb +36 -0
- data/spec/unit/functions4_spec.rb +58 -72
- data/spec/unit/indirector/catalog/compiler_spec.rb +28 -8
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
- data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +52 -1
- data/spec/unit/indirector/request_spec.rb +8 -8
- data/spec/unit/info_service_spec.rb +236 -0
- data/spec/unit/module_tool/metadata_spec.rb +31 -2
- data/spec/unit/network/authconfig_spec.rb +62 -32
- data/spec/unit/network/authorization_spec.rb +30 -2
- data/spec/unit/network/http/connection_spec.rb +14 -19
- data/spec/unit/parser/compiler_spec.rb +86 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +2 -20
- data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
- data/spec/unit/pops/binder/injector_spec.rb +3 -3
- data/spec/unit/pops/evaluator/access_ops_spec.rb +13 -11
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -11
- data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
- data/spec/unit/pops/label_provider_spec.rb +5 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +33 -7
- data/spec/unit/pops/parser/parse_application_spec.rb +40 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +47 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +38 -0
- data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
- data/spec/unit/pops/parser/parser_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +427 -444
- data/spec/unit/pops/types/type_factory_spec.rb +12 -12
- data/spec/unit/pops/types/type_parser_spec.rb +7 -12
- data/spec/unit/pops/validator/validator_spec.rb +25 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +50 -0
- data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +3 -0
- data/spec/unit/provider/package/dnf_spec.rb +92 -0
- data/spec/unit/provider/package/gem_spec.rb +7 -0
- data/spec/unit/provider/package/rpm_spec.rb +25 -2
- data/spec/unit/provider/package/windows/package_spec.rb +41 -0
- data/spec/unit/provider/package/yum_spec.rb +21 -13
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +10 -0
- data/spec/unit/provider/service/debian_spec.rb +27 -0
- data/spec/unit/provider/service/rcng_spec.rb +41 -0
- data/spec/unit/provider/service/redhat_spec.rb +8 -1
- data/spec/unit/provider/service/smf_spec.rb +30 -5
- data/spec/unit/provider/service/src_spec.rb +19 -4
- data/spec/unit/provider/service/systemd_spec.rb +78 -29
- data/spec/unit/provider/sshkey/parsed_spec.rb +23 -0
- data/spec/unit/reports_spec.rb +10 -0
- data/spec/unit/resource/capability_finder_spec.rb +56 -0
- data/spec/unit/resource/catalog_spec.rb +31 -8
- data/spec/unit/resource/type_collection_spec.rb +23 -2
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +22 -4
- data/spec/unit/settings_spec.rb +90 -1
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +4 -3
- data/spec/unit/ssl/oids_spec.rb +8 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +78 -5
- data/spec/unit/transaction/report_spec.rb +24 -1
- data/spec/unit/type/package_spec.rb +1 -0
- data/spec/unit/type/user_spec.rb +14 -7
- data/spec/unit/type_spec.rb +1 -1
- metadata +169 -5
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
- data/spec/integration/data_binding.rb +0 -104
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -51,7 +51,7 @@ See [LICENSE](LICENSE) file.
|
|
51
51
|
Support
|
52
52
|
-------
|
53
53
|
|
54
|
-
Please log tickets and issues at our [JIRA tracker](
|
54
|
+
Please log tickets and issues at our [JIRA tracker](https://tickets.puppetlabs.com). A [mailing
|
55
55
|
list](https://groups.google.com/forum/?fromgroups#!forum/puppet-users) is
|
56
56
|
available for asking questions and getting help from others. In addition there
|
57
57
|
is an active #puppet channel on Freenode.
|
data/ext/debian/puppet.init
CHANGED
data/ext/debian/puppet.logrotate
CHANGED
@@ -1,11 +1,20 @@
|
|
1
|
-
/var/log/puppetlabs/puppet.log {
|
2
|
-
missingok
|
3
|
-
sharedscripts
|
4
|
-
create 0644 puppet puppet
|
1
|
+
/var/log/puppetlabs/masterhttp.log /var/log/puppet/masterhttp.log {
|
5
2
|
compress
|
6
3
|
rotate 4
|
4
|
+
missingok
|
5
|
+
notifempty
|
6
|
+
nocreate
|
7
|
+
}
|
7
8
|
|
9
|
+
/var/log/puppetlabs/puppetd.log /var/log/puppet/puppetd.log {
|
10
|
+
compress
|
11
|
+
rotate 4
|
12
|
+
missingok
|
13
|
+
notifempty
|
14
|
+
nocreate
|
15
|
+
sharedscripts
|
8
16
|
postrotate
|
9
|
-
|
17
|
+
([ -x /etc/init.d/puppet ] && /etc/init.d/puppet reload > /dev/null 2>&1) ||
|
18
|
+
([ -x /usr/bin/systemctl ] && /usr/bin/systemctl kill -s USR2 puppet.service > /dev/null 2>&1) || true
|
10
19
|
endscript
|
11
20
|
}
|
data/ext/osx/puppet.plist
CHANGED
data/ext/redhat/client.init
CHANGED
@@ -13,9 +13,6 @@
|
|
13
13
|
# Source function library.
|
14
14
|
. /etc/rc.d/init.d/functions
|
15
15
|
|
16
|
-
PATH=/opt/puppetlabs/puppet/bin:/usr/bin:/sbin:/bin:/usr/sbin
|
17
|
-
export PATH
|
18
|
-
|
19
16
|
[ -f /etc/sysconfig/puppet ] && . /etc/sysconfig/puppet
|
20
17
|
lockfile=/var/lock/subsys/puppet
|
21
18
|
piddir=/var/run/puppetlabs
|
@@ -66,7 +63,7 @@ stop() {
|
|
66
63
|
}
|
67
64
|
|
68
65
|
reload() {
|
69
|
-
echo -n $"
|
66
|
+
echo -n $"Reloading puppet agent: "
|
70
67
|
if [ "$USEINITFUNCTIONS" = "true" ]; then
|
71
68
|
killproc $pidopts $puppetd -HUP
|
72
69
|
RETVAL=$?
|
@@ -82,6 +79,14 @@ reload() {
|
|
82
79
|
return $RETVAL
|
83
80
|
}
|
84
81
|
|
82
|
+
rotate() {
|
83
|
+
echo -n $"Reopening log files for puppet agent: "
|
84
|
+
killproc $pidopts $puppetd -USR2
|
85
|
+
RETVAL=$?
|
86
|
+
echo
|
87
|
+
return $RETVAL
|
88
|
+
}
|
89
|
+
|
85
90
|
restart() {
|
86
91
|
stop
|
87
92
|
start
|
@@ -136,6 +141,9 @@ case "$1" in
|
|
136
141
|
restart)
|
137
142
|
restart
|
138
143
|
;;
|
144
|
+
rotate)
|
145
|
+
rotate
|
146
|
+
;;
|
139
147
|
reload|force-reload)
|
140
148
|
reload
|
141
149
|
;;
|
@@ -154,7 +162,7 @@ case "$1" in
|
|
154
162
|
genconfig
|
155
163
|
;;
|
156
164
|
*)
|
157
|
-
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|once|genconfig}"
|
165
|
+
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|rotate|once|genconfig}"
|
158
166
|
exit 1
|
159
167
|
esac
|
160
168
|
|
data/ext/redhat/logrotate
CHANGED
@@ -1,9 +1,21 @@
|
|
1
|
-
|
1
|
+
# Generic logrotate config for Red Hat systems. Works with both official
|
2
|
+
# Fedora and RHEL packages as well as PuppetLabs distributions.
|
3
|
+
|
4
|
+
/var/log/puppetlabs/masterhttp.log /var/log/puppet/masterhttp.log {
|
5
|
+
compress
|
2
6
|
missingok
|
3
7
|
notifempty
|
4
|
-
|
8
|
+
nocreate
|
9
|
+
}
|
10
|
+
|
11
|
+
/var/log/puppetlabs/puppetd.log /var/log/puppet/puppetd.log {
|
12
|
+
compress
|
13
|
+
missingok
|
14
|
+
notifempty
|
15
|
+
nocreate
|
5
16
|
sharedscripts
|
6
17
|
postrotate
|
7
|
-
|
18
|
+
([ -x /etc/init.d/puppet ] && /etc/init.d/puppet reload > /dev/null 2>&1) ||
|
19
|
+
([ -x /usr/bin/systemctl ] && /usr/bin/systemctl kill -s USR2 puppet.service > /dev/null 2>&1) || true
|
8
20
|
endscript
|
9
21
|
}
|
data/ext/redhat/puppet.spec.erb
CHANGED
@@ -181,13 +181,16 @@ echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
|
|
181
181
|
# Create puppet modules directory for puppet module tool
|
182
182
|
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules
|
183
183
|
|
184
|
-
|
185
184
|
# Install a NetworkManager dispatcher script to pickup changes to
|
186
185
|
# # /etc/resolv.conf and such (https://bugzilla.redhat.com/532085).
|
187
186
|
mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
|
188
187
|
cp -pr ext/puppet-nm-dispatcher \
|
189
188
|
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name}
|
190
189
|
|
190
|
+
# Masterhttp.log is created on server start and should be distributed
|
191
|
+
# with correct permissions
|
192
|
+
touch %{buildroot}%{_localstatedir}/log/puppet/masterhttp.log
|
193
|
+
|
191
194
|
%files
|
192
195
|
%defattr(-, root, root, 0755)
|
193
196
|
%doc LICENSE README.md examples
|
@@ -280,6 +283,7 @@ cp -pr ext/puppet-nm-dispatcher \
|
|
280
283
|
%{_sysconfdir}/puppet/environments/example_env/README.environment
|
281
284
|
%{_mandir}/man8/puppet-ca.8.gz
|
282
285
|
%{_mandir}/man8/puppet-master.8.gz
|
286
|
+
%attr(660, puppet, puppet) %{_localstatedir}/log/puppet/masterhttp.log
|
283
287
|
|
284
288
|
# Fixed uid/gid were assigned in bz 472073 (Fedora), 471918 (RHEL-5),
|
285
289
|
# and 471919 (RHEL-4)
|
data/ext/redhat/server.init
CHANGED
data/ext/systemd/puppet.service
CHANGED
@@ -8,6 +8,7 @@ EnvironmentFile=-/etc/sysconfig/puppetagent
|
|
8
8
|
EnvironmentFile=-/etc/sysconfig/puppet
|
9
9
|
EnvironmentFile=-/etc/default/puppet
|
10
10
|
ExecStart=/opt/puppetlabs/puppet/bin/puppet agent $PUPPET_EXTRA_OPTS --no-daemonize
|
11
|
+
ExecReload=/bin/kill -HUP $MAINPID
|
11
12
|
KillMode=process
|
12
13
|
|
13
14
|
[Install]
|
data/lib/puppet.rb
CHANGED
@@ -223,6 +223,18 @@ module Puppet
|
|
223
223
|
@context.override(bindings, description, &block)
|
224
224
|
end
|
225
225
|
|
226
|
+
# @param name The name of a context key to ignore; intended for test usage.
|
227
|
+
# @api private
|
228
|
+
def self.ignore(name)
|
229
|
+
@context.ignore(name)
|
230
|
+
end
|
231
|
+
|
232
|
+
# @param name The name of a previously ignored context key to restore; intended for test usage.
|
233
|
+
# @api private
|
234
|
+
def self.restore(name)
|
235
|
+
@context.restore(name)
|
236
|
+
end
|
237
|
+
|
226
238
|
# @api private
|
227
239
|
def self.mark_context(name)
|
228
240
|
@context.mark(name)
|
data/lib/puppet/agent.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/application'
|
2
|
+
require 'puppet/error'
|
2
3
|
|
3
4
|
# A general class for triggering a run of another
|
4
5
|
# class.
|
@@ -29,10 +30,6 @@ class Puppet::Agent
|
|
29
30
|
|
30
31
|
# Perform a run with our client.
|
31
32
|
def run(client_options = {})
|
32
|
-
if running?
|
33
|
-
Puppet.notice "Run of #{client_class} already in progress; skipping (#{lockfile_path} exists)"
|
34
|
-
return
|
35
|
-
end
|
36
33
|
if disabled?
|
37
34
|
Puppet.notice "Skipping run of #{client_class}; administratively disabled (Reason: '#{disable_message}');\nUse 'puppet agent --enable' to re-enable."
|
38
35
|
return
|
@@ -46,6 +43,9 @@ class Puppet::Agent
|
|
46
43
|
begin
|
47
44
|
client_args = client_options.merge(:pluginsync => Puppet[:pluginsync])
|
48
45
|
lock { client.run(client_args) }
|
46
|
+
rescue Puppet::LockError
|
47
|
+
Puppet.notice "Run of #{client_class} already in progress; skipping (#{lockfile_path} exists)"
|
48
|
+
return
|
49
49
|
rescue StandardError => detail
|
50
50
|
Puppet.log_exception(detail, "Could not run #{client_class}: #{detail}")
|
51
51
|
end
|
data/lib/puppet/agent/locker.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/util/pidlock'
|
2
|
+
require 'puppet/error'
|
2
3
|
|
3
4
|
# This module is responsible for encapsulating the logic for "locking" the
|
4
5
|
# puppet agent during a catalog run; in other words, keeping track of enough
|
@@ -12,8 +13,8 @@ require 'puppet/util/pidlock'
|
|
12
13
|
# For more information, please see docs on the website.
|
13
14
|
# http://links.puppetlabs.com/agent_lockfiles
|
14
15
|
module Puppet::Agent::Locker
|
15
|
-
# Yield if we get a lock, else
|
16
|
-
#
|
16
|
+
# Yield if we get a lock, else raise Puppet::LockError. Return
|
17
|
+
# value of block yielded.
|
17
18
|
def lock
|
18
19
|
if lockfile.lock
|
19
20
|
begin
|
@@ -21,10 +22,18 @@ module Puppet::Agent::Locker
|
|
21
22
|
ensure
|
22
23
|
lockfile.unlock
|
23
24
|
end
|
25
|
+
else
|
26
|
+
fail Puppet::LockError, 'Failed to aquire lock'
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
30
|
+
# @deprecated
|
27
31
|
def running?
|
32
|
+
Puppet.deprecation_warning <<-ENDHEREDOC
|
33
|
+
Puppet::Agent::Locker.running? is deprecated as it is inherently unsafe.
|
34
|
+
The only safe way to know if the lock is locked is to try lock and perform some
|
35
|
+
action and then handle the LockError that may result.
|
36
|
+
ENDHEREDOC
|
28
37
|
lockfile.locked?
|
29
38
|
end
|
30
39
|
|
@@ -322,6 +322,9 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
322
322
|
# waiting for certificates so that we don't block
|
323
323
|
daemon = daemonize_process_when(Puppet[:daemonize])
|
324
324
|
|
325
|
+
# Setup signal traps immediately after daemonization so we clean up the daemon
|
326
|
+
daemon.set_signal_traps
|
327
|
+
|
325
328
|
wait_for_certificates
|
326
329
|
|
327
330
|
if Puppet[:onetime]
|
@@ -346,7 +349,6 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
346
349
|
end
|
347
350
|
|
348
351
|
def onetime(daemon)
|
349
|
-
daemon.set_signal_traps
|
350
352
|
begin
|
351
353
|
exitstatus = daemon.agent.run
|
352
354
|
rescue => detail
|
@@ -382,6 +384,8 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
382
384
|
end
|
383
385
|
|
384
386
|
def setup
|
387
|
+
raise ArgumentError, "The puppet agent command does not take parameters" unless command_line.args.empty?
|
388
|
+
|
385
389
|
setup_test if options[:test]
|
386
390
|
|
387
391
|
setup_logs
|
@@ -315,6 +315,10 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
315
315
|
|
316
316
|
Puppet.settings.use :main, :agent, :ssl
|
317
317
|
|
318
|
+
if Puppet[:catalog_cache_terminus]
|
319
|
+
Puppet::Resource::Catalog.indirection.cache_class = Puppet[:catalog_cache_terminus]
|
320
|
+
end
|
321
|
+
|
318
322
|
# we want the last report to be persisted locally
|
319
323
|
Puppet::Transaction::Report.indirection.cache_class = :yaml
|
320
324
|
|
@@ -4,6 +4,8 @@ class Puppet::Application::Filebucket < Puppet::Application
|
|
4
4
|
|
5
5
|
option("--bucket BUCKET","-b")
|
6
6
|
option("--debug","-d")
|
7
|
+
option("--fromdate FROMDATE","-f")
|
8
|
+
option("--todate TODATE","-t")
|
7
9
|
option("--local","-l")
|
8
10
|
option("--remote","-r")
|
9
11
|
option("--verbose","-v")
|
@@ -25,7 +27,8 @@ USAGE
|
|
25
27
|
-----
|
26
28
|
puppet filebucket <mode> [-h|--help] [-V|--version] [-d|--debug]
|
27
29
|
[-v|--verbose] [-l|--local] [-r|--remote] [-s|--server <server>]
|
28
|
-
[-
|
30
|
+
[-f|--fromdate <date>] [-t|--todate <date>] [-b|--bucket <directory>]
|
31
|
+
<file> <file> ...
|
29
32
|
|
30
33
|
Puppet filebucket can operate in three modes, with only one mode per call:
|
31
34
|
|
@@ -43,6 +46,13 @@ restore:
|
|
43
46
|
path to this argument; you are not restricted to restoring the content
|
44
47
|
to its original location.
|
45
48
|
|
49
|
+
diff:
|
50
|
+
Print a diff in unified format between two checksums in the filebucket
|
51
|
+
or between a checksum and its matching file.
|
52
|
+
|
53
|
+
list:
|
54
|
+
List all files in the current local filebucket. Listing remote
|
55
|
+
filebuckets is not allowed.
|
46
56
|
|
47
57
|
DESCRIPTION
|
48
58
|
-----------
|
@@ -71,6 +81,9 @@ configuration options can also be generated by running puppet with
|
|
71
81
|
* --debug:
|
72
82
|
Enable full debugging.
|
73
83
|
|
84
|
+
* --fromdate:
|
85
|
+
(list only) Select bucket files from 'fromdate'
|
86
|
+
|
74
87
|
* --help:
|
75
88
|
Print this help message
|
76
89
|
|
@@ -85,6 +98,9 @@ configuration options can also be generated by running puppet with
|
|
85
98
|
* --server:
|
86
99
|
The server to send the file to, instead of locally.
|
87
100
|
|
101
|
+
* --todate:
|
102
|
+
(list only) Select bucket files until 'todate'
|
103
|
+
|
88
104
|
* --verbose:
|
89
105
|
Print extra information.
|
90
106
|
|
@@ -97,7 +113,31 @@ EXAMPLE
|
|
97
113
|
$ puppet filebucket backup /etc/passwd
|
98
114
|
/etc/passwd: 429b225650b912a2ee067b0a4cf1e949
|
99
115
|
$ puppet filebucket restore /tmp/passwd 429b225650b912a2ee067b0a4cf1e949
|
100
|
-
|
116
|
+
## Diff between two files in the filebucket
|
117
|
+
$ puppet filebucket -l diff d43a6ecaa892a1962398ac9170ea9bf2 7ae322f5791217e031dc60188f4521ef
|
118
|
+
1a2
|
119
|
+
> again
|
120
|
+
## Diff between the file in the filebucket and the current one
|
121
|
+
$ puppet filebucket -l diff d43a6ecaa892a1962398ac9170ea9bf2 /tmp/testFile
|
122
|
+
1a2
|
123
|
+
> again
|
124
|
+
$ puppet filebucket -l list
|
125
|
+
d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
|
126
|
+
$ echo again >> /tmp/TestFile
|
127
|
+
$ puppet filebucket -l backup /tmp/TestFile
|
128
|
+
/tmp/TestFile: 7ae322f5791217e031dc60188f4521ef
|
129
|
+
$ puppet filebucket -l list
|
130
|
+
d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
|
131
|
+
7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
|
132
|
+
$ puppet filebucket -l -f 2015-01-01 -t 2015-01-11 list
|
133
|
+
<Empty Output>
|
134
|
+
$ puppet filebucket -l -f 2015-05-10 list
|
135
|
+
d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
|
136
|
+
7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
|
137
|
+
$ puppet filebucket -l -f "2015-05-11 09:30:00" list
|
138
|
+
7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
|
139
|
+
$ puppet filebucket -l -t "2015-05-11 09:30:00" list
|
140
|
+
d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
|
101
141
|
|
102
142
|
AUTHOR
|
103
143
|
------
|
@@ -115,7 +155,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
115
155
|
def run_command
|
116
156
|
@args = command_line.args
|
117
157
|
command = args.shift
|
118
|
-
return send(command) if %w{get backup restore}.include? command
|
158
|
+
return send(command) if %w{get backup restore diff list}.include? command
|
119
159
|
help
|
120
160
|
end
|
121
161
|
|
@@ -142,12 +182,47 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
142
182
|
end
|
143
183
|
end
|
144
184
|
|
185
|
+
def list
|
186
|
+
fromdate = options[:fromdate]
|
187
|
+
todate = options[:todate]
|
188
|
+
out = @client.list(fromdate, todate)
|
189
|
+
print out
|
190
|
+
end
|
191
|
+
|
145
192
|
def restore
|
146
193
|
file = args.shift
|
147
194
|
md5 = args.shift
|
148
195
|
@client.restore(file, md5)
|
149
196
|
end
|
150
197
|
|
198
|
+
def diff
|
199
|
+
raise Puppet::Error, "Need exactly two arguments: filebucket diff <file_a> <file_b>" unless args.count == 2
|
200
|
+
left = args.shift
|
201
|
+
right = args.shift
|
202
|
+
if Puppet::FileSystem.exist?(left)
|
203
|
+
# It's a file
|
204
|
+
file_a = left
|
205
|
+
checksum_a = nil
|
206
|
+
else
|
207
|
+
file_a = nil
|
208
|
+
checksum_a = left
|
209
|
+
end
|
210
|
+
if Puppet::FileSystem.exist?(right)
|
211
|
+
# It's a file
|
212
|
+
file_b = right
|
213
|
+
checksum_b = nil
|
214
|
+
else
|
215
|
+
file_b = nil
|
216
|
+
checksum_b = right
|
217
|
+
end
|
218
|
+
if (checksum_a || file_a) && (checksum_b || file_b)
|
219
|
+
Puppet.info("Comparing #{checksum_a} #{checksum_b} #{file_a} #{file_b}")
|
220
|
+
print @client.diff(checksum_a, checksum_b, file_a, file_b)
|
221
|
+
else
|
222
|
+
raise Puppet::Error, "Need exactly two arguments: filebucket diff <file_a> <file_b>"
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
151
226
|
def setup
|
152
227
|
Puppet::Log.newdestination(:console)
|
153
228
|
|
@@ -181,4 +256,3 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
181
256
|
end
|
182
257
|
end
|
183
258
|
end
|
184
|
-
|