puppet 5.3.3-x86-mingw32 → 5.3.4-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/CONTRIBUTING.md +1 -1
- data/Gemfile +3 -0
- data/ext/puppet-test +3 -2
- data/lib/hiera/puppet_function.rb +5 -2
- data/lib/hiera_puppet.rb +3 -3
- data/lib/puppet.rb +2 -5
- data/lib/puppet/agent.rb +22 -2
- data/lib/puppet/agent/locker.rb +6 -5
- data/lib/puppet/application.rb +18 -1
- data/lib/puppet/application/agent.rb +9 -2
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/config.rb +1 -0
- data/lib/puppet/application/device.rb +1 -2
- data/lib/puppet/application/filebucket.rb +22 -5
- data/lib/puppet/application/help.rb +1 -0
- data/lib/puppet/application/lookup.rb +1 -3
- data/lib/puppet/application_support.rb +6 -1
- data/lib/puppet/bindings.rb +2 -1
- data/lib/puppet/configurer.rb +9 -4
- data/lib/puppet/configurer/downloader_factory.rb +10 -0
- data/lib/puppet/configurer/plugin_handler.rb +11 -4
- data/lib/puppet/daemon.rb +2 -2
- data/lib/puppet/defaults.rb +99 -27
- data/lib/puppet/environments.rb +2 -0
- data/lib/puppet/error.rb +5 -15
- data/lib/puppet/external/pson/common.rb +2 -2
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +14 -1
- data/lib/puppet/face/epp.rb +4 -2
- data/lib/puppet/face/help.rb +12 -14
- data/lib/puppet/face/man.rb +1 -0
- data/lib/puppet/face/module/build.rb +1 -1
- data/lib/puppet/face/module/list.rb +6 -17
- data/lib/puppet/face/module/uninstall.rb +14 -3
- data/lib/puppet/face/node.rb +1 -0
- data/lib/puppet/face/status.rb +1 -0
- data/lib/puppet/file_serving/base.rb +2 -1
- data/lib/puppet/file_serving/configuration.rb +3 -0
- data/lib/puppet/file_serving/configuration/parser.rb +23 -9
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/forge.rb +2 -1
- data/lib/puppet/forge/errors.rb +24 -22
- data/lib/puppet/functions/binary_file.rb +1 -0
- data/lib/puppet/functions/each.rb +10 -4
- data/lib/puppet/functions/eyaml_lookup_key.rb +4 -2
- data/lib/puppet/functions/lookup.rb +2 -2
- data/lib/puppet/functions/map.rb +12 -2
- data/lib/puppet/functions/slice.rb +2 -3
- data/lib/puppet/functions/unique.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +1 -1
- data/lib/puppet/gettext/config.rb +144 -41
- data/lib/puppet/gettext/module_translations.rb +42 -0
- data/lib/puppet/graph/relationship_graph.rb +1 -1
- data/lib/puppet/graph/simple_graph.rb +3 -3
- data/lib/puppet/indirector/catalog/compiler.rb +40 -25
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/network_device.rb +2 -2
- data/lib/puppet/indirector/file_bucket_file/file.rb +4 -1
- data/lib/puppet/indirector/indirection.rb +17 -9
- data/lib/puppet/indirector/ldap.rb +2 -2
- data/lib/puppet/indirector/node/write_only_yaml.rb +3 -1
- data/lib/puppet/indirector/rest.rb +8 -5
- data/lib/puppet/indirector/ssl_file.rb +2 -2
- data/lib/puppet/indirector/terminus.rb +3 -3
- data/lib/puppet/interface.rb +2 -1
- data/lib/puppet/interface/action.rb +41 -24
- data/lib/puppet/interface/action_builder.rb +14 -5
- data/lib/puppet/interface/action_manager.rb +1 -1
- data/lib/puppet/interface/documentation.rb +21 -10
- data/lib/puppet/interface/face_collection.rb +4 -2
- data/lib/puppet/interface/option.rb +36 -15
- data/lib/puppet/interface/option_builder.rb +23 -9
- data/lib/puppet/interface/option_manager.rb +8 -3
- data/lib/puppet/metatype/manager.rb +7 -3
- data/lib/puppet/module.rb +18 -21
- data/lib/puppet/module_tool/errors/installer.rb +18 -20
- data/lib/puppet/module_tool/errors/shared.rb +20 -15
- data/lib/puppet/module_tool/errors/uninstaller.rb +1 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
- data/lib/puppet/module_tool/tar/mini.rb +57 -4
- data/lib/puppet/network/auth_config_parser.rb +18 -13
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/client_request.rb +1 -1
- data/lib/puppet/network/format.rb +3 -3
- data/lib/puppet/network/http/api/indirection_type.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +5 -2
- data/lib/puppet/network/http/error.rb +7 -7
- data/lib/puppet/network/http/factory.rb +9 -0
- data/lib/puppet/network/http/rack.rb +2 -2
- data/lib/puppet/network/http/webrick.rb +2 -4
- data/lib/puppet/node.rb +25 -6
- data/lib/puppet/node/environment.rb +14 -0
- data/lib/puppet/node/facts.rb +9 -0
- data/lib/puppet/parameter.rb +3 -3
- data/lib/puppet/parameter/value_collection.rb +9 -9
- data/lib/puppet/parser/ast/leaf.rb +1 -1
- data/lib/puppet/parser/ast/node.rb +2 -2
- data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
- data/lib/puppet/parser/compiler.rb +6 -5
- data/lib/puppet/parser/functions.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -4
- data/lib/puppet/parser/functions/inline_template.rb +1 -2
- data/lib/puppet/parser/functions/sprintf.rb +17 -3
- data/lib/puppet/parser/functions/template.rb +6 -2
- data/lib/puppet/parser/resource.rb +30 -31
- data/lib/puppet/parser/scope.rb +20 -11
- data/lib/puppet/parser/templatewrapper.rb +4 -3
- data/lib/puppet/pops/evaluator/collector_transformer.rb +2 -1
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +21 -8
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +2 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -1
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +1 -1
- data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
- data/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/lib/puppet/pops/functions/function.rb +8 -2
- data/lib/puppet/pops/issue_reporter.rb +7 -2
- data/lib/puppet/pops/issues.rb +10 -4
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/loader/module_loaders.rb +5 -2
- data/lib/puppet/pops/loader/static_loader.rb +1 -1
- data/lib/puppet/pops/loaders.rb +7 -3
- data/lib/puppet/pops/lookup/explainer.rb +2 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +2 -2
- data/lib/puppet/pops/lookup/lookup_adapter.rb +4 -4
- data/lib/puppet/pops/merge_strategy.rb +6 -3
- data/lib/puppet/pops/migration/migration_checker.rb +8 -8
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +4 -2
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_writer.rb +2 -1
- data/lib/puppet/pops/types/iterable.rb +2 -0
- data/lib/puppet/pops/types/p_object_type.rb +36 -15
- data/lib/puppet/pops/types/type_calculator.rb +2 -1
- data/lib/puppet/pops/types/type_factory.rb +3 -1
- data/lib/puppet/pops/types/type_mismatch_describer.rb +19 -6
- data/lib/puppet/pops/types/type_parser.rb +7 -7
- data/lib/puppet/pops/types/types.rb +10 -4
- data/lib/puppet/pops/validation.rb +14 -12
- data/lib/puppet/property.rb +14 -6
- data/lib/puppet/property/ensure.rb +2 -2
- data/lib/puppet/provider.rb +4 -4
- data/lib/puppet/provider/group/aix.rb +4 -2
- data/lib/puppet/provider/ldap.rb +2 -2
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +7 -4
- data/lib/puppet/provider/nameservice/directoryservice.rb +4 -3
- data/lib/puppet/provider/package/aix.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +7 -8
- data/lib/puppet/provider/package/opkg.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +9 -6
- data/lib/puppet/provider/package/pkgutil.rb +3 -3
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +4 -4
- data/lib/puppet/provider/selmodule/semodule.rb +5 -3
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/init.rb +1 -1
- data/lib/puppet/provider/service/launchd.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +2 -0
- data/lib/puppet/provider/service/systemd.rb +1 -0
- data/lib/puppet/provider/service/upstart.rb +1 -1
- data/lib/puppet/provider/user/aix.rb +13 -6
- data/lib/puppet/provider/user/openbsd.rb +2 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -1
- data/lib/puppet/provider/zone/solaris.rb +2 -2
- data/lib/puppet/reference/configuration.rb +4 -2
- data/lib/puppet/relationship.rb +2 -1
- data/lib/puppet/reports/store.rb +1 -1
- data/lib/puppet/resource.rb +7 -5
- data/lib/puppet/resource/capability_finder.rb +14 -11
- data/lib/puppet/resource/catalog.rb +33 -18
- data/lib/puppet/resource/type.rb +5 -5
- data/lib/puppet/settings.rb +19 -13
- data/lib/puppet/settings/base_setting.rb +23 -8
- data/lib/puppet/settings/config_file.rb +14 -4
- data/lib/puppet/settings/environment_conf.rb +19 -9
- data/lib/puppet/ssl/base.rb +9 -4
- data/lib/puppet/ssl/oids.rb +8 -2
- data/lib/puppet/syntax_checkers/base64.rb +5 -6
- data/lib/puppet/transaction.rb +7 -3
- data/lib/puppet/transaction/persistence.rb +16 -1
- data/lib/puppet/transaction/report.rb +6 -0
- data/lib/puppet/type.rb +27 -35
- data/lib/puppet/type/file.rb +2 -1
- data/lib/puppet/type/file/data_sync.rb +2 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/group.rb +1 -1
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/schedule.rb +26 -14
- data/lib/puppet/type/user.rb +9 -3
- data/lib/puppet/type/zone.rb +1 -1
- data/lib/puppet/util.rb +27 -21
- data/lib/puppet/util/at_fork/solaris.rb +6 -4
- data/lib/puppet/util/command_line.rb +5 -0
- data/lib/puppet/util/command_line/trollop.rb +6 -5
- data/lib/puppet/util/errors.rb +61 -8
- data/lib/puppet/util/fileparsing.rb +3 -5
- data/lib/puppet/util/http_proxy.rb +14 -6
- data/lib/puppet/util/instance_loader.rb +1 -3
- data/lib/puppet/util/ldap/manager.rb +6 -3
- data/lib/puppet/util/log.rb +19 -24
- data/lib/puppet/util/logging.rb +21 -28
- data/lib/puppet/util/methodhelper.rb +1 -1
- data/lib/puppet/util/nagios_maker.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +21 -13
- data/lib/puppet/util/plist.rb +3 -1
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/selinux.rb +1 -1
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/windows/eventlog.rb +10 -5
- data/lib/puppet/util/windows/file.rb +61 -9
- data/lib/puppet/util/windows/process.rb +1 -1
- data/lib/puppet/util/windows/taskscheduler.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +5 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/en/puppet.po +19 -0
- data/locales/ja/puppet.po +2739 -809
- data/locales/puppet.pot +2367 -734
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +2 -0
- data/spec/integration/agent/logging_spec.rb +2 -0
- data/spec/integration/faces/plugin_spec.rb +1 -0
- data/spec/integration/network/authconfig_spec.rb +2 -2
- data/spec/integration/parser/collection_spec.rb +2 -2
- data/spec/integration/parser/scope_spec.rb +16 -3
- data/spec/integration/provider/cron/crontab_spec.rb +1 -0
- data/spec/integration/transaction/report_spec.rb +5 -0
- data/spec/lib/matchers/json.rb +14 -13
- data/spec/unit/agent_spec.rb +33 -0
- data/spec/unit/application/config_spec.rb +4 -0
- data/spec/unit/application/lookup_spec.rb +30 -0
- data/spec/unit/application_spec.rb +18 -0
- data/spec/unit/configurer/downloader_factory_spec.rb +33 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +71 -16
- data/spec/unit/environments_spec.rb +15 -0
- data/spec/unit/face/config_spec.rb +8 -9
- data/spec/unit/face/epp_face_spec.rb +2 -2
- data/spec/unit/face/plugin_spec.rb +50 -4
- data/spec/unit/file_serving/configuration/parser_spec.rb +2 -2
- data/spec/unit/file_serving/mount/locales_spec.rb +73 -0
- data/spec/unit/functions/break_spec.rb +108 -50
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/hiera_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +85 -19
- data/spec/unit/functions/next_spec.rb +1 -1
- data/spec/unit/functions/return_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +125 -0
- data/spec/unit/gettext/module_loading_spec.rb +53 -0
- data/spec/unit/indirector/json_spec.rb +0 -11
- data/spec/unit/indirector/node/exec_spec.rb +1 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface_spec.rb +12 -0
- data/spec/unit/module_spec.rb +0 -28
- data/spec/unit/module_tool/tar/mini_spec.rb +34 -5
- data/spec/unit/network/http/factory_spec.rb +22 -0
- data/spec/unit/network/http/webrick_spec.rb +30 -29
- data/spec/unit/node/environment_spec.rb +16 -0
- data/spec/unit/node_spec.rb +102 -16
- data/spec/unit/parser/environment_compiler_spec.rb +1 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +26 -0
- data/spec/unit/parser/resource/param_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +9 -9
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +40 -0
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +9 -0
- data/spec/unit/provider/selmodule_spec.rb +6 -0
- data/spec/unit/provider/service/init_spec.rb +1 -1
- data/spec/unit/provider/service/smf_spec.rb +2 -0
- data/spec/unit/provider/service/systemd_spec.rb +14 -0
- data/spec/unit/resource/catalog_spec.rb +12 -2
- data/spec/unit/settings/config_file_spec.rb +1 -1
- data/spec/unit/transaction/persistence_spec.rb +42 -0
- data/spec/unit/transaction/report_spec.rb +19 -4
- data/spec/unit/transaction_spec.rb +27 -0
- data/spec/unit/type/schedule_spec.rb +14 -0
- data/spec/unit/type_spec.rb +3 -3
- data/spec/unit/util/errors_spec.rb +1 -1
- data/spec/unit/util/http_proxy_spec.rb +37 -0
- data/spec/unit/util/log_spec.rb +3 -3
- data/spec/unit/util/logging_spec.rb +7 -7
- data/spec/unit/util/monkey_patches_spec.rb +6 -2
- metadata +3445 -3416
- checksums.yaml +0 -7
- data/spec/unit/gettext_config_spec.rb +0 -57
@@ -790,7 +790,9 @@ class Factory
|
|
790
790
|
end
|
791
791
|
else
|
792
792
|
# Bad number should already have been caught by lexer - this should never happen
|
793
|
-
|
793
|
+
#TRANSLATORS 'NUMBER' refers to a method name and the 'name_or_numeric' was the passed in value and should not be translated
|
794
|
+
raise ArgumentError, _("Internal Error, NUMBER token does not contain a valid number, %{name_or_numeric}") %
|
795
|
+
{ name_or_numeric: name_or_numeric }
|
794
796
|
end
|
795
797
|
end
|
796
798
|
|
@@ -1082,7 +1084,7 @@ class Factory
|
|
1082
1084
|
elsif e.is_a?(String)
|
1083
1085
|
result << e
|
1084
1086
|
else
|
1085
|
-
raise ArgumentError, "can only concatenate strings, got
|
1087
|
+
raise ArgumentError, _("can only concatenate strings, got %{class_name}") % { class_name: e.class }
|
1086
1088
|
end
|
1087
1089
|
end
|
1088
1090
|
infer(result)
|
@@ -164,7 +164,7 @@ class ResourceTypeImpl
|
|
164
164
|
# the 'package' type where 'provider' attribute is handled as part of the key without being
|
165
165
|
# set from the title.
|
166
166
|
#
|
167
|
-
raise Puppet::DevError,"you must specify title patterns when there are two or more key attributes"
|
167
|
+
raise Puppet::DevError, _("you must specify title patterns when there are two or more key attributes")
|
168
168
|
end
|
169
169
|
@title_patterns_hash.nil? ? [] : @title_patterns_hash.map { |k,v| [ k, v.map { |n| [ n.to_sym] } ] }
|
170
170
|
end
|
@@ -99,7 +99,8 @@ class AbstractWriter
|
|
99
99
|
#
|
100
100
|
# @api private
|
101
101
|
def write_tpl(ep, value)
|
102
|
-
|
102
|
+
#TRANSLATORS 'Integers' is a Ruby class for numbers and should not be translated
|
103
|
+
raise ArgumentError, _('Internal error. Integers cannot be tabulated in extension payload') if value.is_a?(Integer)
|
103
104
|
if @tabulate
|
104
105
|
index = @written[value]
|
105
106
|
if index.nil?
|
@@ -132,7 +132,10 @@ class PObjectType < PMetaType
|
|
132
132
|
def assert_override(parent_members)
|
133
133
|
parent_member = parent_members[@name]
|
134
134
|
if parent_member.nil?
|
135
|
-
|
135
|
+
if @override
|
136
|
+
raise Puppet::ParseError, _("expected %{label} to override an inherited %{feature_type}, but no such %{feature_type} was found") %
|
137
|
+
{ label: label, feature_type: feature_type }
|
138
|
+
end
|
136
139
|
self
|
137
140
|
else
|
138
141
|
parent_member.assert_can_be_overridden(self)
|
@@ -146,10 +149,19 @@ class PObjectType < PMetaType
|
|
146
149
|
# @raises [Puppet::ParseError] if the assertion fails
|
147
150
|
# @api private
|
148
151
|
def assert_can_be_overridden(member)
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
152
|
+
unless self.class == member.class
|
153
|
+
raise Puppet::ParseError, _("%{member} attempts to override %{label}") % { member: member.label, label: label }
|
154
|
+
end
|
155
|
+
if @final && !(constant? && member.constant?)
|
156
|
+
raise Puppet::ParseError, _("%{member} attempts to override final %{label}") % { member: member.label, label: label }
|
157
|
+
end
|
158
|
+
unless member.override?
|
159
|
+
#TRANSLATOR 'override => true' is a puppet syntax and should not be translated
|
160
|
+
raise Puppet::ParseError, _("%{member} attempts to override %{label} without having override => true") % { member: member.label, label: label }
|
161
|
+
end
|
162
|
+
unless @type.assignable?(member.type)
|
163
|
+
raise Puppet::ParseError, _("%{member} attempts to override %{label} with a type that does not match") % { member: member.label, label: label }
|
164
|
+
end
|
153
165
|
member
|
154
166
|
end
|
155
167
|
|
@@ -264,19 +276,20 @@ class PObjectType < PMetaType
|
|
264
276
|
@kind = init_hash[KEY_KIND]
|
265
277
|
if @kind == ATTRIBUTE_KIND_CONSTANT # final is implied
|
266
278
|
if init_hash.include?(KEY_FINAL) && !@final
|
267
|
-
|
279
|
+
#TRANSLATOR 'final => false' is puppet syntax and should not be translated
|
280
|
+
raise Puppet::ParseError, _("%{label} of kind 'constant' cannot be combined with final => false") % { label: label }
|
268
281
|
end
|
269
282
|
@final = true
|
270
283
|
end
|
271
284
|
|
272
285
|
if init_hash.include?(KEY_VALUE)
|
273
286
|
if @kind == ATTRIBUTE_KIND_DERIVED || @kind == ATTRIBUTE_KIND_GIVEN_OR_DERIVED
|
274
|
-
raise Puppet::ParseError, "
|
287
|
+
raise Puppet::ParseError, _("%{label} of kind '%{kind}' cannot be combined with an attribute value") % { label: label, kind: @kind }
|
275
288
|
end
|
276
289
|
v = init_hash[KEY_VALUE]
|
277
290
|
@value = v == :default ? v : TypeAsserter.assert_instance_of(nil, type, v) {"#{label} #{KEY_VALUE}" }
|
278
291
|
else
|
279
|
-
raise Puppet::ParseError, "
|
292
|
+
raise Puppet::ParseError, _("%{label} of kind 'constant' requires a value") % { label: label } if @kind == ATTRIBUTE_KIND_CONSTANT
|
280
293
|
@value = :undef # Not to be confused with nil or :default
|
281
294
|
end
|
282
295
|
end
|
@@ -618,7 +631,9 @@ class PObjectType < PMetaType
|
|
618
631
|
attr_specs = init_hash[KEY_ATTRIBUTES] || {}
|
619
632
|
unless constants.nil? || constants.empty?
|
620
633
|
constants.each do |key, value|
|
621
|
-
|
634
|
+
if attr_specs.include?(key)
|
635
|
+
raise Puppet::ParseError, _("attribute %{label}[%{key}] is defined as both a constant and an attribute") % { label: label, key: key }
|
636
|
+
end
|
622
637
|
attr_spec = {
|
623
638
|
# Type must be generic here, or overrides would become impossible
|
624
639
|
KEY_TYPE => TypeCalculator.infer(value).generalize,
|
@@ -649,7 +664,7 @@ class PObjectType < PMetaType
|
|
649
664
|
func_spec = { KEY_TYPE => TypeAsserter.assert_instance_of(nil, TYPE_FUNCTION_TYPE, func_spec) { "function #{label}[#{key}]" } } unless func_spec.is_a?(Hash)
|
650
665
|
func = PFunction.new(key, self, func_spec)
|
651
666
|
name = func.name
|
652
|
-
raise Puppet::ParseError, "
|
667
|
+
raise Puppet::ParseError, _("%{label} conflicts with attribute with the same name") % { label: func.label } if @attributes.include?(name)
|
653
668
|
[name, func.assert_override(parent_members)]
|
654
669
|
end].freeze
|
655
670
|
end
|
@@ -661,7 +676,8 @@ class PObjectType < PMetaType
|
|
661
676
|
equality = [equality] if equality.is_a?(String)
|
662
677
|
if equality.is_a?(Array)
|
663
678
|
unless equality.empty?
|
664
|
-
|
679
|
+
#TRANSLATORS equality_include_type = false should not be translated
|
680
|
+
raise Puppet::ParseError, _('equality_include_type = false cannot be combined with non empty equality specification') unless @equality_include_type
|
665
681
|
parent_eq_attrs = nil
|
666
682
|
equality.each do |attr_name|
|
667
683
|
|
@@ -673,16 +689,21 @@ class PObjectType < PMetaType
|
|
673
689
|
parent_eq_attrs ||= parent_object_type.equality_attributes
|
674
690
|
if parent_eq_attrs.include?(attr_name)
|
675
691
|
including_parent = find_equality_definer_of(attr)
|
676
|
-
raise Puppet::ParseError, "
|
692
|
+
raise Puppet::ParseError, _("%{label} equality is referencing %{attribute} which is included in equality of %{including_parent}") %
|
693
|
+
{ label: label, attribute: attr.label, including_parent: including_parent.label }
|
677
694
|
end
|
678
695
|
end
|
679
696
|
|
680
697
|
unless attr.is_a?(PAttribute)
|
681
|
-
|
682
|
-
|
698
|
+
if attr.nil?
|
699
|
+
raise Puppet::ParseError, _("%{label} equality is referencing non existent attribute '%{attribute}'") % { label: label, attribute: attr_name }
|
700
|
+
end
|
701
|
+
raise Puppet::ParseError, _("%{label} equality is referencing %{attribute}. Only attribute references are allowed") %
|
702
|
+
{ label: label, attribute: attr.label }
|
683
703
|
end
|
684
704
|
if attr.kind == ATTRIBUTE_KIND_CONSTANT
|
685
|
-
raise Puppet::ParseError, "
|
705
|
+
raise Puppet::ParseError, _("%{label} equality is referencing constant %{attribute}.") % { label: label, attribute: attr.label } + ' ' +
|
706
|
+
_("Reference to constant is not allowed in equality")
|
686
707
|
end
|
687
708
|
end
|
688
709
|
end
|
@@ -163,7 +163,8 @@ class TypeCalculator
|
|
163
163
|
|
164
164
|
# Returns an iterable if the t represents something that can be iterated
|
165
165
|
def enumerable(t)
|
166
|
-
|
166
|
+
#TRANSLATOR 'TypeCalculator.enumerable' and 'iterable' are methods and should not be translated
|
167
|
+
Puppet.deprecation_warning(_('TypeCalculator.enumerable is deprecated. Use iterable'))
|
167
168
|
iterable(t)
|
168
169
|
end
|
169
170
|
|
@@ -100,7 +100,9 @@ module TypeFactory
|
|
100
100
|
size_type_or_value.nil? ? PStringType::DEFAULT : PStringType.new(size_type_or_value)
|
101
101
|
else
|
102
102
|
if Puppet[:strict] != :off
|
103
|
-
|
103
|
+
#TRANSLATORS 'TypeFactory#string' is a class and method name and should not be translated
|
104
|
+
message = _("Passing more than one argument to TypeFactory#string is deprecated")
|
105
|
+
Puppet.warn_once('deprecations', "TypeFactory#string_multi_args", message)
|
104
106
|
end
|
105
107
|
deprecated_second_argument.size == 1 ? PStringType.new(deprecated_second_argument[0]) : PEnumType.new(*deprecated_second_argument)
|
106
108
|
end
|
@@ -286,8 +286,8 @@ module Types
|
|
286
286
|
a = detailed_actual_to_s(e, a)
|
287
287
|
e = e.map { |t| t.to_alias_expanded_s }
|
288
288
|
else
|
289
|
-
e = e.map { |t| t
|
290
|
-
a = a
|
289
|
+
e = e.map { |t| short_name(t) }.uniq
|
290
|
+
a = short_name(a)
|
291
291
|
end
|
292
292
|
e.insert(0, 'Undef') if optional
|
293
293
|
case e.size
|
@@ -305,8 +305,8 @@ module Types
|
|
305
305
|
a = detailed_actual_to_s(e, a)
|
306
306
|
e = e.to_alias_expanded_s
|
307
307
|
else
|
308
|
-
e = e
|
309
|
-
a = a
|
308
|
+
e = short_name(e)
|
309
|
+
a = short_name(a)
|
310
310
|
end
|
311
311
|
if optional
|
312
312
|
e = "Undef or #{e}"
|
@@ -326,6 +326,16 @@ module Types
|
|
326
326
|
|
327
327
|
private
|
328
328
|
|
329
|
+
def short_name(t)
|
330
|
+
# Ensure that Optional, NotUndef, Sensitive, and Type are reported with included
|
331
|
+
# type parameter.
|
332
|
+
if t.is_a?(PTypeWithContainedType) && !(t.type.nil? || t.type.class == PAnyType)
|
333
|
+
"#{t.name}[#{t.type.name}]"
|
334
|
+
else
|
335
|
+
t.name.nil? ? t.simple_name : t.name
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
329
339
|
# Answers the question if `e` is a specialized type of `a`
|
330
340
|
# @param e [PAnyType] the expected type
|
331
341
|
# @param a [PAnyType] the actual type
|
@@ -430,7 +440,7 @@ module Types
|
|
430
440
|
|
431
441
|
def actual_string
|
432
442
|
a = actual
|
433
|
-
a.is_a?(PStringType) && !a.value.nil? ? "'#{a.value}'" : a
|
443
|
+
a.is_a?(PStringType) && !a.value.nil? ? "'#{a.value}'" : short_name(a)
|
434
444
|
end
|
435
445
|
end
|
436
446
|
|
@@ -502,7 +512,10 @@ module Types
|
|
502
512
|
end
|
503
513
|
|
504
514
|
def tense_deprecated
|
505
|
-
|
515
|
+
#TRANSLATORS TypeMismatchDescriber is a class name and 'tense' is a method name and should not be translated
|
516
|
+
message = _("Passing a 'tense' argument to the TypeMismatchDescriber is deprecated and ignored.")
|
517
|
+
message += ' ' + _("Everything is now reported using present tense")
|
518
|
+
Puppet.warn_once('deprecations', 'typemismatch#tense', message)
|
506
519
|
end
|
507
520
|
|
508
521
|
# Validates that all entries in the give_hash exists in the given param_struct, that their type conforms
|
@@ -342,7 +342,7 @@ class TypeParser
|
|
342
342
|
when 'enum'
|
343
343
|
# 1..m parameters being strings
|
344
344
|
raise_invalid_parameters_error('Enum', '1 or more', parameters.size) unless parameters.size >= 1
|
345
|
-
parameters.each { |p|
|
345
|
+
parameters.each { |p| raise Puppet::ParseError, _('Enum parameters must be identifiers or strings') unless p.is_a?(String) }
|
346
346
|
TypeFactory.enum(*parameters)
|
347
347
|
|
348
348
|
when 'pattern'
|
@@ -565,21 +565,21 @@ class TypeParser
|
|
565
565
|
end
|
566
566
|
|
567
567
|
def raise_invalid_type_specification_error(ast)
|
568
|
-
raise Puppet::ParseError,
|
569
|
-
|
568
|
+
raise Puppet::ParseError, _("The expression <%{expression}> is not a valid type specification.") %
|
569
|
+
{ expression: original_text_of(ast) }
|
570
570
|
end
|
571
571
|
|
572
572
|
def raise_invalid_parameters_error(type, required, given)
|
573
|
-
raise Puppet::ParseError,
|
574
|
-
|
573
|
+
raise Puppet::ParseError, _("Invalid number of type parameters specified: %{type} requires %{required}, %{given} provided") %
|
574
|
+
{ type: type, required: required, given: given }
|
575
575
|
end
|
576
576
|
|
577
577
|
def raise_unparameterized_type_error(ast)
|
578
|
-
raise Puppet::ParseError, "Not a parameterized type
|
578
|
+
raise Puppet::ParseError, _("Not a parameterized type <%{type}>") % { type: original_text_of(ast) }
|
579
579
|
end
|
580
580
|
|
581
581
|
def raise_unknown_type_error(ast)
|
582
|
-
raise Puppet::ParseError, "Unknown type
|
582
|
+
raise Puppet::ParseError, _("Unknown type <%{type}>") % { type: original_text_of(ast) }
|
583
583
|
end
|
584
584
|
|
585
585
|
def original_text_of(ast)
|
@@ -939,7 +939,7 @@ class PNumericType < PScalarDataType
|
|
939
939
|
end
|
940
940
|
|
941
941
|
def instance?(o, guard = nil)
|
942
|
-
o.is_a?(
|
942
|
+
(o.is_a?(Float) || o.is_a?(Integer)) && o >= @from && o <= @to
|
943
943
|
end
|
944
944
|
|
945
945
|
def unbounded?
|
@@ -1341,6 +1341,8 @@ class PIterableType < PTypeWithContainedType
|
|
1341
1341
|
o >= 0
|
1342
1342
|
when PIntegerType
|
1343
1343
|
o.finite_range?
|
1344
|
+
when PTypeAliasType
|
1345
|
+
instance?(o.resolved_type, guard)
|
1344
1346
|
else
|
1345
1347
|
false
|
1346
1348
|
end
|
@@ -1427,7 +1429,9 @@ class PStringType < PScalarDataType
|
|
1427
1429
|
def initialize(size_type_or_value, deprecated_multi_args = EMPTY_ARRAY)
|
1428
1430
|
unless deprecated_multi_args.empty?
|
1429
1431
|
if Puppet[:strict] != :off
|
1430
|
-
|
1432
|
+
#TRANSLATORS 'PStringType#initialize' is a class and method name and should not be translated
|
1433
|
+
Puppet.warn_once('deprecations', "PStringType#initialize_multi_args",
|
1434
|
+
_("Passing more than one argument to PStringType#initialize is deprecated"))
|
1431
1435
|
end
|
1432
1436
|
size_type_or_value = deprecated_multi_args[0]
|
1433
1437
|
end
|
@@ -1480,7 +1484,8 @@ class PStringType < PScalarDataType
|
|
1480
1484
|
# @api private
|
1481
1485
|
def values
|
1482
1486
|
if Puppet[:strict] != :off
|
1483
|
-
|
1487
|
+
#TRANSLATORS 'PStringType#values' and '#value' are classes and method names and should not be translated
|
1488
|
+
Puppet.warn_once('deprecations', "PStringType#values", _("Method PStringType#values is deprecated. Use #value instead"))
|
1484
1489
|
end
|
1485
1490
|
@value.is_a?(String) ? [@value] : EMPTY_ARRAY
|
1486
1491
|
end
|
@@ -2599,8 +2604,9 @@ class PHashType < PCollectionType
|
|
2599
2604
|
|
2600
2605
|
def element_type
|
2601
2606
|
if Puppet[:strict] != :off
|
2607
|
+
#TRANSLATOR 'Puppet::Pops::Types::PHashType#element_type' and '#value_type' are class and method names and should not be translated
|
2602
2608
|
Puppet.warn_once('deprecations', 'Puppet::Pops::Types::PHashType#element_type',
|
2603
|
-
'Puppet::Pops::Types::PHashType#element_type is deprecated, use #value_type instead')
|
2609
|
+
_('Puppet::Pops::Types::PHashType#element_type is deprecated, use #value_type instead'))
|
2604
2610
|
end
|
2605
2611
|
@value_type
|
2606
2612
|
end
|
@@ -125,9 +125,15 @@ module Validation
|
|
125
125
|
# @api public
|
126
126
|
#
|
127
127
|
def []=(issue, level)
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
unless issue.is_a? Issues::Issue
|
129
|
+
raise Puppet::DevError.new(_("Attempt to set validation severity for something that is not an Issue. (Got %{issue})") % { issue: issue.class })
|
130
|
+
end
|
131
|
+
unless @@severity_hash[level]
|
132
|
+
raise Puppet::DevError.new(_("Illegal severity level: %{level} for '%{issue_code}'") % { issue_code: issue.issue_code, level: level })
|
133
|
+
end
|
134
|
+
unless issue.demotable? || level == :error
|
135
|
+
raise Puppet::DevError.new(_("Attempt to demote the hard issue '%{issue_code}' to %{level}") % { issue_code: issue.issue_code, level: level })
|
136
|
+
end
|
131
137
|
@severities[issue] = level
|
132
138
|
end
|
133
139
|
|
@@ -145,14 +151,9 @@ module Validation
|
|
145
151
|
# @api private
|
146
152
|
#
|
147
153
|
def assert_issue issue
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
# Checks if the given severity level is valid.
|
152
|
-
# @api private
|
153
|
-
#
|
154
|
-
def assert_severity level
|
155
|
-
raise Puppet::DevError.new("Illegal severity level: #{option}") unless @@severity_hash[level]
|
154
|
+
unless issue.is_a? Issues::Issue
|
155
|
+
raise Puppet::DevError.new(_("Attempt to get validation severity for something that is not an Issue. (Got %{issue})") % { issue: issue.class })
|
156
|
+
end
|
156
157
|
end
|
157
158
|
end
|
158
159
|
|
@@ -203,7 +204,8 @@ module Validation
|
|
203
204
|
# Accept an Error as semantic if it supports methods #file(), #line(), and #pos()
|
204
205
|
if semantic.is_a?(StandardError)
|
205
206
|
unless semantic.respond_to?(:file) && semantic.respond_to?(:line) && semantic.respond_to?(:pos)
|
206
|
-
raise Puppet::DevError("Issue
|
207
|
+
raise Puppet::DevError, _("Issue %{issue_code}: Cannot pass a %{class_name} as a semantic object when it does not support #pos(), #file() and #line()") %
|
208
|
+
{ issue_code: issue.issue_code, class_name: semantic.class }
|
207
209
|
end
|
208
210
|
end
|
209
211
|
|
data/lib/puppet/property.rb
CHANGED
@@ -95,7 +95,8 @@ class Puppet::Property < Puppet::Parameter
|
|
95
95
|
#
|
96
96
|
def array_matching=(value)
|
97
97
|
value = value.intern if value.is_a?(String)
|
98
|
-
|
98
|
+
#TRANSLATORS 'Property#array_matching', 'first', and 'all' should not be translated
|
99
|
+
raise ArgumentError, _("Supported values for Property#array_matching are 'first' and 'all'") unless [:first, :all].include?(value)
|
99
100
|
@array_matching = value
|
100
101
|
end
|
101
102
|
|
@@ -167,7 +168,7 @@ class Puppet::Property < Puppet::Parameter
|
|
167
168
|
method = value.method.to_sym
|
168
169
|
if value.block
|
169
170
|
if instance_methods(false).include?(method)
|
170
|
-
raise ArgumentError, "Attempt to redefine method
|
171
|
+
raise ArgumentError, _("Attempt to redefine method %{method} with block") % { method: method }
|
171
172
|
end
|
172
173
|
define_method(method, &value.block)
|
173
174
|
else
|
@@ -211,7 +212,7 @@ class Puppet::Property < Puppet::Parameter
|
|
211
212
|
rescue Puppet::Error, Puppet::DevError
|
212
213
|
raise
|
213
214
|
rescue => detail
|
214
|
-
message = "Could not convert change '
|
215
|
+
message = _("Could not convert change '%{name}' to string: %{detail}") % { name: name, detail: detail }
|
215
216
|
Puppet.log_exception(detail, message)
|
216
217
|
raise Puppet::DevError, message, detail.backtrace
|
217
218
|
end
|
@@ -367,7 +368,9 @@ class Puppet::Property < Puppet::Parameter
|
|
367
368
|
rescue => detail
|
368
369
|
# Certain operations may fail, but we don't want to fail the transaction if we can
|
369
370
|
# avoid it
|
370
|
-
|
371
|
+
#TRANSLATORS 'insync_values?' should not be translated
|
372
|
+
msg = _("Unknown failure using insync_values? on type: %{type} / property: %{name} to compare values %{should} and %{is}") %
|
373
|
+
{ type: self.resource.ref, name: self.name, should: should, is: is }
|
371
374
|
Puppet.info(msg)
|
372
375
|
|
373
376
|
# Return nil, ie. unknown
|
@@ -489,7 +492,8 @@ class Puppet::Property < Puppet::Parameter
|
|
489
492
|
rescue Puppet::Error
|
490
493
|
raise
|
491
494
|
rescue => detail
|
492
|
-
error = Puppet::ResourceError.new("Could not set '
|
495
|
+
error = Puppet::ResourceError.new(_("Could not set '%{value}' on %{class_name}: %{detail}") %
|
496
|
+
{ value: value, class_name: self.class.name, detail: detail }, @resource.file, @resource.line, detail)
|
493
497
|
error.set_backtrace detail.backtrace
|
494
498
|
Puppet.log_exception(detail, error.message)
|
495
499
|
raise error
|
@@ -584,7 +588,11 @@ class Puppet::Property < Puppet::Parameter
|
|
584
588
|
if features = self.class.value_option(self.class.value_name(value), :required_features)
|
585
589
|
features = Array(features)
|
586
590
|
needed_features = features.collect { |f| f.to_s }.join(", ")
|
587
|
-
|
591
|
+
unless provider.satisfies?(features)
|
592
|
+
#TRANSLATORS 'Provider' refers to a Puppet provider class
|
593
|
+
raise ArgumentError, _("Provider %{provider} must have features '%{needed_features}' to set '%{property}' to '%{value}'") %
|
594
|
+
{ provider: provider.class.name, needed_features: needed_features, property: self.class.name, value: value }
|
595
|
+
end
|
588
596
|
end
|
589
597
|
end
|
590
598
|
|
@@ -59,7 +59,7 @@ class Puppet::Property::Ensure < Puppet::Property
|
|
59
59
|
rescue Puppet::Error, Puppet::DevError
|
60
60
|
raise
|
61
61
|
rescue => detail
|
62
|
-
raise Puppet::DevError, "Could not convert change
|
62
|
+
raise Puppet::DevError, _("Could not convert change %{name} to string: %{detail}") % { name: self.name, detail: detail }, detail.backtrace
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -82,7 +82,7 @@ class Puppet::Property::Ensure < Puppet::Property
|
|
82
82
|
elsif @resource.respond_to?(:exists?)
|
83
83
|
result = @resource.exists?
|
84
84
|
else
|
85
|
-
raise Puppet::DevError, "No ability to determine if
|
85
|
+
raise Puppet::DevError, _("No ability to determine if %{name} exists") % { name: @resource.class.name }
|
86
86
|
end
|
87
87
|
if result
|
88
88
|
return :present
|