From da81d22323c7bf0409141d51b216695da7c64658 Mon Sep 17 00:00:00 2001 From: David Gamero Date: Mon, 20 Jun 2022 20:06:51 -0400 Subject: [PATCH] abstract get latest --- test/validate-kubectl.py | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/test/validate-kubectl.py b/test/validate-kubectl.py index 8ba289a..500927e 100644 --- a/test/validate-kubectl.py +++ b/test/validate-kubectl.py @@ -4,9 +4,24 @@ import json import requests 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] installed_version_info = None -PASSED = False +PASSED = True try: print('kubectl version --client -o json') @@ -18,25 +33,19 @@ except Exception as ex: sys.exit('kubectl not installed') try: + # NOT Match if version_to_check[0] == '!': version_to_check = version_to_check[1:] 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: if version_to_check == 'latest': - 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 - version_to_check = response.content.decode('utf-8') + version_to_check = get_latest_version() 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: print(f'Exception: {ex}') pass @@ -44,4 +53,4 @@ except Exception as ex: if not PASSED: sys.exit('Setting up of '+version_to_check+' kubectl failed') print('Test passed') -sys.exit(0) +sys.exit()