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
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()
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 })
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
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