collector/plugins/plugin.py

26 lines
531 B
Python

from abc import ABC, abstractmethod
from typing import Tuple
import database
class Plugin(ABC):
models = []
@abstractmethod
def get_interval(self) -> int:
pass
@abstractmethod
def execute(self) -> None:
pass
def cleanup(self) -> None:
return 0
def execute_wrapper(self) -> None:
with database.DB.connection_context():
self.execute()
def cleanup_wrapper(self) -> None:
with database.DB.connection_context():
return self.cleanup()