clean metrics
This commit is contained in:
parent
413ce7d76c
commit
4657a3bcf9
|
@ -1,59 +1,6 @@
|
||||||
from flask import request, g, jsonify
|
from teal.resource import Resource
|
||||||
from ereuse_devicehub.resources.action import schemas
|
|
||||||
from teal.resource import Resource, View
|
|
||||||
|
|
||||||
from ereuse_devicehub.resources.action.models import Allocate, Live, Action, ToRepair, ToPrepare
|
|
||||||
from ereuse_devicehub.resources.device import models as m
|
|
||||||
from ereuse_devicehub.resources.metric.schema import Metric
|
from ereuse_devicehub.resources.metric.schema import Metric
|
||||||
|
from ereuse_devicehub.resources.metric.views import MetricsView
|
||||||
|
|
||||||
class MetricsView(View):
|
|
||||||
def find(self, args: dict):
|
|
||||||
|
|
||||||
self.params = dict(request.args)
|
|
||||||
unvalid = self.schema.validate(self.params)
|
|
||||||
if unvalid:
|
|
||||||
res = jsonify(unvalid)
|
|
||||||
res.status = 404
|
|
||||||
return res
|
|
||||||
|
|
||||||
metrics = {
|
|
||||||
"allocateds": self.allocated(),
|
|
||||||
"live": self.live(),
|
|
||||||
"null": self.nulls(),
|
|
||||||
}
|
|
||||||
return jsonify(metrics)
|
|
||||||
|
|
||||||
def allocated(self):
|
|
||||||
return Allocate.query.filter(
|
|
||||||
Allocate.start_time.between(
|
|
||||||
self.params['start_time'], self.params['end_time']
|
|
||||||
),
|
|
||||||
Action.author==g.user
|
|
||||||
).count()
|
|
||||||
|
|
||||||
def live(self):
|
|
||||||
return Live.query.filter(
|
|
||||||
Live.created.between(
|
|
||||||
self.params['start_time'], self.params['end_time']
|
|
||||||
),
|
|
||||||
Action.author==g.user
|
|
||||||
).distinct(Live.serial_number).count()
|
|
||||||
|
|
||||||
def nulls(self):
|
|
||||||
to_repair = ToRepair.query.filter(
|
|
||||||
ToRepair.created.between(
|
|
||||||
self.params['start_time'], self.params['end_time']
|
|
||||||
),
|
|
||||||
Action.author==g.user
|
|
||||||
).count()
|
|
||||||
to_prepare = ToPrepare.query.filter(
|
|
||||||
ToPrepare.created.between(
|
|
||||||
self.params['start_time'], self.params['end_time']
|
|
||||||
),
|
|
||||||
Action.author==g.user
|
|
||||||
).count()
|
|
||||||
return to_repair + to_prepare
|
|
||||||
|
|
||||||
|
|
||||||
class MetricDef(Resource):
|
class MetricDef(Resource):
|
||||||
|
|
|
@ -52,7 +52,7 @@ def test_simple_metrics(user: UserClient):
|
||||||
data = {"start_time": today-delta,
|
data = {"start_time": today-delta,
|
||||||
"end_time": today+delta
|
"end_time": today+delta
|
||||||
}
|
}
|
||||||
metrics = {'allocateds': 1, 'live': 1, 'null': 0}
|
metrics = {'allocateds': 1, 'live': 1}
|
||||||
res, _ = user.get("/metrics/", query_string=data)
|
res, _ = user.get("/metrics/", query_string=data)
|
||||||
assert res == metrics
|
assert res == metrics
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ def test_second_hdd_metrics(user: UserClient):
|
||||||
data = {"start_time": today-delta,
|
data = {"start_time": today-delta,
|
||||||
"end_time": today+delta
|
"end_time": today+delta
|
||||||
}
|
}
|
||||||
metrics = {'allocateds': 1, 'live': 2, 'null': 0}
|
metrics = {'allocateds': 1, 'live': 2}
|
||||||
res, _ = user.get("/metrics/", query_string=data)
|
res, _ = user.get("/metrics/", query_string=data)
|
||||||
assert res == metrics
|
assert res == metrics
|
||||||
|
|
||||||
|
|
Reference in New Issue