qontract-reconcile 0.10.2.dev304__py3-none-any.whl → 0.10.2.dev306__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.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev304
3
+ Version: 0.10.2.dev306
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
@@ -113,7 +113,7 @@ reconcile/terraform_tgw_attachments.py,sha256=uls0GlTVeSMTZtUGXpqDW8ovKqXV-6036A
113
113
  reconcile/terraform_users.py,sha256=F-OgRfVV6_MoSvL0oZBtbFtNVS4V48baOWN157IoGEE,10321
114
114
  reconcile/terraform_vpc_peerings.py,sha256=v1GPiluuPLwpQWrp1j5xT9_QuQw07F_Lj2uL3RX9PZE,27788
115
115
  reconcile/vault_replication.py,sha256=trtbB-jDwca822J5I_s0zlwFtlyaiAtqgbPeqp7Cggc,17714
116
- reconcile/vpc_peerings_validator.py,sha256=lZyJP6zaUbp1tqiwJ6HWDu1g0-6aU8L37eMY3U_179g,7085
116
+ reconcile/vpc_peerings_validator.py,sha256=_77eu6DSy6VjTE5mhV-sOIVOGIiBvDEEDCdwwRdrgVQ,7101
117
117
  reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
118
  reconcile/aus/advanced_upgrade_service.py,sha256=Cx-WthkvlcX58PrnnNeo_bQG17Xw3BGNu3f53Jc1VoA,23985
119
119
  reconcile/aus/aus_label_source.py,sha256=o0S2f0qwcII_8nzhHZhRQ83gEZ1DrSXyO4xzSwLebuU,4382
@@ -458,7 +458,7 @@ reconcile/oum/standalone.py,sha256=EN5y1S-3DwUZYzSRqRMtf63mI2slvBHKiU9zOTjYvWM,7
458
458
  reconcile/prometheus_rules_tester/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
459
459
  reconcile/prometheus_rules_tester/integration.py,sha256=TWsVBUeRLH3lUCf47sWWVgq4Rpkrq0i_eu2vkqQniP0,9619
460
460
  reconcile/rhidp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
461
- reconcile/rhidp/common.py,sha256=M5UP7_tNWh2LEJ-fMp1SnrNECGHJ0z873tANJK1dpWc,6889
461
+ reconcile/rhidp/common.py,sha256=MIOzjObdvDtZuLvrYBp2GhvPfRp6p-Lohbr_hgEsNYM,7025
462
462
  reconcile/rhidp/metrics.py,sha256=Yp0GtpjhieEdru0qkG3osBTJiKUzg6CAjwPoFTQDnCg,417
463
463
  reconcile/rhidp/ocm_oidc_idp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
464
464
  reconcile/rhidp/ocm_oidc_idp/base.py,sha256=gcrQEmHQ2GF2MtSxBcxTRsK-I19rsfIn9NZvyx8ZbyQ,7133
@@ -656,11 +656,11 @@ reconcile/utils/slo_document_manager.py,sha256=YqiCYA_kRq5_oNc_VTYipjbph4k0XHDcj
656
656
  reconcile/utils/smtp_client.py,sha256=0xefB4I9E5eBB-FlxFJYjvz3Kvuqi_K3Ma_Wk0NAQKM,2779
657
657
  reconcile/utils/sqs_gateway.py,sha256=XNIf3PY4UCPNufP2Ul0UJj3fKlt5larBba-VTT-41Fg,2265
658
658
  reconcile/utils/state.py,sha256=vCHYIfrWLfPyIWEHSaADWlc4OqhwcOiqM3Egqvw-lfo,16372
659
- reconcile/utils/structs.py,sha256=LcbLEg8WxfRqM6nW7NhcWN0YeqF7SQzxOgntmLs1SgY,352
659
+ reconcile/utils/structs.py,sha256=P57POzpEntu8ZoZDnsOdni9qUuBDWknmw0iinznxXoY,386
660
660
  reconcile/utils/terraform_client.py,sha256=GoLbfs4d4YItNCeV3NZnrth4sD8ziNYgY2IszruRDpg,37303
661
661
  reconcile/utils/terrascript_aws_client.py,sha256=o5-K61gEbQN48IRfdHVDfgt0sW-sYN9WYho4ZZ7j7io,295917
