leadguru-jobs 0.692.0__tar.gz → 0.694.0__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 (121) hide show
  1. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/SOURCES.txt +2 -0
  4. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/__init__.py +4 -0
  5. leadguru_jobs-0.694.0/lgt_jobs/jobs/bots_killer.py +21 -0
  6. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/inbox_leads.py +2 -0
  7. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/request.py +4 -0
  8. leadguru_jobs-0.694.0/lgt_jobs/services/k8_manager.py +28 -0
  9. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/MANIFEST.in +0 -0
  10. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/README.md +0 -0
  11. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  12. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  13. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  14. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  15. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/arrow.png +0 -0
  16. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/arrow_blue.png +0 -0
  17. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/firework.png +0 -0
  18. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/lock.png +0 -0
  19. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/logo.png +0 -0
  20. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/assets/images/mail.png +0 -0
  21. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/basejobs.py +0 -0
  22. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/env.py +0 -0
  23. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/__init__.py +0 -0
  24. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/analytics.py +0 -0
  25. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
  26. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/chat_history.py +0 -0
  27. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/connect_sources.py +0 -0
  28. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/load_slack_people.py +0 -0
  29. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/load_slack_users.py +0 -0
  30. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/mass_message.py +0 -0
  31. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/send_code.py +0 -0
  32. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  33. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  34. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  35. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  36. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  37. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
  38. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  39. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  40. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  41. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  42. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  43. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  44. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  45. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  46. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  47. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  48. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  49. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  50. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  51. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/engine.py +0 -0
  52. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/enums.py +0 -0
  53. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  54. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/model.py +0 -0
  55. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/__init__.py +0 -0
  56. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/base.py +0 -0
  57. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/boards/__init__.py +0 -0
  58. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/boards/board.py +0 -0
  59. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/boards/status.py +0 -0
  60. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/bots/__init__.py +0 -0
  61. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/bots/base_bot.py +0 -0
  62. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/bots/bot_info.py +0 -0
  63. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/bots/dedicated_bot.py +0 -0
  64. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/__init__.py +0 -0
  65. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/file.py +0 -0
  66. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/grouped_messages.py +0 -0
  67. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/message.py +0 -0
  68. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/chat/scheduled_message.py +0 -0
  69. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/contacts/__init__.py +0 -0
  70. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/contacts/contact.py +0 -0
  71. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/__init__.py +0 -0
  72. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/cloud/__init__.py +0 -0
  73. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/cloud/file.py +0 -0
  74. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/discord/__init__.py +0 -0
  75. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/discord/user.py +0 -0
  76. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/slack/__init__.py +0 -0
  77. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/slack/timezone.py +0 -0
  78. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/slack/user.py +0 -0
  79. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/external/user_workspace.py +0 -0
  80. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/leads/__init__.py +0 -0
  81. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/leads/config.py +0 -0
  82. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/leads/extended_lead.py +0 -0
  83. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/leads/lead.py +0 -0
  84. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/leads/message.py +0 -0
  85. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/notifications/__init__.py +0 -0
  86. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/notifications/notification.py +0 -0
  87. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/notifications/notification_settings.py +0 -0
  88. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/people/__init__.py +0 -0
  89. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/people/people.py +0 -0
  90. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/people/profile.py +0 -0
  91. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/post/__init__.py +0 -0
  92. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/post/message.py +0 -0
  93. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/post/post.py +0 -0
  94. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/templates/__init__.py +0 -0
  95. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/templates/template.py +0 -0
  96. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/__init__.py +0 -0
  97. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/feature.py +0 -0
  98. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/general_settings.py +0 -0
  99. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/reset_password.py +0 -0
  100. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/subscription.py +0 -0
  101. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/typed_field.py +0 -0
  102. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/user.py +0 -0
  103. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/user_follow_ups.py +0 -0
  104. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/user_page.py +0 -0
  105. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user/verification.py +0 -0
  106. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user_leads/__init__.py +0 -0
  107. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user_leads/extended_user_lead.py +0 -0
  108. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/models/user_leads/user_lead.py +0 -0
  109. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/mongo_repository.py +0 -0
  110. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/repositories/__init__.py +0 -0
  111. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/repositories/post/__init__.py +0 -0
  112. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/lgt_data/repositories/post/posts.py +0 -0
  113. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/main.py +0 -0
  114. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/runner.py +0 -0
  115. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/services/__init__.py +0 -0
  116. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/services/web_client.py +0 -0
  117. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/simple_job.py +0 -0
  118. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/smtp.py +0 -0
  119. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/lgt_jobs/templates/new_message.html +0 -0
  120. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/setup.cfg +0 -0
  121. {leadguru_jobs-0.692.0 → leadguru_jobs-0.694.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.692.0
3
+ Version: 0.694.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.692.0
3
+ Version: 0.694.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -24,6 +24,7 @@ lgt_jobs/assets/images/mail.png
24
24
  lgt_jobs/jobs/__init__.py
25
25
  lgt_jobs/jobs/analytics.py
26
26
  lgt_jobs/jobs/bot_stats_update.py
27
+ lgt_jobs/jobs/bots_killer.py
27
28
  lgt_jobs/jobs/chat_history.py
28
29
  lgt_jobs/jobs/connect_sources.py
29
30
  lgt_jobs/jobs/inbox_leads.py
@@ -114,5 +115,6 @@ lgt_jobs/lgt_data/repositories/__init__.py
114
115
  lgt_jobs/lgt_data/repositories/post/__init__.py
115
116
  lgt_jobs/lgt_data/repositories/post/posts.py
116
117
  lgt_jobs/services/__init__.py
118
+ lgt_jobs/services/k8_manager.py
117
119
  lgt_jobs/services/web_client.py
118
120
  lgt_jobs/templates/new_message.html
@@ -15,6 +15,7 @@ from .runner import (BackgroundJobRunner)
15
15
  from .simple_job import (SimpleTestJob, SimpleTestJobData)
16
16
  from .jobs.load_slack_people import (LoadSlackPeopleJob, LoadSlackPeopleJobData)
17
17
  from .jobs.load_slack_users import LoadSlackUsersJob, LoadSlackUsersJobData
18
+ from .jobs.bots_killer import BotsKillerJob, BotsKillerData
18
19
 
19
20
  jobs_map = {
20
21
  "SimpleTestJob": SimpleTestJob,
@@ -27,6 +28,7 @@ jobs_map = {
27
28
  "SendMassMessageSlackChannelJob": SendMassMessageSlackChannelJob,
28
29
  "ConnectSourceJob": ConnectSourceJob,
29
30
  "LoadSlackPeopleJob": LoadSlackPeopleJob,
31
+ "BotsKillerJob": BotsKillerJob,
30
32
  "LoadSlackUsersJob": LoadSlackUsersJob
31
33
  }
32
34
  __all__ = [
@@ -43,6 +45,7 @@ __all__ = [
43
45
  ConnectSourceJob,
44
46
  LoadSlackPeopleJob,
45
47
  LoadSlackUsersJob,
48
+ BotsKillerJob,
46
49
 
47
50
  # module classes
48
51
  BackgroundJobRunner,
@@ -60,6 +63,7 @@ __all__ = [
60
63
  ConnectSourceJobData,
61
64
  LoadSlackPeopleJobData,
62
65
  LoadSlackUsersJobData,
66
+ BotsKillerData,
63
67
  # mapping
64
68
  jobs_map
65
69
  ]
@@ -0,0 +1,21 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+ from lgt_jobs.basejobs import BaseBackgroundJob, BaseBackgroundJobData
4
+ from lgt_jobs.services.k8_manager import K8Manager
5
+
6
+ """
7
+ Kill bots
8
+ """
9
+
10
+
11
+ class BotsKillerData(BaseBackgroundJobData, BaseModel):
12
+ environment: str
13
+
14
+
15
+ class BotsKillerJob(BaseBackgroundJob, ABC):
16
+ @property
17
+ def job_data_type(self) -> type:
18
+ return BotsKillerData
19
+
20
+ def exec(self, data: BotsKillerData):
21
+ K8Manager().delete_bots(f'leadguru-{data.environment}')
@@ -82,6 +82,8 @@ class InboxLeadsJob(BaseBackgroundJob, ABC):
82
82
  InboxLeadsJob.create_people(slack_profile, dedicated_bot)
83
83
 
84
84
  message_request = MessageRequest.from_slack_response(dedicated_bot, messages[0], sender_id)
85
+ if message_request.is_system_message:
86
+ continue
85
87
  sender_request = requests_repo.find(user.id, sender_id)
86
88
  if not sender_request:
87
89
  log.info(f"[InboxLeadsJob]: New message request from {sender_id} for user: {user.email}")
@@ -13,3 +13,7 @@ class MessageRequest(ChatMessage):
13
13
  def from_slack_response(cls, bot: DedicatedBotModel, message_data: dict, sender_id: str):
14
14
  message = super().from_slack_response(bot, message_data, sender_id)
15
15
  return MessageRequest.from_dic(message.to_dic())
16
+
17
+ @property
18
+ def is_system_message(self) -> bool:
19
+ return "joined Slack" in self.text or "has accepted your invitation" in self.text
@@ -0,0 +1,28 @@
1
+ import json
2
+ import logging as log
3
+ import os
4
+
5
+ from kubernetes import config
6
+ from kubernetes.client.api.core_v1_api import CoreV1Api
7
+ from kubernetes.client.rest import ApiException
8
+
9
+
10
+ class K8Manager:
11
+
12
+ def __init__(self):
13
+ with open(os.environ.get('K8_CONFIG'), 'r') as k8_config:
14
+ config.load_kube_config_from_dict(json.loads(k8_config.read()))
15
+
16
+ @staticmethod
17
+ def delete_bots(namespace: str):
18
+ api_instance = CoreV1Api()
19
+ pod_names_to_delete = ['lgt-slack-bots-v2', 'lgt-discord-bots', 'lgt-bg-worker']
20
+ pods = api_instance.list_namespaced_pod(namespace)
21
+ pods_to_delete = [pod.metadata.name for pod in pods.items for name in pod_names_to_delete
22
+ if name in pod.metadata.name]
23
+ for pod in pods_to_delete:
24
+ try:
25
+ api_instance.delete_namespaced_pod(pod, namespace)
26
+ log.info(f'Killed pod: {pod}')
27
+ except ApiException as e:
28
+ log.error(str(e))