autotest: Hoist afe_{parent,}_job_id update out of tko/db.py

BUG=chromium:833988
TEST=None

Change-Id: I6109ea873320770738707823f35d51855430ddab
Reviewed-on: https://chromium-review.googlesource.com/1018720
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
diff --git a/tko/db.py b/tko/db.py
index d84922b..df15372 100644
--- a/tko/db.py
+++ b/tko/db.py
@@ -433,16 +433,13 @@
         self.delete('tko_jobs', where)
 
 
-    def insert_job(self, tag, job, parent_job_id=None, commit=None):
+    def insert_job(self, tag, job, commit=None):
         """Insert a tko job.
 
         @param tag: The job tag.
         @param job: The job object.
-        @param parent_job_id: The parent job id.
         @param commit: If commit the transaction .
         """
-        afe_job_id = utils.get_afe_job_id(tag)
-
         data = {'tag':tag,
                 'label': job.label,
                 'username': job.user,
@@ -450,15 +447,12 @@
                 'queued_time': job.queued_time,
                 'started_time': job.started_time,
                 'finished_time': job.finished_time,
-                'afe_job_id': afe_job_id,
-                'afe_parent_job_id': parent_job_id,
+                'afe_job_id': job.afe_job_id,
+                'afe_parent_job_id': job.afe_parent_job_id,
                 'build': job.build,
                 'build_version': job.build_version,
                 'board': job.board,
                 'suite': job.suite}
-        job.afe_job_id = afe_job_id
-        if parent_job_id:
-            job.afe_parent_job_id = str(parent_job_id)
 
         # TODO(ntang): check job.index directly.
         is_update = hasattr(job, 'index')
diff --git a/tko/parse.py b/tko/parse.py
index c3a9a90..eb06c31 100755
--- a/tko/parse.py
+++ b/tko/parse.py
@@ -345,6 +345,8 @@
         if not dry_run:
             _delete_tests_from_db(db, unmatched_tests)
 
+    job.afe_job_id = tko_utils.get_afe_job_id(jobname)
+    job.afe_parent_job_id = str(job_keyval.get(constants.PARENT_JOB_ID))
     job.build = None
     job.board = None
     job.build_version = None
@@ -403,7 +405,7 @@
             if sponge_url:
                 job.keyval_dict['sponge_url'] = sponge_url
 
-            _write_job_to_db(db, jobname, job, job_keyval)
+            _write_job_to_db(db, jobname, job)
 
             # Verify the job data is written to the database.
             if job.tests:
@@ -507,7 +509,7 @@
                 json.dump(gs_offloader_instructions, f)
 
 
-def _write_job_to_db(db, jobname, job, job_keyval):
+def _write_job_to_db(db, jobname, job):
     """Write all TKO data associated with a job to DB.
 
     This updates the job object as a side effect.
@@ -517,9 +519,7 @@
     @param job: tko.models.job object.
     """
     db.insert_or_update_machine(job)
-    db.insert_job(
-        jobname, job,
-        parent_job_id=job_keyval.get(constants.PARENT_JOB_ID, None))
+    db.insert_job(jobname, job)
     db.update_job_keyvals(job)
     for test in job.tests:
         db.insert_test(job, test)