def delete_all_hosts(confirm_delete_all=None): if not confirm_delete_all: logger.error( "To delete all hosts, provide confirm_delete_all=true in the request." ) flask.abort( 400, "To delete all hosts, provide confirm_delete_all=true in the request." ) try: # get all hosts from the DB; bypasses xjoin-search, which limits the number hosts to 10 by default. ids_list = get_all_hosts() except ValueError as err: log_get_host_list_failed(logger) flask.abort(400, str(err)) except ConnectionError: logger.error("xjoin-search not accessible") flask.abort(503) if len(ids_list) == 0: flask.abort(status.HTTP_404_NOT_FOUND, "No hosts found for deletion.") delete_count = _delete_filtered_hosts(ids_list) json_data = {"hosts_found": len(ids_list), "hosts_deleted": delete_count} return flask_json_response(json_data, status.HTTP_202_ACCEPTED)
def delete_host_list( display_name=None, fqdn=None, hostname_or_id=None, insights_id=None, provider_id=None, provider_type=None, registered_with=None, staleness=None, tags=None, filter=None, ): if not any([ display_name, fqdn, hostname_or_id, insights_id, provider_id, provider_type, registered_with, staleness, tags, filter, ]): logger.error( "bulk-delete operation needs at least one input property to filter on." ) flask.abort( 400, "bulk-delete operation needs at least one input property to filter on." ) try: ids_list = get_host_ids_list_xjoin( display_name, fqdn, hostname_or_id, insights_id, provider_id, provider_type, registered_with, staleness, tags, filter, ) except ValueError as err: log_get_host_list_failed(logger) flask.abort(400, str(err)) except ConnectionError: logger.error("xjoin-search not accessible") flask.abort(503) if not len(ids_list): flask.abort(status.HTTP_404_NOT_FOUND, "No hosts found for deletion.") delete_count = _delete_filtered_hosts(ids_list) json_data = {"hosts_found": len(ids_list), "hosts_deleted": delete_count} return flask_json_response(json_data, status.HTTP_202_ACCEPTED)
def get_host_list( display_name=None, fqdn=None, hostname_or_id=None, insights_id=None, provider_id=None, provider_type=None, tags=None, page=1, per_page=100, order_by=None, order_how=None, staleness=None, registered_with=None, filter=None, fields=None, ): total = 0 host_list = () bulk_query_source = get_bulk_query_source() get_host_list = GET_HOST_LIST_FUNCTIONS[bulk_query_source] try: host_list, total, additional_fields = get_host_list( display_name, fqdn, hostname_or_id, insights_id, provider_id, provider_type, tags, page, per_page, order_by, order_how, staleness, registered_with, filter, fields, ) except ValueError as e: log_get_host_list_failed(logger) flask.abort(400, str(e)) json_data = build_paginated_host_list_response(total, page, per_page, host_list, additional_fields) return flask_json_response(json_data)