train-core 3.2.26 → 3.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b924b891627ee7ba668ee4f0ce09f2dfc089e891fb31c9f8347c0edcf71d2c6d
4
- data.tar.gz: 4c2628a33d90a3d33cfa7252caddabcc143b49f354eb2ddd5d0600da886c704b
3
+ metadata.gz: 0d1528d472a38847644b9b12d7e7ebfd304e696bdfc50f7562b4b5bf387f5059
4
+ data.tar.gz: 4913341d6670668289ccc69ab4d67335d4529da28fb449a0f9fcb1dc191b571b
5
5
  SHA512:
6
- metadata.gz: 2e3d49ec06938dba5be2602d6710bc84beebaaa25a99b3d63fea51ef35f985c47a3054bf217b048f9e11d7f0526429b6ff512bd8c6f8a18aee704d337634c143
7
- data.tar.gz: c6cbf448c1eb0c0da00fc291923bc1cf621dce83983de5ed794f696c974ab05ebbf5e55cd364cfc8decfc5e5477a3ffed3adfd7d8e2922563f0b547943a0ae42
6
+ metadata.gz: 2ab551ae2ab9e8ef40628edb76cf77f5ce0391483a2ae3aaf9ade688244817286d48bf4d92f0f3ca78e488dcf71c6783808e98a56a226df0a09867b0a281fff9
7
+ data.tar.gz: df2cc712d56b9e91239e6e10dd537b9233b0d97cfb8cb29771bb3539915f81df61523b222875791dd5dc8a9d0edbfa9f71f789cf7be74ee0164e0f504eba9c27
@@ -72,14 +72,14 @@ module Train::Extras
72
72
  rawerr = "#{res.stdout} #{res.stderr}".strip
73
73
 
74
74
  case rawerr
75
- when "Sorry, try again"
75
+ when /Sorry, try again/
76
76
  ["Wrong sudo password.", :bad_sudo_password]
77
- when "sudo: no tty present and no askpass program specified"
77
+ when /sudo: no tty present and no askpass program specified/
78
78
  ["Sudo requires a password, please configure it.", :sudo_password_required]
79
- when "sudo: command not found"
79
+ when /sudo: command not found/
80
80
  ["Can't find sudo command. Please either install and "\
81
81
  "configure it on the target or deactivate sudo.", :sudo_command_not_found]
82
- when "sudo: sorry, you must have a tty to run sudo"
82
+ when /sudo: sorry, you must have a tty to run sudo/
83
83
  ["Sudo requires a TTY. Please see the README on how to configure "\
84
84
  "sudo to allow for non-interactive usage.", :sudo_no_tty]
85
85
  else
@@ -22,8 +22,14 @@ module Train
22
22
  def exist?
23
23
  @exist ||= begin
24
24
  f = @follow_symlink ? "" : " || test -L #{@spath}"
25
- @backend.run_command("test -e #{@spath}" + f)
26
- .exit_status == 0
25
+ if @backend.platform.solaris?
26
+ # Solaris does not support `-e` flag in default `test`,
27
+ # so we specify by running /usr/bin/test:
28
+ # https://github.com/inspec/train/issues/587
29
+ @backend.run_command("/usr/bin/test -e #{@spath}" + f)
30
+ else
31
+ @backend.run_command("test -e #{@spath}" + f)
32
+ end.exit_status == 0
27
33
  end
28
34
  end
29
35
 
@@ -369,6 +369,7 @@ module Train::Platforms::Detect::Specifications
369
369
  declare_bsd("freebsd", "Freebsd", "bsd", /freebsd/i)
370
370
  declare_bsd("openbsd", "Openbsd", "bsd", /openbsd/i)
371
371
  declare_bsd("netbsd", "Netbsd", "bsd", /netbsd/i)
372
+ declare_bsd("dragonflybsd", "Dragonflybsd", "bsd", /dragonfly/i)
372
373
  end
373
374
 
374
375
  def self.load_other
@@ -16,6 +16,9 @@ class Train::Transports::SSH
16
16
  # Use all options left that are not `nil` for `Net::SSH.start` later
