qontract-reconcile 0.10.1rc1015__py3-none-any.whl → 0.10.1rc1016__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.1rc1015
3
+ Version: 0.10.1rc1016
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
@@ -644,7 +644,7 @@ reconcile/unleash_feature_toggles/integration.py,sha256=nx7BhtzCsTfPbOp60vI5MkNw
644
644
  reconcile/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
645
645
  reconcile/utils/aggregated_list.py,sha256=km0xadW0jO4G_CqZPsXmoBURQ8c90FaTu5x4X1K1cZs,3357
646
646
  reconcile/utils/amtool.py,sha256=ngtBuVPETH6oAy5RnKzvreVbjwQCaATS_PYYwBprzjQ,2288
647
- reconcile/utils/aws_api.py,sha256=C90pODy5UB2YRV2Yd9Z4J5aTnMZk1CZv9YxbCN0I1-4,66822
647
+ reconcile/utils/aws_api.py,sha256=FHE7tVN91ZAVDARN9EYr7kY3kB6UWtvZSlsvHcDyzx8,66830
648
648
  reconcile/utils/aws_helper.py,sha256=MDbv5jrNdqqJ5pfBxniGdJXBBO_EYc2_Uf2w9ZzeMNs,2854
649
649
  reconcile/utils/batches.py,sha256=TtEm64a8lWhFuNbUVpFEmXVdU2Q0sTBrP_I0Cjbgh7g,320
650
650
  reconcile/utils/binary.py,sha256=7MaAFBpzuBUTJ_aA6G6-eult_BPMVyiXbBLD0Y6F-DM,2301
@@ -716,7 +716,7 @@ reconcile/utils/sqs_gateway.py,sha256=XNIf3PY4UCPNufP2Ul0UJj3fKlt5larBba-VTT-41F
716
716
  reconcile/utils/state.py,sha256=a_EO5u7__Pqd0_E3MqzUttJ-0xRtuxcNx5oQi5WIahI,16392
717
717
  reconcile/utils/structs.py,sha256=LcbLEg8WxfRqM6nW7NhcWN0YeqF7SQzxOgntmLs1SgY,352
718
718
  reconcile/utils/template.py,sha256=wTvRU4AnAV_o042tD4Mwls2dwWMuk7MKnde3MaCjaYg,331
719
- reconcile/utils/terraform_client.py,sha256=QTLRB33dWOlf2AmZPntx3WWBV8d_-cwMZyLKd7eqclk,34176
719
+ reconcile/utils/terraform_client.py,sha256=4eYKaKfG5wYfR--e1jHpmoMq36Q-JX1_WtT916wlMVw,34669
720
720
  reconcile/utils/terrascript_aws_client.py,sha256=1JgXcCF_-xbaAg7V9qihL1Xz5okQlSSrT1DeXGducHc,278037
721
721
  reconcile/utils/three_way_diff_strategy.py,sha256=oQcHXd9LVhirJfoaOBoHUYuZVGfyL2voKr6KVI34zZE,4833
722
722
  reconcile/utils/throughput.py,sha256=iP4UWAe2LVhDo69mPPmgo9nQ7RxHD6_GS8MZe-aSiuM,344
@@ -859,8 +859,8 @@ tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jr
859
859
  tools/test/test_saas_promotion_state.py,sha256=dy4kkSSAQ7bC0Xp2CociETGN-2aABEfL6FU5D9Jl00Y,6056
860
860
  tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
861
861
  tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
862
- qontract_reconcile-0.10.1rc1015.dist-info/METADATA,sha256=SjLjAyfV0eoceoItqeaPqvVGbI2tMBP1Xst6__37_sM,2263
863
- qontract_reconcile-0.10.1rc1015.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
864
- qontract_reconcile-0.10.1rc1015.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
865
- qontract_reconcile-0.10.1rc1015.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
866
- qontract_reconcile-0.10.1rc1015.dist-info/RECORD,,
862
+ qontract_reconcile-0.10.1rc1016.dist-info/METADATA,sha256=yZiOVjfUvuD98NWXAJmjOZenh3UfAagM6WdkE9BQ1xo,2263
863
+ qontract_reconcile-0.10.1rc1016.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
864
+ qontract_reconcile-0.10.1rc1016.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
865
+ qontract_reconcile-0.10.1rc1016.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
866
+ qontract_reconcile-0.10.1rc1016.dist-info/RECORD,,
@@ -1646,7 +1646,7 @@ class AWSApi: # pylint: disable=too-many-public-methods
1646
1646
  parameters = {}
