sirmordred 1.0.5rc1__py3-none-any.whl → 1.1.1__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.
- sirmordred/_version.py +2 -2
- sirmordred/sirmordred.py +34 -5
- sirmordred/task.py +4 -13
- sirmordred/task_autorefresh.py +2 -2
- sirmordred/task_enrich.py +2 -2
- sirmordred/task_identities.py +2 -2
- sirmordred/task_manager.py +3 -2
- {sirmordred-1.0.5rc1.dist-info → sirmordred-1.1.1.dist-info}/METADATA +4 -5
- {sirmordred-1.0.5rc1.dist-info → sirmordred-1.1.1.dist-info}/RECORD +12 -12
- {sirmordred-1.0.5rc1.dist-info → sirmordred-1.1.1.dist-info}/LICENSE +0 -0
- {sirmordred-1.0.5rc1.dist-info → sirmordred-1.1.1.dist-info}/WHEEL +0 -0
- {sirmordred-1.0.5rc1.dist-info → sirmordred-1.1.1.dist-info}/entry_points.txt +0 -0
sirmordred/_version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
# File auto-generated by semverup on 2024-
|
2
|
-
__version__ = "1.
|
1
|
+
# File auto-generated by semverup on 2024-09-23 08:30:12.401712
|
2
|
+
__version__ = "1.1.1"
|
sirmordred/sirmordred.py
CHANGED
@@ -50,6 +50,7 @@ from sirmordred.task_identities import TaskIdentitiesMerge
|
|
50
50
|
from sirmordred.task_manager import TasksManager
|
51
51
|
from sirmordred.task_panels import TaskPanels, TaskPanelsMenu
|
52
52
|
from sirmordred.task_projects import TaskProjects
|
53
|
+
from sortinghat.cli.client import SortingHatClient
|
53
54
|
|
54
55
|
logger = logging.getLogger(__name__)
|
55
56
|
|
@@ -198,7 +199,7 @@ class SirMordred:
|
|
198
199
|
repos_backend = self._get_repos_by_backend()
|
199
200
|
for backend in repos_backend:
|
200
201
|
# Start new Threads and add them to the threads list to complete
|
201
|
-
t = TasksManager(backend_tasks, backend, stopper, self.config, small_delay)
|
202
|
+
t = TasksManager(backend_tasks, backend, stopper, self.config, self.client, small_delay)
|
202
203
|
threads.append(t)
|
203
204
|
t.start()
|
204
205
|
|
@@ -206,7 +207,7 @@ class SirMordred:
|
|
206
207
|
if len(global_tasks) > 0:
|
207
208
|
# FIXME timer is applied to all global_tasks, does it make sense?
|
208
209
|
# All tasks are executed in the same thread sequentially
|
209
|
-
gt = TasksManager(global_tasks, "Global tasks", stopper, self.config, big_delay)
|
210
|
+
gt = TasksManager(global_tasks, "Global tasks", stopper, self.config, self.client, big_delay)
|
210
211
|
threads.append(gt)
|
211
212
|
gt.start()
|
212
213
|
if big_delay > 0:
|
@@ -248,14 +249,14 @@ class SirMordred:
|
|
248
249
|
if self.conf['phases']['panels']:
|
249
250
|
tasks = [TaskPanels, TaskPanelsMenu]
|
250
251
|
stopper.set()
|
251
|
-
tm = TasksManager(tasks, "Global tasks", stopper, self.config)
|
252
|
+
tm = TasksManager(tasks, "Global tasks", stopper, self.config, self.client)
|
252
253
|
tm.start()
|
253
254
|
tm.join()
|
254
255
|
|
255
256
|
logger.info("Loading projects")
|
256
257
|
tasks = [TaskProjects]
|
257
258
|
stopper.set()
|
258
|
-
tm = TasksManager(tasks, "Global tasks", stopper, self.config)
|
259
|
+
tm = TasksManager(tasks, "Global tasks", stopper, self.config, self.client)
|
259
260
|
tm.start()
|
260
261
|
tm.join()
|
261
262
|
logger.info("Projects loaded")
|
@@ -280,7 +281,7 @@ class SirMordred:
|
|
280
281
|
|
281
282
|
# check we have access to the needed ES
|
282
283
|
if not self.check_es_access():
|
283
|
-
print('Can not access
|
284
|
+
print('Can not access ElasticSearch/OpenSearch service. Exiting sirmordred ...')
|
284
285
|
sys.exit(1)
|
285
286
|
|
286
287
|
# If bestiary is configured check that it is working
|
@@ -289,6 +290,9 @@ class SirMordred:
|
|
289
290
|
print('Can not access bestiary service. Exiting sirmordred ...')
|
290
291
|
sys.exit(1)
|
291
292
|
|
293
|
+
# Create SortingHat Client
|
294
|
+
self.__create_sh_client(self.config)
|
295
|
+
|
292
296
|
# Initial round: panels and projects loading
|
293
297
|
self.__execute_initial_load()
|
294
298
|
|
@@ -336,3 +340,28 @@ class SirMordred:
|
|
336
340
|
logger.error(var)
|
337
341
|
|
338
342
|
logger.info("Finished SirMordred engine ...")
|
343
|
+
|
344
|
+
def __create_sh_client(self, config):
|
345
|
+
self.config = config
|
346
|
+
self.conf = config.get_conf()
|
347
|
+
|
348
|
+
sortinghat = self.conf.get('sortinghat', None)
|
349
|
+
self.db_sh = sortinghat['database'] if sortinghat else None
|
350
|
+
self.db_user = sortinghat['user'] if sortinghat else None
|
351
|
+
self.db_password = sortinghat['password'] if sortinghat else None
|
352
|
+
self.db_host = sortinghat['host'] if sortinghat else '127.0.0.1'
|
353
|
+
self.db_path = sortinghat.get('path', None) if sortinghat else None
|
354
|
+
self.db_port = sortinghat.get('port', None) if sortinghat else None
|
355
|
+
self.db_ssl = sortinghat.get('ssl', False) if sortinghat else False
|
356
|
+
self.db_verify_ssl = sortinghat.get('verify_ssl', True) if sortinghat else True
|
357
|
+
self.db_tenant = sortinghat.get('tenant', True) if sortinghat else None
|
358
|
+
self.db_unaffiliate_group = sortinghat['unaffiliated_group'] if sortinghat else None
|
359
|
+
if sortinghat and not hasattr(self, 'client'):
|
360
|
+
self.client = SortingHatClient(host=self.db_host, port=self.db_port,
|
361
|
+
path=self.db_path, ssl=self.db_ssl,
|
362
|
+
user=self.db_user, password=self.db_password,
|
363
|
+
verify_ssl=self.db_verify_ssl,
|
364
|
+
tenant=self.db_tenant)
|
365
|
+
self.client.connect()
|
366
|
+
elif not sortinghat:
|
367
|
+
self.client = None
|
sirmordred/task.py
CHANGED
@@ -29,7 +29,6 @@ import re
|
|
29
29
|
from grimoire_elk.elk import get_ocean_backend
|
30
30
|
from grimoire_elk.utils import get_connector_from_name, get_elastic
|
31
31
|
from grimoire_elk.enriched.utils import grimoire_con
|
32
|
-
from sortinghat.cli.client import SortingHatClient
|
33
32
|
|
34
33
|
logger = logging.getLogger(__name__)
|
35
34
|
|
@@ -42,10 +41,11 @@ class Task():
|
|
42
41
|
'studies', 'node_regex', 'anonymize']
|
43
42
|
PARAMS_WITH_SPACES = ['blacklist-jobs']
|
44
43
|
|
45
|
-
def __init__(self, config):
|
44
|
+
def __init__(self, config, sortinghat_client=None):
|
46
45
|
self.backend_section = None
|
47
46
|
self.config = config
|
48
47
|
self.conf = config.get_conf()
|
48
|
+
self.client = sortinghat_client
|
49
49
|
|
50
50
|
sortinghat = self.conf.get('sortinghat', None)
|
51
51
|
self.db_sh = sortinghat['database'] if sortinghat else None
|
@@ -58,15 +58,6 @@ class Task():
|
|
58
58
|
self.db_verify_ssl = sortinghat.get('verify_ssl', True) if sortinghat else True
|
59
59
|
self.db_tenant = sortinghat.get('tenant', True) if sortinghat else None
|
60
60
|
self.db_unaffiliate_group = sortinghat['unaffiliated_group'] if sortinghat else None
|
61
|
-
if sortinghat:
|
62
|
-
self.client = SortingHatClient(host=self.db_host, port=self.db_port,
|
63
|
-
path=self.db_path, ssl=self.db_ssl,
|
64
|
-
user=self.db_user, password=self.db_password,
|
65
|
-
verify_ssl=self.db_verify_ssl,
|
66
|
-
tenant=self.db_tenant)
|
67
|
-
self.client.connect()
|
68
|
-
else:
|
69
|
-
self.client = None
|
70
61
|
|
71
62
|
self.grimoire_con = grimoire_con(conn_retries=12) # 30m retry
|
72
63
|
|
@@ -156,9 +147,9 @@ class Task():
|
|
156
147
|
continue
|
157
148
|
|
158
149
|
# If param is boolean, no values must be added
|
159
|
-
if
|
150
|
+
if isinstance(section_param, bool):
|
160
151
|
params.append("--" + p) if section_param else None
|
161
|
-
elif
|
152
|
+
elif isinstance(section_param, list):
|
162
153
|
# '--blacklist-jobs', 'a', 'b', 'c'
|
163
154
|
# 'a', 'b', 'c' must be added as items in the list
|
164
155
|
params.append("--" + p)
|
sirmordred/task_autorefresh.py
CHANGED
@@ -43,8 +43,8 @@ logger = logging.getLogger(__name__)
|
|
43
43
|
class TaskAutorefresh(Task):
|
44
44
|
"""Refresh the last modified identities for all the backends."""
|
45
45
|
|
46
|
-
def __init__(self, config):
|
47
|
-
super().__init__(config)
|
46
|
+
def __init__(self, config, sortinghat_client):
|
47
|
+
super().__init__(config, sortinghat_client)
|
48
48
|
|
49
49
|
self.last_autorefresh_backend = {}
|
50
50
|
|
sirmordred/task_enrich.py
CHANGED
@@ -53,8 +53,8 @@ logger = logging.getLogger(__name__)
|
|
53
53
|
class TaskEnrich(Task):
|
54
54
|
""" Basic class shared by all enriching tasks """
|
55
55
|
|
56
|
-
def __init__(self, config, backend_section=None, allowed_repos=None):
|
57
|
-
super().__init__(config)
|
56
|
+
def __init__(self, config, sortinghat_client, backend_section=None, allowed_repos=None):
|
57
|
+
super().__init__(config, sortinghat_client)
|
58
58
|
self.backend_section = backend_section
|
59
59
|
self.allowed_repos = set(allowed_repos) if allowed_repos else None
|
60
60
|
# This will be options in next iteration
|
sirmordred/task_identities.py
CHANGED
@@ -38,8 +38,8 @@ logger = logging.getLogger(__name__)
|
|
38
38
|
class TaskIdentitiesMerge(Task):
|
39
39
|
""" Task for processing identities in SortingHat """
|
40
40
|
|
41
|
-
def __init__(self, conf):
|
42
|
-
super().__init__(conf)
|
41
|
+
def __init__(self, conf, soringhat_client):
|
42
|
+
super().__init__(conf, soringhat_client)
|
43
43
|
self.last_autorefresh = datetime.utcnow() # Last autorefresh date
|
44
44
|
|
45
45
|
def is_backend_task(self):
|
sirmordred/task_manager.py
CHANGED
@@ -50,7 +50,7 @@ class TasksManager(threading.Thread):
|
|
50
50
|
IDENTITIES_TASKS_ON_LOCK = threading.Lock()
|
51
51
|
IDENTITIES_TASKS_ON = False
|
52
52
|
|
53
|
-
def __init__(self, tasks_cls, backend_section, stopper, config, timer=0):
|
53
|
+
def __init__(self, tasks_cls, backend_section, stopper, config, sortinghat_client, timer=0):
|
54
54
|
"""
|
55
55
|
:tasks_cls : tasks classes to be executed using the backend
|
56
56
|
:backend_section: perceval backend section name
|
@@ -64,6 +64,7 @@ class TasksManager(threading.Thread):
|
|
64
64
|
self.stopper = stopper # To stop the thread from parent
|
65
65
|
self.timer = timer
|
66
66
|
self.thread_id = None
|
67
|
+
self.client = sortinghat_client
|
67
68
|
|
68
69
|
def add_task(self, task):
|
69
70
|
self.tasks.append(task)
|
@@ -80,7 +81,7 @@ class TasksManager(threading.Thread):
|
|
80
81
|
logger.debug(self.tasks_cls)
|
81
82
|
for tc in self.tasks_cls:
|
82
83
|
# create the real Task from the class
|
83
|
-
task = tc(self.config)
|
84
|
+
task = tc(self.config, self.client)
|
84
85
|
task.set_backend_section(self.backend_section)
|
85
86
|
self.tasks.append(task)
|
86
87
|
|
@@ -1,27 +1,26 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sirmordred
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.1.1
|
4
4
|
Summary: Drive GrimoireLab tools to produce a dashboard
|
5
5
|
Home-page: https://chaoss.github.io/grimoirelab/
|
6
6
|
License: GPL-3.0+
|
7
7
|
Keywords: development,grimoirelab
|
8
8
|
Author: GrimoireLab Developers
|
9
|
-
Requires-Python: >=3.
|
9
|
+
Requires-Python: >=3.9,<4.0
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
11
11
|
Classifier: Intended Audience :: Developers
|
12
12
|
Classifier: Intended Audience :: Science/Research
|
13
13
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
16
15
|
Classifier: Programming Language :: Python :: 3.9
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
19
18
|
Classifier: Topic :: Software Development
|
20
19
|
Requires-Dist: cereslib (>=0.3)
|
21
|
-
Requires-Dist: colorlog (
|
20
|
+
Requires-Dist: colorlog (>=6.4.1,<7.0.0)
|
22
21
|
Requires-Dist: elasticsearch (==6.3.1)
|
23
22
|
Requires-Dist: elasticsearch-dsl (==6.3.1)
|
24
|
-
Requires-Dist: file-read-backwards (
|
23
|
+
Requires-Dist: file-read-backwards (>=3.1.0,<4.0.0)
|
25
24
|
Requires-Dist: graal (>=0.3)
|
26
25
|
Requires-Dist: grimoire-elk (>=0.102)
|
27
26
|
Requires-Dist: grimoirelab-panels (>=0.1)
|
@@ -1,16 +1,16 @@
|
|
1
1
|
sirmordred/__init__.py,sha256=vQ9Reo3DRPBCcW0QhyeK2tBCTIumq3D1BkaWXTtY8VA,835
|
2
|
-
sirmordred/_version.py,sha256=
|
2
|
+
sirmordred/_version.py,sha256=wueCwf1bk6rWOMTUfmuyQtC_zkz9XNPmzbewSCzbAAM,86
|
3
3
|
sirmordred/bin/sirmordred.py,sha256=LmCiVYL7NBIord1Lz7RXJcRIPJtSvMT-b8QxNieRDzE,5022
|
4
4
|
sirmordred/config.py,sha256=hxwCRQ-szIz8KXedLoJ5Tl1ktP07uZ6z2buwzkofggI,33508
|
5
5
|
sirmordred/error.py,sha256=RD-POuigH-FEvmTu7a7qI5t78NnjkYKQ_ukfns9DozY,1836
|
6
6
|
sirmordred/github.py,sha256=5RFYoTscKWACqMq_uJCYXv8KZD6qe7C2eBgfz0tyPpo,2306
|
7
|
-
sirmordred/sirmordred.py,sha256=
|
8
|
-
sirmordred/task.py,sha256=
|
9
|
-
sirmordred/task_autorefresh.py,sha256=
|
7
|
+
sirmordred/sirmordred.py,sha256=E1uX-j12Wz_KIsL_-BDYmW-0fkeX6y9RvgkzUiX_swA,14101
|
8
|
+
sirmordred/task.py,sha256=LuAdf9I3kk0tSqlJw1CLYst3Bt-EwhxiVsj5OSh1mkY,9623
|
9
|
+
sirmordred/task_autorefresh.py,sha256=X2sGa9kBkBsoWz5SqjzHX2sdksFNHdu3Spe6-YCvSFw,7800
|
10
10
|
sirmordred/task_collection.py,sha256=j6UGBUeGoO1kU7cLQ7lPtqbO1JHazbbGpy4wkAeoMN0,6524
|
11
|
-
sirmordred/task_enrich.py,sha256=
|
12
|
-
sirmordred/task_identities.py,sha256=
|
13
|
-
sirmordred/task_manager.py,sha256=
|
11
|
+
sirmordred/task_enrich.py,sha256=t6PiI6s8hCxWhcPbc7qtL6rkendgrY9ycgI2PNIR8FM,21274
|
12
|
+
sirmordred/task_identities.py,sha256=EeXLQ_pN7UYw7nWC27TK0m7v5Q8xE83t0N69lJE8DjQ,3432
|
13
|
+
sirmordred/task_manager.py,sha256=xYhdmFvJpkLcJvIX50F2uvTtFevpXIckN3RrWDjej6g,4496
|
14
14
|
sirmordred/task_panels.py,sha256=bU6s9YzpzhqX49XR7L6_IeT2dbnotEvxiLSVkuf9k1I,29060
|
15
15
|
sirmordred/task_projects.py,sha256=gJTnGvAYbZ8HTSzXzUXw6BiJ6XaAUWY8QE9j3GgaRP0,6484
|
16
16
|
sirmordred/utils/find_affiliation_conflicts.py,sha256=tmPk930o8MDycZcVH6T3TBtCTZia5bs1uuhI343sKfY,1981
|
@@ -22,8 +22,8 @@ sirmordred/utils/panels_config.py,sha256=G54oTtRppHDLRhdnaqYneUemUlWFxlX6h7GFl0L
|
|
22
22
|
sirmordred/utils/projects.json,sha256=CxXpzYqvLx6FfDTPln9b5TIkfEb2cgfP20WLvwK_7GU,864
|
23
23
|
sirmordred/utils/projects_json2yml.py,sha256=N9-orfrnfzASTYAIzR2Xo9IpW-CVdNAiVAmWT7Bt154,3141
|
24
24
|
sirmordred/utils/setup.cfg,sha256=hKbO4euWOFYzzsGcTQk8jW6CkutOJw72TywBQdyekrA,3634
|
25
|
-
sirmordred-1.
|
26
|
-
sirmordred-1.
|
27
|
-
sirmordred-1.
|
28
|
-
sirmordred-1.
|
29
|
-
sirmordred-1.
|
25
|
+
sirmordred-1.1.1.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
26
|
+
sirmordred-1.1.1.dist-info/METADATA,sha256=WrG9nv3CZ7AlCFHLgC7ON6C5Qxar9DMtNs6kmkVt4c8,42415
|
27
|
+
sirmordred-1.1.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
28
|
+
sirmordred-1.1.1.dist-info/entry_points.txt,sha256=HKwfuVFXnCzt8rsJBUFudGHm-KMxJ_3a1YLX-Q7WoRk,200
|
29
|
+
sirmordred-1.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|