bolt 3.16.1 → 3.20.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bolt might be problematic. Click here for more details.

Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/Puppetfile +14 -14
  3. data/bolt-modules/boltlib/lib/puppet/functions/run_script.rb +1 -4
  4. data/bolt-modules/boltlib/lib/puppet/functions/upload_file.rb +1 -4
  5. data/bolt-modules/file/lib/puppet/functions/file/exists.rb +1 -4
  6. data/bolt-modules/file/lib/puppet/functions/file/read.rb +1 -4
  7. data/bolt-modules/file/lib/puppet/functions/file/readable.rb +1 -4
  8. data/lib/bolt/analytics.rb +2 -2
  9. data/lib/bolt/application.rb +24 -17
  10. data/lib/bolt/applicator.rb +7 -6
  11. data/lib/bolt/apply_inventory.rb +3 -3
  12. data/lib/bolt/apply_result.rb +2 -2
  13. data/lib/bolt/bolt_option_parser.rb +15 -0
  14. data/lib/bolt/catalog.rb +10 -11
  15. data/lib/bolt/cli.rb +24 -26
  16. data/lib/bolt/config/modulepath.rb +1 -1
  17. data/lib/bolt/config/options.rb +32 -13
  18. data/lib/bolt/config/transport/base.rb +4 -4
  19. data/lib/bolt/config/transport/docker.rb +2 -2
  20. data/lib/bolt/config/transport/local.rb +2 -2
  21. data/lib/bolt/config/transport/lxd.rb +2 -2
  22. data/lib/bolt/config/transport/options.rb +3 -2
  23. data/lib/bolt/config/transport/orch.rb +2 -2
  24. data/lib/bolt/config/transport/podman.rb +2 -2
  25. data/lib/bolt/config/transport/remote.rb +2 -2
  26. data/lib/bolt/config/transport/ssh.rb +2 -2
  27. data/lib/bolt/config/transport/winrm.rb +2 -2
  28. data/lib/bolt/config.rb +5 -5
  29. data/lib/bolt/container_result.rb +2 -2
  30. data/lib/bolt/error.rb +1 -1
  31. data/lib/bolt/executor.rb +17 -14
  32. data/lib/bolt/fiber_executor.rb +2 -2
  33. data/lib/bolt/inventory/group.rb +4 -4
  34. data/lib/bolt/inventory/inventory.rb +64 -41
  35. data/lib/bolt/inventory/options.rb +1 -1
  36. data/lib/bolt/inventory/target.rb +1 -1
  37. data/lib/bolt/inventory.rb +10 -17
  38. data/lib/bolt/module_installer/installer.rb +2 -2
  39. data/lib/bolt/module_installer/puppetfile/forge_module.rb +1 -1
  40. data/lib/bolt/module_installer/puppetfile/git_module.rb +1 -1
  41. data/lib/bolt/module_installer/puppetfile/module.rb +1 -1
  42. data/lib/bolt/module_installer/puppetfile.rb +3 -3
  43. data/lib/bolt/module_installer/resolver.rb +3 -3
  44. data/lib/bolt/module_installer/specs/forge_spec.rb +1 -1
  45. data/lib/bolt/module_installer/specs/git_spec.rb +1 -1
  46. data/lib/bolt/module_installer/specs.rb +3 -3
  47. data/lib/bolt/module_installer.rb +6 -6
  48. data/lib/bolt/node/errors.rb +1 -1
  49. data/lib/bolt/node/output.rb +1 -1
  50. data/lib/bolt/outputter/human.rb +2 -2
  51. data/lib/bolt/outputter/logger.rb +1 -1
  52. data/lib/bolt/outputter/rainbow.rb +1 -1
  53. data/lib/bolt/outputter.rb +4 -4
  54. data/lib/bolt/pal/logging.rb +1 -1
  55. data/lib/bolt/pal/yaml_plan/evaluator.rb +1 -1
  56. data/lib/bolt/pal/yaml_plan/loader.rb +2 -2
  57. data/lib/bolt/pal/yaml_plan/step.rb +11 -11
  58. data/lib/bolt/pal/yaml_plan/transpiler.rb +3 -3
  59. data/lib/bolt/pal/yaml_plan.rb +2 -2
  60. data/lib/bolt/pal.rb +11 -11
  61. data/lib/bolt/plan_creator.rb +87 -10
  62. data/lib/bolt/plan_result.rb +2 -2
  63. data/lib/bolt/plugin/cache.rb +2 -2
  64. data/lib/bolt/plugin/module.rb +1 -1
  65. data/lib/bolt/plugin.rb +18 -24
  66. data/lib/bolt/project.rb +4 -4
  67. data/lib/bolt/project_manager/config_migrator.rb +1 -1
  68. data/lib/bolt/project_manager/inventory_migrator.rb +1 -1
  69. data/lib/bolt/project_manager/migrator.rb +1 -1
  70. data/lib/bolt/project_manager/module_migrator.rb +5 -5
  71. data/lib/bolt/project_manager.rb +23 -4
  72. data/lib/bolt/puppetdb/config.rb +1 -1
  73. data/lib/bolt/puppetdb.rb +3 -3
  74. data/lib/bolt/result.rb +1 -1
  75. data/lib/bolt/shell/bash.rb +14 -8
  76. data/lib/bolt/shell/powershell.rb +23 -4
  77. data/lib/bolt/shell.rb +2 -2
  78. data/lib/bolt/target.rb +2 -2
  79. data/lib/bolt/transport/base.rb +1 -1
  80. data/lib/bolt/transport/docker/connection.rb +1 -1
  81. data/lib/bolt/transport/docker.rb +2 -2
  82. data/lib/bolt/transport/local/connection.rb +2 -2
  83. data/lib/bolt/transport/local.rb +3 -3
  84. data/lib/bolt/transport/lxd/connection.rb +1 -1
  85. data/lib/bolt/transport/lxd.rb +4 -4
  86. data/lib/bolt/transport/orch.rb +2 -2
  87. data/lib/bolt/transport/podman/connection.rb +1 -1
  88. data/lib/bolt/transport/podman.rb +2 -2
  89. data/lib/bolt/transport/remote.rb +2 -2
  90. data/lib/bolt/transport/simple.rb +3 -3
  91. data/lib/bolt/transport/ssh/connection.rb +3 -3
  92. data/lib/bolt/transport/ssh.rb +5 -5
  93. data/lib/bolt/transport/winrm/connection.rb +2 -2
  94. data/lib/bolt/transport/winrm.rb +3 -3
  95. data/lib/bolt/util.rb +11 -31
  96. data/lib/bolt/validator.rb +1 -1
  97. data/lib/bolt/version.rb +1 -1
  98. data/lib/bolt.rb +1 -1
  99. data/lib/bolt_server/transport_app.rb +27 -6
  100. data/lib/bolt_spec/bolt_context.rb +7 -5
  101. data/lib/bolt_spec/plans/mock_executor.rb +3 -3
  102. data/lib/bolt_spec/run.rb +1 -1
  103. data/libexec/bolt_catalog +1 -1
  104. metadata +6 -6
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/logger'
4
- require 'bolt/node/errors'
5
- require 'bolt/transport/simple'
3
+ require_relative '../../bolt/logger'
4
+ require_relative '../../bolt/node/errors'
5
+ require_relative '../../bolt/transport/simple'
6
6
 
