Add support for query cost by service

Query cost of each service by using total-get -s servicetype

Change-Id: I7f579c70fe78cbd4031aa6ec20279d7661a2d67c
Closes-Bug: #1549687
This commit is contained in:
Aaron-DH 2015-12-10 18:51:41 +08:00
parent 6abecf6348
commit c6e23ab770
2 changed files with 8 additions and 2 deletions

View File

@ -30,7 +30,7 @@ class ReportManager(base.Manager):
def list_tenants(self):
return self.client.get(self.base_url + "/tenants").json()
def get_total(self, tenant_id=None, begin=None, end=None):
def get_total(self, tenant_id=None, begin=None, end=None, service=None):
url = self.base_url + "/total"
filters = list()
if tenant_id:
@ -39,6 +39,8 @@ class ReportManager(base.Manager):
filters.append("begin=%s" % begin.isoformat())
if end:
filters.append("end=%s" % end.isoformat())
if service:
filters.append("service=%s" % service)
if filters:
url += "?%s" % ('&'.join(filters))
return self.client.get(url).json()

View File

@ -36,11 +36,15 @@ def do_report_tenant_list(cc, args):
@utils.arg('-e', '--end',
help='End timestamp',
required=False)
@utils.arg('-s', '--service',
help='Service Type',
required=False)
def do_total_get(cc, args):
"""Get total reports."""
begin = utils.ts2dt(args.begin) if args.begin else None
end = utils.ts2dt(args.end) if args.end else None
total = cc.reports.get_total(tenant_id=args.total_tenant_id,
begin=begin,
end=end)
end=end,
service=args.service)
utils.print_dict({'Total': total or 0.0})