From ed65c4bb1ffc3bf1b6ebcb6f9e1f09e3cef2708e Mon Sep 17 00:00:00 2001 From: Maurice Escher Date: Mon, 24 Oct 2022 08:16:20 +0200 Subject: [PATCH] init share server updated_at field to be able to always make a judgement about the age for automatic cleanup Change-Id: Ic7d3925035b1563d8acc8f5f24a72231b49a2c89 Closes-Bug: #1993828 --- manila/db/sqlalchemy/api.py | 2 ++ manila/tests/api/v2/test_share_servers.py | 2 +- ...3828-init-share-server-updated-at-affb6ef54c71939d.yaml | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/bug-1993828-init-share-server-updated-at-affb6ef54c71939d.yaml diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index d37a2c8ca9..b9023f818a 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -4525,6 +4525,8 @@ def share_server_create(context, values): values = ensure_model_dict_has_id(values) server_ref = models.ShareServer() + # updated_at is needed for judgement of automatic cleanup + server_ref.updated_at = timeutils.utcnow() server_ref.update(values) session = get_session() with session.begin(): diff --git a/manila/tests/api/v2/test_share_servers.py b/manila/tests/api/v2/test_share_servers.py index e4b7fbff67..7693a76006 100644 --- a/manila/tests/api/v2/test_share_servers.py +++ b/manila/tests/api/v2/test_share_servers.py @@ -148,7 +148,7 @@ class ShareServerControllerTest(test.TestCase): 'share_server': { 'id': share_server['id'], 'project_id': 'fake', - 'updated_at': None, + 'updated_at': share_server['updated_at'], 'status': constants.STATUS_ACTIVE, 'host': 'fake_host', 'share_network_id': diff --git a/releasenotes/notes/bug-1993828-init-share-server-updated-at-affb6ef54c71939d.yaml b/releasenotes/notes/bug-1993828-init-share-server-updated-at-affb6ef54c71939d.yaml new file mode 100644 index 0000000000..1033230a5c --- /dev/null +++ b/releasenotes/notes/bug-1993828-init-share-server-updated-at-affb6ef54c71939d.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + On share server creation initialize the updated_at field with the current + timestamp to fix broken automatic cleanup in rare occasions where a share + server that would be an automatic cleanup target would be pending in state + `creating` forever.