7
7
  module Bolt
8
8
  module Transport
@@ -23,4 +23,4 @@ module Bolt
23
23
  end
24
24
  end
25
25
 
26
- require 'bolt/transport/lxd/connection'
26
+ require_relative 'lxd/connection'
@@ -4,8 +4,8 @@ require 'base64'
4
4
  require 'find'
5
5
  require 'json'
6
6
  require 'pathname'
7
- require 'bolt/transport/base'
8
- require 'bolt/transport/orch/connection'
7
+ require_relative '../../bolt/transport/base'
8
+ require_relative 'orch/connection'
9
9
 
10
10
  module Bolt
11
11
  module Transport
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'logging'
4
- require 'bolt/node/errors'
4
+ require_relative '../../../bolt/node/errors'
5
5
 
6
6
  module Bolt
7
7
  module Transport
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'json'
4
4
  require 'shellwords'
5
- require 'bolt/transport/base'
5
+ require_relative '../../bolt/transport/base'
6
6
 
7
7
  module Bolt
8
8
  module Transport
@@ -16,4 +16,4 @@ module Bolt
16
16
  end
17
17
  end
18
18
 
19
- require 'bolt/transport/podman/connection'
19
+ require_relative 'podman/connection'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/task'
4
- require 'bolt/transport/base'
3
+ require_relative '../../bolt/task'
4
+ require_relative '../../bolt/transport/base'
5
5
 
