diff --git a/src/datastation/common/version_info.py b/src/datastation/common/version_info.py index 9f91f42..e64ff70 100644 --- a/src/datastation/common/version_info.py +++ b/src/datastation/common/version_info.py @@ -7,6 +7,7 @@ def rpm_qa(): evr_pattern = r'(?P.*?)-(?P\d+\.\d+\.\d+)-(?P\d+)' +payara_version_pattern = r'Thank you for downloading Payara Server (.*).' def get_rpm_versions(prefix): @@ -38,8 +39,9 @@ def get_dataverse_build_number(dataverse_application_path): def get_payara_version(payara_application_path): - with open(os.path.join(payara_application_path, 'glassfish', 'modules', 'org', 'glassfish', 'main', - 'glassfish-api.jar'), 'r') as f: - for line in f: - if 'Implementation-Version' in line: - return line.split(' ')[1].strip() + with open(os.path.join(payara_application_path, 'README.txt'), 'r') as f: + # Find first line that matches pattern + line = next((line for line in f if match(payara_version_pattern, line)), None) + # get subgroup 1 of the match + payara_version = match(payara_version_pattern, line).group(1) + return payara_version diff --git a/src/tests/test_version_info.py b/src/tests/test_version_info.py index bc419ad..e46594b 100644 --- a/src/tests/test_version_info.py +++ b/src/tests/test_version_info.py @@ -1,6 +1,6 @@ from unittest.mock import patch -from datastation.common.version_info import get_rpm_versions, get_dataverse_version +from datastation.common.version_info import get_rpm_versions, get_dataverse_version, get_payara_version def test_some_modules_with_matching_prefix_found(): @@ -30,3 +30,10 @@ def test_get_dataverse_version(): mock_open.return_value.__enter__.return_value = ['dataverse.version=5.0.1\n'] version = get_dataverse_version('/opt/dv/application') assert version == '5.0.1' + + +def test_get_payara_version(): + with patch('builtins.open') as mock_open: + mock_open.return_value.__enter__.return_value = ['Thank you for downloading Payara Server 5.2021.1!\n'] + version = get_payara_version('/opt/payara') + assert version == '5.2021.1'