URL:
https://github.com/freeipa/freeipa/pull/5376
Author: abbra
Title: #5376: Fix uninstall without dns
Action: opened
PR body:
"""
Service constructors are called even when the service itself is not configured. A common
pattern in FreeIPA code is to instantiate a service and check whether it is configured,
then perform uninstall of the service configuration. This fails if the service constructor
does depend on the artifacts only present if other (relevant to the service) packages were
installed.
A common pattern is:
```
svc = SVCClass(..)
if svc.is_configured():
svc.uninstall()
```
Most of DNS-related service classes do resolution of UID/GIDs for ODS and NAMED in their
constructors which breaks uninstallation of a DNS-less FreeIPA deployment because neither
'bind' nor 'opendnssec' packages are not installed and user and group they
provide are not available in the system.
Fixes:
https://pagure.io/freeipa/issue/8630
"""
To pull the PR as Git branch:
git remote add ghfreeipa
https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/5376/head:pr5376
git checkout pr5376