aboutsummaryrefslogtreecommitdiff
path: root/lnt/server/db/testsuitedb.py
diff options
context:
space:
mode:
Diffstat (limited to 'lnt/server/db/testsuitedb.py')
-rw-r--r--lnt/server/db/testsuitedb.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/lnt/server/db/testsuitedb.py b/lnt/server/db/testsuitedb.py
index dd18096..0031dca 100644
--- a/lnt/server/db/testsuitedb.py
+++ b/lnt/server/db/testsuitedb.py
@@ -363,8 +363,8 @@ class TestSuiteDB(object):
class_dict[iname] = item.column = make_run_column(iname)
- def __init__(self, machine, order, start_time, end_time):
- self.id = None
+ def __init__(self, new_id, machine, order, start_time, end_time):
+ self.id = new_id
self.machine = machine
self.order = order
self.start_time = start_time
@@ -962,6 +962,7 @@ class TestSuiteDB(object):
# Find the order record.
order = self._getOrCreateOrder(session, run_parameters)
+ new_id = None
if merge != 'append':
existing_runs = session.query(self.Run) \
@@ -977,6 +978,10 @@ class TestSuiteDB(object):
logger.info("Duplicate submission for order %r: "
"deleting previous run %r" %
(order, previous_run))
+
+ # Keep the latest ID so the URL is still valid on replace
+ new_id = previous_run.id
+
session.delete(previous_run)
else:
raise ValueError('Invalid Run mergeStrategy %r' % merge)
@@ -996,7 +1001,7 @@ class TestSuiteDB(object):
"%Y-%m-%d %H:%M:%S")
run_parameters.pop('end_time')
- run = self.Run(machine, order, start_time, end_time)
+ run = self.Run(new_id, machine, order, start_time, end_time)
# First, extract all of the specified run fields.
for item in self.run_fields: