The new API has been discussed on freeipa-devel mailing list thread:
http://www.redhat.com/archives/freeipa-devel/2011-September/msg00154.html
This summary from the discussion was posted here:
http://www.redhat.com/archives/freeipa-devel/2011-September/msg00302.html
The API was mainly accepted by Rob and Endi, Adam had few design questions, but I think they were all resolved.
Summary of the steps for new DNS types: 1) New API shall be implemented only for non-DNSSEC resource record (RR) types that are supported by bind-dyndb-ldap. DNSSEC RR types to be left unimplemented: DS, KEY, NSEC, RRSIG, SIG Unsupported RR types to be removed at all: APL, DHCID, DLV, DNSKEY, HIP, IPSECKEY, NSEC3, NSEC3PARAM, RP, TA, TKEY, TSIG In future, DNSSEC attributes should be generated automatically. But let us leave this discussion to the future. 2) -add commands shall be implemented for structured RR types: > ipa dnsrecord-afsdb-add --subtype=INT --hostname=STR > ipa dnsrecord-cert-add --type=ENUM --tag=INT --algorithm=ENUM --certificate=STR > ipa dnsrecord-kx-add --preference=INT --exchanger=STR > ipa dnsrecord-loc-add --lat-deg=INT --lat-min=INT --lat-sec=FLOAT --lat-dir=ENUM --lon-deg=INT --lon-min=INT --lon-sec=FLOAT --lon-dir=ENUM --alt=FLOAT --h-precision=FLOAT --v-precision=FLOAT > ipa dnsrecord-mx-add --priority=INT --mailserver=STR > ipa dnsrecord-naptr-add --order=INT --preference=INT --flag=ENUM --service=STR --regexp=STR --replacement=STR > ipa dnsrecord-srv-add --priority=INT --weight=INT --port=INT --target=STR > ipa dnsrecord-sshfp-add --algorithm=ENUM --type=ENUM --fingerprint=STR OPEN QUESTION: should we implement these new commands also for discrete DNS records types to be consistent? I mean for example A, AAAA, CNAME, PTR, ... They would look like > ipa dnsrecord-aaaa-add --ip-address=IPAddress BENEFITS of this approach (command per RR type): - use can get all help for RR type by simply typing "ipa help dnsrecord-mx-add" - we would be able to implement helper methods consistently on one place, for example: dnsrecord-aaaa-add --from-mac=00:1D:BA:06:37:64 3) -show commands shall be implemented for structured RR types: These commands will let UI populate the (text) fields, ENUMs, etc. They would look this way > ipa dnsrecord-mx-show ZONE NAME VALUE For example: > dnsrecord-mx-show "example.com" "@" "1 mx1.example.com." OPEN QUESTION: should we implement also -find methods (dnsrecord-mx-find) so that UI can for example populate text fields for all (MX) records for one DNS name? 4) -mod commands shall be implemented for structured RR types: API would be almost the same as with -add commands. User (WebUI) would just have to identify which record should be modified: a) by copy&passing the raw DNS value directly to the command: > dnsrecord-mx-mod example.com @ "1 mx1.example.com." --preference=0 b) (CLI only) by using an interactive wizard that would let user choose the modified record like this way: > dnsrecord-mx-mod example.com @ --preference=0 Which record would you like to change? [1] 1 mx1.example.com. [2] 10 mx2.example.com. DNS record: <user enters the number> I have already implemented an interactive wizard like this for dnsrecord-del and it works fine.
I saw no more objections for the API, closing the ticket.
The design is now also in freeipa.org space: http://www.freeipa.org/page/IPAv3_DNS_Interface_Design
Metadata Update from @dpal: - Issue assigned to mkosek - Issue set to the milestone: FreeIPA 3.0 Core Effort - 2011/09
Login to comment on this ticket.