overlord: ghost: prevent file tranfer from lagging
We should only check for TLS enable status in control channel. Other
channels like file and shell should just use the TLS settings passed in
when it was spawned. This prevent file transfer and shell to lag on
startup.
This CL also fixed linting in ghost.py
BUG=chromium:585732
TEST=`go/src/overlord/test/overlord_e2e_unittest.py`
Change-Id: I8f3b3ea3d0e26deb98fcbd0add9dc91ee91c726c
Reviewed-on: https://chromium-review.googlesource.com/354902
Commit-Ready: Wei-Ning Huang <wnhuang@chromium.org>
Tested-by: Wei-Ning Huang <wnhuang@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>
diff --git a/py/tools/ghost.py b/py/tools/ghost.py
index 2cd7c05..0133a6e 100755
--- a/py/tools/ghost.py
+++ b/py/tools/ghost.py
@@ -266,8 +266,8 @@
sock.settimeout(_CONNECT_TIMEOUT)
sock.connect((host, port))
return True
- except ssl.SSLError as e:
- return False
+ except ssl.SSLError:
+ return False
except socket.error: # Connect refused or timeout
raise
except Exception:
@@ -277,12 +277,12 @@
logging.info('Upgrade: initiating upgrade sequence...')
try:
- https_enabled = self.TLSEnabled(
- self._connected_addr[0], _OVERLORD_HTTP_PORT)
+ https_enabled = self.TLSEnabled(self._connected_addr[0],
+ _OVERLORD_HTTP_PORT)
except socket.error:
- logging.error('Upgrade: failed to connect to Overlord HTTP server, '
- 'abort')
- return
+ logging.error('Upgrade: failed to connect to Overlord HTTP server, '
+ 'abort')
+ return
if self._tls_settings.Enabled() and not https_enabled:
logging.error('Upgrade: TLS enforced but found Overlord HTTP server '
@@ -1042,8 +1042,11 @@
logging.info('Trying %s:%d ...', *addr)
self.Reset()
- # Check if server has TLS enabled
- self._tls_settings.SetEnabled(self.TLSEnabled(*addr))
+ # Check if server has TLS enabled.
+ # Only control channel needs to determine if TLS is enabled. Other mode
+ # should use the TLSSettings passed in when it was spawned.
+ if self._mode == Ghost.AGENT:
+ self._tls_settings.SetEnabled(self.TLSEnabled(*addr))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(_CONNECT_TIMEOUT)