Beispiel #1
0
 def exists(self, name=None, folder='Common'):
     """ Does selfip exist? """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/self/'
     request_url += '~' + folder + '~' + name
     request_url += '?$select=name'
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         return True
     elif response.status_code == 404:
         request_url = self.bigip.icr_url + '/net/self/'
         request_url += '~' + folder + '~' + strip_folder_and_prefix(name)
         request_url += '?$select=name'
         response = self.bigip.icr_session.get(
             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.SelfIPQueryException(response.text)
     else:
         Log.error('self', response.text)
         raise exceptions.SelfIPQueryException(response.text)
     return False
 def _in_use(self, name=None, folder=None):
     """ Is tunnel used by selfip? """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/self?$select=vlan'
         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:
                 for selfip in return_obj['items']:
                     vlan_name = os.path.basename(selfip['vlan'])
                     if vlan_name == name:
                         return True
                     if vlan_name == \
                        strip_folder_and_prefix(name):
                         return True
         elif response.status_code != 404:
             Log.error('self', response.text)
             raise exceptions.VXLANQueryException(response.text)
     return False
Beispiel #3
0
 def get_description(self, name=None, folder='Common'):
     """ Get vlan description """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + \
             '/net/vlan?$select=name,description'
         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:
                 for vlan in return_obj['items']:
                     vlan_name = os.path.basename(vlan['name'])
                     if vlan_name == name:
                         if 'description' in vlan:
                             return vlan['description']
                     if vlan_name == \
                        strip_folder_and_prefix(name):
                         if 'description' in vlan:
                             return vlan['description']
         elif response.status_code != 404:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return None
Beispiel #4
0
 def _in_use(self, name=None, folder=None):
     """ Does selfip use vlan? """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/self?$select=vlan'
         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:
                 for selfip in return_obj['items']:
                     vlan_name = os.path.basename(selfip['vlan'])
                     if vlan_name == name:
                         return True
                     if vlan_name == \
                        strip_folder_and_prefix(name):
                         return True
         elif response.status_code != 404:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return False
Beispiel #5
0
 def exists(self, name=None, folder='Common'):
     """ Does selfip exist? """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/self/'
     request_url += '~' + folder + '~' + name
     request_url += '?$select=name'
     response = self.bigip.icr_session.get(
         request_url, timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         return True
     elif response.status_code == 404:
         request_url = self.bigip.icr_url + '/net/self/'
         request_url += '~' + folder + '~' + strip_folder_and_prefix(name)
         request_url += '?$select=name'
         response = self.bigip.icr_session.get(
             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.SelfIPQueryException(response.text)
     else:
         Log.error('self', response.text)
         raise exceptions.SelfIPQueryException(response.text)
     return False
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
 def get_vlan(self, name=None, folder='Common'):
     """ Get selfip vlan """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/self/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=vlan'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'vlan' in return_obj:
                 return strip_folder_and_prefix(return_obj['vlan'])
         else:
             Log.error('self', response.text)
             raise exceptions.SelfIPQueryException(response.text)
     return None
Beispiel #9
0
 def get_vlan(self, name=None, folder='Common'):
     """ Get selfip vlan """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/self/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=vlan'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'vlan' in return_obj:
                 return strip_folder_and_prefix(return_obj['vlan'])
         else:
             Log.error('self', response.text)
             raise exceptions.SelfIPQueryException(response.text)
     return None
Beispiel #10
0
 def get_snatpool_member_use_count(self, name):
     """ Get use count for all SNAT pool members """
     request_url = self.bigip.icr_url + "/ltm/snatpool"
     response = self.bigip.icr_session.get(request_url, timeout=const.CONNECTION_TIMEOUT)
     use_count = 0
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if "items" in return_obj:
             items = return_obj["items"]
             for item in items:
                 if "members" in item:
                     for snat_name in item["members"]:
                         if name in strip_folder_and_prefix(snat_name):
                             use_count += 1
     elif response.status_code != 404:
         Log.error("snatpool", response.text)
         raise exceptions.SNATQueryException(response.text)
     return use_count
Beispiel #11
0
    def get_pools(self, folder='Common'):
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/ltm/pool'
        request_url += '?$select=name'
        request_url += '&$filter=partition eq ' + folder

        response = self.bigip.icr_session.get(request_url,
                                              timeout=const.CONNECTION_TIMEOUT)
        pool_names = []
        if response.status_code < 400:
            return_obj = json.loads(response.text)
            if 'items' in return_obj:
                for pool in return_obj['items']:
                    pool_names.append(strip_folder_and_prefix(pool['name']))
        elif response.status_code != 404:
            Log.error('pool', response.text)
            raise exceptions.PoolQueryException(response.text)
        return pool_names
Beispiel #12
0
 def get_snatpool_members(self, name=None, folder="Common"):
     """ Get SNAT pool members """
     if name:
         folder = str(folder).replace("/", "")
         request_url = self.bigip.icr_url + "/ltm/snatpool/"
         request_url += "~" + folder + "~" + name
         request_url += "/?$select=members"
         response = self.bigip.icr_session.get(request_url, timeout=const.CONNECTION_TIMEOUT)
         return_list = []
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if "members" in return_obj:
                 for sa in return_obj["members"]:
                     return_list.append(strip_folder_and_prefix(sa))
         elif response.status_code != 404:
             Log.error("snatpool", response.text)
             raise exceptions.SNATQueryException(response.text)
         return return_list
     return None
Beispiel #13
0
 def get_snatpool_member_use_count(self, name):
     """ Get use count for all SNAT pool members """
     request_url = self.bigip.icr_url + '/ltm/snatpool'
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     use_count = 0
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             items = return_obj['items']
             for item in items:
                 if 'members' in item:
                     for snat_name in item['members']:
                         if name in strip_folder_and_prefix(snat_name):
                             use_count += 1
     elif response.status_code != 404:
         Log.error('snatpool', response.text)
         raise exceptions.SNATQueryException(response.text)
     return use_count
Beispiel #14
0
    def get_pools(self, folder='Common'):
        folder = str(folder).replace('/', '')
        request_url = self.bigip.icr_url + '/ltm/pool'
        request_url += '?$select=name'
        request_url += '&$filter=partition eq ' + folder

        response = self.bigip.icr_session.get(
            request_url, timeout=const.CONNECTION_TIMEOUT)
        pool_names = []
        if response.status_code < 400:
            return_obj = json.loads(response.text)
            if 'items' in return_obj:
                for pool in return_obj['items']:
                    pool_names.append(
                        strip_folder_and_prefix(pool['name']))
        elif response.status_code != 404:
            Log.error('pool', response.text)
            raise exceptions.PoolQueryException(response.text)
        return pool_names
Beispiel #15
0
 def get_snatpools(self, folder="Common"):
     """ Get SNAT pools """
     folder = str(folder).replace("/", "")
     request_url = self.bigip.icr_url + "/ltm/snatpool/"
     request_url += "?$select=name"
     if folder:
         request_filter = "partition eq " + folder
         request_url += "&$filter=" + request_filter
     response = self.bigip.icr_session.get(request_url, timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if "items" in return_obj:
             for pool in return_obj["items"]:
                 return_list.append(strip_folder_and_prefix(pool["name"]))
     elif response.status_code != 404:
         Log.error("snatpool", response.text)
         raise exceptions.SNATQueryException(response.text)
     return return_list
Beispiel #16
0
 def get_snatpools(self, folder='Common'):
     """ Get SNAT pools """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/ltm/snatpool/'
     request_url += '?$select=name'
     if folder:
         request_filter = 'partition eq ' + folder
         request_url += '&$filter=' + request_filter
     response = self.bigip.icr_session.get(
         request_url, timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for pool in return_obj['items']:
                 return_list.append(strip_folder_and_prefix(pool['name']))
     elif response.status_code != 404:
         Log.error('snatpool', response.text)
         raise exceptions.SNATQueryException(response.text)
     return return_list
Beispiel #17
0
 def get_snataddresses(self, folder='Common'):
     """ Get SNAT addresses """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/ltm/snat-translation/'
     request_url += '?$select=name'
     if folder:
         request_filter = 'partition eq ' + folder
         request_url += '&$filter=' + request_filter
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for sa in return_obj['items']:
                 return_list.append(strip_folder_and_prefix(sa['name']))
     elif response.status_code != 404:
         Log.error('snat-translation', response.text)
         raise exceptions.SNATQueryException(response.text)
     return return_list
Beispiel #18
0
 def get_snatpool_members(self, name=None, folder='Common'):
     """ Get SNAT pool members """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/snatpool/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=members'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         return_list = []
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'members' in return_obj:
                 for sa in return_obj['members']:
                     return_list.append(strip_folder_and_prefix(sa))
         elif response.status_code != 404:
             Log.error('snatpool', response.text)
             raise exceptions.SNATQueryException(response.text)
         return return_list
     return None
Beispiel #19
0
 def get_snatpool_members(self, name=None, folder='Common'):
     """ Get SNAT pool members """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/snatpool/'
         request_url += '~' + folder + '~' + name
         request_url += '/?$select=members'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         return_list = []
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'members' in return_obj:
                 for sa in return_obj['members']:
                     return_list.append(strip_folder_and_prefix(sa))
         elif response.status_code != 404:
             Log.error('snatpool', response.text)
             raise exceptions.SNATQueryException(response.text)
         return return_list
     return None
Beispiel #20
0
 def get_vlans(self, folder='Common'):
     """ Get vlans """
     request_url = self.bigip.icr_url + '/net/vlan/'
     request_url += '?$select=name'
     if folder:
         folder = str(folder).replace('/', '')
         request_filter = 'partition eq ' + folder
         request_url += '&$filter=' + request_filter
     response = self.bigip.icr_session.get(
         request_url, timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for vlan in return_obj['items']:
                 return_list.append(strip_folder_and_prefix(vlan['name']))
     elif response.status_code != 404:
         Log.error('VLAN', response.text)
         raise exceptions.VLANQueryException(response.text)
     return return_list
Beispiel #21
0
 def get_monitors(self, name=None, folder='Common'):
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/pool/'
         request_url += '~' + folder + '~' + name
         request_url += '?$select=monitor'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             response_obj = json.loads(response.text)
             monitors = []
             if 'monitor' in response_obj:
                 w_split = response_obj['monitor'].split()
                 for w in w_split:
                     if w.startswith('/'):
                         monitors.append(strip_folder_and_prefix(w))
             return monitors
         elif response.status_code != 404:
             Log.error('pool', response.text)
             raise exceptions.PoolQueryException(response.text)
     return []
Beispiel #22
0
 def get_monitors(self, name=None, folder='Common'):
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/ltm/pool/'
         request_url += '~' + folder + '~' + name
         request_url += '?$select=monitor'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             response_obj = json.loads(response.text)
             monitors = []
             if 'monitor' in response_obj:
                 w_split = response_obj['monitor'].split()
                 for w in w_split:
                     if w.startswith('/'):
                         monitors.append(strip_folder_and_prefix(w))
             return monitors
         elif response.status_code != 404:
             Log.error('pool', response.text)
             raise exceptions.PoolQueryException(response.text)
     return []
Beispiel #23
0
 def get_tunnel_by_description(self, description=None, folder='Common'):
     """ Get tunnel by description """
     folder = str(folder).replace('/', '')
     if description:
         request_url = self.bigip.icr_url + '/net/tunnels/tunnel/'
         if folder:
             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:
             return_obj = json.loads(response.text)
             if 'items' in return_obj:
                 for tunnel in return_obj['items']:
                     if tunnel['description'] == description:
                         return strip_folder_and_prefix(tunnel['name'])
             return None
         elif response.status_code != 404:
             Log.error('L2GRE', response.text)
             raise exceptions.L2GRETunnelQueryException(response.text)
     return None
 def get_tunnel_by_description(self, description=None, folder='Common'):
     """ Get tunnel by description """
     folder = str(folder).replace('/', '')
     if description:
         request_url = self.bigip.icr_url + '/net/tunnels/tunnel/'
         if folder:
             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:
             return_obj = json.loads(response.text)
             if 'items' in return_obj:
                 for tunnel in return_obj['items']:
                     if tunnel['description'] == description:
                         return strip_folder_and_prefix(tunnel['name'])
             return None
         elif response.status_code != 404:
             Log.error('VXLAN', response.text)
             raise exceptions.VXLANQueryException(response.text)
     return None
Beispiel #25
0
 def get_vlan(self, name=None, folder='Common'):
     """ Get NAT vlan """
     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
 def get_profiles(self, folder='Common'):
     """ Get tunnel profiles """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/tunnels/vxlan'
     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:
         return_obj = json.loads(response.text)
         profile_list = []
         if 'items' in return_obj:
             for profile in return_obj['items']:
                 profile_list.append(
                     strip_folder_and_prefix(profile['name']))
             return profile_list
         else:
             return None
     elif response.status_code != 404:
         Log.error('VXLAN', response.text)
         raise exceptions.VXLANQueryException(response.text)
     return None
Beispiel #27
0
 def get_profiles(self, folder='Common'):
     """ Get tunnel profiles """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/tunnels/vxlan'
     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:
         return_obj = json.loads(response.text)
         profile_list = []
         if 'items' in return_obj:
             for profile in return_obj['items']:
                 profile_list.append(
                     strip_folder_and_prefix(profile['name']))
             return profile_list
         else:
             return None
     elif response.status_code != 404:
         Log.error('VXLAN', response.text)
         raise exceptions.VXLANQueryException(response.text)
     return None
 def get_selfips(self, folder='Common', vlan=None):
     """ Get selfips """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/self/'
     if folder:
         request_filter = 'partition eq ' + folder
         request_url += '?$filter=' + request_filter
     response = self.bigip.icr_session.get(
         request_url, timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for selfip in return_obj['items']:
                 if vlan and selfip['vlan'] != vlan:
                     continue
                 selfip['name'] = strip_folder_and_prefix(selfip['name'])
                 return_list.append(selfip)
     elif response.status_code != 404:
         Log.error('self', response.text)
         raise exceptions.SelfIPQueryException(response.text)
     return return_list
Beispiel #29
0
 def get_selfips(self, folder='Common', vlan=None):
     """ Get selfips """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/self/'
     if folder:
         request_filter = 'partition eq ' + folder
         request_url += '?$filter=' + request_filter
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     return_list = []
     if response.status_code < 400:
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for selfip in return_obj['items']:
                 if vlan and selfip['vlan'] != vlan:
                     continue
                 selfip['name'] = strip_folder_and_prefix(selfip['name'])
                 return_list.append(selfip)
     elif response.status_code != 404:
         Log.error('self', response.text)
         raise exceptions.SelfIPQueryException(response.text)
     return return_list
Beispiel #30
0
 def get_vlan(self, name=None, folder='Common'):
     """ Get NAT vlan """
     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
Beispiel #31
0
 def get_tunnels(self, folder='Common'):
     """ Get tunnels """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/tunnels/tunnel'
     if folder:
         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:
         tunnel_list = []
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for tunnel in return_obj['items']:
                 if tunnel['profile'].find('gre') > 0:
                     tunnel_list.append(
                         strip_folder_and_prefix(tunnel['name']))
             return tunnel_list
         else:
             return None
     elif response.status_code != 404:
         Log.error('L2GRE', response.text)
         exceptions.L2GRETunnelQueryException(response.text)
     return None
Beispiel #32
0
 def get_tunnels(self, folder='Common'):
     """ Get tunnels """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/tunnels/tunnel'
     if folder:
         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:
         tunnel_list = []
         return_obj = json.loads(response.text)
         if 'items' in return_obj:
             for tunnel in return_obj['items']:
                 if tunnel['profile'].find('gre') > 0:
                     tunnel_list.append(
                         strip_folder_and_prefix(tunnel['name']))
             return tunnel_list
         else:
             return None
     elif response.status_code != 404:
         Log.error('L2GRE', response.text)
         exceptions.L2GRETunnelQueryException(response.text)
     return None