def get_live_logs(data, level, page_size, first_id, output_type): baseurl = common.create_baseurl(data, "/api/v1/logdata/poll") cookies = common.create_cookies(data) headers = common.create_headers(data) verify = data.get("server", {}).get("verify", True) params = {'level': level, 'id': first_id, 'pagesize': page_size} r = requests.get(baseurl, headers=headers, cookies=cookies, params=params, verify=verify) common.check_response(data, r.status_code) if r.status_code == 500: message = "Error getting log, " message += "database may be locked by backup" common.log_output(message, True) return elif r.status_code != 200: common.log_output("Error getting log", True, r.status_code) return result = r.json()[-page_size:] logs = [] for log in result: log["When"] = helper.format_time(data, log.get("When", "")) logs.append(log) if len(logs) == 0: common.log_output("No log entries found", True) return helper.output_dump(logs, output_type)
def describe_resources(data, resource_type, resource_ids, output_type): if resource_type == "backup": result = fetch_backups(data, resource_ids, "describe") elif resource_type == "notification": result = fetch_notifications(data, resource_ids, "describe") helper.output_dump(result, output_type)
def get_backup_logs(data, backup_id, log_type, page_size, show_all, output_type): endpoint = "/api/v1/backup/" + str(backup_id) + "/" + log_type baseurl = common.create_baseurl(data, endpoint) cookies = common.create_cookies(data) headers = common.create_headers(data) verify = data.get("server", {}).get("verify", True) params = {'pagesize': page_size} r = requests.get(baseurl, headers=headers, cookies=cookies, params=params, verify=verify) common.check_response(data, r.status_code) if r.status_code == 500: message = "Error getting log, " message += "database may be locked by backup" common.log_output(message, True) return elif r.status_code != 200: common.log_output("Error getting log", True, r.status_code) return result = r.json()[-page_size:] logs = [] for log in result: if log.get("Operation", "") == "list": log["Data"] = "Expunged" else: log["Data"] = json.loads(log.get("Data", "{}")) size = helper.format_bytes(log["Data"].get("Size", 0)) log["Data"]["Size"] = size if log.get("Message", None) is not None: log["Message"] = log["Message"].split("\n") message_length = len(log["Message"]) if message_length > 15 and not show_all: log["Message"] = log["Message"][:15] lines = str(message_length - 15) hidden_message = lines + " hidden lines (show with --all)" log["Message"].append(hidden_message) if log.get("Exception", None) is not None: log["Exception"] = log["Exception"].split("\n") exception_length = len(log["Exception"]) if exception_length > 15 and not show_all: log["Exception"] = log["Exception"][:15] lines = str(exception_length - 15) hidden_message = lines + " hidden lines (show with --all)" log["Exception"].append(hidden_message) log["Timestamp"] = datetime.datetime.fromtimestamp( int(log.get("Timestamp", 0))).strftime("%I:%M:%S %p %d/%m/%Y") logs.append(log) helper.output_dump(logs, output_type)
def get_stored_logs(data, page_size, show_all, output_type): baseurl = common.create_baseurl(data, "/api/v1/logdata/log") cookies = common.create_cookies(data) headers = common.create_headers(data) verify = data.get("server", {}).get("verify", True) params = {'pagesize': page_size} r = requests.get(baseurl, headers=headers, cookies=cookies, params=params, verify=verify) common.check_response(data, r.status_code) if r.status_code == 500: message = "Error getting log, " message += "database may be locked by backup" common.log_output(message, True) return elif r.status_code != 200: common.log_output("Error getting log", True, r.status_code) return result = r.json()[-page_size:] logs = [] for log in result: if log.get("Message", None) is not None: log["Message"] = log["Message"].split("\n") message_length = len(log["Message"]) if message_length > 15 and not show_all: log["Message"] = log["Message"][:15] lines = str(message_length - 15) hidden_message = lines + " hidden lines (show with --all)" log["Message"].append(hidden_message) if log.get("Exception", None) is not None: log["Exception"] = log["Exception"].split("\n") exception_length = len(log["Exception"]) if exception_length > 15 and not show_all: log["Exception"] = log["Exception"][:15] lines = str(exception_length - 15) hidden_message = lines + " hidden lines (show with --all)" log["Exception"].append(hidden_message) logs.append(log) if len(logs) == 0: common.log_output("No log entries found", True) return helper.output_dump(logs, output_type)
def list_resources(data, resource, output_type): common.verify_token(data) if resource == "backups": resource_list = fetch_backup_list(data) elif resource == "databases": resource_list = fetch_database_list(data) else: resource_list = fetch_resource_list(data, resource) resource_list = list_filter(data, resource_list, resource) if len(resource_list) == 0: common.log_output("No items found", True) sys.exit(2) helper.output_dump(resource_list, output_type)