diff --git a/weka_upgrade_checker/supported_os.json b/weka_upgrade_checker/supported_os.json index 3b6ea3b..0f3601e 100644 --- a/weka_upgrade_checker/supported_os.json +++ b/weka_upgrade_checker/supported_os.json @@ -9424,5 +9424,355 @@ "backend": true, "client": true } + ], +"5.1.21.26": [ + { + "distro": "alma8", + "distroVersion": "almalinux8.1", + "backend": true, + "client": true + }, + { + "distro": "alma9", + "distroVersion": "almalinux9.4", + "backend": true, + "client": true + }, + { + "distro": "alma9", + "distroVersion": "almalinux9.5", + "backend": false, + "client": true + }, + { + "distro": "alma9", + "distroVersion": "almalinux9.6", + "backend": true, + "client": true + }, + { + "distro": "amzn2", + "distroVersion": "amzn2", + "backend": true, + "client": true + }, + { + "distro": "amzn2023", + "distroVersion": "amzn2023", + "backend": true, + "client": true + }, + { + "distro": "centos-stream7", + "distroVersion": "centos-stream7.9", + "backend": true, + "client": true + }, + { + "distro": "centos-stream8", + "distroVersion": "centos-stream8.4", + "backend": true, + "client": true + }, + { + "distro": "centos8", + "distroVersion": "centos8.4", + "backend": true, + "client": true + }, + { + "distro": "centos8", + "distroVersion": "centos8.5", + "backend": true, + "client": true + }, + { + "distro": "centos9", + "distroVersion": "centos9", + "backend": true, + "client": true + }, + { + "distro": "debian12", + "distroVersion": "debian12", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.0", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.1", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.10", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.2", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.3", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.4", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.5", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.7", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.8", + "backend": true, + "client": true + }, + { + "distro": "oracle8", + "distroVersion": "oracle8.9", + "backend": true, + "client": true + }, + { + "distro": "oracle9", + "distroVersion": "oracle9.4", + "backend": true, + "client": true + }, + { + "distro": "oracle9", + "distroVersion": "oracle9.6", + "backend": true, + "client": true + }, + { + "distro": "oracle9", + "distroVersion": "oracle9.7", + "backend": true, + "client": true + }, + { + "distro": "rhel8", + "distroVersion": "redhat8.1", + "backend": true, + "client": true + }, + { + "distro": "rhel8", + "distroVersion": "redhat8.10", + "backend": true, + "client": true + }, + { + "distro": "rhel8", + "distroVersion": "redhat8.6", + "backend": true, + "client": true + }, + { + "distro": "rhel8", + "distroVersion": "redhat8.7", + "backend": true, + "client": true + }, + { + "distro": "rhel8", + "distroVersion": "redhat8.9", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.0", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.2", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.3", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.4", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.5", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.6", + "backend": true, + "client": true + }, + { + "distro": "rhel9", + "distroVersion": "redhat9.7", + "backend": true, + "client": true + }, + { + "distro": "rocky10", + "distroVersion": "rocky10", + "backend": false, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.1", + "backend": true, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.10", + "backend": true, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.6", + "backend": true, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.7", + "backend": true, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.8", + "backend": true, + "client": true + }, + { + "distro": "rocky8", + "distroVersion": "rocky8.9", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.1", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.2", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.3", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.4", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.5", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.6", + "backend": true, + "client": true + }, + { + "distro": "sles15", + "distroVersion": "suse15sp6", + "backend": false, + "client": true + }, + { + "distro": "sles15", + "distroVersion": "suse15sp7", + "backend": false, + "client": true + }, + { + "distro": "ubuntu20", + "distroVersion": "ubuntu20.04", + "backend": true, + "client": true + }, + { + "distro": "ubuntu22", + "distroVersion": "ubuntu22.04", + "backend": true, + "client": true + }, + { + "distro": "ubuntu24", + "distroVersion": "ubuntu24.04", + "backend": true, + "client": true + }, + { + "distro": "rocky9", + "distroVersion": "rocky9.7", + "backend": true, + "client": true + } ] } diff --git a/weka_upgrade_checker/upgrade_path.json b/weka_upgrade_checker/upgrade_path.json index 8c24c3e..59dd1f9 100644 --- a/weka_upgrade_checker/upgrade_path.json +++ b/weka_upgrade_checker/upgrade_path.json @@ -1,4 +1,5 @@ { + "5.1.21.26": { "min": ["4.4.21.2", "5.0"], "max": ["4.4.25", "5.1.0.605"] }, "5.1.20.7": { "min": ["4.4.21.2", "5.0"], "max": ["4.4.23", "5.1.0.605"] }, "5.1.0.605": { "min": ["5.0.2"], "max": [] }, "5.1.0.547": { "min": ["5.0.2"], "max": [] }, diff --git a/weka_upgrade_checker/version.txt b/weka_upgrade_checker/version.txt index a2739ec..d9de3aa 100644 --- a/weka_upgrade_checker/version.txt +++ b/weka_upgrade_checker/version.txt @@ -1 +1 @@ -1.10.12 \ No newline at end of file +1.10.13 \ No newline at end of file diff --git a/weka_upgrade_checker/weka_upgrade_checker b/weka_upgrade_checker/weka_upgrade_checker index 1d906ee..523d2ad 100755 Binary files a/weka_upgrade_checker/weka_upgrade_checker and b/weka_upgrade_checker/weka_upgrade_checker differ diff --git a/weka_upgrade_checker/weka_upgrade_checker.py b/weka_upgrade_checker/weka_upgrade_checker.py index 52008c9..dc4e9f3 100755 --- a/weka_upgrade_checker/weka_upgrade_checker.py +++ b/weka_upgrade_checker/weka_upgrade_checker.py @@ -40,7 +40,7 @@ parse = V -pg_version = "1.10.12" +pg_version = "1.10.13" known_issues_file = "known_issues.json" log_file_path = os.path.abspath("./weka_upgrade_checker.log") @@ -349,28 +349,38 @@ def weka_cluster_checks(target_version): INFO("VERIFYING WEKA LOCAL CONTAINER STATUS") running_container = [] - try: - con_status = subprocess.check_output( - ["weka", "local", "status", "-J"], stderr=subprocess.STDOUT - ) - con_status = con_status.decode("utf-8").strip() - if not con_status: - raise ValueError("Empty output from 'weka local status -J'") - con_status = json.loads(con_status) - except (subprocess.CalledProcessError, ValueError, json.JSONDecodeError) as e: - BAD(f"Error checking Weka local container status: {str(e)}") - sys.exit(1) - - for container in con_status: - if con_status[container].get("type") == "weka" and con_status[container].get( - "isRunning" - ): - GOOD("WEKA local container is running") - running_container += [container] + con_status = None + last_error = None + for attempt in range(2): + try: + raw = subprocess.check_output( + ["weka", "local", "status", "-J"], stderr=subprocess.STDOUT + ) + raw = raw.decode("utf-8").strip() + if not raw: + raise ValueError("Empty output from 'weka local status -J'") + con_status = json.loads(raw) break + except (subprocess.CalledProcessError, ValueError, json.JSONDecodeError) as e: + last_error = e + if attempt == 0: + time.sleep(2) + + if con_status is None: + WARN( + f"Unable to verify Weka local container status after retry ({last_error});" + ) else: - BAD("WEKA local container is NOT running, cannot continue") - sys.exit(1) + for container in con_status: + if con_status[container].get("type") == "weka" and con_status[container].get( + "isRunning" + ): + GOOD("WEKA local container is running") + running_container += [container] + break + else: + BAD("WEKA local container is NOT running, cannot continue") + sys.exit(1) INFO("WEKA USER LOGIN TEST") p = run(["weka", "status"], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) @@ -707,22 +717,20 @@ def __init__(self, machine_json): check_version = ".".join(sw_version[:2]) cl_machine_need_upgrade = [] cl_host_need_upgrade = [] - try: for w_cl_server in weka_cl_servers: clsw_version = w_cl_server.versions.split(".") if ".".join(clsw_version[:2]) != check_version: - cl_machine_need_upgrade += [w_cl_server.name, w_cl_server.ip] + cl_machine_need_upgrade += [w_cl_server.name, w_cl_server.ip, w_cl_server.versions] except NameError as e: WARN("Unable to determine client WEKA version") except NameError as e: WARN("Unable to determine client WEKA version") - if cl_machine_need_upgrade: WARN( - f"The following client hosts must be upgraded to {weka_version} prior to the WEKA upgrade\n" + f"The following client hosts are running a release different than the cluster release ({weka_version}), and may needed upgraded prior to the WEKA cluster upgrade\n" ) - printlist(cl_machine_need_upgrade, 2) + printlist(cl_machine_need_upgrade, 3) else: GOOD("All clients hosts are up to date")