xlogin 0.9.2 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xlogin/factory.rb +24 -14
- data/lib/xlogin/session.rb +2 -3
- data/lib/xlogin/session_pool.rb +1 -1
- data/lib/xlogin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc4d67ac6c0e9c9200dedef6fe1713a7e481f336
|
4
|
+
data.tar.gz: 64126ee1abd9cbd9ecf1704038d421bd34556a55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9932d0cb772b18af766cc9beffaee17495dd2d80fd28cfa7fd4e8569dc13146ad0a6f3d29f68972a6763962583b467a35b76001972151a6ffb5f35185dac516
|
7
|
+
data.tar.gz: bd13b83f29bea5522ae2aeb911010a616c5843fef8c41590fe5b0625dbfe137452b1230fe60d423f01f3748d0fcf4de1bdef1bca9532d825614ba56aaa9b1e1e
|
data/lib/xlogin/factory.rb
CHANGED
@@ -8,8 +8,9 @@ module Xlogin
|
|
8
8
|
include Singleton
|
9
9
|
|
10
10
|
def initialize
|
11
|
-
@inventory
|
12
|
-
@templates
|
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
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
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
|
-
|
72
|
-
|
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
|
data/lib/xlogin/session.rb
CHANGED
@@ -55,7 +55,7 @@ module Xlogin
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def prompt
|
58
|
-
cmd('').lines.last
|
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
|
-
|
116
|
-
ensure
|
115
|
+
|
117
116
|
return line
|
118
117
|
end
|
119
118
|
|
data/lib/xlogin/session_pool.rb
CHANGED
@@ -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
|
data/lib/xlogin/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2018-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-telnet
|