qontract-reconcile 0.10.1rc1202__py3-none-any.whl → 0.10.2.dev2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qontract_reconcile-0.10.2.dev2.dist-info/METADATA +500 -0
- {qontract_reconcile-0.10.1rc1202.dist-info → qontract_reconcile-0.10.2.dev2.dist-info}/RECORD +12 -130
- {qontract_reconcile-0.10.1rc1202.dist-info → qontract_reconcile-0.10.2.dev2.dist-info}/WHEEL +1 -2
- {qontract_reconcile-0.10.1rc1202.dist-info → qontract_reconcile-0.10.2.dev2.dist-info}/entry_points.txt +1 -0
- reconcile/aws_account_manager/README.md +5 -0
- reconcile/change_owners/README.md +34 -0
- reconcile/glitchtip/README.md +150 -0
- reconcile/gql_definitions/introspection.json +51176 -0
- reconcile/run_integration.py +293 -0
- reconcile/utils/binary.py +2 -2
- reconcile/utils/mr/README.md +198 -0
- reconcile/utils/oc_map.py +2 -2
- tools/qontract_cli.py +0 -0
- qontract_reconcile-0.10.1rc1202.dist-info/METADATA +0 -64
- qontract_reconcile-0.10.1rc1202.dist-info/top_level.txt +0 -3
- reconcile/test/__init__.py +0 -0
- reconcile/test/conftest.py +0 -157
- reconcile/test/fixtures.py +0 -24
- reconcile/test/saas_auto_promotions_manager/__init__.py +0 -0
- reconcile/test/saas_auto_promotions_manager/conftest.py +0 -170
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/__init__.py +0 -0
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/__init__.py +0 -0
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/conftest.py +0 -115
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/data_keys.py +0 -19
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_desired_state.py +0 -66
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_merge_request_manager.py +0 -86
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_mr_parser.py +0 -352
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_reconciler.py +0 -494
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/__init__.py +0 -0
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/conftest.py +0 -25
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_multiple_namespaces.py +0 -37
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_single_namespace.py +0 -81
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_single_target.py +0 -61
- reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_json_path_selector.py +0 -74
- reconcile/test/saas_auto_promotions_manager/test_integration_test.py +0 -52
- reconcile/test/saas_auto_promotions_manager/utils/__init__.py +0 -0
- reconcile/test/test_acs_notifiers.py +0 -393
- reconcile/test/test_acs_policies.py +0 -497
- reconcile/test/test_acs_rbac.py +0 -865
- reconcile/test/test_aggregated_list.py +0 -237
- reconcile/test/test_amtool.py +0 -37
- reconcile/test/test_aws_ami_cleanup.py +0 -230
- reconcile/test/test_aws_ami_share.py +0 -68
- reconcile/test/test_aws_cloudwatch_log_retention.py +0 -434
- reconcile/test/test_aws_iam_keys.py +0 -70
- reconcile/test/test_aws_iam_password_reset.py +0 -35
- reconcile/test/test_aws_support_cases_sos.py +0 -23
- reconcile/test/test_checkpoint.py +0 -178
- reconcile/test/test_cli.py +0 -41
- reconcile/test/test_closedbox_endpoint_monitoring.py +0 -207
- reconcile/test/test_dashdotdb_dora.py +0 -245
- reconcile/test/test_database_access_manager.py +0 -660
- reconcile/test/test_deadmanssnitch.py +0 -290
- reconcile/test/test_gabi_authorized_users.py +0 -72
- reconcile/test/test_gcr_mirror.py +0 -14
- reconcile/test/test_github_org.py +0 -156
- reconcile/test/test_github_repo_invites.py +0 -119
- reconcile/test/test_gitlab_housekeeping.py +0 -333
- reconcile/test/test_gitlab_labeler.py +0 -126
- reconcile/test/test_gitlab_members.py +0 -219
- reconcile/test/test_gitlab_permissions.py +0 -164
- reconcile/test/test_instrumented_wrappers.py +0 -18
- reconcile/test/test_integrations_manager.py +0 -1252
- reconcile/test/test_jenkins_worker_fleets.py +0 -57
- reconcile/test/test_jira_permissions_validator.py +0 -519
- reconcile/test/test_jump_host.py +0 -114
- reconcile/test/test_ldap_users.py +0 -125
- reconcile/test/test_make.py +0 -28
- reconcile/test/test_ocm_additional_routers.py +0 -133
- reconcile/test/test_ocm_clusters.py +0 -798
- reconcile/test/test_ocm_clusters_manifest_updates.py +0 -87
- reconcile/test/test_ocm_machine_pools.py +0 -1103
- reconcile/test/test_ocm_update_recommended_version.py +0 -145
- reconcile/test/test_ocm_upgrade_scheduler_org_updater.py +0 -125
- reconcile/test/test_openshift_base.py +0 -1269
- reconcile/test/test_openshift_cluster_bots.py +0 -240
- reconcile/test/test_openshift_namespace_labels.py +0 -344
- reconcile/test/test_openshift_namespaces.py +0 -256
- reconcile/test/test_openshift_resource.py +0 -443
- reconcile/test/test_openshift_resources_base.py +0 -478
- reconcile/test/test_openshift_saas_deploy.py +0 -188
- reconcile/test/test_openshift_saas_deploy_change_tester.py +0 -308
- reconcile/test/test_openshift_saas_deploy_trigger_cleaner.py +0 -65
- reconcile/test/test_openshift_serviceaccount_tokens.py +0 -282
- reconcile/test/test_openshift_tekton_resources.py +0 -265
- reconcile/test/test_openshift_upgrade_watcher.py +0 -223
- reconcile/test/test_prometheus_rules_tester.py +0 -151
- reconcile/test/test_quay_membership.py +0 -86
- reconcile/test/test_quay_mirror.py +0 -172
- reconcile/test/test_quay_mirror_org.py +0 -82
- reconcile/test/test_quay_repos.py +0 -59
- reconcile/test/test_queries.py +0 -53
- reconcile/test/test_repo_owners.py +0 -47
- reconcile/test/test_requests_sender.py +0 -139
- reconcile/test/test_saasherder.py +0 -1611
- reconcile/test/test_saasherder_allowed_secret_paths.py +0 -125
- reconcile/test/test_secret_reader.py +0 -153
- reconcile/test/test_slack_base.py +0 -183
- reconcile/test/test_slack_usergroups.py +0 -785
- reconcile/test/test_sql_query.py +0 -316
- reconcile/test/test_status_board.py +0 -258
- reconcile/test/test_terraform_aws_route53.py +0 -29
- reconcile/test/test_terraform_cloudflare_dns.py +0 -117
- reconcile/test/test_terraform_cloudflare_resources.py +0 -408
- reconcile/test/test_terraform_cloudflare_users.py +0 -747
- reconcile/test/test_terraform_repo.py +0 -440
- reconcile/test/test_terraform_resources.py +0 -519
- reconcile/test/test_terraform_tgw_attachments.py +0 -1295
- reconcile/test/test_terraform_users.py +0 -152
- reconcile/test/test_terraform_vpc_peerings.py +0 -576
- reconcile/test/test_terraform_vpc_peerings_build_desired_state.py +0 -1434
- reconcile/test/test_three_way_diff_strategy.py +0 -131
- reconcile/test/test_utils_jinja2.py +0 -130
- reconcile/test/test_vault_replication.py +0 -534
- reconcile/test/test_vault_utils.py +0 -47
- reconcile/test/test_version_bump.py +0 -18
- reconcile/test/test_vpc_peerings_validator.py +0 -194
- reconcile/test/test_wrong_region.py +0 -78
- release/__init__.py +0 -0
- release/test_version.py +0 -50
- release/version.py +0 -104
- tools/cli_commands/test/__init__.py +0 -0
- tools/cli_commands/test/conftest.py +0 -332
- tools/cli_commands/test/test_aws_cost_report.py +0 -258
- tools/cli_commands/test/test_cost_management_api.py +0 -326
- tools/cli_commands/test/test_gpg_encrypt.py +0 -235
- tools/cli_commands/test/test_openshift_cost_optimization_report.py +0 -255
- tools/cli_commands/test/test_openshift_cost_report.py +0 -295
- tools/cli_commands/test/test_util.py +0 -70
- tools/test/__init__.py +0 -0
- tools/test/conftest.py +0 -77
- tools/test/test_app_interface_metrics_exporter.py +0 -48
- tools/test/test_erv2.py +0 -80
- tools/test/test_get_container_images.py +0 -230
- tools/test/test_qontract_cli.py +0 -197
- tools/test/test_saas_promotion_state.py +0 -187
- tools/test/test_sd_app_sre_alert_report.py +0 -74
- tools/test/test_sre_checkpoints.py +0 -79
{qontract_reconcile-0.10.1rc1202.dist-info → qontract_reconcile-0.10.2.dev2.dist-info}/RECORD
RENAMED
@@ -99,6 +99,7 @@ reconcile/query_validator.py,sha256=MSh5pKLBksws4AqfuvT8nrIGucIbqX-IOzYyPYTLO7k,
|
|
99
99
|
reconcile/requests_sender.py,sha256=914iluuF4UVgG3VyxxtnHOu4yf6YKS2fIy6PViSsFTQ,3875
|
100
100
|
reconcile/resource_scraper.py,sha256=znXCHrU7YwPfKuxGBiUrV7T1tYtn4vlz9qmZlfy6Flg,2307
|
101
101
|
reconcile/resource_template_tester.py,sha256=DsKvBuNLPxm4Fa-e1YHHySnhThm5i_j-nF3G4b02Mz0,2416
|
102
|
+
reconcile/run_integration.py,sha256=qGKn1_GxSP9JMvIfPT2qZohgnu6t61zvNAH2WPv2xO8,9700
|
102
103
|
reconcile/saas_file_validator.py,sha256=tyvFYU6lnkfDYIkAIr5pWqSvO5Yc6TagZ-quJYD2dtI,2547
|
103
104
|
reconcile/sendgrid_teammates.py,sha256=oO8QbLb4s1o8A6CGiCagN9CmS05BSS_WLztuY0Ym9D8,4773
|
104
105
|
reconcile/service_dependencies.py,sha256=PMKP9vc6oL-78rzyF_RE8DzLSQMSqN8vCqt9sWpBLAM,4470
|
@@ -138,6 +139,7 @@ reconcile/aus/version_gates/handler.py,sha256=S_isQPYHbG4DERiUEvQBZ6ngiFX3uMmATA
|
|
138
139
|
reconcile/aus/version_gates/ingress_gate_handler.py,sha256=ZCtyggBzzcb0prtdbMpJsVkj5leYN-vS7srM9vbq9xo,1096
|
139
140
|
reconcile/aus/version_gates/ocp_gate_handler.py,sha256=RW1ppDaCZXVegV9AzzqYXxDUu_Z_7d43Z5h2Pk_piKc,716
|
140
141
|
reconcile/aus/version_gates/sts_version_gate_handler.py,sha256=swwwz0YyvrEBf_InqrRRBCt2QzHYNvvq8jz9aYwElh4,3663
|
142
|
+
reconcile/aws_account_manager/README.md,sha256=_XFM3GZNHUzv--e_navqJuaUWpjC6QrHfulreHynFf0,262
|
141
143
|
reconcile/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
142
144
|
reconcile/aws_account_manager/integration.py,sha256=WOE_mi45pvJW4TNKh4mCGSViJiElH--T4Wg0CLMYxpY,14988
|
143
145
|
reconcile/aws_account_manager/merge_request_manager.py,sha256=fz9s1VrBGHi0MdUR9D1Pqo7Q2lHlzbgzgYEE4kEYm9s,3950
|
@@ -158,6 +160,7 @@ reconcile/aws_version_sync/utils.py,sha256=x-45QT7zAwdNvCg7w_qJNwLaksFcfz1_6KQoD
|
|
158
160
|
reconcile/aws_version_sync/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
159
161
|
reconcile/aws_version_sync/merge_request_manager/merge_request.py,sha256=2FbqLLdqxycWNvX1eNbwMjWSVBb7q0p-8t5Db0m7b4Q,4842
|
160
162
|
reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py,sha256=3bRpw7DluiYw3daRg0yAyCSGYf39Ru0d8lUjoepDSpU,5525
|
163
|
+
reconcile/change_owners/README.md,sha256=NEXVw4SioTWTGo9elSQUjqY10RIUoisl4zkzEBvly8s,3946
|
161
164
|
reconcile/change_owners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
165
|
reconcile/change_owners/approver.py,sha256=Z3_11vnK2WNOxjEEXVDh0224-_-qbt9d6mBeVE-7fsc,2259
|
163
166
|
reconcile/change_owners/bundle.py,sha256=h30fU-JmLH5a-rCAovpzTeTkkkgZztsZ5A2raee0YuU,5355
|
@@ -203,6 +206,7 @@ reconcile/external_resources/model.py,sha256=YJylbAhetN9szpLUFd9jFqxCRMvSWXVxSC9
|
|
203
206
|
reconcile/external_resources/reconciler.py,sha256=K9QvbQCIOCuOHnPIxQE_P_jFtrkF3dGo8d_cCCh08Ys,8973
|
204
207
|
reconcile/external_resources/secrets_sync.py,sha256=H8JfI3JW1XEau1jqv15AhYg49mCZeHwZmqMzMv_6tFc,16344
|
205
208
|
reconcile/external_resources/state.py,sha256=7DBzVhIvYqeZWrWapmU_bXXftTQa_m-EOwJFVlIFnDw,9583
|
209
|
+
reconcile/glitchtip/README.md,sha256=rfXT6jNP9khJW65jL7I2PgoxvxgcGGuJF8NpbzufEQ4,4335
|
206
210
|
reconcile/glitchtip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
207
211
|
reconcile/glitchtip/integration.py,sha256=XtewM9nfTPLnPSpYebP50GrveYOnhTvKNq3seSvL6u8,8343
|
208
212
|
reconcile/glitchtip/reconciler.py,sha256=nUvDv7qG1ly0cA16MmlL6NV71yl1mJYLT2mui7lmi0Y,12402
|
@@ -211,6 +215,7 @@ reconcile/glitchtip_project_alerts/integration.py,sha256=9faPhmSu5scZ3K3H2IOH31_
|
|
211
215
|
reconcile/glitchtip_project_dsn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
212
216
|
reconcile/glitchtip_project_dsn/integration.py,sha256=2iugub-kHYkHNK33n0v9_TeWonuxCPah_VkoTPvaajE,8077
|
213
217
|
reconcile/gql_definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
218
|
+
reconcile/gql_definitions/introspection.json,sha256=_tF-lsViLqXOEGKw-asMqRV94XhmFHuaTxqovWq87gw,2215501
|
214
219
|
reconcile/gql_definitions/acs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
215
220
|
reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoBOsmNIYLRpMbx1io5o,2181
|
216
221
|
reconcile/gql_definitions/acs/acs_policies.py,sha256=bN5i4mks10Z23KJSj7jqp966Osq2dps4d-sPH9gjxEA,7008
|
@@ -494,109 +499,6 @@ reconcile/terraform_vpc_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
494
499
|
reconcile/terraform_vpc_resources/integration.py,sha256=yEMQFNMHDkqIQOIw1XeUY02xWQKrfoVayhmIynJKQvw,8183
|
495
500
|
reconcile/terraform_vpc_resources/merge_request.py,sha256=loRymUigCIvaaT0s_NzktZchh-DGRQnCICdBSCAcFPY,1503
|
496
501
|
reconcile/terraform_vpc_resources/merge_request_manager.py,sha256=Vj2nuQbQyrL4q_il1My-bLxYNh_r3YXqX45P8fwtP6Q,3259
|
497
|
-
reconcile/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
498
|
-
reconcile/test/conftest.py,sha256=_uZRPocbt4-BJ8Lsb9BmjeIPjbdu4SH3gxvXpGEdyFc,4284
|
499
|
-
reconcile/test/fixtures.py,sha256=HjcdF4RWMwdXCsmGljFnPjfzqsHG8_3Zas_W7Y5BSDE,586
|
500
|
-
reconcile/test/test_acs_notifiers.py,sha256=xf3WL6q6V7KQdTVSx6YI-pa4yzOX3mkvIJomgPUc3Mw,12746
|
501
|
-
reconcile/test/test_acs_policies.py,sha256=8pwnXpAO-0OI-6oubjf_oPPlpZjVldeZfJJ9uhsNMWM,17579
|
502
|
-
reconcile/test/test_acs_rbac.py,sha256=lvNd8GY0-GHzcOdOn13QWdrqbBXXKzNT7EEDHNH7cjM,28272
|
503
|
-
reconcile/test/test_aggregated_list.py,sha256=iiWitQuNYC58aimWaiBoE4NROHjr1NCgQ91MnHEG_Ro,6412
|
504
|
-
reconcile/test/test_amtool.py,sha256=vxRhGieeydMBOb9UI2ziMHjJa8puMeGNsUhGhy-yMnk,1032
|
505
|
-
reconcile/test/test_aws_ami_cleanup.py,sha256=s9E82ENpKrzsy9_KTj0tbQN2MVXeacq-_Ztw7FWbq7Q,6603
|
506
|
-
reconcile/test/test_aws_ami_share.py,sha256=eSITdDoXs8mMY7P2lFxAX2DA0sJ9RW6D1tG8Rek0gLE,1981
|
507
|
-
reconcile/test/test_aws_cloudwatch_log_retention.py,sha256=fOUq_vJldGPjXKBdRQsSv4zFz_qenVtRKJFKpbz8BlA,13712
|
508
|
-
reconcile/test/test_aws_iam_keys.py,sha256=MfE9EvItyPNPAl5QaLlJFUvvrZFiar518TM2wWNjJn4,1829
|
509
|
-
reconcile/test/test_aws_iam_password_reset.py,sha256=fnkqB90adR7W4L4saNdrtIiwnQB9bXgqJ9R1CKxjSnk,860
|
510
|
-
reconcile/test/test_aws_support_cases_sos.py,sha256=MLgPHTv8uZhh2iINoBV38jiweEqFhqGg7WYOveXkIXY,837
|
511
|
-
reconcile/test/test_checkpoint.py,sha256=sbDtqTbfw5yMZ_mCltMXxkyyGueVLGUjTDtcWhPP7yA,5340
|
512
|
-
reconcile/test/test_cli.py,sha256=qx_iBwh4Z-YkK3sbjK1wEziPTgn060EN-baf9DNvR3k,1096
|
513
|
-
reconcile/test/test_closedbox_endpoint_monitoring.py,sha256=I0lSFOUQ5dBxjKeq1Dg3E4gWqoZ9d26d5pQmsLqWLPc,7166
|
514
|
-
reconcile/test/test_dashdotdb_dora.py,sha256=MfHGAsX2eSQSvBVt9_1Sah3aQKNJBXA9Iu86X0NWD6c,7705
|
515
|
-
reconcile/test/test_database_access_manager.py,sha256=n37cNan0dcMymWJbpsKN9HaCQ0vzXDn5PZencEH7e98,19592
|
516
|
-
reconcile/test/test_deadmanssnitch.py,sha256=YAf8wlZoEC60Ul7UA6Y6XqwnZ1yqf07J15ABqeLpqW4,9835
|
517
|
-
reconcile/test/test_gabi_authorized_users.py,sha256=6XnV5Q9inxP81ktGMVKyWucjBTUj8Imy2L0HG3YHyUE,2496
|
518
|
-
reconcile/test/test_gcr_mirror.py,sha256=A0y8auKZzr62-mGoxSQ__JnN0-ijZUltzjwR5miBgso,490
|
519
|
-
reconcile/test/test_github_org.py,sha256=aGWeMhkz1fjogvaAQGjemSKR201L5gEZZOe0iMQqj-Y,4487
|
520
|
-
reconcile/test/test_github_repo_invites.py,sha256=WrPn5ROAoJYK0ihzlZcFR0V9Pu2HcMs13I6nazf7hq4,3307
|
521
|
-
reconcile/test/test_gitlab_housekeeping.py,sha256=ScD9Tgf9OOgGfAFfTy6Kn2222l2wH_A3gMRKdpvoWe0,10053
|
522
|
-
reconcile/test/test_gitlab_labeler.py,sha256=PmYXiU2g0_O5OTdMGPzdeqBAfat92U9bhjjfeyiGSmQ,4336
|
523
|
-
reconcile/test/test_gitlab_members.py,sha256=bupl1dsLor-913LGYCuRtJMKqDsXo_d_2nbtDe6B1Us,7016
|
524
|
-
reconcile/test/test_gitlab_permissions.py,sha256=aMf5SUeVp-aQ1bWGQPQLYa85auzRlyfZVTWqyybJ6mo,5850
|
525
|
-
reconcile/test/test_instrumented_wrappers.py,sha256=CZzhnQH0c4i7-Rxjg7-0dfFMvVPegLHL46z5NHOOCwo,608
|
526
|
-
reconcile/test/test_integrations_manager.py,sha256=xpyQAVz57wAbovrcQzAeuyq8VzdItUyW2d2kp1WW_5c,38184
|
527
|
-
reconcile/test/test_jenkins_worker_fleets.py,sha256=o1jlT7OBBSgu0M3iI4xMdz_x6SciF7yhNBpLk5gTJfg,2361
|
528
|
-
reconcile/test/test_jira_permissions_validator.py,sha256=OA3hcnsH0eYXA4khJO6d1PE7zo2f0vYg73PrCqTzkyo,17646
|
529
|
-
reconcile/test/test_jump_host.py,sha256=EeHMhT5rTZgx__R_29mtCBWt-NZCcKsQ6CR-B3xmCps,3284
|
530
|
-
reconcile/test/test_ldap_users.py,sha256=_clylG-Qfes8yNb9T3CMaDQovLwyVZlTfJgRtGHARgE,4080
|
531
|
-
reconcile/test/test_make.py,sha256=zTdjgq-3idFlec_0qJenk9wWw0QMLvSpJfPsptXmync,677
|
532
|
-
reconcile/test/test_ocm_additional_routers.py,sha256=vX_O5js8PDTXU2mLD89tcMBqdpDKRNFWwxBB_UKP3Cc,4206
|
533
|
-
reconcile/test/test_ocm_clusters.py,sha256=QDieDrP7pjH7jw5pFcZkUGx1lUhd2Cdg8BM0bRnhhI8,24322
|
534
|
-
reconcile/test/test_ocm_clusters_manifest_updates.py,sha256=jFRVfc5jby1kI2x_gT6wcqPPgkav1et9wZH6JqQbNSY,3278
|
535
|
-
reconcile/test/test_ocm_machine_pools.py,sha256=_1tG-nF8edU29ONDUGXtR3J2-E8FWv-PI0Y9gb8HQfY,29697
|
536
|
-
reconcile/test/test_ocm_update_recommended_version.py,sha256=01oONkMewUUMrLFwlsUKTuvzL9XEeMk5_kBkYGE-u4Q,4318
|
537
|
-
reconcile/test/test_ocm_upgrade_scheduler_org_updater.py,sha256=V91g2XQMa2nvKwkLVWkiPwNL6pMQE16s4jO0oXJ6wdk,4330
|
538
|
-
reconcile/test/test_openshift_base.py,sha256=SX8URKF8Kn21nA-qcmICSUaZKHuc5YTgPzfcb2rHvk8,36385
|
539
|
-
reconcile/test/test_openshift_cluster_bots.py,sha256=sSGLgxnXO82xcfTFVNJzsrDuNfObwAR_-AkDe4B_4WE,7983
|
540
|
-
reconcile/test/test_openshift_namespace_labels.py,sha256=i4S5QJFxMRjLkwi3iO6A-uhjgZ1QZb4jYXwB696m82Y,12070
|
541
|
-
reconcile/test/test_openshift_namespaces.py,sha256=HmRnCE5EnFt3MYceVEFHmk8wWRtCrxu2AFGFkY9pdyA,9214
|
542
|
-
reconcile/test/test_openshift_resource.py,sha256=0HlknH5SR3H6YXyoaKuk-4Trii04LSowM_pbsGsucjA,13001
|
543
|
-
reconcile/test/test_openshift_resources_base.py,sha256=GOMYGG6yFACXpDWwPMBBIOR0v0ikjefEDON1DPQfdkk,14374
|
544
|
-
reconcile/test/test_openshift_saas_deploy.py,sha256=3QXMrN9dXIiR0JktVDNQ7yJSexMTjZLb1tbRrB3-7uU,5991
|
545
|
-
reconcile/test/test_openshift_saas_deploy_change_tester.py,sha256=1yVe54Hx9YdVjn6qdnKge5Sa_s732c-8uZqCnuT1gGI,12871
|
546
|
-
reconcile/test/test_openshift_saas_deploy_trigger_cleaner.py,sha256=UQx1iJ21rsMa2whG-rtUIuTXbUzc0Ngr7jRLKXZCCCI,2838
|
547
|
-
reconcile/test/test_openshift_serviceaccount_tokens.py,sha256=VvVXDCS94KFvSLOhK8ScKjvmns5k1B6QgWr691AXiKc,8991
|
548
|
-
reconcile/test/test_openshift_tekton_resources.py,sha256=O6-qPQwSiPHQKm1a1iqRU2V8eabc4uiG4mNxPSUBg88,11212
|
549
|
-
reconcile/test/test_openshift_upgrade_watcher.py,sha256=0GDQ_YFHIX8DbkbDYSuLv9uZeeg4NwP1vlOqvSaZvN4,7183
|
550
|
-
reconcile/test/test_prometheus_rules_tester.py,sha256=cgVkPM3KcAw69bOkJ6iR2Lfog_WgblyoqVRtXv4ly7o,5685
|
551
|
-
reconcile/test/test_quay_membership.py,sha256=e29Giz5S9ckFgjpTO8PBo8qVPocIQmy4WqsRhgTFd9A,2643
|
552
|
-
reconcile/test/test_quay_mirror.py,sha256=9TIu1-YQl0CG705m-FeEOs4OwKG3UVJzVhISw525Lco,6324
|
553
|
-
reconcile/test/test_quay_mirror_org.py,sha256=67XwB0WkqO6l9SeR9cSfjODyt-P587Kvqvam7hR8rLQ,3008
|
554
|
-
reconcile/test/test_quay_repos.py,sha256=TdkcRF_a8PLp01Kti9eZZN-vGup2yPBT4Iba3k08qe0,1810
|
555
|
-
reconcile/test/test_queries.py,sha256=SpH3RmNpBjEr_ne3VjAMCgKK8RE1z1zo7bypkT5uoO4,1946
|
556
|
-
reconcile/test/test_repo_owners.py,sha256=uRYMLbMmh-9usF0TerabZTZV-Z1CS4I6ybT-LQqCLe8,1423
|
557
|
-
reconcile/test/test_requests_sender.py,sha256=7fd9C2kEFS0-CYtlsif66N1kO9c44pzuBPAJKR9igqU,5385
|
558
|
-
reconcile/test/test_saasherder.py,sha256=-WGgAsrTm_SJ0OQDLXd4JwEu1Mc6i4AePJqjZQTaRew,58114
|
559
|
-
reconcile/test/test_saasherder_allowed_secret_paths.py,sha256=5NHQwNJO66at6HiyMZ5sVRTQDwxdvlOQo0KmkBWCw5Q,4853
|
560
|
-
reconcile/test/test_secret_reader.py,sha256=kz7nzcPjvA08cytnvcA_PMA98AEyqJWsESkYeRn5xCk,4994
|
561
|
-
reconcile/test/test_slack_base.py,sha256=pTUGvJ2S2wF3PhJyGWmiNXG52QtXKy2cbu-G8Ymrv6I,5019
|
562
|
-
reconcile/test/test_slack_usergroups.py,sha256=OkD2sgTwUp6kahzL0oQM37Q7YNZHsS04hD2yV9skXhQ,25642
|
563
|
-
reconcile/test/test_sql_query.py,sha256=4EfcLH0y3B4d11IEoue5dgA-h6f9pP5xiMCIdILSJaE,11022
|
564
|
-
reconcile/test/test_status_board.py,sha256=o4jTZLtBFJN9FBmaHHkVGGPFSONLoB-P1xCX8giIBLw,7852
|
565
|
-
reconcile/test/test_terraform_aws_route53.py,sha256=xHggb8K1P76OyCfFcogbkmyKle-NlUylcbDnuv3IqvY,771
|
566
|
-
reconcile/test/test_terraform_cloudflare_dns.py,sha256=aQTXX8Vr4h9aWvJZTnpZEhMGYoBpT2d45ZxU_ECIQ6o,3425
|
567
|
-
reconcile/test/test_terraform_cloudflare_resources.py,sha256=1mdSZS-38mtTSg7teJgDCJU1b_yKbwnrr3N5m8kwV4k,13595
|
568
|
-
reconcile/test/test_terraform_cloudflare_users.py,sha256=2VGBtMUhckLPtUnQlHIzpGsCnyVJZPNLFf-ABELkxbQ,27456
|
569
|
-
reconcile/test/test_terraform_repo.py,sha256=r6bwryHtq6-VuUh3fuMsxlsjbQAgrcQUHOEFou_hilQ,12260
|
570
|
-
reconcile/test/test_terraform_resources.py,sha256=8C97yXIEihaQ3DZrtjxLNt4y4G12IOhD01ydm7JjliY,15359
|
571
|
-
reconcile/test/test_terraform_tgw_attachments.py,sha256=pJFmQzUwAn-wKpF6oSkImpdF7WXvcky8iaJiXbjGGgU,41104
|
572
|
-
reconcile/test/test_terraform_users.py,sha256=XOAfGvITCJPI1LTlISmHbA4ONMQMkxYUMTsny7pQCFw,4319
|
573
|
-
reconcile/test/test_terraform_vpc_peerings.py,sha256=bpjCjhmic07cw3XKSHf-2JvmLuWlyQG8laXlC-H7qtI,20796
|
574
|
-
reconcile/test/test_terraform_vpc_peerings_build_desired_state.py,sha256=cHmr1_yhRgfdqlFX6TMw-aiKXebaRv0szl16M9YRJic,49988
|
575
|
-
reconcile/test/test_three_way_diff_strategy.py,sha256=v3rNkQFNy5e1uyfeNSlNBA07fvrPGD0aXD91Lgv8oxc,4062
|
576
|
-
reconcile/test/test_utils_jinja2.py,sha256=rKugJEPl0qFC9joenJBXyk2qe-9md31-4EdxvQ2h5cs,4058
|
577
|
-
reconcile/test/test_vault_replication.py,sha256=WO18WnkXXQDqJ0FnSCl2HOiTfSY3LdRnKn_y6-Gre3w,17490
|
578
|
-
reconcile/test/test_vault_utils.py,sha256=vbJnc89XAuE07qbTuWxHM5o9F6R9SO5aHXA38fwxT7A,1122
|
579
|
-
reconcile/test/test_version_bump.py,sha256=q6-3Y1roriI6YWpFwaHOMN7emEP3yL33sh_0VdbmG7E,511
|
580
|
-
reconcile/test/test_vpc_peerings_validator.py,sha256=dFSmjc_dMN2GqMbntCFpa7PUZmyYuQ9DKffh-T5wmxM,6639
|
581
|
-
reconcile/test/test_wrong_region.py,sha256=7KzL7OaICQ9Z3DW27zt_ykMN7_87owAFC-2CYjvGoyA,2138
|
582
|
-
reconcile/test/saas_auto_promotions_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
583
|
-
reconcile/test/saas_auto_promotions_manager/conftest.py,sha256=m4gOYQIOO9Br9r26erJLXxO6b1IfVKO-QQPm8k2qD5Y,6094
|
584
|
-
reconcile/test/saas_auto_promotions_manager/test_integration_test.py,sha256=S30eXJSy2Vc3YLbCP7AfLkOiFGUVoKhEvEBL5vwnbfg,1848
|
585
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
586
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
587
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/conftest.py,sha256=y_SL9zBr98SlOnvbA9C7a0_dFZrRAbkuR85m_u6ijcI,3520
|
588
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/data_keys.py,sha256=Z1IV51OUuzhd-3S8W-k7ixC-fkaglCokn0eakK0Z73s,606
|
589
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_desired_state.py,sha256=OLtJ11SsznoT39_tudsozcksK0N3TVNv-JWhIrCVaQk,2356
|
590
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_merge_request_manager.py,sha256=5jOrR5flENfqz7c9ADnjm-yPl7DJLTyVZM1ndvm9MVY,2491
|
591
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_mr_parser.py,sha256=aohFc18g9DKt0kK1YypXJrBGE8eGhsVMOGd1KOCzX0k,11677
|
592
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/merge_request_manager/test_reconciler.py,sha256=REBOmIt1hwu9K5zqyQdKIDhma2YUWIKidI7SJ4GB9ZE,17969
|
593
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
594
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/conftest.py,sha256=iwmPsgkbwXHeExjL_9mDQdo_JE1zN4S1jBRjdEx00Kk,542
|
595
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_multiple_namespaces.py,sha256=6LMsnbPx5svTF1nL6oQGLTp1NgjLG_tO56c0hbA2Di4,1059
|
596
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_single_namespace.py,sha256=dc7vMOiVLl5yRUEfjF4eE7HfMZTbtT2dz1CMGJVLUZA,2526
|
597
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_content_single_target.py,sha256=FY9pzmvE8uXvvt_P_G3M7_br8Zt1s428H23FlAj9nuY,1881
|
598
|
-
reconcile/test/saas_auto_promotions_manager/merge_request_manager/renderer/test_json_path_selector.py,sha256=jCtG0hVCqJ-A4XBjwexDww5LQUXJFRc44O5rEMA7_7E,2160
|
599
|
-
reconcile/test/saas_auto_promotions_manager/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
600
502
|
reconcile/typed_queries/__init__.py,sha256=rRk4CyslLsBr4vAh1pIPgt6s3P4R1M9NSEPLnyQgBpk,61
|
601
503
|
reconcile/typed_queries/alerting_services_settings.py,sha256=YKQd60O_2C_H103nLrYgcUInndM2vFypqW_NO706L2E,833
|
602
504
|
reconcile/typed_queries/app_interface_custom_messages.py,sha256=bgSAJEzqee8aiPVCj_bIIqb4VTkrF0-vti1dos7ebEg,684
|
@@ -658,7 +560,7 @@ reconcile/utils/amtool.py,sha256=ngtBuVPETH6oAy5RnKzvreVbjwQCaATS_PYYwBprzjQ,228
|
|
658
560
|
reconcile/utils/aws_api.py,sha256=WWttyohsXAH0CCIbW0R5iZBjAiyfeEjcT_DefvM-V7c,67920
|
659
561
|
reconcile/utils/aws_helper.py,sha256=MDbv5jrNdqqJ5pfBxniGdJXBBO_EYc2_Uf2w9ZzeMNs,2854
|
660
562
|
reconcile/utils/batches.py,sha256=TtEm64a8lWhFuNbUVpFEmXVdU2Q0sTBrP_I0Cjbgh7g,320
|
661
|
-
reconcile/utils/binary.py,sha256=
|
563
|
+
reconcile/utils/binary.py,sha256=JwO9BHBqXyvUSJDztUNPYCUnSU31t5XlD_gHATdnduM,2231
|
662
564
|
reconcile/utils/config.py,sha256=kwaAaNBQ9z-fsDJu2-WZFgTnL6HKd3FPjiu0mbriHkg,1004
|
663
565
|
reconcile/utils/constants.py,sha256=pOUd97bqZdsAu5RWJ8NUs9cwCY7K9y0eW9VVeJ4fZIU,138
|
664
566
|
reconcile/utils/data_structures.py,sha256=VyKfnlNJTiRvZKNpfgIrjESQ2YgmEpWuPQXT14WA1vI,311
|
@@ -701,7 +603,7 @@ reconcile/utils/oauth2_backend_application_session.py,sha256=6W16sMpnWEPFDUX7qi5
|
|
701
603
|
reconcile/utils/oc.py,sha256=AjwQnzLxnMv0ML70GfjTHeYmiNsztI8kgXQF3N0Hvfw,66088
|
702
604
|
reconcile/utils/oc_connection_parameters.py,sha256=7DiEGo--TJelfYoZXJFyTBPeTw9kXL3L58vy2fiJnes,9643
|
703
605
|
reconcile/utils/oc_filters.py,sha256=Tz3OwtbUaYKmxENFls5CtPVzkZDeFXknw53dJe-wbT8,1382
|
704
|
-
reconcile/utils/oc_map.py,sha256=
|
606
|
+
reconcile/utils/oc_map.py,sha256=VhvFz3lMlX4US4oUPZDi2JDNkCrFPtQ4y6WmEtsCyCo,8988
|
705
607
|
reconcile/utils/ocm_base_client.py,sha256=DFqm5Z_KqBC3WYzEJH4-Kt6Zow2OLtT0jpHmnhwbSHU,6694
|
706
608
|
reconcile/utils/openshift_resource.py,sha256=ZyQ436YdV80nvKGPuzYyYLLJj8Abjnb3e_PsejxBTNM,24715
|
707
609
|
reconcile/utils/openssl.py,sha256=QVvhzhpChq_4Daf_5wE1qeZJr4thg3DDjJPn4bOPD4E,365
|
@@ -775,6 +677,7 @@ reconcile/utils/membershipsources/resolver.py,sha256=meERrCZqeVJZR2lHdZEznaZDsCs
|
|
775
677
|
reconcile/utils/merge_request_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
776
678
|
reconcile/utils/merge_request_manager/merge_request_manager.py,sha256=3EP6Yw_zB7nY0OkU8D_32nDqta1TITgtRI0cSmOlNQg,3332
|
777
679
|
reconcile/utils/merge_request_manager/parser.py,sha256=5pGoz8Q6EuYXlUc1z-D0FahdRP2YLO8CpACoa9HcgtQ,2098
|
680
|
+
reconcile/utils/mr/README.md,sha256=i9sCLkDFhSxAUtpa_I1_TxhR5vPOLcowuwn2VEWO41w,5794
|
778
681
|
reconcile/utils/mr/__init__.py,sha256=hcfHDIIIsJT4C0BnzDnyeZEfZdamrqHzMLcBzIT1ibI,2578
|
779
682
|
reconcile/utils/mr/app_interface_reporter.py,sha256=6Kpg93V9FvcOke9Jimkva359MQ-ZyBIkUpf8QIA6-to,1793
|
780
683
|
reconcile/utils/mr/aws_access.py,sha256=w-UJutB_OfBJOvr-gsPzhtBPkDfKcNZZWGGuI9cN3HI,2605
|
@@ -830,9 +733,6 @@ reconcile/utils/terrascript/resources.py,sha256=ucuudrCjmJYeSleklXTlmeSEwZOqVtEf
|
|
830
733
|
reconcile/utils/unleash/__init__.py,sha256=2PsN3GlLU8DOyWSvv5q9uzwuFn_vYtfEo-mmVaIFtpA,219
|
831
734
|
reconcile/utils/unleash/client.py,sha256=YrJnauxjcy1ml7W2AHg7dzIH_fVK_GugoRu7IFmk6e0,3505
|
832
735
|
reconcile/utils/unleash/server.py,sha256=907gDh9Ee8UxLqusnfpzE-7LUnttB38D4xhVJ0vMf_M,4439
|
833
|
-
release/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
834
|
-
release/test_version.py,sha256=4DKxDZkT0aoS6ibZFsH2fd_wNETij1qfn2pCgQtVCGo,2093
|
835
|
-
release/version.py,sha256=hLSW-Ai13atY9yBcUkEPEOr-drkZdRC4VcFIm1n5Y8o,4103
|
836
736
|
tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
837
737
|
tools/app_interface_metrics_exporter.py,sha256=zkwkxdAUAxjdc-pzx2_oJXG25fo0Fnyd5JXPk-iPcOQ,1619
|
838
738
|
tools/app_interface_reporter.py,sha256=oZPib4HPq0aZ2Zui1QGJGk6qQdfpeihujGDBnSdKyGE,17627
|
@@ -855,14 +755,6 @@ tools/cli_commands/cost_report/openshift_cost_optimization.py,sha256=lpdqnhQGXaP
|
|
855
755
|
tools/cli_commands/cost_report/response.py,sha256=l5fVNMg8zzoNWm8LquYJsWM3VqxABBG8KT_qN0L3P6c,2689
|
856
756
|
tools/cli_commands/cost_report/util.py,sha256=lKSWjjUfDzMfSSTbFqc4Ln8JfzlWiW8kR2i51VJbEnc,2497
|
857
757
|
tools/cli_commands/cost_report/view.py,sha256=2uNO_fWIUydEL2kQXV959crRkHqzjp9c1OrefXNiJ5s,14033
|
858
|
-
tools/cli_commands/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
859
|
-
tools/cli_commands/test/conftest.py,sha256=ta2eRWhajOdMFMt3AMmh6fvLuM3lBwU9kmkXAaD2_vs,17011
|
860
|
-
tools/cli_commands/test/test_aws_cost_report.py,sha256=YNH_6NXLkWMkrgti4v8HDT2uwveh_ss3GdppjBOXq6I,6993
|
861
|
-
tools/cli_commands/test/test_cost_management_api.py,sha256=g4LCf3KE-KL3DjZLGY7sOcT5Ds_cgDRMqDKgitjvVhI,9607
|
862
|
-
tools/cli_commands/test/test_gpg_encrypt.py,sha256=BIOPMsvytRb_j-Ae7KylcOCUrbNNVw8-WDpvV1FlmDs,6867
|
863
|
-
tools/cli_commands/test/test_openshift_cost_optimization_report.py,sha256=GmfsqzfBkU1yE3o4tBVW7Od09M19EOK4gfX5ExjRiGM,8132
|
864
|
-
tools/cli_commands/test/test_openshift_cost_report.py,sha256=bK9vI5bCBsHyyTNxpVRZ6AxV1JP_5uHqZXITqOJ5GTM,8724
|
865
|
-
tools/cli_commands/test/test_util.py,sha256=51AeUTzS4D_gZqdlq5WDbqWzP5Eet6vAL-DW1Ktcti4,2213
|
866
758
|
tools/saas_metrics_exporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
867
759
|
tools/saas_metrics_exporter/main.py,sha256=piocx6meMdJxoxeNz52gQGUjt5n7Fma4kgqYamszPrM,3180
|
868
760
|
tools/saas_metrics_exporter/commit_distance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -873,17 +765,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
873
765
|
tools/saas_promotion_state/saas_promotion_state.py,sha256=5LJ9rygZ304vxfsIuRfuxueoYRb72EZNKKITEcJ4Mtk,3908
|
874
766
|
tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
|
875
767
|
tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
tools/test/test_get_container_images.py,sha256=1WOkwW-FeS9tAzVy3n7Kok6StU9Q_lYQ3VF6ZHJE-CQ,7457
|
881
|
-
tools/test/test_qontract_cli.py,sha256=iuzKbQ6ahinvjoQmQLBrG4shey0z-1rB6qCgS8T6dgU,5789
|
882
|
-
tools/test/test_saas_promotion_state.py,sha256=dy4kkSSAQ7bC0Xp2CociETGN-2aABEfL6FU5D9Jl00Y,6056
|
883
|
-
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
884
|
-
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
885
|
-
qontract_reconcile-0.10.1rc1202.dist-info/METADATA,sha256=6q54_WLbt1n8G42eudLTa0yjsy1HK7Og3jZt2oGusF4,2213
|
886
|
-
qontract_reconcile-0.10.1rc1202.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
887
|
-
qontract_reconcile-0.10.1rc1202.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
|
888
|
-
qontract_reconcile-0.10.1rc1202.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
889
|
-
qontract_reconcile-0.10.1rc1202.dist-info/RECORD,,
|
768
|
+
qontract_reconcile-0.10.2.dev2.dist-info/METADATA,sha256=Sd_sWOWszVoWRNfKQMtEI9V6mQACj4uB8xJVVhLuRBs,24664
|
769
|
+
qontract_reconcile-0.10.2.dev2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
770
|
+
qontract_reconcile-0.10.2.dev2.dist-info/entry_points.txt,sha256=JniHZPadNOILPyfSl0LF2YSp3Db7K2_W2CN7i9f3Gos,540
|
771
|
+
qontract_reconcile-0.10.2.dev2.dist-info/RECORD,,
|
@@ -5,5 +5,6 @@ glitchtip-access-reporter = tools.glitchtip_access_reporter:main
|
|
5
5
|
glitchtip-access-revalidation = tools.glitchtip_access_revalidation:main
|
6
6
|
qontract-cli = tools.qontract_cli:root
|
7
7
|
qontract-reconcile = reconcile.cli:integration
|
8
|
+
run-integration = reconcile.run_integration:main
|
8
9
|
saas-metrics-exporter = tools.saas_metrics_exporter.main:main
|
9
10
|
template-validation = tools.template_validation:main
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Integration change-owners
|
2
|
+
|
3
|
+
`change-owners` uses change-type declarations from `app-interface` to grant self-service change permissions to `app-interface` tenants.
|
4
|
+
|
5
|
+
|
6
|
+
## Module structure
|
7
|
+
|
8
|
+
* `reconcile.change_owners.diff` contains all functionality for low-level diffing on file content. It can be used to extract differences from files as `Diff` dataclasses.
|
9
|
+
* `reconcile.change_owners.change_types` uses the `diff` module to extract relevant changes and tries to cover them with `change-types` from `app-interface`. The results are `BundleFileChange` dataclasses that contain all the found changes along with the `change-types` covering them. A change is considered `covered` when at least one `change-type` allows the changes in a context that provides approvers.
|
10
|
+
* `reconcile.change_owners.self_service_roles` is a change coverage implementation that uses `RoleV1.self_service` configurations from `app-interface` to bring changes, change-types and approvers together in a `ChangeTypeContext`.
|
11
|
+
* `reconcile.change_owners.decision` handles MR decision command parsing from eligible change approvers.
|
12
|
+
* `reconcile.change_owners.change_owners` is the entry point for the integrations and acts mostly as a coordinator between the other modules.
|
13
|
+
|
14
|
+
## Functionality
|
15
|
+
|
16
|
+
`change_owners` uses the `qontract-server` diff endpoint to get a highlevel overview what changed in an MR. It leverages `change_types` to find fine grained differences in datafiles and resourcefiles and build `BundleFileChange` objects that hold the state of diffs and diff coverage.
|
17
|
+
|
18
|
+
`change_owners` checks `BundleFileChange` objects for `change-types` that are `restrictive`. If the MR was created by a user, that has this `change-type` not assigned, the integration will fail. A user with this role assigned could issue an `/good-to-test` command to override this restriction.
|
19
|
+
|
20
|
+
`change_owners` reachs out to pluggable functionality to find out which `change-types` can be applied to which changes with a set of approvers. Currently, the only module to provide such `ChangeTypeContext` is `self_service_roles` which looks for explicitly bound `change-types` and files in the context of a `Role` with users and bots will can act as approvers.
|
21
|
+
|
22
|
+
The functionality provided by `self_service_roles` is very explicit because it sets up the self-service relationship by listing all involved components. Other mechanisms to provide `ChangeTypeContexts` based on other explicit or implicit ownership information can be added easily and plugged into the `change_owners.cover_changes()` function.
|
23
|
+
|
24
|
+
The result of this coverage process is a list of `BundleFileChange` objects, each of them having a list of `DiffCoverage` objects, listing all differences and how (and if) they are covered by `ChangeTypeContexts`. That way every change has a list of `Approvers` provided by the context of the `ChangeType`.
|
25
|
+
|
26
|
+
Next, `change_owners` reaches out to the `app-interface MR` it processes, to find the decisions of the approvers. Decisions are given as `/` command comments on the MR. The `decision` module parses those comments and applies them to the `BundleFileChanges` and their `DiffCoverage` objects. The result is a list of `ChangeDecisions` where every change is `approved` and/or on `hold`.
|
27
|
+
|
28
|
+
The `change_owners` module inspects those `ChangeDecisions` to find out if all changes have been approved. If that is the case, it adds the `bot/approved` label to the MR so that `gitlab-housekeeper` can act on the MR and will try to merge it.
|
29
|
+
|
30
|
+
If at least one `ChangeDecision` is on `hold`, the `bot/hold` label is applied, which prevents `gitlab-housekeeper` from merging.
|
31
|
+
|
32
|
+
If at least one `ChangeDecision` is not `approved`, the the MR can not proceed without further approvals or without AppSRE intervention.
|
33
|
+
|
34
|
+
In the case of changes not having a `ChangeTypeContext` attached allowing approvers to decide, the MR is considered `non-self-serviceable` and can't proceed without AppSRE intervention.
|
@@ -0,0 +1,150 @@
|
|
1
|
+
<font size=24> GlitchTip </font>
|
2
|
+
---
|
3
|
+
|
4
|
+
[toc]
|
5
|
+
|
6
|
+
# Introduction
|
7
|
+
|
8
|
+
This integration manages the following glitchtip objects:
|
9
|
+
|
10
|
+
* organizations
|
11
|
+
* teams
|
12
|
+
* projects
|
13
|
+
* and users
|
14
|
+
|
15
|
+
|
16
|
+
# Development
|
17
|
+
|
18
|
+
Development and testing were done for `glitchtip/glitchtip:v2.0.5`
|
19
|
+
|
20
|
+
glitchtip `docker-compose.yml` for local development:
|
21
|
+
|
22
|
+
```yaml
|
23
|
+
x-environment:
|
24
|
+
&default-environment
|
25
|
+
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
|
26
|
+
SECRET_KEY: whatever
|
27
|
+
DEBUG: "true"
|
28
|
+
EMAIL_BACKEND: "django.core.mail.backends.console.EmailBackend"
|
29
|
+
PORT: 8000
|
30
|
+
GLITCHTIP_DOMAIN: http://localhost:8000
|
31
|
+
CELERY_WORKER_CONCURRENCY: 1
|
32
|
+
x-depends_on:
|
33
|
+
&default-depends_on
|
34
|
+
- postgres
|
35
|
+
- redis
|
36
|
+
|
37
|
+
services:
|
38
|
+
postgres:
|
39
|
+
image: postgres:13
|
40
|
+
environment:
|
41
|
+
POSTGRES_HOST_AUTH_METHOD: "trust"
|
42
|
+
restart: unless-stopped
|
43
|
+
volumes:
|
44
|
+
- pg-data:/var/lib/postgresql/data
|
45
|
+
networks:
|
46
|
+
- qontract-development
|
47
|
+
redis:
|
48
|
+
image: redis
|
49
|
+
restart: unless-stopped
|
50
|
+
networks:
|
51
|
+
- qontract-development
|
52
|
+
glitchtip:
|
53
|
+
image: glitchtip/glitchtip:v2.0.5
|
54
|
+
depends_on: *default-depends_on
|
55
|
+
ports:
|
56
|
+
- "8000:8000"
|
57
|
+
environment: *default-environment
|
58
|
+
restart: unless-stopped
|
59
|
+
networks:
|
60
|
+
- qontract-development
|
61
|
+
worker:
|
62
|
+
image: glitchtip/glitchtip:v2.0.5
|
63
|
+
command: ./bin/run-celery-with-beat.sh
|
64
|
+
depends_on: *default-depends_on
|
65
|
+
environment: *default-environment
|
66
|
+
restart: unless-stopped
|
67
|
+
networks:
|
68
|
+
- qontract-development
|
69
|
+
migrate:
|
70
|
+
image: glitchtip/glitchtip:v2.0.5
|
71
|
+
depends_on: *default-depends_on
|
72
|
+
command: "./manage.py migrate"
|
73
|
+
environment: *default-environment
|
74
|
+
networks:
|
75
|
+
- qontract-development
|
76
|
+
|
77
|
+
volumes:
|
78
|
+
pg-data:
|
79
|
+
|
80
|
+
|
81
|
+
networks:
|
82
|
+
qontract-development:
|
83
|
+
external:
|
84
|
+
name: qontract-development
|
85
|
+
```
|
86
|
+
|
87
|
+
# Fixtures
|
88
|
+
|
89
|
+
The unit tests use this structure and are based on these [app-interface-dev-data](https://gitlab.cee.redhat.com/app-sre/app-interface-dev-data/-/merge_requests/19) definitions.
|
90
|
+
|
91
|
+
```mermaid
|
92
|
+
classDiagram
|
93
|
+
direction TB
|
94
|
+
%% Instance & Orgs
|
95
|
+
GlitchTipDev_Instance <-- ESA_Organization
|
96
|
+
GlitchTipDev_Instance <-- NASA_Organization
|
97
|
+
|
98
|
+
%% Projects
|
99
|
+
NASA_Organization <-- apollo_11_flight_control_Project
|
100
|
+
NASA_Organization <-- apollo_11_spacecraft_Project
|
101
|
+
ESA_Organization <-- rosetta_flight_control_Project
|
102
|
+
ESA_Organization <-- rosetta_spacecraft_Project
|
103
|
+
|
104
|
+
%% Teams
|
105
|
+
apollo_11_flight_control_Project <-- nasa_flight_control_Team
|
106
|
+
apollo_11_flight_control_Project <-- nasa_pilots_Team
|
107
|
+
apollo_11_spacecraft_Project <-- nasa_pilots_Team
|
108
|
+
rosetta_flight_control_Project <-- esa_flight_control_Team
|
109
|
+
rosetta_flight_control_Project <-- esa_pilots_Team
|
110
|
+
rosetta_spacecraft_Project <-- esa_pilots_Team
|
111
|
+
|
112
|
+
%% Users
|
113
|
+
%% pilot
|
114
|
+
ESA_Organization <-- SamanthaCristoforetti_User
|
115
|
+
%% flight-control
|
116
|
+
ESA_Organization <-- MatthiasMaurer_User
|
117
|
+
ESA_Organization <-- TimPeake_User
|
118
|
+
%% owner role in organizations;
|
119
|
+
ESA_Organization <-- GlobalFlightDirector_User
|
120
|
+
%% automation account, must be ignored
|
121
|
+
ESA_Organization <-- sd_app_sre_glitchtip_User
|
122
|
+
|
123
|
+
%% automation account, must be ignored
|
124
|
+
NASA_Organization <-- sd_app_sre_glitchtip_User
|
125
|
+
%% owner role in organizations; invited to nasa-flight-control but not accepted yet
|
126
|
+
NASA_Organization <-- GlobalFlightDirector_User
|
127
|
+
%% pilots
|
128
|
+
NASA_Organization <-- NeilArmstrong_User
|
129
|
+
%% user account not created yet, invited but user ignored the invitation
|
130
|
+
NASA_Organization <-- BuzzAldrin_User
|
131
|
+
%% ordinary user
|
132
|
+
NASA_Organization <-- MichaelCollins_User
|
133
|
+
|
134
|
+
%% Team memberships
|
135
|
+
esa_pilots_Team <-- SamanthaCristoforetti_User
|
136
|
+
esa_flight_control_Team <-- MatthiasMaurer_User
|
137
|
+
esa_flight_control_Team <-- TimPeake_User
|
138
|
+
esa_flight_control_Team <-- GlobalFlightDirector_User
|
139
|
+
|
140
|
+
nasa_flight_control_Team <-- GlobalFlightDirector_User
|
141
|
+
nasa_pilots_Team <-- NeilArmstrong_User
|
142
|
+
nasa_pilots_Team <-- BuzzAldrin_User
|
143
|
+
nasa_flight_control_Team <-- MichaelCollins_User
|
144
|
+
```
|
145
|
+
|
146
|
+
# Links
|
147
|
+
|
148
|
+
* [Design Doc](https://gitlab.cee.redhat.com/service/app-interface/-/blob/d12d7faa9d6136da69e4113ccbbed54781319173/docs/app-sre/design-docs/glitchtip.md)
|
149
|
+
* [GlitchTip App](https://visual-app-interface.devshift.net/services#/services/glitchtip/app.yml)
|
150
|
+
* [GlitchTip Stage Instance](https://glitchtip.stage.devshift.net/login)
|