qontract-reconcile 0.10.2.dev193__tar.gz → 0.10.2.dev195__tar.gz

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.
Files changed (814) hide show
  1. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/PKG-INFO +1 -1
  2. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/integration.py +185 -182
  3. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/model.py +6 -1
  4. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/slack_api.py +2 -2
  5. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/README.md +0 -0
  6. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/pyproject.toml +0 -0
  7. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/__init__.py +0 -0
  8. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/acs_policies.py +0 -0
  9. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/acs_rbac.py +0 -0
  10. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/__init__.py +0 -0
  11. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/advanced_upgrade_service.py +0 -0
  12. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/aus_label_source.py +0 -0
  13. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/base.py +0 -0
  14. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/cluster_version_data.py +0 -0
  15. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/healthchecks.py +0 -0
  16. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/metrics.py +0 -0
  17. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/models.py +0 -0
  18. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/node_pool_spec.py +0 -0
  19. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/ocm_addons_upgrade_scheduler_org.py +0 -0
  20. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/ocm_upgrade_scheduler.py +0 -0
  21. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/ocm_upgrade_scheduler_org.py +0 -0
  22. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/upgrades.py +0 -0
  23. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gate_approver.py +0 -0
  24. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gates/__init__.py +0 -0
  25. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gates/handler.py +0 -0
  26. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gates/ingress_gate_handler.py +0 -0
  27. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gates/ocp_gate_handler.py +0 -0
  28. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aus/version_gates/sts_version_gate_handler.py +0 -0
  29. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/automated_actions/__init__.py +0 -0
  30. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/automated_actions/config/__init__.py +0 -0
  31. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/automated_actions/config/integration.py +0 -0
  32. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/README.md +0 -0
  33. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/__init__.py +0 -0
  34. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/integration.py +0 -0
  35. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/merge_request_manager.py +0 -0
  36. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/metrics.py +0 -0
  37. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/reconciler.py +0 -0
  38. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_account_manager/utils.py +0 -0
  39. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_ami_cleanup/__init__.py +0 -0
  40. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_ami_cleanup/integration.py +0 -0
  41. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_ami_share.py +0 -0
  42. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_cloudwatch_log_retention/__init__.py +0 -0
  43. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_cloudwatch_log_retention/integration.py +0 -0
  44. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_ecr_image_pull_secrets.py +0 -0
  45. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_garbage_collector.py +0 -0
  46. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_iam_keys.py +0 -0
  47. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_iam_password_reset.py +0 -0
  48. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_saml_idp/__init__.py +0 -0
  49. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_saml_idp/integration.py +0 -0
  50. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_saml_roles/__init__.py +0 -0
  51. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_saml_roles/integration.py +0 -0
  52. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_support_cases_sos.py +0 -0
  53. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/__init__.py +0 -0
  54. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/integration.py +0 -0
  55. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/merge_request_manager/__init__.py +0 -0
  56. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/merge_request_manager/merge_request.py +0 -0
  57. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py +0 -0
  58. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/aws_version_sync/utils.py +0 -0
  59. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/blackbox_exporter_endpoint_monitoring.py +0 -0
  60. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/README.md +0 -0
  61. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/__init__.py +0 -0
  62. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/approver.py +0 -0
  63. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/bundle.py +0 -0
  64. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/change_log_tracking.py +0 -0
  65. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/change_owners.py +0 -0
  66. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/change_types.py +0 -0
  67. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/changes.py +0 -0
  68. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/decision.py +0 -0
  69. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/diff.py +0 -0
  70. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/implicit_ownership.py +0 -0
  71. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/self_service_roles.py +0 -0
  72. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/change_owners/tester.py +0 -0
  73. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/checkpoint.py +0 -0
  74. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cli.py +0 -0
  75. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/closedbox_endpoint_monitoring_base.py +0 -0
  76. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cluster_auth_rhidp/__init__.py +0 -0
  77. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cluster_auth_rhidp/integration.py +0 -0
  78. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cluster_deployment_mapper.py +0 -0
  79. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/__init__.py +0 -0
  80. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/assets/__init__.py +0 -0
  81. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/assets/asset.py +0 -0
  82. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/assets/asset_factory.py +0 -0
  83. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/assets/null.py +0 -0
  84. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/client.py +0 -0
  85. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/integration.py +0 -0
  86. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/cna/state.py +0 -0
  87. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dashdotdb_base.py +0 -0
  88. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dashdotdb_cso.py +0 -0
  89. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dashdotdb_dora.py +0 -0
  90. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dashdotdb_dvo.py +0 -0
  91. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dashdotdb_slo.py +0 -0
  92. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/database_access_manager.py +0 -0
  93. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/deadmanssnitch.py +0 -0
  94. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/__init__.py +0 -0
  95. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/dependencies.py +0 -0
  96. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/metrics.py +0 -0
  97. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/ocm.py +0 -0
  98. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/dynatrace_token_provider/validate.py +0 -0
  99. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/email_sender.py +0 -0
  100. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/endpoints_discovery/__init__.py +0 -0
  101. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/endpoints_discovery/integration.py +0 -0
  102. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/endpoints_discovery/merge_request.py +0 -0
  103. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/endpoints_discovery/merge_request_manager.py +0 -0
  104. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/__init__.py +0 -0
  105. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/aws.py +0 -0
  106. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/factories.py +0 -0
  107. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/integration.py +0 -0
  108. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/integration_secrets_sync.py +0 -0
  109. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/manager.py +0 -0
  110. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/meta.py +0 -0
  111. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/metrics.py +0 -0
  112. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/model.py +0 -0
  113. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/reconciler.py +0 -0
  114. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/secrets_sync.py +0 -0
  115. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/external_resources/state.py +0 -0
  116. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/__init__.py +0 -0
  117. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/dependencies.py +0 -0
  118. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/integration.py +0 -0
  119. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/merge_request.py +0 -0
  120. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/meta.py +0 -0
  121. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/metrics.py +0 -0
  122. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/ocm.py +0 -0
  123. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/validate.py +0 -0
  124. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/fleet_labeler/vcs.py +0 -0
  125. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gabi_authorized_users.py +0 -0
  126. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gcp_image_mirror.py +0 -0
  127. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_org.py +0 -0
  128. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_owners.py +0 -0
  129. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_repo_invites.py +0 -0
  130. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_repo_permissions_validator.py +0 -0
  131. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_users.py +0 -0
  132. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/github_validator.py +0 -0
  133. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_fork_compliance.py +0 -0
  134. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_housekeeping.py +0 -0
  135. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_labeler.py +0 -0
  136. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_members.py +0 -0
  137. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_mr_sqs_consumer.py +0 -0
  138. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_owners.py +0 -0
  139. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_permissions.py +0 -0
  140. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gitlab_projects.py +0 -0
  141. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip/README.md +0 -0
  142. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip/__init__.py +0 -0
  143. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip/integration.py +0 -0
  144. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip/reconciler.py +0 -0
  145. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip_project_alerts/__init__.py +0 -0
  146. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip_project_alerts/integration.py +0 -0
  147. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip_project_dsn/__init__.py +0 -0
  148. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/glitchtip_project_dsn/integration.py +0 -0
  149. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/__init__.py +0 -0
  150. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/acs/__init__.py +0 -0
  151. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/acs/acs_instances.py +0 -0
  152. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/acs/acs_policies.py +0 -0
  153. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/acs/acs_rbac.py +0 -0
  154. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/advanced_upgrade_service/__init__.py +0 -0
  155. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +0 -0
  156. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +0 -0
  157. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py +0 -0
  158. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +0 -0
  159. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/__init__.py +0 -0
  160. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +0 -0
  161. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +0 -0
  162. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/automated_actions/__init__.py +0 -0
  163. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/automated_actions/instance.py +0 -0
  164. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_account_manager/__init__.py +0 -0
  165. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_account_manager/aws_accounts.py +0 -0
  166. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_ami_cleanup/__init__.py +0 -0
  167. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +0 -0
  168. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_cloudwatch_log_retention/__init__.py +0 -0
  169. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
  170. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_saml_idp/__init__.py +0 -0
  171. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +0 -0
  172. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_saml_roles/__init__.py +0 -0
  173. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +0 -0
  174. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_saml_roles/roles.py +0 -0
  175. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_version_sync/__init__.py +0 -0
  176. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_version_sync/clusters.py +0 -0
  177. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/aws_version_sync/namespaces.py +0 -0
  178. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/change_owners/__init__.py +0 -0
  179. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/change_owners/queries/__init__.py +0 -0
  180. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/change_owners/queries/change_types.py +0 -0
  181. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/change_owners/queries/self_service_roles.py +0 -0
  182. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cluster_auth_rhidp/__init__.py +0 -0
  183. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +0 -0
  184. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cna/__init__.py +0 -0
  185. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cna/queries/__init__.py +0 -0
  186. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cna/queries/cna_provisioners.py +0 -0
  187. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cna/queries/cna_resources.py +0 -0
  188. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/__init__.py +0 -0
  189. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/alerting_services_settings.py +0 -0
  190. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_code_component_repos.py +0 -0
  191. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_interface_custom_messages.py +0 -0
  192. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_interface_dms_settings.py +0 -0
  193. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_interface_repo_settings.py +0 -0
  194. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_interface_state_settings.py +0 -0
  195. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_interface_vault_settings.py +0 -0
  196. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +0 -0
  197. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/apps.py +0 -0
  198. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/aws_vpc_requests.py +0 -0
  199. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/aws_vpcs.py +0 -0
  200. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/clusters.py +0 -0
  201. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/clusters_minimal.py +0 -0
  202. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/clusters_with_dms.py +0 -0
  203. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/clusters_with_peering.py +0 -0
  204. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/github_orgs.py +0 -0
  205. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/jira_settings.py +0 -0
  206. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/jiralert_settings.py +0 -0
  207. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/ldap_settings.py +0 -0
  208. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/namespaces.py +0 -0
  209. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/namespaces_minimal.py +0 -0
  210. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/ocm_env_telemeter.py +0 -0
  211. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/ocm_environments.py +0 -0
  212. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/pagerduty_instances.py +0 -0
  213. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/pgp_reencryption_settings.py +0 -0
  214. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/pipeline_providers.py +0 -0
  215. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/quay_instances.py +0 -0
  216. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/quay_orgs.py +0 -0
  217. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/reserved_networks.py +0 -0
  218. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/saas_files.py +0 -0
  219. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/saas_target_namespaces.py +0 -0
  220. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/saasherder_settings.py +0 -0
  221. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/slack_workspaces.py +0 -0
  222. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/smtp_client_settings.py +0 -0
  223. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/state_aws_account.py +0 -0
  224. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/users.py +0 -0
  225. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/common/users_with_paths.py +0 -0
  226. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cost_report/__init__.py +0 -0
  227. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cost_report/app_names.py +0 -0
  228. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cost_report/cost_namespaces.py +0 -0
  229. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/cost_report/settings.py +0 -0
  230. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/dashdotdb_slo/__init__.py +0 -0
  231. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +0 -0
  232. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/dynatrace_token_provider/__init__.py +0 -0
  233. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +0 -0
  234. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +0 -0
  235. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/email_sender/__init__.py +0 -0
  236. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/email_sender/apps.py +0 -0
  237. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/email_sender/emails.py +0 -0
  238. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/email_sender/users.py +0 -0
  239. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/endpoints_discovery/__init__.py +0 -0
  240. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/endpoints_discovery/apps.py +0 -0
  241. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/__init__.py +0 -0
  242. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/aws_accounts.py +0 -0
  243. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/external_resources_modules.py +0 -0
  244. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/external_resources_namespaces.py +0 -0
  245. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/external_resources_settings.py +0 -0
  246. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/fragments/__init__.py +0 -0
  247. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +0 -0
  248. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fleet_labeler/__init__.py +0 -0
  249. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fleet_labeler/fleet_labels.py +0 -0
  250. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/__init__.py +0 -0
  251. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aus_organization.py +0 -0
  252. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_account_common.py +0 -0
  253. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_account_managed.py +0 -0
  254. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_account_sso.py +0 -0
  255. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_infra_management_account.py +0 -0
  256. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_vpc.py +0 -0
  257. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_vpc_request.py +0 -0
  258. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/aws_vpc_request_subnet.py +0 -0
  259. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/container_image_mirror.py +0 -0
  260. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/deplopy_resources.py +0 -0
  261. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/disable.py +0 -0
  262. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/email_service.py +0 -0
  263. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/email_user.py +0 -0
  264. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/jumphost_common_fields.py +0 -0
  265. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/membership_source.py +0 -0
  266. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/minimal_ocm_organization.py +0 -0
  267. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/oc_connection_cluster.py +0 -0
  268. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/ocm_environment.py +0 -0
  269. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/pipeline_provider_retention.py +0 -0
  270. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/prometheus_instance.py +0 -0
  271. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/resource_limits_requirements.py +0 -0
  272. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/resource_requests_requirements.py +0 -0
  273. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/resource_values.py +0 -0
  274. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/saas_slo_document.py +0 -0
  275. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/saas_target_namespace.py +0 -0
  276. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/serviceaccount_token.py +0 -0
  277. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/terraform_state.py +0 -0
  278. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/upgrade_policy.py +0 -0
  279. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/user.py +0 -0
  280. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/fragments/vault_secret.py +0 -0
  281. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gcp/__init__.py +0 -0
  282. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gcp/gcp_docker_repos.py +0 -0
  283. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gcp/gcp_projects.py +0 -0
  284. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gitlab_members/__init__.py +0 -0
  285. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gitlab_members/gitlab_instances.py +0 -0
  286. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/gitlab_members/permissions.py +0 -0
  287. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/glitchtip/__init__.py +0 -0
  288. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/glitchtip/glitchtip_instance.py +0 -0
  289. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/glitchtip/glitchtip_project.py +0 -0
  290. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/glitchtip_project_alerts/__init__.py +0 -0
  291. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +0 -0
  292. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/integrations/__init__.py +0 -0
  293. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/integrations/integrations.py +0 -0
  294. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/introspection.json +0 -0
  295. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jenkins_configs/__init__.py +0 -0
  296. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +0 -0
  297. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +0 -0
  298. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jira/__init__.py +0 -0
  299. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jira/jira_servers.py +0 -0
  300. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jira_permissions_validator/__init__.py +0 -0
  301. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +0 -0
  302. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jumphosts/__init__.py +0 -0
  303. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/jumphosts/jumphosts.py +0 -0
  304. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ldap_groups/__init__.py +0 -0
  305. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ldap_groups/roles.py +0 -0
  306. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ldap_groups/settings.py +0 -0
  307. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/maintenance/__init__.py +0 -0
  308. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/maintenance/maintenances.py +0 -0
  309. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/membershipsources/__init__.py +0 -0
  310. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/membershipsources/roles.py +0 -0
  311. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ocm_labels/__init__.py +0 -0
  312. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ocm_labels/clusters.py +0 -0
  313. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ocm_labels/organizations.py +0 -0
  314. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ocm_oidc_idp/__init__.py +0 -0
  315. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/ocm_subscription_labels/__init__.py +0 -0
  316. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_cluster_bots/__init__.py +0 -0
  317. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_cluster_bots/clusters.py +0 -0
  318. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_groups/__init__.py +0 -0
  319. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_groups/managed_groups.py +0 -0
  320. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_groups/managed_roles.py +0 -0
  321. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_serviceaccount_tokens/__init__.py +0 -0
  322. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +0 -0
  323. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/quay_membership/__init__.py +0 -0
  324. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/quay_membership/quay_membership.py +0 -0
  325. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/rhidp/__init__.py +0 -0
  326. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/rhidp/organizations.py +0 -0
  327. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/service_dependencies/__init__.py +0 -0
  328. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +0 -0
  329. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/service_dependencies/service_dependencies.py +0 -0
  330. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/sharding/__init__.py +0 -0
  331. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/sharding/aws_accounts.py +0 -0
  332. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/sharding/ocm_organization.py +0 -0
  333. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/skupper_network/__init__.py +0 -0
  334. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/skupper_network/site_controller_template.py +0 -0
  335. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/skupper_network/skupper_networks.py +0 -0
  336. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slack_usergroups/__init__.py +0 -0
  337. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slack_usergroups/clusters.py +0 -0
  338. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slack_usergroups/permissions.py +0 -0
  339. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slack_usergroups/users.py +0 -0
  340. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slo_documents/__init__.py +0 -0
  341. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/slo_documents/slo_documents.py +0 -0
  342. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/status_board/__init__.py +0 -0
  343. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/status_board/status_board.py +0 -0
  344. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/statuspage/__init__.py +0 -0
  345. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/statuspage/statuspages.py +0 -0
  346. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/templating/__init__.py +0 -0
  347. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/templating/template_collection.py +0 -0
  348. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/templating/templates.py +0 -0
  349. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_dns/__init__.py +0 -0
  350. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +0 -0
  351. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +0 -0
  352. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_resources/__init__.py +0 -0
  353. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +0 -0
  354. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +0 -0
  355. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_users/__init__.py +0 -0
  356. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +0 -0
  357. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +0 -0
  358. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_init/__init__.py +0 -0
  359. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_init/aws_accounts.py +0 -0
  360. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_repo/__init__.py +0 -0
  361. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_repo/terraform_repo.py +0 -0
  362. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_resources/__init__.py +0 -0
  363. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_resources/database_access_manager.py +0 -0
  364. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +0 -0
  365. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_tgw_attachments/__init__.py +0 -0
  366. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +0 -0
  367. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/unleash_feature_toggles/__init__.py +0 -0
  368. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +0 -0
  369. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vault_instances/__init__.py +0 -0
  370. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vault_instances/vault_instances.py +0 -0
  371. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vault_policies/__init__.py +0 -0
  372. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vault_policies/vault_policies.py +0 -0
  373. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vpc_peerings_validator/__init__.py +0 -0
  374. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +0 -0
  375. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +0 -0
  376. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/integrations_manager.py +0 -0
  377. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins/__init__.py +0 -0
  378. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins/types.py +0 -0
  379. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_base.py +0 -0
  380. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_job_builder.py +0 -0
  381. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_job_builds_cleaner.py +0 -0
  382. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_job_cleaner.py +0 -0
  383. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_roles.py +0 -0
  384. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_webhooks.py +0 -0
  385. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_webhooks_cleaner.py +0 -0
  386. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jenkins_worker_fleets.py +0 -0
  387. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jira_permissions_validator.py +0 -0
  388. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/jira_watcher.py +0 -0
  389. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ldap_groups/__init__.py +0 -0
  390. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ldap_groups/integration.py +0 -0
  391. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ldap_users.py +0 -0
  392. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/mr_client_gateway.py +0 -0
  393. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm/__init__.py +0 -0
  394. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm/types.py +0 -0
  395. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_additional_routers.py +0 -0
  396. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_addons.py +0 -0
  397. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_addons_upgrade_tests_trigger.py +0 -0
  398. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_aws_infrastructure_access.py +0 -0
  399. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_clusters.py +0 -0
  400. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_external_configuration_labels.py +0 -0
  401. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_github_idp.py +0 -0
  402. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_groups.py +0 -0
  403. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_internal_notifications/__init__.py +0 -0
  404. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_internal_notifications/integration.py +0 -0
  405. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_labels/__init__.py +0 -0
  406. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_labels/integration.py +0 -0
  407. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_machine_pools.py +0 -0
  408. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_update_recommended_version.py +0 -0
  409. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/ocm_upgrade_scheduler_org_updater.py +0 -0
  410. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_base.py +0 -0
  411. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_cluster_bots.py +0 -0
  412. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_clusterrolebindings.py +0 -0
  413. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_groups.py +0 -0
  414. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_limitranges.py +0 -0
  415. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_namespace_labels.py +0 -0
  416. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_namespaces.py +0 -0
  417. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_network_policies.py +0 -0
  418. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_prometheus_rules.py +0 -0
  419. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_resourcequotas.py +0 -0
  420. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_resources.py +0 -0
  421. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_resources_base.py +0 -0
  422. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_rolebindings.py +0 -0
  423. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_routes.py +0 -0
  424. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy.py +0 -0
  425. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_change_tester.py +0 -0
  426. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_base.py +0 -0
  427. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_cleaner.py +0 -0
  428. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_configs.py +0 -0
  429. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_images.py +0 -0
  430. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_moving_commits.py +0 -0
  431. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_saas_deploy_trigger_upstream_jobs.py +0 -0
  432. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_serviceaccount_tokens.py +0 -0
  433. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_tekton_resources.py +0 -0
  434. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_upgrade_watcher.py +0 -0
  435. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_users.py +0 -0
  436. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/openshift_vault_secrets.py +0 -0
  437. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/__init__.py +0 -0
  438. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/base.py +0 -0
  439. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/labelset.py +0 -0
  440. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/metrics.py +0 -0
  441. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/models.py +0 -0
  442. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/providers.py +0 -0
  443. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/oum/standalone.py +0 -0
  444. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/prometheus_rules_tester/__init__.py +0 -0
  445. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/prometheus_rules_tester/integration.py +0 -0
  446. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_base.py +0 -0
  447. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_membership.py +0 -0
  448. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_mirror.py +0 -0
  449. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_mirror_org.py +0 -0
  450. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_permissions.py +0 -0
  451. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/quay_repos.py +0 -0
  452. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/queries.py +0 -0
  453. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/query_validator.py +0 -0
  454. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/requests_sender.py +0 -0
  455. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/resource_scraper.py +0 -0
  456. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/resource_template_tester.py +0 -0
  457. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/__init__.py +0 -0
  458. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/common.py +0 -0
  459. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/metrics.py +0 -0
  460. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/ocm_oidc_idp/__init__.py +0 -0
  461. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/ocm_oidc_idp/base.py +0 -0
  462. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/ocm_oidc_idp/integration.py +0 -0
  463. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/ocm_oidc_idp/metrics.py +0 -0
  464. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/sso_client/__init__.py +0 -0
  465. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/sso_client/base.py +0 -0
  466. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/sso_client/integration.py +0 -0
  467. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/rhidp/sso_client/metrics.py +0 -0
  468. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/run_integration.py +0 -0
  469. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/__init__.py +0 -0
  470. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/integration.py +0 -0
  471. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/__init__.py +0 -0
  472. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py +0 -0
  473. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/desired_state.py +0 -0
  474. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request.py +0 -0
  475. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request_manager_v2.py +0 -0
  476. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/metrics.py +0 -0
  477. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/mr_parser.py +0 -0
  478. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/open_merge_requests.py +0 -0
  479. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +0 -0
  480. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/meta.py +0 -0
  481. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/publisher.py +0 -0
  482. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/s3_exporter.py +0 -0
  483. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/subscriber.py +0 -0
  484. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/utils/__init__.py +0 -0
  485. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py +0 -0
  486. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/saas_file_validator.py +0 -0
  487. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/sendgrid_teammates.py +0 -0
  488. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/service_dependencies.py +0 -0
  489. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/signalfx_endpoint_monitoring.py +0 -0
  490. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/skupper_network/__init__.py +0 -0
  491. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/skupper_network/integration.py +0 -0
  492. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/skupper_network/models.py +0 -0
  493. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/skupper_network/reconciler.py +0 -0
  494. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/skupper_network/site_controller.py +0 -0
  495. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/slack_base.py +0 -0
  496. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/slack_usergroups.py +0 -0
  497. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/sql_query.py +0 -0
  498. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/status.py +0 -0
  499. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/status_board.py +0 -0
  500. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/__init__.py +0 -0
  501. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/atlassian.py +0 -0
  502. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/integration.py +0 -0
  503. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/integrations/__init__.py +0 -0
  504. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/integrations/components.py +0 -0
  505. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/integrations/maintenances.py +0 -0
  506. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/page.py +0 -0
  507. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/state.py +0 -0
  508. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/statuspage/status.py +0 -0
  509. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/__init__.py +0 -0
  510. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/aws_access_key_email.j2 +0 -0
  511. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/email.yml.j2 +0 -0
  512. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/jira-checkpoint-missinginfo.j2 +0 -0
  513. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/rosa-classic-cluster-creation.sh.j2 +0 -0
  514. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +0 -0
  515. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/__init__.py +0 -0
  516. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/lib/__init__.py +0 -0
  517. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/lib/merge_request_manager.py +0 -0
  518. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/lib/model.py +0 -0
  519. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/lib/rendering.py +0 -0
  520. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/renderer.py +0 -0
  521. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/templating/validator.py +0 -0
  522. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_aws_route53.py +0 -0
  523. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_cloudflare_dns.py +0 -0
  524. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_cloudflare_resources.py +0 -0
  525. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_cloudflare_users.py +0 -0
  526. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_init/__init__.py +0 -0
  527. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_init/integration.py +0 -0
  528. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_init/merge_request.py +0 -0
  529. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_init/merge_request_manager.py +0 -0
  530. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_repo.py +0 -0
  531. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_resources.py +0 -0
  532. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_tgw_attachments.py +0 -0
  533. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_users.py +0 -0
  534. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_vpc_peerings.py +0 -0
  535. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_vpc_resources/__init__.py +0 -0
  536. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_vpc_resources/integration.py +0 -0
  537. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_vpc_resources/merge_request.py +0 -0
  538. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/terraform_vpc_resources/merge_request_manager.py +0 -0
  539. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/__init__.py +0 -0
  540. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/alerting_services_settings.py +0 -0
  541. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_custom_messages.py +0 -0
  542. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_deadmanssnitch_settings.py +0 -0
  543. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_metrics_exporter/__init__.py +0 -0
  544. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_metrics_exporter/onboarding_status.py +0 -0
  545. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_metrics_exporter/terraform_repo.py +0 -0
  546. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_repo_url.py +0 -0
  547. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_state_settings.py +0 -0
  548. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_interface_vault_settings.py +0 -0
  549. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/app_quay_repos_escalation_policies.py +0 -0
  550. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/apps.py +0 -0
  551. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
  552. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/aws_vpc_requests.py +0 -0
  553. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/aws_vpcs.py +0 -0
  554. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/cloudflare.py +0 -0
  555. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/clusters.py +0 -0
  556. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/clusters_minimal.py +0 -0
  557. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/clusters_with_dms.py +0 -0
  558. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/clusters_with_peering.py +0 -0
  559. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/cost_report/__init__.py +0 -0
  560. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/cost_report/app_names.py +0 -0
  561. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/cost_report/cost_namespaces.py +0 -0
  562. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/cost_report/settings.py +0 -0
  563. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/dynatrace.py +0 -0
  564. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/dynatrace_environments.py +0 -0
  565. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/dynatrace_token_provider_token_specs.py +0 -0
  566. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/external_resources.py +0 -0
  567. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/fleet_labels.py +0 -0
  568. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/get_state_aws_account.py +0 -0
  569. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/github_orgs.py +0 -0
  570. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/gitlab_instances.py +0 -0
  571. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/glitchtip.py +0 -0
  572. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/jenkins.py +0 -0
  573. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/jira.py +0 -0
  574. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/jira_settings.py +0 -0
  575. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/jiralert_settings.py +0 -0
  576. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/ldap_settings.py +0 -0
  577. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/namespaces.py +0 -0
  578. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/namespaces_minimal.py +0 -0
  579. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/ocm.py +0 -0
  580. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/pagerduty_instances.py +0 -0
  581. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/quay.py +0 -0
  582. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/repos.py +0 -0
  583. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/reserved_networks.py +0 -0
  584. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/saas_files.py +0 -0
  585. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/slack.py +0 -0
  586. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/slo_documents.py +0 -0
  587. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/smtp.py +0 -0
  588. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/status_board.py +0 -0
  589. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/tekton_pipeline_providers.py +0 -0
  590. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/terraform_namespaces.py +0 -0
  591. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/terraform_tgw_attachments/__init__.py +0 -0
  592. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/terraform_tgw_attachments/aws_accounts.py +0 -0
  593. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/unleash.py +0 -0
  594. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/users.py +0 -0
  595. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/users_with_paths.py +0 -0
  596. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/typed_queries/vault.py +0 -0
  597. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/unleash_feature_toggles/__init__.py +0 -0
  598. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/unleash_feature_toggles/integration.py +0 -0
  599. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/__init__.py +0 -0
  600. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/acs/__init__.py +0 -0
  601. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/acs/base.py +0 -0
  602. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/acs/policies.py +0 -0
  603. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/acs/rbac.py +0 -0
  604. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aggregated_list.py +0 -0
  605. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/amtool.py +0 -0
  606. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api.py +0 -0
  607. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/__init__.py +0 -0
  608. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/account.py +0 -0
  609. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/api.py +0 -0
  610. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/dynamodb.py +0 -0
  611. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/iam.py +0 -0
  612. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/organization.py +0 -0
  613. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/s3.py +0 -0
  614. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/service_quotas.py +0 -0
  615. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/sts.py +0 -0
  616. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_api_typed/support.py +0 -0
  617. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/aws_helper.py +0 -0
  618. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/batches.py +0 -0
  619. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/binary.py +0 -0
  620. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/cloud_resource_best_practice/__init__.py +0 -0
  621. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/cloud_resource_best_practice/aws_rds.py +0 -0
  622. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/clusterhealth/__init__.py +0 -0
  623. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/clusterhealth/providerbase.py +0 -0
  624. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/clusterhealth/telemeter.py +0 -0
  625. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/config.py +0 -0
  626. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/constants.py +0 -0
  627. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/deadmanssnitch_api.py +0 -0
  628. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/defer.py +0 -0
  629. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/differ.py +0 -0
  630. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/disabled_integrations.py +0 -0
  631. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/dnsutils.py +0 -0
  632. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/dynatrace/__init__.py +0 -0
  633. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/dynatrace/client.py +0 -0
  634. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/early_exit_cache.py +0 -0
  635. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/elasticsearch_exceptions.py +0 -0
  636. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/environ.py +0 -0
  637. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/exceptions.py +0 -0
  638. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/expiration.py +0 -0
  639. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/extended_early_exit.py +0 -0
  640. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/external_resource_spec.py +0 -0
  641. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/external_resources.py +0 -0
  642. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/filtering.py +0 -0
  643. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/git.py +0 -0
  644. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/github_api.py +0 -0
  645. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/gitlab_api.py +0 -0
  646. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/glitchtip/__init__.py +0 -0
  647. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/glitchtip/client.py +0 -0
  648. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/glitchtip/models.py +0 -0
  649. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/gpg.py +0 -0
  650. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/gql.py +0 -0
  651. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/grouping.py +0 -0
  652. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/helm.py +0 -0
  653. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/helpers.py +0 -0
  654. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/imap_client.py +0 -0
  655. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/instrumented_wrappers.py +0 -0
  656. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/internal_groups/__init__.py +0 -0
  657. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/internal_groups/client.py +0 -0
  658. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/internal_groups/models.py +0 -0
  659. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jenkins_api.py +0 -0
  660. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jinja2/__init__.py +0 -0
  661. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jinja2/extensions.py +0 -0
  662. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jinja2/filters.py +0 -0
  663. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jinja2/utils.py +0 -0
  664. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jira_client.py +0 -0
  665. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jjb_client.py +0 -0
  666. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jobcontroller/__init__.py +0 -0
  667. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jobcontroller/controller.py +0 -0
  668. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jobcontroller/models.py +0 -0
  669. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jsonpath.py +0 -0
  670. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/jump_host.py +0 -0
  671. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/keycloak.py +0 -0
  672. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ldap_client.py +0 -0
  673. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/lean_terraform_client.py +0 -0
  674. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/make.py +0 -0
  675. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/membershipsources/__init__.py +0 -0
  676. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/membershipsources/app_interface_resolver.py +0 -0
  677. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/membershipsources/models.py +0 -0
  678. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/membershipsources/resolver.py +0 -0
  679. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/merge_request_manager/__init__.py +0 -0
  680. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/merge_request_manager/merge_request_manager.py +0 -0
  681. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/merge_request_manager/parser.py +0 -0
  682. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/metrics.py +0 -0
  683. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/models.py +0 -0
  684. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/README.md +0 -0
  685. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/__init__.py +0 -0
  686. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/app_interface_reporter.py +0 -0
  687. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/app_sre_tekton_access_report.py +0 -0
  688. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/aws_access.py +0 -0
  689. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/base.py +0 -0
  690. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/clusters_updates.py +0 -0
  691. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/glitchtip_access_reporter.py +0 -0
  692. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/labels.py +0 -0
  693. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/notificator.py +0 -0
  694. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/ocm_update_recommended_version.py +0 -0
  695. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +0 -0
  696. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/promote_qontract.py +0 -0
  697. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/update_access_report_base.py +0 -0
  698. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/mr/user_maintenance.py +0 -0
  699. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/oauth2_backend_application_session.py +0 -0
  700. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/oc.py +0 -0
  701. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/oc_connection_parameters.py +0 -0
  702. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/oc_filters.py +0 -0
  703. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/oc_map.py +0 -0
  704. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/__init__.py +0 -0
  705. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/addons.py +0 -0
  706. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/base.py +0 -0
  707. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/cluster_groups.py +0 -0
  708. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/clusters.py +0 -0
  709. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/identity_providers.py +0 -0
  710. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/label_sources.py +0 -0
  711. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/labels.py +0 -0
  712. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/manifests.py +0 -0
  713. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/ocm.py +0 -0
  714. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/products.py +0 -0
  715. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/search_filters.py +0 -0
  716. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/service_log.py +0 -0
  717. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/sre_capability_labels.py +0 -0
  718. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/status_board.py +0 -0
  719. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/subscriptions.py +0 -0
  720. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/syncsets.py +0 -0
  721. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm/upgrades.py +0 -0
  722. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ocm_base_client.py +0 -0
  723. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/openshift_resource.py +0 -0
  724. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/openssl.py +0 -0
  725. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/output.py +0 -0
  726. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/pagerduty_api.py +0 -0
  727. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/parse_dhms_duration.py +0 -0
  728. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/password_validator.py +0 -0
  729. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/prometheus.py +0 -0
  730. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/promotion_state.py +0 -0
  731. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/promtool.py +0 -0
  732. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/quay_api.py +0 -0
  733. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/quay_mirror.py +0 -0
  734. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/raw_github_api.py +0 -0
  735. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/repo_owners.py +0 -0
  736. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/rest_api_base.py +0 -0
  737. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/rosa/__init__.py +0 -0
  738. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/rosa/rosa_cli.py +0 -0
  739. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/rosa/session.py +0 -0
  740. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/ruamel.py +0 -0
  741. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/__init__.py +0 -0
  742. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/desired_state_diff.py +0 -0
  743. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/environment.py +0 -0
  744. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/integration.py +0 -0
  745. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/meta.py +0 -0
  746. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/runner.py +0 -0
  747. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/runtime/sharding.py +0 -0
  748. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/saasherder/__init__.py +0 -0
  749. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/saasherder/interfaces.py +0 -0
  750. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/saasherder/models.py +0 -0
  751. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/saasherder/saasherder.py +0 -0
  752. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/secret_reader.py +0 -0
  753. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/semver_helper.py +0 -0
  754. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/sharding.py +0 -0
  755. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/slo_document_manager.py +0 -0
  756. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/smtp_client.py +0 -0
  757. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/sqs_gateway.py +0 -0
  758. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/state.py +0 -0
  759. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/structs.py +0 -0
  760. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/template.py +0 -0
  761. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terraform/__init__.py +0 -0
  762. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terraform/config.py +0 -0
  763. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terraform/config_client.py +0 -0
  764. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terraform_client.py +0 -0
  765. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript/__init__.py +0 -0
  766. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript/cloudflare_client.py +0 -0
  767. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript/cloudflare_resources.py +0 -0
  768. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript/models.py +0 -0
  769. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript/resources.py +0 -0
  770. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/terrascript_aws_client.py +0 -0
  771. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/three_way_diff_strategy.py +0 -0
  772. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/throughput.py +0 -0
  773. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/unleash/__init__.py +0 -0
  774. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/unleash/client.py +0 -0
  775. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/unleash/server.py +0 -0
  776. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/vault.py +0 -0
  777. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/vaultsecretref.py +0 -0
  778. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/utils/vcs.py +0 -0
  779. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/vault_replication.py +0 -0
  780. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/reconcile/vpc_peerings_validator.py +0 -0
  781. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/__init__.py +0 -0
  782. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/alert_report.py +0 -0
  783. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/app_interface_metrics_exporter.py +0 -0
  784. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/app_interface_reporter.py +0 -0
  785. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/app_sre_tekton_access_reporter.py +0 -0
  786. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/app_sre_tekton_access_revalidation.py +0 -0
  787. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/__init__.py +0 -0
  788. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/container_images_report.py +0 -0
  789. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/__init__.py +0 -0
  790. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/aws.py +0 -0
  791. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/cost_management_api.py +0 -0
  792. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/model.py +0 -0
  793. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/openshift.py +0 -0
  794. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/openshift_cost_optimization.py +0 -0
  795. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/response.py +0 -0
  796. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/util.py +0 -0
  797. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/cost_report/view.py +0 -0
  798. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/erv2.py +0 -0
  799. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/gpg_encrypt.py +0 -0
  800. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/cli_commands/systems_and_tools.py +0 -0
  801. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/glitchtip_access_reporter.py +0 -0
  802. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/glitchtip_access_revalidation.py +0 -0
  803. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/qontract_cli.py +0 -0
  804. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/__init__.py +0 -0
  805. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/commit_distance/__init__.py +0 -0
  806. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/commit_distance/channel.py +0 -0
  807. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/commit_distance/commit_distance.py +0 -0
  808. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/commit_distance/metrics.py +0 -0
  809. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_metrics_exporter/main.py +0 -0
  810. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_promotion_state/__init__.py +0 -0
  811. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/saas_promotion_state/saas_promotion_state.py +0 -0
  812. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/sre_checkpoints/__init__.py +0 -0
  813. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/sre_checkpoints/util.py +0 -0
  814. {qontract_reconcile-0.10.2.dev193 → qontract_reconcile-0.10.2.dev195}/tools/template_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev193
