def create_multipoint_tunnel(self, name=None, profile_name=None, self_ip_address=None, vxlanid=0, description=None, folder='Common'): if not self.tunnel_exists(name=name, folder=folder): folder = str(folder).replace('/', '') # check partition is okay to create in self.bigip.system.set_rest_folder(folder) payload = dict() payload['name'] = name payload['partition'] = folder payload['profile'] = profile_name payload['key'] = vxlanid payload['localAddress'] = self_ip_address payload['remoteAddress'] = '0.0.0.0' if description: payload['description'] = description request_url = self.bigip.icr_url + '/net/tunnels/tunnel/' response = self.bigip.icr_session.post( request_url, data=json.dumps(payload), timeout=const.CONNECTION_TIMEOUT) if response.status_code < 400: if not folder == 'Common': self.bigip.route.add_vlan_to_domain(name=name, folder=folder) return True else: Log.error('VXLAN', response.text) raise exceptions.VXLANCreationException(response.text) else: return False
def create_multipoint_profile(self, name=None, folder='Common'): if not self.profile_exists(name=name, folder=folder): folder = str(folder).replace('/', '') self.bigip.system.set_rest_folder(folder) payload = dict() payload['name'] = name payload['partition'] = folder payload['defaultsFrom'] = 'vxlan' payload['floodingType'] = 'multipoint' payload['port'] = constants.VXLAN_UDP_PORT request_url = self.bigip.icr_url + '/net/tunnels/vxlan/' response = self.bigip.icr_session.post( request_url, data=json.dumps(payload), timeout=const.CONNECTION_TIMEOUT) if response.status_code < 400: return True elif response.staus_code == 409: return True else: Log.error('VXLAN', response.text) raise exceptions.VXLANCreationException(response.text) else: return False