17
17
  @ssh_options = options.reject { |_key, value| value.nil? }
18
18
 
19
+ # Allow older algorithms
20
+ @ssh_options[:append_all_supported_algorithms] = true
21
+
19
22
  @prompt = /^\S+[>#]\r\n.*$/
20
23
  end
21
24
 
@@ -65,6 +65,9 @@ module Train::Transports
65
65
  option :non_interactive, default: false
66
66
  option :verify_host_key, default: false
67
67
 
68
+ # Allow connecting with older algorithms
69
+ option :append_all_supported_algorithms, default: true
70
+
68
71
  option :compression_level do |opts|
69
72
  # on nil or false: set compression level to 0
70
73
  opts[:compression] ? 6 : 0
@@ -76,7 +79,7 @@ module Train::Transports
76
79
  validate_options(opts)
77
80
  conn_opts = connection_options(opts)
78
81
 
79
- if defined?(@connection) && @connection_options == conn_opts
82
+ if defined?(@connection) && reusable_connection?(conn_opts)
80
83
  reuse_connection(&block)
81
84
  else
82
85
  create_new_connection(conn_opts, &block)
@@ -85,6 +88,13 @@ module Train::Transports
85
88
 
86
89
  private
87
90
 
91
+ def reusable_connection?(conn_opts)
92
+ return false unless @connection_options
93
+
94
+ # Do requested options match their current settings
95
+ @connection_options.all? { |k, v| conn_opts[k] == v }
96
+ end
97
+
88
98
  def validate_options(options)
89
99
  super(options)
90
100
 
@@ -167,6 +177,7 @@ module Train::Transports
167
177
  bastion_user: opts[:bastion_user],
168
178
  bastion_port: opts[:bastion_port],
169
179
  non_interactive: opts[:non_interactive],
180
+ append_all_supported_algorithms: opts[:append_all_supported_algorithms],
170
181
  transport_options: opts,
171
182
  }
172
183
  # disable host key verification. The hash key and value to use
@@ -54,7 +54,7 @@ class Train::Transports::SSH
54
54
  @bastion_user = @options.delete(:bastion_user)
55
55
  @bastion_port = @options.delete(:bastion_port)
56
56
 
57
- @cmd_wrapper = CommandWrapper.load(self, @transport_options)
57
+ @cmd_wrapper = CommandWrapper.load(self, @transport_options)
58
58
  end
59
59
 
60
60
  # (see Base::Connection#close)
@@ -3,5 +3,5 @@
3
3
  # Author:: Dominik Richter (<dominik.richter@gmail.com>)
4
4
 
5
5
  module Train
6
- VERSION = "3.2.26".freeze
6
+ VERSION = "3.3.4".freeze
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: train-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.26
4
+ version: 3.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef InSpec Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2020-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ffi
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "!="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.13.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "!="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.13.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: json
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +87,7 @@ dependencies:
73
87
  version: '1.2'
74
88
  - - "<"
75
89
  - !ruby/object:Gem::Version
76
- version: '3.0'
90
+ version: '4.0'
77
91
  type: :runtime
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,7 +97,7 @@ dependencies:
83
97
  version: '1.2'
84
98
  - - "<"
85
99
  - !ruby/object:Gem::Version
86
- version: '3.0'
100
+ version: '4.0'
87
101
  - !ruby/object:Gem::Dependency
88
102
  name: net-ssh
89
103
  requirement: !ruby/object:Gem::Requirement
@@ -93,7 +107,7 @@ dependencies:
93
107
  version: '2.9'
94
108
  - - "<"
95
109
  - !ruby/object:Gem::Version
96
- version: '6.0'
110
+ version: '7.0'
97
111
  type: :runtime
98
112
  prerelease: false
99
113
  version_requirements: !ruby/object:Gem::Requirement
@@ -103,7 +117,7 @@ dependencies:
103
117
  version: '2.9'
104
118
  - - "<"
105
119
  - !ruby/object:Gem::Version
106
- version: '6.0'
120
+ version: '7.0'
107
121
  description: A minimal Train with a backends for ssh and winrm.
108
122
  email:
109
123
  - inspec@chef.io