From c6e23ab77060b3be80ab3095bf6a930afe551a6e Mon Sep 17 00:00:00 2001 From: Aaron-DH Date: Thu, 10 Dec 2015 18:51:41 +0800 Subject: [PATCH] Add support for query cost by service Query cost of each service by using total-get -s servicetype Change-Id: I7f579c70fe78cbd4031aa6ec20279d7661a2d67c Closes-Bug: #1549687 --- cloudkittyclient/v1/report/__init__.py | 4 +++- cloudkittyclient/v1/report/shell.py | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cloudkittyclient/v1/report/__init__.py b/cloudkittyclient/v1/report/__init__.py index 8d0c397..50c86d8 100644 --- a/cloudkittyclient/v1/report/__init__.py +++ b/cloudkittyclient/v1/report/__init__.py @@ -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() diff --git a/cloudkittyclient/v1/report/shell.py b/cloudkittyclient/v1/report/shell.py index 775bbfa..33cc6ae 100644 --- a/cloudkittyclient/v1/report/shell.py +++ b/cloudkittyclient/v1/report/shell.py @@ -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})