@@ -420,23 +420,9 @@ def create_tunnel(bridge, remote_ip, gre_key, src_host, dst_host, network_uuid):
420420 # find xs network for this bridge, verify is used for ovs tunnel network
421421 xs_nw_uuid = do_cmd ([XE_PATH , "network-list" ,
422422 "bridge=%s" % bridge , "--minimal" ])
423- ovs_tunnel_network = False
424- try :
425- ovs_tunnel_network = do_cmd ([XE_PATH ,"network-param-get" ,
426- "uuid=%s" % xs_nw_uuid ,
427- "param-name=other-config" ,
428- "param-key=is-ovs-tun-network" , "--minimal" ])
429- except :
430- pass
431423
432- ovs_vpc_distributed_vr_network = False
433- try :
434- ovs_vpc_distributed_vr_network = do_cmd ([XE_PATH ,"network-param-get" ,
435- "uuid=%s" % xs_nw_uuid ,
436- "param-name=other-config" ,
437- "param-key=is-ovs-vpc-distributed-vr-network" , "--minimal" ])
438- except :
439- pass
424+ ovs_tunnel_network = is_regular_tunnel_network (xs_nw_uuid )
425+ ovs_vpc_distributed_vr_network = is_vpc_network_with_distributed_routing (xs_nw_uuid )
440426
441427 if ovs_tunnel_network == 'True' :
442428 # add flow entryies for dropping broadcast coming in from gre tunnel
@@ -867,4 +853,38 @@ class tier_ports:
867853 error_message = "An unexpected error occurred while updating the flooding rules for the bridge " + \
868854 bridge + " when interface " + " %s" % interface + " is %s" % command
869855 logging .debug (error_message + " due to " + str (e ))
870- raise error_message
856+ raise error_message
857+
858+
859+ def is_regular_tunnel_network (xs_nw_uuid ):
860+ cmd = [XE_PATH ,"network-param-get" , "uuid=%s" % xs_nw_uuid , "param-name=other-config" ,
861+ "param-key=is-ovs-tun-network" , "--minimal" ]
862+ logging .debug ("Executing:%s" , cmd )
863+ pipe = subprocess .PIPE
864+ proc = subprocess .Popen (cmd , shell = False , stdin = pipe , stdout = pipe ,
865+ stderr = pipe , close_fds = True )
866+ ret_code = proc .wait ()
867+ if ret_code :
868+ return False
869+
870+ output = proc .stdout .read ()
871+ if output .endswith ('\n ' ):
872+ output = output [:- 1 ]
873+ return output
874+
875+
876+ def is_vpc_network_with_distributed_routing (xs_nw_uuid ):
877+ cmd = [XE_PATH ,"network-param-get" , "uuid=%s" % xs_nw_uuid , "param-name=other-config" ,
878+ "param-key=is-ovs-vpc-distributed-vr-network" , "--minimal" ]
879+ logging .debug ("Executing:%s" , cmd )
880+ pipe = subprocess .PIPE
881+ proc = subprocess .Popen (cmd , shell = False , stdin = pipe , stdout = pipe ,
882+ stderr = pipe , close_fds = True )
883+ ret_code = proc .wait ()
884+ if ret_code :
885+ return False
886+
887+ output = proc .stdout .read ()
888+ if output .endswith ('\n ' ):
889+ output = output [:- 1 ]
890+ return output
0 commit comments