checkconnection cleanup (#1552)

This commit is contained in:
Ross Scroggs
2022-08-22 06:19:39 -07:00
committed by GitHub
parent d54ca7ee43
commit bd18f14137
3 changed files with 13 additions and 17 deletions

View File

@@ -872,6 +872,7 @@ Specify a collection of Users by directly specifying them or by specifying items
<UserBasicAttribute>| <UserBasicAttribute>|
<UserMultiAttribute> <UserMultiAttribute>
gam checkconnection
gam version [check|checkrc|simple|extended] [timeoffset] [location <HostName>] gam version [check|checkrc|simple|extended] [timeoffset] [location <HostName>]
gam help gam help

View File

@@ -723,7 +723,7 @@ def doGAMCheckForUpdates(forceCheck=False):
httplib2.ServerNotFoundError, httplib2.ServerNotFoundError,
RuntimeError, RuntimeError,
ConnectionError, ConnectionError,
socket.timeout): TimeoutError):
return return
@@ -776,36 +776,31 @@ def checkConnection():
for host in hosts: for host in hosts:
host = fix_hosts.get(host, host) host = fix_hosts.get(host, host)
check_line = f'Checking {host}...' check_line = f'Checking {host}...'
sys.stdout.write(f'{check_line:<70}') sys.stdout.write(f'{check_line:<50}')
sys.stdout.flush() sys.stdout.flush()
gen_firewall = 'You probably have security software or a firewall on your machine or network that is preventing GAM from making Internet connections. Check your network configuration or try running GAM on a hotspot or home network to see if the problem exists only on your organization\'s network.' gen_firewall = 'You probably have security software or a firewall on your machine or network that is preventing GAM from making Internet connections. Check your network configuration or try running GAM on a hotspot or home network to see if the problem exists only on your organization\'s network.'
try: try:
httpc.request(f'https://{host}/', 'HEAD') httpc.request(f'https://{host}/', 'HEAD')
print(okay) print(okay)
except ConnectionRefusedError: except ConnectionRefusedError:
print(f'\n{not_okay} Connection refused. {gen_firewall}') print(f'{not_okay}\n Connection refused. {gen_firewall}')
except ConnectionResetError: except ConnectionResetError:
print(f'\n{not_okay} Connection reset by peer. {gen_firewall}') print(f'{not_okay}\n Connection reset by peer. {gen_firewall}')
except httplib2.error.ServerNotFoundError: except httplib2.error.ServerNotFoundError:
print(f'\n{not_okay} Failed to find server. Your DNS is probably misconfigured.') print(f'{not_okay}\n Failed to find server. Your DNS is probably misconfigured.')
except ssl.SSLError as e: except ssl.SSLError as e:
if e.reason == 'SSLV3_ALERT_HANDSHAKE_FAILURE': if e.reason == 'SSLV3_ALERT_HANDSHAKE_FAILURE':
print(f'\n{not_okay} GAM expects to connect with TLS 1.3 or newer and that failed. If you\'re proxy / firewall is not compatible with TLS 1.3 then you can tell GAM to allow TLS 1.2 by setting GAM_TLS_MIN_VERSION=TLSv1_2 as an environment variable.') print(f'{not_okay}\n GAM expects to connect with TLS 1.3 or newer and that failed. If your firewall / proxy server is not compatible with TLS 1.3 then you can tell GAM to allow TLS 1.2 by setting the GAM_TLS_MIN_VERSION=TLSv1_2 environment variable.')
elif e.reason == 'CERTIFICATE_VERIFY_FAILED': elif e.reason == 'CERTIFICATE_VERIFY_FAILED':
print(f'\n{not_okay} Certificate verification failed. If you are behind a firewall / proxy server that does TLS / SSL inspection you may need to point GAM at your certificate authority file by setting the GAM_CA_FILE=/path/to/your/certauth.pem environment variable.') print(f'{not_okay}\n Certificate verification failed. If you are behind a firewall / proxy server that does TLS / SSL inspection you may need to point GAM at your certificate authority file by setting the GAM_CA_FILE=/path/to/your/certauth.pem environment variable.')
elif e.strerror.startswith('TLS/SSL connection has been closed'): elif e.strerror.startswith('TLS/SSL connection has been closed'):
print(f'\n{not_okay} TLS connection was closed. {gen_firewall}') print(f'{not_okay}\n TLS connection was closed. {gen_firewall}')
else: else:
print(e) print(f'{not_okay}\n {e.reason}: {str(e)}')
print(e.strerror)
print(dir(e))
print(f'\n{not_okay} {e.reason}')
except TimeoutError: except TimeoutError:
print('\n{not_okay} timed out trying to connect to host') print(f'{not_okay}\n Timed out trying to connect to host')
except Exception as e: except Exception as e:
print('Generic catchall exception...') print(f'{not_okay}\n {str(e)}')
print(type(e))
print(e)
def doGAMVersion(checkForArgs=True): def doGAMVersion(checkForArgs=True):
force_check = extended = simple = timeOffset = False force_check = extended = simple = timeOffset = False

View File

@@ -1,6 +1,6 @@
[metadata] [metadata]
name = GAM for Google Workspace name = GAM for Google Workspace
version = 6.0.22 version = 6.0.23
description = Command line management for Google Workspaces description = Command line management for Google Workspaces
long_description = file: readme.md long_description = file: readme.md
long_description_content_type = text/markdown long_description_content_type = text/markdown