6
6
  module Bolt
7
7
  module Transport
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'logging'
4
- require 'bolt/result'
5
- require 'bolt/shell'
6
- require 'bolt/transport/base'
4
+ require_relative '../../bolt/result'
5
+ require_relative '../../bolt/shell'
6
+ require_relative '../../bolt/transport/base'
7
7
 
8
8
  module Bolt
9
9
  module Transport
@@ -2,9 +2,9 @@
2
2
 
3
3
  require 'logging'
4
4
  require 'shellwords'
5
- require 'bolt/node/errors'
6
- require 'bolt/node/output'
7
- require 'bolt/util'
5
+ require_relative '../../../bolt/node/errors'
6
+ require_relative '../../../bolt/node/output'
7
+ require_relative '../../../bolt/util'
8
8
 
9
9
  module Bolt
10
10
  module Transport
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/logger'
4
- require 'bolt/node/errors'
5
- require 'bolt/transport/simple'
3
+ require_relative '../../bolt/logger'
4
+ require_relative '../../bolt/node/errors'
5
+ require_relative '../../bolt/transport/simple'
6
6
 
7
7
  module Bolt
8
8
  module Transport
@@ -44,5 +44,5 @@ module Bolt
44
44
  end
45
45
  end
46
46
 
47
- require 'bolt/transport/ssh/connection'
48
- require 'bolt/transport/ssh/exec_connection'
47
+ require_relative 'ssh/connection'
48
+ require_relative 'ssh/exec_connection'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/node/errors'
4
- require 'bolt/node/output'
3
+ require_relative '../../../bolt/node/errors'
4
+ require_relative '../../../bolt/node/output'
5
5
 
6
6
  module Bolt
7
7
  module Transport
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/node/errors'
4
- require 'bolt/transport/base'
3
+ require_relative '../../bolt/node/errors'
4
+ require_relative '../../bolt/transport/base'
5
5
 
6
6
  module Bolt
7
7
  module Transport
@@ -30,4 +30,4 @@ module Bolt
30
30
  end
31
31
  end
32
32
 
33
- require 'bolt/transport/winrm/connection'
33
+ require_relative 'winrm/connection'
data/lib/bolt/util.rb CHANGED
@@ -65,6 +65,9 @@ module Bolt
65
65
  raise Bolt::FileError.new("Could not parse #{file_name} file at #{path}, line #{e.line}, "\
66
66
  "column #{e.column}\n#{e.problem}",
67
67
  path)
68
+ rescue Psych::BadAlias => e
69
+ raise Bolt::FileError.new('Bolt does not support the use of aliases in YAML files. Alias '\
70
+ "detected in #{file_name} file at #{path}\n#{e.message}", path)
68
71
  rescue Psych::Exception => e
69
72
  raise Bolt::FileError.new("Could not parse #{file_name} file at #{path}\n#{e.message}",
70
73
  path)
@@ -103,7 +106,7 @@ module Bolt
103
106
  # absolute path or Puppet module syntax lookup. Returns the path to the
104
107
  # file if found, or nil.
105
108
  #
106
- def find_file_from_scope(file, scope, fallback = false)
109
+ def find_file_from_scope(file, scope)
107
110
  # If we got an absolute path, just return that.
108
111
  return file if Pathname.new(file).absolute?
109
112
 
@@ -112,44 +115,21 @@ module Bolt
112
115
  mod_path = scope.compiler.environment.module(module_name)&.path
113
116
 
114
117
  # Search the module for the file, falling back to new-style paths if enabled.
115
- find_file_in_module(mod_path, file_pattern, fallback) if mod_path
118
+ search_module(mod_path, file_pattern) if mod_path
116
119
  end
