train-core 3.3.13 → 3.3.16
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 +4 -4
- data/lib/train.rb +1 -1
- data/lib/train/file/local/unix.rb +1 -1
- data/lib/train/file/remote/unix.rb +1 -1
- data/lib/train/platforms/detect/helpers/os_common.rb +4 -4
- data/lib/train/platforms/detect/specifications/os.rb +1 -1
- data/lib/train/platforms/detect/uuid.rb +2 -2
- data/lib/train/platforms/platform.rb +1 -1
- data/lib/train/plugin_test_helper.rb +5 -5
- data/lib/train/plugins.rb +1 -1
- data/lib/train/plugins/base_connection.rb +1 -1
- data/lib/train/transports/local.rb +5 -5
- data/lib/train/transports/ssh.rb +2 -2
- data/lib/train/transports/ssh_connection.rb +2 -2
- data/lib/train/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 731da693988617c1fba632079b251048ff772e266341a405f9d7fa668081c460
|
4
|
+
data.tar.gz: e2f44528bdaeab154923632381ea82ab7393b58800c92ed2ce34665b5c87922e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4faaad47791222859169e2e7eaca6e641b1b0645b206966200ab303da77565a54fc052640583317f6505f74816fe141284d0f06eff45c5d7c638e6580aa6d26f
|
7
|
+
data.tar.gz: 87fe382ff4951bad855289e72e4687d69a71c70733d7240edbde19d773e6b5caee446a17b3aef2c621f33e403badb8ee68aaaa8583fca17f0c08f86fdaea0d7e
|
data/lib/train.rb
CHANGED
@@ -6,7 +6,7 @@ require_relative "train/options"
|
|
6
6
|
require_relative "train/plugins"
|
7
7
|
require_relative "train/errors"
|
8
8
|
require_relative "train/platforms"
|
9
|
-
require "addressable/uri"
|
9
|
+
require "addressable/uri" unless defined?(Addressable::URI)
|
10
10
|
|
11
11
|
module Train
|
12
12
|
# Create a new transport instance, with the plugin indicated by the
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative "os_linux"
|
2
2
|
require_relative "os_windows"
|
3
|
-
require "rbconfig"
|
3
|
+
require "rbconfig" unless defined?(RbConfig)
|
4
4
|
|
5
5
|
module Train::Platforms::Detect::Helpers
|
6
6
|
module OSCommon
|
@@ -37,8 +37,8 @@ module Train::Platforms::Detect::Helpers
|
|
37
37
|
res = @backend.run_command(cmd)
|
38
38
|
stdout = res.stdout
|
39
39
|
stderr = res.stderr
|
40
|
-
# When you try to execute command using ssh
|
41
|
-
# it gives standard output to login as
|
40
|
+
# When you try to execute command using ssh connection as root user and you have provided ssh user identity file
|
41
|
+
# it gives standard output to login as authorized user other than root. To show this standard output as an error
|
42
42
|
# to user we are matching the string of stdout and raising the error here so that user gets exact information.
|
43
43
|
if @backend.class.to_s == "Train::Transports::SSH::Connection"
|
44
44
|
if stdout =~ /Please login as the user/
|
@@ -165,7 +165,7 @@ module Train::Platforms::Detect::Helpers
|
|
165
165
|
def json_cmd(cmd)
|
166
166
|
cmd = @backend.run_command(cmd)
|
167
167
|
if cmd.exit_status == 0 && !cmd.stdout.empty?
|
168
|
-
require "json"
|
168
|
+
require "json" unless defined?(JSON)
|
169
169
|
eos_ver = JSON.parse(cmd.stdout)
|
170
170
|
@platform[:release] = eos_ver["version"]
|
171
171
|
@platform[:arch] = eos_ver["architecture"]
|
@@ -128,7 +128,7 @@ module Train::Platforms::Detect::Specifications
|
|
128
128
|
|
129
129
|
declare_lsb("scientific", "Scientific Linux", "redhat", /scientific/i)
|
130
130
|
|
131
|
-
declare_lsb("xenserver", "
|
131
|
+
declare_lsb("xenserver", "Xenserver Linux", "redhat", /xenserver/i)
|
132
132
|
|
133
133
|
declare_instance("parallels-release", "Parallels Linux", "redhat") do
|
134
134
|
if (raw = unix_file_contents("/etc/parallels-release"))
|
@@ -45,7 +45,7 @@ module Train::Platforms
|
|
45
45
|
@uuid ||= Train::Platforms::Detect::UUID.new(self).find_or_create_uuid.downcase
|
46
46
|
end
|
47
47
|
|
48
|
-
# This is for
|
48
|
+
# This is for backwards compatibility with
|
49
49
|
# the current inspec os resource.
|
50
50
|
def[](name)
|
51
51
|
if respond_to?(name)
|
@@ -13,13 +13,13 @@ require "minitest/spec"
|
|
13
13
|
require "minitest/autorun"
|
14
14
|
|
15
15
|
# Data formats commonly used in testing
|
16
|
-
require "json"
|
17
|
-
require "ostruct"
|
16
|
+
require "json" unless defined?(JSON)
|
17
|
+
require "ostruct" unless defined?(OpenStruct)
|
18
18
|
|
19
19
|
# Utilities often needed
|
20
|
-
require "fileutils"
|
21
|
-
require "tmpdir"
|
22
|
-
require "pathname"
|
20
|
+
require "fileutils" unless defined?(FileUtils)
|
21
|
+
require "tmpdir" unless defined?(Dir.mktmpdir)
|
22
|
+
require "pathname" unless defined?(Pathname)
|
23
23
|
|
24
24
|
# You might want to put some debugging tools here. We run tests to find bugs,
|
25
25
|
# after all.
|
data/lib/train/plugins.rb
CHANGED
@@ -23,7 +23,7 @@ module Train
|
|
23
23
|
# Create a versioned plugin by providing the transport layer plugin version
|
24
24
|
# to this method. It will then select the correct class to inherit from.
|
25
25
|
#
|
26
|
-
# The plugin version
|
26
|
+
# The plugin version determines what methods will be available to your plugin.
|
27
27
|
#
|
28
28
|
# @param [Int] version = 1 the plugin version to use
|
29
29
|
# @return [Transport] the versioned transport base class
|
@@ -158,7 +158,7 @@ class Train::Plugins::Transport
|
|
158
158
|
# service is preferred to simply waiting on a socket to become
|
159
159
|
# available.
|
160
160
|
def wait_until_ready
|
161
|
-
# this method may be left unimplemented if that is
|
161
|
+
# this method may be left unimplemented if that is applicable log
|
162
162
|
end
|
163
163
|
|
164
164
|
private
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
require_relative "../plugins"
|
6
6
|
require_relative "../errors"
|
7
|
-
require "mixlib/shellout"
|
7
|
+
require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
|
8
8
|
|
9
9
|
module Train::Transports
|
10
10
|
class Local < Train.plugin(1)
|
@@ -111,7 +111,7 @@ module Train::Transports
|
|
111
111
|
end
|
112
112
|
|
113
113
|
class WindowsShellRunner
|
114
|
-
require "json"
|
114
|
+
require "json" unless defined?(JSON)
|
115
115
|
require "base64"
|
116
116
|
|
117
117
|
def initialize(powershell_cmd = "powershell")
|
@@ -135,9 +135,9 @@ module Train::Transports
|
|
135
135
|
end
|
136
136
|
|
137
137
|
class WindowsPipeRunner
|
138
|
-
require "json"
|
138
|
+
require "json" unless defined?(JSON)
|
139
139
|
require "base64"
|
140
|
-
require "securerandom"
|
140
|
+
require "securerandom" unless defined?(SecureRandom)
|
141
141
|
|
142
142
|
def initialize(powershell_cmd = "powershell")
|
143
143
|
@powershell_cmd = powershell_cmd
|
@@ -146,7 +146,7 @@ module Train::Transports
|
|
146
146
|
end
|
147
147
|
|
148
148
|
# @param cmd The command to execute
|
149
|
-
# @return Local::
|
149
|
+
# @return Local::CommandResult with stdout, stderr and exitstatus
|
150
150
|
# Note that exitstatus ($?) in PowerShell is boolean, but we use a numeric exit code.
|
151
151
|
# A command that succeeds without setting an exit code will have exitstatus 0
|
152
152
|
# A command that exits with an exit code will have that value as exitstatus
|
data/lib/train/transports/ssh.rb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
-
require "net/ssh"
|
20
|
+
require "net/ssh" unless defined?(Net::SSH)
|
21
21
|
require "net/scp"
|
22
22
|
require_relative "../errors"
|
23
23
|
|
@@ -237,7 +237,7 @@ module Train::Transports
|
|
237
237
|
# Creates a new SSH Connection instance and save it for potential future
|
238
238
|
# reuse.
|
239
239
|
#
|
240
|
-
# @param options [Hash]
|
240
|
+
# @param options [Hash] connection options
|
241
241
|
# @return [Ssh::Connection] an SSH Connection instance
|
242
242
|
# @api private
|
243
243
|
def create_new_connection(options, &block)
|
@@ -17,9 +17,9 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
-
require "net/ssh"
|
20
|
+
require "net/ssh" unless defined?(Net::SSH)
|
21
21
|
require "net/scp"
|
22
|
-
require "timeout"
|
22
|
+
require "timeout" unless defined?(Timeout)
|
23
23
|
|
24
24
|
class Train::Transports::SSH
|
25
25
|
# A Connection instance can be generated and re-generated, given new
|
data/lib/train/version.rb
CHANGED
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.3.
|
4
|
+
version: 3.3.16
|
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-
|
11
|
+
date: 2020-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|