From b23874d8be1af3d87c90e9b22ed5c86cc705b6bc Mon Sep 17 00:00:00 2001 From: Goutham Pacha Ravi Date: Fri, 11 Aug 2023 14:52:54 -0700 Subject: [PATCH] Set "updated_at" field on access rules Closes-Bug: #2031193 Change-Id: I9f9f32401d4af4d40b8beb271fa2c9b5ea24105e Signed-off-by: Goutham Pacha Ravi (cherry-picked from commit 234d26cdec57f54079e4477add815b5d697f3a27) (cherry picked from commit e6950e3456327b6fb7b7527120f5103174a583bd) (cherry picked from commit 1ee09205adeed24494101ea0ba2c19be1fdb5941) (cherry picked from commit 1b9d500f22b525ee8013ce8c8b61692372557e7d) (cherry picked from commit 127007a1d0fc4d96677756ba78df7b03b852c8af) --- manila/db/sqlalchemy/api.py | 7 +++++++ manila/tests/db/sqlalchemy/test_api.py | 7 +++++++ ...31193-set-updated_at-access-rules-a382a3e352f3ef7d.yaml | 5 +++++ 3 files changed, 19 insertions(+) create mode 100644 releasenotes/notes/bug-2031193-set-updated_at-access-rules-a382a3e352f3ef7d.yaml diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index 67a4411752..561b9ae3f7 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -2636,6 +2636,9 @@ def share_instance_access_update(context, access_id, instance_id, updates): share_access_map_updates, share_instance_access_map_updates = ( _extract_subdict_by_fields(updates, share_access_fields) ) + updated_at = timeutils.utcnow() + share_access_map_updates['updated_at'] = updated_at + share_instance_access_map_updates['updated_at'] = updated_at with session.begin(): share_access = _share_access_get_query( @@ -3134,6 +3137,10 @@ def share_snapshot_instance_access_update( _extract_subdict_by_fields(updates, snapshot_access_fields) ) + updated_at = timeutils.utcnow() + snapshot_access_map_updates['updated_at'] = updated_at + share_instance_access_map_updates['updated_at'] = updated_at + session = get_session() with session.begin(): diff --git a/manila/tests/db/sqlalchemy/test_api.py b/manila/tests/db/sqlalchemy/test_api.py index 67c133a7f9..b24ff16602 100644 --- a/manila/tests/db/sqlalchemy/test_api.py +++ b/manila/tests/db/sqlalchemy/test_api.py @@ -145,6 +145,10 @@ class ShareAccessDatabaseAPITestCase(test.TestCase): self.assertEqual(constants.STATUS_ERROR, instance_access_mapping['state']) self.assertEqual('watson4heisman', access['access_key']) + self.assertIsNotNone(access['updated_at']) + time_now = timeutils.utcnow() + self.assertTrue(access['updated_at'] < time_now) + self.assertTrue(instance_access_mapping['updated_at'] < time_now) @ddt.data(True, False) def test_share_access_get_all_for_instance_with_share_access_data( @@ -1787,6 +1791,9 @@ class ShareSnapshotDatabaseAPITestCase(test.TestCase): {'state': constants.STATUS_ACTIVE}) self.assertSubDictMatch(values, actual_result.to_dict()) + self.assertIsNotNone(actual_result['updated_at']) + time_now = timeutils.utcnow() + self.assertTrue(actual_result['updated_at'] < time_now) def test_share_snapshot_instance_access_get(self): access = db_utils.create_snapshot_access( diff --git a/releasenotes/notes/bug-2031193-set-updated_at-access-rules-a382a3e352f3ef7d.yaml b/releasenotes/notes/bug-2031193-set-updated_at-access-rules-a382a3e352f3ef7d.yaml new file mode 100644 index 0000000000..cfc92083d3 --- /dev/null +++ b/releasenotes/notes/bug-2031193-set-updated_at-access-rules-a382a3e352f3ef7d.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + The ``updated_at`` field is correctly set on share and snapshot access + rules when an update has been made on the database.