@@ -490,15 +490,30 @@ def __update_state(self):
490490 else :
491491 self .removeNodeRoute (self .node_id , self .to )
492492
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+
493511 def run (self ):
494512 # query node's route ip in v4 or v6 format.
495513 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 )
500515 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 )
502517 print emsg
503518 else :
504519 self .__pre_check ()
0 commit comments