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
@@ -59,7 +59,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
59
59
  matches = []
60
60
  uri = "/v3/modules?query=#{term}"
61
61
  if Puppet[:module_groups]
62
- uri += "&module_groups=#{Puppet[:module_groups].gsub('+', ' ')}"
62
+ uri += "&module_groups=#{Puppet[:module_groups].tr('+', ' ')}"
63
63
  end
64
64
 
65
65
  while uri
@@ -95,7 +95,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
95
95
  name = input.tr('/', '-')
96
96
  uri = "/v3/releases?module=#{name}&sort_by=version&exclude_fields=#{MODULE_RELEASE_EXCLUSIONS}"
97
97
  if Puppet[:module_groups]
98
- uri += "&module_groups=#{Puppet[:module_groups].gsub('+', ' ')}"
98
+ uri += "&module_groups=#{Puppet[:module_groups].tr('+', ' ')}"
99
99
  end
100
100
  releases = []
101
101
 
@@ -240,6 +240,6 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
240
240
  def decode_uri(uri)
241
241
  return if uri.nil?
242
242
 
243
- URI.decode(uri.gsub('+', ' '))
243
+ URI.decode(uri.tr('+', ' '))
244
244
  end
245
245
  end
@@ -6,12 +6,12 @@
6
6
  # The first argument to this function should be a `<MODULE NAME>/<TEMPLATE FILE>`
7
7
  # reference, which loads `<TEMPLATE FILE>` from `<MODULE NAME>`'s `templates`
8
8
  # directory. In most cases, the last argument is optional; if used, it should be a
9
- # [hash](/puppet/latest/reference/lang_data_hash.html) that contains parameters to
9
+ # [hash](https://puppet.com/docs/puppet/latest/lang_data_hash.html) that contains parameters to
10
10
  # pass to the template.
11
11
  #
12
- # - See the [template](/puppet/latest/reference/lang_template.html) documentation
13
- # for general template usage information.
14
- # - See the [EPP syntax](/puppet/latest/reference/lang_template_epp.html)
12
+ # - See the [template](https://puppet.com/docs/puppet/latest/lang_template.html)
13
+ # documentation for general template usage information.
14
+ # - See the [EPP syntax](https://puppet.com/docs/puppet/latest/lang_template_epp.html)
15
15
  # documentation for examples of EPP.
16
16
  #
17
17
  # For example, to call the apache module's `templates/vhost/_docroot.epp`
@@ -5,12 +5,12 @@
5
5
  #
6
6
  # The first argument to this function should be a string containing an EPP
7
7
  # template. In most cases, the last argument is optional; if used, it should be a
8
- # [hash](/puppet/latest/reference/lang_data_hash.html) that contains parameters to
8
+ # [hash](https://puppet.com/docs/puppet/latest/lang_data_hash.html) that contains parameters to
9
9
  # pass to the template.
10
10
  #
11
- # - See the [template](/puppet/latest/reference/lang_template.html) documentation
12
- # for general template usage information.
13
- # - See the [EPP syntax](/puppet/latest/reference/lang_template_epp.html)
11
+ # - See the [template](https://puppet.com/docs/puppet/latest/lang_template.html)
12
+ # documentation for general template usage information.
13
+ # - See the [EPP syntax](https://puppet.com/docs/puppet/latest/lang_template_epp.html)
14
14
  # documentation for examples of EPP.
15
15
  #
16
16
  # For example, to evaluate an inline EPP template and pass it the `docroot` and
@@ -28,7 +28,7 @@
28
28
  # `inline_epp` function fails to pass any required parameter.
29
29
  #
30
30
  # An inline EPP template should be written as a single-quoted string or
31
- # [heredoc](/puppet/latest/reference/lang_data_string.html#heredocs).
31
+ # [heredoc](https://puppet.com/docs/puppet/latest/lang_data_string.html#heredocs).
32
32
  # A double-quoted string is subject to expression interpolation before the string
33
33
  # is parsed as an EPP template.
34
34
  #
@@ -11,7 +11,7 @@ module Puppet::ModuleTranslations
11
11
  modules.each do |mod|
12
12
  next unless mod.forge_name && mod.has_translations?(Puppet::GettextConfig.current_locale)
13
13
 
14
- module_name = mod.forge_name.gsub('/', '-')
14
+ module_name = mod.forge_name.tr('/', '-')
15
15
  if Puppet::GettextConfig.load_translations(module_name, mod.locale_directory, :po)
16
16
  Puppet.debug "Loaded translations for #{module_name}."
17
17
  elsif Puppet::GettextConfig.gettext_loaded?
