Skip to content

Commit 19487f3

Browse files
committed
new: Add missing workers endpoints
Fix #1372
1 parent 1cebb0a commit 19487f3

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

pymisp/api.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,35 @@ def restart_workers(self) -> dict[str, Any] | list[dict[str, Any]]:
355355
response = self._prepare_request('POST', 'servers/restartWorkers')
356356
return self._check_json_response(response)
357357

358+
def restart_dead_workers(self) -> dict[str, Any] | list[dict[str, Any]]:
359+
"""Restart the dead workers"""
360+
response = self._prepare_request('POST', 'servers/restartDeadWorkers')
361+
return self._check_json_response(response)
362+
363+
def get_workers(self) -> dict[str, Any] | list[dict[str, Any]]:
364+
"""Get all the workers"""
365+
response = self._prepare_request('GET', 'servers/getWorkers')
366+
return self._check_json_response(response)
367+
368+
def start_worker(self, worker_type: str) -> dict[str, Any] | list[dict[str, Any]]:
369+
"""Start a worker
370+
:param worker_type: The type of worker, must be one of the following: "default" "email" "scheduler" "cache" "prio" "update"
371+
"""
372+
response = self._prepare_request('POST', f'servers/startWorker/{worker_type}')
373+
return self._check_json_response(response)
374+
375+
def stop_worker_by_pid(self, worker_pid: str | int) -> dict[str, Any] | list[dict[str, Any]]:
376+
"""Stop a worker by its PID (get the pid with get_workers)
377+
:param worker_pid: The pid of the worker to stop
378+
"""
379+
response = self._prepare_request('POST', f'servers/stopWorker/{worker_pid}')
380+
return self._check_json_response(response)
381+
382+
def kill_all_workers(self) -> dict[str, Any] | list[dict[str, Any]]:
383+
"""Kill all the workers"""
384+
response = self._prepare_request('POST', 'servers/killAllWorkers')
385+
return self._check_json_response(response)
386+
358387
def db_schema_diagnostic(self) -> dict[str, Any] | list[dict[str, Any]]:
359388
"""Get the schema diagnostic"""
360389
response = self._prepare_request('GET', 'servers/dbSchemaDiagnostic')
@@ -2705,6 +2734,11 @@ def discard_user_registration(self, registration: MISPInbox | int | str | UUID)
27052734
r = self._prepare_request('POST', f'users/discardRegistrations/{registration_id}')
27062735
return self._check_json_response(r)
27072736

2737+
def users_heartbeat(self) -> dict[str, str]:
2738+
"""?"""
2739+
r = self._prepare_request('GET', 'users/heartbeat')
2740+
return self._check_json_response(r)
2741+
27082742
# ## END User ###
27092743

27102744
# ## BEGIN Role ###

0 commit comments

Comments
 (0)