qontract-reconcile 0.10.2.dev46__py3-none-any.whl → 0.10.2.dev47__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.dev46
3
+ Version: 0.10.2.dev47
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
@@ -195,7 +195,7 @@ reconcile/endpoints_discovery/integration.py,sha256=fzy5tv4c_6WoAZGGBNJ276NVNB1O
195
195
  reconcile/endpoints_discovery/merge_request.py,sha256=_yLb4tnvoZMCko8rta2C_CvOInJa9pa3HzSmHNtjgGU,2978
196
196
  reconcile/endpoints_discovery/merge_request_manager.py,sha256=wUMsumxv8RnWaRattax4HfoRlhtVzmgro3GiJJ1C4Vc,6392
197
197
  reconcile/external_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
- reconcile/external_resources/aws.py,sha256=KAs656zj4oZYpVbgWsDLXnJWJlLOZdR1JnRhikbF4x0,10712
198
+ reconcile/external_resources/aws.py,sha256=wzN3GHxyqVa4Lqqg5HdogqNW2RM532t0ZiKaQeVGOL4,10968
199
199
  reconcile/external_resources/factories.py,sha256=C0QHT0soEv6z99-ELAAE19S5MaMHhV0t1fSiQn0Coc4,5970
200
200
  reconcile/external_resources/integration.py,sha256=JF38M7R0Z4ADUTx57TZqSZH9k_xpPlbAxQAcGyIISuM,6925
201
201
  reconcile/external_resources/integration_secrets_sync.py,sha256=dX09O3r6KURziUYYfiki10orNjOGVma-XojhVqd0ww4,1667
@@ -775,7 +775,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
775
775
  tools/saas_promotion_state/saas_promotion_state.py,sha256=UfwwRLS5Ya4_Nh1w5n1dvoYtchQvYE9yj1VANt2IKqI,3925
776
776
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
777
777
  tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
778
- qontract_reconcile-0.10.2.dev46.dist-info/METADATA,sha256=C5aPbZDbkFrj5j4y25HOkeCX-7xvvhvxDFYG1ymRabE,24665
779
- qontract_reconcile-0.10.2.dev46.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
780
- qontract_reconcile-0.10.2.dev46.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
781
- qontract_reconcile-0.10.2.dev46.dist-info/RECORD,,
778
+ qontract_reconcile-0.10.2.dev47.dist-info/METADATA,sha256=agItqhZULSNiqVJbcuimv3FQ_kbEzyI5OrqMFIC5s3s,24665
779
+ qontract_reconcile-0.10.2.dev47.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
780
+ qontract_reconcile-0.10.2.dev47.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
781
+ qontract_reconcile-0.10.2.dev47.dist-info/RECORD,,
@@ -122,7 +122,8 @@ class AWSElasticacheFactory(AWSDefaultResourceFactory):
122
122
 
123
123
 
124
124
  class AWSRdsFactory(AWSDefaultResourceFactory):
125
- TIMEOUT_RE = re.compile(r"^\d+m$")
125
+ TIMEOUT_RE = re.compile(r"^(?:(\d+)h)?\s*(?:(\d+)m)?$")
126
+ TIMEOUT_UNITS = units = {"h": "hours", "m": "minutes"}
126
127
 
127
128
  def _get_source_db_spec(
128
129
  self, provisioner: str, identifier: str
@@ -188,11 +189,14 @@ class AWSRdsFactory(AWSDefaultResourceFactory):
188
189
  self,
189
190
  timeout: str,
190
191
  ) -> int:
191
- if not re.match(AWSRdsFactory.TIMEOUT_RE, timeout):
192
+ if not (match := re.fullmatch(AWSRdsFactory.TIMEOUT_RE, timeout)):
192
193
  raise ValueError(
193
- f"Invalid RDS instance timeout format: {timeout}. Specify timeout in minutes(m)."
194
+ f"Invalid RDS instance timeout format: {timeout}. Specify a duration using 'h' and 'm' only. E.g. 2h30m"
194
195
  )
195
- return int(timeout[:-1])
196
+
197
+ hours = int(match.group(1)) if match.group(1) else 0
198
+ minutes = int(match.group(2)) if match.group(2) else 0
199
+ return hours * 60 + minutes
196
200
 
197
201
  def _validate_timeouts(
198
202
  self,
@@ -218,7 +222,7 @@ class AWSRdsFactory(AWSDefaultResourceFactory):
218
222
  timeout_minutes = self._get_timeout_minutes(timeout)
219
223
  if timeout_minutes >= module_conf.reconcile_timeout_minutes:
220
224
  raise ValueError(
221
- f"RDS instance {option} timeout value {timeout_minutes} must be lower than the module reconcile_timeout_minutes value {module_conf.reconcile_timeout_minutes}."
225
+ f"RDS instance {option} timeout value {timeout_minutes} (minutes) must be lower than the module reconcile_timeout_minutes value {module_conf.reconcile_timeout_minutes}."
222
226
  )
223
227
 
224
228
  def validate(