Fix pylint 2.0 return-related violations

Aiming to support pylint 2.0 some functions and methods must have their
return statements updated in order to fix two new violations:

- `useless-return` (R1711):
  Useless return at end of function or method Emitted when a single
  "return" or "return None" statement is found at the end of function
  or method definition. This statement can safely be removed because
  Python will implicitly return None

- `inconsistent-return-statements` (R1710):
  Either all return statements in a function should return an
  expression, or none of them should. According to PEP8, if any return
  statement returns an expression, any return statements where no value
  is returned should explicitly state this as return None, and an
  explicit return statement should be present at the end of the
  function (if reachable)

Issue: https://pagure.io/freeipa/issue/7614

Signed-off-by: Armando Neto <abiagion@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
Armando Neto 2018-07-10 17:14:04 -03:00 committed by Christian Heimes
parent 9222a08c28
commit b4ad0d19a2
29 changed files with 56 additions and 42 deletions

View File

@ -549,6 +549,7 @@ class IPADiscovery(object):
continue continue
if realm: if realm:
return realm return realm
return None
def ipadnssearchkrbkdc(self, domain=None): def ipadnssearchkrbkdc(self, domain=None):
kdc = None kdc = None

View File

@ -1160,7 +1160,7 @@ class Command(HasParam):
cls.register_callback('interactive_prompt', callback, first) cls.register_callback('interactive_prompt', callback, first)
def interactive_prompt_callback(self, kw): def interactive_prompt_callback(self, kw):
return pass
class LocalOrRemote(Command): class LocalOrRemote(Command):

View File

@ -2005,7 +2005,6 @@ class AccessTime(Str):
raise ValidationError( raise ValidationError(
name=self.get_param_name(), error=ugettext('incomplete time value') name=self.get_param_name(), error=ugettext('incomplete time value')
) )
return None
class DNParam(Param): class DNParam(Param):

View File

@ -140,8 +140,6 @@ class PlatformService(object):
with open(paths.SVC_LIST_FILE, 'w') as f: with open(paths.SVC_LIST_FILE, 'w') as f:
json.dump(svc_list, f) json.dump(svc_list, f)
return
def stop(self, instance_name="", capture_output=True, def stop(self, instance_name="", capture_output=True,
update_service_list=True): update_service_list=True):
""" """
@ -163,14 +161,12 @@ class PlatformService(object):
with open(paths.SVC_LIST_FILE, 'w') as f: with open(paths.SVC_LIST_FILE, 'w') as f:
json.dump(svc_list, f) json.dump(svc_list, f)
return
def reload_or_restart(self, instance_name="", capture_output=True, def reload_or_restart(self, instance_name="", capture_output=True,
wait=True): wait=True):
return pass
def restart(self, instance_name="", capture_output=True, wait=True): def restart(self, instance_name="", capture_output=True, wait=True):
return pass
def is_running(self, instance_name="", wait=True): def is_running(self, instance_name="", wait=True):
return False return False
@ -185,22 +181,22 @@ class PlatformService(object):
return False return False
def enable(self, instance_name=""): def enable(self, instance_name=""):
return pass
def disable(self, instance_name=""): def disable(self, instance_name=""):
return pass
def mask(self, instance_name=""): def mask(self, instance_name=""):
return pass
def unmask(self, instance_name=""): def unmask(self, instance_name=""):
return pass
def install(self, instance_name=""): def install(self, instance_name=""):
return pass
def remove(self, instance_name=""): def remove(self, instance_name=""):
return pass
class SystemdService(PlatformService): class SystemdService(PlatformService):

View File

@ -177,7 +177,7 @@ class BaseTaskNamespace(object):
""" """
Migrate pam stack configuration to authselect. Migrate pam stack configuration to authselect.
""" """
return pass
def set_selinux_booleans(self, required_settings, backup_func=None): def set_selinux_booleans(self, required_settings, backup_func=None):
"""Set the specified SELinux booleans """Set the specified SELinux booleans

