From ce17ed30c1c20e46f5c0dcb15c370521741b0a28 Mon Sep 17 00:00:00 2001 From: John Date: Tue, 30 Nov 2021 15:16:13 -0500 Subject: [PATCH 1/3] Enable setting ttl for MockDatastoreService This allows people to test their code if they are already setting a ttl. --- st2tests/st2tests/mocks/datastore.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/st2tests/st2tests/mocks/datastore.py b/st2tests/st2tests/mocks/datastore.py index 0282a18ffd..a4d081e1ee 100644 --- a/st2tests/st2tests/mocks/datastore.py +++ b/st2tests/st2tests/mocks/datastore.py @@ -34,7 +34,8 @@ def __init__(self, logger, pack_name, class_name, api_username=None): self._pack_name = pack_name self._class_name = class_name self._username = api_username or "admin" - + self._logger = logger + # Holds mock KeyValuePair objects # Key is a KeyValuePair name and value is the KeyValuePair object self._datastore_items = {} @@ -96,10 +97,6 @@ def set_value( """ Store a value in a dictionary which is local to this class. """ - if ttl: - raise ValueError( - 'MockDatastoreService.set_value doesn\'t support "ttl" argument' - ) name = self._get_full_key_name(name=name, local=local) @@ -107,6 +104,9 @@ def set_value( instance.id = name instance.name = name instance.value = value + if ttl: + self._logger.warning("MockDatastoreService is not able to expire keys based on ttl.") + instance.ttl = ttl self._datastore_items[name] = instance return True From 152777652e40993d7bbf931e0a4cc76b253b925b Mon Sep 17 00:00:00 2001 From: John Hogenmiller Date: Tue, 7 Dec 2021 08:20:23 -0500 Subject: [PATCH 2/3] Updated changelog and some formatting --- CHANGELOG.rst | 4 ++++ st2tests/st2tests/mocks/datastore.py | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a3a2c0e647..9a343f617e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -11,6 +11,10 @@ in development Added ~~~~~ +* Enable setting ttl for MockDatastoreServic + + Contributed by @ytjohn + * Added service degerestration on shutdown of a service. #5396 Contributed by @khushboobhatia01 diff --git a/st2tests/st2tests/mocks/datastore.py b/st2tests/st2tests/mocks/datastore.py index a4d081e1ee..e1adcde153 100644 --- a/st2tests/st2tests/mocks/datastore.py +++ b/st2tests/st2tests/mocks/datastore.py @@ -35,7 +35,7 @@ def __init__(self, logger, pack_name, class_name, api_username=None): self._class_name = class_name self._username = api_username or "admin" self._logger = logger - + # Holds mock KeyValuePair objects # Key is a KeyValuePair name and value is the KeyValuePair object self._datastore_items = {} @@ -105,7 +105,9 @@ def set_value( instance.name = name instance.value = value if ttl: - self._logger.warning("MockDatastoreService is not able to expire keys based on ttl.") + self._logger.warning( + "MockDatastoreService is not able to expire keys based on ttl." + ) instance.ttl = ttl self._datastore_items[name] = instance From be000fb7ead148ac0a11ac957191e505690f7672 Mon Sep 17 00:00:00 2001 From: Eugen Cusmaunsa Date: Wed, 5 Jan 2022 19:50:18 +0000 Subject: [PATCH 3/3] Remove the trailing whitespace --- CHANGELOG.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f4ed8ab798..1e7f64709f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,7 +8,7 @@ Added ~~~~~ * Enable setting ttl for MockDatastoreService. #5468 - + Contributed by @ytjohn * Added st2 API and CLI command for actions clone operation.