Skip to content
Snippets Groups Projects
Commit 7f51f274 authored by Antoine Lambert's avatar Antoine Lambert
Browse files

interface: Add get_listers method

Add new method to scheduler interface returning the full list of
listers registered in the database.

Related to T3127
parent 9e1b4145
No related branches found
Tags v0.16.0
1 merge request!243interface: Add get_listers method
......@@ -131,6 +131,21 @@ class SchedulerBackend:
cur.execute(query)
return cur.fetchall()
@db_transaction()
def get_listers(self, db=None, cur=None) -> List[Lister]:
"""Retrieve information about all listers from the database.
"""
select_cols = ", ".join(Lister.select_columns())
query = f"""
select {select_cols} from listers
"""
cur.execute(query)
return [Lister(**ret) for ret in cur.fetchall()]
@db_transaction()
def get_lister(
self, name: str, instance_name: Optional[str] = None, db=None, cur=None
......
......@@ -323,6 +323,12 @@ class SchedulerInterface(Protocol):
"""Search task run for a task id"""
...
@remote_api_endpoint("listers/get")
def get_listers(self) -> List[Lister]:
"""Retrieve information about all listers from the database.
"""
...
@remote_api_endpoint("lister/get")
def get_lister(
self, name: str, instance_name: Optional[str] = None
......
......@@ -45,6 +45,7 @@ def test_site_map(flask_app_client):
"lister/get",
"lister/get_or_create",
"lister/update",
"listers/get",
"origins/get",
"origins/grab_next",
"origins/record",
......
......@@ -647,6 +647,15 @@ class TestScheduler:
assert lister == lister_get_again
def test_get_listers(self, swh_scheduler):
assert swh_scheduler.get_listers() == []
db_listers = []
for lister_args in LISTERS:
db_listers.append(swh_scheduler.get_or_create_lister(**lister_args))
assert swh_scheduler.get_listers() == db_listers
def test_update_lister(self, swh_scheduler, stored_lister):
lister = attr.evolve(stored_lister, current_state={"updated": "now"})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment