Skip to content

Commit 891e841

Browse files
authored
Merge pull request #166 from subhash12/master
option to choose a range on timestamp field for /v2/events
2 parents cc755ac + c0ecbb8 commit 891e841

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

main/cloudfoundry_client/v2/entities.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ class EntityManager(object):
5050

5151
list_multi_parameters = ["order-by"]
5252

53+
timestamp_parameters = ["timestamp"]
54+
5355
def __init__(
5456
self, target_endpoint: str, client: "CloudFoundryClient", entity_uri: str, entity_builder: Optional[EntityBuilder] = None
5557
):
@@ -150,6 +152,13 @@ def _append_encoded_parameter(parameters: List[str], args: Tuple[str, Any]) -> L
150152
value_list = [value_list]
151153
for value in value_list:
152154
parameters.append("%s=%s" % (parameter_name, str(value)))
155+
elif parameter_name in self.timestamp_parameters:
156+
if isinstance(args[1], dict):
157+
operator_list = args[1].keys()
158+
for operator in operator_list:
159+
parameters.append("q=%s" % quote("%s%s%s" % (parameter_name, operator, args[1][operator])))
160+
else:
161+
parameters.append("q=%s" % quote("%s:%s" % (parameter_name, str(parameter_value))))
153162
elif isinstance(parameter_value, (list, tuple)):
154163
parameters.append("q=%s" % quote("%s IN %s" % (parameter_name, ",".join(parameter_value))))
155164
else:

test/v2/test_entities.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ def test_multi_query(self):
6565
)
6666
self.assertEqual("/v2/events?q=organization_guid%3Aorg-id&q=type%20IN%20create%2Cupdate", url)
6767

68+
def test_range_query(self):
69+
url = EntityManager("http://cf.api", None, "/v2/events")._get_url_filtered(
70+
"/v2/events", **{"type": "app.crash", "space_guid": "space-id", "timestamp": {">": "2022-02-08T16:41:25Z"}}
71+
)
72+
self.assertEqual("/v2/events?q=space_guid%3Aspace-id&q=timestamp%3E2022-02-08T16%3A41%3A25Z&q=type%3Aapp.crash", url)
73+
6874
def test_list(self):
6975
client = MagicMock()
7076
entity_manager = EntityManager(self.TARGET_ENDPOINT, client, "/fake/first")

0 commit comments

Comments
 (0)