1647
1647
  for page in paginator.paginate(DBParameterGroupName=db_parameter_group_name):
1648
1648
  for param in page.get("Parameters", []):
1649
- parameters[param["ParameterName"]] = param["ParameterValue"]
1649
+ parameters[param["ParameterName"]] = param.get("ParameterValue", "")
1650
1650
  return parameters
1651
1651
 
1652
1652
  def get_organization_billing_account(self, account_name: str) -> str:
@@ -772,40 +772,45 @@ class TerraformClient: # pylint: disable=too-many-public-methods
772
772
  None,
773
773
  )
774
774
  if target is None:
775
- raise ValueError(
775
+ logging.error(
776
776
  f"Cannot upgrade RDS instance: {resource_name} "
777
777
  f"from {before_version} to {after_version}"
778
778
  )
779
+ return
779
780
  allow_major_version_upgrade = after.get(
780
781
  "allow_major_version_upgrade",
781
782
  False,
782
783
  )
783
784
  if target["IsMajorVersionUpgrade"] and not allow_major_version_upgrade:
784
- raise ValueError(
785
+ logging.error(
785
786
  "allow_major_version_upgrade is not enabled for upgrading RDS instance: "
786
787
  f"{resource_name} to a new major version."
787
788
  )
789
+ return
788
790
 
789
- blue_green_update = after.get("blue_green_update", {}).get("enabled", False)
790
- if blue_green_update:
791
+ blue_green_update = after.get("blue_green_update", [])
792
+ if blue_green_update and blue_green_update[0]["enabled"]:
793
+ replica = before["replicas"] != [] or before["replicate_source_db"]
791
794
  self.validate_blue_green_update_requirements(
792
795
  account_name,
796
+ resource_name,
793
797
  engine,
794
- after_version,
795
- before["db_parameter_group_name"],
796
- before.get("replica_source"),
798
+ before_version,
799
+ replica,
800
+ before["parameter_group_name"],
797
801
  region_name,
798
802
  )
799
803
 
800
804
  def validate_blue_green_update_requirements(
801
805
  self,
802
- account_name,
803
- engine,
804
- version,
805
- parameter_group,
806
- replica_source,
807
- region_name,
808
- ):
806
+ account_name: str,
807
+ resource_name: str,
808
+ engine: str,
809
+ version: str,
810
+ replica: bool,
811
+ parameter_group: str,
812
+ region_name: str,
813
+ ) -> None:
809
814
  min_supported_versions = {
810
815
  "mysql": [pkg_version.parse("5.7"), pkg_version.parse("8.0.15")],
811
816
  "postgres": [
@@ -833,23 +838,29 @@ class TerraformClient: # pylint: disable=too-many-public-methods
833
838
  return False
834
839
 
835
840
  if not is_supported(engine, version):
836
- raise ValueError(
841
+ logging.error(
842
+ f"Cannot upgrade RDS instance: {resource_name}. "
837
843
  f"Engine version {version} is not supported for blue/green updates."
838
844
  )
845
+ return
839
846
 
840
- if replica_source:
841
- raise ValueError(
847
+ if replica:
848
+ logging.error(
849
+ f"Cannot upgrade RDS instance: {resource_name}. "
842
850
  "Blue/green updates are not supported for instances with read replicas."
843
851
  )
852
+ return
844
853
 
845
- if engine == "postgres" and parameter_group:
854
+ if engine == "postgres" and self._aws_api is not None:
846
855
  pg_details = self._aws_api.describe_db_parameter_group(
847
856
  account_name, parameter_group, region_name
848
857
  )
849
858
  if pg_details.get("rds.logical_replication") != "1":
850
- raise ValueError(
851
- f"Parameter group {parameter_group} does not have logical replication enabled."
859
+ logging.error(
860
+ f"Cannot upgrade RDS instance: {resource_name}. "
861
+ f"Blue/green updates require logical replication to be enabled in the Parameter group {parameter_group}."
852
862
  )
863
+ return
853
864
 
854
865
 
855
866
  class TerraformPlanFailed(Exception):