3
+ Version: 0.10.2.dev195
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
@@ -2,7 +2,7 @@ import base64
2
2
  import hashlib
3
3
  import logging
4
4
  from collections import Counter, defaultdict
5
- from collections.abc import Iterable, Mapping, MutableMapping
5
+ from collections.abc import Iterable, Mapping
6
6
  from datetime import timedelta
7
7
  from threading import Lock
8
8
  from typing import Any
@@ -57,6 +57,9 @@ SYNCSET_AND_MANIFEST_ID = "ext-dynatrace-tokens-dtp"
57
57
  DTP_LABEL_SEARCH = sre_capability_label_key("dtp", "%")
58
58
  DTP_TENANT_V2_LABEL = sre_capability_label_key("dtp.v2", "tenant")
59
59
  DTP_SPEC_V2_LABEL = sre_capability_label_key("dtp.v2", "token-spec")
60
+ DTP_V3_PREFIX = sre_capability_label_key("dtp", "v3")
61
+ DTP_V3_SPEC_SUFFIX = "token-spec"
62
+ DTP_V3_TENANT_SUFFIX = "tenant"
60
63
 
61
64
 
62
65
  class ReconcileErrorSummary(Exception):
@@ -110,47 +113,106 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
110
113
  cnt,
111
114
  )
