Add func test for nova-manage db archive_deleted_rows --before
This is inspired by database query filtering that occurs when --before is passed to nova-manage db archive_deleted_rows. There is a comparison WHERE deleted_at < before and not all database records populate it. This verifies that no records are missed due to that comparision when archiving with --before. Related-Bug: #1751192 Change-Id: I44b79cfb236e94444740e32b0dd0a2344c29f340
This commit is contained in:
parent
9cdecc81fb
commit
b84787d26a
|
@ -1734,6 +1734,30 @@ class TestDBArchiveDeletedRows(integrated_helpers._IntegratedTestBase):
|
|||
self.cli.archive_deleted_rows(task_log=True, verbose=True)
|
||||
self.assertRegex(self.output.getvalue(), r'\| task_log\s+\| 2')
|
||||
|
||||
def test_archive_before(self):
|
||||
"""Test that no records are left over after archiving with --before"""
|
||||
# Create and delete a server so we can archive.
|
||||
server = self._build_server()
|
||||
server = self.api.post_server({'server': server})
|
||||
server = self.api.get_server(server['id'])
|
||||
self._delete_server(server)
|
||||
# First try archiving records before a past datetime. Nothing should be
|
||||
# archived.
|
||||
past = timeutils.utcnow() - datetime.timedelta(hours=1)
|
||||
ret = self.cli.archive_deleted_rows(before=past.isoformat())
|
||||
# Return code 0 means nothing was archived.
|
||||
self.assertEqual(0, ret)
|
||||
# Now try archiving records before a future datetime. Everything should
|
||||
# have been archived.
|
||||
future = timeutils.utcnow() + datetime.timedelta(hours=1)
|
||||
ret = self.cli.archive_deleted_rows(before=future.isoformat())
|
||||
# Return code 1 means something was archived.
|
||||
self.assertEqual(1, ret)
|
||||
# Now archive everything without specifying --before.
|
||||
ret = self.cli.archive_deleted_rows()
|
||||
# Return code 0 means nothing was archived.
|
||||
self.assertEqual(0, ret)
|
||||
|
||||
|
||||
class TestDBArchiveDeletedRowsMultiCell(integrated_helpers.InstanceHelperMixin,
|
||||
test.TestCase):
|
||||
|
|
Loading…
Reference in New Issue