@@ -213,8 +213,8 @@ class Puppet::Graph::RbTreeMap
213
213
  :color => @color,
214
214
  }
215
215
  }
216
- h.merge!(:left => left.to_hash) if @left
217
- h.merge!(:right => right.to_hash) if @right
216
+ h[:left] = left.to_hash if @left
217
+ h[:right] = right.to_hash if @right
218
218
  h
219
219
  end
220
220
 
@@ -133,11 +133,12 @@ class Puppet::Graph::SimpleGraph
133
133
  else
134
134
  if s[:lowlink][vertex] == s[:index][vertex] then
135
135
  this_scc = []
136
- begin
136
+ loop do
137
137
  top = s[:stack].pop
138
138
  s[:seen][top] = false
139
139
  this_scc << top
140
- end until top == vertex
140
+ break if top == vertex
141
+ end
141
142
  s[:scc] << this_scc
142
143
  end
143
144
  recur.pop # done with this node, finally.
@@ -436,8 +437,8 @@ class Puppet::Graph::SimpleGraph
436
437
  # undirected Graph. _params_ can contain any graph property specified in
437
438
  # rdot.rb. If an edge or vertex label is a kind of Hash then the keys
438
439
  # which match +dot+ properties will be used as well.
439
- def to_dot_graph (params = {})
440
- params['name'] ||= self.class.name.gsub(/:/,'_')
440
+ def to_dot_graph(params = {})
441
+ params['name'] ||= self.class.name.tr(':','_')
441
442
  fontsize = params['fontsize'] ? params['fontsize'] : '8'
442
443
  graph = (directed? ? DOT::DOTDigraph : DOT::DOTSubgraph).new(params)
443
444
  edge_klass = directed? ? DOT::DOTDirectedEdge : DOT::DOTEdge
@@ -462,7 +463,7 @@ class Puppet::Graph::SimpleGraph
462
463
  end
463
464
 
464
465
  # Output the dot format as a string
465
- def to_dot (params={}) to_dot_graph(params).to_s; end
466
+ def to_dot(params={}) to_dot_graph(params).to_s; end
466
467
 
467
468
  # Produce the graph files if requested.
468
469
  def write_graph(name)
@@ -15,7 +15,7 @@ module Puppet::FileBucketFile
15
15
  request.options[:bucket_path] ||= Puppet[:bucketdir]
16
16
  # If filebucket mode is 'list'
17
17
  if request.options[:list_all]
18
- return nil unless ::File.exists?(request.options[:bucket_path])
18
+ return nil unless ::File.exist?(request.options[:bucket_path])
19
19
  return list(request)
20
20
  end
21
21
  checksum, files_original_path = request_to_checksum_and_path(request)
@@ -69,6 +69,8 @@ class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
69
69
  end
70
70
  end
71
71
 
72
+ public
73
+
72
74
  def self.hiera_config
73
75
  hiera_config = Puppet.settings[:hiera_config]
74
76
  config = {}
@@ -25,9 +25,7 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
25
25
  res.to_resource
26
26
  end.find_all do |res|
27
27
  conditions.all? {|property, value| res.to_resource[property].to_s == value.to_s}
28
- end.sort do |a,b|
29
- a.title <=> b.title
30
- end
28
+ end.sort_by(&:title)
31
29
  end
32
30
 
33
31
  def save( request )
@@ -1,7 +1,7 @@
1
1
  module Puppet::Resource::Validator
2
2
  def validate_key(request)
3
3
  type, title = request.key.split('/', 2)
4
- unless type.downcase == request.instance.type.downcase and title == request.instance.title
4
+ unless type.casecmp(request.instance.type).zero? and title == request.instance.title
5
5
  raise Puppet::Indirector::ValidationError, _("Resource instance does not match request key")
6
6
  end
7
7
  end
@@ -96,7 +96,7 @@ class Puppet::Interface
96
96
  if Puppet::Interface::FaceCollection[name, :current]
97
97
  raise Puppet::Error, "Could not find version #{version} of #{name}"
98
98
  else
99
- raise Puppet::Error, "Could not find Puppet Face #{name.to_s}"
99
+ raise Puppet::Error, "Could not find Puppet Face #{name}"
100
100
  end
101
101
  end
102
102
 
@@ -234,4 +234,5 @@ class Puppet::Interface
234
234
  define_method(name, proc)
235
235
  instance_method(name)
236
236
  end
237
+ private_class_method :__add_method
237
238
  end
@@ -9,7 +9,6 @@ module Puppet
9
9
  require 'puppet/pops/loader/gem_support'
10
10
  require 'puppet/pops/loader/module_loaders'
11
11
  require 'puppet/pops/loader/dependency_loader'
12
- require 'puppet/pops/loader/null_loader'
13
12
  require 'puppet/pops/loader/static_loader'
14
13
  require 'puppet/pops/loader/runtime3_type_loader'
15
14
  require 'puppet/pops/loader/ruby_function_instantiator'
@@ -123,7 +123,7 @@ module Manager
123
123
 
124
124
  # Now set up autoload any providers that might exist for this type.
125
125
 
126
- klass.providerloader = Puppet::Util::Autoload.new(klass, "puppet/provider/#{klass.name.to_s}")
126
+ klass.providerloader = Puppet::Util::Autoload.new(klass, "puppet/provider/#{klass.name}")
127
127
 
128
128
  # We have to load everything so that we can figure out the default provider.
129
129
  klass.providerloader.loadall Puppet.lookup(:current_environment)
@@ -225,7 +225,7 @@ class Puppet::Module
225
225
  @metadata = data = read_metadata
226
226
  return if data.empty?
227
227
 
228
- @forge_name = data['name'].gsub('-', '/') if data['name']
228
+ @forge_name = data['name'].tr('-', '/') if data['name']
229
229
 
230
230
  [:source, :author, :version, :license, :dependencies].each do |attr|
231
231
  value = data[attr.to_s]
@@ -103,7 +103,7 @@ module Puppet::ModuleTool
103
103
  end
104
104
 
105
105
  # make dir tree, copy files, and add symlinks to the symlinks list
106
- dest = "#{build_path}/#{rel.to_s}"
106
+ dest = "#{build_path}/#{rel}"
107
107
  if File.directory? path
108
108
  FileUtils.mkdir dest, :mode => File.stat(path).mode
109
109
  elsif Puppet::FileSystem.symlink? path
@@ -304,7 +304,7 @@ module Puppet::ModuleTool
304
304
  @environment.modules_by_path[options[:target_dir]].each do |mod|
305
305
  if mod.has_metadata?
306
306
  metadata = {
307
- :name => mod.forge_name.gsub('/', '-'),
307
+ :name => mod.forge_name.tr('/', '-'),
308
308
  :version => mod.version
309
309
  }
310
310
  next if release[:module] == metadata[:name]
@@ -53,7 +53,7 @@ module Puppet::ModuleTool
53
53
 
54
54
  def find_installed_module
55
55
  @environment.modules_by_path.values.flatten.each do |mod|
56
- mod_name = (mod.forge_name || mod.name).gsub('/', '-')
56
+ mod_name = (mod.forge_name || mod.name).tr('/', '-')
57
57
  if mod_name == @name