View File

@ -275,8 +275,6 @@ class Configurable(six.with_metaclass(abc.ABCMeta, object)):
def group(cls): def group(cls):
assert not hasattr(super(Configurable, cls), 'group') assert not hasattr(super(Configurable, cls), 'group')
return None
def __init__(self, **kwargs): def __init__(self, **kwargs):
""" """
Initialize the configurable. Initialize the configurable.
@ -339,7 +337,7 @@ class Configurable(six.with_metaclass(abc.ABCMeta, object)):
raise TypeError("{0} is not composite".format(self)) raise TypeError("{0} is not composite".format(self))
def _get_fallback(self): def _get_fallback(self):
return None pass
@abc.abstractmethod @abc.abstractmethod
def _configure(self): def _configure(self):
@ -362,6 +360,7 @@ class Configurable(six.with_metaclass(abc.ABCMeta, object)):
self.validate() self.validate()
if self.__state == _EXECUTE_PENDING: if self.__state == _EXECUTE_PENDING:
return self.execute() return self.execute()
return None
def validate(self): def validate(self):
""" """

View File

@ -746,6 +746,7 @@ class DomainValidator(object):
logger.warning('%s', msg) logger.warning('%s', msg)
return entries return entries
return None
def __retrieve_trusted_domain_gc_list(self, domain): def __retrieve_trusted_domain_gc_list(self, domain):
""" """
@ -1048,7 +1049,7 @@ class TrustDomainInstance(object):
Only top level name and top level name exclusions are handled here. Only top level name and top level name exclusions are handled here.
""" """
if not another_domain.ftinfo_records: if not another_domain.ftinfo_records:
return return None
ftinfo_records = [] ftinfo_records = []
info = lsa.ForestTrustInformation() info = lsa.ForestTrustInformation()

View File

@ -42,6 +42,7 @@ class SyncReplConsumer(ReconnectLDAPObject, SyncreplConsumer):
return cookie return cookie
else: else:
logger.debug('Current cookie is: None (not received yet)') logger.debug('Current cookie is: None (not received yet)')
return None
def syncrepl_set_cookie(self, cookie): def syncrepl_set_cookie(self, cookie):
logger.debug('New cookie is: %s', cookie) logger.debug('New cookie is: %s', cookie)

View File

@ -262,7 +262,7 @@ def retrieve_potential_adtrust_agents(api):
except (errors.DatabaseError, errors.NetworkError) as e: except (errors.DatabaseError, errors.NetworkError) as e:
logger.error( logger.error(
"Could not retrieve a list of existing IPA masters: %s", e) "Could not retrieve a list of existing IPA masters: %s", e)
return return None
try: try:
# search for existing AD trust agents # search for existing AD trust agents
@ -270,7 +270,7 @@ def retrieve_potential_adtrust_agents(api):
servrole=u'AD trust agent', all=True)['result'] servrole=u'AD trust agent', all=True)['result']
except (errors.DatabaseError, errors.NetworkError) as e: except (errors.DatabaseError, errors.NetworkError) as e:
logger.error("Could not retrieve a list of adtrust agents: %s", e) logger.error("Could not retrieve a list of adtrust agents: %s", e)
return return None
dl_enabled_master_cns = {m['cn'][0] for m in dl_enabled_masters} dl_enabled_master_cns = {m['cn'][0] for m in dl_enabled_masters}
adtrust_agents_cns = {m['cn'][0] for m in adtrust_agents} adtrust_agents_cns = {m['cn'][0] for m in adtrust_agents}

View File

@ -141,6 +141,7 @@ def named_conf_get_directive(name, section=NAMED_SECTION_IPA, str_val=True):
if match and name == match.group('name'): if match and name == match.group('name'):
return match.group('value') return match.group('value')
return None
def named_conf_set_directive(name, value, section=NAMED_SECTION_IPA, def named_conf_set_directive(name, value, section=NAMED_SECTION_IPA,

View File

@ -174,6 +174,7 @@ def find_substring(data, value):
for d in data: for d in data:
if d.startswith(value): if d.startswith(value):
return get_value(d) return get_value(d)
return None
def get_defList(data): def get_defList(data):

View File

@ -126,6 +126,8 @@ class CACertManage(admintool.AdminTool):
return self.renew() return self.renew()
elif command == 'install': elif command == 'install':
return self.install() return self.install()
else:
raise NotImplementedError
finally: finally:
api.Backend.ldap2.disconnect() api.Backend.ldap2.disconnect()

View File

@ -246,6 +246,7 @@ class ServerCertInstall(admintool.AdminTool):
return req_id return req_id
except RuntimeError as e: except RuntimeError as e:
raise admintool.ScriptError(str(e)) raise admintool.ScriptError(str(e))
return None
def check_chain(self, pkcs12_filename, pkcs12_pin, nssdb): def check_chain(self, pkcs12_filename, pkcs12_pin, nssdb):
# create a temp nssdb # create a temp nssdb

View File

@ -63,7 +63,7 @@ def get_pkinit_request_ca():
{'cert-file': paths.KDC_CERT}) {'cert-file': paths.KDC_CERT})
if pkinit_request_id is None: if pkinit_request_id is None:
return return None
return certmonger.get_request_value(pkinit_request_id, 'ca-name') return certmonger.get_request_value(pkinit_request_id, 'ca-name')

View File

@ -110,7 +110,7 @@ def safe_output(attr, values):
return 'XXXXXXXX' return 'XXXXXXXX'
if values is None: if values is None:
return return None
is_list = type(values) in (tuple, list) is_list = type(values) in (tuple, list)

View File

@ -1216,6 +1216,7 @@ def find_subject_base():
logger.error('Unable to determine certificate subject base. ' logger.error('Unable to determine certificate subject base. '
'certmap.conf will not be updated.') 'certmap.conf will not be updated.')
return None
def uninstall_selfsign(ds, http): def uninstall_selfsign(ds, http):

View File