117
120
 
118
- # This method is used by Bolt to find files when provided a
119
- # module-style path without loading Puppet. It takes the absolute path to
120
- # the module root and the module-style path minus the module name and
121
- # searches subdirectories in the module in order of precedence.
121
+ # This searches a module for files under 'files/' or 'scripts/', falling
122
+ # back to the new style of file loading. It takes the absolute path to the
123
+ # module root and the relative path provided by the user.
122
124
  #
123
- def find_file_in_module(module_path, module_file, fallback = false)
124
- # If the first part of the path is 'scripts' or 'files', the path may
125
- # be a new-style file location and should fall back to the new path.
126
- subdir_or_file = split_path(module_file).first
127
- case subdir_or_file
128
- # For any subdirs that may indicate the user passed a new-style path,
129
- # first look in 'mymod/files/<relative_path>' (old-style) then fall
130
- # back to 'mymod/<relative_path>' (new-style) if enabled.
131
- when 'scripts', 'files'
132
- search_module(module_path, module_file, fallback)
133
- else
134
- # If the path definitely isn't new-style, only look in the 'files/'
135
- # directory.
136
- search_module(module_path, module_file)
137
- end
138
- end
139
-
140
- # This searches a module for files under 'files/' or 'scripts/',
141
- # optionally falling back to the new style of file loading. It takes the
142
- # absolute path to the module root, the relative path provided by the
143
- # user, and whether to fall back to the new-style script loading if the
144
- # file isn't found in 'files/'.
145
- #
146
- private def search_module(module_path, module_file, fallback = false)
125
+ def search_module(module_path, module_file)
147
126
  if File.exist?(File.join(module_path, 'files', module_file))
148
127
  File.join(module_path, 'files', module_file)
149
- elsif File.exist?(File.join(module_path, module_file)) && fallback
128
+ elsif File.exist?(File.join(module_path, module_file))
150
129
  File.join(module_path, module_file)
151
130
  end
152
131
  end
132
+ alias find_file_in_module search_module
153
133
 
154
134
  # Copied directly from puppet/lib/puppet/parser/files.rb
155
135
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/error'
3
+ require_relative '../bolt/error'
4
4
 
5
5
  # This class validates config against a schema, raising an error that includes
6
6
  # details about any invalid configuration.
data/lib/bolt/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bolt
4
- VERSION = '3.16.1'
4
+ VERSION = '3.20.0'
5
5
  end
data/lib/bolt.rb CHANGED
@@ -4,5 +4,5 @@
4
4
  require 'logging_extensions/logging'
5
5
 
6
6
  module Bolt
7
- require 'bolt/executor'
7
+ require_relative 'bolt/executor'
8
8
  end
@@ -184,6 +184,7 @@ module BoltServer
184
184
  search_dirs << mod.pluginfacts if mod.pluginfacts?
185
185
  if tarball_type == 'all_plugins'
186
186
  search_dirs << mod.files if mod.files?
187
+ search_dirs << mod.scripts if mod.scripts?
187
188
  type_files = "#{mod.path}/types"
188
189
  search_dirs << type_files if File.exist?(type_files)
189
190
  end
@@ -413,6 +414,8 @@ module BoltServer
413
414
  'path' => case mount_segment
414
415
  when 'files'
415
416
  "/puppet/v3/file_content/modules/#{module_segment}/#{name_segment}"
417
+ when 'scripts'
418
+ "/puppet/v3/file_content/scripts/#{module_segment}/#{name_segment}"
416
419
  when 'tasks'
417
420
  "/puppet/v3/file_content/tasks/#{module_segment}/#{name_segment}"
418
421
  when 'lib'
@@ -462,28 +465,46 @@ module BoltServer
462
465
  end
463
466
 
464
467
  def file_metadatas(versioned_project, module_name, file)
465
- abs_file_path = @pal_mutex.synchronize do
468
+ result = @pal_mutex.synchronize do
466
469
  bolt_config = config_from_project(versioned_project)
467
470
  pal = pal_from_project_bolt_config(bolt_config)
468
471
  pal.in_bolt_compiler do
469
472
  mod = Puppet.lookup(:current_environment).module(module_name)
470
473
  raise BoltServer::RequestError, "module_name: '#{module_name}' does not exist" unless mod
471
- mod.file(file)
474
+ # First, look in the 'old' location <module>/files/<path>.
475
+ # If not found, and the path starts with `files` or `scripts`, munge
476
+ # the path and look inside that directory.
477
+ if (abs_path = mod.file(file))
478
+ { abs_file_path: abs_path, puppetserver_root: "modules/#{module_name}/#{file}" }
479
+ else
480
+ subdir, relative_path = file.split(File::SEPARATOR, 2)
481
+ abs_path, mount = case subdir
482
+ when 'files'
483
+ [mod.file(relative_path), 'modules']
484
+ when 'scripts'
485
+ [mod.script(relative_path), 'scripts']
486
+ end
487
+ next nil unless abs_path
488
+ { abs_file_path: abs_path, puppetserver_root: "#{mount}/#{module_name}/#{relative_path}" }
489
+ end
472
490
  end
473
491
  end
474
492
 
475
- unless abs_file_path
493
+ unless result
476
494
  raise BoltServer::RequestError,
477
- "file: '#{file}' does not exist inside the module's 'files' directory"
495
+ "file: '#{file}' does not exist inside #{module_name} 'files' or 'scripts' directories"
478
496
  end
479
497
 
498
+ abs_file_path = result[:abs_file_path]
499
+ puppetserver_root = result[:puppetserver_root]
500
+
480
501
  fileset = Puppet::FileServing::Fileset.new(abs_file_path, 'recurse' => 'yes')
481
502
  Puppet::FileServing::Fileset.merge(fileset).collect do |relative_file_path, base_path|
482
503
  metadata = Puppet::FileServing::Metadata.new(base_path, relative_path: relative_file_path)
483
504
  metadata.checksum_type = 'sha256'
484
505
  metadata.links = 'follow'
485
506
  metadata.collect
486
- metadata.to_data_hash
507
+ metadata.to_data_hash.merge(puppetserver_root: puppetserver_root)
487
508
  end
488
509
  end
489
510
 
@@ -832,7 +853,7 @@ module BoltServer
832
853
  }
833
854
 
834
855
  connect_plugin = BoltServer::Plugin::PuppetConnectData.new(body['puppet_connect_data'])
835
- plugins = Bolt::Plugin.setup(context[:config], context[:pal], load_plugins: false)
856
+ plugins = Bolt::Plugin.new(context[:config], context[:pal], load_plugins: false)
836
857
  plugins.add_plugin(connect_plugin)
837
858
  %w[aws_inventory azure_inventory gcloud_inventory].each do |plugin_name|
838
859
  plugins.add_module_plugin(plugin_name) if plugins.known_plugin?(plugin_name)
@@ -39,13 +39,15 @@ require 'bolt/plugin'
39
39
  #
40
40
  # Stubs:
41
41
  # - allow_command(cmd), expect_command(cmd): expect the exact command
42
- # - allow_script(script), expect_script(script): expect the script as <module>/path/to/file
42
+ # - allow_script(script), expect_script(script): expect the script as <module>/path/to/file or an absolute path
43
43
  # - allow_task(task), expect_task(task): expect the named task
44
44
  # - allow_download(file), expect_download(file): expect the identified source file
45
- # - allow_upload(file), expect_upload(file): expect the identified source file
45
+ # - allow_upload(file), expect_upload(file): expect the source file as <module>/path/to/file or an absolute path
46
46
  # - allow_out_message, expect_out_message: expect a message to be passed to out::message (only modifiers are
47
47
  # be_called_times(n), with_params(params), and not_be_called)
48
48
  #
49
+ # Files with absolute path (for upload and script) must exist or those functions will fail.
50
+ #
49
51
  # Stub modifiers:
50
52
  # - be_called_times(n): if allowed, fail if the action is called more than 'n' times
51
53
  # if expected, fail unless the action is called 'n' times
@@ -154,7 +156,7 @@ module BoltSpec
154
156
  end
155
157
 
156
158
  def plugins
