def delete_by_vlan_name(self, vlan_name=None, folder='Common'): """ Delete selfip by vlan name """ if vlan_name: folder = str(folder).replace('/', '') request_url = self.bigip.icr_url + '/net/self' request_url += '?$select=vlan,selfLink,floating' if folder: request_filter = 'partition eq ' + folder request_url += '&$filter=' + request_filter else: folder = 'Common' response = self.bigip.icr_session.get( request_url, timeout=const.CONNECTION_TIMEOUT) if response.status_code < 400: return_obj = json.loads(response.text) if 'items' in return_obj: float_to_delete = [] nonfloat_to_delete = [] for selfip in return_obj['items']: name = os.path.basename(selfip['vlan']) if vlan_name == name or \ vlan_name == strip_folder_and_prefix(name): if selfip['floating'] == 'enabled': float_to_delete.append( self.bigip.icr_link(selfip['selfLink'])) else: nonfloat_to_delete.append( self.bigip.icr_link(selfip['selfLink'])) for selfip in float_to_delete: del_res = self.bigip.icr_session.delete( selfip, timeout=const.CONNECTION_TIMEOUT) if del_res.status_code > 399 and\ del_res.status_code != 404: Log.error('self', del_res.text) raise exceptions.SelfIPDeleteException( del_res.text) for selfip in nonfloat_to_delete: del_res = self.bigip.icr_session.delete( selfip, timeout=const.CONNECTION_TIMEOUT) if del_res.status_code > 399 and\ del_res.status_code != 404: Log.error('self', del_res.text) raise exceptions.SelfIPDeleteException( del_res.text) return True else: Log.error('selfip', response.text) raise exceptions.SelfIPQueryException(response.text) return False
def delete_all(self, folder='Common'): folder = str(folder).replace('/', '') request_url = self.bigip.icr_url + '/net/self/' 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('self', response.text) raise exceptions.SelfIPDeleteException( response.text) return True else: Log.error('self', response.text) raise exceptions.SelfIPQueryException(response.text) return False
def delete(self, name=None, folder='Common', preserve_vlan_name=False): if name: folder = str(folder).replace('/', '') request_url = self.bigip.icr_url + '/net/self/' 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: Log.error('self', response.text) raise exceptions.SelfIPDeleteException(response.text) else: return True return False