Пример #1
0
 def delete_all(self, folder='Common'):
     """ Delete all NATs """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/ltm/nat/'
     request_url += '?$select=name,selfLink'
     request_filter = 'partition eq ' + folder
     request_url += '&$filter=' + request_filter
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         response_obj = json.loads(response.text)
         if 'items' in response_obj:
             for item in response_obj['items']:
                 if item['name'].startswith(self.OBJ_PREFIX):
                     response = self.bigip.icr_session.delete(
                         self.bigip.icr_link(item['selfLink']),
                         timeout=const.CONNECTION_TIMEOUT)
                     if response.status_code > 400 and \
                        response.status_code != 404:
                         Log.error('nat', response.text)
                         raise exceptions.NATDeleteException(response.text)
         return True
     else:
         Log.error('nat', response.text)
         raise exceptions.NATQueryException(response.text)
     return False
Пример #2
0
 def get_original_addr(self, name=None, folder='Common'):
     """ Get NAT original addr """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/nat/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=originatingAddress'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'originatingAddress' in return_obj:
                 return return_obj['originatingAddress']
         else:
             Log.error('nat', response.text)
             raise exceptions.NATQueryException(response.text)
         return None
Пример #3
0
    def get_nats(self, folder='Common'):
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/ltm/nat'
        request_url += '?$select=name'
        request_url += '&$filter=partition eq ' + folder

        response = self.bigip.icr_session.get(request_url,
                                              timeout=const.CONNECTION_TIMEOUT)
        nat_names = []
        if response.status_code < 400:
            return_obj = json.loads(response.text)
            if 'items' in return_obj:
                for nat in return_obj['items']:
                    nat_names.append(strip_folder_and_prefix(nat['name']))
        elif response.status_code != 404:
            Log.error('nat', response.text)
            raise exceptions.NATQueryException(response.text)
        return nat_names
Пример #4
0
    def get_original_addrs(self, folder='Common'):
        """ Get NAT original addrs """
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/ltm/nat'
        request_url += '?$select=originatingAddress'
        request_url += '&$filter=partition eq ' + folder

        response = self.bigip.icr_session.get(request_url,
                                              timeout=const.CONNECTION_TIMEOUT)
        orig_addresses = []
        if response.status_code < 400:
            return_obj = json.loads(response.text)
            if 'items' in return_obj:
                for nat in return_obj['items']:
                    orig_addresses.append(nat['originatingAddress'])
        else:
            Log.error('nat', response.text)
            raise exceptions.NATQueryException(response.text)
        return orig_addresses
Пример #5
0
    def get_addrs(self, folder='Common'):
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/ltm/nat'
        request_url += '?$select=translationAddress'
        request_url += '&$filter=partition eq ' + folder

        response = self.bigip.icr_session.get(request_url,
                                              timeout=const.CONNECTION_TIMEOUT)
        trans_addresses = []
        if response.status_code < 400:
            return_obj = json.loads(response.text)
            if 'items' in return_obj:
                for nat in return_obj['items']:
                    trans_addresses.append(
                        strip_domain_address(nat['translationAddress']))
        else:
            Log.error('nat', response.text)
            raise exceptions.NATQueryException(response)
        return trans_addresses
Пример #6
0
 def get_vlan(self, name=None, folder='Common'):
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/nat/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=vlans'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         return_vlans = []
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'vlans' in return_obj:
                 for vlan in return_obj['vlans']:
                     return_vlans.append(strip_folder_and_prefix(vlan))
         elif response.status_code != 404:
             Log.error('nat', response.text)
             raise exceptions.NATQueryException(response.text)
         if len(return_vlans) == 1:
             return_vlans = return_vlans[0]
         return return_vlans
     return None