157
- @plugins ||= Bolt::Plugin.setup(config, pal)
159
+ @plugins ||= Bolt::Plugin.new(config, pal)
158
160
  end
159
161
 
160
162
  def pal
@@ -211,8 +213,8 @@ module BoltSpec
211
213
  # def allow_script(script_name)
212
214
  #
213
215
  # file uploads and downloads have a single destination and no arguments
214
- # def allow_file_upload(source_name)
215
- # def allow_file_download(source_name)
216
+ # def allow_upload(source_name)
217
+ # def allow_download(source_name)
216
218
  #
217
219
  # Most of the information in commands is in the command string itself
218
220
  # we may need more flexible allows than just the name/command string
@@ -44,7 +44,7 @@ module BoltSpec
44
44
 
45
45
  def module_file_id(file)
46
46
  modpath = @modulepath.select { |path| file =~ /^#{path}/ }
47
- raise "Could not identify modulepath containing #{file}: #{modpath}" unless modpath.size == 1
47
+ return nil unless modpath.size == 1
48
48
 
49
49
  path = Pathname.new(file)
50
50
  relative = path.relative_path_from(Pathname.new(modpath.first))
@@ -66,7 +66,7 @@ module BoltSpec
66
66
  end
67
67
 
68
68
  def run_script(targets, script_path, arguments, options = {}, _position = [])
69
- script = module_file_id(script_path)
69
+ script = module_file_id(script_path) || script_path
70
70
  result = nil
71
71
  if (doub = @script_doubles[script] || @script_doubles[:default])
72
72
  result = doub.process(targets, script, arguments, options)
@@ -116,7 +116,7 @@ module BoltSpec
116
116
  end
117
117
 
118
118
  def upload_file(targets, source_path, destination, options = {}, _position = [])
119
- source = module_file_id(source_path)
119
+ source = module_file_id(source_path) || source_path
120
120
  result = nil
121
121
  if (doub = @upload_doubles[source] || @upload_doubles[:default])
122
122
  result = doub.process(targets, source, destination, options)
data/lib/bolt_spec/run.rb CHANGED
@@ -171,7 +171,7 @@ module BoltSpec
171
171
  end
172
172
 
173
173
  def plugins
174
- @plugins ||= Bolt::Plugin.setup(config, pal)
174
+ @plugins ||= Bolt::Plugin.new(config, pal)
175
175
  end
176
176
 
177
177
  def puppetdb_client
data/libexec/bolt_catalog CHANGED
@@ -59,7 +59,7 @@ when "compile"
59
59
  puts({ message: message, backtrace: e.backtrace }.to_json)
60
60
  exit 1
61
61
  rescue StandardError => e
62
- puts({ message: e.message }.to_json)
62
+ puts({ message: e.message, backtrace: e.backtrace }.to_json)
63
63
  exit 1
64
64
  end
65
65
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolt
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.16.1
4
+ version: 3.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -260,14 +260,14 @@ dependencies:
260
260
  requirements:
261
261
  - - "~>"
262
262
  - !ruby/object:Gem::Version
263
- version: '3.1'
263
+ version: '3.10'
264
264
  type: :runtime
265
265
  prerelease: false
266
266
  version_requirements: !ruby/object:Gem::Requirement
267
267
  requirements:
268
268
  - - "~>"
269
269
  - !ruby/object:Gem::Version
270
- version: '3.1'
270
+ version: '3.10'
271
271
  - !ruby/object:Gem::Dependency
272
272
  name: ruby_smb
273
273
  requirement: !ruby/object:Gem::Requirement
@@ -288,14 +288,14 @@ dependencies:
288
288
  requirements:
289
289
  - - "~>"
290
290
  - !ruby/object:Gem::Version
291
- version: '1.8'
291
+ version: '3.0'
292
292
  type: :runtime
293
293
  prerelease: false
294
294
  version_requirements: !ruby/object:Gem::Requirement
295
295
  requirements:
296
296
  - - "~>"
297
297
  - !ruby/object:Gem::Version
298
- version: '1.8'
298
+ version: '3.0'
299
299
  - !ruby/object:Gem::Dependency
300
300
  name: winrm
301
301
  requirement: !ruby/object:Gem::Requirement