summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/plugins/host.py40
1 files changed, 22 insertions, 18 deletions
diff --git a/ipalib/plugins/host.py b/ipalib/plugins/host.py
index 1dc47c7e7..bbee09395 100644
--- a/ipalib/plugins/host.py
+++ b/ipalib/plugins/host.py
@@ -108,7 +108,8 @@ register = Registry()
# Characters to be used by random password generator
# The set was chosen to avoid the need for escaping the characters by user
-host_pwd_chars=string.digits + string.ascii_letters + '_,.@+-='
+host_pwd_chars = string.digits + string.ascii_letters + '_,.@+-='
+
def remove_fwd_ptr(ipaddr, host, domain, recordtype):
api.log.debug('deleting ipaddr %s' % ipaddr)
@@ -118,24 +119,25 @@ def remove_fwd_ptr(ipaddr, host, domain, recordtype):
# in case domain is in FQDN form with a trailing dot, we needn't add
# another one, in case it has no trailing dot, dnsrecord-del will
# normalize the entry
- delkw = { 'ptrrecord' : "%s.%s" % (host, domain) }
+ delkw = {'ptrrecord': "%s.%s" % (host, domain)}
api.Command['dnsrecord_del'](revzone, revname, **delkw)
except errors.NotFound:
pass
try:
- delkw = { recordtype : ipaddr }
+ delkw = {recordtype: ipaddr}
api.Command['dnsrecord_del'](domain, host, **delkw)
except errors.NotFound:
pass
+
def update_sshfp_record(zone, record, entry_attrs):
if 'ipasshpubkey' not in entry_attrs:
return
pubkeys = entry_attrs['ipasshpubkey'] or ()
- sshfps=[]
+ sshfps = []
for pubkey in pubkeys:
try:
sshfp = SSHPublicKey(pubkey).fingerprint_dns_sha1()
@@ -143,6 +145,7 @@ def update_sshfp_record(zone, record, entry_attrs):
continue
if sshfp is not None:
sshfps.append(sshfp)
+
try:
sshfp = SSHPublicKey(pubkey).fingerprint_dns_sha256()
except (ValueError, UnicodeDecodeError):
@@ -200,16 +203,18 @@ host_output_params = (
),
)
+
def validate_ipaddr(ugettext, ipaddr):
"""
Verify that we have either an IPv4 or IPv6 address.
"""
try:
- ip = CheckedIPAddress(ipaddr, match_local=False)
+ CheckedIPAddress(ipaddr, match_local=False)
except Exception, e:
return unicode(e)
return None
+
def normalize_hostname(hostname):
"""Use common fqdn form without the trailing dot"""
if hostname.endswith(u'.'):
@@ -217,15 +222,16 @@ def normalize_hostname(hostname):
hostname = hostname.lower()
return hostname
+
def _hostname_validator(ugettext, value):
try:
validate_hostname(value)
except ValueError, e:
- return _('invalid domain-name: %s') \
- % unicode(e)
+ return _('invalid domain-name: %s') % unicode(e)
return None
+
@register()
class host(LDAPObject):
"""
@@ -441,7 +447,8 @@ class host(LDAPObject):
Str('macaddress*',
normalizer=lambda value: value.upper(),
pattern='^([a-fA-F0-9]{2}[:|\-]?){5}[a-fA-F0-9]{2}$',
- pattern_errmsg='Must be of the form HH:HH:HH:HH:HH:HH, where each H is a hexadecimal character.',
+ pattern_errmsg=('Must be of the form HH:HH:HH:HH:HH:HH, where '
+ 'each H is a hexadecimal character.'),
csv=True,
label=_('MAC address'),
doc=_('Hardware MAC address(es) on this host'),
@@ -517,7 +524,6 @@ class host(LDAPObject):
entry_attrs['memberofindirect'].remove(member)
-
@register()
class host_add(LDAPCreate):
__doc__ = _('Add a new host.')
@@ -637,7 +643,6 @@ class host_add(LDAPCreate):
return dn
-
@register()
class host_del(LDAPDelete):
__doc__ = _('Delete a host.')
@@ -703,7 +708,8 @@ class host_del(LDAPDelete):
domain, 'aaaarecord')
else:
# Try to delete all other record types too
- _attribute_types = [str('%srecord' % t.lower()) for t in _record_types]
+ _attribute_types = [str('%srecord' % t.lower())
+ for t in _record_types]
for attr in _attribute_types:
if attr not in ['arecord', 'aaaarecord'] and attr in record:
for i in xrange(len(record[attr])):
@@ -749,7 +755,6 @@ class host_del(LDAPDelete):
return dn
-
@register()
class host_mod(LDAPUpdate):
__doc__ = _('Modify information about a host.')
@@ -779,7 +784,9 @@ class host_mod(LDAPUpdate):
entry = {}
self.obj.get_password_attributes(ldap, dn, entry)
if not entry['has_password'] and entry['has_keytab']:
- raise errors.ValidationError(name='password', error=_('Password cannot be set on enrolled host.'))
+ raise errors.ValidationError(
+ name='password',
+ error=_('Password cannot be set on enrolled host.'))
# Once a principal name is set it cannot be changed
if 'cn' in entry_attrs:
@@ -897,7 +904,6 @@ class host_mod(LDAPUpdate):
return dn
-
@register()
class host_find(LDAPSearch):
__doc__ = _('Search for hosts.')
@@ -952,7 +958,8 @@ class host_find(LDAPSearch):
for target_hosts, filter_op in ((hosts, ldap.MATCH_ANY),
(not_hosts, ldap.MATCH_NONE)):
hosts_avas = [DN(host)[0][0] for host in target_hosts]
- hosts_filters = [ldap.make_filter_from_attr(ava.attr, ava.value) for ava in hosts_avas]
+ hosts_filters = [ldap.make_filter_from_attr(ava.attr, ava.value)
+ for ava in hosts_avas]
hosts_filter = ldap.combine_filters(hosts_filters, filter_op)
filter = ldap.combine_filters(
@@ -982,7 +989,6 @@ class host_find(LDAPSearch):
return truncated
-
@register()
class host_show(LDAPRetrieve):
__doc__ = _('Display information about a host.')
@@ -1030,7 +1036,6 @@ class host_show(LDAPRetrieve):
return super(host_show, self).forward(*keys, **options)
-
@register()
class host_disable(LDAPQuery):
__doc__ = _('Disable the Kerberos key, SSL certificate and all services of a host.')
@@ -1142,7 +1147,6 @@ class host_add_managedby(LDAPAddMember):
return (completed, dn)
-
@register()
class host_remove_managedby(LDAPRemoveMember):
__doc__ = _('Remove hosts that can manage this host.')