puppet 5.5.17-x86-mingw32 → 5.5.18-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.

Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +1 -1
  3. data/Gemfile +2 -3
  4. data/Gemfile.lock +35 -31
  5. data/ext/build_defaults.yaml +1 -0
  6. data/ext/cert_inspector +3 -3
  7. data/ext/puppet-test +2 -2
  8. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  9. data/ext/windows/service/daemon.rb +54 -8
  10. data/install.rb +6 -6
  11. data/lib/puppet/application.rb +1 -1
  12. data/lib/puppet/application/apply.rb +2 -2
  13. data/lib/puppet/application/describe.rb +3 -9
  14. data/lib/puppet/application/doc.rb +1 -1
  15. data/lib/puppet/application/lookup.rb +1 -1
  16. data/lib/puppet/application/script.rb +2 -2
  17. data/lib/puppet/configurer.rb +86 -28
  18. data/lib/puppet/configurer/downloader.rb +2 -6
  19. data/lib/puppet/defaults.rb +17 -4
  20. data/lib/puppet/error.rb +9 -1
  21. data/lib/puppet/external/nagios/base.rb +1 -1
  22. data/lib/puppet/face/ca.rb +1 -1
  23. data/lib/puppet/face/module/list.rb +5 -5
  24. data/lib/puppet/face/module/search.rb +1 -1
  25. data/lib/puppet/face/module/uninstall.rb +1 -1
  26. data/lib/puppet/face/module/upgrade.rb +1 -1
  27. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  28. data/lib/puppet/file_system.rb +0 -8
  29. data/lib/puppet/file_system/memory_file.rb +1 -1
  30. data/lib/puppet/file_system/posix.rb +3 -2
  31. data/lib/puppet/forge.rb +3 -3
  32. data/lib/puppet/functions/epp.rb +4 -4
  33. data/lib/puppet/functions/inline_epp.rb +5 -5
  34. data/lib/puppet/gettext/module_translations.rb +1 -1
  35. data/lib/puppet/graph/rb_tree_map.rb +2 -2
  36. data/lib/puppet/graph/simple_graph.rb +6 -5
  37. data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
  38. data/lib/puppet/indirector/hiera.rb +2 -0
  39. data/lib/puppet/indirector/resource/ral.rb +1 -3
  40. data/lib/puppet/indirector/resource/validator.rb +1 -1
  41. data/lib/puppet/interface.rb +2 -1
  42. data/lib/puppet/loaders.rb +0 -1
  43. data/lib/puppet/metatype/manager.rb +1 -1
  44. data/lib/puppet/module.rb +1 -1
  45. data/lib/puppet/module_tool/applications/builder.rb +1 -1
  46. data/lib/puppet/module_tool/applications/installer.rb +1 -1
  47. data/lib/puppet/module_tool/applications/uninstaller.rb +3 -3
  48. data/lib/puppet/module_tool/metadata.rb +1 -1
  49. data/lib/puppet/module_tool/shared_behaviors.rb +4 -4
  50. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  51. data/lib/puppet/network/http/api/indirected_routes.rb +12 -11
  52. data/lib/puppet/network/http/connection.rb +10 -12
  53. data/lib/puppet/network/http/pool.rb +2 -0
  54. data/lib/puppet/network/http/rack/rest.rb +2 -2
  55. data/lib/puppet/network/http/site.rb +1 -1
  56. data/lib/puppet/network/resolver.rb +2 -2
  57. data/lib/puppet/node/environment.rb +4 -2
  58. data/lib/puppet/parser/ast.rb +1 -1
  59. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  60. data/lib/puppet/parser/functions.rb +1 -1
  61. data/lib/puppet/parser/functions/epp.rb +3 -3
  62. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  63. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  64. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
  65. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  66. data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
  67. data/lib/puppet/pops/loaders.rb +1 -1
  68. data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
  69. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  70. data/lib/puppet/pops/merge_strategy.rb +22 -18
  71. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  72. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  73. data/lib/puppet/pops/parser/locator.rb +1 -1
  74. data/lib/puppet/pops/parser/pn_parser.rb +17 -16
  75. data/lib/puppet/pops/puppet_stack.rb +51 -48
  76. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  77. data/lib/puppet/pops/types/string_converter.rb +10 -10
  78. data/lib/puppet/pops/types/types.rb +3 -3
  79. data/lib/puppet/property.rb +1 -1
  80. data/lib/puppet/property/ensure.rb +1 -1
  81. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  82. data/lib/puppet/provider/cron/crontab.rb +1 -1
  83. data/lib/puppet/provider/exec.rb +6 -2
  84. data/lib/puppet/provider/mount.rb +1 -1
  85. data/lib/puppet/provider/mount/parsed.rb +8 -8
  86. data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
  87. data/lib/puppet/provider/nameservice/pw.rb +2 -2
  88. data/lib/puppet/provider/package/dnfmodule.rb +87 -0
  89. data/lib/puppet/provider/package/dpkg.rb +3 -12
  90. data/lib/puppet/provider/package/openbsd.rb +1 -1
  91. data/lib/puppet/provider/package/pip.rb +34 -9
  92. data/lib/puppet/provider/package/portage.rb +4 -4
  93. data/lib/puppet/provider/package/rpm.rb +6 -6
  94. data/lib/puppet/provider/package/windows/package.rb +1 -1
  95. data/lib/puppet/provider/package/yum.rb +1 -1
  96. data/lib/puppet/provider/package_targetable.rb +5 -4
  97. data/lib/puppet/provider/parsedfile.rb +1 -1
  98. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
  99. data/lib/puppet/provider/service/daemontools.rb +9 -9
  100. data/lib/puppet/provider/service/openbsd.rb +1 -1
  101. data/lib/puppet/provider/service/rcng.rb +2 -2
  102. data/lib/puppet/provider/service/runit.rb +2 -8
  103. data/lib/puppet/provider/service/systemd.rb +8 -8
  104. data/lib/puppet/provider/user/directoryservice.rb +1 -1
  105. data/lib/puppet/provider/user/hpux.rb +1 -1
  106. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  107. data/lib/puppet/provider/user/useradd.rb +22 -13
  108. data/lib/puppet/provider/user/windows_adsi.rb +4 -5
  109. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  110. data/lib/puppet/reference/indirection.rb +2 -2
  111. data/lib/puppet/reference/metaparameter.rb +1 -3
  112. data/lib/puppet/reference/providers.rb +1 -1
  113. data/lib/puppet/reference/type.rb +3 -9
  114. data/lib/puppet/reports.rb +1 -1
  115. data/lib/puppet/resource.rb +1 -1
  116. data/lib/puppet/resource/catalog.rb +1 -1
  117. data/lib/puppet/settings.rb +3 -3
  118. data/lib/puppet/settings/environment_conf.rb +1 -0
  119. data/lib/puppet/ssl/certificate_authority/interface.rb +1 -1
  120. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  121. data/lib/puppet/ssl/host.rb +3 -3
  122. data/lib/puppet/ssl/oids.rb +1 -1
  123. data/lib/puppet/transaction/report.rb +1 -1
  124. data/lib/puppet/type.rb +2 -4
  125. data/lib/puppet/type/cron.rb +1 -1
  126. data/lib/puppet/type/exec.rb +7 -3
  127. data/lib/puppet/type/file.rb +1 -2
  128. data/lib/puppet/type/file/data_sync.rb +5 -1
  129. data/lib/puppet/type/group.rb +4 -2
  130. data/lib/puppet/type/interface.rb +1 -1
  131. data/lib/puppet/type/notify.rb +3 -2
  132. data/lib/puppet/type/package.rb +2 -2
  133. data/lib/puppet/type/schedule.rb +1 -1
  134. data/lib/puppet/type/selboolean.rb +17 -3
  135. data/lib/puppet/type/service.rb +1 -1
  136. data/lib/puppet/type/user.rb +4 -2
  137. data/lib/puppet/util.rb +35 -12
  138. data/lib/puppet/util/command_line/trollop.rb +1 -1
  139. data/lib/puppet/util/http_proxy.rb +8 -14
  140. data/lib/puppet/util/instance_loader.rb +1 -1
  141. data/lib/puppet/util/log.rb +1 -1
  142. data/lib/puppet/util/log/destinations.rb +2 -2
  143. data/lib/puppet/util/logging.rb +30 -18
  144. data/lib/puppet/util/metric.rb +2 -2
  145. data/lib/puppet/util/monkey_patches.rb +1 -1
  146. data/lib/puppet/util/nagios_maker.rb +2 -2
  147. data/lib/puppet/util/network_device/cisco/device.rb +1 -1
  148. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  149. data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
  150. data/lib/puppet/util/provider_features.rb +2 -4
  151. data/lib/puppet/util/rdoc.rb +1 -1
  152. data/lib/puppet/util/reference.rb +1 -1
  153. data/lib/puppet/util/resource_template.rb +1 -1
  154. data/lib/puppet/util/selinux.rb +3 -1
  155. data/lib/puppet/util/windows/adsi.rb +58 -28
  156. data/lib/puppet/util/windows/registry.rb +7 -5
  157. data/lib/puppet/vendor.rb +1 -1
  158. data/lib/puppet/version.rb +1 -1
  159. data/lib/puppet_pal.rb +2 -2
  160. data/locales/puppet.pot +115 -95
  161. data/man/man5/puppet.conf.5 +21 -5
  162. data/man/man8/puppet-agent.8 +1 -1
  163. data/man/man8/puppet-apply.8 +1 -1
  164. data/man/man8/puppet-ca.8 +1 -1
  165. data/man/man8/puppet-catalog.8 +1 -1
  166. data/man/man8/puppet-cert.8 +1 -1
  167. data/man/man8/puppet-certificate.8 +1 -1
  168. data/man/man8/puppet-certificate_request.8 +1 -1
  169. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  170. data/man/man8/puppet-config.8 +1 -1
  171. data/man/man8/puppet-describe.8 +1 -1
  172. data/man/man8/puppet-device.8 +1 -1
  173. data/man/man8/puppet-doc.8 +1 -1
  174. data/man/man8/puppet-epp.8 +1 -1
  175. data/man/man8/puppet-facts.8 +1 -1
  176. data/man/man8/puppet-filebucket.8 +1 -1
  177. data/man/man8/puppet-generate.8 +1 -1
  178. data/man/man8/puppet-help.8 +1 -1
  179. data/man/man8/puppet-key.8 +1 -1
  180. data/man/man8/puppet-lookup.8 +1 -1
  181. data/man/man8/puppet-man.8 +1 -1
  182. data/man/man8/puppet-master.8 +1 -1
  183. data/man/man8/puppet-module.8 +1 -1
  184. data/man/man8/puppet-node.8 +1 -1
  185. data/man/man8/puppet-parser.8 +1 -1
  186. data/man/man8/puppet-plugin.8 +1 -1
  187. data/man/man8/puppet-report.8 +1 -1
  188. data/man/man8/puppet-resource.8 +1 -1
  189. data/man/man8/puppet-script.8 +1 -1
  190. data/man/man8/puppet-status.8 +1 -1
  191. data/man/man8/puppet.8 +2 -2
  192. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list-installed.txt +11 -0
  193. data/spec/integration/configurer_spec.rb +52 -0
  194. data/spec/integration/type/notify_spec.rb +46 -0
  195. data/spec/unit/configurer_spec.rb +380 -397
  196. data/spec/unit/forge/forge_spec.rb +1 -3
  197. data/spec/unit/forge/repository_spec.rb +1 -3
  198. data/spec/unit/indirector/resource/ral_spec.rb +4 -4
  199. data/spec/unit/network/http/connection_spec.rb +26 -0
  200. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
  201. data/spec/unit/provider/exec_spec.rb +209 -0
  202. data/spec/unit/provider/package/dnfmodule_spec.rb +186 -0
  203. data/spec/unit/provider/package/dpkg_spec.rb +15 -3
  204. data/spec/unit/provider/package/pip_spec.rb +51 -6
  205. data/spec/unit/provider/package/portage_spec.rb +4 -4
  206. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  207. data/spec/unit/provider/service/daemontools_spec.rb +24 -0
  208. data/spec/unit/provider/service/runit_spec.rb +24 -0
  209. data/spec/unit/provider/service/systemd_spec.rb +22 -22
  210. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  211. data/spec/unit/provider/user/useradd_spec.rb +46 -0
  212. data/spec/unit/type/exec_spec.rb +6 -12
  213. data/spec/unit/type/file/content_spec.rb +9 -3
  214. data/spec/unit/type/file_spec.rb +9 -4
  215. data/spec/unit/type/selboolean_spec.rb +4 -6
  216. data/spec/unit/util/execution_spec.rb +16 -0
  217. data/spec/unit/util/http_proxy_spec.rb +97 -0
  218. data/spec/unit/util/log/destinations_spec.rb +7 -3
  219. data/spec/unit/util/log_spec.rb +0 -138
  220. data/spec/unit/util/logging_spec.rb +200 -0
  221. data/spec/unit/util/windows/adsi_spec.rb +51 -0
  222. data/tasks/manpages.rake +1 -0
  223. metadata +12 -5
  224. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  225. data/locales/ja/puppet.po +0 -12114
