Merge branch 'resource-usage'
This commit is contained in:
commit
c2a262ff17
|
@ -153,16 +153,37 @@ class DatabaseService(OrchestraModel):
|
||||||
if 'users' in data:
|
if 'users' in data:
|
||||||
users = [DatabaseUser.new_from_json(user_data) for user_data in data['users']]
|
users = [DatabaseUser.new_from_json(user_data) for user_data in data['users']]
|
||||||
|
|
||||||
# TODO(@slamora) retrieve database usage
|
usage = cls.get_usage(data)
|
||||||
usage = {
|
|
||||||
'usage': 250,
|
|
||||||
'total': 500,
|
|
||||||
'unit': 'MB',
|
|
||||||
'percent': 50,
|
|
||||||
}
|
|
||||||
|
|
||||||
return super().new_from_json(data=data, users=users, usage=usage)
|
return super().new_from_json(data=data, users=users, usage=usage)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_usage(self, data):
|
||||||
|
try:
|
||||||
|
resources = data['resources']
|
||||||
|
resource_disk = {}
|
||||||
|
for r in resources:
|
||||||
|
if r['name'] == 'disk':
|
||||||
|
resource_disk = r
|
||||||
|
break
|
||||||
|
|
||||||
|
details = {
|
||||||
|
'usage': float(resource_disk['used']),
|
||||||
|
'total': resource_disk['allocated'],
|
||||||
|
'unit': resource_disk['unit'],
|
||||||
|
}
|
||||||
|
except (IndexError, KeyError):
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
|
percent = get_bootstraped_percent(
|
||||||
|
details['usage'],
|
||||||
|
details['total']
|
||||||
|
)
|
||||||
|
details['percent'] = percent
|
||||||
|
|
||||||
|
return details
|
||||||
|
|
||||||
|
|
||||||
class Domain(OrchestraModel):
|
class Domain(OrchestraModel):
|
||||||
api_name = 'domain'
|
api_name = 'domain'
|
||||||
|
|
|
@ -67,3 +67,6 @@ class GetBootstrapedPercentTest(TestCase):
|
||||||
value = get_bootstraped_percent(-10, 100)
|
value = get_bootstraped_percent(-10, 100)
|
||||||
self.assertIn(value, self.BS_WIDTH)
|
self.assertIn(value, self.BS_WIDTH)
|
||||||
self.assertEqual(value, 0)
|
self.assertEqual(value, 0)
|
||||||
|
|
||||||
|
def test_invalid_total_is_zero(self):
|
||||||
|
value = get_bootstraped_percent(25, 0)
|
||||||
|
|
|
@ -4,8 +4,11 @@ def get_bootstraped_percent(value, total):
|
||||||
|
|
||||||
Useful to set progress bar width using CSS classes (e.g. w-25)
|
Useful to set progress bar width using CSS classes (e.g. w-25)
|
||||||
"""
|
"""
|
||||||
|
try:
|
||||||
|
percent = value / total
|
||||||
|
except ZeroDivisionError:
|
||||||
|
return 0
|
||||||
|
|
||||||
percent = value / total
|
|
||||||
bootstraped = round(percent * 4) * 100 // 4
|
bootstraped = round(percent * 4) * 100 // 4
|
||||||
|
|
||||||
# handle min and max boundaries
|
# handle min and max boundaries
|
||||||
|
|
Loading…
Reference in a new issue