Skip to content

Commit 2f52d6d

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Convert project rating page to use v2 summary API"
2 parents 7ac2922 + 15f5a7e commit 2f52d6d

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

cloudkittydashboard/api/cloudkitty.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525

2626
@memoized
27-
def cloudkittyclient(request):
27+
def cloudkittyclient(request, version='1'):
2828
"""Initialization of Cloudkitty client."""
2929
cacert = getattr(settings, 'OPENSTACK_SSL_CACERT', None)
3030
insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
@@ -43,7 +43,7 @@ def cloudkittyclient(request):
4343
}
4444

4545
return ck_client.Client(
46-
'1',
46+
version,
4747
auth=auth,
4848
cacert=cacert,
4949
insecure=insecure,

cloudkittydashboard/dashboards/project/rating/tables.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@
1919
class SummaryTable(tables.DataTable):
2020
"""This table formats a summary for the given tenant."""
2121

22-
res_type = tables.Column('res_type', verbose_name=_('Metric Type'))
22+
res_type = tables.Column('type', verbose_name=_('Metric Type'))
2323
rate = tables.Column('rate', verbose_name=_('Rate'))
2424

2525
class Meta(object):
2626
name = "summary"
2727
verbose_name = _("Summary")
28+
29+
def get_object_id(self, datum):
30+
return datum.get('type')

cloudkittydashboard/dashboards/project/rating/views.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,23 @@
2222
from cloudkittydashboard.api import cloudkitty as api
2323
from cloudkittydashboard.dashboards.project.rating \
2424
import tables as rating_tables
25-
from cloudkittydashboard.utils import TemplatizableDict
2625

2726

2827
class IndexView(tables.DataTableView):
2928
table_class = rating_tables.SummaryTable
3029
template_name = 'project/rating/index.html'
3130

3231
def get_data(self):
33-
summary = api.cloudkittyclient(self.request).report.get_summary(
34-
tenant_id=self.request.user.tenant_id,
35-
groupby=['tenant_id', 'res_type'])['summary']
36-
summary = api.identify(summary, key='res_type', name=True)
37-
summary.append(TemplatizableDict({
38-
'id': 'ALL',
39-
'res_type': 'TOTAL',
40-
'name': 'ALL',
41-
'rate': sum([float(i['rate']) for i in summary]),
42-
}))
43-
return summary
32+
summary = api.cloudkittyclient(
33+
self.request, version='2').summary.get_summary(
34+
tenant_id=self.request.user.tenant_id,
35+
groupby=['type'], response_format='object')
36+
37+
data = summary.get('results')
38+
total = sum([r.get('rate') for r in data])
39+
40+
data.append({'type': 'TOTAL', 'rate': total})
41+
return data
4442

4543

4644
def quote(request):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
other:
3+
- |
4+
The ratings panel in the project dashboard has been converted
5+
to use the v2 API.

0 commit comments

Comments
 (0)