@@ -48,11 +48,12 @@ module Logging
48
48
  # wish to log a message at all; in this case it is likely that you are only calling this method in order
49
49
  # to take advantage of the backtrace logging.
50
50
  def log_exception(exception, message = :default, options = {})
51
- trace = Puppet[:trace] || options[:trace]
51
+ combined_trace = Puppet[:trace] || options[:trace]
52
+ puppet_trace = Puppet[:puppet_trace] || options[:puppet_trace]
53
+
52
54
  if message == :default && exception.is_a?(Puppet::ParseErrorWithIssue)
53
55
  # Retain all detailed info and keep plain message and stacktrace separate
54
- backtrace = []
55
- build_exception_trace(backtrace, exception, trace)
56
+ backtrace = build_exception_trace(exception, combined_trace, puppet_trace)
56
57
  Puppet::Util::Log.create({
57
58
  :level => options[:level] || :err,
58
59
  :source => log_source,
@@ -66,28 +67,27 @@ module Logging
66
67
  :node => exception.node
67
68
  }.merge(log_metadata))
68
69
  else
69
- err(format_exception(exception, message, trace))
70
+ err(format_exception(exception, message, combined_trace, puppet_trace))
70
71
  end
71
72
  end
72
73
 
73
- def build_exception_trace(arr, exception, trace = true)
74
- if trace and exception.backtrace
75
- exception.backtrace.each do |line|
76
- arr << line =~ /^(.+):(\d+.*)$/ ? ("#{Pathname($1).realpath}:#{$2}" rescue line) : line
77
- end
78
- end
74
+ def build_exception_trace(exception, combined_trace = true, puppet_trace = false)
75
+ built_trace = format_backtrace(exception, combined_trace, puppet_trace)
76
+
79
77
  if exception.respond_to?(:original)
80
78
  original = exception.original
81
79
  unless original.nil?
82
- arr << _('Wrapped exception:')
83
- arr << original.message
84
- build_exception_trace(arr, original, trace)
80
+ built_trace << _('Wrapped exception:')
81
+ built_trace << original.message
82
+ built_trace += build_exception_trace(original, combined_trace, puppet_trace)
85
83
  end
86
84
  end
85
+
86
+ built_trace
87
87
  end
88
88
  private :build_exception_trace
89
89
 
90
- def format_exception(exception, message = :default, trace = true)
90
+ def format_exception(exception, message = :default, combined_trace = true, puppet_trace = false)
91
91
  arr = []
92
92
  case message
93
93
  when :default
@@ -98,16 +98,28 @@ module Logging
98
98
  arr << message
99
99
  end
100
100
 
101
- if trace and exception.backtrace
102
- arr << Puppet::Util.pretty_backtrace(exception.backtrace)
103
- end
101
+ arr += format_backtrace(exception, combined_trace, puppet_trace)
102
+
104
103
  if exception.respond_to?(:original) and exception.original
105
104
  arr << _("Wrapped exception:")
106
- arr << format_exception(exception.original, :default, trace)
105
+ arr << format_exception(exception.original, :default, combined_trace, puppet_trace)
107
106
  end
107
+
108
108
  arr.flatten.join("\n")
109
109
  end
110
110
 
