Skip to content

Commit 0140fd7

Browse files
haule21성우 양kairu-ms
authored
[Consumption] az consumption usage list: Enhanced handling of usageStart and usageEnd when missing (#31128)
* fix: handle None UsageStart in consumption usage list and exclude from results * Update src/azure-cli/azure/cli/command_modules/consumption/custom.py Co-authored-by: kai ru <69238381+kairu-ms@users.noreply.github.com> * Update src/azure-cli/azure/cli/command_modules/consumption/custom.py Co-authored-by: kai ru <69238381+kairu-ms@users.noreply.github.com> * Update src/azure-cli/azure/cli/command_modules/consumption/custom.py Co-authored-by: kai ru <69238381+kairu-ms@users.noreply.github.com> * Update src/azure-cli/azure/cli/command_modules/consumption/custom.py Co-authored-by: kai ru <69238381+kairu-ms@users.noreply.github.com> * remove whitespace --------- Co-authored-by: 성우 양 <sww232@mediterraneanworks.com> Co-authored-by: kai ru <69238381+kairu-ms@users.noreply.github.com>
1 parent 125a749 commit 0140fd7

File tree

1 file changed

+13
-8
lines changed
  • src/azure-cli/azure/cli/command_modules/consumption

1 file changed

+13
-8
lines changed

src/azure-cli/azure/cli/command_modules/consumption/custom.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def pre_operations(self):
8282
def _output(self, *args, **kwargs):
8383
args = self.ctx.args
8484
result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True)
85-
result = list([transform_usage_output(item) for item in result])
85+
result = list(filter(None, [transform_usage_output(item) for item in result]))
8686
if has_value(args.top):
8787
next_link = None
8888
else:
@@ -92,13 +92,18 @@ def _output(self, *args, **kwargs):
9292

9393
def transform_usage_output(result):
9494
from dateutil import parser
95-
usageStart = parser.parse(result['usageStart'])
96-
usageEnd = parser.parse(result['usageEnd'])
97-
result['usageStart'] = usageStart.strftime("%Y-%m-%dT%H:%M:%SZ")
98-
result['usageEnd'] = usageEnd.strftime("%Y-%m-%dT%H:%M:%SZ")
99-
result['usageQuantity'] = str(result['usageQuantity'])
100-
result['billableQuantity'] = str(result.get('billableQuantity', 'None'))
101-
result['pretaxCost'] = str(result['pretaxCost'])
95+
usageStart = result.get('usageStart', None)
96+
usageEnd = result.get('usageEnd', None)
97+
if usageStart or usageEnd:
98+
usageStart = parser.parse(usageStart).strftime("%Y-%m-%dT%H:%M:%SZ") if usageStart else 'None'
99+
usageEnd = parser.parse(usageEnd).strftime("%Y-%m-%dT%H:%M:%SZ") if usageEnd else 'None'
100+
else:
101+
return None
102+
result['usageStart'] = usageStart
103+
result['usageEnd'] = usageEnd
104+
result['usageQuantity'] = str(result.get('usageQuantity', None))
105+
result['billableQuantity'] = str(result.get('billableQuantity', None))
106+
result['pretaxCost'] = str(result.get('pretaxCost', None))
102107
if 'meterDetails' in result:
103108
result['meterDetails']['totalIncludedQuantity'] = str(result['meterDetails'].get('pretaxStandardRate', None))
104109
result['meterDetails']['pretaxStandardRate'] = str(result['meterDetails'].get('pretaxStandardRate', None))

0 commit comments

Comments
 (0)