Ejemplo n.º 1
0
 def get_sync_status(self):
     request_url = self.bigip.icr_url + '/cm/sync-status?$select=status'
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         response_obj = json.loads(response.text)
         return response_obj['entries'][
             'https://localhost/mgmt/tm/cm/sync-status/0']['nestedStats'][
                 'entries']['status']['description']
     else:
         Log.error('sync-status', response.text)
         raise exceptions.ClusterQueryException(response.text)
     return None
Ejemplo n.º 2
0
 def traffic_group_exists(self, name):
     if name:
         request_url = self.bigip.icr_url + '/cm/traffic-group/'
         request_url += '~Common~' + 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:
             return False
         else:
             Log.error('traffic-group', response.text)
             raise exceptions.ClusterQueryException(response.text)
Ejemplo n.º 3
0
 def get_sync_color(self):
     """ Get the sync color for the bigip """
     request_url = self.bigip.icr_url + '/cm/sync-status?$select=color'
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         response_obj = json.loads(response.text)
         entries = response_obj['entries']
         status = entries['https://localhost/mgmt/tm/cm/sync-status/0']
         desc = status['nestedStats']['entries']['color']['description']
         return desc
     else:
         Log.error('sync-info', response.text)
         raise exceptions.ClusterQueryException(response.text)
     return None
Ejemplo n.º 4
0
 def get_local_device_addr(self):
     request_url = self.bigip.icr_url + '/cm/device'
     request_url += '?$select=selfDevice,name,hostname,managementIp'
     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 device in response_obj['items']:
                 if device['selfDevice']:
                     return device['managementIp']
     else:
         Log.error('device', response.text)
         raise exceptions.ClusterQueryException(response.text)
     return None
Ejemplo n.º 5
0
 def remove_all_devices(self, name):
     request_url = self.bigip.icr_url + '/cm/device-group/~Common~'
     request_url += name
     payload = dict()
     payload['devices'] = list()
     response = self.bigip.icr_session.put(request_url,
                                           data=json.dumps(payload),
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         return True
     elif response.status_code == 404:
         return True
     else:
         Log.error('device-group', response.text)
         raise exceptions.ClusterQueryException(response.text)
Ejemplo n.º 6
0
 def devices(self, name):
     request_url = self.bigip.icr_url + '/cm/device-group/~Common~'
     request_url += name
     request_url += "/devices?$select=name"
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     return_devices = []
     if response.status_code < 400:
         response_obj = json.loads(response.text)
         if 'items' in response_obj:
             for device in response_obj['items']:
                 return_devices.append(device['name'])
         return return_devices
     if response.status_code == 404:
         return []
     else:
         Log.error('device-group', response.text)
         raise exceptions.ClusterQueryException(response.text)
Ejemplo n.º 7
0
 def sync_failover_dev_group_exists(self, name):
     request_url = self.bigip.icr_url + '/cm/device-group/'
     request_url += '~Common~' + name
     request_url += '?$select=type'
     response = self.bigip.icr_session.get(request_url,
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         response_obj = json.loads(response.text)
         if 'type' in response_obj:
             if response_obj['type'] == 'sync-failover':
                 return True
             else:
                 return False
     elif response.status_code == 404:
         return False
     else:
         Log.error('device-group', response.text)
         raise exceptions.ClusterQueryException(response.text)
     return False