662
662
  reconcile/utils/three_way_diff_strategy.py,sha256=oQcHXd9LVhirJfoaOBoHUYuZVGfyL2voKr6KVI34zZE,4833
663
- reconcile/utils/throughput.py,sha256=iP4UWAe2LVhDo69mPPmgo9nQ7RxHD6_GS8MZe-aSiuM,344
663
+ reconcile/utils/throughput.py,sha256=KNDCVsCLSp89V4pO3sEUd7bJUuh6gNfsxsc_18rEv_Y,357
664
664
  reconcile/utils/vault.py,sha256=6V15LByFghp-U3k0N4lum6V7qt2EAlRfcAxjy5e-FAU,15146
665
665
  reconcile/utils/vcs.py,sha256=2bDk8oYnCP7QMITwOG63LUTzDgqQPEao6trF8gQKtmI,10294
666
666
  reconcile/utils/acs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -721,7 +721,7 @@ reconcile/utils/mr/update_access_report_base.py,sha256=LOXTIonpfxXrvZI9nPqkszW3O
721
721
  reconcile/utils/mr/user_maintenance.py,sha256=OC9-3YkpXsYKZGsdOdx-NLq7AkjgrhDR2JL7hov7BV8,5669
722
722
  reconcile/utils/ocm/__init__.py,sha256=Y-bp8GomMpyCo0tFW6kJ78-ZG1UIupYRtBzbMWU0kwM,798
723
723
  reconcile/utils/ocm/addons.py,sha256=_LDdJ-gapM3s5exKlIUt-MlXZTAUoHezbYBU0QmvfWQ,7335
724
- reconcile/utils/ocm/base.py,sha256=fMzojq4aR_MWASp7QUWoyPOOgjqJoc_15uiJ3G7uRbw,14618
724
+ reconcile/utils/ocm/base.py,sha256=sy8mD9srj5dJjRIk8u8RRmj_D7h4MnpxtZwm4S4BWf8,14883
725
725
  reconcile/utils/ocm/cluster_groups.py,sha256=F8oqVqN_4QUnGL0K61zZhoYIzJeP57EcmZpwmoV0mr4,1751
726
726
  reconcile/utils/ocm/clusters.py,sha256=ev-sT247P3qFs9wzxOs_xFj1vKGpdRYm4INgxTR3Fb0,7792
727
727
  reconcile/utils/ocm/identity_providers.py,sha256=dKed09N8iWmn39tI_MpwgVe47x23eLsknGbjMUxtwr4,2175
@@ -795,8 +795,8 @@ tools/saas_metrics_exporter/commit_distance/metrics.py,sha256=5-y6n-sGACAS3eJ5nd
795
795
  tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
796
796
  tools/saas_promotion_state/saas_promotion_state.py,sha256=uQv2QJAmUXP1g2GPIH30WTlvL9soY6m9lefpZEVDM5w,3965
797
797
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
798
- tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
799
- qontract_reconcile-0.10.2.dev304.dist-info/METADATA,sha256=YgHRn5DrtN3RthvVsikCbu5lvctPQ019NE9Vu9iZLtI,24916
800
- qontract_reconcile-0.10.2.dev304.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
801
- qontract_reconcile-0.10.2.dev304.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
802
- qontract_reconcile-0.10.2.dev304.dist-info/RECORD,,
798
+ tools/sre_checkpoints/util.py,sha256=KcYVfa3UmJHVP_ocgrKe8NkrO5IDB9aWEDydSokPcRk,975
799
+ qontract_reconcile-0.10.2.dev306.dist-info/METADATA,sha256=Cx95zCcVgBXYiv2FQXbJOyJ-SCeSI75Q8VDK2I8x5pU,24916
800
+ qontract_reconcile-0.10.2.dev306.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
801
+ qontract_reconcile-0.10.2.dev306.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
802
+ qontract_reconcile-0.10.2.dev306.dist-info/RECORD,,
reconcile/rhidp/common.py CHANGED
@@ -140,6 +140,8 @@ def build_cluster_objects(
140
140
  for cluster in cluster_details
141
141
  # we can't calculate the redirect url w/o a console url
142
142
  if cluster.ocm_cluster.console
143
+ # we can't configure an identity provider if external auth is enabled
144
+ and not cluster.ocm_cluster.external_auth_enabled
143
145
  ]
144
146
 
145
147
 
@@ -215,6 +215,10 @@ class OCMExternalConfiguration(BaseModel):
215
215
  syncsets: dict
216
216
 
217
217
 
218
+ class OCMExternalAuthConfig(BaseModel):
219
+ enabled: bool
220
+
221
+
218
222
  PRODUCT_ID_OSD = "osd"
219
223
  PRODUCT_ID_ROSA = "rosa"
220
224
 
@@ -274,6 +278,8 @@ class OCMCluster(BaseModel):
274
278
 
275
279
  external_configuration: OCMExternalConfiguration | None
276
280
 
281
+ external_auth_config: OCMExternalAuthConfig | None
282
+
277
283
  def minor_version(self) -> str:
278
284
  version_info = parse_semver(self.version.raw_id)
279
285
  return f"{version_info.major}.{version_info.minor}"
@@ -315,6 +321,10 @@ class OCMCluster(BaseModel):
315
321
  def base_domain(self) -> str | None:
316
322
  return self.dns.base_domain if self.dns else None
317
323
 
324
+ @property
325
+ def external_auth_enabled(self) -> bool:
326
+ return self.external_auth_config.enabled if self.external_auth_config else False
327
+
318
328
 
319
329
  class OCMLabel(BaseModel):
320
330
  """
@@ -5,12 +5,12 @@ from pydantic.dataclasses import dataclass
5
5
  class CommandExecutionResult:
6
6
  """This class represents a command execution result"""
7
7
 
8
- def __init__(self, is_ok, message):
8
+ def __init__(self, is_ok: bool, message: str) -> None:
9
9
  self.is_ok = is_ok
10
10
  self.message = message
11
11
 
12
- def __str__(self):
12
+ def __str__(self) -> str:
13
13
  return str(self.message)
14
14
 
15
- def __bool__(self):
15
+ def __bool__(self) -> bool:
16
16
  return self.is_ok
@@ -1,7 +1,7 @@
1
1
  import os
2
2
 
3
3
 
4
- def change_files_ownership(directory):
4
+ def change_files_ownership(directory: str) -> None:
5
5
  stat_info = os.stat(directory)
6
6
  uid = stat_info.st_uid
7
7
  gid = stat_info.st_gid
@@ -79,7 +79,7 @@ def validate_no_cidr_overlap(
79
79
  return True
80
80
 
81
81
 
82
- def find_cidr_overlap(cluster_name: str, input_list: list):
82
+ def find_cidr_overlap(cluster_name: str, input_list: list) -> bool:
83
83
  for i in range(len(input_list)):
84
84
  compared_vpc = input_list[i]
85
85
  for j in range(i + 1, len(input_list)):
@@ -171,7 +171,7 @@ def validate_no_public_to_public_peerings(
171
171
  return valid
172
172
 
173
173
 
174
- def run(dry_run: bool):
174
+ def run(dry_run: bool) -> None:
175
175
  query_data = vpc_peerings_validator.query(query_func=gql.get_api().query)
176
176
 
177
177
  valid = True
@@ -1,7 +1,9 @@
1
+ from typing import Any
2
+
1
3
  from reconcile import queries
2
4
 
3
5
 
4
- def full_name(app):
6
+ def full_name(app: dict[str, Any]) -> str:
5
7
  """Builds App full_name, prepending the App with the name
6
8
  of the parent App.
7
9
 
@@ -17,14 +19,14 @@ def full_name(app):
17
19
  return name
18
20
 
19
21
 
20
- def get_latest_sre_checkpoints():
22
+ def get_latest_sre_checkpoints() -> dict[str, str]:
21
23
  """Builds dictionary with the full_name of the app as the key and the
22
24
  date of sre_checkpoint as the value.
23
25
 
24
26
  :return: dictionary with the latest checkpoints
25
27
  :rtype: dict
26
28
  """
27
- checkpoints = {}
29
+ checkpoints: dict[str, str] = {}
28
30
  for checkpoint in queries.get_sre_checkpoints():
29
31
  name = full_name(checkpoint["app"])
30
32
  date = checkpoint["date"]