+ def delete_bridge(self, vswitch_lst_del_br, num_bridges):
+ """Delete num_instances of bridge in ODL config
+ Args:
+ :param num_bridges: Number of bridges to delete
+ :param vswitch_lst_del_br: A list containing instances of Open vSwitch on which bridges should be deleted.
+ """
+ for vswitch_names in vswitch_lst_del_br:
+ for br_num in range(num_bridges):
+ bridge_name = unicode('br-' + str(br_num) + '-test')
+ self.send_rest_del(self.session,
+ self.vswitch_dict[vswitch_names]
+ .get('post-url')
+ + '%2Fbridge%2F'
+ + bridge_name)
+ self.session.close()
+
+ def delete_port(self, num_ports):
+ """Delete ports from ODL config
+ Args:
+ :param num_ports: Number of ports to delete
+ """
+ for port in range(num_ports):
+ bridge_name = 'br-0-test'
+ for vswitch in self.vswitch_dict.itervalues():
+ port_prefix = "tp-"
+ ovsdb_rest_url = vswitch.get('post-url') \
+ + '%2Fbridge%2F' \
+ + bridge_name \
+ + '/termination-point/'
+ port_name = port_prefix + str(port) + '-test-' + vswitch.get('ip')
+ self.send_rest_del(self.session,
+ ovsdb_rest_url + port_name)
+ self.session.close()
+
+ def send_rest_del(self, session, rest_url):
+ """Send an HTTP DELETE to the Rest URL and return the status code
+ Args:
+ :param session: The HTTP session handle
+ :return int: status_code - HTTP status code
+ """
+ ret = session.delete(rest_url,
+ headers=self.DELETE_HEADERS,
+ stream=False,
+ timeout=self.TIMEOUT)
+
+ if ret.status_code is not 200:
+ raise ValueError(ret.text,
+ ret.status_code,
+ rest_url)
+ return ret.status_code
+