#7108 ipa-backup broken because of cyclic import
Closed: fixed 7 years ago Opened 7 years ago by pvoborni.

# ipa-backup -v
Traceback (most recent call last):
  File "/sbin/ipa-backup", line 21, in <module>
    from ipaserver.install.ipa_backup import Backup
  File "/usr/lib/python3.6/site-packages/ipaserver/install/ipa_backup.py", line 37, in <module>
    from ipaplatform import services
  File "/usr/lib/python3.6/site-packages/ipaplatform/services.py", line 25, in <module>
    from ipaplatform.redhat import services as redhat_services
  File "/usr/lib/python3.6/site-packages/ipaplatform/redhat/services.py", line 30, in <module>
    from ipaplatform.tasks import tasks
  File "/usr/lib/python3.6/site-packages/ipaplatform/tasks.py", line 26, in <module>
    from ipaplatform.redhat.tasks import RedHatTaskNamespace
  File "/usr/lib/python3.6/site-packages/ipaplatform/redhat/tasks.py", line 53, in <module>
    from ipalib.constants import IPAAPI_USER
  File "/usr/lib/python3.6/site-packages/ipalib/__init__.py", line 919, in <module>
    from ipalib import plugable
  File "/usr/lib/python3.6/site-packages/ipalib/plugable.py", line 44, in <module>
    from ipalib.util import classproperty
  File "/usr/lib/python3.6/site-packages/ipalib/util.py", line 59, in <module>
    from ipalib.install import sysrestore
  File "/usr/lib/python3.6/site-packages/ipalib/install/sysrestore.py", line 41, in <module>
    from ipaplatform.tasks import tasks
ImportError: cannot import name 'tasks'

seems as regression introduce by commit cac3475 PR https://github.com/freeipa/freeipa/pull/939

diff --git a/ipalib/util.py b/ipalib/util.py
index 0d3b271..91d6e46 100644
--- a/ipalib/util.py
+++ b/ipalib/util.py
@@ -55,10 +55,15 @@ from ipalib.constants import (
     TLS_VERSIONS, TLS_VERSION_MINIMAL, TLS_HIGH_CIPHERS
 )
 from ipalib.text import _
+# pylint: disable=ipa-forbidden-import
+from ipalib.install import sysrestore
+from ipaplatform.paths import paths
+# pylint: enable=ipa-forbidden-import

Metadata Update from @pvoborni:
- Issue priority set to: critical
- Issue tagged with: regression

7 years ago

Metadata Update from @fbarreto:
- Issue assigned to fbarreto

7 years ago

or maybe better would be to remove the dependency of ipaplatform on ipalib in /ipaplatform/redhat/tasks.py:

# pylint: disable=ipa-forbidden-import
from ipalib.constants import IPAAPI_USER
# pylint: enable=ipa-forbidden-import

Metadata Update from @fbarreto:
- Custom field on_review adjusted to https://github.com/freeipa/freeipa/pull/989

7 years ago

Metadata Update from @pvoborni:
- Issue set to the milestone: FreeIPA 4.5.4

7 years ago

master:

  • 0b7d9c5 Removing part of circular dependency of ipalib in ipaplaform

ipa-4-5:

  • 361566c Removing part of circular dependency of ipalib in ipaplaform

Metadata Update from @tkrizek:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

7 years ago

Log in to comment on this ticket.

Metadata