summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ironic/api/wsgi.py2
-rw-r--r--ironic/cmd/__init__.py2
-rw-r--r--ironic/common/i18n.py19
-rw-r--r--releasenotes/notes/oslo-i18n-optional-76bab4d2697c6f94.yaml5
-rw-r--r--requirements.txt1
-rw-r--r--setup.cfg2
6 files changed, 24 insertions, 7 deletions
diff --git a/ironic/api/wsgi.py b/ironic/api/wsgi.py
index 210a16a84..c46473139 100644
--- a/ironic/api/wsgi.py
+++ b/ironic/api/wsgi.py
@@ -14,10 +14,10 @@
import sys
from oslo_config import cfg
-import oslo_i18n as i18n
from oslo_log import log
from ironic.api import app
+from ironic.common import i18n
from ironic.common import service
diff --git a/ironic/cmd/__init__.py b/ironic/cmd/__init__.py
index 18e85ab18..8acedfa92 100644
--- a/ironic/cmd/__init__.py
+++ b/ironic/cmd/__init__.py
@@ -25,6 +25,6 @@ import eventlet
eventlet.monkey_patch(os=False)
-import oslo_i18n as i18n # noqa for I202 due to 'import eventlet' above
+from ironic.common import i18n # noqa for I202 due to 'import eventlet' above
i18n.install('ironic')
diff --git a/ironic/common/i18n.py b/ironic/common/i18n.py
index 48c8d361e..d724f558d 100644
--- a/ironic/common/i18n.py
+++ b/ironic/common/i18n.py
@@ -19,9 +19,20 @@ See https://docs.openstack.org/oslo.i18n/latest/user/
"""
-import oslo_i18n as i18n
+try:
+ import oslo_i18n as i18n
+except ImportError:
+ def _(msg):
+ return msg
-_translators = i18n.TranslatorFactory(domain='ironic')
+ def install(domain):
+ # NOTE(dtantsur): this is called before logging is initialized, so we
+ # cannot really log a warning here.
+ pass
+else:
+ _translators = i18n.TranslatorFactory(domain='ironic')
-# The primary translation function using the well-known name "_"
-_ = _translators.primary
+ # The primary translation function using the well-known name "_"
+ _ = _translators.primary
+
+ install = i18n.install
diff --git a/releasenotes/notes/oslo-i18n-optional-76bab4d2697c6f94.yaml b/releasenotes/notes/oslo-i18n-optional-76bab4d2697c6f94.yaml
new file mode 100644
index 000000000..b99891a3f
--- /dev/null
+++ b/releasenotes/notes/oslo-i18n-optional-76bab4d2697c6f94.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+ - |
+ The dependency on ``oslo.i18n`` is now optional. If you would like messages
+ from ironic to be translated, you need to install it explicitly.
diff --git a/requirements.txt b/requirements.txt
index 4f4a1a1a9..bdff31be5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -21,7 +21,6 @@ oslo.config>=5.2.0 # Apache-2.0
oslo.context>=2.19.2 # Apache-2.0
oslo.db>=4.40.0 # Apache-2.0
oslo.rootwrap>=5.8.0 # Apache-2.0
-oslo.i18n>=3.15.3 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0
oslo.middleware>=3.31.0 # Apache-2.0
oslo.policy>=1.30.0 # Apache-2.0
diff --git a/setup.cfg b/setup.cfg
index 5dd3dc4fe..414af630b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -200,3 +200,5 @@ universal = 1
[extras]
guru_meditation_reports =
oslo.reports>=1.18.0 # Apache-2.0
+i18n =
+ oslo.i18n>=3.15.3 # Apache-2.0