From 7e0a1f433f6906933af2da5f8cfad075388dde2a Mon Sep 17 00:00:00 2001 From: Luka Peschke Date: Thu, 1 Sep 2016 17:31:22 +0200 Subject: [PATCH] Add fields to csv reports This adds the UserId, ProjectId, ItemName, ItemFlavor, Service and Cost fields to the csv reports. Change-Id: I4a31d779ea185d7bae234b833429f126c4c218c7 --- cloudkitty/writer/csv_map.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cloudkitty/writer/csv_map.py b/cloudkitty/writer/csv_map.py index 466e0eff..5c1803e0 100644 --- a/cloudkitty/writer/csv_map.py +++ b/cloudkitty/writer/csv_map.py @@ -36,11 +36,17 @@ class CSVMapped(csv_base.BaseCSVBackend): ('UsageEnd', self._trans_get_usage_end), ('ResourceId', self._trans_res_id), ('Operation', self._trans_operation), + ('UserId', 'desc:user_id'), + ('ProjectId', 'desc:project_id'), + ('ItemName', 'desc:name'), + ('ItemFlavor', 'desc:flavor'), ('AvailabilityZone', 'desc:availability_zone'), + ('Service', self._trans_service), ('ItemDescription', 'rating:description'), ('UsageQuantity', 'vol:qty'), ('RateId', 'rating:rate_id'), ('RateValue', 'rating:price'), + ('Cost', self._trans_calc_cost), ('user:*', 'desc:metadata:*')]) def _write_total(self): @@ -131,3 +137,17 @@ class CSVMapped(csv_base.BaseCSVBackend): """ if context == 'compute': return report_data['desc'].get('instance_id') + + def _trans_calc_cost(self, context, report_data): + """Cost calculation function. + + """ + try: + quantity = report_data['vol'].get('qty') + rate = report_data['rating'].get('price') + return str(float(quantity) * rate) + except TypeError: + pass + + def _trans_service(self, context, report_data): + return context