111
+ def format_backtrace(exception, combined_trace, puppet_trace)
112
+ puppetstack = exception.respond_to?(:puppetstack) ? exception.puppetstack : []
113
+
114
+ if combined_trace and exception.backtrace
115
+ Puppet::Util.format_backtrace_array(exception.backtrace, puppetstack)
116
+ elsif puppet_trace && !puppetstack.empty?
117
+ Puppet::Util.format_backtrace_array(puppetstack)
118
+ else
119
+ []
120
+ end
121
+ end
122
+
111
123
  def log_and_raise(exception, message)
112
124
  log_exception(exception, message)
113
125
  raise exception, message + "\n" + exception.to_s, exception.backtrace
@@ -54,11 +54,11 @@ class Puppet::Util::Metric
54
54
  end
55
55
 
56
56
  def values
57
- @values.sort { |a, b| a[1] <=> b[1] }
57
+ @values.sort_by { |a| a[1] }
58
58
  end
59
59
 
60
60
  # Convert a name into a label.
61
61
  def self.labelize(name)
62
- name.to_s.capitalize.gsub("_", " ")
62
+ name.to_s.capitalize.tr("_", " ")
63
63
  end
64
64
  end
@@ -70,7 +70,7 @@ if Puppet::Util::Platform.windows?
70
70
  begin
71
71
  add_cert(x509)
72
72
  rescue OpenSSL::X509::StoreError
73
- warn "Failed to add #{x509.subject.to_s}"
73
+ warn "Failed to add #{x509.subject}"
74
74
  end
75
75
  end
76
76
  end
@@ -65,11 +65,11 @@ module Puppet::Util::NagiosMaker
65
65
  end
66
66
  end
67
67
 
68
- target = "/etc/nagios/#{full_name.to_s}.cfg"
68
+ target = "/etc/nagios/#{full_name}.cfg"
69
69
  provider = type.provide(:naginator, :parent => Puppet::Provider::Naginator, :default_target => target) {}
70
70
  provider.nagios_type
71
71
 
72
- type.desc "The Nagios type #{name.to_s}. This resource type is autogenerated using the
72
+ type.desc "The Nagios type #{name}. This resource type is autogenerated using the
73
73
  model developed in Naginator, and all of the Nagios types are generated using the
74
74
  same code and the same library.
75
75
 
@@ -103,7 +103,7 @@ class Puppet::Util::NetworkDevice::Cisco::Device < Puppet::Util::NetworkDevice::
103
103
  IF.each do |k,ifnames|
104
104
  if found = ifnames.find { |ifname| interface =~ /^#{ifname}\s*\d/i }
105
105
  found = /^#{found}(.+)\Z/i.match(interface)
106
- return "#{k.to_s}#{found[1]}".gsub(/\s+/,'')
106
+ return "#{k}#{found[1]}".gsub(/\s+/,'')
107
107
  end
108
108
  end
109
109
  interface
@@ -27,8 +27,8 @@ class Puppet::Util::NetworkDevice::Cisco::Interface
27
27
  :etherchannel => [9, ["channel-group %s", "port group %s"]],
28
28
  :ipaddress => [10,
29
29
  lambda do |prefix,ip,option|
30
- ip.ipv6? ? "ipv6 address #{ip.to_s}/#{prefix} #{option}" :
31
- "ip address #{ip.to_s} #{netmask(Socket::AF_INET,prefix)}"
30
+ ip.ipv6? ? "ipv6 address #{ip}/#{prefix} #{option}" :
31
+ "ip address #{ip} #{netmask(Socket::AF_INET,prefix)}"
32
32
  end],
33
33
  :ensure => [11, lambda { |value| value == :present ? "no shutdown" : "shutdown" } ]
34
34
  }
@@ -59,7 +59,7 @@ class Puppet::Util::NetworkDevice::Transport::Ssh < Puppet::Util::NetworkDevice:
59
59
  # the ssh loop there while still having the ssh connection up
60
60
  # otherwise we wouldn't be able to return ssh stdout/stderr
61
61
  # for a given call of command.
62
- return
62
+ return # rubocop:disable Lint/NonLocalExitFromIterator
63
63
  end
64
64
 
65
65
  end
@@ -81,7 +81,7 @@ module Puppet::Util::ProviderFeatures
81
81
  str = ""
82
82
  @features ||= {}
83
83
  return nil if @features.empty?
84
- names = @features.keys.sort { |a,b| a.to_s <=> b.to_s }
84
+ names = @features.keys.sort_by(&:to_s)
85
85
  names.each do |name|
86
86
  doc = @features[name].docs.gsub(/\n\s+/, " ")
87
87
  str << "- *#{name}*: #{doc}\n"
@@ -130,9 +130,7 @@ module Puppet::Util::ProviderFeatures
130
130
  # Create a method that will list all functional features.
131
131
  @feature_module.send(:define_method, :features) do
132
132
  return false unless defined?(features)
133
- features.keys.find_all { |n| feature?(n) }.sort { |a,b|
134
- a.to_s <=> b.to_s
135
- }
133
+ features.keys.find_all { |n| feature?(n) }.sort_by(&:to_s)
136
134
  end
137
135
 
138
136
  # Create a method that will determine if a provided list of
@@ -31,7 +31,7 @@ module Puppet::Util::RDoc
31
31
  # uses relative_path_from that will generate errors when the slashes don't
32
32
  # properly match. This is a workaround for that issue.
33
33
  if Puppet.features.microsoft_windows? && RDoc::VERSION !~ /^[0-3]\./
34
- options += [ "--root", Dir.pwd.gsub(/\\/, '/')]
34
+ options += [ "--root", Dir.pwd.tr('\\', '/')]
35
35
  end
36
36
  options += files
37
37
 
@@ -60,7 +60,7 @@ class Puppet::Util::Reference
60
60
 
61
61
  def self.references
62
62
  instance_loader(:reference).loadall
63
- loaded_instances(:reference).sort { |a,b| a.to_s <=> b.to_s }
63
+ loaded_instances(:reference).sort_by(&:to_s)
64
64
  end
65
65
 
66
66
  attr_accessor :page, :depth, :header, :title, :dynamic
@@ -53,7 +53,7 @@ class Puppet::Util::ResourceTemplate
53
53
 
54
54
  def set_resource_variables
55
55
  @resource.to_hash.each do |param, value|
56
- var = "@#{param.to_s}"
56
+ var = "@#{param}"
57
57
  instance_variable_set(var, value)
58
58
  end
59
59
  end
@@ -206,7 +206,9 @@ module Puppet::Util::SELinux
206
206
  # If possible we use read_nonblock in a loop rather than read to work-
207
207
  # a linux kernel bug. See ticket #1963 for details.
208
208
  mountfh = File.open("/proc/mounts")
209
- mounts += mountfh.read_nonblock(1024) while true
209
+ loop do
210
+ mounts += mountfh.read_nonblock(1024)
211
+ end
210
212
  else
211
213
  # Otherwise we shell out and let cat do it for us
212
214
  mountfh = IO.popen("/bin/cat /proc/mounts")
@@ -1,6 +1,23 @@
1
1
  module Puppet::Util::Windows::ADSI
2
2
  require 'ffi'
3
3
 
4
+ # https://docs.microsoft.com/en-us/windows/win32/api/dsrole/ne-dsrole-dsrole_machine_role
5
+ STANDALONE_WORKSTATION = 0
6
+ MEMBER_WORKSTATION = 1
7
+ STANDALONE_SERVER = 2
8
+ MEMBER_SERVER = 3
9
+ BACKUP_DOMAIN_CONTROLLER = 4
10
+ PRIMARY_DOMAIN_CONTROLLER = 5
11
+
12
+ DOMAIN_ROLES = {
13
+ STANDALONE_WORKSTATION => :STANDALONE_WORKSTATION,
14
+ MEMBER_WORKSTATION => :MEMBER_WORKSTATION,
15
+ STANDALONE_SERVER => :STANDALONE_SERVER,
16
+ MEMBER_SERVER => :MEMBER_SERVER,
17
+ BACKUP_DOMAIN_CONTROLLER => :BACKUP_DOMAIN_CONTROLLER,
18
+ PRIMARY_DOMAIN_CONTROLLER => :PRIMARY_DOMAIN_CONTROLLER,
19
+ }
20
+
4
21
  class << self
5
22
  extend FFI::Library
6
23
 
@@ -94,6 +111,14 @@ module Puppet::Util::Windows::ADSI
94
111
  wmi_connection.execquery(query)
95
112
  end
96
113
 
