@@ -75,11 +75,8 @@ def _get_replica_info(deployment):
7575 return {"min" : "N/A" , "max" : "N/A" }
7676
7777
78- def _get_ready_status (cclient , deployment ):
78+ def _get_ready_status (deployment , service_status ):
7979 api_status = deployment .status
80- service_status = (
81- cclient .get_status (deployment .id ).service_status if deployment .status == DeploymentStatus .ACTIVE else None
82- )
8380
8481 status_styles = {
8582 (DeploymentStatus .PAUSED , None ): ("paused" , "yellow" , "black" ),
@@ -103,37 +100,32 @@ def _get_ready_status(cclient, deployment):
103100 return click .style (style [0 ], fg = style [1 ], bg = style [2 ])
104101
105102
106- def _get_status_error_messages ( cclient , deployment ):
107- if deployment . status != DeploymentStatus . ACTIVE :
108- return []
103+ def _append_status_error_message ( messages , seen_messages , label , error_message ):
104+ if not error_message or error_message in seen_messages :
105+ return
109106
110- try :
111- status = cclient .get_status_v3 (deployment .id )
112- except ApiException as e :
113- if e .status not in [400 , 404 ]:
114- raise
107+ seen_messages .add (error_message )
108+ messages .append (f"{ label } : { error_message } " )
115109
116- status = cclient .get_status (deployment .id )
117- error_message = getattr (status , "error_message" , None )
118- return [error_message ] if error_message else []
119110
120- messages = []
121- seen_messages = set ()
111+ def _get_status_error_messages (status_response ):
112+ if status_response is None :
113+ return []
122114
123- def add_message ( label , error_message ):
124- if not error_message or error_message in seen_messages :
125- return
115+ error_message = getattr ( status_response , " error_message" , None )
116+ if error_message :
117+ return [ error_message ]
126118
127- seen_messages . add ( error_message )
128- messages . append ( f" { label } : { error_message } " )
119+ messages = []
120+ seen_messages = set ( )
129121
130- for revision in status . revision_pod_details_list or []:
122+ for revision in getattr ( status_response , " revision_pod_details_list" , None ) or []:
131123 revision_label = f"revision { revision .revision_number } " if revision .revision_number is not None else "revision"
132- add_message ( revision_label , revision .error_message )
124+ _append_status_error_message ( messages , seen_messages , revision_label , revision .error_message )
133125
134- for pod in revision . pod_details_list or []:
126+ for pod in getattr ( revision , " pod_details_list" , None ) or []:
135127 pod_label = pod .name or "pod"
136- add_message ( f"{ revision_label } / { pod_label } " , pod .error_message )
128+ _append_status_error_message ( messages , seen_messages , f"{ revision_label } / { pod_label } " , pod .error_message )
137129
138130 return messages
139131
@@ -184,8 +176,10 @@ def get(type, id):
184176 else :
185177 sys .exit ("Please enter correct deployment type" )
186178
187- ready_status = _get_ready_status (cclient , deployment )
188- status_error_messages = _get_status_error_messages (cclient , deployment )
179+ deployment_status = cclient .get_status (deployment ) if deployment .status == DeploymentStatus .ACTIVE else None
180+ service_status = deployment_status .service_status if deployment_status is not None else None
181+ ready_status = _get_ready_status (deployment , service_status )
182+ status_error_messages = _get_status_error_messages (deployment_status )
189183 _ , id_to_hw_map = _get_hw_to_id_map (cclient , deployment .cluster_id )
190184 hw = id_to_hw_map [deployment .hardware_instance_id ]
191185 detail_rows = [
0 commit comments