Exemple #1
0
    def delete_profile(self, name=None, folder='Common'):
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/net/tunnels/gre/'
        request_url += '~' + folder + '~' + name

        response = self.bigip.icr_session.delete(request_url,
                                    timeout=const.CONNECTION_TIMEOUT)

        if response.status_code < 400:
            return True
        elif response.status_code == 404:
            return True
        else:
            Log.error('L2GRE', response.text)
            raise exceptions.L2GRETunnelDeleteException(response.text)
        return False
Exemple #2
0
    def delete_tunnel(self, name=None, folder='Common'):
        """ Delete tunnel """
        folder = str(folder).replace('/', '')
        # delete arp and fdb records for this tunnel first
        request_url = self.bigip.icr_url + '/net/fdb/tunnel/'
        request_url += '~' + folder + '~' + name
        response = self.bigip.icr_session.get(request_url,
                                              timeout=const.CONNECTION_TIMEOUT)
        if response.status_code < 400:
            response_obj = json.loads(response.text)
            if const.FDB_POPULATE_STATIC_ARP:
                if 'records' in response_obj:
                    for record in response_obj['records']:
                        self.bigip.arp.delete_by_mac(
                            mac_address=record['name'], folder=folder)
            payload = dict()
            payload['records'] = []
            tunnel_link = self.bigip.icr_link(response_obj['selfLink'])
            response = self.bigip.icr_session.put(
                tunnel_link,
                data=json.dumps(payload),
                timeout=const.CONNECTION_TIMEOUT)
            response = self.bigip.icr_session.delete(tunnel_link)
            if response.status_code > 399:
                Log.error('fdb', response.text)
                raise exceptions.L2GRETunnelUpdateException(response.text)
        elif response.status_code != 404:
            Log.error('fdb', response.text)
            raise exceptions.L2GRETunnelQueryException(response.text)

        request_url = self.bigip.icr_url + '/net/tunnels/tunnel/'
        request_url += '~' + folder + '~' + name
        response = self.bigip.icr_session.delete(
            request_url, timeout=const.CONNECTION_TIMEOUT)
        if response.status_code < 400:
            return True
        elif response.status_code == 404:
            return True
        else:
            Log.error('L2GRE', response.text)
            raise exceptions.L2GRETunnelDeleteException(response.text)
        return False