Chromium Code Reviews| Index: scheduler/scheduler_models.py |
| diff --git a/scheduler/scheduler_models.py b/scheduler/scheduler_models.py |
| index 870914d5de0b2a3d3aa76d211b15058762ac059d..644510db4ecd34a3981a6a819316342c23b827e5 100644 |
| --- a/scheduler/scheduler_models.py |
| +++ b/scheduler/scheduler_models.py |
| @@ -861,6 +861,54 @@ class Job(DBObject): |
| return entries |
| + def is_image_update_job(self): |
| + """ |
| + Discover if the current job requires an OS update. |
| + |
| + @return: True/False if OS should be updated before job is run. |
| + """ |
| + if not self.parameterized_job_id: |
| + # All image update jobs have the parameterized_job_id set. |
|
DaleCurtis
2011/01/11 00:46:05
Nit, but I think comment should be on line above.
pauldean_chromium
2011/01/12 18:12:52
Done.
|
| + return False |
| + |
| + # Retrieve the ID of the ParameterizedJob this job is an instance of. |
| + sql_str = ('SELECT test_id ' |
|
DaleCurtis
2011/01/11 00:46:05
Use """ syntax like in the rest of the file.
Also
pauldean_chromium
2011/01/12 18:12:52
Cool, thanks for the info. I've fixed that up.
|
| + 'FROM afe_parameterized_jobs ' |
| + 'WHERE id = %s' % self.parameterized_job_id) |
| + rows = _db.execute(sql_str) |
| + if not rows: |
| + return False |
| + test_id = rows[0][0] |
|
DaleCurtis
2011/01/11 00:46:05
Is it possible for rows[n] to be None or something
pauldean_chromium
2011/01/12 18:12:52
In the testing I've done with regular and the new
|
| + |
| + # Retrieve the ID of the known autoupdate_ParameterizedJob. |
| + sql_str = ('SELECT id ' |
|
DaleCurtis
2011/01/11 00:46:05
Same comment as above.
pauldean_chromium
2011/01/12 18:12:52
Done.
|
| + 'FROM afe_autotests ' |
| + 'WHERE name = \"%s\"' % 'autoupdate_ParameterizedJob') |
| + rows = _db.execute(sql_str) |
| + if not rows: |
| + return False |
| + update_id = rows[0][0] |
|
DaleCurtis
2011/01/11 00:46:05
Same comment as above.
pauldean_chromium
2011/01/12 18:12:52
Done.
|
| + |
| + # If the IDs are the same we've found an image update job. |
| + if test_id == update_id: |
|
DaleCurtis
2011/01/11 00:46:05
Will all parameterized jobs always be image jobs?
pauldean_chromium
2011/01/12 18:12:52
For now image update jobs are the only parameteriz
|
| + # Finally, get the path to the OS image to install. |
| + sql_str = ('SELECT parameter_value ' |
|
DaleCurtis
2011/01/11 00:46:05
Same comment as above.
pauldean_chromium
2011/01/12 18:12:52
Done.
|
| + 'FROM afe_parameterized_job_parameters ' |
| + 'WHERE parameterized_job_id = %s ' |
| + % self.parameterized_job_id) |
| + rows = _db.execute(sql_str) |
| + if not rows: |
| + # The image cannot be updated without an OS path. |
|
DaleCurtis
2011/01/11 00:46:05
Consider reflowing w/ else: return False below. Dr
pauldean_chromium
2011/01/12 18:12:52
Good point. Fixed.
|
| + return False |
| + |
| + # Save the path in update_image_path to use later as a command |
| + # line parameter to autoserv. |
| + self.update_image_path = rows[0][0] |
| + return True |
| + else: |
| + return False |
| + |
| + |
| def get_execution_details(self): |
| """ |
| Get test execution details for this job. |