Skip to content

Commit a909343

Browse files
authored
Merge pull request #32 from stat-kwon/master
Add strip method to string values and change validation logic of cost and usage_quantity
2 parents dc695fb + ac2aa71 commit a909343

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

src/cloudforet/cost_analysis/manager/cost_manager.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def _make_cost_data(self, results):
3636
costs_data = []
3737
for result in results:
3838
result = self._apply_strip_to_dict_keys(result)
39+
result = self._apply_strip_to_dict_values(result)
3940

4041
if self.http_file_connector.field_mapper:
4142
result = self._change_result_by_field_mapper(result)
@@ -89,6 +90,13 @@ def _apply_strip_to_dict_keys(result):
8990
del result[key]
9091
return result
9192

93+
@staticmethod
94+
def _apply_strip_to_dict_values(result):
95+
for key, value in result.items():
96+
if isinstance(value, str):
97+
result[key] = value.strip()
98+
return result
99+
92100
def _change_result_by_field_mapper(self, result):
93101
for origin_field, actual_field in self.http_file_connector.field_mapper.items():
94102
if isinstance(actual_field, str):
@@ -141,17 +149,20 @@ def _convert_cost_and_usage_quantity_types(result):
141149
result['cost'] = float(result['cost'])
142150
result['usage_quantity'] = float(result.get('usage_quantity', 0))
143151
except Exception as e:
144-
_LOGGER.debug(f'[_convert_cost_and_usage_quantity_types] convert cost and usage quantity types error: {e}',
145-
exc_info=True)
152+
_LOGGER.error(
153+
f'[_convert_cost_and_usage_quantity_types] convert cost and usage quantity types error: {e} (data={result})',
154+
exc_info=True)
146155
return False
147156
return True
148157

149158
@staticmethod
150159
def _exist_cost_and_usage_quantity(result):
151-
if result['cost'] and result.get('usage_quantity'):
160+
if result['cost'] or result['cost'] == float(0):
161+
return True
162+
elif result['usage_quantity'] or result['usage_quantity'] == float(0):
152163
return True
153164
else:
154-
_LOGGER.debug(f'[_exist_cost_and_usage_quantity] cost or usage quantity are empty: {result}')
165+
_LOGGER.error(f'[_exist_cost_and_usage_quantity] cost or usage quantity are empty: {result}')
155166
return False
156167

157168
@staticmethod

0 commit comments

Comments
 (0)