qontract-reconcile 0.10.1rc1077__py3-none-any.whl → 0.10.1rc1079__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.1rc1077
3
+ Version: 0.10.1rc1079
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
@@ -161,7 +161,7 @@ reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py,sha256
161
161
  reconcile/change_owners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
162
  reconcile/change_owners/approver.py,sha256=Z3_11vnK2WNOxjEEXVDh0224-_-qbt9d6mBeVE-7fsc,2259
163
163
  reconcile/change_owners/bundle.py,sha256=ZIlXRo6Z2raeWSCUqYsexBdol-q-r9kWJs5O_YPaEYk,5273
164
- reconcile/change_owners/change_log_tracking.py,sha256=9A_fJoahIckRF_qepfKYEwZmedrcq8KTJh_KFt4DuRQ,6542
164
+ reconcile/change_owners/change_log_tracking.py,sha256=K8x59urjxMilwhmbQff9vinTGDblinvfRvdjilwjTJU,6677
165
165
  reconcile/change_owners/change_owners.py,sha256=0HRJhDm0oW3uYJFgzynqA1gA0lbhalhSkmWOiQmr-NM,17062
166
166
  reconcile/change_owners/change_types.py,sha256=TjVtvmkU0s8w2NA6qvWQccB6PwlCrChFySlsHLYZjpE,32027
167
167
  reconcile/change_owners/changes.py,sha256=pa3cNAL-Xawh700ARJJQjY0p09NA1J2329RcE0F0MHM,17224
@@ -728,7 +728,7 @@ reconcile/utils/state.py,sha256=W0_awkLAPX18hNOF_60o73tkPxDUylqbzYNHfl_sDsk,1638
728
728
  reconcile/utils/structs.py,sha256=LcbLEg8WxfRqM6nW7NhcWN0YeqF7SQzxOgntmLs1SgY,352
729
729
  reconcile/utils/template.py,sha256=wTvRU4AnAV_o042tD4Mwls2dwWMuk7MKnde3MaCjaYg,331
730
730
  reconcile/utils/terraform_client.py,sha256=LjX2U2E0Dglt2S_KA5jWQ_dVC8sPn4FEAh0xW_d6JTk,35953
731
- reconcile/utils/terrascript_aws_client.py,sha256=SMsJaOmpn_9QQHhKIN_5ps1zOa9zEcBSsxGOyvF8voU,280492
731
+ reconcile/utils/terrascript_aws_client.py,sha256=YqMsqSJl5_P8kXPzcaWLAMxdIxhq1supwL94Xd5qPB4,281298
732
732
  reconcile/utils/three_way_diff_strategy.py,sha256=oQcHXd9LVhirJfoaOBoHUYuZVGfyL2voKr6KVI34zZE,4833
733
733
  reconcile/utils/throughput.py,sha256=iP4UWAe2LVhDo69mPPmgo9nQ7RxHD6_GS8MZe-aSiuM,344
734
734
  reconcile/utils/vault.py,sha256=9GSNHku8tw5KM2LKpZ1myWYDLtLGUJgpSnD0DxbzeO0,14956
@@ -870,8 +870,8 @@ tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jr
870
870
  tools/test/test_saas_promotion_state.py,sha256=dy4kkSSAQ7bC0Xp2CociETGN-2aABEfL6FU5D9Jl00Y,6056
871
871
  tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
872
872
  tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
873
- qontract_reconcile-0.10.1rc1077.dist-info/METADATA,sha256=bJLx0VrFGijgrDJY3dSyvsOjYFXa2Eso9a29xaIXOXs,2213
874
- qontract_reconcile-0.10.1rc1077.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
875
- qontract_reconcile-0.10.1rc1077.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
876
- qontract_reconcile-0.10.1rc1077.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
877
- qontract_reconcile-0.10.1rc1077.dist-info/RECORD,,
873
+ qontract_reconcile-0.10.1rc1079.dist-info/METADATA,sha256=DXIyJxZvXSTDEpfJMVm9-gHPlcs369V7T2STe6DHG9s,2213
874
+ qontract_reconcile-0.10.1rc1079.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
875
+ qontract_reconcile-0.10.1rc1079.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
876
+ qontract_reconcile-0.10.1rc1079.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
877
+ qontract_reconcile-0.10.1rc1079.dist-info/RECORD,,
@@ -135,7 +135,11 @@ class ChangeLogIntegration(QontractReconcileIntegration[ChangeLogIntegrationPara
135
135
  case "/app-sre/app-1.yml":
136
136
  changed_apps = {c["name"] for c in change_versions}
137
137
  change_log_item.apps.extend(changed_apps)
138
- case "/app-sre/saas-file-2.yml" | "/openshift/namespace-1.yml":
138
+ case (
139
+ "/app-sre/saas-file-2.yml"
140
+ | "/openshift/namespace-1.yml"
141
+ | "/dependencies/jenkins-config-1.yml"
142
+ ):
139
143
  changed_apps = {
140
144
  name
141
145
  for c in change_versions
@@ -287,6 +287,10 @@ class OutputResourceNameNotUniqueException(Exception):
287
287
  )
288
288
 
289
289
 
290
+ class RDSParameterGroupValidationError(Exception):
291
+ pass
292
+
293
+
290
294
  class StateInaccessibleException(Exception):
291
295
  pass
292
296
 
@@ -1670,6 +1674,16 @@ class TerrascriptClient: # pylint: disable=too-many-public-methods
1670
1674
  elif provider != provider_region:
1671
1675
  raise ValueError("region does not match availability zone")
1672
1676
 
1677
+ def validate_parameter_group(parameter_group: aws_db_parameter_group) -> None:
1678
+ parameter_group_name = parameter_group.get("name")
1679
+ for parameter in parameter_group.get("parameter", []):
1680
+ if parameter.get("name") == "rds.logical_replication":
1681
+ apply_method = parameter.get("apply_method")
1682
+ if apply_method != "pending-reboot":
1683
+ raise RDSParameterGroupValidationError(
1684
+ f"{parameter_group_name=} rds.logical_replication {apply_method=} must be set to 'pending-reboot'"
1685
+ )
1686
+
1673
1687
  def populate_parameter_group(name: str) -> aws_db_parameter_group:
1674
1688
  pg_values = self.get_values(name)
1675
1689
  # Parameter group name is not required by terraform.
@@ -1683,7 +1697,9 @@ class TerrascriptClient: # pylint: disable=too-many-public-methods
1683
1697
  pg_values["parameter"] = pg_values.pop("parameters")
1684
1698
  if self._multiregion_account(account) and len(provider) > 0:
1685
1699
  pg_values["provider"] = provider
1686
- return aws_db_parameter_group(pg_identifier, **pg_values)
1700
+ parameter_group = aws_db_parameter_group(pg_identifier, **pg_values)
1701
+ validate_parameter_group(parameter_group=parameter_group)
1702
+ return parameter_group
1687
1703
 
1688
1704
  # 'deps' should contain a list of terraform resource names
1689
1705
  # (not full objects) that must be created