qontract-reconcile 0.10.2.dev5__py3-none-any.whl → 0.10.2.dev7__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
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev5
3
+ Version: 0.10.2.dev7
4
4
  Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
5
5
  Project-URL: homepage, https://github.com/app-sre/qontract-reconcile
6
6
  Project-URL: repository, https://github.com/app-sre/qontract-reconcile
@@ -35,7 +35,7 @@ reconcile/gitlab_labeler.py,sha256=4xJHmVX155fclrHqkR926sL1GH6RTN5XfZ8PnqNXbRA,4
35
35
  reconcile/gitlab_members.py,sha256=MUIgYDLeJx2-_vMypyq2Pa17cpKdXATYhtVACS2ghpQ,8297
36
36
  reconcile/gitlab_mr_sqs_consumer.py,sha256=O46mdziPgGOndbU-0_UJKJVUaiEoVzJPEgKm4_UvYoI,2571
37
37
  reconcile/gitlab_owners.py,sha256=sn9njaKOtqcvnhi2qtm-faAfAR4zNqflbSuusA9RUuI,13456
38
- reconcile/gitlab_permissions.py,sha256=6ZBPnQci4-1LVJBvaUS-c0QwIJjITNKVflCeH-Y5Lbk,7507
38
+ reconcile/gitlab_permissions.py,sha256=hJ1KNrWGD8dM5ozELxUqKKFvHFP1yfUZKO4e3dZ_NwM,8092
39
39
  reconcile/gitlab_projects.py,sha256=K3tFf_aD1W4Ijp5q-9Qek3kwFGEWPcZ1kd7tzFJ4GyQ,1781
40
40
  reconcile/integrations_manager.py,sha256=gvOhVklJDeMPURxLjV30Q4hnLET3BZ-NeEEtQBoo_E0,9500
41
41
  reconcile/jenkins_base.py,sha256=0Gocu3fU2YTltaxBlbDQOUvP-7CP2OSQV1ZRwtWeVXw,875
@@ -123,7 +123,7 @@ reconcile/vpc_peerings_validator.py,sha256=-upvNg3ggKCxcJ4kqZcqJVsiltlhQ8MyyLZiW
123
123
  reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
124
  reconcile/aus/advanced_upgrade_service.py,sha256=NF3UQ02MdUpVPup50EqnTbTn3dRHGoXoSfFLZxOjr8Q,23744
125
125
  reconcile/aus/aus_label_source.py,sha256=2Rktyvs7ZvCwsRwmbGUhddycTBTq0jHq8wpBaiDHAMA,4165
126
- reconcile/aus/base.py,sha256=r_w93PJVr3jlu7NXtPmLfaDujv42qpPiVMJNWA72fKg,48715
126
+ reconcile/aus/base.py,sha256=qinJ95wI-KN548irs2jgUOMBAnvxuiX0Q6_QJ5_n8qU,48881
127
127
  reconcile/aus/cluster_version_data.py,sha256=VZWbUEIbrDKO-sroMpQtiWCTqDraTMd8tssKV0HyTQ0,7140
128
128
  reconcile/aus/healthchecks.py,sha256=jR9c-syh9impnkV0fd6XW3Bnk7iRN5zv8oCRYM-yIRY,2700
129
129
  reconcile/aus/metrics.py,sha256=nKT4m2zGT-QOMR0c-z-npVNKWsNMubzdffpU_f9n4II,3927
@@ -766,7 +766,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
766
766
  tools/saas_promotion_state/saas_promotion_state.py,sha256=5LJ9rygZ304vxfsIuRfuxueoYRb72EZNKKITEcJ4Mtk,3908
767
767
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
768
768
  tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
769
- qontract_reconcile-0.10.2.dev5.dist-info/METADATA,sha256=GDawMty4r2YOhwi7ZbR9xPIhXLixwAXpP8ZXqPSIHd8,24664
770
- qontract_reconcile-0.10.2.dev5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
771
- qontract_reconcile-0.10.2.dev5.dist-info/entry_points.txt,sha256=JniHZPadNOILPyfSl0LF2YSp3Db7K2_W2CN7i9f3Gos,540
772
- qontract_reconcile-0.10.2.dev5.dist-info/RECORD,,
769
+ qontract_reconcile-0.10.2.dev7.dist-info/METADATA,sha256=45V1tMRWAHSh5LIcjmF_QZwjk7uVQDqW-Zdz-JcVSNE,24664
770
+ qontract_reconcile-0.10.2.dev7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
771
+ qontract_reconcile-0.10.2.dev7.dist-info/entry_points.txt,sha256=JniHZPadNOILPyfSl0LF2YSp3Db7K2_W2CN7i9f3Gos,540
772
+ qontract_reconcile-0.10.2.dev7.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.26.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
reconcile/aus/base.py CHANGED
@@ -17,6 +17,7 @@ from typing import (
17
17
 
18
18
  from croniter import croniter
19
19
  from pydantic import BaseModel, Extra
20
+ from requests.exceptions import HTTPError
20
21
  from semver import VersionInfo
21
22
 
22
23
  from reconcile.aus.cluster_version_data import (
@@ -1164,7 +1165,10 @@ def act(
1164
1165
  and addon_id != policy.addon_id
1165
1166
  ):
1166
1167
  continue
1167
- diff.act(dry_run, ocm_api)
1168
+ try:
1169
+ diff.act(dry_run, ocm_api)
1170
+ except HTTPError as e:
1171
+ logging.error(f"{policy.cluster.name}: {e}: {e.response.text}")
1168
1172
 
1169
1173
 
1170
1174
  def soaking_days(
@@ -90,6 +90,13 @@ class GroupPermissionHandler:
90
90
  desired_state: dict[str, GroupSpec],
91
91
  current_state: dict[str, GroupSpec],
92
92
  ) -> None:
93
+ # gather list of app-interface managed repos
94
+ managed_repos: set[str] = set()
95
+ instance = queries.get_gitlab_instance()
96
+ for project_request in instance.get("projectRequests", []):
97
+ for r in project_request.get("projects", []):
98
+ managed_repos.add(f"{instance['url']}/{project_request['group']}/{r}")
99
+
93
100
  # get the diff data
94
101
  diff_data = diff_mappings(
95
102
  current=current_state,
@@ -100,6 +107,11 @@ class GroupPermissionHandler:
100
107
  errors: list[Exception] = []
101
108
  for repo in diff_data.add:
102
109
  project = self.gl.get_project(repo)
110
+ if not project and repo in managed_repos:
111
+ logging.info(
112
+ f"New app-interface managed repository {repo} hasn't been created yet - skipping"
113
+ )
114
+ continue
103
115
  if not self.can_share_project(project):
104
116
  errors.append(
105
117
  GroupAccessLevelError(