collector/plugins/plugin.py

26 lines
531 B
Python
Raw Normal View History

2020-04-14 22:49:22 +00:00
from abc import ABC, abstractmethod
from typing import Tuple
import database
2020-04-14 22:49:22 +00:00
class Plugin(ABC):
models = []
2020-04-17 16:16:58 +00:00
@abstractmethod
def get_interval(self) -> int:
pass
2020-04-14 22:49:22 +00:00
@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()