114
+ def domain_role
115
+ unless @domain_role
116
+ query_result = Puppet::Util::Windows::ADSI.execquery('select DomainRole from Win32_ComputerSystem').to_enum.first
117
+ @domain_role = DOMAIN_ROLES[query_result.DomainRole] if query_result
118
+ end
119
+ @domain_role
120
+ end
121
+
97
122
  ffi_convention :stdcall
98
123
 
99
124
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms724295(v=vs.85).aspx
@@ -126,24 +151,24 @@ module Puppet::Util::Windows::ADSI
126
151
  Puppet::Util::Windows::SID.name_to_principal('SYSTEM').domain.upcase
127
152
  ]
128
153
  end
129
-
154
+
130
155
  def uri(name, host = '.')
131
156
  host = '.' if (localized_domains << Socket.gethostname.upcase).include?(host.upcase)
132
157
  Puppet::Util::Windows::ADSI.uri(name, @object_class, host)
133
158
  end
134
-
159
+
135
160
  def parse_name(name)
136
161
  if name =~ /\//
137
162
  raise Puppet::Error.new( _("Value must be in DOMAIN\\%{object_class} style syntax") % { object_class: @object_class } )
138
163
  end
139
-
164
+
140
165
  matches = name.scan(/((.*)\\)?(.*)/)
141
166
  domain = matches[0][1] || '.'
142
167
  account = matches[0][2]
143
-
168
+
144
169
  return account, domain
145
170
  end
146
-
171
+
147
172
  # returns Puppet::Util::Windows::SID::Principal[]
148
173
  # may contain objects that represent unresolvable SIDs
149
174
  def get_sids(adsi_child_collection)
@@ -151,19 +176,19 @@ module Puppet::Util::Windows::ADSI
151
176
  adsi_child_collection.each do |m|
152
177
  sids << Puppet::Util::Windows::SID.ads_to_principal(m)
153
178
  end
154
-
179
+
155
180
  sids
156
181
  end
157
-
182
+
158
183
  def name_sid_hash(names)
159
184
  return {} if names.nil? || names.empty?
160
-
185
+
161
186
  sids = names.map do |name|
162
187
  sid = Puppet::Util::Windows::SID.name_to_principal(name)
163
188
  raise Puppet::Error.new( _("Could not resolve name: %{name}") % { name: name } ) if !sid
164
189
  [sid.sid, sid]
165
190
  end
166
-
191
+
167
192
  Hash[ sids ]
168
193
  end
169
194
 
@@ -176,8 +201,13 @@ module Puppet::Util::Windows::ADSI
176
201
  well_known = false
177
202
  if (sid = Puppet::Util::Windows::SID.name_to_principal(name_or_sid))
178
203
  # Examples of SidType include SidTypeUser, SidTypeGroup
179
- return true if sid.account_type == "SidType#{@object_class.capitalize}".to_sym
180
-
204
+ if sid.account_type == "SidType#{@object_class.capitalize}".to_sym
205
+ # Check if we're getting back a local user when domain-joined
206
+ return true unless [:MEMBER_WORKSTATION, :MEMBER_SERVER].include?(Puppet::Util::Windows::ADSI.domain_role)
207
+ # The resource domain and the computer name are not always case-matching
208
+ return sid.domain.casecmp(Puppet::Util::Windows::ADSI.computer_name) == 0
209
+ end
210
+
181
211
  # 'well known group' is special as it can be a group like Everyone OR a user like SYSTEM
182
212
  # so try to resolve it
183
213
  # https://msdn.microsoft.com/en-us/library/cc234477.aspx
@@ -388,23 +418,23 @@ module Puppet::Util::Windows::ADSI
388
418
  ADS_UF_SCRIPT: 0x0001,
389
419
  ADS_UF_ACCOUNTDISABLE: 0x0002,
390
420
  ADS_UF_HOMEDIR_REQUIRED: 0x0008,
391
- ADS_UF_LOCKOUT: 0x0010,
392
- ADS_UF_PASSWD_NOTREQD: 0x0020,
393
- ADS_UF_PASSWD_CANT_CHANGE: 0x0040,
394
- ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: 0x0080,
395
- ADS_UF_TEMP_DUPLICATE_ACCOUNT: 0x0100,
396
- ADS_UF_NORMAL_ACCOUNT: 0x0200,
397
- ADS_UF_INTERDOMAIN_TRUST_ACCOUNT: 0x0800,
398
- ADS_UF_WORKSTATION_TRUST_ACCOUNT: 0x1000,
399
- ADS_UF_SERVER_TRUST_ACCOUNT: 0x2000,
400
- ADS_UF_DONT_EXPIRE_PASSWD: 0x10000,
401
- ADS_UF_MNS_LOGON_ACCOUNT: 0x20000,
402
- ADS_UF_SMARTCARD_REQUIRED: 0x40000,
403
- ADS_UF_TRUSTED_FOR_DELEGATION: 0x80000,
404
- ADS_UF_NOT_DELEGATED: 0x100000,
405
- ADS_UF_USE_DES_KEY_ONLY: 0x200000,
406
- ADS_UF_DONT_REQUIRE_PREAUTH: 0x400000,
407
- ADS_UF_PASSWORD_EXPIRED: 0x800000,
421
+ ADS_UF_LOCKOUT: 0x0010,
422
+ ADS_UF_PASSWD_NOTREQD: 0x0020,
423
+ ADS_UF_PASSWD_CANT_CHANGE: 0x0040,
424
+ ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED: 0x0080,
425
+ ADS_UF_TEMP_DUPLICATE_ACCOUNT: 0x0100,
426
+ ADS_UF_NORMAL_ACCOUNT: 0x0200,
427
+ ADS_UF_INTERDOMAIN_TRUST_ACCOUNT: 0x0800,
428
+ ADS_UF_WORKSTATION_TRUST_ACCOUNT: 0x1000,
429
+ ADS_UF_SERVER_TRUST_ACCOUNT: 0x2000,
430
+ ADS_UF_DONT_EXPIRE_PASSWD: 0x10000,
431
+ ADS_UF_MNS_LOGON_ACCOUNT: 0x20000,
432
+ ADS_UF_SMARTCARD_REQUIRED: 0x40000,
433
+ ADS_UF_TRUSTED_FOR_DELEGATION: 0x80000,
434
+ ADS_UF_NOT_DELEGATED: 0x100000,
435
+ ADS_UF_USE_DES_KEY_ONLY: 0x200000,
436
+ ADS_UF_DONT_REQUIRE_PREAUTH: 0x400000,
437
+ ADS_UF_PASSWORD_EXPIRED: 0x800000,
408
438
  ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: 0x1000000
409
439
  }
410
440
 
@@ -46,11 +46,12 @@ module Puppet::Util::Windows
46
46
 
47
47
  subkey_max_len, _ = reg_query_info_key_max_lengths(key)
48
48
 
49
- begin
49
+ loop do
50
50
  subkey, filetime = reg_enum_key(key, index, subkey_max_len)
51
51
  yield subkey, filetime if !subkey.nil?
52
52
  index += 1
53
- end while !subkey.nil?
53
+ break if subkey.nil?
54
+ end
54
55
 
55
56
  index
56
57
  end
@@ -93,11 +94,12 @@ module Puppet::Util::Windows
93
94
 
94
95
  _, value_max_len = reg_query_info_key_max_lengths(key)
95
96
 
96
- begin
97
+ loop do
97
98
  subkey, type, data = reg_enum_value(key, index, value_max_len)
98
99
  yield subkey, type, data if !subkey.nil?
99
100
  index += 1
100
- end while !subkey.nil?
101
+ break if subkey.nil?
102
+ end
101
103
 
102
104
  index
103
105
  end
@@ -314,7 +316,7 @@ module Puppet::Util::Windows
314
316
 
315
317
  def sanitize(value)
316
318
  # Replace null bytes with a space
317
- value.gsub!("\x00", ' ')
319
+ value.tr!("\x00", ' ')
318
320
  value
319
321
  end
320
322
 
@@ -45,7 +45,7 @@ module Puppet
45
45
  #
46
46
  def load_vendored
47
47
  Dir.entries(vendor_dir).each do |entry|
48
- if entry.match(/load_(\w+?)\.rb$/)
48
+ if entry =~ /load_(\w+?)\.rb$/
49
49
  load_entry entry
50
50
  end
51
51
  end
@@ -6,7 +6,7 @@
6
6
  # Raketasks and such to set the version based on the output of `git describe`
7
7
 
8
8
  module Puppet
9
- PUPPETVERSION = '5.5.17'
9
+ PUPPETVERSION = '5.5.18'
10
10
 
11
11
  ##
12
12
  # version is a public API method intended to always provide a fast and
@@ -828,8 +828,8 @@ module Pal
828
828
  end
829
829
  end
830
830
 
831
- rescue Puppet::ParseErrorWithIssue, Puppet::Error
832
- # already logged and handled by the compiler for these two cases
831
+ rescue Puppet::Error
832
+ # already logged and handled by the compiler, including Puppet::ParseErrorWithIssue
833
833
  raise
834
834
 
835
835
  rescue => detail
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: Puppet automation framework 5.5.16-90-gc9f7674\n"
9
+ "Project-Id-Version: Puppet automation framework 5.5.17-100-g3e6abbc\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2019-09-27 09:15+0000\n"
13
- "PO-Revision-Date: 2019-09-27 09:15+0000\n"
12
+ "POT-Creation-Date: 2019-11-13 23:16+0000\n"
13
+ "PO-Revision-Date: 2019-11-13 23:16+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -44,7 +44,7 @@ msgstr ""
44
44
  msgid "Please supply a parameter to perform a Hiera lookup"
45
45
  msgstr ""
46
46
 
47
- #: ../lib/hiera_puppet.rb:74 ../lib/puppet/indirector/hiera.rb:79
47
+ #: ../lib/hiera_puppet.rb:74 ../lib/puppet/indirector/hiera.rb:81
48
48
  msgid "Config file %{hiera_config} not found, using Hiera defaults"
49
49
  msgstr ""
50
50
 
@@ -241,7 +241,7 @@ msgstr ""
241
241
  msgid "You must specify the hosts to apply to; valid values are an array or the symbol :all"
242
242
  msgstr ""
243
243
 
244
- #: ../lib/puppet/application/describe.rb:181
244
+ #: ../lib/puppet/application/describe.rb:175
245
245
  msgid "Display help about resource types"
246
246
  msgstr ""
247
247
 
@@ -573,32 +573,40 @@ msgstr ""
573
573
  msgid "Failed to apply catalog: %{detail}"
574
574
  msgstr ""
575
575
 
576
- #: ../lib/puppet/configurer.rb:393
576
+ #: ../lib/puppet/configurer.rb:401
577
577
  msgid "Puppet server %{host}:%{port} is unavailable: %{code} %{reason}"
578
578
  msgstr ""
579
579
 
580
580
  #. TRANSLATORS 'server_list' is the name of a setting and should not be translated
581
- #: ../lib/puppet/configurer.rb:397
581
+ #: ../lib/puppet/configurer.rb:405
582
582
  msgid "Unable to connect to server from server_list setting: %{detail}"
583
583
  msgstr ""
584
584
 
585
- #: ../lib/puppet/configurer.rb:409 ../lib/puppet/face/report.rb:47
585
+ #: ../lib/puppet/configurer.rb:417 ../lib/puppet/face/report.rb:47
586
586
  msgid "Could not send report: %{detail}"
587
587
  msgstr ""
588
588
 
589
- #: ../lib/puppet/configurer.rb:418
589
+ #: ../lib/puppet/configurer.rb:426
590
590
  msgid "Could not save last run local report: %{detail}"
591
591
  msgstr ""
592
592
 
593
- #: ../lib/puppet/configurer.rb:430
593
+ #: ../lib/puppet/configurer.rb:446
594
+ msgid "Uploading facts for %{node} to %{server}"
595
+ msgstr ""
596
+
597
+ #: ../lib/puppet/configurer.rb:457
598
+ msgid "Failed to submit facts: %{detail}"
599
+ msgstr ""
600
+
601
+ #: ../lib/puppet/configurer.rb:472
594
602
  msgid "Could not run command from %{setting}: %{detail}"
595
603
  msgstr ""
596
604
 
597
- #: ../lib/puppet/configurer.rb:448
605
+ #: ../lib/puppet/configurer.rb:490
598
606
  msgid "Could not retrieve catalog from cache: %{detail}"
599
607
  msgstr ""
600
608
 
601
- #: ../lib/puppet/configurer.rb:468
609
+ #: ../lib/puppet/configurer.rb:510
602
610
  msgid "Could not retrieve catalog from remote server: %{detail}"
603
611
  msgstr ""
604
612
 
@@ -681,36 +689,36 @@ msgid "Convert custom terminus to hiera 5 API."
681
689
  msgstr ""
682
690
 
683
691
  #. TRANSLATORS 'environment_data_provider' is a setting and should not be translated
684
- #: ../lib/puppet/defaults.rb:633
692
+ #: ../lib/puppet/defaults.rb:634
685
693
  msgid "Setting 'environment_data_provider' is deprecated."
686
694
  msgstr ""
687
695
 
688
- #: ../lib/puppet/defaults.rb:735
696
+ #: ../lib/puppet/defaults.rb:736
689
697
  msgid "Certificate names must be lower case"
690
698
  msgstr ""
691
699
 
692
- #: ../lib/puppet/defaults.rb:976 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
700
+ #: ../lib/puppet/defaults.rb:977 ../lib/puppet/settings/enum_setting.rb:13 ../lib/puppet/settings/symbolic_enum_setting.rb:14
693
701
  msgid "Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'"
694
702
  msgstr ""
695
703
 
696
- #: ../lib/puppet/defaults.rb:1047
704
+ #: ../lib/puppet/defaults.rb:1048
697
705
  msgid "The 'caprivatedir' setting is deprecated and will be removed in Puppet 6."
698
706
  msgstr ""
699
707
 
700
- #: ../lib/puppet/defaults.rb:1074
708
+ #: ../lib/puppet/defaults.rb:1075
701
709
  msgid "The 'capass' setting is deprecated and will be removed in Puppet 6."
702
710
  msgstr ""
703
711
 
704
- #: ../lib/puppet/defaults.rb:1314
712
+ #: ../lib/puppet/defaults.rb:1315
705
713
  msgid "The 'ca' setting is deprecated and will be removed in Puppet 6."
706
714
  msgstr ""
707
715
 
708
- #: ../lib/puppet/defaults.rb:1814 ../lib/puppet/settings.rb:1212
716
+ #: ../lib/puppet/defaults.rb:1820 ../lib/puppet/settings.rb:1212
709
717
  msgid "Setting %{name} is deprecated."
710
718
  msgstr ""
711
719
 
712
720
  #. TRANSLATORS 'pluginsync' is a setting and should not be translated
713
- #: ../lib/puppet/defaults.rb:1865
721
+ #: ../lib/puppet/defaults.rb:1871
714
722
  msgid "Setting 'pluginsync' is deprecated."
715
723
  msgstr ""
716
724
 
@@ -2356,11 +2364,11 @@ msgid "Got an event from invalid vertex %{source}"
2356
2364
  msgstr ""
2357
2365
 
2358
2366
  #. TRANSLATORS "negative or zero" refers to the count of paths
2359
- #: ../lib/puppet/graph/simple_graph.rb:199
2367
+ #: ../lib/puppet/graph/simple_graph.rb:200
2360
2368
  msgid "negative or zero max_paths"
2361
2369
  msgstr ""
2362
2370
 
2363
- #: ../lib/puppet/graph/simple_graph.rb:231
2371
+ #: ../lib/puppet/graph/simple_graph.rb:232
2364
2372
  msgid ""
2365
2373
  "Found %{num} dependency cycle:\n"
2366
2374
  msgid_plural ""
@@ -2368,12 +2376,12 @@ msgid_plural ""
2368
2376
  msgstr[0] ""
2369
2377
  msgstr[1] ""
2370
2378
 
2371
- #: ../lib/puppet/graph/simple_graph.rb:240
2379
+ #: ../lib/puppet/graph/simple_graph.rb:241
2372
2380
  msgid "Cycle graph written to %{filename}."
2373
2381
  msgstr ""
2374
2382
 
2375
2383
  #. TRANSLATORS '--graph' refers to a command line option and OmniGraffle and GraphViz are program names and should not be translated
2376
- #: ../lib/puppet/graph/simple_graph.rb:243
2384
+ #: ../lib/puppet/graph/simple_graph.rb:244
2377
2385
  msgid "Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz"
2378
2386
  msgstr ""
2379
2387
 
@@ -2963,7 +2971,7 @@ msgstr ""
2963
2971
  msgid "Could not understand URL %{key}: %{detail}"
2964
2972
  msgstr ""
2965
2973
 
2966
- #: ../lib/puppet/indirector/resource/ral.rb:61
2974
+ #: ../lib/puppet/indirector/resource/ral.rb:59
2967
2975
  msgid "Could not find type %{request_type}"
2968
2976
  msgstr ""
2969
2977
 
@@ -4036,45 +4044,45 @@ msgstr ""
4036
4044
  msgid "No request key specified in %{uri}"
4037
4045
  msgstr ""
4038
4046
 
4039
- #: ../lib/puppet/network/http/api/indirected_routes.rb:122
4047
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:133
4040
4048
  msgid "Could not find %{value0} %{key}"
4041
4049
  msgstr ""
4042
4050
 
4043
- #: ../lib/puppet/network/http/api/indirected_routes.rb:129
4051
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:140
4044
4052
  msgid "Rendered result in %{format}"
4045
4053
  msgstr ""
4046
4054
 
4047
- #: ../lib/puppet/network/http/api/indirected_routes.rb:135
4055
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:146
4048
4056
  msgid "Sent response"
4049
4057
  msgstr ""
4050
4058
 
4051
- #: ../lib/puppet/network/http/api/indirected_routes.rb:143
4059
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:154
4052
4060
  msgid "Could not find %{indirection} %{key}"
4053
4061
  msgstr ""
4054
4062
 
4055
- #: ../lib/puppet/network/http/api/indirected_routes.rb:155
4063
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:166
4056
4064
  msgid "Could not find instances in %{indirection} with '%{key}'"
4057
4065
  msgstr ""
4058
4066
 
4059
- #: ../lib/puppet/network/http/api/indirected_routes.rb:202 ../lib/puppet/network/http/request.rb:60
4067
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:213 ../lib/puppet/network/http/request.rb:60
4060
4068
  msgid "No supported formats are acceptable (Accept: %{accepted_formats})"
4061
4069
  msgstr ""
4062
4070
 
4063
- #: ../lib/puppet/network/http/api/indirected_routes.rb:227
4071
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:238
4064
4072
  msgid "The request body is invalid: %{message}"
4065
4073
  msgstr ""
4066
4074
 
4067
4075
  #. TRANSLATORS "mime-type" is a keyword and should not be translated
4068
4076
  #. TRANSLATORS "mime-type" is a keyword and should not be translated
4069
- #: ../lib/puppet/network/http/api/indirected_routes.rb:233 ../lib/puppet/network/http/request.rb:31
4077
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:244 ../lib/puppet/network/http/request.rb:31
4070
4078
  msgid "Client sent a mime-type (%{header}) that doesn't correspond to a format we support"
4071
4079
  msgstr ""
4072
4080
 
4073
- #: ../lib/puppet/network/http/api/indirected_routes.rb:239
4081
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:250
4074
4082
  msgid "No support for http method %{http_method}"
4075
4083
  msgstr ""
4076
4084
 
4077
- #: ../lib/puppet/network/http/api/indirected_routes.rb:243
4085
+ #: ../lib/puppet/network/http/api/indirected_routes.rb:254
4078
4086
  msgid "No support for plurality %{indirection} for %{http_method} operations"
4079
4087
  msgstr ""
4080
4088
 
@@ -4300,7 +4308,7 @@ msgstr ""
4300
4308
  msgid "The 'disable_per_environment_manifest' setting is true, and the '%{env_name}' environment has an environment.conf manifest that conflicts with the 'default_manifest' setting."
4301
4309
  msgstr ""
4302
4310
 
4303
- #: ../lib/puppet/node/environment.rb:570 ../lib/puppet/pops/loaders.rb:298
4311
+ #: ../lib/puppet/node/environment.rb:572 ../lib/puppet/pops/loaders.rb:298
4304
4312
  msgid "Could not parse for environment %{env}: %{detail}"
4305
4313
  msgstr ""
4306
4314
 
@@ -5978,11 +5986,11 @@ msgstr ""
5978
5986
  msgid "Hiera configuration recreated due to change of scope variables used in interpolation expressions"
5979
5987
  msgstr ""
5980
5988
 
5981
- #: ../lib/puppet/pops/lookup/hiera_config.rb:427
5989
+ #: ../lib/puppet/pops/lookup/hiera_config.rb:428
5982
5990
  msgid "%{config_path}: Use of 'hiera.yaml' version 3 is deprecated. It should be converted to version 5"
5983
5991
  msgstr ""
5984
5992
 
5985
- #: ../lib/puppet/pops/lookup/hiera_config.rb:527
5993
+ #: ../lib/puppet/pops/lookup/hiera_config.rb:528
5986
5994
  msgid "%{config_path}: Use of 'hiera.yaml' version 4 is deprecated. It should be converted to version 5"
5987
5995
  msgstr ""
5988
5996
 
@@ -6118,39 +6126,39 @@ msgstr ""
6118
6126
  msgid "illegal comma separated argument list"
6119
6127
  msgstr ""
6120
6128
 
6121
- #: ../lib/puppet/pops/parser/pn_parser.rb:64
6129
+ #: ../lib/puppet/pops/parser/pn_parser.rb:81
6122
6130
  msgid "unexpected end of input"
6123
6131
  msgstr ""
6124
6132
 
6125
- #: ../lib/puppet/pops/parser/pn_parser.rb:66
6133
+ #: ../lib/puppet/pops/parser/pn_parser.rb:83
6126
6134
  msgid "unexpected %{value}"
6127
6135
  msgstr ""
6128
6136
 
6129
- #: ../lib/puppet/pops/parser/pn_parser.rb:103
6137
+ #: ../lib/puppet/pops/parser/pn_parser.rb:120
6130
6138
  msgid "map key expected"
6131
6139
  msgstr ""
6132
6140
 
6133
- #: ../lib/puppet/pops/parser/pn_parser.rb:114
6141
+ #: ../lib/puppet/pops/parser/pn_parser.rb:131
6134
6142
  msgid "expected identifier to follow '('"
6135
6143
  msgstr ""
6136
6144
 
6137
- #: ../lib/puppet/pops/parser/pn_parser.rb:125
6145
+ #: ../lib/puppet/pops/parser/pn_parser.rb:142
6138
6146
  msgid "missing '%{token}' to end list"
6139
6147
  msgstr ""
6140
6148
 
6141
- #: ../lib/puppet/pops/parser/pn_parser.rb:186
6149
+ #: ../lib/puppet/pops/parser/pn_parser.rb:187
6142
6150
  msgid "expected identifier after ':'"
6143
6151
  msgstr ""
6144
6152
 
6145
- #: ../lib/puppet/pops/parser/pn_parser.rb:225
6153
+ #: ../lib/puppet/pops/parser/pn_parser.rb:226
6146
6154
  msgid "unterminated quote"
6147
6155
  msgstr ""
6148
6156
 
6149
- #: ../lib/puppet/pops/parser/pn_parser.rb:251
6157
+ #: ../lib/puppet/pops/parser/pn_parser.rb:252
6150
6158
  msgid "malformed octal quote"
6151
6159
  msgstr ""
6152
6160
 
6153
- #: ../lib/puppet/pops/parser/pn_parser.rb:266 ../lib/puppet/pops/parser/pn_parser.rb:271 ../lib/puppet/pops/parser/pn_parser.rb:275
6161
+ #: ../lib/puppet/pops/parser/pn_parser.rb:267 ../lib/puppet/pops/parser/pn_parser.rb:272 ../lib/puppet/pops/parser/pn_parser.rb:276
6154
6162
  msgid "digit expected"
6155
6163
  msgstr ""
6156
6164
 
@@ -6707,8 +6715,8 @@ msgstr ""
6707
6715
  msgid "Overriding environment setting '%{var}' with '%{value}'"
6708
6716
  msgstr ""
6709
6717
 
6710
- #: ../lib/puppet/provider/exec.rb:91
6711
- msgid "'%{command}' is not qualified and no path was specified. Please qualify the command or specify a path."
6718
+ #: ../lib/puppet/provider/exec.rb:95
6719
+ msgid "'%{exe}' is not qualified and no path was specified. Please qualify the command or specify a path."
6712
6720
  msgstr ""
6713
6721
 
6714
6722
  #: ../lib/puppet/provider/exec/posix.rb:21 ../lib/puppet/provider/exec/posix.rb:38 ../lib/puppet/provider/exec/windows.rb:40 ../lib/puppet/provider/exec/windows.rb:53
@@ -7022,6 +7030,10 @@ msgstr ""
7022
7030
  msgid "Cannot match %{line}"
7023
7031
  msgstr ""
7024
7032
 
7033
+ #: ../lib/puppet/provider/package/dnfmodule.rb:30
7034
+ msgid "Modules are not supported on DNF versions lower than 3.0.1"
7035
+ msgstr ""
7036
+
7025
7037
  #: ../lib/puppet/provider/package/dpkg.rb:82
7026
7038
  msgid "You cannot install dpkg packages without a source"
7027
7039
  msgstr ""
@@ -7164,6 +7176,10 @@ msgstr ""
7164
7176
  msgid "Refusing to install package group %{resource_name}, because allow_virtual is false."
7165
7177
  msgstr ""
7166
7178
 
7179
+ #: ../lib/puppet/provider/package/pip.rb:55
7180
+ msgid "Cannot resolve pip version"
7181
+ msgstr ""
7182
+
7167
7183
  #: ../lib/puppet/provider/package/pkg.rb:46 ../lib/puppet/provider/package/pkg.rb:56
7168
7184
  msgid "Unknown format %{resource_name}: %{full_flags}[%{bad_flag}]"
7169
7185
  msgstr ""
@@ -7383,7 +7399,7 @@ msgid "Overrides file could not be read, trying again."
7383
7399
  msgstr ""
7384
7400
 
7385
7401
  #. TRANSLATORS 'runsvdir' is a linux service name and should not be translated
7386
- #: ../lib/puppet/provider/service/runit.rb:93
7402
+ #: ../lib/puppet/provider/service/runit.rb:87
7387
7403
  msgid "Waiting 5 seconds for runsvdir to discover service %{service}"
7388
7404
  msgstr ""
7389
7405
 
@@ -7450,15 +7466,15 @@ msgid "ruby-shadow doesn't support %{method}"
7450
7466
  msgstr ""
7451
7467
 
7452
7468
  #: ../lib/puppet/provider/user/windows_adsi.rb:128
7453
- msgid "The user account '%s' is disabled; puppet will not reset the password"
7469
+ msgid "The user account '%s' is disabled; The password will still be changed"
7454
7470
  msgstr ""
7455
7471
 
7456
7472
  #: ../lib/puppet/provider/user/windows_adsi.rb:130
7457
- msgid "The user account '%s' is locked out; puppet will not reset the password"
7473
+ msgid "The user account '%s' is locked out; The password will still be changed"
7458
7474
  msgstr ""
7459
7475
 
7460
7476
  #: ../lib/puppet/provider/user/windows_adsi.rb:132
7461
- msgid "The user account '%s' is expired; puppet will not reset the password"
7477
+ msgid "The user account '%s' is expired; The password will still be changed"
7462
7478
  msgstr ""
7463
7479
 
7464
7480
  #: ../lib/puppet/provider/yumrepo/inifile.rb:185
@@ -7477,7 +7493,7 @@ msgstr ""
7477
7493
  msgid "Could not build docs for indirector %{name}, terminus %{terminus}: could not locate terminus."
7478
7494
  msgstr ""
7479
7495
 
7480
- #: ../lib/puppet/reference/metaparameter.rb:30
7496
+ #: ../lib/puppet/reference/metaparameter.rb:28
7481
7497
  msgid "incorrect metaparams: %{detail}"
7482
7498
  msgstr ""
7483
7499
 
@@ -7511,11 +7527,11 @@ msgid ""
7511
7527
  " - Missing features %{values}\n"
7512
7528
  msgstr ""
7513
7529
 
7514
- #: ../lib/puppet/reference/type.rb:80
7530
+ #: ../lib/puppet/reference/type.rb:76
7515
7531
  msgid "Could not retrieve property %{sname} on type %{type_name}"
7516
7532
  msgstr ""
7517
7533
 
7518
- #: ../lib/puppet/reference/type.rb:83
7534
+ #: ../lib/puppet/reference/type.rb:79
7519
7535
  msgid "No docs for %{type}[%{sname}]"
7520
7536
  msgstr ""
7521
7537
 
@@ -8569,31 +8585,31 @@ msgstr ""
8569
8585
  msgid "Could not find parent provider %{parent} of %{name}"
8570
8586
  msgstr ""
8571
8587
 
8572
- #: ../lib/puppet/type.rb:1931
8588
+ #: ../lib/puppet/type.rb:1929
8573
8589
  msgid "Invalid %{resource} provider '%{provider_class}'"
8574
8590
  msgstr ""
8575
8591
 
8576
- #: ../lib/puppet/type.rb:2014
8592
+ #: ../lib/puppet/type.rb:2012
8577
8593
  msgid "Could not find %{name} provider of %{provider}"
8578
8594
  msgstr ""
8579
8595
 
8580
- #: ../lib/puppet/type.rb:2131
8596
+ #: ../lib/puppet/type.rb:2129
8581
8597
  msgid "You cannot add relationships without a catalog"
8582
8598
  msgstr ""
8583
8599
 
8584
- #: ../lib/puppet/type.rb:2438
8600
+ #: ../lib/puppet/type.rb:2436
8585
8601
  msgid "Unable to mark '%{name}' as sensitive: %{name} is a parameter and not a property, and cannot be automatically redacted."
8586
8602
  msgstr ""
8587
8603
 
8588
- #: ../lib/puppet/type.rb:2441
8604
+ #: ../lib/puppet/type.rb:2439
8589
8605
  msgid "Unable to mark '%{name}' as sensitive: the property itself was not assigned a value."
8590
8606
  msgstr ""
8591
8607
 
8592
- #: ../lib/puppet/type.rb:2443
8608
+ #: ../lib/puppet/type.rb:2441
8593
8609
  msgid "Unable to mark '%{name}' as sensitive: the property itself is not defined on %{type}."
8594
8610
  msgstr ""
8595
8611
 
8596
- #: ../lib/puppet/type.rb:2501
8612
+ #: ../lib/puppet/type.rb:2499
8597
8613
  msgid "Could not set %{attribute} on %{class_name}: %{detail}"
8598
8614
  msgstr ""
8599
8615
 
@@ -8625,59 +8641,59 @@ msgstr ""
8625
8641
  msgid "Command exceeded timeout"
8626
8642
  msgstr ""
8627
8643
 
8628
- #: ../lib/puppet/type/exec.rb:162
8644
+ #: ../lib/puppet/type/exec.rb:166
8629
8645
  msgid "[command redacted] returned %{status} instead of one of [%{expected}]"
8630
8646
  msgstr ""
8631
8647
 
8632
- #: ../lib/puppet/type/exec.rb:164
8648
+ #: ../lib/puppet/type/exec.rb:168
8633
8649
  msgid "'%{cmd}' returned %{status} instead of one of [%{expected}]"
8634
8650
  msgstr ""
8635
8651
 
8636
- #: ../lib/puppet/type/exec.rb:182
8652
+ #: ../lib/puppet/type/exec.rb:186
8637
8653
  msgid "Command must be a String, got value of class %{klass}"
8638
8654
  msgstr ""
8639
8655
 
8640
- #: ../lib/puppet/type/exec.rb:214
8656
+ #: ../lib/puppet/type/exec.rb:218
8641
8657
  msgid "Unable to execute commands as other users on Windows"
8642
8658
  msgstr ""
8643
8659
 
8644
- #: ../lib/puppet/type/exec.rb:216
8660
+ #: ../lib/puppet/type/exec.rb:220
8645
8661
  msgid "Only root can execute commands as other users"
8646
8662
  msgstr ""
8647
8663
 
8648
- #: ../lib/puppet/type/exec.rb:272
8664
+ #: ../lib/puppet/type/exec.rb:276
8649
8665
  msgid "Invalid environment setting '%{value}'"
8650
8666
  msgstr ""
8651
8667
 
8652
- #: ../lib/puppet/type/exec.rb:285
8668
+ #: ../lib/puppet/type/exec.rb:289
8653
8669
  msgid "The umask specification is invalid: %{value}"
8654
8670
  msgstr ""
8655
8671
 
