qontract-reconcile 0.10.2.dev294__py3-none-any.whl → 0.10.2.dev296__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.dev294
3
+ Version: 0.10.2.dev296
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
@@ -4,7 +4,7 @@ reconcile/acs_rbac.py,sha256=15vNfNzdG_DeXaJ-f5m8DSaJh__LUK766_xAECqyTsg,22657
4
4
  reconcile/aws_ami_share.py,sha256=M_gT7y3cSAyT_Pm90PBCNDSmbZtqREqe2jNETh0i9Qs,3808
5
5
  reconcile/aws_ecr_image_pull_secrets.py,sha256=F58PtX1GlB9XHqj8hGy9ItiTznXLAAKTNlWD9iT2MWI,2593
6
6
  reconcile/aws_iam_keys.py,sha256=pVqaXus2pH1LcRlog0C9UsWFttW420tuf7n_Ox-OJs4,4091
7
- reconcile/aws_iam_password_reset.py,sha256=FpAqAXngmLFqkOtOjrz_i90qteUyLHJL0GMjotc2tJE,3178
7
+ reconcile/aws_iam_password_reset.py,sha256=5oajSspJVAvpGd445hKsxtEGYb75dM4l1_PJTzrfHk0,3253
8
8
  reconcile/aws_support_cases_sos.py,sha256=G9g0oM6ohvuJ5N592ePjiPeaDug4_vapAy58RyG-S3Y,3478
9
9
  reconcile/blackbox_exporter_endpoint_monitoring.py,sha256=O1wFp52EyF538c6txaWBs8eMtUIy19gyHZ6VzJ6QXS8,3512
10
10
  reconcile/checkpoint.py,sha256=gjtS8g6KIyKFYlHMSZjAqDUOlVh83nh4go-9yNrhWZU,5016
@@ -44,7 +44,7 @@ reconcile/jenkins_worker_fleets.py,sha256=tLFEF3ijnqF0jA7hgmFOOrshmfjGYXHFlQcvMZ
44
44
  reconcile/jira_permissions_validator.py,sha256=nVHZg7kNn04Q-ryNM20wthMrhXos28g3O9b0ahzxAKc,14690
45
45
  reconcile/ldap_users.py,sha256=oP1CAxmgSi3zDJ3vKTPySjap6WmEX1U469FmFrov5l4,4599
46
46
  reconcile/mr_client_gateway.py,sha256=3L21YncbetuUI3HYvDAEb5JX5HO5KG2CfUyjapX3w8E,2063
47
- reconcile/ocm_additional_routers.py,sha256=e5P_OJAaV0jp0626dJ0Hp1-xUsEKXRCnrJzFTIQBdJg,3854
47
+ reconcile/ocm_additional_routers.py,sha256=FUtMeh14i1u2TJ5LSL0pAVjkdBRB7_FietObWO0s_UU,3942
48
48
  reconcile/ocm_addons.py,sha256=b59NWAMmd_zW4pxAH7hm8jzAkis0VZrUBmPYgduVlJc,3684
49
49
  reconcile/ocm_addons_upgrade_tests_trigger.py,sha256=A9zXeYG-_52DsS1dz47yDSnHz62du5XpPBlaeRa6zxY,3975
50
50
  reconcile/ocm_aws_infrastructure_access.py,sha256=f-zVCEf0ucdslhWvfeLcXxQ6Y4xtfCXUG6pxswGgWnU,7251
@@ -88,7 +88,7 @@ reconcile/quay_mirror.py,sha256=pA1_OujRduwQ6dYljoWXU_VJgAwlv7DzThk26ymKmGs,1432
88
88
  reconcile/quay_mirror_org.py,sha256=2xLD-PZggP33LhZYxun5I3deF8hwGH9zueMtAByphzE,10842
89
89
  reconcile/quay_permissions.py,sha256=BF539lRxjpgwm88WzazklzgaCF_ipRALwbO2AdpqUqE,4388
90
90
  reconcile/quay_repos.py,sha256=woB2afCBgz0UPekHcYtV8zwQCZHZZBL8VDf82ATWZxE,7524
