xlogin 0.15.2 → 0.15.7

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: 902803f4f718b2af77d3d89721eb0d2f140735b173b1174b58cdfec530502750
4
- data.tar.gz: 57a6a00bb8912363f8479ce7f2de1a3b86fff6180d242409431320af3021e11f
3
+ metadata.gz: c7b8fd89987339e341998c05917253187ab98bf73001b307eefcd4fa6f5db15c
4
+ data.tar.gz: adc3c1a866e2cc9437ad90d7938ed9076b2eb21f1d9a37c81b62d58ea1e85bad
5
5
  SHA512:
6
- metadata.gz: b2bb034bb516dfe3994dd246d1effdcf6d68dd8cdd5fe49539941b34447b4f8b8eafb69b3467aa92b6fc3e43898355f55a620652855d24fc37ee3b5f754a534e
7
- data.tar.gz: e1ac9a80f9e8e2473e9def3f6cca08dbe1cbb6daedd664ad63fee765dcd4cb45ab0e5d0c1f82e7e4d5f146928123d9c6a4359331105990c6bafc09f26a7b2c2d
6
+ metadata.gz: b0c4de1d7d7d30d47edf174c393968b218a9937f1bb535a2b3f888428f52b13535b15787d0464c2489a0005ccb2f36d41648b5e8cb668f489ee9bfa88154fbf9
7
+ data.tar.gz: 10971772a9085d3afdab205e73b6a1f85273256d43e4ee099348fab381a157cae7a7f0fcfbe73811ab0692856bb7e4374c0bf4ef179da0372210295aa50e9e2b
@@ -26,9 +26,10 @@ module Xlogin
26
26
  end
27
27
 
28
28
  def list_hostinfo(*patterns)
29
+ patterns = patterns.flat_map{ |e| e.split(/\s+/) }.compact
29
30
  return @inventory.values if patterns.empty?
30
31
 
31
- values1 = patterns.compact.map do |pattern|
32
+ values1 = patterns.map do |pattern|
32
33
  values2 = pattern.split(',').map do |entry|
33
34
  key, val = entry.to_s.split(':')
34
35
  key, val = 'name', key if val.nil?
@@ -92,10 +92,9 @@ module Xlogin
92
92
  rescue => e
93
93
  RakeTask.shutdown! if fail_on_error
94
94
 
95
- session.comment(e.to_s, prefix: "[ERROR]", chomp: true, color: :red) if session
96
- if Rake.application.options.always_multitasK
97
- $stderr.print log_text(buffer.string + "\n").colorize(color: :red) unless buffer.string.empty?
98
- $stderr.print log_text(e.to_s + "\n").colorize(color: :red)
95
+ session.comment(e.to_s, lf: false, color: :red) if session
96
+ if Rake.application.options.always_multitask && !buffer.string.empty?
97
+ $stderr.print log_text(buffer.string + "\n").colorize(color: :red)
99
98
  end
100
99
 
101
100
  return false
@@ -104,16 +103,16 @@ module Xlogin
104
103
  end
105
104
 
106
105
  def log_text(text)
107
- text.lines.map{ |line| "#{Time.now.iso8601} - #{name}\t|#{line.gsub(/^.*\r/, '')}" }.join
106
+ text.lines.map{ |line| "#{Time.now.iso8601} #{name}\t|#{line.gsub(/^.*\r/, '')}" }.join
108
107
  end
109
108
 
110
109
  end
111
110
 
112
111
  module SessionModule
113
112
 
114
- def comment(line, prefix: "[INFO]", chomp: false, **color)
115
- write_log("#{prefix} #{line}".colorize({color: :light_white}.merge(**color)))
116
- cmd('') unless chomp
113
+ def comment(line, lf: true, **color)
114
+ write_log(line.chomp.colorize({color: :light_white}.merge(**color)))
115
+ cmd('') if lf
117
116
  end
118
117
 
119
118
  end
@@ -24,7 +24,7 @@ module Xlogin
24
24
  @loggers = [@config.log].flatten.uniq.reduce({}){ |a, e| a.merge(e => build_log(e)) }
25
25
  @host, @port = Xlogin.factory.open_tunnel(@tunnel, @host, @port) if @tunnel
26
26
 
27
- max_retry = @config.retry || 1
27
+ num_try = 0
28
28
  username, password = uri.userinfo.to_s.split(':')
29
29
 
30
30
  begin
@@ -43,7 +43,10 @@ module Xlogin
43
43
 
44
44
  super(args)
45
45
  rescue => e
46
- retry if (max_retry -= 1) > 0
46
+ unless (num_try += 1) > (@config.retry || 0)
47
+ sleep 1.0
48
+ retry
49
+ end
47
50
  raise e
48
51
  end
49
52
  end
@@ -25,7 +25,7 @@ module Xlogin
25
25
  session = deq
26
26
  Thread.handle_interrupt(Exception => :immediate){ yield session }
27
27
  ensure
28
- enq session
28
+ enq session if session
29
29
  end
30
30
 
31
31
  def close
@@ -38,14 +38,15 @@ module Xlogin
38
38
  def deq
39
39
  @mutex.synchronize do
40
40
  if @queue.empty? && @count < @size
41
+ session = Xlogin.get(@args, **@opts)
41
42
  @count += 1
42
- return Xlogin.get(@args, **@opts)
43
+ return session
43
44
  end
44
45
  end
45
46
 
46
- session, last_used, watch_dog = @queue.deq
47
+ session, last_used, watchdog = @queue.deq
47
48
 
48
- watch_dog.kill
49
+ watchdog.kill
49
50
  if Time.now - last_used > @idle
50
51
  destroy(session)
51
52
  return deq
@@ -62,8 +63,8 @@ module Xlogin
62
63
 
63
64
  def enq(session)
64
65
  last_used = Time.now
65
- watch_dog = Thread.new(session){ |s| sleep(@idle * 1.5) && s.close rescue nil }
66
- @queue.enq [session, last_used, watch_dog]
66
+ watchdog = Thread.new(session){ |s| sleep(@idle * 1.5) && s.close rescue nil }
67
+ @queue.enq [session, last_used, watchdog]
67
68
  end
68
69
 
69
70
  private
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.15.2"
2
+ VERSION = "0.15.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xlogin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.15.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-03 00:00:00.000000000 Z
11
+ date: 2021-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet