leadguru-jobs 0.691.0__tar.gz → 0.693.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.691.0 → leadguru_jobs-0.693.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/SOURCES.txt +2 -0
  4. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/__init__.py +4 -0
  5. leadguru_jobs-0.693.0/lgt_jobs/jobs/bots_killer.py +21 -0
  6. leadguru_jobs-0.693.0/lgt_jobs/services/k8_manager.py +28 -0
  7. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/MANIFEST.in +0 -0
  8. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/README.md +0 -0
  9. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  10. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  11. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  12. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  13. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/arrow.png +0 -0
  14. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/arrow_blue.png +0 -0
  15. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/firework.png +0 -0
  16. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/lock.png +0 -0
  17. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/logo.png +0 -0
  18. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/assets/images/mail.png +0 -0
  19. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/basejobs.py +0 -0
  20. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/env.py +0 -0
  21. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/__init__.py +0 -0
  22. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/analytics.py +0 -0
  23. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
  24. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/chat_history.py +0 -0
  25. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/connect_sources.py +0 -0
  26. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
  27. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/load_slack_people.py +0 -0
  28. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/load_slack_users.py +0 -0
  29. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/mass_message.py +0 -0
  30. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/send_code.py +0 -0
  31. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  32. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  33. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  34. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  35. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  36. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
  37. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  38. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  39. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  40. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  41. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  42. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  43. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  44. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  45. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  46. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  47. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  48. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  49. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  50. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/engine.py +0 -0
  51. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/enums.py +0 -0
  52. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  53. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/model.py +0 -0
  54. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/__init__.py +0 -0
  55. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/base.py +0 -0
  56. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/boards/__init__.py +0 -0
  57. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/boards/board.py +0 -0
  58. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/boards/status.py +0 -0
  59. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/bots/__init__.py +0 -0
  60. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/bots/base_bot.py +0 -0
  61. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/bots/bot_info.py +0 -0
  62. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/bots/dedicated_bot.py +0 -0
  63. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/__init__.py +0 -0
  64. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/file.py +0 -0
  65. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/grouped_messages.py +0 -0
  66. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/message.py +0 -0
  67. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/request.py +0 -0
  68. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/chat/scheduled_message.py +0 -0
  69. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/contacts/__init__.py +0 -0
  70. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/contacts/contact.py +0 -0
  71. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/__init__.py +0 -0
  72. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/cloud/__init__.py +0 -0
  73. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/cloud/file.py +0 -0
  74. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/discord/__init__.py +0 -0
  75. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/discord/user.py +0 -0
  76. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/slack/__init__.py +0 -0
  77. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/slack/timezone.py +0 -0
  78. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/slack/user.py +0 -0
  79. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/external/user_workspace.py +0 -0
  80. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/leads/__init__.py +0 -0
  81. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/leads/config.py +0 -0
  82. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/leads/extended_lead.py +0 -0
  83. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/leads/lead.py +0 -0
  84. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/leads/message.py +0 -0
  85. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/notifications/__init__.py +0 -0
  86. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/notifications/notification.py +0 -0
  87. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/notifications/notification_settings.py +0 -0
  88. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/people/__init__.py +0 -0
  89. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/people/people.py +0 -0
  90. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/people/profile.py +0 -0
  91. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/post/__init__.py +0 -0
  92. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/post/message.py +0 -0
  93. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/post/post.py +0 -0
  94. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/templates/__init__.py +0 -0
  95. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/templates/template.py +0 -0
  96. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/__init__.py +0 -0
  97. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/feature.py +0 -0
  98. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/general_settings.py +0 -0
  99. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/reset_password.py +0 -0
  100. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/subscription.py +0 -0
  101. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/typed_field.py +0 -0
  102. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/user.py +0 -0
  103. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/user_follow_ups.py +0 -0
  104. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/user_page.py +0 -0
  105. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user/verification.py +0 -0
  106. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user_leads/__init__.py +0 -0
  107. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user_leads/extended_user_lead.py +0 -0
  108. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/models/user_leads/user_lead.py +0 -0
  109. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/mongo_repository.py +0 -0
  110. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/repositories/__init__.py +0 -0
  111. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/repositories/post/__init__.py +0 -0
  112. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/lgt_data/repositories/post/posts.py +0 -0
  113. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/main.py +0 -0
  114. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/runner.py +0 -0
  115. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/services/__init__.py +0 -0
  116. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/services/web_client.py +0 -0
  117. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/simple_job.py +0 -0
  118. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/smtp.py +0 -0
  119. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/lgt_jobs/templates/new_message.html +0 -0
  120. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/setup.cfg +0 -0
  121. {leadguru_jobs-0.691.0 → leadguru_jobs-0.693.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.691.0
3
+ Version: 0.693.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.691.0
3
+ Version: 0.693.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}')
@@ -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))