Skip to content

Commit 50cd1f7

Browse files
committed
Confluence: add retry and error handling locig for get java version
1 parent 04820e4 commit 50cd1f7

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

app/util/analytics/application_info.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,13 @@ def dataset_information(self):
153153

154154
@property
155155
def java_version(self):
156-
full_system_info = self.client.get_system_info_page()
157-
java_versions_parsed = html.fromstring(full_system_info).xpath('//*[contains(@id, "java.version")]')
158-
if java_versions_parsed:
159-
return java_versions_parsed[0].text
156+
try:
157+
full_system_info = self.client.get_system_info_page()
158+
java_versions_parsed = html.fromstring(full_system_info).xpath('//*[contains(@id, "java.version")]')
159+
if java_versions_parsed:
160+
return java_versions_parsed[0].text
161+
except Exception as e:
162+
print(f'ERROR: Could not get the Java version. Error: {e}')
160163
return None
161164

162165
@property

app/util/api/confluence_clients.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def get_groups_membership(self, username):
190190
groups = [group['name'] for group in response.json()['results']]
191191
return groups
192192

193+
@retry()
193194
def get_system_info_page(self):
194195
login_url = f'{self.host}/dologin.action'
195196
auth_url = f'{self.host}/doauthenticate.action'
@@ -220,7 +221,11 @@ def get_system_info_page(self):
220221
self.session.post(url=tsv_auth_url, json=tsv_login_body)
221222

222223
system_info_html = self.session.post(url=auth_url, data=auth_body, headers={'X-Atlassian-Token': 'no-check'}, verify=self.verify)
223-
return system_info_html.content.decode("utf-8")
224+
page_decoded = system_info_html.content.decode("utf-8")
225+
if page_decoded:
226+
return page_decoded
227+
else:
228+
raise Exception(f"ERROR: System info page is empty. Content: {page_decoded}")
224229

225230
def get_installed_apps(self):
226231
plugins_url = f'{self.host}/rest/plugins/1.0/'
@@ -230,10 +235,13 @@ def get_installed_apps(self):
230235

231236

232237
def get_deployment_type(self):
233-
html_pattern = 'deployment=terraform'
234-
confluence_system_page = self.get_system_info_page()
235-
if confluence_system_page.count(html_pattern):
236-
return 'terraform'
238+
try:
239+
html_pattern = 'deployment=terraform'
240+
confluence_system_page = self.get_system_info_page()
241+
if confluence_system_page.count(html_pattern):
242+
return 'terraform'
243+
except Exception as e:
244+
print(f"Warning: Could not get deployment type. Error: {e}")
237245
return 'other'
238246

239247
def get_node_ip(self, node_id: str) -> str:

0 commit comments

Comments
 (0)