xlogin 0.9.2 → 0.9.5

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
  SHA1:
3
- metadata.gz: 7920c6bfed2e33fd3aa7e60128ae9b01b2464dec
4
- data.tar.gz: 6304076fbb457c60020f8fd8875ea147bd162d85
3
+ metadata.gz: dc4d67ac6c0e9c9200dedef6fe1713a7e481f336
4
+ data.tar.gz: 64126ee1abd9cbd9ecf1704038d421bd34556a55
5
5
  SHA512:
6
- metadata.gz: e9a8f8cbf8ae3eed54beeca00efbbdaf080f98fea77f7c1064d1b904c6d9f2b58fa34e287b406d20327690cb2d01ba4d493f7b1d9da531cb3b7cd9628a3b8535
7
- data.tar.gz: 03ee0f923e53ddc0f10fc7b37ddd7b20f279da1fe2bbb3db202aeffef6ba3c6b49d93f27c51aab095a2b24f0c7367ecc4d06f16e6df4f74134da7b81011ab9d3
6
+ metadata.gz: a9932d0cb772b18af766cc9beffaee17495dd2d80fd28cfa7fd4e8569dc13146ad0a6f3d29f68972a6763962583b467a35b76001972151a6ffb5f35185dac516
7
+ data.tar.gz: bd13b83f29bea5522ae2aeb911010a616c5843fef8c41590fe5b0625dbfe137452b1230fe60d423f01f3748d0fcf4de1bdef1bca9532d825614ba56aaa9b1e1e
@@ -8,8 +8,9 @@ module Xlogin
8
8
  include Singleton
9
9
 
10
10
  def initialize
11
- @inventory = Hash.new
12
- @templates = Hash.new
11
+ @inventory = Hash.new
12
+ @templates = Hash.new
13
+ @session_pool = Hash.new
13
14
  end
14
15
 
15
16
  def set_inventory(**opts)
@@ -49,16 +50,17 @@ module Xlogin
49
50
 
50
51
  def build(type:, **opts)
51
52
  template = get_template(type)
52
- if opts[:uri]
53
- template.build(opts[:uri], **opts)
54
- else
55
- scheme = opts[:scheme]
56
- address = opts.values_at(:host, :port).compact.join(':')
57
- userinfo = opts[:userinfo]
58
- userinfo ||= opts.values_at(:username, :password).compact.join(':')
59
-
60
- template.build("#{scheme}://" + [userinfo, address].compact.join('@'), **opts)
61
- end
53
+ template.build(uri(opts), **opts)
54
+ end
55
+
56
+ def build_pool(args, **opts)
57
+ uri = case args
58
+ when Hash then uri(args)
59
+ when String then uri(get_inventory(args))
60
+ else return
61
+ end
62
+
63
+ @session_pool[uri] ||= Xlogin::SessionPool.new(args, **opts)
62
64
  end
63
65
 
64
66
  def build_from_hostname(args, **opts)
@@ -68,8 +70,16 @@ module Xlogin
68
70
  build(hostinfo.merge(name: args, **opts))
69
71
  end
70
72
 
71
- def build_pool(args, **opts)
72
- Xlogin::SessionPool.new(args, **opts)
73
+ private
74
+ def uri(**opts)
75
+ return opts[:uri] if opts.key?(:uri)
76
+
77
+ scheme = opts[:scheme]
78
+ address = opts.values_at(:host, :port).compact.join(':')
79
+ userinfo = opts[:userinfo]
80
+ userinfo ||= opts.values_at(:username, :password).compact.join(':')
81
+
82
+ "#{scheme}://" + [userinfo, address].compact.join('@')
73
83
  end
74
84
 
75
85
  end
@@ -55,7 +55,7 @@ module Xlogin
55
55
  end
56
56
 
57
57
  def prompt
58
- cmd('').lines.last.chomp
58
+ cmd('').to_s.lines.last&.chomp
59
59
  end
60
60
 
61
61
  def duplicate
@@ -112,8 +112,7 @@ module Xlogin
112
112
  instance_eval(&process)
113
113
  line += _waitfor(*args, &block)
114
114
  end
115
- rescue EOFError
116
- ensure
115
+
117
116
  return line
118
117
  end
119
118
 
@@ -25,7 +25,7 @@ module Xlogin
25
25
 
26
26
  begin
27
27
  session.prompt
28
- rescue Errno::ECONNABORTED, Errno::ECONNREFUSED, Errno::ECONNRESET
28
+ rescue IOError, EOFError, Errno::ECONNABORTED, Errno::ECONNREFUSED, Errno::ECONNRESET
29
29
  session.close rescue nil
30
30
  @created -= 1
31
31
  session = try_create
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.5"
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.9.2
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-27 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet