Use namespace-aware meta importer for ipaplatform

Instead of symlinks and build-time configuration the ipaplatform module
is now able to auto-detect platforms on import time. The meta importer
uses the platform 'ID' from /etc/os-releases. It falls back to 'ID_LIKE'
on platforms like CentOS, which has ID=centos and ID_LIKE="rhel fedora".

The meta importer is able to handle namespace packages and the
ipaplatform package has been turned into a namespace package in order to
support external platform specifications.

https://fedorahosted.org/freeipa/ticket/6474

Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
Christian Heimes
2017-10-11 12:09:30 +02:00
parent f6adf4f3a8
commit a48f6511f6
41 changed files with 422 additions and 141 deletions

View File

@@ -9,13 +9,14 @@ import pytest
@pytest.mark.parametrize("modname", [
# placeholder packages raise ImportError
'ipaplatform',
'ipaserver',
'ipatests',
# PyPI packages do not have install subpackage
'ipaclient.install',
'ipalib.install',
'ipapython.install',
# override module should not be shipped in wheels
'ipaplatform.override',
])
def test_fail_import(modname):
try:
@@ -29,6 +30,7 @@ def test_fail_import(modname):
@pytest.mark.parametrize("modname", [
'ipaclient',
'ipalib',
'ipaplatform',
'ipapython',
])
def test_import(modname):