abstract get latest

This commit is contained in:
David Gamero 2022-06-20 20:06:51 -04:00
parent 85cd6e4c1d
commit da81d22323

View file

@ -4,9 +4,24 @@ import json
import requests import requests
import time import time
def get_latest_version():
response = None
time_to_sleep = 2
for _ in range(10):
response = requests.get(
'https://storage.googleapis.com/kubernetes-release/release/stable.txt')
if response.status_code == 200:
break
print('Failed to obtain latest version info, retrying.')
time.sleep(time_to_sleep)
time_to_sleep *= 2
return response.content.decode('utf-8')
version_to_check = sys.argv[1] version_to_check = sys.argv[1]
installed_version_info = None installed_version_info = None
PASSED = False PASSED = True
try: try:
print('kubectl version --client -o json') print('kubectl version --client -o json')
@ -18,25 +33,19 @@ except Exception as ex:
sys.exit('kubectl not installed') sys.exit('kubectl not installed')
try: try:
# NOT Match
if version_to_check[0] == '!': if version_to_check[0] == '!':
version_to_check = version_to_check[1:] version_to_check = version_to_check[1:]
print(f'checking NOT version: {version_to_check}') print(f'checking NOT version: {version_to_check}')
PASSED = True if installed_version_info['clientVersion']['gitVersion'] != version_to_check else False if installed_version_info['clientVersion']['gitVersion'] == version_to_check:
PASSED = False
# Exact Match
else: else:
if version_to_check == 'latest': if version_to_check == 'latest':
response = None version_to_check = get_latest_version()
time_to_sleep = 2
for _ in range(10):
response = requests.get(
'https://storage.googleapis.com/kubernetes-release/release/stable.txt')
if response.status_code == 200:
break
print('Failed to obtain latest version info, retrying.')
time.sleep(time_to_sleep)
time_to_sleep *= 2
version_to_check = response.content.decode('utf-8')
print(f'version_to_check: {version_to_check}') print(f'version_to_check: {version_to_check}')
PASSED = True if installed_version_info['clientVersion']['gitVersion'] == version_to_check else False if installed_version_info['clientVersion']['gitVersion'] != version_to_check:
PASSED = False
except Exception as ex: except Exception as ex:
print(f'Exception: {ex}') print(f'Exception: {ex}')
pass pass
@ -44,4 +53,4 @@ except Exception as ex:
if not PASSED: if not PASSED:
sys.exit('Setting up of '+version_to_check+' kubectl failed') sys.exit('Setting up of '+version_to_check+' kubectl failed')
print('Test passed') print('Test passed')
sys.exit(0) sys.exit()