58
58
  @unfiltered << {
59
59
  :name => mod_name,
@@ -102,7 +102,7 @@ module Puppet::ModuleTool
102
102
  if mod.has_metadata? && !changes.empty?
103
103
  raise LocalChangesError,
104
104
  :action => :uninstall,
105
- :module_name => (mod.forge_name || mod.name).gsub('/', '-'),
105
+ :module_name => (mod.forge_name || mod.name).tr('/', '-'),
106
106
  :requested_version => @options[:version],
107
107
  :installed_version => mod.version
108
108
  end
@@ -110,7 +110,7 @@ module Puppet::ModuleTool
110
110
 
111
111
  if !@options[:force] && !mod.required_by.empty?
112
112
  raise ModuleIsRequiredError,
113
- :module_name => (mod.forge_name || mod.name).gsub('/', '-'),
113
+ :module_name => (mod.forge_name || mod.name).tr('/', '-'),
114
114
  :required_by => mod.required_by,
115
115
  :requested_version => @options[:version],
116
116
  :installed_version => mod.version
@@ -103,7 +103,7 @@ module Puppet::ModuleTool
103
103
 
104
104
  contents = data.keys.map do |k|
105
105
  value = (Puppet::Util::Json.dump(data[k], :pretty => true) rescue data[k].to_json)
106
- %Q("#{k.to_s}": #{value})
106
+ %Q("#{k}": #{value})
107
107
  end
108
108
 
109
109
  "{\n" + contents.join(",\n").gsub(/^/, ' ') + "\n}\n"
@@ -8,12 +8,12 @@ module Puppet::ModuleTool::Shared
8
8
  @installed = Hash.new { |h,k| h[k] = [] }
9
9
 
10
10
  @environment.modules_by_path.values.flatten.each do |mod|
11
- mod_name = (mod.forge_name || mod.name).gsub('/', '-')
11
+ mod_name = (mod.forge_name || mod.name).tr('/', '-')
12
12
  @installed[mod_name] << mod
13
13
  d = @local["#{mod_name}@#{mod.version}"]
14
14
  (mod.dependencies || []).each do |hash|
15
15
  name, conditions = hash['name'], hash['version_requirement']
16
- name = name.gsub('/', '-')
16
+ name = name.tr('/', '-')
17
17
  d[name] = conditions
18
18
  @conditions[name] << {
19
19
  :module => mod_name,
@@ -34,7 +34,7 @@ module Puppet::ModuleTool::Shared
34
34
  info = forge.remote_dependency_info(author, modname, @options[:version])
35
35
  info.each do |pair|
36
36
  mod_name, releases = pair
37
- mod_name = mod_name.gsub('/', '-')
37
+ mod_name = mod_name.tr('/', '-')
38
38
  releases.each do |rel|
39
39
  semver = SemanticPuppet::Version.parse(rel['version']) rescue SemanticPuppet::Version::MIN
40
40
  @versions[mod_name] << { :vstring => rel['version'], :semver => semver }
@@ -42,7 +42,7 @@ module Puppet::ModuleTool::Shared
42
42
  @urls["#{mod_name}@#{rel['version']}"] = rel['file']
43
43
  d = @remote["#{mod_name}@#{rel['version']}"]
44
44
  (rel['dependencies'] || []).each do |name, conditions|
45
- d[name.gsub('/', '-')] = conditions
45
+ d[name.tr('/', '-')] = conditions
46
46
  end
47
47
  end
48
48
  end
@@ -93,7 +93,7 @@ class Puppet::ModuleTool::Tar::Mini
93
93
  def find_valid_files(tarfile)
94
94
  Archive::Tar::Minitar.open(tarfile).collect do |entry|
95
95
  flag = entry.typeflag
96
- if flag.nil? || flag =~ /[[:digit:]]/ && (0..7).include?(flag.to_i)
96
+ if flag.nil? || flag =~ /[[:digit:]]/ && (0..7).cover?(flag.to_i)
97
97
  entry.full_name
98
98
  else
99
99
  Puppet.debug "Invalid tar flag '#{flag}' will not be extracted: #{entry.name}"
@@ -114,6 +114,17 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
114
114
  [indirection, method, key, params]
115
115
  end
116
116
 
117
+ def self.request_to_uri(request)
118
+ uri, body = request_to_uri_and_body(request)
119
+ "#{uri}?#{body}"
120
+ end
121
+
122
+ def self.request_to_uri_and_body(request)
123
+ url_prefix = IndirectionType.url_prefix_for(request.indirection_name.to_s)
124
+ indirection = request.method == :search ? pluralize(request.indirection_name.to_s) : request.indirection_name.to_s
125
+ ["#{url_prefix}/#{indirection}/#{Puppet::Util.uri_encode(request.key)}", "environment=#{request.environment.name}&#{request.query_string}"]
126
+ end
127
+
117
128
  private
118
129
 
119
130
  # Execute our find.
@@ -246,20 +257,10 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
246
257
  method
247
258
  end
248
259
 
249
- def self.request_to_uri(request)
250
- uri, body = request_to_uri_and_body(request)
251
- "#{uri}?#{body}"
252
- end
253
-
254
- def self.request_to_uri_and_body(request)
255
- url_prefix = IndirectionType.url_prefix_for(request.indirection_name.to_s)
256
- indirection = request.method == :search ? pluralize(request.indirection_name.to_s) : request.indirection_name.to_s
257
- ["#{url_prefix}/#{indirection}/#{Puppet::Util.uri_encode(request.key)}", "environment=#{request.environment.name}&#{request.query_string}"]
258
- end
259
-
260
260
  def self.pluralize(indirection)
261
261
  return(indirection == "status" ? "statuses" : indirection + "s")
262
262
  end
263
+ private_class_method :pluralize
263
264
 
264
265
  def plurality(indirection)
265
266
  # NOTE These specific hooks for paths are ridiculous, but it's a *many*-line
@@ -311,19 +311,17 @@ module Puppet::Network::HTTP
311
311
  rescue => exception
312
312
  elapsed = (Time.now - start).to_f.round(3)
313
313
  uri = [@site.addr, request.path.split('?')[0]].join('/')
314
- eclass = exception.class
315
-
316
- err = case exception
317
- when EOFError
318
- eclass.new(_('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
319
- when Timeout::Error
320
- eclass.new(_('request %{uri} timed out after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
321
- else
322
- eclass.new(_('request %{uri} failed: %{msg}') % {uri: uri, msg: exception.message})
323
- end
324
314
 
325
- err.set_backtrace(exception.backtrace) unless exception.backtrace.empty?
326
- raise err
315
+ case exception
316
+ when EOFError
317
+ Puppet.log_exception(exception, _('request %{uri} interrupted after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
318
+ when Timeout::Error
319
+ Puppet.log_exception(exception, _('request %{uri} timed out after %{elapsed} seconds') % {uri: uri, elapsed: elapsed})
320
+ else
321
+ Puppet.log_exception(exception, _('request %{uri} failed: %{msg}') % {uri: uri, msg: exception.message})
322
+ end
323
+
324
+ raise exception
327
325
  end
328
326
 
329
327
  def with_connection(site, &block)
@@ -90,6 +90,8 @@ class Puppet::Network::HTTP::Pool
90
90
  #
91
91
  # @api private
92
92
  def setsockopts(netio)
93
+ return unless netio
94
+
93
95
  socket = netio.io
94
96
  socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true)
95
97
  end
@@ -52,7 +52,7 @@ class Puppet::Network::HTTP::RackREST
52
52
  # Retrieve all headers from the http request, as a map.
53
53
  def headers(request)
54
54
  headers = request.env.select {|k,v| k.start_with? 'HTTP_'}.inject({}) do |m, (k,v)|
55
- m[k.sub(/^HTTP_/, '').gsub('_','-').downcase] = v
55
+ m[k.sub(/^HTTP_/, '').tr('_','-').downcase] = v
56
56
  m
57
57
  end
58
58
  headers['content-type'] = request.content_type
@@ -113,7 +113,7 @@ class Puppet::Network::HTTP::RackREST
113
113
  # in contrast to the environment variable, the client cert is passed in
114
114
  # as single string, therefore restore the certificate to a valid pem
115
115
  # encoded certificate
116
- cert.gsub!(/ /, "\n")
116
+ cert.tr!(' ', "\n")
117
117
  cert.gsub!(/BEGIN\nCERT/, "BEGIN CERT")
118
118
  cert.gsub!(/END\nCERT/, "END CERT")
119
119
  cert = Puppet::SSL::Certificate.from_instance(OpenSSL::X509::Certificate.new(cert))
@@ -15,7 +15,7 @@ class Puppet::Network::HTTP::Site
15
15
  end
16
16
 
17
17
  def addr
18
- "#{@scheme}://#{@host}:#{@port.to_s}"
18
+ "#{@scheme}://#{@host}:#{@port}"
19
19
  end
20
20
  alias to_s addr
21
21
 
@@ -18,7 +18,7 @@ module Puppet::Network::Resolver
18
18
  when :ca then service = '_x-puppet-ca'
19
19
  when :report then service = '_x-puppet-report'
20
20
  when :file then service = '_x-puppet-fileserver'
21
- else service = "_x-puppet-#{service_name.to_s}"
21
+ else service = "_x-puppet-#{service_name}"
22
22
  end
23
23
  srv_record = "#{service}._tcp.#{domain}"
24
24
 
@@ -33,7 +33,7 @@ module Puppet::Network::Resolver
33
33
  else
34
34
  each_priority(records) do |priority, recs|
35
35
  while next_rr = recs.delete(find_weighted_server(recs))
36
- Puppet.debug "Yielding next server of #{next_rr.target.to_s}:#{next_rr.port}"
36
+ Puppet.debug "Yielding next server of #{next_rr.target}:#{next_rr.port}"
37
37
  yield next_rr.target.to_s, next_rr.port
38
38
  end
39
39
  end
@@ -507,8 +507,7 @@ class Puppet::Node::Environment
507
507
  [self.class, name, full_modulepath, manifest].hash
508
508
  end
509
509
 
510
- private
511
-
510
+ # not private so it can be called in tests
512
511
  def self.extralibs()
513
512
  if Puppet::Util.get_env('PUPPETLIB')
514
513
  split_path(Puppet::Util.get_env('PUPPETLIB'))
@@ -517,11 +516,14 @@ class Puppet::Node::Environment
517
516
  end
518
517
  end
519
518
 
519
+ private
520
+
520
521
  def self.expand_dirs(dirs)
521
522
  dirs.collect do |dir|
522
523
  Puppet::FileSystem.expand_path(dir)
523
524
  end
524
525
  end
526
+ private_class_method :expand_dirs
525
527
 
526
528
  # Reparse the manifests for the given environment
527
529
  #