Switch globalpromstats worker to use a data interface
This commit is contained in:
parent
0629a13da2
commit
8e179cb865
3 changed files with 50 additions and 5 deletions
|
@ -3,7 +3,7 @@ import time
|
|||
|
||||
from app import app, metric_queue
|
||||
from data.database import UseThenDisconnect
|
||||
from data import model
|
||||
from workers.globalpromstats.models_pre_oci import pre_oci_model as model
|
||||
from util.locking import GlobalLock, LockNotAcquiredException
|
||||
from util.log import logfile_path
|
||||
from workers.worker import Worker
|
||||
|
@ -34,12 +34,12 @@ class GlobalPrometheusStatsWorker(Worker):
|
|||
logger.debug('Reporting global stats')
|
||||
with UseThenDisconnect(app.config):
|
||||
# Repository count.
|
||||
metric_queue.repository_count.Set(model.repository.get_repository_count())
|
||||
metric_queue.repository_count.Set(model.get_repository_count())
|
||||
|
||||
# User counts.
|
||||
metric_queue.user_count.Set(model.user.get_active_user_count())
|
||||
metric_queue.org_count.Set(model.organization.get_active_org_count())
|
||||
metric_queue.robot_count.Set(model.user.get_robot_count())
|
||||
metric_queue.user_count.Set(model.get_active_user_count())
|
||||
metric_queue.org_count.Set(model.get_active_org_count())
|
||||
metric_queue.robot_count.Set(model.get_robot_count())
|
||||
|
||||
|
||||
def main():
|
||||
|
|
27
workers/globalpromstats/models_interface.py
Normal file
27
workers/globalpromstats/models_interface.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from abc import ABCMeta, abstractmethod
|
||||
from six import add_metaclass
|
||||
|
||||
@add_metaclass(ABCMeta)
|
||||
class GlobalPromStatsWorkerDataInterface(object):
|
||||
"""
|
||||
Interface that represents all data store interactions required by the global prom stats worker.
|
||||
"""
|
||||
@abstractmethod
|
||||
def get_repository_count(self):
|
||||
""" Returns the number of repositories in the database. """
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_active_user_count(self):
|
||||
""" Returns the number of active users in the database. """
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_active_org_count(self):
|
||||
""" Returns the number of active organizations in the database. """
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_robot_count(self):
|
||||
""" Returns the number of robots in the database. """
|
||||
pass
|
18
workers/globalpromstats/models_pre_oci.py
Normal file
18
workers/globalpromstats/models_pre_oci.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
from data import model
|
||||
|
||||
from workers.globalpromstats.models_interface import GlobalPromStatsWorkerDataInterface
|
||||
|
||||
class PreOCIModel(GlobalPromStatsWorkerDataInterface):
|
||||
def get_repository_count(self):
|
||||
return model.repository.get_repository_count()
|
||||
|
||||
def get_active_user_count(self):
|
||||
return model.user.get_active_user_count()
|
||||
|
||||
def get_active_org_count(self):
|
||||
return model.organization.get_active_org_count()
|
||||
|
||||
def get_robot_count(self):
|
||||
return model.user.get_robot_count()
|
||||
|
||||
pre_oci_model = PreOCIModel()
|
Reference in a new issue