112
115
 
113
- def _parse_ocm_data_to_cluster(self, ocm_cluster: OCMCluster) -> Cluster | None:
114
- dt_tenant = ocm_cluster.labels.get(DTP_TENANT_V2_LABEL)
115
- token_spec_name = ocm_cluster.labels.get(DTP_SPEC_V2_LABEL)
116
- if not dt_tenant or not token_spec_name:
117
- logging.warning(
118
- f"[Missing DTP labels] {ocm_cluster.id=} {ocm_cluster.subscription_id=} {dt_tenant=} {token_spec_name=}"
116
+ def _parse_ocm_data_to_cluster(
117
+ self, ocm_cluster: OCMCluster, dependencies: Dependencies
118
+ ) -> Cluster | None:
119
+ bindings: dict[str, TokenSpecTenantBinding] = {}
120
+ for label in ocm_cluster.labels:
121
+ if not label.startswith(DTP_V3_PREFIX):
122
+ continue
123
+ if not (
124
+ label.endswith(DTP_V3_TENANT_SUFFIX)
125
+ or label.endswith(DTP_V3_SPEC_SUFFIX)
126
+ ):
127
+ logging.warning(
128
+ f"[Bad DTPv3 label key] {label=} {ocm_cluster.id=} {ocm_cluster.subscription_id=}"
129
+ )
130
+ continue
131
+ common_prefix = label.rsplit(".", 1)[0]
132
+ if not (
133
+ tenant := ocm_cluster.labels.get(
134
+ f"{common_prefix}.{DTP_V3_TENANT_SUFFIX}"
135
+ )
136
+ ):
137
+ logging.warning(
138
+ f"[Missing {DTP_V3_TENANT_SUFFIX} for common label prefix {common_prefix=}] {ocm_cluster.id=} {ocm_cluster.subscription_id=}"
139
+ )
140
+ continue
141
+ if not (
142
+ spec_name := ocm_cluster.labels.get(
143
+ f"{common_prefix}.{DTP_V3_SPEC_SUFFIX}"
144
+ )
145
+ ):
146
+ logging.warning(
147
+ f"[Missing {DTP_V3_SPEC_SUFFIX} for common label prefix {common_prefix=}] {ocm_cluster.id=} {ocm_cluster.subscription_id=}"
148
+ )
149
+ continue
150
+ if not (spec := dependencies.token_spec_by_name.get(spec_name)):
151
+ logging.warning(
152
+ f"[Missing spec '{spec_name}'] {ocm_cluster.id=} {ocm_cluster.subscription_id=}"
153
+ )
154
+ continue
155
+ bindings[common_prefix] = TokenSpecTenantBinding(
156
+ spec=spec,
157
+ tenant_id=tenant,
119
158
  )
120
- return None
159
+
160
+ if not bindings:
161
+ # Stay backwards compatible with v2 for now
162
+ dt_tenant = ocm_cluster.labels.get(DTP_TENANT_V2_LABEL)
163
+ token_spec_name = ocm_cluster.labels.get(DTP_SPEC_V2_LABEL)
164
+ token_spec = dependencies.token_spec_by_name.get(token_spec_name or "")
165
+ if not dt_tenant or not token_spec:
166
+ logging.warning(
167
+ f"[Missing DTP labels] {ocm_cluster.id=} {ocm_cluster.subscription_id=} {dt_tenant=} {token_spec_name=}"
168
+ )
169
+ return None
170
+ bindings["v2"] = TokenSpecTenantBinding(
171
+ spec=token_spec,
172
+ tenant_id=dt_tenant,
173
+ )
174
+
175
+ bindings_list = list(bindings.values())
176
+
177
+ for binding in bindings_list:
178
+ if binding.tenant_id not in dependencies.dynatrace_client_by_tenant_id:
179
+ logging.warning(
180
+ f"[{ocm_cluster.id=}] Dynatrace {binding.tenant_id=} does not exist"
181
+ )
182
+ return None
183
+
121
184
  return Cluster(
122
185
  id=ocm_cluster.id,
123
186
  external_id=ocm_cluster.external_id,
124
187
  organization_id=ocm_cluster.organization_id,
125
188
  is_hcp=ocm_cluster.is_hcp,
126
- dt_token_bindings=[
127
- TokenSpecTenantBinding(
128
- spec_name=token_spec_name,
129
- tenant_id=dt_tenant,
130
- )
131
- ],
189
+ dt_token_bindings=bindings_list,
132
190
  )
133
191
 
134
192
  def _filter_clusters(
135
193
  self,
136
194
  clusters: Iterable[Cluster],
137
- token_spec_by_name: Mapping[str, DynatraceTokenProviderTokenSpecV1],
138
195
  ) -> list[Cluster]:
139
196
  filtered_clusters = []
140
197
  for cluster in clusters:
198
+ # Check if any token binding is valid for this cluster
199
+ has_valid_binding = False
141
200
  for token_binding in cluster.dt_token_bindings:
142
- token_spec = token_spec_by_name.get(token_binding.spec_name)
143
- if not token_spec:
144
- logging.debug(
145
- f"[{cluster.id=}] Skipping cluster. {token_binding.spec_name=} does not exist."
146
- )
147
- continue
201
+ token_spec = token_binding.spec
148
202
  if cluster.organization_id in token_spec.ocm_org_ids:
149
- filtered_clusters.append(cluster)
203
+ has_valid_binding = True
204
+ break
150
205
  else:
151
206
  logging.debug(
152
- f"[{cluster.id=}] Skipping cluster for {token_spec.name=}. {cluster.organization_id=} is not defined in {token_spec.ocm_org_ids=}."
207
+ f"[{cluster.id=}] Skipping token binding for {token_spec.name=}. {cluster.organization_id=} is not defined in {token_spec.ocm_org_ids=}."
153
208
  )
209
+
210
+ if has_valid_binding:
211
+ filtered_clusters.append(cluster)
212
+ else:
213
+ logging.debug(
214
+ f"[{cluster.id=}] Skipping cluster as it has no valid token bindings."
215
+ )
154
216
  return filtered_clusters
155
217
 
156
218
  def reconcile(self, dry_run: bool, dependencies: Dependencies) -> None:
@@ -176,13 +238,13 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
176
238
  for ocm_cluster in ocm_clusters
177
239
  if (
178
240
  cluster := self._parse_ocm_data_to_cluster(
179
- ocm_cluster=ocm_cluster
241
+ ocm_cluster=ocm_cluster,
242
+ dependencies=dependencies,
180
243
  )
181
244
  )
182
245
  ]
183
246
  filtered_clusters = self._filter_clusters(
184
247
  clusters=clusters,
185
- token_spec_by_name=dependencies.token_spec_by_name,
186
248
  )
187
249
 
188
250
  existing_dtp_tokens: dict[str, dict[str, str]] = {}
@@ -195,76 +257,21 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
195
257
  len(clusters),
196
258
  )
197
259
  for cluster in filtered_clusters:
198
- for token_binding in cluster.dt_token_bindings:
260
+ with DTPOrganizationErrorRate(
261
+ integration=self.name,
262
+ ocm_env=ocm_env_name,
263
+ org_id=cluster.organization_id,
264
+ ):
199
265
  try:
200
- with DTPOrganizationErrorRate(
201
- integration=self.name,
202
- ocm_env=ocm_env_name,
203
- org_id=cluster.organization_id,
204
- ):
205
- tenant_id = token_binding.tenant_id
206
- if not tenant_id:
207
- _expose_errors_as_service_log(
208
- ocm_client,
209
- cluster_uuid=cluster.external_id,
210
- error=f"Missing label {DTP_TENANT_V2_LABEL}",
211
- )
212
- logging.warning(
213
- f"[{cluster.id=}] Missing value for label {DTP_TENANT_V2_LABEL}"
214
- )
215
- continue
216
- if (
217
- tenant_id
218
- not in dependencies.dynatrace_client_by_tenant_id
219
- ):
220
- _expose_errors_as_service_log(
221
- ocm_client,
222
- cluster_uuid=cluster.external_id,
223
- error=f"Dynatrace tenant {tenant_id} does not exist",
224
- )
225
- logging.warning(
226
- f"[{cluster.id=}] Dynatrace {tenant_id=} does not exist"
227
- )
228
- continue
229
- dt_client = dependencies.dynatrace_client_by_tenant_id[
230
- tenant_id
231
- ]
232
-
233
- token_spec = dependencies.token_spec_by_name.get(
234
- token_binding.spec_name
235
- )
236
- if not token_spec:
237
- _expose_errors_as_service_log(
238
- ocm_client,
239
- cluster_uuid=cluster.external_id,
240
- error=f"Token spec {token_binding.spec_name} does not exist",
241
- )
242
- logging.warning(
243
- f"[{cluster.id=}] Token spec '{token_binding.spec_name}' does not exist"
244
- )
245
- continue
246
- if tenant_id not in existing_dtp_tokens:
247
- existing_dtp_tokens[tenant_id] = (
248
- dt_client.get_token_ids_map_for_name_prefix(
249
- prefix="dtp"
250
- )
251
- )
252
-
253
- """
254
- Note, that we consciously do not parallelize cluster processing
255
- for now. We want to keep stress on OCM at a minimum. The amount
256
- of tagged clusters is currently feasible to be processed sequentially.
257
- """
258
- self.process_cluster(
259
- dry_run=dry_run,
260
- cluster=cluster,
261
- dt_client=dt_client,
262
- ocm_client=ocm_client,
263
- existing_dtp_tokens=existing_dtp_tokens[tenant_id],
264
- tenant_id=tenant_id,
265
- token_spec=token_spec,
266
- ocm_env_name=ocm_env_name,
267
- )
266
+ self.process_cluster(
267
+ dry_run=dry_run,
268
+ cluster=cluster,
269
+ ocm_client=ocm_client,
270
+ existing_dtp_tokens=existing_dtp_tokens,
271
+ ocm_env_name=ocm_env_name,
272
+ dependencies=dependencies,
273
+ )
274
+
268
275
  except Exception as e:
