qontract-reconcile 0.10.1rc866__py3-none-any.whl → 0.10.1rc867__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qontract-reconcile
3
- Version: 0.10.1rc866
3
+ Version: 0.10.1rc867
4
4
  Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
5
5
  Home-page: https://github.com/app-sre/qontract-reconcile
6
6
  Author: Red Hat App-SRE Team
@@ -104,7 +104,7 @@ reconcile/sendgrid_teammates.py,sha256=oO8QbLb4s1o8A6CGiCagN9CmS05BSS_WLztuY0Ym9
104
104
  reconcile/service_dependencies.py,sha256=PMKP9vc6oL-78rzyF_RE8DzLSQMSqN8vCqt9sWpBLAM,4470
105
105
  reconcile/signalfx_endpoint_monitoring.py,sha256=D1m8iq0EAKie0OD59FOcVCtpWWZ7xlo6lwBS9urwMIk,2894
106
106
  reconcile/slack_base.py,sha256=K3fSYx46G1djoPb07_C9j6ChhMCt5LgV5l6v2TFkNZk,3479
107
- reconcile/slack_usergroups.py,sha256=vYecHCeJMZhxy1l0bIahTRN6ja0vxTSTXN2UfOkYXOo,29727
107
+ reconcile/slack_usergroups.py,sha256=XnSw6K9-qaYu01vaFRV9ovIxzB8HfycLFyyIzJa-TRA,29708
108
108
  reconcile/sql_query.py,sha256=FAQI9EIHsokZBbGwvGU4vnjg1fHemxpYQE20UtCB1qo,25941
109
109
  reconcile/status.py,sha256=cY4IJFXemhxptRJqR4qaaOWqei9e4jgLXuVSGajMsjg,544
110
110
  reconcile/status_board.py,sha256=nA74_133jukxVShjPKJpkXOA3vggDTTEhYTegoXbN1M,8632
@@ -539,7 +539,7 @@ reconcile/test/test_saasherder.py,sha256=QFX6JrPCpB9jS-K_VleIjTf6NaF8NDa4UwddXXo
539
539
  reconcile/test/test_saasherder_allowed_secret_paths.py,sha256=5NHQwNJO66at6HiyMZ5sVRTQDwxdvlOQo0KmkBWCw5Q,4853
540
540
  reconcile/test/test_secret_reader.py,sha256=kz7nzcPjvA08cytnvcA_PMA98AEyqJWsESkYeRn5xCk,4994
541
541
  reconcile/test/test_slack_base.py,sha256=gpbWOLNxMMX6fyAbs1JakhLTnwfedb3f7WpUae4tQZE,5060
542
- reconcile/test/test_slack_usergroups.py,sha256=Yj7SetVzdVsl0mzPakVil3Fb_4R_3r9lC32gnw_CwiA,24899
542
+ reconcile/test/test_slack_usergroups.py,sha256=16mQar9Ar0GqwpOJBZ5nc7v1UzfXDd-9WCOEgT4cBKU,24941
543
543
  reconcile/test/test_sql_query.py,sha256=rC-lf1_isT9i2ZIV9W0hkUkLi2oBIjZMRMhk-6mV-34,11029
544
544
  reconcile/test/test_status_board.py,sha256=go3YSWo03OLIdK95SuiDJa1Nqk-eN_9QtS7dfmu9__8,7875
545
545
  reconcile/test/test_terraform_aws_route53.py,sha256=xHggb8K1P76OyCfFcogbkmyKle-NlUylcbDnuv3IqvY,771
@@ -696,7 +696,7 @@ reconcile/utils/ruamel.py,sha256=FzL4_L0FnMOUZmgThrZSMJs5MTdXwiy-E9MZWfk8bh8,397
696
696
  reconcile/utils/secret_reader.py,sha256=7g4TuBxkOl2NgsuZUCRcdI_hKLP3JhXlY1byBSxWU3A,10305
697
697
  reconcile/utils/semver_helper.py,sha256=-WfPOMSA2v1h7hT3PwVf-Htg7wOsoKlQC1JdmDX2Ars,1268
