xlogin 0.15.1 → 0.15.6

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: 3c42dda50faff8d019ae126b4283df85aeca1007e119fe486882b06092090168
4
- data.tar.gz: 5d15694b3a53acdecca601e99039e9121b83d111e5e5070eaaa7fa353936d57a
3
+ metadata.gz: 6f25c0609f9ca195248b0e83a5d0386d894f35f9bc668154abbc2c938b8d2c19
4
+ data.tar.gz: e5f0a51725eb34c702c3b7f413664dc15a4dbc8966ab9a72ea5ac58dded6bca1
5
5
  SHA512:
6
- metadata.gz: 9ce8c023c0be12b67a33be6ca9fa84eabdc78aa1832d9311b0dd9a55cc82627260effeecdb6395c397fa74f1799b6d3b8382a95e35eeb83099bbca7be903f0c1
7
- data.tar.gz: ff604b3256270f0b81ddcf455a6f62b77fdc44d5d6f136de86225ecc4fae452d2dee55001c3eee94817d01bdfbfb87f7ee256fa66106b29d5ecd3c4c10a79ea6
6
+ metadata.gz: 958b61738c7920b6fc9378a64bc5ea377f29296dcc5f76a2a36ad8abf91afd142795d5b6157483ee51fa665e3a7cf7925d0d016d4172b36de039d9db3a2e2149
7
+ data.tar.gz: ae99528b807c97339f6ed052d0ca7d2c80c1079acb62c102564d81c4b175cab46cd9d43b1cd4389f3b4228c61e758de4696ec4d8433672b980d4abcdadd42e8d
@@ -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?
@@ -56,7 +57,8 @@ module Xlogin
56
57
 
57
58
  def open_tunnel(name, host, port)
58
59
  @mutex.synchronize do
59
- unless @tunnels[name]
60
+ tunnel = @tunnels[name]
61
+ unless tunnel && tunnel.gateway.active?
60
62
  uri = Addressable::URI.parse(name)
61
63
  case uri.scheme
62
64
  when 'ssh'
@@ -92,8 +92,10 @@ 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: :white, background: :red) if session
96
- $stderr.print log_text(buffer.string + "\n").colorize(color: :light_red) if Rake.application.options.always_multitask
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)
98
+ end
97
99
 
98
100
  return false
99
101
  ensure
@@ -101,16 +103,16 @@ module Xlogin
101
103
  end
102
104
 
103
105
  def log_text(text)
104
- 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
105
107
  end
106
108
 
107
109
  end
108
110
 
109
111
  module SessionModule
110
112
 
111
- def comment(line, prefix: "[INFO]", chomp: false, **color)
112
- write_log("#{prefix} #{line}".colorize({color: :light_white}.merge(**color)))
113
- 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
114
116
  end
115
117
 
116
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
@@ -43,9 +43,9 @@ module Xlogin
43
43
  end
44
44
  end
45
45
 
46
- session, last_used, watch_dog = @queue.deq
46
+ session, last_used, watchdog = @queue.deq
47
47
 
48
- watch_dog.kill
48
+ watchdog.kill
49
49
  if Time.now - last_used > @idle
50
50
  destroy(session)
51
51
  return deq
@@ -62,8 +62,8 @@ module Xlogin
62
62
 
63
63
  def enq(session)
64
64
  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]
65
+ watchdog = Thread.new(session){ |s| sleep(@idle * 1.5) && s.close rescue nil }
66
+ @queue.enq [session, last_used, watchdog]
67
67
  end
68
68
 
69
69
  private
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.15.1"
2
+ VERSION = "0.15.6"
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.1
4
+ version: 0.15.6
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-02 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