269
276
  unhandled_exceptions.append(
270
277
  f"{ocm_env_name}/{cluster.organization_id}/{cluster.id}: {e}"
@@ -278,34 +285,57 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
278
285
  self,
279
286
  dry_run: bool,
280
287
  cluster: Cluster,
281
- dt_client: DynatraceClient,
282
288
  ocm_client: OCMClient,
283
- existing_dtp_tokens: MutableMapping[str, str],
284
- tenant_id: str,
285
- token_spec: DynatraceTokenProviderTokenSpecV1,
289
+ existing_dtp_tokens: dict[str, dict[str, str]],
286
290
  ocm_env_name: str,
291
+ dependencies: Dependencies,
287
292
  ) -> None:
288
- existing_data = {}
293
+ current_secrets: list[K8sSecret] = []
289
294
  if cluster.is_hcp:
290
- existing_data = self.get_manifest(ocm_client=ocm_client, cluster=cluster)
295
+ data = self.get_manifest(ocm_client=ocm_client, cluster=cluster)
296
+ for binding in cluster.dt_token_bindings:
297
+ current_secrets.extend(
298
+ self.get_secrets_from_manifest(
299
+ manifest=data, token_spec=binding.spec
300
+ )
301
+ )
291
302
  else:
292
- existing_data = self.get_syncset(ocm_client=ocm_client, cluster=cluster)
293
- dt_api_url = f"https://{tenant_id}.live.dynatrace.com/api"
294
- if not existing_data:
303
+ data = self.get_syncset(ocm_client=ocm_client, cluster=cluster)
304
+ for binding in cluster.dt_token_bindings:
305
+ current_secrets.extend(
306
+ self.get_secrets_from_syncset(syncset=data, token_spec=binding.spec)
307
+ )
308
+
309
+ desired_secrets: list[K8sSecret] = []
310
+ has_diff = False
311
+ for binding in cluster.dt_token_bindings:
312
+ dt_client = dependencies.dynatrace_client_by_tenant_id[binding.tenant_id]
313
+ if binding.tenant_id not in existing_dtp_tokens:
314
+ existing_dtp_tokens[binding.tenant_id] = (
315
+ dt_client.get_token_ids_map_for_name_prefix(prefix="dtp")
316
+ )
317
+ cur_diff, cur_desired_secrets = self.generate_desired(
318
+ dry_run=dry_run,
319
+ current_k8s_secrets=current_secrets,
320
+ desired_spec=binding.spec,
321
+ existing_dtp_tokens=existing_dtp_tokens[binding.tenant_id],
322
+ dt_client=dt_client,
323
+ cluster_uuid=cluster.external_id,
324
+ dt_tenant_id=binding.tenant_id,
325
+ ocm_env_name=ocm_env_name,
326
+ )
327
+ desired_secrets.extend(cur_desired_secrets)
328
+ has_diff |= cur_diff
329
+
330
+ if not current_secrets:
295
331
  if not dry_run:
296
332
  try:
297
- k8s_secrets = self.construct_secrets(
298
- token_spec=token_spec,
299
- dt_client=dt_client,
300
- cluster_uuid=cluster.external_id,
301
- )
302
333
  if cluster.is_hcp:
303
334
  ocm_client.create_manifest(
304
335
  cluster_id=cluster.id,
305
336
  manifest_map=self.construct_manifest(
306
337
  with_id=True,
307
- dt_api_url=dt_api_url,
308
- secrets=k8s_secrets,
338
+ secrets=desired_secrets,
309
339
  ),
310
340
  )
311
341
  else:
@@ -313,72 +343,47 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
313
343
  cluster_id=cluster.id,
314
344
  syncset_map=self.construct_syncset(
315
345
  with_id=True,
316
- dt_api_url=dt_api_url,
317
- secrets=k8s_secrets,
346
+ secrets=desired_secrets,
318
347
  ),
319
348
  )
320
349
  except Exception as e:
321
350
  _expose_errors_as_service_log(
322
351
  ocm_client,
323
352
  cluster.external_id,
324
- f"DTP can't create {token_spec.name=} {e.args!s}",
353
+ f"DTP can't create {SYNCSET_AND_MANIFEST_ID} due to {e.args!s}",
325
354
  )
326
- logging.info(
327
- f"{token_spec.name=} created in {dt_api_url} for {cluster.id=}."
328
- )
329
355
  logging.info(f"{SYNCSET_AND_MANIFEST_ID} created for {cluster.id=}.")
330
- else:
331
- current_k8s_secrets: list[K8sSecret] = []
332
- if cluster.is_hcp:
333
- current_k8s_secrets = self.get_secrets_from_manifest(
334
- manifest=existing_data, token_spec=token_spec
335
- )
336
- else:
337
- current_k8s_secrets = self.get_secrets_from_syncset(
338
- syncset=existing_data, token_spec=token_spec
339
- )
340
- has_diff, desired_secrets = self.generate_desired(
341
- dry_run=dry_run,
342
- current_k8s_secrets=current_k8s_secrets,
343
- desired_spec=token_spec,
344
- existing_dtp_tokens=existing_dtp_tokens,
345
- dt_client=dt_client,
346
- cluster_uuid=cluster.external_id,
347
- dt_tenant_id=tenant_id,
348
- ocm_env_name=ocm_env_name,
349
- )
350
- if has_diff:
351
- if not dry_run:
352
- try:
353
- if cluster.is_hcp:
354
- ocm_client.patch_manifest(
355
- cluster_id=cluster.id,
356
- manifest_id=SYNCSET_AND_MANIFEST_ID,
357
- manifest_map=self.construct_manifest(
358
- dt_api_url=dt_api_url,
359
- secrets=desired_secrets,
360
- with_id=False,
361
- ),
362
- )
363
- else:
364
- ocm_client.patch_syncset(
365
- cluster_id=cluster.id,
366
- syncset_id=SYNCSET_AND_MANIFEST_ID,
367
- syncset_map=self.construct_syncset(
368
- dt_api_url=dt_api_url,
369
- secrets=desired_secrets,
370
- with_id=False,
371
- ),
372
- )
373
- except Exception as e:
374
- _expose_errors_as_service_log(
375
- ocm_client,
376
- cluster.external_id,
377
- f"DTP can't patch {token_spec.name=} for {SYNCSET_AND_MANIFEST_ID} due to {e.args!s}",
356
+ elif has_diff:
357
+ if not dry_run:
358
+ try:
359
+ if cluster.is_hcp:
360
+ ocm_client.patch_manifest(
361
+ cluster_id=cluster.id,
362
+ manifest_id=SYNCSET_AND_MANIFEST_ID,
363
+ manifest_map=self.construct_manifest(
364
+ secrets=desired_secrets,
365
+ with_id=False,
366
+ ),
378
367
  )
379
- logging.info(
380
- f"Patched {token_spec.name=} for {SYNCSET_AND_MANIFEST_ID} in {cluster.id=}."
381
- )
368
+ else:
369
+ ocm_client.patch_syncset(
370
+ cluster_id=cluster.id,
371
+ syncset_id=SYNCSET_AND_MANIFEST_ID,
372
+ syncset_map=self.construct_syncset(
373
+ secrets=desired_secrets,
374
+ with_id=False,
375
+ ),
376
+ )
377
+ except Exception as e:
378
+ _expose_errors_as_service_log(
379
+ ocm_client,
380
+ cluster.external_id,
381
+ f"DTP can't patch {SYNCSET_AND_MANIFEST_ID} due to {e.args!s}",
382
+ )
383
+ logging.info(f"Patched {SYNCSET_AND_MANIFEST_ID} in {cluster.id=}.")
384
+
385
+ def dt_api_url(self, tenant_id: str) -> str:
386
+ return f"https://{tenant_id}.live.dynatrace.com/api"
382
387
 
383
388
  def scopes_hash(self, scopes: Iterable[str], length: int) -> str:
384
389
  m = hashlib.sha256()
@@ -428,7 +433,7 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
428
433
  dry_run: bool,
429
434
  current_k8s_secrets: Iterable[K8sSecret],
430
435
  desired_spec: DynatraceTokenProviderTokenSpecV1,
431
- existing_dtp_tokens: MutableMapping[str, str],
436
+ existing_dtp_tokens: dict[str, str],
432
437
  dt_client: DynatraceClient,
433
438
  cluster_uuid: str,
434
439
  ocm_env_name: str,
@@ -475,6 +480,7 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
475
480
  secret_name=secret.name,
476
481
  namespace_name=secret.namespace,
477
482
  tokens=desired_tokens,
483
+ dt_api_url=self.dt_api_url(tenant_id=dt_tenant_id),
478
484
  )
