freeipa/ipapython
Christian Heimes f90e137a17 Sort and shuffle SRV record by priority and weight
On multiple occasions, SRV query answers were not properly sorted by
priority. Records with same priority weren't randomized and shuffled.
This caused FreeIPA to contact the same remote peer instead of
distributing the load across all available servers.

Two new helper functions now take care of SRV queries. sort_prio_weight()
sorts SRV and URI records. query_srv() combines SRV lookup with
sort_prio_weight().

Fixes: https://pagure.io/freeipa/issue/7475
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
2018-06-19 08:56:46 +02:00
..
install Remove the Continuous installer class, it is unused 2018-03-19 17:38:41 +01:00
__init__.py Rename ipa-python directory to ipapython so it is a real python library 2009-02-09 14:35:15 -05:00
admintool.py Disable message about log in ipa-backup if IPA is not configured 2018-05-03 17:34:45 +02:00
certdb.py Revert run_pk12util part of 807a5cbe7c 2018-04-20 08:51:37 -04:00
config.py Sort and shuffle SRV record by priority and weight 2018-06-19 08:56:46 +02:00
cookie.py logging: remove object-specific loggers 2017-07-14 15:55:59 +02:00
directivesetter.py Move config directives handling code 2018-05-29 17:03:56 +02:00
dn.py Fix pylint error in ipapython/dn.py 2018-01-23 17:10:16 +01:00
dnsutil.py Sort and shuffle SRV record by priority and weight 2018-06-19 08:56:46 +02:00
dogtag.py Backport gzip.decompress for Python 2 2018-05-30 15:09:55 +02:00
errors.py Replace StandardError with Exception 2015-09-30 10:51:36 +02:00
graph.py ipapython/graph.py redundant variable fix 2017-07-14 09:16:13 +02:00
ipa_log_manager.py logging: make sure logging level is set to proper value 2017-07-26 15:57:56 +02:00
ipaldap.py Use sane default settings for ldap connections 2018-05-29 15:30:37 +02:00
ipautil.py pylint3: workaround false positives reported for W1662 2018-05-17 16:55:42 -04:00
ipavalidate.py Change FreeIPA license to GPLv3+ 2010-12-20 17:19:53 -05:00
kerberos.py kerberos: fix sorting Principal objects 2017-08-17 09:56:01 +02:00
kernel_keyring.py Add absolute_import future imports 2018-04-20 09:43:37 +02:00
Makefile.am ipapython: fix DEFAULT_PLUGINS in version.py 2017-03-09 18:39:48 +01:00
nsslib.py Remove ipapython.nsslib as it is not used anymore 2017-03-01 09:43:41 +00:00
README Replace DNS client based on acutil with python-dns 2012-05-24 13:55:56 +02:00
session_storage.py Fix pylint warnings inconsistent-return-statements 2017-12-18 11:51:14 +01:00
setup.cfg Port all setup.py to setuptools 2016-10-20 18:43:37 +02:00
setup.py Have all the scripts run in python 3 by default 2018-02-15 18:43:12 +01:00
ssh.py Fix pylint warnings inconsistent-return-statements 2017-12-18 11:51:14 +01:00
version.py.in ipapython: fix DEFAULT_PLUGINS in version.py 2017-03-09 18:39:48 +01:00

This is a set of libraries common to IPA clients and servers though mostly
geared currently towards command-line tools.

A brief overview:

config.py - identify the IPA server domain and realm. It uses python-dns to
            try to detect this information first and will fall back to
            /etc/ipa/default.conf if that fails.

ipautil.py - helper functions

entity.py - entity is the main data type. User and Group extend this class
            (but don't add anything currently).

ipavalidate.py - basic data validation routines