@ -319,7 +319,7 @@ class Service(object):
def principal(self): def principal(self):
if any(attr is None for attr in (self.realm, self.fqdn, if any(attr is None for attr in (self.realm, self.fqdn,
self.service_prefix)): self.service_prefix)):
return return None
return unicode( return unicode(
kerberos.Principal( kerberos.Principal(

View File

@ -929,6 +929,7 @@ class P11_Helper(object):
if self.token_label == char_array_to_unicode( if self.token_label == char_array_to_unicode(
token_info_ptr[0].label, 32).rstrip(): token_info_ptr[0].label, 32).rstrip():
return slot return slot
return None
def finalize(self): def finalize(self):
""" """

View File

@ -412,6 +412,7 @@ def validate_permissions(ugettext, perm):
perm = perm.strip().lower() perm = perm.strip().lower()
if perm not in _valid_permissions_values: if perm not in _valid_permissions_values:
return '"%s" is not a valid permission' % perm return '"%s" is not a valid permission' % perm
return None
def _normalize_permissions(perm): def _normalize_permissions(perm):

View File

@ -319,6 +319,7 @@ def validate_externalhost(ugettext, hostname):
validate_hostname(hostname, check_fqdn=False, allow_underscore=True) validate_hostname(hostname, check_fqdn=False, allow_underscore=True)
except ValueError as e: except ValueError as e:
return unicode(e) return unicode(e)
return None
external_host_param = Str('externalhost*', validate_externalhost, external_host_param = Str('externalhost*', validate_externalhost,

View File

@ -92,10 +92,10 @@ def validate_search_records_limit(ugettext, value):
Values 0 and -1 are valid, as they represent unlimited. Values 0 and -1 are valid, as they represent unlimited.
""" """
if value in {-1, 0}: if value in {-1, 0}:
return return None
if value < 10: if value < 10:
return _('must be at least 10') return _('must be at least 10')
return None
@register() @register()
class config(LDAPObject): class config(LDAPObject):

View File

@ -401,7 +401,7 @@ def _validate_ipnet(ugettext, ipnet):
def _validate_bind_aci(ugettext, bind_acis): def _validate_bind_aci(ugettext, bind_acis):
if not bind_acis: if not bind_acis:
return return None
bind_acis = bind_acis.split(';') bind_acis = bind_acis.split(';')
if bind_acis[-1]: if bind_acis[-1]:
@ -422,10 +422,11 @@ def _validate_bind_aci(ugettext, bind_acis):
return unicode(e) return unicode(e)
except UnboundLocalError: except UnboundLocalError:
return _(u"invalid address format") return _(u"invalid address format")
return None
def _normalize_bind_aci(bind_acis): def _normalize_bind_aci(bind_acis):
if not bind_acis: if not bind_acis:
return return None
bind_acis = bind_acis.split(';') bind_acis = bind_acis.split(';')
normalized = [] normalized = []
for bind_aci in bind_acis: for bind_aci in bind_acis:
@ -729,7 +730,7 @@ class DNSRecord(Str):
vals = tuple(kw.get(part_name) for part_name in part_names) vals = tuple(kw.get(part_name) for part_name in part_names)
if all(val is None for val in vals): if all(val is None for val in vals):
return return None
if raise_on_none: if raise_on_none:
for val_id,val in enumerate(vals): for val_id,val in enumerate(vals):
@ -789,17 +790,17 @@ class DNSRecord(Str):
def _rule_validatedns(self, _, value): def _rule_validatedns(self, _, value):
if not self.validatedns: if not self.validatedns:
return return None
if value is None: if value is None:
return return None
if not self.supported: if not self.supported:
return _('DNS RR type "%s" is not supported by bind-dyndb-ldap plugin') \ return _('DNS RR type "%s" is not supported by bind-dyndb-ldap plugin') \
% self.rrtype % self.rrtype
if self.parts is None: if self.parts is None:
return return None
# validate record format # validate record format
values = self._get_part_values(value) values = self._get_part_values(value)
@ -1282,6 +1283,8 @@ def _validate_naptr_flags(ugettext, flags):
for flag in flags: for flag in flags:
if flag not in allowed_flags: if flag not in allowed_flags:
return _('flags must be one of "S", "A", "U", or "P"') return _('flags must be one of "S", "A", "U", or "P"')
return None
class NAPTRRecord(DNSRecord): class NAPTRRecord(DNSRecord):
rrtype = 'NAPTR' rrtype = 'NAPTR'
@ -1370,6 +1373,7 @@ def _sig_time_validator(ugettext, value):
time.strptime(value, time_format) time.strptime(value, time_format)
except ValueError: except ValueError:
return _('the value does not follow "YYYYMMDDHHMMSS" time format') return _('the value does not follow "YYYYMMDDHHMMSS" time format')
return None
class SIGRecord(UnsupportedDNSRecord): class SIGRecord(UnsupportedDNSRecord):
@ -1460,7 +1464,7 @@ def _normalize_uri_target(uri_target):
# RFC 7553 section 4.4: The Target MUST NOT be an empty URI (""). # RFC 7553 section 4.4: The Target MUST NOT be an empty URI ("").
# minlength in param will detect this # minlength in param will detect this
if not uri_target: if not uri_target:
return return None
return u'"{0}"'.format(uri_target) return u'"{0}"'.format(uri_target)

View File

@ -1284,7 +1284,7 @@ class RestClient(Backend):
def __enter__(self): def __enter__(self):
"""Log into the REST API""" """Log into the REST API"""
if self.cookie is not None: if self.cookie is not None:
return return None
# Refresh the ca_host property # Refresh the ca_host property
object.__setattr__(self, '_ca_host', None) object.__setattr__(self, '_ca_host', None)

View File

@ -118,7 +118,6 @@ def is_all(options, attribute):
value = options[attribute].lower() value = options[attribute].lower()
if value == 'all': if value == 'all':
return True return True
else:
return False return False

View File

@ -127,6 +127,7 @@ def strip_ldap_prefix(uri):
def prevalidate_filter(ugettext, value): def prevalidate_filter(ugettext, value):
if not value.startswith('(') or not value.endswith(')'): if not value.startswith('(') or not value.endswith(')'):
return _('must be enclosed in parentheses') return _('must be enclosed in parentheses')
return None
class DNOrURL(DNParam): class DNOrURL(DNParam):
@ -148,6 +149,7 @@ def validate_type(ugettext, typestr):
return _('"%s" is not an object type') % typestr return _('"%s" is not an object type') % typestr
if not getattr(obj, 'permission_filter_objectclasses', None): if not getattr(obj, 'permission_filter_objectclasses', None):
return _('"%s" is not a valid permission type') % typestr return _('"%s" is not a valid permission type') % typestr
return None
def _disallow_colon(option): def _disallow_colon(option):
@ -904,6 +906,8 @@ class permission(baseldap.LDAPObject):
options['ipapermtargetfilter'] = list(options.get( options['ipapermtargetfilter'] = list(options.get(
'ipapermtargetfilter') or []) + filter_ops['add'] 'ipapermtargetfilter') or []) + filter_ops['add']
return None
def validate_permission(self, entry): def validate_permission(self, entry):
ldap = self.Backend.ldap2 ldap = self.Backend.ldap2

View File

@ -72,6 +72,7 @@ def _domain_name_validator(ugettext, value):
validate_domain_name(value, allow_slash=False) validate_domain_name(value, allow_slash=False)
except ValueError as e: except ValueError as e:
return unicode(e) return unicode(e)
return None
@register() @register()

View File

@ -140,8 +140,6 @@ def validate_selinuxuser_inlist(ldap, user):
reason=_('SELinux user %(user)s not found in ' reason=_('SELinux user %(user)s not found in '
'ordering list (in config)') % dict(user=user)) 'ordering list (in config)') % dict(user=user))
return
@register() @register()
class selinuxusermap(LDAPObject): class selinuxusermap(LDAPObject):

View File

@ -196,7 +196,7 @@ def read_input(environ):
try: try:
length = int(environ.get('CONTENT_LENGTH')) length = int(environ.get('CONTENT_LENGTH'))
except (ValueError, TypeError): except (ValueError, TypeError):
return return None
return environ['wsgi.input'].read(length).decode('utf-8') return environ['wsgi.input'].read(length).decode('utf-8')
@ -613,13 +613,13 @@ class KerberosSession(HTTP_Status):
ccache_name = environ.get('KRB5CCNAME') ccache_name = environ.get('KRB5CCNAME')
if ccache_name is None: if ccache_name is None:
logger.debug('no ccache, need login') logger.debug('no ccache, need login')
return return None
# ... make sure we have a name ... # ... make sure we have a name ...
principal = environ.get('GSS_NAME') principal = environ.get('GSS_NAME')
if principal is None: if principal is None:
logger.debug('no Principal Name, need login') logger.debug('no Principal Name, need login')
return return None
# ... and use it to resolve the ccache name (Issue: 6972 ) # ... and use it to resolve the ccache name (Issue: 6972 )
gss_name = gssapi.Name(principal, gssapi.NameType.kerberos_principal) gss_name = gssapi.Name(principal, gssapi.NameType.kerberos_principal)
@ -630,7 +630,7 @@ class KerberosSession(HTTP_Status):
if not creds: if not creds:
logger.debug( logger.debug(
'ccache expired or invalid, deleting session, need login') 'ccache expired or invalid, deleting session, need login')
return return None
return ccache_name return ccache_name

View File

@ -114,3 +114,5 @@ class CustodiaClient(object):
self.keystore.set('keys/%s' % keyname, value) self.keystore.set('keys/%s' % keyname, value)
else: else:
return value return value
return None