91
- reconcile/queries.py,sha256=aaffpfMIlmHy73CUxos--NnUsTR5ms3VPeaUY3dnvIs,49879
91
+ reconcile/queries.py,sha256=FLUZBtFC2S-e6yjtC1Oq968CJP6t3nc36NPj0wYa0bE,53472
92
92
  reconcile/query_validator.py,sha256=csOSkKxcf6ZlpchJu4ck2jLYKUN6y1l-UmSQUFHgssY,1618
93
93
  reconcile/requests_sender.py,sha256=914iluuF4UVgG3VyxxtnHOu4yf6YKS2fIy6PViSsFTQ,3875
94
94
  reconcile/resource_scraper.py,sha256=sg10j7lwAE8JxsyBTaxixOR3QYnePctsNuwOLiz4QVg,2309
@@ -135,7 +135,7 @@ reconcile/aus/version_gates/ocp_gate_handler.py,sha256=RW1ppDaCZXVegV9AzzqYXxDUu
135
135
  reconcile/aus/version_gates/sts_version_gate_handler.py,sha256=QDk53hXAEr6o8w3nGeVCrcihNohrMJztq4ZlsHq_35o,3655
136
136
  reconcile/automated_actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  reconcile/automated_actions/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
- reconcile/automated_actions/config/integration.py,sha256=EbVJGyEAFf91dHiIlnwbetbqZ3Y7HJOez2Fnexzd550,13853
138
+ reconcile/automated_actions/config/integration.py,sha256=5bnYJm9pdlZ_AD_F8oGQuWqyGVIDMsFmA6INKTzXRuQ,14638
139
139
  reconcile/aws_account_manager/README.md,sha256=_XFM3GZNHUzv--e_navqJuaUWpjC6QrHfulreHynFf0,262
140
140
  reconcile/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
141
  reconcile/aws_account_manager/integration.py,sha256=WEbcvF8GocFHJrlz3mmXSOyYHIUrrHxq_SKaImgJQ2c,15346
@@ -213,7 +213,7 @@ reconcile/glitchtip_project_alerts/integration.py,sha256=d3PMy-mQSbSZdIGAVaZCA2U
213
213
  reconcile/glitchtip_project_dsn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
214
  reconcile/glitchtip_project_dsn/integration.py,sha256=3GgcqUM6hWhLpo9Yx5Xr9vrdexF-WNevVCNL9bJ0Upc,8162
215
215
  reconcile/gql_definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
- reconcile/gql_definitions/introspection.json,sha256=CQAoUjEbdjRlHyYeLjs1PTMiP_RQrPzD0yCj08aYawA,2348381
216
+ reconcile/gql_definitions/introspection.json,sha256=Aak1w7K7K1fhgZoZNN2gQ2TV3Jwh0X2GhqfpqRLwWp4,2359202
217
217
  reconcile/gql_definitions/acs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
218
  reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoBOsmNIYLRpMbx1io5o,2181
219
219
  reconcile/gql_definitions/acs/acs_policies.py,sha256=Ygpfl2-VkYLSlJvHgp_dJBfb66K_Rwfdfpsa18w1v1s,4338
@@ -227,7 +227,7 @@ reconcile/gql_definitions/app_sre_tekton_access_revalidation/__init__.py,sha256=
227
227
  reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py,sha256=8Y4NsS5T7tumDWxY5MuoV50MK2i-DsLYSpCRjb7KaLE,2353
228
228
  reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py,sha256=XdVxBxiyTR6Cy939EHNw__0k7iWrZWlhrgS5DakST0I,2504
229
229
  reconcile/gql_definitions/automated_actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
- reconcile/gql_definitions/automated_actions/instance.py,sha256=6UPBKXPSjBsTXGdRQMK1ZXuns5pMPgYBscO3LxU3Gow,12406
230
+ reconcile/gql_definitions/automated_actions/instance.py,sha256=BGdArzLhns8EKsR3ROGtQx1WcFvsv25We7rzveBExhg,14183
231
231
  reconcile/gql_definitions/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
232
  reconcile/gql_definitions/aws_account_manager/aws_accounts.py,sha256=vF51KrY2gwX0J9vESiaRMPQqdAMEtz9f_tBq52bInp0,5148
233
233
  reconcile/gql_definitions/aws_ami_cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -728,7 +728,7 @@ reconcile/utils/ocm/identity_providers.py,sha256=dKed09N8iWmn39tI_MpwgVe47x23eLs
728
728
  reconcile/utils/ocm/label_sources.py,sha256=ES_5VP4X6gsRxMFZ95WgbwE_HqqIUo_JRjHjdGYw6Ss,1846
729
729
  reconcile/utils/ocm/labels.py,sha256=CmAgaOEPiaUb4gLtKab9vNkSDJceuREPd4ApgGcIA1U,6240
730
730
  reconcile/utils/ocm/manifests.py,sha256=Q6kgOeiAwLbJY_vO_BEW2oePvbLDZcMZk20YpJJGpOA,1195
731
- reconcile/utils/ocm/ocm.py,sha256=iCAOxRYaQcJchKLrkwfeDbibZfieQYI8k3uelP0w_Y0,31366
731
+ reconcile/utils/ocm/ocm.py,sha256=tHRGWdpHkvrq6XakDjE1KrXNijdh-ubxKgK183fdhyQ,31378
732
732
  reconcile/utils/ocm/products.py,sha256=UtWpkAvSMCxPOulEB7aV5ZY8ej_rmErlE_HVdm9Gnjk,26021
733
733
  reconcile/utils/ocm/search_filters.py,sha256=09p4Wq1d1HGrDiinf1dmLJ46VtFhkkRCOL4V-N-zwjY,14808
734
734
  reconcile/utils/ocm/service_log.py,sha256=RG1f0MMn6joKaRCAm2xveSJCavdOPP1BVo9FXecDxaI,2018
@@ -765,12 +765,12 @@ reconcile/utils/unleash/server.py,sha256=907gDh9Ee8UxLqusnfpzE-7LUnttB38D4xhVJ0v
765
765
  tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
766
766
  tools/alert_report.py,sha256=cyQTei8_SYOggW_6uYvzhrF7Nae-9xOz-jmh9O9V8R8,5589
767
767
  tools/app_interface_metrics_exporter.py,sha256=mCi6SZf20mo5yvRI2VoqmrCdz46Ph3JhpEJPvryXncY,2261
768
- tools/app_interface_reporter.py,sha256=8pxjJTPOcMKlUVUqpafpDmvUEpeqMiKik7Eopoe-qtU,17204
768
+ tools/app_interface_reporter.py,sha256=m6zAtwIR0l388khSFyoytDSjyEoSg5fjXMAMA9KhCIU,17602
769
769
  tools/app_sre_tekton_access_reporter.py,sha256=5qmkevJdlb2j_lpGC5Pu1Pmo0eomX5ZxzS_GNkqHAEE,3104
770
770
  tools/app_sre_tekton_access_revalidation.py,sha256=vwL1o_j7oSTOhrHNH1znpgjA2LHGzb8yc5iG3aaY4m0,2684
771
771
  tools/glitchtip_access_reporter.py,sha256=wnaiDGW4MkYONV_erltnJ6nGkEj0kQrAiv04NNnOS0k,2859
772
772
  tools/glitchtip_access_revalidation.py,sha256=jjeLO53LTbz_LfQw3G2Cs8lVLO_6xqU39BYyTH3cEPE,2764
773
- tools/qontract_cli.py,sha256=S6TorZiixrXe1nd9m9QhP-uUS3_gOy45_y6wP7X0z80,159520
773
+ tools/qontract_cli.py,sha256=KyK2iCSh68cPolZygQtYb18ZtjIUlFw4aZT9D5p91kw,159892
774
774
  tools/template_validation.py,sha256=Xn9X4sGFznx-rvBDnq9Kq16rfET8V3bqH1EwavsGBac,3335
775
775
  tools/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
776
776
  tools/cli_commands/container_images_report.py,sha256=8mAjCS6XR0yD7k0mfiVBlt6xbYU47q_ftdYNi5o5VKE,5566
@@ -796,7 +796,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
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
798
  tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
799
- qontract_reconcile-0.10.2.dev294.dist-info/METADATA,sha256=5ZB0vx3CC7pReUDOAiLvr3MqYohLV2skk6DSZ6XQ_wE,24916
800
- qontract_reconcile-0.10.2.dev294.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
801
- qontract_reconcile-0.10.2.dev294.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
802
- qontract_reconcile-0.10.2.dev294.dist-info/RECORD,,
799
+ qontract_reconcile-0.10.2.dev296.dist-info/METADATA,sha256=7dJrZxkVMSto5PnvpCwOcPohimXhWm9frSgZUDnUXdw,24916
800
+ qontract_reconcile-0.10.2.dev296.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
801
+ qontract_reconcile-0.10.2.dev296.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
802
+ qontract_reconcile-0.10.2.dev296.dist-info/RECORD,,
@@ -20,6 +20,7 @@ from reconcile.gql_definitions.automated_actions.instance import (
20
20
  AutomatedActionExternalResourceFlushElastiCacheV1,
21
21
  AutomatedActionExternalResourceRdsRebootV1,
22
22
  AutomatedActionExternalResourceRdsSnapshotV1,
23
+ AutomatedActionOpenshiftWorkloadDeleteV1,
23
24
  AutomatedActionOpenshiftWorkloadRestartArgumentV1,
24
25
  AutomatedActionOpenshiftWorkloadRestartV1,
25
26
  AutomatedActionsInstanceV1,
@@ -204,6 +205,19 @@ class AutomatedActionsConfigIntegration(
204
205
  "account": f"^{rds_snapshot_er.provisioner.name}$",
205
206
  "identifier": rds_snapshot_arg.identifier,
206
207
  })
208
+ case AutomatedActionOpenshiftWorkloadDeleteV1():
209
+ parameters.extend(
210
+ {
211
+ # all parameter values are regexes in the OPA policy
212
+ # therefore, cluster and namespace must be fixed to the current strings
213
+ "cluster": f"^{arg.namespace.cluster.name}$",
214
+ "namespace": f"^{arg.namespace.name}$",
215
+ "api_version": arg.api_version or ".*",
216
+ "kind": arg.kind,
217
+ "name": arg.name,
218
+ }
219
+ for arg in action.openshift_workload_delete_arguments
220
+ )
207
221
  case AutomatedActionOpenshiftWorkloadRestartV1():
208
222
  parameters.extend(
209
223
  {
@@ -90,16 +90,16 @@ def run(dry_run: bool, defer: Callable | None = None) -> None:
90
90
  )
91
91
  )
92
92
 
93
- for a in accounts_to_reset:
94
- if not a.reset_passwords:
93
+ for account_to_reset in accounts_to_reset:
94
+ if not account_to_reset.reset_passwords:
95
95
  continue
96
96
 
97
- with AWSApi(1, [a.account], settings=settings) as aws_api:
98
- for r in a.reset_passwords:
97
+ with AWSApi(1, [account_to_reset.account], settings=settings) as aws_api:
98
+ for r in account_to_reset.reset_passwords:
99
99
  user_name = r.user_name
100
100
  state_key = r.state_key
101
101
 
102
- account_name = a.account["name"]
102
+ account_name = account_to_reset.account["name"]
103
103
 
104
104
  logging.info(["reset_password", account_name, user_name])
105
105
 
@@ -132,6 +132,23 @@ query AutomatedActionsInstances {
132
132
  identifier
133
133
  }
134
134
  }
