Mongo Backend

class arend.backends.mongo.MongoSettings(*, mongo_connection: str, mongo_db: str, mongo_collection: str)

Mongo Settings. Defines settings for Mongo Backend

get_backend() Type[MongoTask]

Returns a MongoTask class with settings already set

class arend.backends.mongo.MongoTask(*, uuid: UUID = None, name: str, description: str = None, location: str = 'tasks', status: str = 'SCHEDULED', result: str = None, detail: Optional[str] = None, start_time: Optional[datetime] = None, end_time: Optional[datetime] = None, args: tuple = None, kwargs: dict = None, queue: str, delay: int = 0, priority: int = 1, count_retries: int = 0, max_retries: int = 3, retry_backoff_factor: int = 1, created: datetime = None, updated: datetime = None)

MongoTask class. Defines the Task Model for Mongo Backend

Usage:

>>> from arend.backends.mongo import MongoSettings
>>>
>>> settings = MongoSettings(
>>>     mongo_connection="mongodb://user:pass@mongo:27017",
>>>     mongo_db="db",
>>>     mongo_collection="Tasks"
>>> )
>>> MongoTask = MongoSettings.get_backend()  # type: Type[MongoTask]
>>> task = MongoTask(name="My task", ...)
>>> task.save()
>>>
>>> assert task.dict() == {"name": "My task", ...}
>>> assert task.json() == '{"name": "My task", ...}'
>>>
>>> task = MongoTask.get(uuid=UUID("<your-uuid>"))
>>> assert task.description == "A cool task"
>>>
>>> assert task.delete() == 1
>>> assert task.delete() == 0
delete() int

Deletes object in DataBase

Usage:

>>> assert task.delete() == 1  # count deleted 1
>>> assert task.delete() == 0  # count deleted 0
classmethod get(uuid: UUID) Optional[MongoTask]

Get object from DataBase

Usage:

>>> task = MongoTask.get(uuid=UUID("<your-uuid>"))
>>> assert task.uuid == UUID("<your-uuid>")
save() MongoTask

Updates/Creates object in DataBase

Usage:

>>> task = MongoTask(name="My Task")
>>> task.save()
>>> task.description = "A new description"
>>> task.save()
class arend.backends.mongo.MongoTasks(*, tasks: List[MongoTask] = None, count: int = 0)

Defines the MongoTasks collection