@@ -490,15 +490,30 @@ def __update_state(self):
490
490
else :
491
491
self .removeNodeRoute (self .node_id , self .to )
492
492
493
+ def getNodeRoute (self , node_id , route_type ):
494
+ """This function will get node route base on node_id and route_type.
495
+
496
+ Args:
497
+ node_id (str): A string containing the node_id, example: "cloud", "BorderRouter"
498
+ route_type (str): A string containing ip type, example: "v4", "v6"
499
+
500
+ Returns:
501
+ node route ip
502
+ """
503
+ node_route_prefix = self .getNodeRoutePrefix (route_type , node_id )
504
+ node_route_via_id = self .getNodeRouteVia (route_type , node_id )
505
+ node_route_addrs = self .getNodeAddressesOnPrefix (node_route_prefix , node_route_via_id )
506
+ if len (node_route_addrs ) != 1 :
507
+ self .logger .error ("HappyNodeRoute: there should be only one route for {}, given {}" .format (node_id , len (node_route_addrs )))
508
+ return node_route_addrs [0 ]
509
+
510
+
493
511
def run (self ):
494
512
# query node's route ip in v4 or v6 format.
495
513
if not self .add and not self .delete :
496
- node_route_prefix = self .getNodeRoutePrefix (self .route_type , self .node_id )
497
- node_route_via_id = self .getNodeRouteVia (self .route_type , self .node_id )
498
- node_route_addrs = self .getNodeAddressesOnPrefix (node_route_prefix , node_route_via_id )
499
-
514
+ route_ip = self .getNodeRoute (self .node_id , self .route_type )
500
515
emsg = "virtual node: {}, route_type: {}, route ip: {}" .format (
501
- self .node_id , self .route_type , node_route_addrs )
516
+ self .node_id , self .route_type , route_ip )
502
517
print emsg
503
518
else :
504
519
self .__pre_check ()
0 commit comments