698
698
  reconcile/utils/sharding.py,sha256=gkYf0lD3IUKQPEmdRJZ70mdDT1c9qWjbdP7evRsUis4,839
699
- reconcile/utils/slack_api.py,sha256=2t9jeCS7V3sHSMk-ByRcjmh-2uVvGELCfJqm1nu_hKI,17395
699
+ reconcile/utils/slack_api.py,sha256=NT8NjhpBMBWOhqgHnvBuP2NlZKm8H_oGY_LHdVu_F_c,17423
700
700
  reconcile/utils/smtp_client.py,sha256=gJNbBQJpAt5PX4t_TaeNHsXM8vt50bFgndml6yK2b5o,2800
701
701
  reconcile/utils/sqs_gateway.py,sha256=gFl9DM4DmGnptuxTOe4lS3YTyE80eSAvK42ljS8h4dA,2287
702
702
  reconcile/utils/state.py,sha256=DRxzuOw3Iha-b2esBMjZTZ5K-OxfrGbkyEvpTT5xHTs,16369
@@ -837,8 +837,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
837
837
  tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jrss,4941
838
838
  tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
839
839
  tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
840
- qontract_reconcile-0.10.1rc866.dist-info/METADATA,sha256=CsI337jZEYjkwbikEt0gEukWr3NK-k5bJXpgXcw3xmw,2273
841
- qontract_reconcile-0.10.1rc866.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
842
- qontract_reconcile-0.10.1rc866.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
843
- qontract_reconcile-0.10.1rc866.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
844
- qontract_reconcile-0.10.1rc866.dist-info/RECORD,,
840
+ qontract_reconcile-0.10.1rc867.dist-info/METADATA,sha256=kW9F6ZoBWCOD-GG7iiqXdukYen14M_t-HJ5FeYmfSxk,2273
841
+ qontract_reconcile-0.10.1rc867.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
842
+ qontract_reconcile-0.10.1rc867.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
843
+ qontract_reconcile-0.10.1rc867.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
844
+ qontract_reconcile-0.10.1rc867.dist-info/RECORD,,
@@ -557,19 +557,18 @@ def _update_usergroup_users_from_state(
557
557
 
558
558
  slack_user_objects = [
559
559
  SlackObject(pk=pk, name=name)
560
- for pk, name in slack_client.get_users_by_names(
560
+ for pk, name in slack_client.get_active_users_by_names(
561
561
  desired_ug_state.user_names
562
562
  ).items()
563
563
  ]
564
+ active_user_names = set(s.name for s in slack_user_objects)
564
565
 
565
- if len(slack_user_objects) != len(desired_ug_state.user_names):
566
+ if len(active_user_names) != len(desired_ug_state.user_names):
566
567
  logging.info(
567
- f"Following usernames are incorrect for usergroup {desired_ug_state.usergroup} and could not be matched with slack users {desired_ug_state.user_names - set(s.name for s in slack_user_objects)}"
568
+ f"Following usernames are incorrect for usergroup {desired_ug_state.usergroup} and could not be matched with slack users {desired_ug_state.user_names - active_user_names}"
568
569
  )
569
- error_occurred = True
570
- return 0
571
570
 
572
- for user in desired_ug_state.user_names - current_ug_state.user_names:
571
+ for user in active_user_names - current_ug_state.user_names:
573
572
  logging.info([
574
573
  "add_user_to_usergroup",
575
574
  desired_ug_state.workspace,
@@ -577,7 +576,7 @@ def _update_usergroup_users_from_state(
577
576
  user,
578
577
  ])
579
578
 
580
- for user in current_ug_state.user_names - desired_ug_state.user_names:
579
+ for user in current_ug_state.user_names - active_user_names:
581
580
  logging.info([
582
581
  "del_user_from_usergroup",
583
582
  desired_ug_state.workspace,
@@ -579,7 +579,7 @@ def test_act_empty_current_state(
579
579
 
580
580
  slack_client_mock.create_usergroup.return_value = "USERGA"
581
581
  slack_client_mock.get_usergroup_id.return_value = "USERGA"
582
- slack_client_mock.get_users_by_names.return_value = {"USERA": "username"}
582
+ slack_client_mock.get_active_users_by_names.return_value = {"USERA": "username"}
583
583
  slack_client_mock.get_channels_by_names.return_value = {"CHANA": "someotherchannel"}
584
584
 
585
585
  act(current_state, desired_state, slack_map, dry_run=False)
@@ -605,7 +605,7 @@ def test_act_update_usergroup_users(
605
605
  }
606
606
 
607
607
  slack_client_mock.get_usergroup_id.return_value = "USERGA"
608
- slack_client_mock.get_users_by_names.return_value = {
608
+ slack_client_mock.get_active_users_by_names.return_value = {
609
609
  "USERB": "someotherusername",
610
610
  "USERC": "anotheruser",
611
611
  }
@@ -629,7 +629,7 @@ def test_act_update_usergroup_channels(
629
629
  desired_state["slack-workspace"]["usergroup-1"].channel_names = {"CHANB"}
630
630
 
631
631
  slack_client_mock.get_usergroup_id.return_value = "USERGA"
632
- slack_client_mock.get_users_by_names.return_value = {"USERA": "username"}
632
+ slack_client_mock.get_active_users_by_names.return_value = {"USERA": "username"}
633
633
  slack_client_mock.get_channels_by_names.return_value = {"CHANB": "channel"}
634
634
 
635
635
  act(current_state, desired_state, slack_map, dry_run=False)
@@ -651,7 +651,7 @@ def test_act_update_usergroup_description(
651
651
  ].description = "A different description"
652
652
 
653
653
  slack_client_mock.get_usergroup_id.return_value = "USERGA"
654
- slack_client_mock.get_users_by_names.return_value = {"USERA": "username"}
654
+ slack_client_mock.get_active_users_by_names.return_value = {"USERA": "username"}
655
655
  slack_client_mock.get_channels_by_names.return_value = {"CHANA": "channel"}
656
656
 
657
657
  act(current_state, desired_state, slack_map, dry_run=False)
@@ -675,7 +675,7 @@ def test_act_update_usergroup_desc_and_channels(
675
675
  ].description = "A different description"
676
676
 
677
677
  slack_client_mock.get_usergroup_id.return_value = "USERGA"
678
- slack_client_mock.get_users_by_names.return_value = {"USERA": "username"}
678
+ slack_client_mock.get_active_users_by_names.return_value = {"USERA": "username"}
679
679
  slack_client_mock.get_channels_by_names.return_value = {"CHANB": "someotherchannel"}
680
680
 
681
681
  act(current_state, desired_state, slack_map, dry_run=False)
@@ -716,7 +716,7 @@ def test_act_add_new_usergroups(
716
716
  desired_state = copy.deepcopy(base_state)
717
717
 
718
718
  slack_client_mock.get_usergroup_id.side_effect = get_ugid
719
- slack_client_mock.get_users_by_names.side_effect = get_users
719
+ slack_client_mock.get_active_users_by_names.side_effect = get_users
720
720
  slack_client_mock.get_channels_by_names.side_effect = get_channels
721
721
 
722
722
  desired_state["slack-workspace"]["usergroup-2"] = State(
@@ -417,11 +417,11 @@ class SlackApi:
417
417
  k: v["name"] for k, v in self._get("channels").items() if k in channels_ids
418
418
  }
419
419
 
420
- def get_users_by_names(self, user_names: Iterable[str]) -> dict[str, str]:
420
+ def get_active_users_by_names(self, user_names: Iterable[str]) -> dict[str, str]:
421
421
  return {
422
422
  k: v["name"]
423
423
  for k, v in self._get("users").items()
424
- if v["name"] in user_names
424
+ if v["name"] in user_names and not v["deleted"]
425
425
  }
426
426
 
427
427
  def get_users_by_ids(self, users_ids: Iterable[str]) -> dict[str, str]: