def process_bulk_add_ip(request, formdict): """ Performs the bulk add of ips by parsing the request data. Batches some data into a cache object for performance by reducing large amounts of single database queries. :param request: Django request. :type request: :class:`django.http.HttpRequest` :param formdict: The form representing the bulk uploaded data. :type formdict: dict :returns: :class:`django.http.HttpResponse` """ ip_names = [] cached_results = {} cleanedRowsData = convert_handsontable_to_rows(request) for rowData in cleanedRowsData: if rowData != None and rowData.get(form_consts.IP.IP_ADDRESS) != None: ip_names.append(rowData.get(form_consts.IP.IP_ADDRESS).lower()) ip_results = IP.objects(ip__in=ip_names) for ip_result in ip_results: cached_results[ip_result.ip] = ip_result cache = {form_consts.IP.CACHED_RESULTS: cached_results, 'cleaned_rows_data': cleanedRowsData} response = parse_bulk_upload(request, parse_row_to_bound_ip_form, add_new_ip_via_bulk, formdict, cache) return response
def process_bulk_add_domain(request, formdict): """ Performs the bulk add of domains by parsing the request data. Batches some data into a cache object for performance by reducing large amounts of single database queries. :param request: Django request. :type request: :class:`django.http.HttpRequest` :param formdict: The form representing the bulk uploaded data. :type formdict: dict :returns: :class:`django.http.HttpResponse` """ domain_names = [] ip_addresses = [] cached_domain_results = {} cached_ip_results = {} cleanedRowsData = convert_handsontable_to_rows(request) for rowData in cleanedRowsData: if rowData != None: if rowData.get(form_consts.Domain.DOMAIN_NAME) != None: domain = rowData.get( form_consts.Domain.DOMAIN_NAME).strip().lower() (root_domain, full_domain, error) = get_valid_root_domain(domain) domain_names.append(full_domain) if domain != root_domain: domain_names.append(root_domain) if rowData.get(form_consts.Domain.IP_ADDRESS) != None: ip_addr = rowData.get(form_consts.Domain.IP_ADDRESS) ip_type = rowData.get(form_consts.Domain.IP_TYPE) (ip_addr, error) = validate_and_normalize_ip(ip_addr, ip_type) ip_addresses.append(ip_addr) domain_results = Domain.objects(domain__in=domain_names) ip_results = IP.objects(ip__in=ip_addresses) for domain_result in domain_results: cached_domain_results[domain_result.domain] = domain_result for ip_result in ip_results: cached_ip_results[ip_result.ip] = ip_result cache = { form_consts.Domain.CACHED_RESULTS: cached_domain_results, form_consts.IP.CACHED_RESULTS: cached_ip_results, 'cleaned_rows_data': cleanedRowsData } response = parse_bulk_upload(request, parse_row_to_bound_domain_form, add_new_domain_via_bulk, formdict, cache) return response
def process_bulk_add_domain(request, formdict): """ Performs the bulk add of domains by parsing the request data. Batches some data into a cache object for performance by reducing large amounts of single database queries. :param request: Django request. :type request: :class:`django.http.HttpRequest` :param formdict: The form representing the bulk uploaded data. :type formdict: dict :returns: :class:`django.http.HttpResponse` """ domain_names = [] ip_addresses = [] cached_domain_results = {} cached_ip_results = {} cleanedRowsData = convert_handsontable_to_rows(request) for rowData in cleanedRowsData: if rowData != None: if rowData.get(form_consts.Domain.DOMAIN_NAME) != None: domain = rowData.get(form_consts.Domain.DOMAIN_NAME).strip().lower() (root_domain, full_domain, error) = get_valid_root_domain(domain) domain_names.append(full_domain) if domain != root_domain: domain_names.append(root_domain) if rowData.get(form_consts.Domain.IP_ADDRESS) != None: ip_addr = rowData.get(form_consts.Domain.IP_ADDRESS) ip_type = rowData.get(form_consts.Domain.IP_TYPE) (ip_addr, error) = validate_and_normalize_ip(ip_addr, ip_type) ip_addresses.append(ip_addr) domain_results = Domain.objects(domain__in=domain_names) ip_results = IP.objects(ip__in=ip_addresses) for domain_result in domain_results: cached_domain_results[domain_result.domain] = domain_result for ip_result in ip_results: cached_ip_results[ip_result.ip] = ip_result cache = { form_consts.Domain.CACHED_RESULTS: cached_domain_results, form_consts.IP.CACHED_RESULTS: cached_ip_results, "cleaned_rows_data": cleanedRowsData, } response = parse_bulk_upload(request, parse_row_to_bound_domain_form, add_new_domain_via_bulk, formdict, cache) return response