Merge pull request #13179 from rhpvorderman/patch-5

[21.09] Catch exceptions when job.user is None
This commit is contained in:
Marius van den Beek
2022-01-18 18:57:17 +01:00
committed by GitHub
7 changed files with 19 additions and 20 deletions
+3 -6
View File
@@ -2221,12 +2221,9 @@ class JobWrapper(HasResourceParameters):
@property
def user(self):
job = self.get_job()
if job.user is not None:
return job.user.email
elif job.galaxy_session is not None and job.galaxy_session.user is not None:
return job.galaxy_session.user.email
elif job.history is not None and job.history.user is not None:
return job.history.user.email
user_email = job.get_user_email()
if user_email:
return user_email
elif job.galaxy_session is not None:
return f"anonymous@{job.galaxy_session.remote_addr.split()[-1]}"
else:
+1 -1
View File
@@ -54,7 +54,7 @@ class EmailAction(DefaultJobAction):
else:
host = socket.getfqdn()
frm = f'galaxy-no-reply@{host}'
to = job.user.email
to = job.get_user_email()
subject = f"Galaxy job completion notification from history '{job.history.name}'"
outdata = ',\n'.join(ds.dataset.display_name() for ds in job.output_datasets)
body = f"Your Galaxy job generating dataset(s):\n\n{outdata}\n\nis complete as of {datetime.datetime.now().strftime('%I:%M')}. Click the link below to access your data: \n{link}"
+1 -5
View File
@@ -411,11 +411,7 @@ def view_show_job(trans, job, full: bool) -> typing.Dict:
))
if is_admin:
if job.user:
job_dict['user_email'] = job.user.email
else:
job_dict['user_email'] = None
job_dict['user_email'] = job.get_user_email()
job_dict['job_metrics'] = summarize_job_metrics(trans, job)
return job_dict
+9
View File
@@ -1125,6 +1125,15 @@ class Job(Base, JobLike, UsesCreateAndUpdateTime, Dictifiable, RepresentById):
def set_tool_id(self, tool_id):
self.tool_id = tool_id
def get_user_email(self):
if self.user is not None:
return self.user.email
elif self.galaxy_session is not None and self.galaxy_session.user is not None:
return self.galaxy_session.user.email
elif self.history is not None and self.history.user is not None:
return self.history.user.email
return None
def set_tool_version(self, tool_version):
self.tool_version = tool_version
+1 -1
View File
@@ -210,7 +210,7 @@ class JobController(BaseGalaxyAPIController, UsesVisualizationMixin):
if view == 'admin_job_list':
j['decoded_job_id'] = job.id
if user_details:
j['user_email'] = job.user.email
j['user_email'] = job.get_user_email()
out.append(j)
return out
@@ -143,7 +143,7 @@ class SpecifiedDateListGrid(grids.Grid):
def get_value(self, trans, grid, job):
if job.user:
return escape(job.user.email)
return escape(job.get_user_email())
return 'anonymous'
class EmailColumn(grids.GridColumn):
@@ -279,10 +279,7 @@ class Jobs(BaseUIController, ReportQueryBuilder):
# that submitted the job.
job_id = kwd.get('id', None)
job = get_job(trans, job_id)
if job.user:
kwd['email'] = job.user.email
else:
kwd['email'] = None # For anonymous users
kwd['email'] = job.get_user_email()
return trans.response.send_redirect(web.url_for(controller='jobs',
action='user_per_month',
**kwd))
+2 -2
View File
@@ -37,8 +37,8 @@
<tr>
<td colspan="2">${job.tool_id}</td>
<td>
%if job.user and job.user.email:
${job.user.email}
%if job.get_user_email():
${job.get_user_email()}
%else:
anonymous
%endif