qontract-reconcile 0.10.1rc964__py3-none-any.whl → 0.10.1rc966__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qontract-reconcile
3
- Version: 0.10.1rc964
3
+ Version: 0.10.1rc966
4
4
  Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
5
5
  Home-page: https://github.com/app-sre/qontract-reconcile
6
6
  Author: Red Hat App-SRE Team
@@ -742,8 +742,8 @@ reconcile/utils/internal_groups/client.py,sha256=RL-fNDtMGfpD7pNjCEmrj_0PV3ClCtU
742
742
  reconcile/utils/internal_groups/models.py,sha256=y_IqBVqfGqNXiu0VudvBWFrm_-uafVm5KgLG-ca8XAs,2281
743
743
  reconcile/utils/jinja2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
744
744
  reconcile/utils/jinja2/extensions.py,sha256=7K-uo6G2eCWa98MHT8fRPYIKCLQB_5D2keqQ_LyAfHM,1293
745
- reconcile/utils/jinja2/filters.py,sha256=RVVkpf87FllrPUpqk_8KN-r1IsmnS0bpygAVvsvIr5g,4504
746
- reconcile/utils/jinja2/utils.py,sha256=nyTS7SafbjQliIg0PZhqK0YGfFL0W2V6XA5CRaqOkrA,7809
745
+ reconcile/utils/jinja2/filters.py,sha256=tmiaYMhji5fv4B66YtR7zc-mE3wQLyj5I5SeX0WA2l4,4754
746
+ reconcile/utils/jinja2/utils.py,sha256=W_LMB2KiGuwIo04GUNK7jKCpmhKy6wGOH1jgshzXBU0,8004
747
747
  reconcile/utils/jobcontroller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
748
748
  reconcile/utils/jobcontroller/controller.py,sha256=2V_vm5thFx6adW4bMy9CdHXFesuo6S4lSkEpGxkXSM0,14492
749
749
  reconcile/utils/jobcontroller/models.py,sha256=tSRAkUX23iyn4YPsWEicFXwRxw3mXb5B2pDOWmXX8wQ,6350
@@ -847,8 +847,8 @@ tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jr
847
847
  tools/test/test_saas_promotion_state.py,sha256=dy4kkSSAQ7bC0Xp2CociETGN-2aABEfL6FU5D9Jl00Y,6056
848
848
  tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
849
849
  tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
850
- qontract_reconcile-0.10.1rc964.dist-info/METADATA,sha256=367Imo6Q12SFdMZIV639dRVY_wRabOcjCwrlsaDthWo,2262
851
- qontract_reconcile-0.10.1rc964.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
852
- qontract_reconcile-0.10.1rc964.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
853
- qontract_reconcile-0.10.1rc964.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
854
- qontract_reconcile-0.10.1rc964.dist-info/RECORD,,
850
+ qontract_reconcile-0.10.1rc966.dist-info/METADATA,sha256=R3U88Yv6EwtlDutM0OWh4zUzHfGn0dkFdZZITdlhX2Q,2262
851
+ qontract_reconcile-0.10.1rc966.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
852
+ qontract_reconcile-0.10.1rc966.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
853
+ qontract_reconcile-0.10.1rc966.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
854
+ qontract_reconcile-0.10.1rc966.dist-info/RECORD,,
@@ -6,6 +6,7 @@ from typing import Any
6
6
  from urllib import parse
7
7
 
8
8
  import jinja2
9
+ import yaml
9
10
 
10
11
  from reconcile.utils.jsonpath import parse_jsonpath
11
12
 
@@ -20,6 +21,15 @@ def json_to_dict(input: str) -> Any:
20
21
  return data
21
22
 
22
23
 
24
+ def yaml_to_dict(input: str) -> Any:
25
+ """Jinja2 filter to parse YAML strings into dictionaries.
26
+ :param input: yaml string
27
+ :return: dict with the parsed inputs contents
28
+ """
29
+ data = yaml.safe_load(input)
30
+ return data
31
+
32
+
23
33
  def urlescape(string: str, safe: str = "/", encoding: str | None = None) -> str:
24
34
  """Jinja2 filter that is a simple wrapper around urllib's URL quoting
25
35
  functions that takes a string value and makes it safe for use as URL
@@ -1,3 +1,4 @@
1
+ import datetime
1
2
  from functools import cache
2
3
  from typing import Any, Self
3
4
 
@@ -22,6 +23,7 @@ from reconcile.utils.jinja2.filters import (
22
23
  matches_jsonpath,
23
24
  urlescape,
24
25
  urlunescape,
26
+ yaml_to_dict,
25
27
  )
26
28
  from reconcile.utils.secret_reader import SecretNotFound, SecretReader, SecretReaderBase
27
29
  from reconcile.utils.vault import SecretFieldNotFound
@@ -80,6 +82,7 @@ def compile_jinja2_template(
80
82
  )
81
83
  jinja_env.filters.update({
82
84
  "json_to_dict": json_to_dict,
85
+ "yaml_to_dict": yaml_to_dict,
83
86
  "urlescape": urlescape,
84
87
  "urlunescape": urlunescape,
85
88
  "eval": eval_filter,
@@ -212,6 +215,9 @@ def process_jinja2_template(
212
215
  "url": url_makes_sense,
213
216
  "s3": lookup_s3_object,
214
217
  "flatten_dict": flatten,
218
+ "yesterday": lambda: (datetime.datetime.now() - datetime.timedelta(1)).strftime(
219
+ "%Y-%m-%d"
220
+ ),
215
221
  })
216
222
  if "_template_mocks" in vars:
217
223
  for k, v in vars["_template_mocks"].items():