@@ -45,15 +45,36 @@ def aks_machine_list_table_format(results):
4545 return [aks_machine_show_table_format (r ) for r in results ]
4646
4747
48- def aks_machine_show_table_format (result ):
49- def parser (entry ):
48+ def aks_machine_show_table_format (result : dict ):
49+ def parser (entry : dict ):
5050 ip_addresses = ""
51- for k in entry ["properties" ]["network" ]["ipAddresses" ]:
52- ip_addresses += "ip:" + k ["ip" ] + "," + "family:" + k ["family" ] + ";"
51+ zones = ""
52+ if "zones" in entry and entry ["zones" ]:
53+ zones_data = entry ["zones" ]
54+ if isinstance (zones_data , list ):
55+ zones = ', ' .join (part .strip () for part in zones_data if part and part .strip ())
56+ elif isinstance (zones_data , str ):
57+ zones = zones_data .strip ()
58+ # If no zones at top-level, check in properties
59+ elif "properties" in entry and "zones" in entry ["properties" ] and entry ["properties" ]["zones" ]:
60+ zones_data = entry ["properties" ]["zones" ]
61+ if isinstance (zones_data , list ):
62+ zones = ', ' .join (part .strip () for part in zones_data if part and part .strip ())
63+ elif isinstance (zones_data , str ):
64+ zones = zones_data .strip ()
65+ if "properties" in entry and isinstance (entry ["properties" ], dict ):
66+ if "network" in entry ["properties" ] and isinstance (entry ["properties" ]["network" ], dict ):
67+ if ("ipAddresses" in entry ["properties" ]["network" ] and
68+ isinstance (entry ["properties" ]["network" ]["ipAddresses" ], list )):
69+ for k in entry ["properties" ]["network" ]["ipAddresses" ]:
70+ if isinstance (k , dict ) and "ip" in k and "family" in k :
71+ ip_addresses += f"ip:{ k ['ip' ]} ,family:{ k ['family' ]} ;"
5372 entry ["ip" ] = ip_addresses
73+ entry ["zones" ] = zones
5474 parsed = compile_jmes ("""{
5575 name: name,
56- ip: ip
76+ ip: ip,
77+ zones: zones
5778 }""" )
5879 return parsed .search (entry , Options (dict_cls = OrderedDict ))
5980 return parser (result )
0 commit comments