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
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
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
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
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
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