Ejemplo n.º 1
0
 def set_failover_address(self, ip_address=None, folder='/Common'):
     dev_name = self.get_device_name()
     dev_ip = self.get_mgmt_addr()
     request_url = self.bigip.icr_url + '/cm/device/'
     request_url += '~Common~' + dev_name
     payload = dict()
     unicast_addresses = []
     if ip_address:
         unicast_addresses.append({
             'effectiveIp': dev_ip,
             'effectivePort': 1026,
             'ip': dev_ip,
             'port': 1026
         })
         unicast_addresses.append({
             'effectiveIp': ip_address,
             'effectivePort': 1026,
             'ip': ip_address,
             'port': 1026
         })
     payload['unicastAddress'] = unicast_addresses
     response = self.bigip.icr_session.put(request_url,
                                           data=json.dumps(payload),
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         return True
     else:
         Log.error('device', response.text)
         raise exceptions.DeviceUpdateException(response.text)
     return False
Ejemplo n.º 2
0
 def reset_trust(self, new_name):
     self.bigip.system.set_folder('/Common')
     self.remove_all_peers()
     try:
         self.mgmt_trust.reset_all(new_name, False, '', '')
     except Exception as e:
         Log.error('device', e.message)
         raise exceptions.DeviceUpdateException(e.message)
     self.remove_metadata(None, {
         'root_device_name': None,
         'root_device_mgmt_address': None
     })
     self.devicename = None
     self.get_device_name()
Ejemplo n.º 3
0
 def remove_all_peers(self):
     self.bigip.system.set_folder('/Common')
     current_dev_name = self.get_device_name()
     devs_to_remove = []
     for dev in self.get_all_device_names():
         if dev != current_dev_name:
             devs_to_remove.append(dev)
     if devs_to_remove:
         try:
             self.mgmt_trust.remove_device(devs_to_remove)
         except Exception as e:
             Log.error('device', e.message)
             raise exceptions.DeviceUpdateException(e.message)
     self.remove_metadata(None, {
         'root_device_name': None,
         'root_device_mgmt_address': None
     })
Ejemplo n.º 4
0
 def set_secondary_mirror_addr(self, ip_address=None, folder='/Common'):
     dev_name = self.get_device_name()
     request_url = self.bigip.icr_url + '/cm/device/'
     request_url += '~Common~' + dev_name
     payload = dict()
     if not ip_address:
         payload['mirrorSecondaryIp'] = '::'
     else:
         payload['mirrorSecondaryIp'] = ip_address
     response = self.bigip.icr_session.put(request_url,
                                           data=json.dumps(payload),
                                           timeout=const.CONNECTION_TIMEOUT)
     if response.status_code < 400:
         return True
     else:
         Log.error('device', response.text)
         raise exceptions.DeviceUpdateException(response.text)
     return False
Ejemplo n.º 5
0
    def set_metadata(self, name=None, device_dict=None):
        if not name:
            name = self.get_device_name()
        if isinstance(device_dict, dict):
            str_comment = json.dumps(device_dict)
        else:
            str_comment = device_dict

        request_url = self.bigip.icr_url + '/cm/device/~Common~'
        request_url += name
        payload = dict()
        payload['description'] = base64.encodestring(str_comment)
        response = self.bigip.icr_session.put(request_url,
                                              data=json.dumps(payload),
                                              timeout=const.CONNECTION_TIMEOUT)
        if response.status_code < 400:
            return True
        else:
            Log.error('device', response.text)
            raise exceptions.DeviceUpdateException(response.text)
        return False