135
+ ... on AutomatedActionOpenshiftWorkloadDelete_v1 {
136
+ openshift_workload_delete_arguments: arguments {
137
+ namespace {
138
+ name
139
+ delete
140
+ cluster {
141
+ name
142
+ disable {
143
+ integrations
144
+ }
145
+ }
146
+ }
147
+ api_version
148
+ kind
149
+ name
150
+ }
151
+ }
135
152
  ... on AutomatedActionOpenshiftWorkloadRestart_v1 {
136
153
  openshift_workload_restart_arguments: arguments {
137
154
  namespace {
@@ -280,11 +297,37 @@ class DisableClusterAutomationsV1(ConfiguredBaseModel):
280
297
  integrations: Optional[list[str]] = Field(..., alias="integrations")
281
298
 
282
299
 
283
- class AutomatedActionOpenshiftWorkloadRestartArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
300
+ class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
284
301
  name: str = Field(..., alias="name")
285
302
  disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable")
286
303
 
287
304
 
305
+ class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1(ConfiguredBaseModel):
306
+ name: str = Field(..., alias="name")
307
+ delete: Optional[bool] = Field(..., alias="delete")
308
+ cluster: AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1 = Field(..., alias="cluster")
309
+
310
+
311
+ class AutomatedActionOpenshiftWorkloadDeleteArgumentV1(ConfiguredBaseModel):
312
+ namespace: AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1 = Field(..., alias="namespace")
313
+ api_version: Optional[str] = Field(..., alias="api_version")
314
+ kind: str = Field(..., alias="kind")
315
+ name: str = Field(..., alias="name")
316
+
317
+
318
+ class AutomatedActionOpenshiftWorkloadDeleteV1(AutomatedActionV1):
319
+ openshift_workload_delete_arguments: list[AutomatedActionOpenshiftWorkloadDeleteArgumentV1] = Field(..., alias="openshift_workload_delete_arguments")
320
+
321
+
322
+ class AutomatedActionOpenshiftWorkloadRestartArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1(ConfiguredBaseModel):
323
+ integrations: Optional[list[str]] = Field(..., alias="integrations")
324
+
325
+
326
+ class AutomatedActionOpenshiftWorkloadRestartArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
327
+ name: str = Field(..., alias="name")
328
+ disable: Optional[AutomatedActionOpenshiftWorkloadRestartArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1] = Field(..., alias="disable")
329
+
330
+
288
331
  class AutomatedActionOpenshiftWorkloadRestartArgumentV1_NamespaceV1(ConfiguredBaseModel):
289
332
  name: str = Field(..., alias="name")
290
333
  delete: Optional[bool] = Field(..., alias="delete")
@@ -304,7 +347,7 @@ class AutomatedActionOpenshiftWorkloadRestartV1(AutomatedActionV1):
304
347
  class AutomatedActionsInstanceV1(ConfiguredBaseModel):
305
348
  name: str = Field(..., alias="name")
306
349
  deployment: NamespaceV1 = Field(..., alias="deployment")
307
- actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
350
+ actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftWorkloadDeleteV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
308
351
 
309
352
 
310
353
  class AutomatedActionsInstancesQueryData(ConfiguredBaseModel):
@@ -5706,6 +5706,11 @@
5706
5706
  "name": "AutomatedActionNoOp_v1",
5707
5707
  "ofType": null
5708
5708
  },
5709
+ {
5710
+ "kind": "OBJECT",
5711
+ "name": "AutomatedActionOpenshiftWorkloadDelete_v1",
5712
+ "ofType": null
5713
+ },
5709
5714
  {
5710
5715
  "kind": "OBJECT",
5711
5716
  "name": "AutomatedActionOpenshiftWorkloadRestart_v1",
@@ -27325,6 +27330,11 @@
27325
27330
  "name": "AutomatedActionNoOp_v1",
27326
27331
  "ofType": null
27327
27332
  },
27333
+ {
27334
+ "kind": "OBJECT",
27335
+ "name": "AutomatedActionOpenshiftWorkloadDelete_v1",
27336
+ "ofType": null
27337
+ },
27328
27338
  {
27329
27339
  "kind": "OBJECT",
27330
27340
  "name": "AutomatedActionOpenshiftWorkloadRestart_v1",
@@ -53916,6 +53926,243 @@
53916
53926
  "enumValues": null,
53917
53927
  "possibleTypes": null
53918
53928
  },
53929
+ {
53930
+ "kind": "OBJECT",
53931
+ "name": "AutomatedActionOpenshiftWorkloadDelete_v1",
53932
+ "description": null,
53933
+ "fields": [
53934
+ {
53935
+ "name": "schema",
53936
+ "description": null,
53937
+ "args": [],
53938
+ "type": {
53939
+ "kind": "NON_NULL",
53940
+ "name": null,
53941
+ "ofType": {
53942
+ "kind": "SCALAR",
53943
+ "name": "String",
53944
+ "ofType": null
53945
+ }
53946
+ },
53947
+ "isDeprecated": false,
53948
+ "deprecationReason": null
53949
+ },
53950
+ {
53951
+ "name": "path",
53952
+ "description": null,
53953
+ "args": [],
53954
+ "type": {
53955
+ "kind": "NON_NULL",
53956
+ "name": null,
53957
+ "ofType": {
53958
+ "kind": "SCALAR",
53959
+ "name": "String",
53960
+ "ofType": null
53961
+ }
53962
+ },
53963
+ "isDeprecated": false,
53964
+ "deprecationReason": null
53965
+ },
53966
+ {
53967
+ "name": "type",
53968
+ "description": null,
53969
+ "args": [],
53970
+ "type": {
53971
+ "kind": "NON_NULL",
53972
+ "name": null,
53973
+ "ofType": {
53974
+ "kind": "SCALAR",
53975
+ "name": "String",
53976
+ "ofType": null
53977
+ }
53978
+ },
53979
+ "isDeprecated": false,
53980
+ "deprecationReason": null
53981
+ },
53982
+ {
53983
+ "name": "description",
53984
+ "description": null,
53985
+ "args": [],
53986
+ "type": {
53987
+ "kind": "SCALAR",
53988
+ "name": "String",
53989
+ "ofType": null
53990
+ },
53991
+ "isDeprecated": false,
53992
+ "deprecationReason": null
53993
+ },
53994
+ {
53995
+ "name": "maxOps",
53996
+ "description": null,
53997
+ "args": [],
53998
+ "type": {
53999
+ "kind": "NON_NULL",
54000
+ "name": null,
54001
+ "ofType": {
54002
+ "kind": "SCALAR",
54003
+ "name": "Int",
54004
+ "ofType": null
54005
+ }
54006
+ },
54007
+ "isDeprecated": false,
54008
+ "deprecationReason": null
54009
+ },
54010
+ {
54011
+ "name": "instances",
54012
+ "description": null,
54013
+ "args": [],
54014
+ "type": {
54015
+ "kind": "NON_NULL",
54016
+ "name": null,
54017
+ "ofType": {
54018
+ "kind": "LIST",
54019
+ "name": null,
54020
+ "ofType": {
54021
+ "kind": "NON_NULL",
54022
+ "name": null,
54023
+ "ofType": {
54024
+ "kind": "OBJECT",
54025
+ "name": "AutomatedActionsInstance_v1",
54026
+ "ofType": null
54027
+ }
54028
+ }
54029
+ }
54030
+ },
54031
+ "isDeprecated": false,
54032
+ "deprecationReason": null
54033
+ },
54034
+ {
54035
+ "name": "permissions",
54036
+ "description": null,
54037
+ "args": [],
54038
+ "type": {
54039
+ "kind": "LIST",
54040
+ "name": null,
54041
+ "ofType": {
54042
+ "kind": "NON_NULL",
54043
+ "name": null,
54044
+ "ofType": {
54045
+ "kind": "OBJECT",
54046
+ "name": "PermissionAutomatedActions_v1",
54047
+ "ofType": null
54048
+ }
54049
+ }
54050
+ },
54051
+ "isDeprecated": false,
54052
+ "deprecationReason": null
54053
+ },
54054
+ {
54055
+ "name": "arguments",
54056
+ "description": null,
54057
+ "args": [],
54058
+ "type": {
54059
+ "kind": "NON_NULL",
54060
+ "name": null,
54061
+ "ofType": {
54062
+ "kind": "LIST",
54063
+ "name": null,
54064
+ "ofType": {
54065
+ "kind": "NON_NULL",
54066
+ "name": null,
54067
+ "ofType": {
54068
+ "kind": "OBJECT",
54069
+ "name": "AutomatedActionOpenshiftWorkloadDeleteArgument_v1",
54070
+ "ofType": null
54071
+ }
54072
+ }
54073
+ }
54074
+ },
54075
+ "isDeprecated": false,
54076
+ "deprecationReason": null
54077
+ }
54078
+ ],
54079
+ "inputFields": null,
54080
+ "interfaces": [
54081
+ {
54082
+ "kind": "INTERFACE",
54083
+ "name": "AutomatedAction_v1",
54084
+ "ofType": null
54085
+ },
54086
+ {
54087
+ "kind": "INTERFACE",
54088
+ "name": "DatafileObject_v1",
54089
+ "ofType": null
54090
+ }
54091
+ ],
54092
+ "enumValues": null,
54093
+ "possibleTypes": null
54094
+ },
54095
+ {
54096
+ "kind": "OBJECT",
54097
+ "name": "AutomatedActionOpenshiftWorkloadDeleteArgument_v1",
54098
+ "description": null,
54099
+ "fields": [
54100
+ {
54101
+ "name": "namespace",
54102
+ "description": null,
54103
+ "args": [],
54104
+ "type": {
54105
+ "kind": "NON_NULL",
54106
+ "name": null,
54107
+ "ofType": {
54108
+ "kind": "OBJECT",
54109
+ "name": "Namespace_v1",
54110
+ "ofType": null
54111
+ }
54112
+ },
54113
+ "isDeprecated": false,
54114
+ "deprecationReason": null
54115
+ },
54116
+ {
54117
+ "name": "api_version",
54118
+ "description": null,
54119
+ "args": [],
54120
+ "type": {
54121
+ "kind": "SCALAR",
54122
+ "name": "String",
54123
+ "ofType": null
54124
+ },
54125
+ "isDeprecated": false,
54126
+ "deprecationReason": null
54127
+ },
54128
+ {
54129
+ "name": "kind",
54130
+ "description": null,
54131
+ "args": [],
54132
+ "type": {
54133
+ "kind": "NON_NULL",
54134
+ "name": null,
54135
+ "ofType": {
54136
+ "kind": "SCALAR",
54137
+ "name": "String",
54138
+ "ofType": null
54139
+ }
54140
+ },
54141
+ "isDeprecated": false,
54142
+ "deprecationReason": null
54143
+ },
54144
+ {
54145
+ "name": "name",
54146
+ "description": null,
54147
+ "args": [],
54148
+ "type": {
54149
+ "kind": "NON_NULL",
54150
+ "name": null,
54151
+ "ofType": {
54152
+ "kind": "SCALAR",
54153
+ "name": "String",
54154
+ "ofType": null
54155
+ }
54156
+ },
54157
+ "isDeprecated": false,
54158
+ "deprecationReason": null
54159
+ }
54160
+ ],
54161
+ "inputFields": null,
54162
+ "interfaces": [],
54163
+ "enumValues": null,
54164
+ "possibleTypes": null
54165
+ },
53919
54166
  {
53920
54167
  "kind": "OBJECT",
53921
54168
  "name": "AutomatedActionOpenshiftWorkloadRestart_v1",
@@ -1,8 +1,9 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  import logging
3
5
  import sys
4
- from collections.abc import Iterable, Mapping, MutableMapping
5
- from typing import Any
6
+ from typing import TYPE_CHECKING, Any
6
7
 
7
8
  from reconcile import queries
8
9
  from reconcile.status import ExitCodes
@@ -12,13 +13,16 @@ from reconcile.utils.ocm import (
12
13
  OCMMap,
13
14
  )
14
15
 
16
+ if TYPE_CHECKING:
17
+ from collections.abc import Iterable, Mapping, MutableMapping, Sequence
18
+
15
19
  QONTRACT_INTEGRATION = "ocm-additional-routers"
16
20
 
17
21
  SUPPORTED_OCM_PRODUCTS = [OCM_PRODUCT_OSD]
18
22
 
19
23
 
20
24
  def fetch_current_state(
21
- clusters: list[Mapping[str, Any]],
25
+ clusters: Sequence[Mapping[str, Any]],
22
26
  ) -> tuple[OCMMap, list[dict[str, Any]]]:
23
27
  settings = queries.get_app_interface_settings()
24
28
  ocm_map = OCMMap(