qontract-reconcile 0.10.1rc850__py3-none-any.whl → 0.10.1rc851__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.
- {qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/RECORD +6 -6
- reconcile/saas_auto_promotions_manager/subscriber.py +2 -52
- {qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/entry_points.txt +0 -0
- {qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/top_level.txt +0 -0
{qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: qontract-reconcile
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.1rc851
|
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
|
{qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/RECORD
RENAMED
@@ -426,7 +426,7 @@ reconcile/saas_auto_promotions_manager/integration.py,sha256=8IXLEvpblgZRr2UPfTs
|
|
426
426
|
reconcile/saas_auto_promotions_manager/meta.py,sha256=76Jp50r6Y_KyJoXFfSjrt5YrCtXyg_A4FXXxHYiS3TE,161
|
427
427
|
reconcile/saas_auto_promotions_manager/publisher.py,sha256=am8b0uLZIhWjSAgUHPtSOu2fRpa5wXaMl_WnVe4gv2k,3009
|
428
428
|
reconcile/saas_auto_promotions_manager/s3_exporter.py,sha256=IKlVWZmiPnvl7sKeF6JgAlhXZe5CovKTxQc0SNkNSx4,2583
|
429
|
-
reconcile/saas_auto_promotions_manager/subscriber.py,sha256=
|
429
|
+
reconcile/saas_auto_promotions_manager/subscriber.py,sha256=zAqifs7LxssQurO9UwWNrUnOqomRLuD_Z7nTXhU490o,8519
|
430
430
|
reconcile/saas_auto_promotions_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
431
431
|
reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py,sha256=lHIULPE8nmPN9pJVfZFdD0l48EB20o4cAy4owahJenw,7848
|
432
432
|
reconcile/saas_auto_promotions_manager/merge_request_manager/desired_state.py,sha256=isY8frVsL3PlcdZmdZ4O0qyp76oczl4DUMX9uMArs5Y,1222
|
@@ -834,8 +834,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
|
|
834
834
|
tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jrss,4941
|
835
835
|
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
836
836
|
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
837
|
-
qontract_reconcile-0.10.
|
838
|
-
qontract_reconcile-0.10.
|
839
|
-
qontract_reconcile-0.10.
|
840
|
-
qontract_reconcile-0.10.
|
841
|
-
qontract_reconcile-0.10.
|
837
|
+
qontract_reconcile-0.10.1rc851.dist-info/METADATA,sha256=qP0bQ06v4jmWu-_YIAs72NYxYRsBJ588hTvxcDo1jEU,2273
|
838
|
+
qontract_reconcile-0.10.1rc851.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
839
|
+
qontract_reconcile-0.10.1rc851.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
|
840
|
+
qontract_reconcile-0.10.1rc851.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
841
|
+
qontract_reconcile-0.10.1rc851.dist-info/RECORD,,
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import hashlib
|
2
2
|
import logging
|
3
|
-
from collections.abc import Iterable
|
3
|
+
from collections.abc import Iterable
|
4
4
|
from dataclasses import dataclass
|
5
5
|
from datetime import datetime, timedelta, timezone
|
6
|
-
from typing import
|
6
|
+
from typing import Optional
|
7
7
|
|
8
8
|
from reconcile.gql_definitions.fragments.saas_target_namespace import (
|
9
9
|
SaasTargetNamespace,
|
@@ -78,56 +78,6 @@ class Subscriber:
|
|
78
78
|
self._compute_desired_ref()
|
79
79
|
self._compute_desired_config_hashes()
|
80
80
|
|
81
|
-
@staticmethod
|
82
|
-
def from_exported_dict(data: Mapping[str, Any]) -> "Subscriber":
|
83
|
-
subscriber = Subscriber(
|
84
|
-
saas_name=data["1"],
|
85
|
-
template_name=data["2"],
|
86
|
-
ref=data["3"],
|
87
|
-
target_file_path=data["4"],
|
88
|
-
use_target_config_hash=data["5"],
|
89
|
-
target_namespace=SaasTargetNamespace(**data["6"]),
|
90
|
-
uid=data["7"],
|
91
|
-
soak_days=data["8"],
|
92
|
-
)
|
93
|
-
subscriber.desired_hashes = data["9"]
|
94
|
-
subscriber.desired_ref = data["10"]
|
95
|
-
return subscriber
|
96
|
-
|
97
|
-
def to_exportable_dict(self) -> dict[str, Any]:
|
98
|
-
"""
|
99
|
-
We will later persist subscriber data as json in MRs. We keep key size small to use less space.
|
100
|
-
Note, the data will be encoded and encrypted in another component.
|
101
|
-
"""
|
102
|
-
data: dict[str, Any] = {}
|
103
|
-
data["1"] = self.saas_name
|
104
|
-
data["2"] = self.template_name
|
105
|
-
data["3"] = self.ref
|
106
|
-
data["4"] = self.target_file_path
|
107
|
-
data["5"] = self._use_target_config_hash
|
108
|
-
data["6"] = self.target_namespace.dict(by_alias=True)
|
109
|
-
data["7"] = self.uid
|
110
|
-
data["8"] = self.soak_days
|
111
|
-
data["9"] = self.desired_hashes
|
112
|
-
data["10"] = self.desired_ref
|
113
|
-
return data
|
114
|
-
|
115
|
-
def __eq__(self, other: object) -> bool:
|
116
|
-
if not isinstance(other, Subscriber):
|
117
|
-
# don't attempt to compare against unrelated types
|
118
|
-
return False
|
119
|
-
return (
|
120
|
-
self.saas_name == other.saas_name
|
121
|
-
and self.template_name == other.template_name
|
122
|
-
and self.ref == other.ref
|
123
|
-
and self.target_file_path == other.target_file_path
|
124
|
-
and self._use_target_config_hash == other._use_target_config_hash
|
125
|
-
and self.desired_ref == other.desired_ref
|
126
|
-
and self.desired_hashes == other.desired_hashes
|
127
|
-
and self.target_namespace == other.target_namespace
|
128
|
-
and self.uid == other.uid
|
129
|
-
)
|
130
|
-
|
131
81
|
def _validate_deployment(
|
132
82
|
self, publisher: Publisher, channel: Channel
|
133
83
|
) -> Optional[DeploymentInfo]:
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.1rc850.dist-info → qontract_reconcile-0.10.1rc851.dist-info}/top_level.txt
RENAMED
File without changes
|