spectre-ssh 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/spectre/ssh.rb +26 -12
  3. metadata +11 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 180b0db0cfa9d88522b4f4147f5b2e2e2bdb2c9da4743d6fac85599f71769ea6
4
- data.tar.gz: 7b65847ee82c04053f4ad6d1bc91aab8aa92aada3703505027bb3167a35bd5fd
3
+ metadata.gz: 8548d3d2c8b5cf86005bc9c9884e8ffad6250783c997af68a9c37b5b1577d759
4
+ data.tar.gz: 70d690e4e1c0e16a5fcd8f9b3c05c3b00721933a374e6550410558aa0927742d
5
5
  SHA512:
6
- metadata.gz: 907a71a63ac527f78b981c5dde110ce5914361685195d7827d23e6d716dbeea7402dadbbe849e0cb13c3b63ebcb01a5c26a76fac3be14109d99ddca20858147e
7
- data.tar.gz: 1b9031c4c95d3773fe1b8fe83f310149a3c07226cc66ddce63efffabae98c27b745d54db774e80cb7801c98db298cc8139ce184508dd7ec685d767a2b5f5eb29
6
+ metadata.gz: ef75af4b62cfd54b508b3ab2b0d974a811dc68f7c270ed2bb214720984f8d421bd90727e207f8208c402a1a0f7e83df3b7ac1c1081f7cfc07a993b02b81458a2
7
+ data.tar.gz: 9da77291b02ed303bd09273b5e85b073646fbd4cce4d17019d1230fd2bb32c279f6b76b55d13088e5674bc154ec48e52da33853a11e09b8cec85e854748d8ea6
data/lib/spectre/ssh.rb CHANGED
@@ -8,9 +8,6 @@ module Spectre
8
8
  @@cfg = {}
9
9
 
10
10
  class SSHError < Exception
11
- def initialize message
12
- super message
13
- end
14
11
  end
15
12
 
16
13
  class SSHConnection < Spectre::DslClass
@@ -26,6 +23,24 @@ module Spectre
26
23
  @__output = ''
27
24
  end
28
25
 
26
+ def username user
27
+ @__username = user
28
+ end
29
+
30
+ def password pass
31
+ @__opts[:password] = pass
32
+ @__opts[:auth_methods].push 'password' unless @__opts[:auth_methods].include? 'password'
33
+ end
34
+
35
+ def private_key file_path
36
+ @__opts[:keys] = [file_path]
37
+ @__opts[:auth_methods].push 'publickey' unless @__opts[:auth_methods].include? 'publickey'
38
+ end
39
+
40
+ def passphrase phrase
41
+ @__opts[:passphrase] = phrase
42
+ end
43
+
29
44
  def file_exists path
30
45
  exec "ls #{path}"
31
46
  exit_code == 0
@@ -38,6 +53,7 @@ module Spectre
38
53
 
39
54
  def connect!
40
55
  return unless @__session == nil or @__session.closed?
56
+
41
57
  begin
42
58
  @__session = Net::SSH.start(@__host, @__username, @__opts)
43
59
  rescue SocketError
@@ -49,6 +65,7 @@ module Spectre
49
65
 
50
66
  def close
51
67
  return unless @__session and not @__session.closed?
68
+
52
69
  @__session.close
53
70
  end
54
71
 
@@ -76,20 +93,20 @@ module Spectre
76
93
  log_str = "#{@__session.options[:user]}@#{@__session.host} -p #{@__session.options[:port]} #{command}"
77
94
 
78
95
  @channel = @__session.open_channel do |channel|
79
- channel.exec(command) do |ch, success|
96
+ channel.exec(command) do |_ch, success|
80
97
  abort "could not execute #{command} on #{@__session.host}" unless success
81
98
 
82
99
  @__output = ''
83
100
 
84
- channel.on_data do |ch, data|
101
+ channel.on_data do |_, data|
85
102
  @__output += data
86
103
  end
87
104
 
88
- channel.on_extended_data do |ch,type,data|
105
+ channel.on_extended_data do |_, _type, data|
89
106
  @__output += data
90
107
  end
91
108
 
92
- channel.on_request('exit-status') do |ch, data|
109
+ channel.on_request('exit-status') do |_, data|
93
110
  @__exit_code = data.read_long
94
111
  end
95
112
 
@@ -97,7 +114,6 @@ module Spectre
97
114
  # exit_code = data.read_long
98
115
  # end
99
116
  end
100
-
101
117
  end
102
118
 
103
119
  @channel.wait
@@ -119,8 +135,6 @@ module Spectre
119
135
 
120
136
  class << self
121
137
  def ssh name, options = {}, &block
122
- raise "SSH connection '#{name}' not configured" unless @@cfg.key?(name) or options.count > 0
123
-
124
138
  cfg = @@cfg[name] || {}
125
139
 
126
140
  host = cfg['host'] || name
@@ -150,7 +164,7 @@ module Spectre
150
164
  end
151
165
 
152
166
  Spectre.register do |config|
153
- @@logger = ::Logger.new config['log_file'], progname: 'spectre/ssh'
167
+ @@logger = Spectre::Logging::ModuleLogger.new(config, 'spectre/ssh')
154
168
 
155
169
  if config.key? 'ssh'
156
170
  config['ssh'].each do |name, cfg|
@@ -161,4 +175,4 @@ module Spectre
161
175
 
162
176
  Spectre.delegate :ssh, to: self
163
177
  end
164
- end
178
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spectre-ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Neubauer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2023-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 6.1.0
33
+ version: 7.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 6.1.0
40
+ version: 7.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: spectre-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.8.0
47
+ version: 1.14.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.8.0
54
+ version: 1.14.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: ed25519
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -92,11 +92,10 @@ homepage: https://github.com/ionos-spectre/spectre-ssh
92
92
  licenses:
93
93
  - MIT
94
94
  metadata:
95
- allowed_push_host: https://rubygems.org/
96
95
  homepage_uri: https://github.com/ionos-spectre/spectre-ssh
97
96
  source_code_uri: https://github.com/ionos-spectre/spectre-ssh
98
97
  changelog_uri: https://github.com/ionos-spectre/spectre-ssh/blob/master/CHANGELOG.md
99
- post_install_message:
98
+ post_install_message:
100
99
  rdoc_options: []
101
100
  require_paths:
102
101
  - lib
@@ -104,15 +103,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
103
  requirements:
105
104
  - - ">="
106
105
  - !ruby/object:Gem::Version
107
- version: 2.5.0
106
+ version: 3.0.0
108
107
  required_rubygems_version: !ruby/object:Gem::Requirement
109
108
  requirements:
110
109
  - - ">="
111
110
  - !ruby/object:Gem::Version
112
111
  version: '0'
113
112
  requirements: []
114
- rubygems_version: 3.3.7
115
- signing_key:
113
+ rubygems_version: 3.3.26
114
+ signing_key:
116
115
  specification_version: 4
117
116
  summary: SSH module for spectre
118
117
  test_files: []