Ejemplo n.º 1
0
 def delete_all(self, folder='Common'):
     """ Delete vlans """
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/vlan/'
     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('vlan', response.text)
                         raise exceptions.VLANDeleteException(response.text)
     elif response.status_code == 404:
         return True
     else:
         Log.error('VLAN', response.text)
         raise exceptions.VLANQueryException(response.text)
Ejemplo n.º 2
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
Ejemplo n.º 3
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
Ejemplo n.º 4
0
 def exists(self, name=None, folder='Common'):
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/vlan/'
         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:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return False
Ejemplo n.º 5
0
 def get_id(self, name=None, folder='Common'):
     """ Get vlan id """
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/vlan/'
         request_url += '~' + folder + '~' + name
         request_url += '?$select=tag'
         response = self.bigip.icr_session.get(
             request_url, timeout=const.CONNECTION_TIMEOUT)
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             return return_obj['tag']
         elif response.status_code != 404:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return 0
Ejemplo n.º 6
0
 def get_vlans(self, folder='Common'):
     folder = str(folder).replace('/', '')
     request_url = self.bigip.icr_url + '/net/vlan/'
     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 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
Ejemplo n.º 7
0
 def get_vlan_name_by_description(self, description=None, folder='Common'):
     if description:
         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
         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']:
                     if vlan['description'] == description:
                         return vlan['name']
         elif response.status_code == 404:
             return None
         else:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return None
Ejemplo n.º 8
0
 def get_interface(self, name=None, folder='Common'):
     if name:
         folder = str(folder).replace('/', '')
         request_url = self.bigip.icr_url + '/net/vlan/'
         request_url += '~' + folder + '~' + name
         request_url += '/interfaces?$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)
         if response.status_code < 400:
             return_obj = json.loads(response.text)
             if 'items' in return_obj:
                 for interface in return_obj['items']:
                     return interface['name']
         elif response.status_code == 404:
             return None
         else:
             Log.error('VLAN', response.text)
             raise exceptions.VLANQueryException(response.text)
     return None