@@ -203,7 +203,9 @@ def stop_node(self, node: Node):
203203 """
204204 print (f"Stopping { node .type } { node .name } on port { node .port } " )
205205 url = f"{ node .base_url } /mgmt/v1/stop"
206- self .http_request ("POST" , url )
206+ self .http_request (
207+ "POST" , url , f"stop { node .type } { node .name } " , quiet_success = True
208+ )
207209
208210 def selected_nodes_description (self ):
209211 """
@@ -280,26 +282,13 @@ def status_topology(self):
280282 for node in self .selected_nodes ():
281283 self .status_node (node )
282284
283- def report_response (self , response : httpx .Response ):
284- """
285- Report a response from a node.
286- """
287- if response .status_code != 200 :
288- print (f"Status code: { response .status_code } " )
289- try :
290- response_json = response .json ()
291- print (json .dumps (response_json , indent = 2 ))
292- except json .JSONDecodeError :
293- print (response .text )
294-
295285 def status_node (self , node : Node ):
296286 """
297287 Report status for a node.
298288 """
299289 print (f"Status for { node .type } { node .name } on port { node .port } " )
300290 url = f"{ node .base_url } /mgmt/v1/status"
301- response = self .http_request ("GET" , url )
302- self .report_response (response )
291+ self .http_request ("GET" , url , "get status" )
303292
304293 def etsi_qkd (self ):
305294 """
@@ -338,8 +327,7 @@ def etsi_qkd_status(self, master_node: Node, slave_node: Node):
338327 f"Invoke ETSI QKD Status API for client { master_node .name } on port { master_node .port } "
339328 )
340329 url = f"{ master_node .base_url } /etsi/api/v1/keys/{ slave_node .name } /status"
341- response = self .http_request ("GET" , url )
342- self .report_response (response )
330+ self .http_request ("GET" , url , "get status" )
343331
344332 def etsi_qkd_get_key (self , master_node : Node , slave_node : Node ) -> None | dict :
345333 """
@@ -349,8 +337,9 @@ def etsi_qkd_get_key(self, master_node: Node, slave_node: Node) -> None | dict:
349337 f"Invoke ETSI QKD Get Key API for client { master_node .name } on port { master_node .port } "
350338 )
351339 url = f"{ master_node .base_url } /etsi/api/v1/keys/{ slave_node .name } /enc_keys"
352- response = self .http_request ("GET" , url )
353- self .report_response (response )
340+ response = self .http_request ("GET" , url , "get key" )
341+ if response is None :
342+ return None
354343 return response .json ()
355344
356345 def etsi_qkd_get_key_with_key_ids (
@@ -364,8 +353,9 @@ def etsi_qkd_get_key_with_key_ids(
364353 f"on port { slave_node .port } "
365354 )
366355 url = f"{ slave_node .base_url } /etsi/api/v1/keys/{ master_node .name } /dec_keys?key_ID={ key_id } "
367- response = self .http_request ("GET" , url )
368- self .report_response (response )
356+ response = self .http_request ("GET" , url , "get key with key IDs" )
357+ if response is None :
358+ return None
369359 return response .json ()
370360
371361 def etsi_qkd_get_key_pair (self , master_node : Node , slave_node : Node ):
@@ -384,20 +374,28 @@ def etsi_qkd_get_key_pair(self, master_node: Node, slave_node: Node):
384374 else :
385375 print ("Key values do not match" )
386376
387- def http_request (self , method : str , url : str ) -> httpx .Response :
377+ def http_request (
378+ self , method : str , url : str , action : str | None , quiet_success = False
379+ ) -> httpx .Response :
388380 """
389381 Make an HTTP request.
390382 """
391383 try :
392384 response = httpx .request (method , url , timeout = 1.0 )
393385 except httpx .HTTPError as exc :
394- self .error (f"Failed to make HTTP request { method } { url } : { exc } " )
386+ if action is not None :
387+ print (f"Failed to { action } : { method } { url } raised exception { exc } " )
395388 return None
396389 if response .status_code != 200 :
397- self .error (
398- f"HTTP request { method } { url } failed "
399- f"with status code { response .status_code } : { response .text } "
390+ print (
391+ f"Failed to { action } : { method } { url } returned status code { response .status_code } "
400392 )
393+ if not quiet_success :
394+ try :
395+ response_json = response .json ()
396+ print (json .dumps (response_json , indent = 2 ))
397+ except json .JSONDecodeError :
398+ print (response .text )
401399 return response
402400
403401
0 commit comments