479
485
  )
480
486
 
@@ -500,6 +506,7 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
500
506
  self,
501
507
  token_spec: DynatraceTokenProviderTokenSpecV1,
502
508
  dt_client: DynatraceClient,
509
+ dt_api_url: str,
503
510
  cluster_uuid: str,
504
511
  ) -> list[K8sSecret]:
505
512
  secrets: list[K8sSecret] = []
@@ -513,6 +520,7 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
513
520
  secret_name=secret.name,
514
521
  namespace_name=secret.namespace,
515
522
  tokens=new_tokens,
523
+ dt_api_url=dt_api_url,
516
524
  )
517
525
  )
518
526
  return secrets
@@ -562,11 +570,13 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
562
570
  secret_key=token.key_name_in_secret,
563
571
  )
564
572
  )
573
+ dt_api_url = self.base64_decode(secret_data.get("apiUrl", ""))
565
574
  secrets.append(
566
575
  K8sSecret(
567
576
  secret_name=secret.name,
568
577
  namespace_name=secret.namespace,
569
578
  tokens=tokens,
579
+ dt_api_url=dt_api_url,
570
580
  )
571
581
  )
572
582
  return secrets
@@ -574,6 +584,8 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
574
584
  def get_secrets_from_syncset(
575
585
  self, syncset: Mapping[str, Any], token_spec: DynatraceTokenProviderTokenSpecV1
576
586
  ) -> list[K8sSecret]:
587
+ if not syncset:
588
+ return []
577
589
  secret_data_by_name = {
578
590
  resource.get("metadata", {}).get("name"): resource.get("data", {})
579
591
  for resource in syncset.get("resources", [])
@@ -586,6 +598,8 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
586
598
  def get_secrets_from_manifest(
587
599
  self, manifest: Mapping[str, Any], token_spec: DynatraceTokenProviderTokenSpecV1
588
600
  ) -> list[K8sSecret]:
601
+ if not manifest:
602
+ return []
589
603
  secret_data_by_name = {
590
604
  resource.get("metadata", {}).get("name"): resource.get("data", {})
591
605
  for resource in manifest.get("workloads", [])
@@ -598,12 +612,11 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
598
612
  def construct_secrets_data(
599
613
  self,
600
614
  secrets: Iterable[K8sSecret],
601
- dt_api_url: str,
602
615
  ) -> list[dict[str, Any]]:
603
616
  secrets_data: list[dict[str, Any]] = []
604
617
  for secret in secrets:
605
618
  data: dict[str, str] = {
606
- "apiUrl": f"{self.base64_encode_str(dt_api_url)}",
619
+ "apiUrl": f"{self.base64_encode_str(secret.dt_api_url)}",
607
620
  }
608
621
  for token in secret.tokens:
609
622
  data[token.secret_key] = f"{self.base64_encode_str(token.token)}"
@@ -626,25 +639,19 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
626
639
  def construct_base_syncset(
627
640
  self,
628
641
  secrets: Iterable[K8sSecret],
629
- dt_api_url: str,
630
642
  ) -> dict[str, Any]:
631
643
  return {
632
644
  "kind": "SyncSet",
633
- "resources": self.construct_secrets_data(
634
- secrets=secrets, dt_api_url=dt_api_url
635
- ),
645
+ "resources": self.construct_secrets_data(secrets=secrets),
636
646
  }
637
647
 
638
648
  def construct_base_manifest(
639
649
  self,
640
650
  secrets: Iterable[K8sSecret],
641
- dt_api_url: str,
642
651
  ) -> dict[str, Any]:
643
652
  return {
644
653
  "kind": "Manifest",
645
- "workloads": self.construct_secrets_data(
646
- secrets=secrets, dt_api_url=dt_api_url
647
- ),
654
+ "workloads": self.construct_secrets_data(secrets=secrets),
648
655
  }
649
656
 
650
657
  def base64_decode(self, encoded: str) -> str:
@@ -659,12 +666,10 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
659
666
  def construct_syncset(
660
667
  self,
661
668
  secrets: Iterable[K8sSecret],
662
- dt_api_url: str,
663
669
  with_id: bool,
664
670
  ) -> dict[str, Any]:
665
671
  syncset = self.construct_base_syncset(
666
672
  secrets=secrets,
667
- dt_api_url=dt_api_url,
668
673
  )
669
674
  if with_id:
670
675
  syncset["id"] = SYNCSET_AND_MANIFEST_ID
@@ -673,12 +678,10 @@ class DynatraceTokenProviderIntegration(QontractReconcileIntegration[NoParams]):
673
678
  def construct_manifest(
674
679
  self,
675
680
  secrets: Iterable[K8sSecret],
676
- dt_api_url: str,
677
681
  with_id: bool,
678
682
  ) -> dict[str, Any]:
679
683
  manifest = self.construct_base_manifest(
680
684
  secrets=secrets,
681
- dt_api_url=dt_api_url,
682
685
  )
683
686
  if with_id:
684
687
  manifest["id"] = SYNCSET_AND_MANIFEST_ID
@@ -1,5 +1,9 @@
1
1
  from pydantic import BaseModel
2
2
 
3
+ from reconcile.gql_definitions.dynatrace_token_provider.token_specs import (
4
+ DynatraceTokenProviderTokenSpecV1,
5
+ )
6
+
3
7
 
4
8
  class DynatraceAPIToken(BaseModel):
5
9
  token: str
@@ -11,11 +15,12 @@ class DynatraceAPIToken(BaseModel):
11
15
  class K8sSecret(BaseModel):
12
16
  namespace_name: str
13
17
  secret_name: str
18
+ dt_api_url: str
14
19
  tokens: list[DynatraceAPIToken]
15
20
 
16
21
 
17
22
  class TokenSpecTenantBinding(BaseModel):
18
- spec_name: str
23
+ spec: DynatraceTokenProviderTokenSpecV1
19
24
  tenant_id: str
20
25
 
21
26
 
@@ -463,7 +463,7 @@ class SlackApi:
463
463
  for r in result[result_key]:
464
464
  results[r["id"]] = r
465
465
 
466
- cursor = result["response_metadata"]["next_cursor"]
466
+ cursor = (result.get("response_metadata") or {}).get("next_cursor") or ""
467
467
 
468
468
  if not cursor:
469
469
  break
@@ -517,7 +517,7 @@ class SlackApi:
517
517
  if not keep_fetching:
518
518
  break
519
519
 
520
- cursor = response["response_metadata"]["next_cursor"]
520
+ cursor = (response.get("response_metadata") or {}).get("next_cursor") or ""
521
521
  if not cursor:
522
522
  break
523
523