#2094 DNS record paging problem due to primary key mismatch
Closed: Fixed None Opened 12 years ago by edewata.

The UI currently does not support paging for DNS records due to a mismatch between the primary keys returned by the server and the ones displayed in the UI.

In the LDAP server the DNS records are organized by their names. Each record may have multiple values:

dn: idnsname=test1,...
idnsname: test1
arecord: 192.168.1.1
arecord: 192.168.1.2

dn: idnsname=test2,...
idnsname: test2
arecord: 192.168.1.3

Calling dnsrecord-find with --pkey-only will return only the record names, not the values.

In the UI usually each primary key will be displayed as a single row in the search page. However, for DNS records the values are displayed in separate rows, each having its own checkbox:

[x] test1   arecord   192.168.1.1
[x] test1   arecord   192.168.1.2
[x] test2   arecord   192.168.1.3

Usually the total number of pages is calculated by dividing the number of primary keys with the page length. Since in this case a single primary key may translate into multiple rows, the calculation is no longer correct.

Some options:

  1. Keep the current behavior, do not support paging for DNS records.

  2. Change the server to return <name,value> pair as primary key. The calculation will be correct, but this might change the API and CLI too.

  3. Change the UI to pull all record values instead of just the primary keys. The calculation will be correct, but it will not have the benefit of proper paging functionality such as reducing the bandwidth and memory requirement by downloading only the entries that need to be displayed.

  4. Change the UI to use dynamic page length. The total page will be based on primary keys. But since a primary key may translate into multiple rows, the number of rows in a page will not be constant.

  5. Change the UI to use dynamic row height. The total page will be based on primary keys. Each primary key will be displayed as a single row (with a single checkbox), but each row may contain multiple values, so the row height will not be constant. Deleting a specific value has to be done from details page.

    [x] test1 arecord 192.168.1.1
    arecord 192.168.1.2
    [x] test2 arecord 192.168.1.3

  6. Change the UI to show only the record names in the search page. The values has to be accessed via the details page. See also ticket #1478.

    [x] test1
    [x] test2


Based on discussion with Adam & Simo we will modify the UI to use option #5.

Patch freeipa-pvoborni-0071-Added-paging-to-DNS-record-search-facet.patch sent to devel list for review.

Metadata Update from @edewata:
- Issue assigned to pvoborni
- Issue set to the milestone: FreeIPA 2.2 Core Effort - 2012/01

7 years ago

Login to comment on this ticket.

Metadata