8656
- #: ../lib/puppet/type/exec.rb:301
8672
+ #: ../lib/puppet/type/exec.rb:305
8657
8673
  msgid "The timeout must be a number."
8658
8674
  msgstr ""
8659
8675
 
8660
- #: ../lib/puppet/type/exec.rb:318
8676
+ #: ../lib/puppet/type/exec.rb:322
8661
8677
  msgid "Tries must be an integer"
8662
8678
  msgstr ""
8663
8679
 
8664
- #: ../lib/puppet/type/exec.rb:322
8680
+ #: ../lib/puppet/type/exec.rb:326
8665
8681
  msgid "Tries must be an integer >= 1"
8666
8682
  msgstr ""
8667
8683
 
8668
- #: ../lib/puppet/type/exec.rb:335
8684
+ #: ../lib/puppet/type/exec.rb:339
8669
8685
  msgid "try_sleep must be a number"
8670
8686
  msgstr ""
8671
8687
 
8672
- #: ../lib/puppet/type/exec.rb:339
8688
+ #: ../lib/puppet/type/exec.rb:343
8673
8689
  msgid "try_sleep cannot be a negative number"
8674
8690
  msgstr ""
8675
8691
 
8676
- #: ../lib/puppet/type/exec.rb:454 ../lib/puppet/type/exec.rb:510
8692
+ #: ../lib/puppet/type/exec.rb:458 ../lib/puppet/type/exec.rb:514
8677
8693
  msgid "Check %{value} exceeded timeout"
8678
8694
  msgstr ""
8679
8695
 
8680
- #: ../lib/puppet/type/exec.rb:597
8696
+ #: ../lib/puppet/type/exec.rb:601
8681
8697
  msgid "'%{cmd}' won't be executed because of failed check '%{check}'"
8682
8698
  msgstr ""
8683
8699
 
@@ -8733,34 +8749,34 @@ msgstr ""
8733
8749
  msgid "Could not find filebucket %{backup} specified in backup"
8734
8750
  msgstr ""
8735
8751
 
8736
- #: ../lib/puppet/type/file.rb:729
8752
+ #: ../lib/puppet/type/file.rb:728
8737
8753
  msgid "Could not back up file of type %{current_type}"
8738
8754
  msgstr ""
8739
8755
 
8740
- #: ../lib/puppet/type/file.rb:744
8756
+ #: ../lib/puppet/type/file.rb:743
8741
8757
  msgid "Could not remove files of type %{current_type}"
8742
8758
  msgstr ""
8743
8759
 
8744
8760
  #. TRANSLATORS "source_permissions => ignore" should not be translated
8745
- #: ../lib/puppet/type/file.rb:755
8761
+ #: ../lib/puppet/type/file.rb:754
8746
8762
  msgid "Copying owner/mode/group from the source file on Windows is not supported; use source_permissions => ignore."
8747
8763
  msgstr ""
8748
8764
 
8749
8765
  #. TRANSLATORS "stat" is a program name and should not be translated
8750
- #: ../lib/puppet/type/file.rb:836 ../lib/puppet/type/k5login.rb:97 ../lib/puppet/type/tidy.rb:345
8766
+ #: ../lib/puppet/type/file.rb:835 ../lib/puppet/type/k5login.rb:97 ../lib/puppet/type/tidy.rb:345
8751
8767
  msgid "Could not stat; permission denied"
8752
8768
  msgstr ""
8753
8769
 
8754
- #: ../lib/puppet/type/file.rb:961
8770
+ #: ../lib/puppet/type/file.rb:960
8755
8771
  msgid "Not removing directory; use 'force' to override"
8756
8772
  msgstr ""
8757
8773
 
8758
8774
  #. TRANSLATORS refers to a file which could not be backed up
8759
- #: ../lib/puppet/type/file.rb:986
8775
+ #: ../lib/puppet/type/file.rb:985
8760
8776
  msgid "Could not back up; will not remove"
8761
8777
  msgstr ""
8762
8778
 
8763
- #: ../lib/puppet/type/file.rb:1000
8779
+ #: ../lib/puppet/type/file.rb:999
8764
8780
  msgid "File written to disk did not match checksum; discarding changes (%{content_checksum} vs %{newsum})"
8765
8781
  msgstr ""
8766
8782
 
@@ -8990,6 +9006,10 @@ msgstr ""
8990
9006
  msgid "Must be specified using an absolute path."
8991
9007
  msgstr ""
8992
9008
 
9009
+ #: ../lib/puppet/type/selboolean.rb:26
9010
+ msgid "Invalid value %{value}. %{doc}"
9011
+ msgstr ""
9012
+
8993
9013
  #: ../lib/puppet/type/service.rb:94
8994
9014
  msgid "Setting enable to %{value} is only supported on Microsoft Windows."
8995
9015
  msgstr ""
@@ -9655,7 +9675,7 @@ msgstr ""
9655
9675
  msgid "Could not write crontab for %{path}: %{detail}"
9656
9676
  msgstr ""
9657
9677
 
9658
- #: ../lib/puppet/util/http_proxy.rb:220
9678
+ #: ../lib/puppet/util/http_proxy.rb:214
9659
9679
  msgid "Too many HTTP redirections for %{uri}"
9660
9680
  msgstr ""
9661
9681
 
@@ -9989,7 +10009,7 @@ msgstr ""
9989
10009
  msgid "Could not open SELinux category translation file %{path}."
9990
10010
  msgstr ""
9991
10011
 
9992
- #: ../lib/puppet/util/selinux.rb:247
10012
+ #: ../lib/puppet/util/selinux.rb:249
9993
10013
  msgid "got a relative path in SELinux find_fs: %{path}"
9994
10014
  msgstr ""
9995
10015
 
@@ -10229,39 +10249,39 @@ msgstr ""
10229
10249
  msgid "Failed to open registry key '%{key}\\%{path}'"
10230
10250
  msgstr ""
10231
10251
 
10232
- #: ../lib/puppet/util/windows/registry.rb:128
10252
+ #: ../lib/puppet/util/windows/registry.rb:130
10233
10253
  msgid "Failed to enumerate %{key} registry keys at index %{index}"
10234
10254
  msgstr ""
10235
10255
 
10236
- #: ../lib/puppet/util/windows/registry.rb:159
10256
+ #: ../lib/puppet/util/windows/registry.rb:161
10237
10257
  msgid "Failed to enumerate %{key} registry values at index %{index}"
10238
10258
  msgstr ""
10239
10259
 
10240
- #: ../lib/puppet/util/windows/registry.rb:189
10260
+ #: ../lib/puppet/util/windows/registry.rb:191
10241
10261
  msgid "Failed to query registry %{key} for sizes"
10242
10262
  msgstr ""
10243
10263
 
10244
- #: ../lib/puppet/util/windows/registry.rb:225
10264
+ #: ../lib/puppet/util/windows/registry.rb:227
10245
10265
  msgid "Type mismatch (expect %{rtype} but %{type} present)"
10246
10266
  msgstr ""
10247
10267
 
10248
- #: ../lib/puppet/util/windows/registry.rb:247
10268
+ #: ../lib/puppet/util/windows/registry.rb:249
10249
10269
  msgid "Type %{type} is not supported."
10250
10270
  msgstr ""
10251
10271
 
10252
- #: ../lib/puppet/util/windows/registry.rb:252
10272
+ #: ../lib/puppet/util/windows/registry.rb:254
10253
10273
  msgid "A value in the registry key %{parent_key_name}%{key} is corrupt or invalid"
10254
10274
  msgstr ""
10255
10275
 
10256
- #: ../lib/puppet/util/windows/registry.rb:274
10276
+ #: ../lib/puppet/util/windows/registry.rb:276
10257
10277
  msgid "Failed to read registry value %{value} at %{key}"
10258
10278
  msgstr ""
10259
10279
 
10260
- #: ../lib/puppet/util/windows/registry.rb:292
10280
+ #: ../lib/puppet/util/windows/registry.rb:294
10261
10281
  msgid "Failed to delete registry value %{name} at %{key}"
10262
10282
  msgstr ""
10263
10283
 
10264
- #: ../lib/puppet/util/windows/registry.rb:307
10284
+ #: ../lib/puppet/util/windows/registry.rb:309
10265
10285
  msgid "Failed to delete registry key %{name} at %{key}"
10266
10286
  msgstr ""
10267
10287