mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add example of DNS SRV record and a simple validator
https://fedorahosted.org/freeipa/ticket/846
This commit is contained in:
8
API.txt
8
API.txt
@@ -522,7 +522,7 @@ option: List('rrsigrecord?', attribute=True, cli_name='rrsig_rec',ist('rrsigreco
|
||||
option: List('rprecord?', attribute=True, cli_name='rp_rec',ist('rprecord?', attribute=True, cli_name='rp_rec', doc='comma-separated list of RP records', label='RP record', multivalue=True)
|
||||
option: List('sigrecord?', attribute=True, cli_name='sig_rec',ist('sigrecord?', attribute=True, cli_name='sig_rec', doc='comma-separated list of SIG records', label='SIG record', multivalue=True)
|
||||
option: List('spfrecord?', attribute=True, cli_name='spf_rec',ist('spfrecord?', attribute=True, cli_name='spf_rec', doc='comma-separated list of SPF records', label='SPF record', multivalue=True)
|
||||
option: List('srvrecord?', attribute=True, cli_name='srv_rec',ist('srvrecord?', attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec',ist('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('sshfprecord?', attribute=True, cli_name='sshfp_rec',ist('sshfprecord?', attribute=True, cli_name='sshfp_rec', doc='comma-separated list of SSHFP records', label='SSHFP record', multivalue=True)
|
||||
option: List('tarecord?', attribute=True, cli_name='ta_rec',ist('tarecord?', attribute=True, cli_name='ta_rec', doc='comma-separated list of TA records', label='TA record', multivalue=True)
|
||||
option: List('tkeyrecord?', attribute=True, cli_name='tkey_rec',ist('tkeyrecord?', attribute=True, cli_name='tkey_rec', doc='comma-separated list of TKEY records', label='TKEY record', multivalue=True)
|
||||
@@ -570,7 +570,7 @@ option: List('rrsigrecord?', attribute=True, cli_name='rrsig_rec',ist('rrsigreco
|
||||
option: List('rprecord?', attribute=True, cli_name='rp_rec',ist('rprecord?', attribute=True, cli_name='rp_rec', doc='comma-separated list of RP records', label='RP record', multivalue=True)
|
||||
option: List('sigrecord?', attribute=True, cli_name='sig_rec',ist('sigrecord?', attribute=True, cli_name='sig_rec', doc='comma-separated list of SIG records', label='SIG record', multivalue=True)
|
||||
option: List('spfrecord?', attribute=True, cli_name='spf_rec',ist('spfrecord?', attribute=True, cli_name='spf_rec', doc='comma-separated list of SPF records', label='SPF record', multivalue=True)
|
||||
option: List('srvrecord?', attribute=True, cli_name='srv_rec',ist('srvrecord?', attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec',ist('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('sshfprecord?', attribute=True, cli_name='sshfp_rec',ist('sshfprecord?', attribute=True, cli_name='sshfp_rec', doc='comma-separated list of SSHFP records', label='SSHFP record', multivalue=True)
|
||||
option: List('tarecord?', attribute=True, cli_name='ta_rec',ist('tarecord?', attribute=True, cli_name='ta_rec', doc='comma-separated list of TA records', label='TA record', multivalue=True)
|
||||
option: List('tkeyrecord?', attribute=True, cli_name='tkey_rec',ist('tkeyrecord?', attribute=True, cli_name='tkey_rec', doc='comma-separated list of TKEY records', label='TKEY record', multivalue=True)
|
||||
@@ -619,7 +619,7 @@ option: List('rrsigrecord?', attribute=True, cli_name='rrsig_rec',ist('rrsigreco
|
||||
option: List('rprecord?', attribute=True, cli_name='rp_rec',ist('rprecord?', attribute=True, cli_name='rp_rec', doc='comma-separated list of RP records', label='RP record', multivalue=True)
|
||||
option: List('sigrecord?', attribute=True, cli_name='sig_rec',ist('sigrecord?', attribute=True, cli_name='sig_rec', doc='comma-separated list of SIG records', label='SIG record', multivalue=True)
|
||||
option: List('spfrecord?', attribute=True, cli_name='spf_rec',ist('spfrecord?', attribute=True, cli_name='spf_rec', doc='comma-separated list of SPF records', label='SPF record', multivalue=True)
|
||||
option: List('srvrecord?', attribute=True, cli_name='srv_rec',ist('srvrecord?', attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec',ist('srvrecord?', _validate_srv, attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True)
|
||||
option: List('sshfprecord?', attribute=True, cli_name='sshfp_rec',ist('sshfprecord?', attribute=True, cli_name='sshfp_rec', doc='comma-separated list of SSHFP records', label='SSHFP record', multivalue=True)
|
||||
option: List('tarecord?', attribute=True, cli_name='ta_rec',ist('tarecord?', attribute=True, cli_name='ta_rec', doc='comma-separated list of TA records', label='TA record', multivalue=True)
|
||||
option: List('tkeyrecord?', attribute=True, cli_name='tkey_rec',ist('tkeyrecord?', attribute=True, cli_name='tkey_rec', doc='comma-separated list of TKEY records', label='TKEY record', multivalue=True)
|
||||
@@ -680,7 +680,7 @@ option: List('rrsigrecord', attribute=True, cli_name='rrsig_rec',ist('rrsigrecor
|
||||
option: List('rprecord', attribute=True, cli_name='rp_rec',ist('rprecord', attribute=True, cli_name='rp_rec', doc='comma-separated list of RP records', label='RP record', multivalue=True, query=True, required=False)
|
||||
option: List('sigrecord', attribute=True, cli_name='sig_rec',ist('sigrecord', attribute=True, cli_name='sig_rec', doc='comma-separated list of SIG records', label='SIG record', multivalue=True, query=True, required=False)
|
||||
option: List('spfrecord', attribute=True, cli_name='spf_rec',ist('spfrecord', attribute=True, cli_name='spf_rec', doc='comma-separated list of SPF records', label='SPF record', multivalue=True, query=True, required=False)
|
||||
option: List('srvrecord', attribute=True, cli_name='srv_rec',ist('srvrecord', attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True, query=True, required=False)
|
||||
option: List('srvrecord', _validate_srv, attribute=True, cli_name='srv_rec',ist('srvrecord', _validate_srv, attribute=True, cli_name='srv_rec', doc='comma-separated list of SRV records', label='SRV record', multivalue=True, query=True, required=False)
|
||||
option: List('sshfprecord', attribute=True, cli_name='sshfp_rec',ist('sshfprecord', attribute=True, cli_name='sshfp_rec', doc='comma-separated list of SSHFP records', label='SSHFP record', multivalue=True, query=True, required=False)
|
||||
option: List('tarecord', attribute=True, cli_name='ta_rec',ist('tarecord', attribute=True, cli_name='ta_rec', doc='comma-separated list of TA records', label='TA record', multivalue=True, query=True, required=False)
|
||||
option: List('tkeyrecord', attribute=True, cli_name='tkey_rec',ist('tkeyrecord', attribute=True, cli_name='tkey_rec', doc='comma-separated list of TKEY records', label='TKEY record', multivalue=True, query=True, required=False)
|
||||
|
||||
@@ -39,6 +39,13 @@ EXAMPLES:
|
||||
Add new PTR record for www.example.com
|
||||
ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.
|
||||
|
||||
Add new SRV records for LDAP servers. Three quarters of the requests
|
||||
should go to fast.example.com, one quarter to slow.example.com. If neither
|
||||
is available, switch to backup.example.com.
|
||||
ipa dnsrecord-add example.com _ldap._tcp --srv-rec="0 3 389 fast.example.com"
|
||||
ipa dnsrecord-add example.com _ldap._tcp --srv-rec="0 1 389 slow.example.com"
|
||||
ipa dnsrecord-add example.com _ldap._tcp --srv-rec="1 1 389 backup.example.com"
|
||||
|
||||
Show zone example.com:
|
||||
ipa dnszone-show example.com
|
||||
|
||||
@@ -114,10 +121,26 @@ def _validate_ipnet(ugettext, ipnet):
|
||||
return u'invalid format'
|
||||
return None
|
||||
|
||||
def _validate_srv(ugettext, srv):
|
||||
try:
|
||||
prio, weight, port, host = srv.split()
|
||||
except ValueError:
|
||||
return u'format must be specified as "priority weight port target"'
|
||||
|
||||
try:
|
||||
prio = int(prio)
|
||||
weight = int(weight)
|
||||
port = int(port)
|
||||
except ValueError:
|
||||
return u'the values of priority, weight and port must be integers'
|
||||
|
||||
return None
|
||||
|
||||
_record_validators = {
|
||||
u'A': _validate_ipaddr,
|
||||
u'AAAA': _validate_ipaddr,
|
||||
u'APL': _validate_ipnet,
|
||||
u'SRV': _validate_srv,
|
||||
}
|
||||
|
||||
def has_cli_options(entry, no_option_msg):
|
||||
|
||||
Reference in New Issue
Block a user