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
@@ -18,10 +18,10 @@ class Puppet::Node::Facts::NetworkDevice < Puppet::Indirector::Code
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def destroy(facts)
|
21
|
-
raise Puppet::DevError, "You cannot destroy facts in the code store; it is only used for getting facts from a remote device"
|
21
|
+
raise Puppet::DevError, _("You cannot destroy facts in the code store; it is only used for getting facts from a remote device")
|
22
22
|
end
|
23
23
|
|
24
24
|
def save(facts)
|
25
|
-
raise Puppet::DevError, "You cannot save facts to the code store; it is only used for getting facts from a remote device"
|
25
|
+
raise Puppet::DevError, _("You cannot save facts to the code store; it is only used for getting facts from a remote device")
|
26
26
|
end
|
27
27
|
end
|
@@ -29,6 +29,7 @@ module Puppet::FileBucketFile
|
|
29
29
|
raise _("Unable to diff on this platform") unless Puppet[:diff] != ""
|
30
30
|
return diff(Puppet::FileSystem.path_string(contents_file), Puppet::FileSystem.path_string(other_contents_file))
|
31
31
|
else
|
32
|
+
#TRANSLATORS "FileBucket" should not be translated
|
32
33
|
Puppet.info _("FileBucket read %{checksum}") % { checksum: checksum }
|
33
34
|
model.new(Puppet::FileSystem.binread(contents_file))
|
34
35
|
end
|
@@ -158,7 +159,8 @@ module Puppet::FileBucketFile
|
|
158
159
|
Puppet::FileSystem.exclusive_open(paths_file, 0640, 'a+:external') do |f|
|
159
160
|
if Puppet::FileSystem.exist?(contents_file)
|
160
161
|
if verify_identical_file(contents_file, bucket_file)
|
161
|
-
|
162
|
+
#TRANSLATORS "FileBucket" should not be translated
|
163
|
+
Puppet.info _("FileBucket got a duplicate file %{file_checksum}") % { file_checksum: bucket_file.checksum }
|
162
164
|
Puppet::FileSystem.touch(contents_file)
|
163
165
|
elsif contents_file_matches_checksum?(contents_file, bucket_file.checksum_data, bucket_file.checksum_type)
|
164
166
|
# If the contents or sizes don't match, but the checksum does,
|
@@ -167,6 +169,7 @@ module Puppet::FileBucketFile
|
|
167
169
|
# needed, but ask the user to validate.
|
168
170
|
# Note: Don't print the full path to the bucket file in the
|
169
171
|
# exception to avoid disclosing file system layout on server.
|
172
|
+
#TRANSLATORS "FileBucket" should not be translated
|
170
173
|
Puppet.err(_("Unable to verify existing FileBucket backup at '%{path}'.") % { path: contents_file.to_path })
|
171
174
|
raise Puppet::FileBucket::BucketError, _("Existing backup and new file have different content but same checksum, %{value}. Verify existing backup and remove if incorrect.") %
|
172
175
|
{ value: bucket_file.checksum }
|
@@ -37,7 +37,7 @@ class Puppet::Indirector::Indirection
|
|
37
37
|
|
38
38
|
# Create and return our cache terminus.
|
39
39
|
def cache
|
40
|
-
raise
|
40
|
+
raise Puppet::DevError, _("Tried to cache when no cache class was set") unless cache_class
|
41
41
|
terminus(cache_class)
|
42
42
|
end
|
43
43
|
|
@@ -97,7 +97,7 @@ class Puppet::Indirector::Indirection
|
|
97
97
|
@cache_class = nil
|
98
98
|
@terminus_class = nil
|
99
99
|
|
100
|
-
raise(ArgumentError, "Indirection
|
100
|
+
raise(ArgumentError, _("Indirection %{name} is already defined") % { name: @name }) if @@indirections.find { |i| i.name == @name }
|
101
101
|
@@indirections << self
|
102
102
|
|
103
103
|
@indirected_class = options.delete(:indirected_class)
|
@@ -118,7 +118,7 @@ class Puppet::Indirector::Indirection
|
|
118
118
|
# Return the singleton terminus for this indirection.
|
119
119
|
def terminus(terminus_name = nil)
|
120
120
|
# Get the name of the terminus.
|
121
|
-
raise Puppet::DevError, "No terminus specified for
|
121
|
+
raise Puppet::DevError, _("No terminus specified for %{name}; cannot redirect") % { name: self.name } unless terminus_name ||= terminus_class
|
122
122
|
|
123
123
|
termini[terminus_name] ||= make_terminus(terminus_name)
|
124
124
|
end
|
@@ -132,7 +132,7 @@ class Puppet::Indirector::Indirection
|
|
132
132
|
if setting = self.terminus_setting
|
133
133
|
self.terminus_class = Puppet.settings[setting]
|
134
134
|
else
|
135
|
-
raise Puppet::DevError, "No terminus class nor terminus setting was provided for indirection
|
135
|
+
raise Puppet::DevError, _("No terminus class nor terminus setting was provided for indirection %{name}") % { name: self.name}
|
136
136
|
end
|
137
137
|
end
|
138
138
|
@terminus_class
|
@@ -150,9 +150,12 @@ class Puppet::Indirector::Indirection
|
|
150
150
|
|
151
151
|
# This is used by terminus_class= and cache=.
|
152
152
|
def validate_terminus_class(terminus_class)
|
153
|
-
|
153
|
+
unless terminus_class and terminus_class.to_s != ""
|
154
|
+
raise ArgumentError, _("Invalid terminus name %{terminus_class}") % { terminus_class: terminus_class.inspect }
|
155
|
+
end
|
154
156
|
unless Puppet::Indirector::Terminus.terminus_class(self.name, terminus_class)
|
155
|
-
raise ArgumentError, "Could not find terminus
|
157
|
+
raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{name}") %
|
158
|
+
{ terminus_class: terminus_class, name: self.name }
|
156
159
|
end
|
157
160
|
end
|
158
161
|
|
@@ -268,7 +271,7 @@ class Puppet::Indirector::Indirection
|
|
268
271
|
terminus = prepare(request)
|
269
272
|
|
270
273
|
if result = terminus.search(request)
|
271
|
-
raise Puppet::DevError, "Search results from terminus
|
274
|
+
raise Puppet::DevError, _("Search results from terminus %{terminus_name} are not an array") % { terminus_name: terminus.name } unless result.is_a?(Array)
|
272
275
|
result.each do |instance|
|
273
276
|
next unless instance.respond_to? :expiration
|
274
277
|
instance.expiration ||= self.expiration
|
@@ -304,8 +307,13 @@ class Puppet::Indirector::Indirection
|
|
304
307
|
return unless terminus.respond_to?(:authorized?)
|
305
308
|
|
306
309
|
unless terminus.authorized?(request)
|
307
|
-
msg =
|
308
|
-
|
310
|
+
msg = if request.options.empty?
|
311
|
+
_("Not authorized to call %{method} on %{description}") %
|
312
|
+
{ method: request.method, description: request.description }
|
313
|
+
else
|
314
|
+
_("Not authorized to call %{method} on %{description} with %{option}") %
|
315
|
+
{ method: request.method, description: request.description, option: request.options.inspect }
|
316
|
+
end
|
309
317
|
raise ArgumentError, msg
|
310
318
|
end
|
311
319
|
end
|
@@ -10,7 +10,7 @@ class Puppet::Indirector::Ldap < Puppet::Indirector::Terminus
|
|
10
10
|
# Process the found entry. We assume that we don't just want the
|
11
11
|
# ldap object.
|
12
12
|
def process(entry)
|
13
|
-
raise Puppet::DevError, "The 'process' method has not been overridden for the LDAP terminus for
|
13
|
+
raise Puppet::DevError, _("The 'process' method has not been overridden for the LDAP terminus for %{name}") % { name: self.name }
|
14
14
|
end
|
15
15
|
|
16
16
|
# Default to all attributes.
|
@@ -24,7 +24,7 @@ class Puppet::Indirector::Ldap < Puppet::Indirector::Terminus
|
|
24
24
|
|
25
25
|
# The ldap search filter to use.
|
26
26
|
def search_filter(name)
|
27
|
-
raise Puppet::DevError, "No search string set for LDAP terminus for
|
27
|
+
raise Puppet::DevError, _("No search string set for LDAP terminus for %{name}") % { name: self.name }
|
28
28
|
end
|
29
29
|
|
30
30
|
# Find the ldap node, return the class list and parent node specially,
|
@@ -12,7 +12,9 @@ require 'puppet/indirector/yaml'
|
|
12
12
|
#
|
13
13
|
class Puppet::Node::WriteOnlyYaml < Puppet::Indirector::Yaml
|
14
14
|
def initialize
|
15
|
-
|
15
|
+
#TRANSLATORS 'Puppet::Node::WriteOnlyYaml' is a class and should not be translated
|
16
|
+
message = _('Puppet::Node::WriteOnlyYaml is deprecated and will be removed in a future release of Puppet.')
|
17
|
+
Puppet.warn_once('deprecations', 'Puppet::Node::WriteOnlyYaml', message)
|
16
18
|
super
|
17
19
|
end
|
18
20
|
|
@@ -262,11 +262,14 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
262
262
|
|
263
263
|
def handle_response(request, response)
|
264
264
|
server_version = response[Puppet::Network::HTTP::HEADER_PUPPET_VERSION]
|
265
|
-
if server_version
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
265
|
+
if server_version
|
266
|
+
Puppet.push_context({:server_agent_version => server_version})
|
267
|
+
if SemanticPuppet::Version.parse(server_version).major < MAJOR_VERSION_JSON_DEFAULT &&
|
268
|
+
Puppet[:preferred_serialization_format] != 'pson'
|
269
|
+
#TRANSLATORS "PSON" should not be translated
|
270
|
+
Puppet.warning(_("Downgrading to PSON for future requests"))
|
271
|
+
Puppet[:preferred_serialization_format] = 'pson'
|
272
|
+
end
|
270
273
|
end
|
271
274
|
end
|
272
275
|
|
@@ -49,7 +49,7 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
49
49
|
def initialize
|
50
50
|
Puppet.settings.use(:main, :ssl)
|
51
51
|
|
52
|
-
(collection_directory || file_location) or raise Puppet::DevError, "No file or directory setting provided; terminus
|
52
|
+
(collection_directory || file_location) or raise Puppet::DevError, _("No file or directory setting provided; terminus %{class_name} cannot function") % { class_name: self.class.name }
|
53
53
|
end
|
54
54
|
|
55
55
|
def path(name)
|
@@ -190,7 +190,7 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
190
190
|
raise Puppet::Error, _("Could not write %{path} to %{setting}: %{detail}") % { path: path, setting: setting, detail: detail }, detail.backtrace
|
191
191
|
end
|
192
192
|
else
|
193
|
-
raise Puppet::DevError, "You must provide a setting to determine where the files are stored"
|
193
|
+
raise Puppet::DevError, _("You must provide a setting to determine where the files are stored")
|
194
194
|
end
|
195
195
|
end
|
196
196
|
end
|
@@ -46,7 +46,7 @@ class Puppet::Indirector::Terminus
|
|
46
46
|
def inherited(subclass)
|
47
47
|
longname = subclass.to_s
|
48
48
|
if longname =~ /#<Class/
|
49
|
-
raise Puppet::DevError, "Terminus subclasses must have associated constants"
|
49
|
+
raise Puppet::DevError, _("Terminus subclasses must have associated constants")
|
50
50
|
end
|
51
51
|
names = longname.split("::")
|
52
52
|
|
@@ -71,7 +71,7 @@ class Puppet::Indirector::Terminus
|
|
71
71
|
processed_name = names.pop.sub(/^[A-Z]/) { |i| i.downcase }.gsub(/[A-Z]/) { |i| "_#{i.downcase}" }
|
72
72
|
|
73
73
|
if processed_name.empty?
|
74
|
-
raise Puppet::DevError, "Could not discern indirection model from class constant"
|
74
|
+
raise Puppet::DevError, _("Could not discern indirection model from class constant")
|
75
75
|
end
|
76
76
|
|
77
77
|
# This will throw an exception if the indirection instance cannot be found.
|
@@ -129,7 +129,7 @@ class Puppet::Indirector::Terminus
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def initialize
|
132
|
-
raise Puppet::DevError, "Cannot create instances of abstract terminus types" if self.class.abstract_terminus?
|
132
|
+
raise Puppet::DevError, _("Cannot create instances of abstract terminus types") if self.class.abstract_terminus?
|
133
133
|
end
|
134
134
|
|
135
135
|
def model
|
data/lib/puppet/interface.rb
CHANGED
@@ -149,7 +149,7 @@ class Puppet::Interface
|
|
149
149
|
# @api private
|
150
150
|
def initialize(name, version, &block)
|
151
151
|
unless SemanticPuppet::Version.valid?(version)
|
152
|
-
raise ArgumentError, "Cannot create face
|
152
|
+
raise ArgumentError, _("Cannot create face %{name} with invalid version number '%{version}'!") % { name: name.inspect, version: version }
|
153
153
|
end
|
154
154
|
|
155
155
|
@name = Puppet::Interface::FaceCollection.underscorize(name)
|
@@ -178,6 +178,7 @@ class Puppet::Interface
|
|
178
178
|
def to_s
|
179
179
|
"Puppet::Face[#{name.inspect}, #{version.inspect}]"
|
180
180
|
end
|
181
|
+
alias_method :inspect, :to_s
|
181
182
|
|
182
183
|
# @return [void]
|
183
184
|
def deprecate
|
@@ -78,7 +78,7 @@ class Puppet::Interface::Action
|
|
78
78
|
# @api private
|
79
79
|
def when_rendering(type)
|
80
80
|
unless type.is_a? Symbol
|
81
|
-
raise ArgumentError, "The rendering format must be a symbol, not
|
81
|
+
raise ArgumentError, _("The rendering format must be a symbol, not %{class_name}") % { class_name: type.class.name }
|
82
82
|
end
|
83
83
|
# Do we have a rendering hook for this name?
|
84
84
|
return @when_rendering[type].bind(@face) if @when_rendering.has_key? type
|
@@ -94,28 +94,38 @@ class Puppet::Interface::Action
|
|
94
94
|
# @api private
|
95
95
|
def set_rendering_method_for(type, proc)
|
96
96
|
unless proc.is_a? Proc
|
97
|
-
msg =
|
98
|
-
|
97
|
+
msg = if proc.nil?
|
98
|
+
#TRANSLATORS 'set_rendering_method_for' and 'Proc' should not be translated
|
99
|
+
_("The second argument to set_rendering_method_for must be a Proc")
|
100
|
+
else
|
101
|
+
#TRANSLATORS 'set_rendering_method_for' and 'Proc' should not be translated
|
102
|
+
_("The second argument to set_rendering_method_for must be a Proc, not %{class_name}") %
|
103
|
+
{ class_name: proc.class.name }
|
104
|
+
end
|
99
105
|
raise ArgumentError, msg
|
100
106
|
end
|
101
107
|
|
102
108
|
if proc.arity != 1 and proc.arity != (@positional_arg_count + 1)
|
103
|
-
msg =
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
109
|
+
msg = if proc.arity < 0 then
|
110
|
+
#TRANSLATORS 'when_rendering', 'when_invoked' are method names and should not be translated
|
111
|
+
_("The when_rendering method for the %{face} face %{name} action takes either just one argument,"\
|
112
|
+
" the result of when_invoked, or the result plus the %{arg_count} arguments passed to the"\
|
113
|
+
" when_invoked block, not a variable number") %
|
114
|
+
{ face: @face.name, name: name, arg_count: @positional_arg_count }
|
115
|
+
else
|
116
|
+
#TRANSLATORS 'when_rendering', 'when_invoked' are method names and should not be translated
|
117
|
+
_("The when_rendering method for the %{face} face %{name} action takes either just one argument,"\
|
118
|
+
" the result of when_invoked, or the result plus the %{arg_count} arguments passed to the"\
|
119
|
+
" when_invoked block, not %{string}") %
|
120
|
+
{ face: @face.name, name: name, arg_count: @positional_arg_count, string: proc.arity.to_s }
|
121
|
+
end
|
112
122
|
raise ArgumentError, msg
|
113
123
|
end
|
114
124
|
unless type.is_a? Symbol
|
115
|
-
raise ArgumentError, "The rendering format must be a symbol, not
|
125
|
+
raise ArgumentError, _("The rendering format must be a symbol, not %{class_name}") % { class_name: type.class.name }
|
116
126
|
end
|
117
127
|
if @when_rendering.has_key? type then
|
118
|
-
raise ArgumentError, "You can't define a rendering method for
|
128
|
+
raise ArgumentError, _("You can't define a rendering method for %{type} twice") % { type: type }
|
119
129
|
end
|
120
130
|
# Now, the ugly bit. We add the method to our interface object, and
|
121
131
|
# retrieve it, to rotate through the dance of getting a suitable method
|
@@ -213,7 +223,8 @@ class Puppet::Interface::Action
|
|
213
223
|
# but will on 1.9.2, which treats it as "no arguments". Which bites,
|
214
224
|
# because this just begs for us to wind up in the horrible situation
|
215
225
|
# where a 1.8 vs 1.9 error bites our end users. --daniel 2011-04-19
|
216
|
-
|
226
|
+
#TRANSLATORS 'when_invoked' should not be translated
|
227
|
+
raise ArgumentError, _("when_invoked requires at least one argument (options) for action %{name}") % { name: @name }
|
217
228
|
elsif arity > 0 then
|
218
229
|
range = Range.new(1, arity - 1)
|
219
230
|
decl = range.map { |x| "arg#{x}" } << "options = {}"
|
@@ -259,9 +270,11 @@ WRAPPER
|
|
259
270
|
def add_option(option)
|
260
271
|
option.aliases.each do |name|
|
261
272
|
if conflict = get_option(name) then
|
262
|
-
raise ArgumentError, "Option
|
273
|
+
raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict}") %
|
274
|
+
{ option: option, conflict: conflict }
|
263
275
|
elsif conflict = @face.get_option(name) then
|
264
|
-
raise ArgumentError, "Option
|
276
|
+
raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict} on %{face}") %
|
277
|
+
{ option: option, conflict: conflict, face: @face }
|
265
278
|
end
|
266
279
|
end
|
267
280
|
|
@@ -285,7 +298,10 @@ WRAPPER
|
|
285
298
|
def add_display_global_options(*args)
|
286
299
|
@display_global_options ||= []
|
287
300
|
[args].flatten.each do |refopt|
|
288
|
-
|
301
|
+
unless Puppet.settings.include? refopt
|
302
|
+
#TRANSLATORS 'Puppet.settings' should not be translated
|
303
|
+
raise ArgumentError, _("Global option %{option} does not exist in Puppet.settings") % { option: refopt }
|
304
|
+
end
|
289
305
|
@display_global_options << refopt
|
290
306
|
end
|
291
307
|
@display_global_options.uniq!
|
@@ -331,13 +347,14 @@ WRAPPER
|
|
331
347
|
end
|
332
348
|
|
333
349
|
unless overlap.empty?
|
334
|
-
|
335
|
-
raise ArgumentError, "Multiple aliases for the same option passed:
|
350
|
+
overlap_list = overlap.map {|k, v| "(#{k}, #{v.sort.join(', ')})" }.join(", ")
|
351
|
+
raise ArgumentError, _("Multiple aliases for the same option passed: %{overlap_list}") %
|
352
|
+
{ overlap_list: overlap_list }
|
336
353
|
end
|
337
354
|
|
338
355
|
unless unknown.empty?
|
339
|
-
|
340
|
-
raise ArgumentError, "Unknown options passed:
|
356
|
+
unknown_list = unknown.sort.join(", ")
|
357
|
+
raise ArgumentError, _("Unknown options passed: %{unknown_list}") % { unknown_list: unknown_list }
|
341
358
|
end
|
342
359
|
|
343
360
|
# Inject default arguments and check for missing mandating options.
|
@@ -354,8 +371,8 @@ WRAPPER
|
|
354
371
|
end
|
355
372
|
|
356
373
|
unless missing.empty?
|
357
|
-
|
358
|
-
raise ArgumentError, "The following options are required:
|
374
|
+
missing_list = missing.sort.join(', ')
|
375
|
+
raise ArgumentError, _("The following options are required: %{missing_list}") % { missing_list: missing_list }
|
359
376
|
end
|
360
377
|
|
361
378
|
# All done.
|
@@ -49,10 +49,12 @@ class Puppet::Interface::ActionBuilder
|
|
49
49
|
# @dsl Faces
|
50
50
|
def when_rendering(type = nil, &block)
|
51
51
|
if type.nil? then # the default error message sucks --daniel 2011-04-18
|
52
|
-
|
52
|
+
#TRANSLATORS 'when_rendering' is a method name and should not be translated
|
53
|
+
raise ArgumentError, _('You must give a rendering format to when_rendering')
|
53
54
|
end
|
54
55
|
if block.nil? then
|
55
|
-
|
56
|
+
#TRANSLATORS 'when_rendering' is a method name and should not be translated
|
57
|
+
raise ArgumentError, _('You must give a block to when_rendering')
|
56
58
|
end
|
57
59
|
@action.set_rendering_method_for(type, block)
|
58
60
|
end
|
@@ -111,11 +113,15 @@ class Puppet::Interface::ActionBuilder
|
|
111
113
|
# Sets the default rendering format
|
112
114
|
# @api private
|
113
115
|
def render_as(value = nil)
|
114
|
-
value.nil?
|
116
|
+
if value.nil?
|
117
|
+
#TRANSLATORS 'render_as' is a method name and should not be translated
|
118
|
+
raise ArgumentError, _("You must give a rendering format to render_as")
|
119
|
+
end
|
115
120
|
|
116
121
|
formats = Puppet::Network::FormatHandler.formats
|
117
122
|
unless formats.include? value
|
118
|
-
raise ArgumentError, "
|
123
|
+
raise ArgumentError, _("%{value} is not a valid rendering format: %{formats_list}") %
|
124
|
+
{ value: value.inspect, formats_list: formats.sort.join(", ")}
|
119
125
|
end
|
120
126
|
|
121
127
|
@action.render_as = value
|
@@ -144,6 +150,9 @@ class Puppet::Interface::ActionBuilder
|
|
144
150
|
@face = face
|
145
151
|
@action = Puppet::Interface::Action.new(face, name)
|
146
152
|
instance_eval(&block)
|
147
|
-
@action.when_invoked
|
153
|
+
unless @action.when_invoked
|
154
|
+
#TRANSLATORS 'when_invoked' is a method name and should not be translated and 'block' is a Ruby code block
|
155
|
+
raise ArgumentError, _("actions need to know what to do when_invoked; please add the block")
|
156
|
+
end
|
148
157
|
end
|
149
158
|
end
|
@@ -17,7 +17,7 @@ module Puppet::Interface::ActionManager
|
|
17
17
|
# @dsl Faces
|
18
18
|
def action(name, &block)
|
19
19
|
@actions ||= {}
|
20
|
-
Puppet.warning "Redefining action
|
20
|
+
Puppet.warning _("Redefining action %{name} for %{self}") % { name: name, self: self } if action?(name)
|
21
21
|
|
22
22
|
action = Puppet::Interface::ActionBuilder.build(self, name, &block)
|
23
23
|
|
@@ -56,7 +56,8 @@ class Puppet::Interface
|
|
56
56
|
# @dsl Faces
|
57
57
|
attr_doc :summary do |value|
|
58
58
|
value =~ /\n/ and
|
59
|
-
|
59
|
+
#TRANSLATORS 'Face' refers to a programming API in Puppet, 'summary' and 'description' are specifc attribute names and should not be translated
|
60
|
+
raise ArgumentError, _("Face summary should be a single line; put the long text in 'description' instead.")
|
60
61
|
value
|
61
62
|
end
|
62
63
|
|
@@ -200,11 +201,13 @@ class Puppet::Interface
|
|
200
201
|
def author(value = nil)
|
201
202
|
unless value.nil? then
|
202
203
|
unless value.is_a? String
|
203
|
-
|
204
|
+
#TRANSLATORS 'author' is an attribute name and should not be translated
|
205
|
+
raise ArgumentError, _('author must be a string; use multiple statements for multiple authors')
|
204
206
|
end
|
205
207
|
|
206
208
|
if value =~ /\n/ then
|
207
|
-
|
209
|
+
#TRANSLATORS 'author' is an attribute name and should not be translated
|
210
|
+
raise ArgumentError, _('author should be a single line; use multiple statements for multiple authors')
|
208
211
|
end
|
209
212
|
@authors.push(Puppet::Interface::DocGen.strip_whitespace(value))
|
210
213
|
end
|
@@ -223,7 +226,8 @@ class Puppet::Interface
|
|
223
226
|
# I think it's a bug that this ends up being the exposed
|
224
227
|
# version of `author` on ActionBuilder
|
225
228
|
if Array(value).any? {|x| x =~ /\n/ } then
|
226
|
-
|
229
|
+
#TRANSLATORS 'author' is an attribute name and should not be translated
|
230
|
+
raise ArgumentError, _('author should be a single line; use multiple statements')
|
227
231
|
end
|
228
232
|
@authors = Array(value).map{|x| Puppet::Interface::DocGen.strip_whitespace(x) }
|
229
233
|
end
|
@@ -243,7 +247,8 @@ class Puppet::Interface
|
|
243
247
|
# @dsl Faces
|
244
248
|
def copyright(owner = nil, years = nil)
|
245
249
|
if years.nil? and not owner.nil? then
|
246
|
-
|
250
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
251
|
+
raise ArgumentError, _('copyright takes the owners names, then the years covered')
|
247
252
|
end
|
248
253
|
self.copyright_owner = owner unless owner.nil?
|
249
254
|
self.copyright_years = years unless years.nil?
|
@@ -266,7 +271,8 @@ class Puppet::Interface
|
|
266
271
|
when String then @copyright_owner = value
|
267
272
|
when Array then @copyright_owner = value.join(", ")
|
268
273
|
else
|
269
|
-
|
274
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
275
|
+
raise ArgumentError, _("copyright owner must be a string or an array of strings")
|
270
276
|
end
|
271
277
|
@copyright_owner
|
272
278
|
end
|
@@ -302,7 +308,9 @@ class Puppet::Interface
|
|
302
308
|
fault = "after #{future}"
|
303
309
|
end
|
304
310
|
if fault then
|
305
|
-
|
311
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
312
|
+
raise ArgumentError, _("copyright with a year %{value} is very strange; did you accidentally add or subtract two years?") %
|
313
|
+
{ value: fault }
|
306
314
|
end
|
307
315
|
|
308
316
|
input
|
@@ -314,11 +322,13 @@ class Puppet::Interface
|
|
314
322
|
part.to_i
|
315
323
|
elsif found = part.split(/-/) then
|
316
324
|
unless found.length == 2 and found.all? {|x| x.strip =~ /^\d+$/ }
|
317
|
-
|
325
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
326
|
+
raise ArgumentError, _("%{value} is not a good copyright year or range") % { value: part.inspect }
|
318
327
|
end
|
319
328
|
Range.new(found[0].to_i, found[1].to_i)
|
320
329
|
else
|
321
|
-
|
330
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
331
|
+
raise ArgumentError, _("%{value} is not a good copyright year or range") % { value: part.inspect }
|
322
332
|
end
|
323
333
|
end
|
324
334
|
|
@@ -335,7 +345,8 @@ class Puppet::Interface
|
|
335
345
|
result
|
336
346
|
|
337
347
|
else
|
338
|
-
|
348
|
+
#TRANSLATORS 'copyright' is an attribute name and should not be translated
|
349
|
+
raise ArgumentError, _("%{value} is not a good copyright year, set, or range") % { value: input.inspect }
|
339
350
|
end
|
340
351
|
end
|
341
352
|
end
|