train-core 3.2.26 → 3.3.4

Sign up to get free protection for your applications and to get access to all the features.
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