publish_to_web 2.2.4 → 2.2.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 +4 -4
- data/lib/publish_to_web.rb +29 -13
- data/lib/publish_to_web/tunnel.rb +5 -0
- data/lib/publish_to_web/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: 513b504f81cdb70f0107f978e0d93c2dae1f2ed9
|
4
|
+
data.tar.gz: caa4ed5aabeb33272237bc04ec6dbff7e25c346b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4953c26f10375bdfb879e11ecc1dc556c30a59608d93df432a345e2535b24e952176d2e8acb3fc87cfc61b3afbf45e5848a5d7343490ae45d88b175456157dc4
|
7
|
+
data.tar.gz: 6bcb83fb8a83c50ed286b7ddd6559358602a24a099f7cfa6e3bc2398ca8cd5fde6be1832cd1347073fc292f3c5d493265c193162c192cb9942523c139bfd9b12
|
data/lib/publish_to_web.rb
CHANGED
@@ -66,11 +66,12 @@ class PublishToWeb
|
|
66
66
|
check_local_endpoint
|
67
67
|
end
|
68
68
|
|
69
|
+
SLD = Regexp.escape '.protonet.info'
|
69
70
|
def prepare_directory(fail_gracefully = true)
|
70
71
|
config.success = config.error = nil
|
71
72
|
|
72
73
|
if node_name = config.node_name
|
73
|
-
|
74
|
+
if /^#{ Regexp.escape node_name }(#{ SLD })?$/ !~ directory.node_name
|
74
75
|
directory.set_node_name node_name
|
75
76
|
end
|
76
77
|
end
|
@@ -89,14 +90,20 @@ class PublishToWeb
|
|
89
90
|
raise unless fail_gracefully
|
90
91
|
end
|
91
92
|
|
92
|
-
def stop_tunnel
|
93
|
+
def stop_tunnel(*join_args)
|
93
94
|
tunnel.stop
|
94
|
-
@thread.
|
95
|
+
@thread.join *join_args if @thread
|
95
96
|
end
|
96
97
|
|
97
|
-
def start_tunnel(blocking
|
98
|
+
def start_tunnel(blocking: true)
|
98
99
|
unless blocking
|
99
|
-
@thread = Thread.new
|
100
|
+
@thread = Thread.new do
|
101
|
+
begin
|
102
|
+
start_tunnel blocking: true
|
103
|
+
logger.warn "Tunnel closed... :/"
|
104
|
+
end while tunnel.running? and sleep(5)
|
105
|
+
end
|
106
|
+
@thread.abort_on_exception = true
|
100
107
|
return
|
101
108
|
end
|
102
109
|
|
@@ -107,15 +114,24 @@ class PublishToWeb
|
|
107
114
|
tunnel.start { config.success = "connection_established" }
|
108
115
|
|
109
116
|
rescue Net::SSH::AuthenticationFailed => err
|
117
|
+
|
110
118
|
logger.warn "#{err.class}: #{err}"
|
111
119
|
logger.warn "Probably the SSH key is not deployed on the proxy server yet, retrying in a bit"
|
112
120
|
|
113
121
|
sleep 30
|
114
122
|
retry
|
115
123
|
|
116
|
-
rescue PublishToWeb::Directory::HttpResponseError
|
124
|
+
rescue PublishToWeb::Directory::HttpResponseError
|
125
|
+
|
126
|
+
# already handled by #prepare_directory, we just need to wait and retry...
|
127
|
+
|
117
128
|
sleep 30
|
118
129
|
retry
|
130
|
+
|
131
|
+
rescue => error
|
132
|
+
|
133
|
+
logger.error error
|
134
|
+
|
119
135
|
end
|
120
136
|
|
121
137
|
private
|
@@ -126,12 +142,12 @@ class PublishToWeb
|
|
126
142
|
|
127
143
|
def tunnel
|
128
144
|
@tunnel ||= Tunnel.new proxy_host: proxy_host,
|
129
|
-
proxy_user:
|
130
|
-
proxy_port:
|
131
|
-
identity:
|
132
|
-
bind_host:
|
133
|
-
remote_port:
|
145
|
+
proxy_user: proxy_user,
|
146
|
+
proxy_port: proxy_port,
|
147
|
+
identity: directory.private_key,
|
148
|
+
bind_host: bind_host,
|
149
|
+
remote_port: directory.remote_port,
|
134
150
|
forward_port: forward_port,
|
135
|
-
logger:
|
151
|
+
logger: self.class.create_logger
|
136
152
|
end
|
137
|
-
end
|
153
|
+
end
|
@@ -15,6 +15,7 @@ class PublishToWeb
|
|
15
15
|
|
16
16
|
def ssh_options
|
17
17
|
@ssh_options ||= {
|
18
|
+
keepalive: true,
|
18
19
|
keepalive_interval: 5,
|
19
20
|
paranoid: false,
|
20
21
|
# ExitOnForwardFailure ??
|
@@ -44,6 +45,10 @@ class PublishToWeb
|
|
44
45
|
@running = false
|
45
46
|
end
|
46
47
|
|
48
|
+
def running?
|
49
|
+
@running
|
50
|
+
end
|
51
|
+
|
47
52
|
def start
|
48
53
|
Net::SSH.start proxy_host, proxy_user, ssh_options do |ssh|
|
49
54
|
ssh.forward.remote forward_port, bind_host, remote_port do |real_remote_port|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: publish_to_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christoph Olszowka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|