From 3f44c9e27874511f05e2338c10e836361776ed88 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Fri, 21 Nov 2014 22:01:08 +0100 Subject: [PATCH] Migrate to oslo.i18n Mostly trivial import changes. - oslo.i18n no longer provide install() method to inject _() into globals(), so removed all calls to it; - removed Babel from dependencies (it will now be grabbed by oslo.i18n); - updated tox.ini to ignore import violations for oslo.i18n. Change-Id: I6623d551f512fb7fe9bf35ee734ed6d4c6cbc287 --- neutron/agent/dhcp_agent.py | 2 +- neutron/agent/l3_agent.py | 2 +- neutron/agent/l3_ha_agent.py | 2 +- neutron/agent/linux/async_process.py | 2 +- neutron/agent/linux/daemon.py | 2 +- neutron/agent/linux/dhcp.py | 2 +- neutron/agent/linux/external_process.py | 2 +- neutron/agent/linux/interface.py | 2 +- neutron/agent/linux/ip_link_support.py | 2 +- neutron/agent/linux/iptables_firewall.py | 2 +- neutron/agent/linux/iptables_manager.py | 2 +- neutron/agent/linux/keepalived.py | 2 +- neutron/agent/linux/ovs_lib.py | 2 +- neutron/agent/linux/ovsdb_monitor.py | 2 +- neutron/agent/metadata/agent.py | 2 +- neutron/agent/metadata/namespace_proxy.py | 2 +- neutron/agent/netns_cleanup_util.py | 2 +- neutron/agent/ovs_cleanup_util.py | 2 +- neutron/agent/rpc.py | 2 +- neutron/agent/securitygroups_rpc.py | 2 +- neutron/api/api_common.py | 2 +- neutron/api/extensions.py | 2 +- .../rpc/agentnotifiers/dhcp_rpc_agent_api.py | 2 +- .../rpc/agentnotifiers/l3_rpc_agent_api.py | 2 +- neutron/api/rpc/handlers/dhcp_rpc.py | 2 +- neutron/api/rpc/handlers/l3_rpc.py | 2 +- neutron/api/v2/base.py | 2 +- neutron/api/v2/resource.py | 6 +- neutron/api/versions.py | 4 +- neutron/cmd/sanity/checks.py | 2 +- neutron/cmd/sanity_check.py | 2 +- neutron/common/config.py | 2 +- neutron/common/ipv6_utils.py | 2 +- neutron/db/agents_db.py | 2 +- neutron/db/db_base_plugin_v2.py | 2 +- neutron/db/dvr_mac_db.py | 2 +- neutron/db/l3_agentschedulers_db.py | 2 +- neutron/db/l3_db.py | 2 +- neutron/db/l3_dvr_db.py | 2 +- neutron/db/l3_dvrscheduler_db.py | 2 +- neutron/db/l3_hamode_db.py | 3 +- neutron/db/metering/metering_rpc.py | 2 +- .../alembic_migrations/heal_script.py | 2 +- neutron/db/securitygroups_rpc_base.py | 2 +- neutron/db/vpn/vpn_db.py | 2 +- neutron/debug/commands.py | 2 +- neutron/debug/debug_agent.py | 2 +- neutron/extensions/l3agentscheduler.py | 2 +- neutron/i18n.py | 30 ++ neutron/notifiers/nova.py | 2 +- neutron/openstack/common/gettextutils.py | 498 ------------------ .../plugins/bigswitch/db/consistency_db.py | 2 +- neutron/plugins/cisco/cfg_agent/cfg_agent.py | 2 +- .../csr1kv/csr1kv_routing_driver.py | 2 +- .../cfg_agent/device_drivers/driver_mgr.py | 2 +- .../plugins/cisco/cfg_agent/device_status.py | 2 +- .../service_helpers/routing_svc_helper.py | 2 +- .../plugins/cisco/db/l3/device_handling_db.py | 2 +- .../cisco/db/l3/l3_router_appliance_db.py | 2 +- neutron/plugins/cisco/db/n1kv_db_v2.py | 2 +- .../csr1kv_hd_driver.py | 2 +- .../plugging_drivers/n1kv_trunking_driver.py | 2 +- neutron/plugins/cisco/l3/service_vm_lib.py | 2 +- .../plugins/cisco/models/virt_phy_sw_v2.py | 2 +- .../plugins/cisco/n1kv/n1kv_neutron_plugin.py | 2 +- .../agent/linuxbridge_neutron_agent.py | 2 +- neutron/plugins/ml2/db.py | 2 +- .../ml2/drivers/arista/arista_l3_driver.py | 2 +- .../ml2/drivers/arista/mechanism_arista.py | 2 +- .../ml2/drivers/brocade/mechanism_brocade.py | 2 +- .../ml2/drivers/brocade/nos/nosdriver.py | 2 +- .../ml2/drivers/cisco/apic/apic_sync.py | 2 +- .../ml2/drivers/cisco/apic/apic_topology.py | 2 +- .../ml2/drivers/cisco/nexus/nexus_db_v2.py | 2 +- .../ml2/drivers/freescale/mechanism_fslsdn.py | 2 +- neutron/plugins/ml2/drivers/helpers.py | 2 +- .../plugins/ml2/drivers/l2pop/mech_driver.py | 2 +- neutron/plugins/ml2/drivers/mech_agent.py | 2 +- .../ml2/drivers/mech_bigswitch/driver.py | 2 +- .../plugins/ml2/drivers/mech_nuage/driver.py | 2 +- .../ml2/drivers/mech_sriov/mech_driver.py | 2 +- neutron/plugins/ml2/drivers/type_flat.py | 2 +- neutron/plugins/ml2/drivers/type_gre.py | 2 +- neutron/plugins/ml2/drivers/type_local.py | 2 +- neutron/plugins/ml2/drivers/type_tunnel.py | 2 +- neutron/plugins/ml2/drivers/type_vlan.py | 2 +- neutron/plugins/ml2/drivers/type_vxlan.py | 2 +- neutron/plugins/ml2/managers.py | 2 +- neutron/plugins/ml2/plugin.py | 2 +- neutron/plugins/ml2/rpc.py | 2 +- .../mlnx/agent/eswitch_neutron_agent.py | 2 +- neutron/plugins/nuage/syncmanager.py | 2 +- neutron/plugins/ofagent/agent/arp_lib.py | 2 +- .../ofagent/agent/ofa_neutron_agent.py | 2 +- .../agent/ovs_dvr_neutron_agent.py | 2 +- .../openvswitch/agent/ovs_neutron_agent.py | 2 +- neutron/plugins/vmware/plugins/base.py | 2 +- neutron/policy.py | 2 +- neutron/scheduler/dhcp_agent_scheduler.py | 2 +- neutron/scheduler/l3_agent_scheduler.py | 2 +- neutron/server/__init__.py | 7 +- .../agents/l3reference/firewall_l3_agent.py | 2 +- .../firewall/agents/varmour/varmour_api.py | 2 +- .../firewall/agents/varmour/varmour_router.py | 2 +- .../firewall/drivers/linux/iptables_fwaas.py | 2 +- .../firewall/drivers/varmour/varmour_fwaas.py | 2 +- neutron/services/firewall/fwaas_plugin.py | 2 +- .../l3_router/brocade/l3_router_plugin.py | 2 +- neutron/services/l3_router/l3_arista.py | 2 +- .../loadbalancer/agent/agent_manager.py | 2 +- .../services/loadbalancer/agent_scheduler.py | 2 +- .../drivers/common/agent_driver_base.py | 2 +- .../drivers/embrane/agent/dispatcher.py | 2 +- .../drivers/embrane/agent/lb_operations.py | 2 +- .../loadbalancer/drivers/embrane/driver.py | 2 +- .../loadbalancer/drivers/embrane/poller.py | 2 +- .../drivers/haproxy/namespace_driver.py | 2 +- .../drivers/netscaler/ncc_client.py | 2 +- .../drivers/netscaler/netscaler_driver.py | 2 +- .../loadbalancer/drivers/radware/driver.py | 2 +- neutron/services/loadbalancer/plugin.py | 2 +- .../metering/agents/metering_agent.py | 2 +- .../drivers/iptables/iptables_driver.py | 2 +- neutron/services/service_base.py | 2 +- .../device_drivers/cisco_csr_rest_client.py | 2 +- .../vpn/device_drivers/cisco_ipsec.py | 2 +- neutron/services/vpn/device_drivers/ipsec.py | 2 +- neutron/services/vpn/plugin.py | 2 +- .../vpn/service_drivers/cisco_csr_db.py | 2 +- .../cisco/l3/device_handling_test_support.py | 2 +- neutron/tests/unit/test_api_v2_resource.py | 14 +- neutron/tests/unit/test_l3_agent.py | 2 +- .../apiclient/test_api_eventlet_request.py | 2 +- neutron/wsgi.py | 6 +- openstack-common.conf | 1 - requirements.txt | 1 - tox.ini | 2 +- 137 files changed, 174 insertions(+), 650 deletions(-) create mode 100644 neutron/i18n.py delete mode 100644 neutron/openstack/common/gettextutils.py diff --git a/neutron/agent/dhcp_agent.py b/neutron/agent/dhcp_agent.py index 95182c99e1a..58c5eb4c8ba 100644 --- a/neutron/agent/dhcp_agent.py +++ b/neutron/agent/dhcp_agent.py @@ -38,8 +38,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils from neutron import context +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.openstack.common import service diff --git a/neutron/agent/l3_agent.py b/neutron/agent/l3_agent.py index 32bbc1aceec..54138f348d3 100644 --- a/neutron/agent/l3_agent.py +++ b/neutron/agent/l3_agent.py @@ -44,8 +44,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as common_utils from neutron import context as n_context +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.openstack.common import periodic_task diff --git a/neutron/agent/l3_ha_agent.py b/neutron/agent/l3_ha_agent.py index 49cba74153d..c1f6f492803 100644 --- a/neutron/agent/l3_ha_agent.py +++ b/neutron/agent/l3_ha_agent.py @@ -21,7 +21,7 @@ from oslo.config import cfg from neutron.agent.linux import keepalived from neutron.common import constants as l3_constants -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.openstack.common import periodic_task diff --git a/neutron/agent/linux/async_process.py b/neutron/agent/linux/async_process.py index bb3ca0a3e00..c19e0520f58 100644 --- a/neutron/agent/linux/async_process.py +++ b/neutron/agent/linux/async_process.py @@ -17,7 +17,7 @@ import eventlet.event import eventlet.queue from neutron.agent.linux import utils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/daemon.py b/neutron/agent/linux/daemon.py index ccfd1fbe976..047a8ee0309 100644 --- a/neutron/agent/linux/daemon.py +++ b/neutron/agent/linux/daemon.py @@ -18,7 +18,7 @@ import os import signal import sys -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/agent/linux/dhcp.py b/neutron/agent/linux/dhcp.py index ceae81c1146..cc57c780618 100644 --- a/neutron/agent/linux/dhcp.py +++ b/neutron/agent/linux/dhcp.py @@ -32,7 +32,7 @@ from neutron.agent.linux import utils from neutron.common import constants from neutron.common import exceptions from neutron.common import utils as commonutils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils diff --git a/neutron/agent/linux/external_process.py b/neutron/agent/linux/external_process.py index ffea1247ac3..b6b3688e889 100644 --- a/neutron/agent/linux/external_process.py +++ b/neutron/agent/linux/external_process.py @@ -19,7 +19,7 @@ from oslo.config import cfg from neutron.agent.linux import ip_lib from neutron.agent.linux import utils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/interface.py b/neutron/agent/linux/interface.py index adbd0e9fdf5..4887ce73ba2 100644 --- a/neutron/agent/linux/interface.py +++ b/neutron/agent/linux/interface.py @@ -27,7 +27,7 @@ from neutron.agent.linux import utils from neutron.common import constants as n_const from neutron.common import exceptions from neutron.extensions import flavor -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/ip_link_support.py b/neutron/agent/linux/ip_link_support.py index c7222d0fe57..146cd06ee23 100644 --- a/neutron/agent/linux/ip_link_support.py +++ b/neutron/agent/linux/ip_link_support.py @@ -17,7 +17,7 @@ import re from neutron.agent.linux import utils from neutron.common import exceptions as n_exc -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/iptables_firewall.py b/neutron/agent/linux/iptables_firewall.py index 945a4a63e0f..73b21a4e4b6 100644 --- a/neutron/agent/linux/iptables_firewall.py +++ b/neutron/agent/linux/iptables_firewall.py @@ -22,7 +22,7 @@ from neutron.agent.linux import iptables_comments as ic from neutron.agent.linux import iptables_manager from neutron.common import constants from neutron.common import ipv6_utils -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/iptables_manager.py b/neutron/agent/linux/iptables_manager.py index b59c43ba3d8..c9a2b894b03 100644 --- a/neutron/agent/linux/iptables_manager.py +++ b/neutron/agent/linux/iptables_manager.py @@ -29,7 +29,7 @@ from neutron.agent.common import config from neutron.agent.linux import iptables_comments as ic from neutron.agent.linux import utils as linux_utils from neutron.common import utils -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging diff --git a/neutron/agent/linux/keepalived.py b/neutron/agent/linux/keepalived.py index 2c3fc62a3de..429206bcb0f 100644 --- a/neutron/agent/linux/keepalived.py +++ b/neutron/agent/linux/keepalived.py @@ -21,7 +21,7 @@ from oslo.config import cfg from neutron.agent.linux import external_process from neutron.agent.linux import utils from neutron.common import exceptions -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging VALID_STATES = ['MASTER', 'BACKUP'] diff --git a/neutron/agent/linux/ovs_lib.py b/neutron/agent/linux/ovs_lib.py index a500e51d37e..3a49c0c9ee1 100644 --- a/neutron/agent/linux/ovs_lib.py +++ b/neutron/agent/linux/ovs_lib.py @@ -23,7 +23,7 @@ from oslo.utils import excutils from neutron.agent.linux import ip_lib from neutron.agent.linux import utils from neutron.common import exceptions -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants diff --git a/neutron/agent/linux/ovsdb_monitor.py b/neutron/agent/linux/ovsdb_monitor.py index a7bf75cb64f..a81349dc8fc 100644 --- a/neutron/agent/linux/ovsdb_monitor.py +++ b/neutron/agent/linux/ovsdb_monitor.py @@ -15,7 +15,7 @@ import eventlet from neutron.agent.linux import async_process -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging diff --git a/neutron/agent/metadata/agent.py b/neutron/agent/metadata/agent.py index e0f78c014dc..b52b46dfbb2 100644 --- a/neutron/agent/metadata/agent.py +++ b/neutron/agent/metadata/agent.py @@ -37,8 +37,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils from neutron import context +from neutron.i18n import _LE, _LW from neutron.openstack.common.cache import cache -from neutron.openstack.common.gettextutils import _LE, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron import wsgi diff --git a/neutron/agent/metadata/namespace_proxy.py b/neutron/agent/metadata/namespace_proxy.py index 3fe96f6bfc2..a48d5bbfdf1 100644 --- a/neutron/agent/metadata/namespace_proxy.py +++ b/neutron/agent/metadata/namespace_proxy.py @@ -26,7 +26,7 @@ import webob from neutron.agent.linux import daemon from neutron.common import config from neutron.common import utils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron import wsgi diff --git a/neutron/agent/netns_cleanup_util.py b/neutron/agent/netns_cleanup_util.py index f40d5e40822..60e3f82fd53 100644 --- a/neutron/agent/netns_cleanup_util.py +++ b/neutron/agent/netns_cleanup_util.py @@ -30,7 +30,7 @@ from neutron.agent.linux import ip_lib from neutron.agent.linux import ovs_lib from neutron.api.v2 import attributes from neutron.common import config -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging diff --git a/neutron/agent/ovs_cleanup_util.py b/neutron/agent/ovs_cleanup_util.py index da23bb6bfe7..9d365abbaae 100644 --- a/neutron/agent/ovs_cleanup_util.py +++ b/neutron/agent/ovs_cleanup_util.py @@ -21,7 +21,7 @@ from neutron.agent.linux import interface from neutron.agent.linux import ip_lib from neutron.agent.linux import ovs_lib from neutron.common import config -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging diff --git a/neutron/agent/rpc.py b/neutron/agent/rpc.py index 3f8d5e291e1..6d789323408 100644 --- a/neutron/agent/rpc.py +++ b/neutron/agent/rpc.py @@ -19,7 +19,7 @@ from oslo.utils import timeutils from neutron.common import rpc as n_rpc from neutron.common import topics -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging diff --git a/neutron/agent/securitygroups_rpc.py b/neutron/agent/securitygroups_rpc.py index a6aab260d84..ad986e4c84d 100644 --- a/neutron/agent/securitygroups_rpc.py +++ b/neutron/agent/securitygroups_rpc.py @@ -22,7 +22,7 @@ from oslo.utils import importutils from neutron.agent import firewall from neutron.common import topics -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/api/api_common.py b/neutron/api/api_common.py index d90d6440b9d..792254191b5 100644 --- a/neutron/api/api_common.py +++ b/neutron/api/api_common.py @@ -20,7 +20,7 @@ from webob import exc from neutron.common import constants from neutron.common import exceptions -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging diff --git a/neutron/api/extensions.py b/neutron/api/extensions.py index 3a406a0ab64..2a66680c25a 100644 --- a/neutron/api/extensions.py +++ b/neutron/api/extensions.py @@ -27,8 +27,8 @@ import webob.exc from neutron.common import exceptions import neutron.extensions +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron import policy from neutron import wsgi diff --git a/neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py b/neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py index ad0077225b2..969e1b2d0d4 100644 --- a/neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py +++ b/neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py @@ -17,8 +17,8 @@ from neutron.common import constants from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils +from neutron.i18n import _LE, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LW from neutron.openstack.common import log as logging diff --git a/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py b/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py index e69ea54c94a..22240951cb6 100644 --- a/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py +++ b/neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py @@ -19,8 +19,8 @@ from neutron.common import constants from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants as service_constants diff --git a/neutron/api/rpc/handlers/dhcp_rpc.py b/neutron/api/rpc/handlers/dhcp_rpc.py index add359cafba..9673a65d5af 100644 --- a/neutron/api/rpc/handlers/dhcp_rpc.py +++ b/neutron/api/rpc/handlers/dhcp_rpc.py @@ -23,8 +23,8 @@ from neutron.common import constants from neutron.common import exceptions as n_exc from neutron.common import utils from neutron.extensions import portbindings +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log as logging diff --git a/neutron/api/rpc/handlers/l3_rpc.py b/neutron/api/rpc/handlers/l3_rpc.py index 80b59829561..db9081bb077 100644 --- a/neutron/api/rpc/handlers/l3_rpc.py +++ b/neutron/api/rpc/handlers/l3_rpc.py @@ -23,8 +23,8 @@ from neutron.common import utils from neutron import context as neutron_context from neutron.extensions import l3 from neutron.extensions import portbindings +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants as plugin_constants diff --git a/neutron/api/v2/base.py b/neutron/api/v2/base.py index a68477f6e18..4c1810cff8e 100644 --- a/neutron/api/v2/base.py +++ b/neutron/api/v2/base.py @@ -27,7 +27,7 @@ from neutron.api.v2 import resource as wsgi_resource from neutron.common import constants as const from neutron.common import exceptions from neutron.common import rpc as n_rpc -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.openstack.common import policy as common_policy from neutron import policy diff --git a/neutron/api/v2/resource.py b/neutron/api/v2/resource.py index 286a0c7f557..ab5618ab856 100644 --- a/neutron/api/v2/resource.py +++ b/neutron/api/v2/resource.py @@ -20,13 +20,13 @@ Utility methods for working with WSGI servers redux import sys import netaddr +from oslo import i18n import six import webob.dec import webob.exc from neutron.common import exceptions -from neutron.openstack.common import gettextutils -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.openstack.common import policy as common_policy from neutron import wsgi @@ -173,7 +173,7 @@ def translate(translatable, locale): :returns: the translated object, or the object as-is if it was not translated """ - localize = gettextutils.translate + localize = i18n.translate if isinstance(translatable, exceptions.NeutronException): translatable.msg = localize(translatable.msg, locale) elif isinstance(translatable, webob.exc.HTTPError): diff --git a/neutron/api/versions.py b/neutron/api/versions.py index 814c20778a5..06f565d4c45 100644 --- a/neutron/api/versions.py +++ b/neutron/api/versions.py @@ -13,10 +13,10 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo import i18n import webob.dec from neutron.api.views import versions as versions_view -from neutron.openstack.common import gettextutils from neutron.openstack.common import log as logging from neutron import wsgi @@ -43,7 +43,7 @@ class Versions(object): if req.path != '/': language = req.best_match_language() msg = _('Unknown API version specified') - msg = gettextutils.translate(msg, language) + msg = i18n.translate(msg, language) return webob.exc.HTTPNotFound(explanation=msg) builder = versions_view.get_view_builder(req) diff --git a/neutron/cmd/sanity/checks.py b/neutron/cmd/sanity/checks.py index ee1b20e38bb..d13b0f91d25 100644 --- a/neutron/cmd/sanity/checks.py +++ b/neutron/cmd/sanity/checks.py @@ -19,7 +19,7 @@ from neutron.agent.linux import ip_link_support from neutron.agent.linux import ovs_lib from neutron.agent.linux import utils as agent_utils from neutron.common import utils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants as const from neutron.plugins.openvswitch.common import constants as ovs_const diff --git a/neutron/cmd/sanity_check.py b/neutron/cmd/sanity_check.py index 87bae80e423..1ab1ff57ed2 100644 --- a/neutron/cmd/sanity_check.py +++ b/neutron/cmd/sanity_check.py @@ -17,7 +17,7 @@ import sys from neutron.cmd.sanity import checks from neutron.common import config -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from oslo.config import cfg diff --git a/neutron/common/config.py b/neutron/common/config.py index e16f15a58e9..f8bd3949fe1 100644 --- a/neutron/common/config.py +++ b/neutron/common/config.py @@ -26,7 +26,7 @@ from paste import deploy from neutron.api.v2 import attributes from neutron.common import utils -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron import version diff --git a/neutron/common/ipv6_utils.py b/neutron/common/ipv6_utils.py index ec9168ea364..fe5af32dda6 100644 --- a/neutron/common/ipv6_utils.py +++ b/neutron/common/ipv6_utils.py @@ -21,7 +21,7 @@ import os import netaddr from neutron.common import constants -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log diff --git a/neutron/db/agents_db.py b/neutron/db/agents_db.py index 9f13ef487e9..2516886a425 100644 --- a/neutron/db/agents_db.py +++ b/neutron/db/agents_db.py @@ -28,8 +28,8 @@ from sqlalchemy import sql from neutron.db import model_base from neutron.db import models_v2 from neutron.extensions import agent as ext_agent +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py index e7108e2c67a..6f062fcafb1 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -32,9 +32,9 @@ from neutron.db import common_db_mixin from neutron.db import models_v2 from neutron.db import sqlalchemyutils from neutron.extensions import l3 +from neutron.i18n import _LE, _LI from neutron import manager from neutron import neutron_plugin_base_v2 -from neutron.openstack.common.gettextutils import _LE, _LI from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils from neutron.plugins.common import constants as service_constants diff --git a/neutron/db/dvr_mac_db.py b/neutron/db/dvr_mac_db.py index e839697ac37..eff249fa529 100644 --- a/neutron/db/dvr_mac_db.py +++ b/neutron/db/dvr_mac_db.py @@ -23,8 +23,8 @@ from neutron.common import utils from neutron.db import model_base from neutron.extensions import dvr as ext_dvr from neutron.extensions import portbindings +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from oslo.config import cfg from sqlalchemy.orm import exc diff --git a/neutron/db/l3_agentschedulers_db.py b/neutron/db/l3_agentschedulers_db.py index c2308cb5a7b..5fd3d360caf 100644 --- a/neutron/db/l3_agentschedulers_db.py +++ b/neutron/db/l3_agentschedulers_db.py @@ -35,8 +35,8 @@ from neutron.db import agentschedulers_db from neutron.db import l3_attrs_db from neutron.db import model_base from neutron.extensions import l3agentscheduler +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall diff --git a/neutron/db/l3_db.py b/neutron/db/l3_db.py index 6a373161c3d..014ffe3401a 100644 --- a/neutron/db/l3_db.py +++ b/neutron/db/l3_db.py @@ -28,8 +28,8 @@ from neutron.db import model_base from neutron.db import models_v2 from neutron.extensions import external_net from neutron.extensions import l3 +from neutron.i18n import _LI from neutron import manager -from neutron.openstack.common.gettextutils import _LI from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils from neutron.plugins.common import constants diff --git a/neutron/db/l3_dvr_db.py b/neutron/db/l3_dvr_db.py index c4c023729aa..5866fd90c87 100644 --- a/neutron/db/l3_dvr_db.py +++ b/neutron/db/l3_dvr_db.py @@ -24,7 +24,7 @@ from neutron.db import l3_dvrscheduler_db as l3_dvrsched_db from neutron.db import models_v2 from neutron.extensions import l3 from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging diff --git a/neutron/db/l3_dvrscheduler_db.py b/neutron/db/l3_dvrscheduler_db.py index d717b0d5d0c..508b3663fc8 100644 --- a/neutron/db/l3_dvrscheduler_db.py +++ b/neutron/db/l3_dvrscheduler_db.py @@ -26,7 +26,7 @@ from neutron.db import agents_db from neutron.db import l3_agentschedulers_db as l3agent_sch_db from neutron.db import model_base from neutron.db import models_v2 -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.ml2 import db as ml2_db diff --git a/neutron/db/l3_hamode_db.py b/neutron/db/l3_hamode_db.py index 3d28f86676b..7df53b57b81 100644 --- a/neutron/db/l3_hamode_db.py +++ b/neutron/db/l3_hamode_db.py @@ -27,8 +27,7 @@ from neutron.db import l3_dvr_db from neutron.db import model_base from neutron.db import models_v2 from neutron.extensions import l3_ext_ha_mode as l3_ha -from neutron.openstack.common.gettextutils import _LI -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging VR_ID_RANGE = set(range(1, 255)) diff --git a/neutron/db/metering/metering_rpc.py b/neutron/db/metering/metering_rpc.py index 7c1935154db..b99abe28ee5 100644 --- a/neutron/db/metering/metering_rpc.py +++ b/neutron/db/metering/metering_rpc.py @@ -14,8 +14,8 @@ from neutron.common import constants as consts from neutron.common import utils +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants as service_constants diff --git a/neutron/db/migration/alembic_migrations/heal_script.py b/neutron/db/migration/alembic_migrations/heal_script.py index 24de2148f04..05a0f738114 100644 --- a/neutron/db/migration/alembic_migrations/heal_script.py +++ b/neutron/db/migration/alembic_migrations/heal_script.py @@ -27,7 +27,7 @@ from sqlalchemy.sql import text from sqlalchemy import types from neutron.db.migration.models import frozen as frozen_models -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI LOG = logging.getLogger(__name__) diff --git a/neutron/db/securitygroups_rpc_base.py b/neutron/db/securitygroups_rpc_base.py index 3eb7b2c332b..63690ee7baa 100644 --- a/neutron/db/securitygroups_rpc_base.py +++ b/neutron/db/securitygroups_rpc_base.py @@ -23,7 +23,7 @@ from neutron.db import allowedaddresspairs_db as addr_pair from neutron.db import models_v2 from neutron.db import securitygroups_db as sg_db from neutron.extensions import securitygroup as ext_sg -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/db/vpn/vpn_db.py b/neutron/db/vpn/vpn_db.py index c32f9848670..0dec4a587e3 100644 --- a/neutron/db/vpn/vpn_db.py +++ b/neutron/db/vpn/vpn_db.py @@ -27,8 +27,8 @@ from neutron.db import model_base from neutron.db import models_v2 from neutron.db.vpn import vpn_validator from neutron.extensions import vpnaas +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils from neutron.plugins.common import constants diff --git a/neutron/debug/commands.py b/neutron/debug/commands.py index 2b321b2823f..ac54f0ea58e 100644 --- a/neutron/debug/commands.py +++ b/neutron/debug/commands.py @@ -18,7 +18,7 @@ from neutronclient.common import utils from neutronclient.neutron import v2_0 as client from neutronclient.neutron.v2_0 import port -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging diff --git a/neutron/debug/debug_agent.py b/neutron/debug/debug_agent.py index 175c0d40a1b..28a7f13c51f 100644 --- a/neutron/debug/debug_agent.py +++ b/neutron/debug/debug_agent.py @@ -23,7 +23,7 @@ from neutron.agent.common import config from neutron.agent.linux import dhcp from neutron.agent.linux import ip_lib from neutron.agent.linux import utils -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging diff --git a/neutron/extensions/l3agentscheduler.py b/neutron/extensions/l3agentscheduler.py index 74a46aeaa4c..d8e27aaf566 100644 --- a/neutron/extensions/l3agentscheduler.py +++ b/neutron/extensions/l3agentscheduler.py @@ -24,8 +24,8 @@ from neutron.common import constants from neutron.common import exceptions from neutron.common import rpc as n_rpc from neutron.extensions import agent +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants as service_constants from neutron import policy diff --git a/neutron/i18n.py b/neutron/i18n.py new file mode 100644 index 00000000000..bdfe8bfd392 --- /dev/null +++ b/neutron/i18n.py @@ -0,0 +1,30 @@ +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from oslo import i18n + +_translators = i18n.TranslatorFactory(domain='neutron') + +# The primary translation function using the well-known name "_" +_ = _translators.primary + +# Translators for log levels. +# +# The abbreviated names are meant to reflect the usual use of a short +# name like '_'. The "L" is for "log" and the other letter comes from +# the level. +_LI = _translators.log_info +_LW = _translators.log_warning +_LE = _translators.log_error +_LC = _translators.log_critical diff --git a/neutron/notifiers/nova.py b/neutron/notifiers/nova.py index a778a2a5eb4..0496195d006 100644 --- a/neutron/notifiers/nova.py +++ b/neutron/notifiers/nova.py @@ -22,8 +22,8 @@ from sqlalchemy.orm import attributes as sql_attr from neutron.common import constants from neutron import context +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils diff --git a/neutron/openstack/common/gettextutils.py b/neutron/openstack/common/gettextutils.py deleted file mode 100644 index 1ec1499f65a..00000000000 --- a/neutron/openstack/common/gettextutils.py +++ /dev/null @@ -1,498 +0,0 @@ -# Copyright 2012 Red Hat, Inc. -# Copyright 2013 IBM Corp. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -gettext for openstack-common modules. - -Usual usage in an openstack.common module: - - from neutron.openstack.common.gettextutils import _ -""" - -import copy -import functools -import gettext -import locale -from logging import handlers -import os - -from babel import localedata -import six - -_AVAILABLE_LANGUAGES = {} - -# FIXME(dhellmann): Remove this when moving to oslo.i18n. -USE_LAZY = False - - -class TranslatorFactory(object): - """Create translator functions - """ - - def __init__(self, domain, lazy=False, localedir=None): - """Establish a set of translation functions for the domain. - - :param domain: Name of translation domain, - specifying a message catalog. - :type domain: str - :param lazy: Delays translation until a message is emitted. - Defaults to False. - :type lazy: Boolean - :param localedir: Directory with translation catalogs. - :type localedir: str - """ - self.domain = domain - self.lazy = lazy - if localedir is None: - localedir = os.environ.get(domain.upper() + '_LOCALEDIR') - self.localedir = localedir - - def _make_translation_func(self, domain=None): - """Return a new translation function ready for use. - - Takes into account whether or not lazy translation is being - done. - - The domain can be specified to override the default from the - factory, but the localedir from the factory is always used - because we assume the log-level translation catalogs are - installed in the same directory as the main application - catalog. - - """ - if domain is None: - domain = self.domain - if self.lazy: - return functools.partial(Message, domain=domain) - t = gettext.translation( - domain, - localedir=self.localedir, - fallback=True, - ) - if six.PY3: - return t.gettext - return t.ugettext - - @property - def primary(self): - "The default translation function." - return self._make_translation_func() - - def _make_log_translation_func(self, level): - return self._make_translation_func(self.domain + '-log-' + level) - - @property - def log_info(self): - "Translate info-level log messages." - return self._make_log_translation_func('info') - - @property - def log_warning(self): - "Translate warning-level log messages." - return self._make_log_translation_func('warning') - - @property - def log_error(self): - "Translate error-level log messages." - return self._make_log_translation_func('error') - - @property - def log_critical(self): - "Translate critical-level log messages." - return self._make_log_translation_func('critical') - - -# NOTE(dhellmann): When this module moves out of the incubator into -# oslo.i18n, these global variables can be moved to an integration -# module within each application. - -# Create the global translation functions. -_translators = TranslatorFactory('neutron') - -# The primary translation function using the well-known name "_" -_ = _translators.primary - -# Translators for log levels. -# -# The abbreviated names are meant to reflect the usual use of a short -# name like '_'. The "L" is for "log" and the other letter comes from -# the level. -_LI = _translators.log_info -_LW = _translators.log_warning -_LE = _translators.log_error -_LC = _translators.log_critical - -# NOTE(dhellmann): End of globals that will move to the application's -# integration module. - - -def enable_lazy(): - """Convenience function for configuring _() to use lazy gettext - - Call this at the start of execution to enable the gettextutils._ - function to use lazy gettext functionality. This is useful if - your project is importing _ directly instead of using the - gettextutils.install() way of importing the _ function. - """ - # FIXME(dhellmann): This function will be removed in oslo.i18n, - # because the TranslatorFactory makes it superfluous. - global _, _LI, _LW, _LE, _LC, USE_LAZY - tf = TranslatorFactory('neutron', lazy=True) - _ = tf.primary - _LI = tf.log_info - _LW = tf.log_warning - _LE = tf.log_error - _LC = tf.log_critical - USE_LAZY = True - - -def install(domain, lazy=False): - """Install a _() function using the given translation domain. - - Given a translation domain, install a _() function using gettext's - install() function. - - The main difference from gettext.install() is that we allow - overriding the default localedir (e.g. /usr/share/locale) using - a translation-domain-specific environment variable (e.g. - NOVA_LOCALEDIR). - - :param domain: the translation domain - :param lazy: indicates whether or not to install the lazy _() function. - The lazy _() introduces a way to do deferred translation - of messages by installing a _ that builds Message objects, - instead of strings, which can then be lazily translated into - any available locale. - """ - if lazy: - from six import moves - tf = TranslatorFactory(domain, lazy=True) - moves.builtins.__dict__['_'] = tf.primary - else: - localedir = '%s_LOCALEDIR' % domain.upper() - if six.PY3: - gettext.install(domain, - localedir=os.environ.get(localedir)) - else: - gettext.install(domain, - localedir=os.environ.get(localedir), - unicode=True) - - -class Message(six.text_type): - """A Message object is a unicode object that can be translated. - - Translation of Message is done explicitly using the translate() method. - For all non-translation intents and purposes, a Message is simply unicode, - and can be treated as such. - """ - - def __new__(cls, msgid, msgtext=None, params=None, - domain='neutron', *args): - """Create a new Message object. - - In order for translation to work gettext requires a message ID, this - msgid will be used as the base unicode text. It is also possible - for the msgid and the base unicode text to be different by passing - the msgtext parameter. - """ - # If the base msgtext is not given, we use the default translation - # of the msgid (which is in English) just in case the system locale is - # not English, so that the base text will be in that locale by default. - if not msgtext: - msgtext = Message._translate_msgid(msgid, domain) - # We want to initialize the parent unicode with the actual object that - # would have been plain unicode if 'Message' was not enabled. - msg = super(Message, cls).__new__(cls, msgtext) - msg.msgid = msgid - msg.domain = domain - msg.params = params - return msg - - def translate(self, desired_locale=None): - """Translate this message to the desired locale. - - :param desired_locale: The desired locale to translate the message to, - if no locale is provided the message will be - translated to the system's default locale. - - :returns: the translated message in unicode - """ - - translated_message = Message._translate_msgid(self.msgid, - self.domain, - desired_locale) - if self.params is None: - # No need for more translation - return translated_message - - # This Message object may have been formatted with one or more - # Message objects as substitution arguments, given either as a single - # argument, part of a tuple, or as one or more values in a dictionary. - # When translating this Message we need to translate those Messages too - translated_params = _translate_args(self.params, desired_locale) - - translated_message = translated_message % translated_params - - return translated_message - - @staticmethod - def _translate_msgid(msgid, domain, desired_locale=None): - if not desired_locale: - system_locale = locale.getdefaultlocale() - # If the system locale is not available to the runtime use English - if not system_locale[0]: - desired_locale = 'en_US' - else: - desired_locale = system_locale[0] - - locale_dir = os.environ.get(domain.upper() + '_LOCALEDIR') - lang = gettext.translation(domain, - localedir=locale_dir, - languages=[desired_locale], - fallback=True) - if six.PY3: - translator = lang.gettext - else: - translator = lang.ugettext - - translated_message = translator(msgid) - return translated_message - - def __mod__(self, other): - # When we mod a Message we want the actual operation to be performed - # by the parent class (i.e. unicode()), the only thing we do here is - # save the original msgid and the parameters in case of a translation - params = self._sanitize_mod_params(other) - unicode_mod = super(Message, self).__mod__(params) - modded = Message(self.msgid, - msgtext=unicode_mod, - params=params, - domain=self.domain) - return modded - - def _sanitize_mod_params(self, other): - """Sanitize the object being modded with this Message. - - - Add support for modding 'None' so translation supports it - - Trim the modded object, which can be a large dictionary, to only - those keys that would actually be used in a translation - - Snapshot the object being modded, in case the message is - translated, it will be used as it was when the Message was created - """ - if other is None: - params = (other,) - elif isinstance(other, dict): - # Merge the dictionaries - # Copy each item in case one does not support deep copy. - params = {} - if isinstance(self.params, dict): - for key, val in self.params.items(): - params[key] = self._copy_param(val) - for key, val in other.items(): - params[key] = self._copy_param(val) - else: - params = self._copy_param(other) - return params - - def _copy_param(self, param): - try: - return copy.deepcopy(param) - except Exception: - # Fallback to casting to unicode this will handle the - # python code-like objects that can't be deep-copied - return six.text_type(param) - - def __add__(self, other): - msg = _('Message objects do not support addition.') - raise TypeError(msg) - - def __radd__(self, other): - return self.__add__(other) - - if six.PY2: - def __str__(self): - # NOTE(luisg): Logging in python 2.6 tries to str() log records, - # and it expects specifically a UnicodeError in order to proceed. - msg = _('Message objects do not support str() because they may ' - 'contain non-ascii characters. ' - 'Please use unicode() or translate() instead.') - raise UnicodeError(msg) - - -def get_available_languages(domain): - """Lists the available languages for the given translation domain. - - :param domain: the domain to get languages for - """ - if domain in _AVAILABLE_LANGUAGES: - return copy.copy(_AVAILABLE_LANGUAGES[domain]) - - localedir = '%s_LOCALEDIR' % domain.upper() - find = lambda x: gettext.find(domain, - localedir=os.environ.get(localedir), - languages=[x]) - - # NOTE(mrodden): en_US should always be available (and first in case - # order matters) since our in-line message strings are en_US - language_list = ['en_US'] - # NOTE(luisg): Babel <1.0 used a function called list(), which was - # renamed to locale_identifiers() in >=1.0, the requirements master list - # requires >=0.9.6, uncapped, so defensively work with both. We can remove - # this check when the master list updates to >=1.0, and update all projects - list_identifiers = (getattr(localedata, 'list', None) or - getattr(localedata, 'locale_identifiers')) - locale_identifiers = list_identifiers() - - for i in locale_identifiers: - if find(i) is not None: - language_list.append(i) - - # NOTE(luisg): Babel>=1.0,<1.3 has a bug where some OpenStack supported - # locales (e.g. 'zh_CN', and 'zh_TW') aren't supported even though they - # are perfectly legitimate locales: - # https://github.com/mitsuhiko/babel/issues/37 - # In Babel 1.3 they fixed the bug and they support these locales, but - # they are still not explicitly "listed" by locale_identifiers(). - # That is why we add the locales here explicitly if necessary so that - # they are listed as supported. - aliases = {'zh': 'zh_CN', - 'zh_Hant_HK': 'zh_HK', - 'zh_Hant': 'zh_TW', - 'fil': 'tl_PH'} - for (locale_, alias) in six.iteritems(aliases): - if locale_ in language_list and alias not in language_list: - language_list.append(alias) - - _AVAILABLE_LANGUAGES[domain] = language_list - return copy.copy(language_list) - - -def translate(obj, desired_locale=None): - """Gets the translated unicode representation of the given object. - - If the object is not translatable it is returned as-is. - If the locale is None the object is translated to the system locale. - - :param obj: the object to translate - :param desired_locale: the locale to translate the message to, if None the - default system locale will be used - :returns: the translated object in unicode, or the original object if - it could not be translated - """ - message = obj - if not isinstance(message, Message): - # If the object to translate is not already translatable, - # let's first get its unicode representation - message = six.text_type(obj) - if isinstance(message, Message): - # Even after unicoding() we still need to check if we are - # running with translatable unicode before translating - return message.translate(desired_locale) - return obj - - -def _translate_args(args, desired_locale=None): - """Translates all the translatable elements of the given arguments object. - - This method is used for translating the translatable values in method - arguments which include values of tuples or dictionaries. - If the object is not a tuple or a dictionary the object itself is - translated if it is translatable. - - If the locale is None the object is translated to the system locale. - - :param args: the args to translate - :param desired_locale: the locale to translate the args to, if None the - default system locale will be used - :returns: a new args object with the translated contents of the original - """ - if isinstance(args, tuple): - return tuple(translate(v, desired_locale) for v in args) - if isinstance(args, dict): - translated_dict = {} - for (k, v) in six.iteritems(args): - translated_v = translate(v, desired_locale) - translated_dict[k] = translated_v - return translated_dict - return translate(args, desired_locale) - - -class TranslationHandler(handlers.MemoryHandler): - """Handler that translates records before logging them. - - The TranslationHandler takes a locale and a target logging.Handler object - to forward LogRecord objects to after translating them. This handler - depends on Message objects being logged, instead of regular strings. - - The handler can be configured declaratively in the logging.conf as follows: - - [handlers] - keys = translatedlog, translator - - [handler_translatedlog] - class = handlers.WatchedFileHandler - args = ('/var/log/api-localized.log',) - formatter = context - - [handler_translator] - class = openstack.common.log.TranslationHandler - target = translatedlog - args = ('zh_CN',) - - If the specified locale is not available in the system, the handler will - log in the default locale. - """ - - def __init__(self, locale=None, target=None): - """Initialize a TranslationHandler - - :param locale: locale to use for translating messages - :param target: logging.Handler object to forward - LogRecord objects to after translation - """ - # NOTE(luisg): In order to allow this handler to be a wrapper for - # other handlers, such as a FileHandler, and still be able to - # configure it using logging.conf, this handler has to extend - # MemoryHandler because only the MemoryHandlers' logging.conf - # parsing is implemented such that it accepts a target handler. - handlers.MemoryHandler.__init__(self, capacity=0, target=target) - self.locale = locale - - def setFormatter(self, fmt): - self.target.setFormatter(fmt) - - def emit(self, record): - # We save the message from the original record to restore it - # after translation, so other handlers are not affected by this - original_msg = record.msg - original_args = record.args - - try: - self._translate_and_log_record(record) - finally: - record.msg = original_msg - record.args = original_args - - def _translate_and_log_record(self, record): - record.msg = translate(record.msg, self.locale) - - # In addition to translating the message, we also need to translate - # arguments that were passed to the log method that were not part - # of the main message e.g., log.info(_('Some message %s'), this_one)) - record.args = _translate_args(record.args, self.locale) - - self.target.emit(record) diff --git a/neutron/plugins/bigswitch/db/consistency_db.py b/neutron/plugins/bigswitch/db/consistency_db.py index ef443ca08c0..bc6cdc90aee 100644 --- a/neutron/plugins/bigswitch/db/consistency_db.py +++ b/neutron/plugins/bigswitch/db/consistency_db.py @@ -23,7 +23,7 @@ from oslo.db.sqlalchemy import session import sqlalchemy as sa from neutron.db import model_base -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/plugins/cisco/cfg_agent/cfg_agent.py b/neutron/plugins/cisco/cfg_agent/cfg_agent.py index 3b600117cc8..5535e598659 100644 --- a/neutron/plugins/cisco/cfg_agent/cfg_agent.py +++ b/neutron/plugins/cisco/cfg_agent/cfg_agent.py @@ -31,13 +31,13 @@ from neutron.common import config as common_config from neutron.common import rpc as n_rpc from neutron.common import topics from neutron import context as n_context +from neutron.i18n import _LE, _LI, _LW from neutron import manager from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.openstack.common import periodic_task from neutron.openstack.common import service -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.cisco.cfg_agent import device_status from neutron.plugins.cisco.common import cisco_constants as c_constants from neutron import service as neutron_service diff --git a/neutron/plugins/cisco/cfg_agent/device_drivers/csr1kv/csr1kv_routing_driver.py b/neutron/plugins/cisco/cfg_agent/device_drivers/csr1kv/csr1kv_routing_driver.py index fd328117f07..6e80b71d263 100644 --- a/neutron/plugins/cisco/cfg_agent/device_drivers/csr1kv/csr1kv_routing_driver.py +++ b/neutron/plugins/cisco/cfg_agent/device_drivers/csr1kv/csr1kv_routing_driver.py @@ -23,7 +23,7 @@ from ncclient import manager from oslo.config import cfg -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.plugins.cisco.cfg_agent import cfg_exceptions as cfg_exc from neutron.plugins.cisco.cfg_agent.device_drivers.csr1kv import ( cisco_csr1kv_snippets as snippets) diff --git a/neutron/plugins/cisco/cfg_agent/device_drivers/driver_mgr.py b/neutron/plugins/cisco/cfg_agent/device_drivers/driver_mgr.py index e74876ca029..6d59199a475 100644 --- a/neutron/plugins/cisco/cfg_agent/device_drivers/driver_mgr.py +++ b/neutron/plugins/cisco/cfg_agent/device_drivers/driver_mgr.py @@ -15,7 +15,7 @@ from oslo.utils import excutils from oslo.utils import importutils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.cisco.cfg_agent import cfg_exceptions diff --git a/neutron/plugins/cisco/cfg_agent/device_status.py b/neutron/plugins/cisco/cfg_agent/device_status.py index b6721eca55c..2d44908b013 100644 --- a/neutron/plugins/cisco/cfg_agent/device_status.py +++ b/neutron/plugins/cisco/cfg_agent/device_status.py @@ -18,8 +18,8 @@ from oslo.config import cfg from oslo.utils import timeutils from neutron.agent.linux import utils as linux_utils +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging -from neutron.openstack.common.gettextutils import _LI, _LW LOG = logging.getLogger(__name__) diff --git a/neutron/plugins/cisco/cfg_agent/service_helpers/routing_svc_helper.py b/neutron/plugins/cisco/cfg_agent/service_helpers/routing_svc_helper.py index fadab29de95..ffce42e15fa 100644 --- a/neutron/plugins/cisco/cfg_agent/service_helpers/routing_svc_helper.py +++ b/neutron/plugins/cisco/cfg_agent/service_helpers/routing_svc_helper.py @@ -24,8 +24,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as common_utils from neutron import context as n_context +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.cisco.cfg_agent import cfg_exceptions from neutron.plugins.cisco.cfg_agent.device_drivers import driver_mgr from neutron.plugins.cisco.cfg_agent import device_status diff --git a/neutron/plugins/cisco/db/l3/device_handling_db.py b/neutron/plugins/cisco/db/l3/device_handling_db.py index 6eb0730addb..1fe911575a7 100644 --- a/neutron/plugins/cisco/db/l3/device_handling_db.py +++ b/neutron/plugins/cisco/db/l3/device_handling_db.py @@ -26,10 +26,10 @@ from neutron.common import exceptions as n_exc from neutron.common import utils from neutron import context as neutron_context from neutron.db import agents_db +from neutron.i18n import _LE, _LI, _LW from neutron import manager from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.cisco.common import cisco_constants as c_constants from neutron.plugins.cisco.db.l3 import l3_models from neutron.plugins.cisco.l3 import service_vm_lib diff --git a/neutron/plugins/cisco/db/l3/l3_router_appliance_db.py b/neutron/plugins/cisco/db/l3/l3_router_appliance_db.py index e97523781d3..7d0c619ce6e 100644 --- a/neutron/plugins/cisco/db/l3/l3_router_appliance_db.py +++ b/neutron/plugins/cisco/db/l3/l3_router_appliance_db.py @@ -30,7 +30,7 @@ from neutron.db import l3_db from neutron.db import models_v2 from neutron.db import portbindings_db as p_binding from neutron.extensions import providernet as pr_net -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall diff --git a/neutron/plugins/cisco/db/n1kv_db_v2.py b/neutron/plugins/cisco/db/n1kv_db_v2.py index e87d2552b1f..fe6443ed95f 100644 --- a/neutron/plugins/cisco/db/n1kv_db_v2.py +++ b/neutron/plugins/cisco/db/n1kv_db_v2.py @@ -22,7 +22,7 @@ from neutron.common import constants from neutron.common import exceptions as n_exc import neutron.db.api as db from neutron.db import models_v2 -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.cisco.common import cisco_constants as c_const from neutron.plugins.cisco.common import cisco_exceptions as c_exc diff --git a/neutron/plugins/cisco/l3/hosting_device_drivers/csr1kv_hd_driver.py b/neutron/plugins/cisco/l3/hosting_device_drivers/csr1kv_hd_driver.py index 1cb36e826d7..57e8b7ef1f8 100644 --- a/neutron/plugins/cisco/l3/hosting_device_drivers/csr1kv_hd_driver.py +++ b/neutron/plugins/cisco/l3/hosting_device_drivers/csr1kv_hd_driver.py @@ -16,8 +16,8 @@ import netaddr from oslo.config import cfg +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.cisco.l3 import hosting_device_drivers diff --git a/neutron/plugins/cisco/l3/plugging_drivers/n1kv_trunking_driver.py b/neutron/plugins/cisco/l3/plugging_drivers/n1kv_trunking_driver.py index e73251756ee..ce727180a13 100644 --- a/neutron/plugins/cisco/l3/plugging_drivers/n1kv_trunking_driver.py +++ b/neutron/plugins/cisco/l3/plugging_drivers/n1kv_trunking_driver.py @@ -23,9 +23,9 @@ from neutron.common import exceptions as n_exc from neutron import context as n_context from neutron.db import models_v2 from neutron.extensions import providernet as pr_net +from neutron.i18n import _LE, _LI, _LW from neutron import manager from neutron.openstack.common import log as logging -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.cisco.db.l3 import l3_models from neutron.plugins.cisco.extensions import n1kv import neutron.plugins.cisco.l3.plugging_drivers as plug diff --git a/neutron/plugins/cisco/l3/service_vm_lib.py b/neutron/plugins/cisco/l3/service_vm_lib.py index 095aa546378..128bf99ee5c 100644 --- a/neutron/plugins/cisco/l3/service_vm_lib.py +++ b/neutron/plugins/cisco/l3/service_vm_lib.py @@ -17,8 +17,8 @@ from novaclient import utils as n_utils from novaclient.v1_1 import client from oslo.config import cfg +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.plugins.cisco.common import cisco_constants as c_constants diff --git a/neutron/plugins/cisco/models/virt_phy_sw_v2.py b/neutron/plugins/cisco/models/virt_phy_sw_v2.py index 91fd1a13692..a6d7b47441f 100644 --- a/neutron/plugins/cisco/models/virt_phy_sw_v2.py +++ b/neutron/plugins/cisco/models/virt_phy_sw_v2.py @@ -21,8 +21,8 @@ from oslo.utils import importutils from neutron.api.v2 import attributes from neutron.extensions import portbindings from neutron.extensions import providernet as provider +from neutron.i18n import _LE, _LI from neutron import neutron_plugin_base_v2 -from neutron.openstack.common.gettextutils import _LE, _LI from neutron.openstack.common import log as logging from neutron.plugins.cisco.common import cisco_constants as const from neutron.plugins.cisco.common import cisco_credentials_v2 as cred diff --git a/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py b/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py index 947fdebb4d1..22bcf17e6c9 100644 --- a/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py +++ b/neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py @@ -35,8 +35,8 @@ from neutron.db import portbindings_db from neutron.db import quota_db from neutron.extensions import portbindings from neutron.extensions import providernet +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils as uuidutils from neutron.plugins.cisco.common import cisco_constants as c_const diff --git a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py index 3617d7ecc35..ea53a4232eb 100755 --- a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -41,7 +41,7 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as q_utils from neutron import context -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.plugins.common import constants as p_const diff --git a/neutron/plugins/ml2/db.py b/neutron/plugins/ml2/db.py index dfd6f710f08..7f8dbdcad67 100644 --- a/neutron/plugins/ml2/db.py +++ b/neutron/plugins/ml2/db.py @@ -25,8 +25,8 @@ from neutron.db import api as db_api from neutron.db import models_v2 from neutron.db import securitygroups_db as sg_db from neutron.extensions import portbindings +from neutron.i18n import _LE, _LI from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI from neutron.openstack.common import log from neutron.openstack.common import uuidutils from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/arista/arista_l3_driver.py b/neutron/plugins/ml2/drivers/arista/arista_l3_driver.py index 293dabb067e..dd54e0ed22a 100644 --- a/neutron/plugins/ml2/drivers/arista/arista_l3_driver.py +++ b/neutron/plugins/ml2/drivers/arista/arista_l3_driver.py @@ -21,7 +21,7 @@ from oslo.config import cfg from neutron import context as nctx from neutron.db import db_base_plugin_v2 -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.plugins.ml2.drivers.arista import exceptions as arista_exc diff --git a/neutron/plugins/ml2/drivers/arista/mechanism_arista.py b/neutron/plugins/ml2/drivers/arista/mechanism_arista.py index 1b4396a223c..7e76c6ebb7a 100644 --- a/neutron/plugins/ml2/drivers/arista/mechanism_arista.py +++ b/neutron/plugins/ml2/drivers/arista/mechanism_arista.py @@ -20,7 +20,7 @@ import jsonrpclib from oslo.config import cfg from neutron.common import constants as n_const -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging from neutron.plugins.ml2.common import exceptions as ml2_exc from neutron.plugins.ml2 import driver_api diff --git a/neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py b/neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py index e0b027bfc4b..24652d243af 100644 --- a/neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py +++ b/neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py @@ -19,7 +19,7 @@ from oslo.config import cfg from oslo.utils import importutils -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.plugins.ml2 import driver_api from neutron.plugins.ml2.drivers.brocade.db import models as brocade_db diff --git a/neutron/plugins/ml2/drivers/brocade/nos/nosdriver.py b/neutron/plugins/ml2/drivers/brocade/nos/nosdriver.py index afa41672c43..617c96bd17a 100644 --- a/neutron/plugins/ml2/drivers/brocade/nos/nosdriver.py +++ b/neutron/plugins/ml2/drivers/brocade/nos/nosdriver.py @@ -22,7 +22,7 @@ from ncclient import manager from oslo.utils import excutils from xml.etree import ElementTree -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.ml2.drivers.brocade.nos import nctemplates as template diff --git a/neutron/plugins/ml2/drivers/cisco/apic/apic_sync.py b/neutron/plugins/ml2/drivers/cisco/apic/apic_sync.py index 6a5ac161712..83735aae387 100644 --- a/neutron/plugins/ml2/drivers/cisco/apic/apic_sync.py +++ b/neutron/plugins/ml2/drivers/cisco/apic/apic_sync.py @@ -15,8 +15,8 @@ from neutron.common import constants as n_constants from neutron import context +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log from neutron.openstack.common import loopingcall from neutron.plugins.ml2 import db as l2_db diff --git a/neutron/plugins/ml2/drivers/cisco/apic/apic_topology.py b/neutron/plugins/ml2/drivers/cisco/apic/apic_topology.py index b75c76cd69e..56978b3f2e7 100644 --- a/neutron/plugins/ml2/drivers/cisco/apic/apic_topology.py +++ b/neutron/plugins/ml2/drivers/cisco/apic/apic_topology.py @@ -30,8 +30,8 @@ from neutron.common import config as common_cfg from neutron.common import rpc from neutron.common import utils as neutron_utils from neutron.db import agents_db +from neutron.i18n import _LE, _LI from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.openstack.common import periodic_task diff --git a/neutron/plugins/ml2/drivers/cisco/nexus/nexus_db_v2.py b/neutron/plugins/ml2/drivers/cisco/nexus/nexus_db_v2.py index 88c3e783d00..467434c1cd2 100644 --- a/neutron/plugins/ml2/drivers/cisco/nexus/nexus_db_v2.py +++ b/neutron/plugins/ml2/drivers/cisco/nexus/nexus_db_v2.py @@ -17,7 +17,7 @@ import sqlalchemy.orm.exc as sa_exc import neutron.db.api as db -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.ml2.drivers.cisco.nexus import exceptions as c_exc from neutron.plugins.ml2.drivers.cisco.nexus import nexus_models_v2 diff --git a/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py b/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py index 109227502e2..5a0e5a506cc 100755 --- a/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py +++ b/neutron/plugins/ml2/drivers/freescale/mechanism_fslsdn.py @@ -16,7 +16,7 @@ from neutron.common import constants as n_const from neutron.common import log from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/helpers.py b/neutron/plugins/ml2/drivers/helpers.py index 1430b3553e2..5730053bba9 100644 --- a/neutron/plugins/ml2/drivers/helpers.py +++ b/neutron/plugins/ml2/drivers/helpers.py @@ -16,7 +16,7 @@ from oslo.db import exception as db_exc from neutron.common import exceptions as exc -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/l2pop/mech_driver.py b/neutron/plugins/ml2/drivers/l2pop/mech_driver.py index 8a7655e123d..4e3696386f3 100644 --- a/neutron/plugins/ml2/drivers/l2pop/mech_driver.py +++ b/neutron/plugins/ml2/drivers/l2pop/mech_driver.py @@ -18,7 +18,7 @@ from oslo.config import cfg from neutron.common import constants as const from neutron import context as n_context from neutron.db import api as db_api -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.ml2 import driver_api as api from neutron.plugins.ml2.drivers.l2pop import config # noqa diff --git a/neutron/plugins/ml2/drivers/mech_agent.py b/neutron/plugins/ml2/drivers/mech_agent.py index f95243c5998..4e9b55434bb 100644 --- a/neutron/plugins/ml2/drivers/mech_agent.py +++ b/neutron/plugins/ml2/drivers/mech_agent.py @@ -17,7 +17,7 @@ import abc import six from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py b/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py index e292b33f89b..39f6c80a442 100644 --- a/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py +++ b/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py @@ -23,7 +23,7 @@ from oslo.utils import timeutils from neutron import context as ctx from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log from neutron.plugins.bigswitch import config as pl_config from neutron.plugins.bigswitch import plugin diff --git a/neutron/plugins/ml2/drivers/mech_nuage/driver.py b/neutron/plugins/ml2/drivers/mech_nuage/driver.py index 272b82e72e0..b83e3072858 100644 --- a/neutron/plugins/ml2/drivers/mech_nuage/driver.py +++ b/neutron/plugins/ml2/drivers/mech_nuage/driver.py @@ -17,7 +17,7 @@ from oslo.config import cfg from neutron.common import constants as n_consts from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log from neutron.plugins.common import constants from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/mech_sriov/mech_driver.py b/neutron/plugins/ml2/drivers/mech_sriov/mech_driver.py index c7eeb13ea99..577ba57bda8 100644 --- a/neutron/plugins/ml2/drivers/mech_sriov/mech_driver.py +++ b/neutron/plugins/ml2/drivers/mech_sriov/mech_driver.py @@ -18,7 +18,7 @@ from oslo.config import cfg from neutron.common import constants from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/type_flat.py b/neutron/plugins/ml2/drivers/type_flat.py index bc64661bc65..bb675971352 100644 --- a/neutron/plugins/ml2/drivers/type_flat.py +++ b/neutron/plugins/ml2/drivers/type_flat.py @@ -19,7 +19,7 @@ import sqlalchemy as sa from neutron.common import exceptions as exc from neutron.db import model_base -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/type_gre.py b/neutron/plugins/ml2/drivers/type_gre.py index 625c5d5f48d..c0565b53391 100644 --- a/neutron/plugins/ml2/drivers/type_gre.py +++ b/neutron/plugins/ml2/drivers/type_gre.py @@ -22,7 +22,7 @@ from sqlalchemy import sql from neutron.common import exceptions as exc from neutron.db import api as db_api from neutron.db import model_base -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.ml2.drivers import type_tunnel diff --git a/neutron/plugins/ml2/drivers/type_local.py b/neutron/plugins/ml2/drivers/type_local.py index 5a72cf0e303..f935cc09aa5 100644 --- a/neutron/plugins/ml2/drivers/type_local.py +++ b/neutron/plugins/ml2/drivers/type_local.py @@ -14,7 +14,7 @@ # under the License. from neutron.common import exceptions as exc -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/type_tunnel.py b/neutron/plugins/ml2/drivers/type_tunnel.py index b09c5a54988..b6f34eaa58e 100644 --- a/neutron/plugins/ml2/drivers/type_tunnel.py +++ b/neutron/plugins/ml2/drivers/type_tunnel.py @@ -16,7 +16,7 @@ import abc from neutron.common import exceptions as exc from neutron.common import topics -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log from neutron.plugins.common import utils as plugin_utils from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/ml2/drivers/type_vlan.py b/neutron/plugins/ml2/drivers/type_vlan.py index 48c61781153..8853b846fd8 100644 --- a/neutron/plugins/ml2/drivers/type_vlan.py +++ b/neutron/plugins/ml2/drivers/type_vlan.py @@ -24,7 +24,7 @@ from neutron.common import exceptions as exc from neutron.common import utils from neutron.db import api as db_api from neutron.db import model_base -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.common import utils as plugin_utils diff --git a/neutron/plugins/ml2/drivers/type_vxlan.py b/neutron/plugins/ml2/drivers/type_vxlan.py index 0617f5dc2bd..834cd6b9b4c 100644 --- a/neutron/plugins/ml2/drivers/type_vxlan.py +++ b/neutron/plugins/ml2/drivers/type_vxlan.py @@ -22,7 +22,7 @@ from sqlalchemy import sql from neutron.common import exceptions as exc from neutron.db import api as db_api from neutron.db import model_base -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log from neutron.plugins.common import constants as p_const from neutron.plugins.ml2.drivers import type_tunnel diff --git a/neutron/plugins/ml2/managers.py b/neutron/plugins/ml2/managers.py index 62e859a81ca..60d87960ea9 100644 --- a/neutron/plugins/ml2/managers.py +++ b/neutron/plugins/ml2/managers.py @@ -21,7 +21,7 @@ from neutron.common import exceptions as exc from neutron.extensions import multiprovidernet as mpnet from neutron.extensions import portbindings from neutron.extensions import providernet as provider -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log from neutron.plugins.ml2.common import exceptions as ml2_exc from neutron.plugins.ml2 import db diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py index c7587bf3adf..380141d2e5f 100644 --- a/neutron/plugins/ml2/plugin.py +++ b/neutron/plugins/ml2/plugin.py @@ -53,8 +53,8 @@ from neutron.extensions import extra_dhcp_opt as edo_ext from neutron.extensions import l3agentscheduler from neutron.extensions import portbindings from neutron.extensions import providernet as provider +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import lockutils from neutron.openstack.common import log from neutron.openstack.common import uuidutils diff --git a/neutron/plugins/ml2/rpc.py b/neutron/plugins/ml2/rpc.py index 96b86e0acf7..72fc955d17f 100644 --- a/neutron/plugins/ml2/rpc.py +++ b/neutron/plugins/ml2/rpc.py @@ -21,8 +21,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils from neutron.extensions import portbindings +from neutron.i18n import _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LW from neutron.openstack.common import log from neutron.plugins.common import constants as service_constants from neutron.plugins.ml2 import driver_api as api diff --git a/neutron/plugins/mlnx/agent/eswitch_neutron_agent.py b/neutron/plugins/mlnx/agent/eswitch_neutron_agent.py index 3bae841fe3e..3595f040171 100644 --- a/neutron/plugins/mlnx/agent/eswitch_neutron_agent.py +++ b/neutron/plugins/mlnx/agent/eswitch_neutron_agent.py @@ -31,7 +31,7 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as q_utils from neutron import context -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.plugins.common import constants as p_const diff --git a/neutron/plugins/nuage/syncmanager.py b/neutron/plugins/nuage/syncmanager.py index 517dcedcbff..13512f7c601 100644 --- a/neutron/plugins/nuage/syncmanager.py +++ b/neutron/plugins/nuage/syncmanager.py @@ -21,8 +21,8 @@ from neutron import context as ncontext from neutron.db import db_base_plugin_v2 from neutron.db import extraroute_db from neutron.db import securitygroups_db +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.nuage.common import config from neutron.plugins.nuage import nuagedb diff --git a/neutron/plugins/ofagent/agent/arp_lib.py b/neutron/plugins/ofagent/agent/arp_lib.py index c6ceea71a26..7747477cb3f 100644 --- a/neutron/plugins/ofagent/agent/arp_lib.py +++ b/neutron/plugins/ofagent/agent/arp_lib.py @@ -23,7 +23,7 @@ from ryu.lib.packet import packet from ryu.lib.packet import vlan from neutron.common import log -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging import neutron.plugins.ofagent.agent.metadata as meta diff --git a/neutron/plugins/ofagent/agent/ofa_neutron_agent.py b/neutron/plugins/ofagent/agent/ofa_neutron_agent.py index f311b059759..0a4c1980c76 100644 --- a/neutron/plugins/ofagent/agent/ofa_neutron_agent.py +++ b/neutron/plugins/ofagent/agent/ofa_neutron_agent.py @@ -42,7 +42,7 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as n_utils from neutron import context -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.plugins.common import constants as p_const diff --git a/neutron/plugins/openvswitch/agent/ovs_dvr_neutron_agent.py b/neutron/plugins/openvswitch/agent/ovs_dvr_neutron_agent.py index 4bf603f2479..cd53e2a586e 100644 --- a/neutron/plugins/openvswitch/agent/ovs_dvr_neutron_agent.py +++ b/neutron/plugins/openvswitch/agent/ovs_dvr_neutron_agent.py @@ -20,7 +20,7 @@ from oslo.utils import excutils from neutron.api.rpc.handlers import dvr_rpc from neutron.common import constants as n_const from neutron.common import utils as n_utils -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.plugins.openvswitch.common import constants diff --git a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py index 34f1ce17d45..c0efdf67e23 100644 --- a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py +++ b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py @@ -42,9 +42,9 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils as q_utils from neutron import context +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.plugins.common import constants as p_const from neutron.plugins.openvswitch.common import constants diff --git a/neutron/plugins/vmware/plugins/base.py b/neutron/plugins/vmware/plugins/base.py index c28a940d0e0..c4528309ca5 100644 --- a/neutron/plugins/vmware/plugins/base.py +++ b/neutron/plugins/vmware/plugins/base.py @@ -51,7 +51,7 @@ from neutron.extensions import portbindings as pbin from neutron.extensions import portsecurity as psec from neutron.extensions import providernet as pnet from neutron.extensions import securitygroup as ext_sg -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.plugins.common import constants as plugin_const diff --git a/neutron/policy.py b/neutron/policy.py index de64cc943fd..6504b67233e 100644 --- a/neutron/policy.py +++ b/neutron/policy.py @@ -30,7 +30,7 @@ from neutron.api.v2 import attributes from neutron.common import constants as const from neutron.common import exceptions import neutron.common.utils as utils -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log from neutron.openstack.common import policy diff --git a/neutron/scheduler/dhcp_agent_scheduler.py b/neutron/scheduler/dhcp_agent_scheduler.py index 93581084629..251512e8570 100644 --- a/neutron/scheduler/dhcp_agent_scheduler.py +++ b/neutron/scheduler/dhcp_agent_scheduler.py @@ -22,7 +22,7 @@ from sqlalchemy import sql from neutron.common import constants from neutron.db import agents_db from neutron.db import agentschedulers_db -from neutron.openstack.common.gettextutils import _LI, _LW +from neutron.i18n import _LI, _LW from neutron.openstack.common import log as logging diff --git a/neutron/scheduler/l3_agent_scheduler.py b/neutron/scheduler/l3_agent_scheduler.py index 52e9bba7dda..14aae7c114e 100644 --- a/neutron/scheduler/l3_agent_scheduler.py +++ b/neutron/scheduler/l3_agent_scheduler.py @@ -27,7 +27,7 @@ from neutron.common import utils from neutron.db import l3_agentschedulers_db from neutron.db import l3_db from neutron.db import l3_hamode_db -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log as logging diff --git a/neutron/server/__init__.py b/neutron/server/__init__.py index ea598d5e77b..fb6584ba676 100755 --- a/neutron/server/__init__.py +++ b/neutron/server/__init__.py @@ -26,12 +26,9 @@ eventlet.monkey_patch() from oslo.config import cfg from neutron.common import config -from neutron import service - -from neutron.openstack.common import gettextutils -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging -gettextutils.install('neutron', lazy=True) +from neutron import service LOG = logging.getLogger(__name__) diff --git a/neutron/services/firewall/agents/l3reference/firewall_l3_agent.py b/neutron/services/firewall/agents/l3reference/firewall_l3_agent.py index e5f43568ae7..b4b80c05e3a 100644 --- a/neutron/services/firewall/agents/l3reference/firewall_l3_agent.py +++ b/neutron/services/firewall/agents/l3reference/firewall_l3_agent.py @@ -21,7 +21,7 @@ from neutron.agent.linux import ip_lib from neutron.common import topics from neutron import context from neutron.extensions import firewall as fw_ext -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.firewall.agents import firewall_agent_api as api diff --git a/neutron/services/firewall/agents/varmour/varmour_api.py b/neutron/services/firewall/agents/varmour/varmour_api.py index f30547c40e4..5cb885e170a 100755 --- a/neutron/services/firewall/agents/varmour/varmour_api.py +++ b/neutron/services/firewall/agents/varmour/varmour_api.py @@ -19,7 +19,7 @@ import httplib2 from oslo.config import cfg from oslo.serialization import jsonutils -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.services.firewall.agents.varmour import varmour_utils as va_utils diff --git a/neutron/services/firewall/agents/varmour/varmour_router.py b/neutron/services/firewall/agents/varmour/varmour_router.py index 886c981ff0c..59cb524f8fd 100755 --- a/neutron/services/firewall/agents/varmour/varmour_router.py +++ b/neutron/services/firewall/agents/varmour/varmour_router.py @@ -30,7 +30,7 @@ from neutron.agent.linux import ip_lib from neutron.common import config as common_config from neutron.common import constants as l3_constants from neutron.common import topics -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.openstack.common import service from neutron import service as neutron_service diff --git a/neutron/services/firewall/drivers/linux/iptables_fwaas.py b/neutron/services/firewall/drivers/linux/iptables_fwaas.py index 68c17ea54e8..4e0dea76988 100644 --- a/neutron/services/firewall/drivers/linux/iptables_fwaas.py +++ b/neutron/services/firewall/drivers/linux/iptables_fwaas.py @@ -15,7 +15,7 @@ from neutron.agent.linux import iptables_manager from neutron.extensions import firewall as fw_ext -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.services.firewall.drivers import fwaas_base diff --git a/neutron/services/firewall/drivers/varmour/varmour_fwaas.py b/neutron/services/firewall/drivers/varmour/varmour_fwaas.py index 2456bafdc0e..d0ecba8b2cb 100755 --- a/neutron/services/firewall/drivers/varmour/varmour_fwaas.py +++ b/neutron/services/firewall/drivers/varmour/varmour_fwaas.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.services.firewall.agents.varmour import varmour_api from neutron.services.firewall.agents.varmour import varmour_utils as va_utils diff --git a/neutron/services/firewall/fwaas_plugin.py b/neutron/services/firewall/fwaas_plugin.py index d7ea6331744..fa03eb32517 100644 --- a/neutron/services/firewall/fwaas_plugin.py +++ b/neutron/services/firewall/fwaas_plugin.py @@ -22,7 +22,7 @@ from neutron.common import topics from neutron import context as neutron_context from neutron.db.firewall import firewall_db from neutron.extensions import firewall as fw_ext -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants as const diff --git a/neutron/services/l3_router/brocade/l3_router_plugin.py b/neutron/services/l3_router/brocade/l3_router_plugin.py index 141aed1e6d4..4d19bca4022 100644 --- a/neutron/services/l3_router/brocade/l3_router_plugin.py +++ b/neutron/services/l3_router/brocade/l3_router_plugin.py @@ -21,7 +21,7 @@ from oslo.config import cfg from oslo.utils import excutils from neutron.common import constants as l3_constants -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.plugins.ml2 import db from neutron.plugins.ml2.drivers.brocade.db import models as brocade_db diff --git a/neutron/services/l3_router/l3_arista.py b/neutron/services/l3_router/l3_arista.py index 4206066d332..ea6852b64e0 100644 --- a/neutron/services/l3_router/l3_arista.py +++ b/neutron/services/l3_router/l3_arista.py @@ -29,7 +29,7 @@ from neutron.db import db_base_plugin_v2 from neutron.db import extraroute_db from neutron.db import l3_agentschedulers_db from neutron.db import l3_gwmode_db -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.plugins.ml2.driver_context import NetworkContext # noqa diff --git a/neutron/services/loadbalancer/agent/agent_manager.py b/neutron/services/loadbalancer/agent/agent_manager.py index efa91b222d4..e65463e6e38 100644 --- a/neutron/services/loadbalancer/agent/agent_manager.py +++ b/neutron/services/loadbalancer/agent/agent_manager.py @@ -21,7 +21,7 @@ from neutron.common import exceptions as n_exc from neutron.common import rpc as n_rpc from neutron.common import topics from neutron import context -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.openstack.common import periodic_task diff --git a/neutron/services/loadbalancer/agent_scheduler.py b/neutron/services/loadbalancer/agent_scheduler.py index ce6ded46c60..8ab84fe8310 100644 --- a/neutron/services/loadbalancer/agent_scheduler.py +++ b/neutron/services/loadbalancer/agent_scheduler.py @@ -24,7 +24,7 @@ from neutron.db import agents_db from neutron.db import agentschedulers_db from neutron.db import model_base from neutron.extensions import lbaas_agentscheduler -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/services/loadbalancer/drivers/common/agent_driver_base.py b/neutron/services/loadbalancer/drivers/common/agent_driver_base.py index 3a8bd445668..bdebf19c5f1 100644 --- a/neutron/services/loadbalancer/drivers/common/agent_driver_base.py +++ b/neutron/services/loadbalancer/drivers/common/agent_driver_base.py @@ -26,7 +26,7 @@ from neutron.db import agents_db from neutron.db.loadbalancer import loadbalancer_db from neutron.extensions import lbaas_agentscheduler from neutron.extensions import portbindings -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.loadbalancer.drivers import abstract_driver diff --git a/neutron/services/loadbalancer/drivers/embrane/agent/dispatcher.py b/neutron/services/loadbalancer/drivers/embrane/agent/dispatcher.py index d03b4ed88a3..e7b6934abe6 100644 --- a/neutron/services/loadbalancer/drivers/embrane/agent/dispatcher.py +++ b/neutron/services/loadbalancer/drivers/embrane/agent/dispatcher.py @@ -17,7 +17,7 @@ from eventlet import greenthread from eventlet import queue from heleosapi import exceptions as h_exc -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.embrane.common import contexts as ctx from neutron.services.loadbalancer.drivers.embrane.agent import lb_operations diff --git a/neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py b/neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py index 259aafed5af..ae4075f2c02 100644 --- a/neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py +++ b/neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py @@ -17,7 +17,7 @@ import functools from heleosapi import exceptions as h_exc -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.services.loadbalancer import constants as lcon from neutron.services.loadbalancer.drivers.embrane import constants as econ diff --git a/neutron/services/loadbalancer/drivers/embrane/driver.py b/neutron/services/loadbalancer/drivers/embrane/driver.py index 155af9d7a92..642d10d97a3 100644 --- a/neutron/services/loadbalancer/drivers/embrane/driver.py +++ b/neutron/services/loadbalancer/drivers/embrane/driver.py @@ -22,7 +22,7 @@ from neutron.api.v2 import attributes from neutron.common import exceptions as n_exc from neutron.db.loadbalancer import loadbalancer_db as ldb from neutron.extensions import loadbalancer as lb_ext -from neutron.openstack.common.gettextutils import _LW +from neutron.i18n import _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants as pcon from neutron.plugins.embrane.common import contexts as embrane_ctx diff --git a/neutron/services/loadbalancer/drivers/embrane/poller.py b/neutron/services/loadbalancer/drivers/embrane/poller.py index 9754741ab09..15feff03afe 100644 --- a/neutron/services/loadbalancer/drivers/embrane/poller.py +++ b/neutron/services/loadbalancer/drivers/embrane/poller.py @@ -18,7 +18,7 @@ from heleosapi import exceptions as h_exc from neutron import context from neutron.db.loadbalancer import loadbalancer_db as ldb from neutron.db import servicetype_db as sdb -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.plugins.common import constants as ccon diff --git a/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py b/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py index f243173b4b1..dcb7a96ed4c 100644 --- a/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py +++ b/neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py @@ -26,7 +26,7 @@ from neutron.agent.linux import ip_lib from neutron.agent.linux import utils from neutron.common import exceptions from neutron.common import utils as n_utils -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.loadbalancer.agent import agent_device_driver diff --git a/neutron/services/loadbalancer/drivers/netscaler/ncc_client.py b/neutron/services/loadbalancer/drivers/netscaler/ncc_client.py index 87e11fca6c9..8f30f68baec 100644 --- a/neutron/services/loadbalancer/drivers/netscaler/ncc_client.py +++ b/neutron/services/loadbalancer/drivers/netscaler/ncc_client.py @@ -18,7 +18,7 @@ from oslo.serialization import jsonutils import requests from neutron.common import exceptions as n_exc -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py b/neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py index 30c709d3a5e..71c1bd6e997 100644 --- a/neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py +++ b/neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py @@ -16,7 +16,7 @@ from oslo.config import cfg from neutron.api.v2 import attributes from neutron.db.loadbalancer import loadbalancer_db -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.loadbalancer.drivers import abstract_driver diff --git a/neutron/services/loadbalancer/drivers/radware/driver.py b/neutron/services/loadbalancer/drivers/radware/driver.py index 4355a722942..269b67a58c9 100644 --- a/neutron/services/loadbalancer/drivers/radware/driver.py +++ b/neutron/services/loadbalancer/drivers/radware/driver.py @@ -33,7 +33,7 @@ from neutron.common import log as call_log from neutron import context from neutron.db.loadbalancer import loadbalancer_db as lb_db from neutron.extensions import loadbalancer -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.loadbalancer.drivers import abstract_driver diff --git a/neutron/services/loadbalancer/plugin.py b/neutron/services/loadbalancer/plugin.py index d0006f4f691..720e2a6fe4c 100644 --- a/neutron/services/loadbalancer/plugin.py +++ b/neutron/services/loadbalancer/plugin.py @@ -21,7 +21,7 @@ from neutron import context from neutron.db.loadbalancer import loadbalancer_db as ldb from neutron.db import servicetype_db as st_db from neutron.extensions import loadbalancer -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services.loadbalancer import agent_scheduler diff --git a/neutron/services/metering/agents/metering_agent.py b/neutron/services/metering/agents/metering_agent.py index 21f5c6e7076..a586a65437d 100644 --- a/neutron/services/metering/agents/metering_agent.py +++ b/neutron/services/metering/agents/metering_agent.py @@ -30,8 +30,8 @@ from neutron.common import rpc as n_rpc from neutron.common import topics from neutron.common import utils from neutron import context +from neutron.i18n import _LE, _LI, _LW from neutron import manager -from neutron.openstack.common.gettextutils import _LE, _LI, _LW from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall from neutron.openstack.common import periodic_task diff --git a/neutron/services/metering/drivers/iptables/iptables_driver.py b/neutron/services/metering/drivers/iptables/iptables_driver.py index 8741c72cf87..4a200d28494 100644 --- a/neutron/services/metering/drivers/iptables/iptables_driver.py +++ b/neutron/services/metering/drivers/iptables/iptables_driver.py @@ -22,7 +22,7 @@ from neutron.agent.linux import iptables_manager from neutron.common import constants as constants from neutron.common import ipv6_utils from neutron.common import log -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.services.metering.drivers import abstract_driver diff --git a/neutron/services/service_base.py b/neutron/services/service_base.py index f8139c6101e..23abd6f4c88 100644 --- a/neutron/services/service_base.py +++ b/neutron/services/service_base.py @@ -21,7 +21,7 @@ import six from neutron.api import extensions from neutron.db import servicetype_db as sdb -from neutron.openstack.common.gettextutils import _LE, _LI +from neutron.i18n import _LE, _LI from neutron.openstack.common import log as logging from neutron.services import provider_configuration as pconf diff --git a/neutron/services/vpn/device_drivers/cisco_csr_rest_client.py b/neutron/services/vpn/device_drivers/cisco_csr_rest_client.py index de5d47b3f00..04e6c092a49 100644 --- a/neutron/services/vpn/device_drivers/cisco_csr_rest_client.py +++ b/neutron/services/vpn/device_drivers/cisco_csr_rest_client.py @@ -19,7 +19,7 @@ from oslo.serialization import jsonutils import requests from requests import exceptions as r_exc -from neutron.openstack.common.gettextutils import _LE, _LW +from neutron.i18n import _LE, _LW from neutron.openstack.common import log as logging diff --git a/neutron/services/vpn/device_drivers/cisco_ipsec.py b/neutron/services/vpn/device_drivers/cisco_ipsec.py index 7776a34572b..b4b3d93c80f 100644 --- a/neutron/services/vpn/device_drivers/cisco_ipsec.py +++ b/neutron/services/vpn/device_drivers/cisco_ipsec.py @@ -23,7 +23,7 @@ import six from neutron.common import exceptions from neutron.common import rpc as n_rpc from neutron import context as ctx -from neutron.openstack.common.gettextutils import _LE, _LI, _LW +from neutron.i18n import _LE, _LI, _LW from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall diff --git a/neutron/services/vpn/device_drivers/ipsec.py b/neutron/services/vpn/device_drivers/ipsec.py index fb393c1b0f2..3afd3b7ca87 100644 --- a/neutron/services/vpn/device_drivers/ipsec.py +++ b/neutron/services/vpn/device_drivers/ipsec.py @@ -28,7 +28,7 @@ from neutron.agent.linux import ip_lib from neutron.agent.linux import utils from neutron.common import rpc as n_rpc from neutron import context -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import lockutils from neutron.openstack.common import log as logging from neutron.openstack.common import loopingcall diff --git a/neutron/services/vpn/plugin.py b/neutron/services/vpn/plugin.py index c260386103a..dd8a20bf1a2 100644 --- a/neutron/services/vpn/plugin.py +++ b/neutron/services/vpn/plugin.py @@ -15,7 +15,7 @@ # under the License. from neutron.db.vpn import vpn_db -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.services import service_base diff --git a/neutron/services/vpn/service_drivers/cisco_csr_db.py b/neutron/services/vpn/service_drivers/cisco_csr_db.py index 37f9a8490d0..1b501f11899 100644 --- a/neutron/services/vpn/service_drivers/cisco_csr_db.py +++ b/neutron/services/vpn/service_drivers/cisco_csr_db.py @@ -20,7 +20,7 @@ from neutron.common import exceptions from neutron.db import model_base from neutron.db import models_v2 from neutron.db.vpn import vpn_db -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/neutron/tests/unit/cisco/l3/device_handling_test_support.py b/neutron/tests/unit/cisco/l3/device_handling_test_support.py index 91f5c8394e5..59ef3f92adc 100644 --- a/neutron/tests/unit/cisco/l3/device_handling_test_support.py +++ b/neutron/tests/unit/cisco/l3/device_handling_test_support.py @@ -18,8 +18,8 @@ from oslo.config import cfg from oslo.utils import excutils from neutron import context as n_context +from neutron.i18n import _LE from neutron import manager -from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils from neutron.plugins.common import constants diff --git a/neutron/tests/unit/test_api_v2_resource.py b/neutron/tests/unit/test_api_v2_resource.py index 12f30afcadd..057e22c4191 100644 --- a/neutron/tests/unit/test_api_v2_resource.py +++ b/neutron/tests/unit/test_api_v2_resource.py @@ -14,13 +14,13 @@ # under the License. import mock +from oslo import i18n from webob import exc import webtest from neutron.api.v2 import resource as wsgi_resource from neutron.common import exceptions as n_exc from neutron import context -from neutron.openstack.common import gettextutils from neutron.tests import base from neutron import wsgi @@ -102,9 +102,9 @@ class RequestTestCase(base.BaseTestCase): def test_best_match_language(self): # Test that we are actually invoking language negotiation by webop request = wsgi.Request.blank('/') - gettextutils.get_available_languages = mock.MagicMock() - gettextutils.get_available_languages.return_value = ['known-language', - 'es', 'zh'] + i18n.get_available_languages = mock.MagicMock() + i18n.get_available_languages.return_value = ['known-language', + 'es', 'zh'] request.headers['Accept-Language'] = 'known-language' language = request.best_match_language() self.assertEqual(language, 'known-language') @@ -150,9 +150,8 @@ class ResourceTestCase(base.BaseTestCase): self.assertEqual(wsgi.JSONDeserializer().deserialize(res.body), expected_res) - @mock.patch('neutron.openstack.common.gettextutils.translate') + @mock.patch('oslo.i18n.translate') def test_unmapped_neutron_error_localized(self, mock_translation): - gettextutils.install('blaa', lazy=True) msg_translation = 'Translated error' mock_translation.return_value = msg_translation msg = _('Unmapped error') @@ -196,9 +195,8 @@ class ResourceTestCase(base.BaseTestCase): self.assertEqual(wsgi.JSONDeserializer().deserialize(res.body), expected_res) - @mock.patch('neutron.openstack.common.gettextutils.translate') + @mock.patch('oslo.i18n.translate') def test_mapped_neutron_error_localized(self, mock_translation): - gettextutils.install('blaa', lazy=True) msg_translation = 'Translated error' mock_translation.return_value = msg_translation msg = _('Unmapped error') diff --git a/neutron/tests/unit/test_l3_agent.py b/neutron/tests/unit/test_l3_agent.py index 73bd841a055..1a2eb6162e9 100644 --- a/neutron/tests/unit/test_l3_agent.py +++ b/neutron/tests/unit/test_l3_agent.py @@ -30,7 +30,7 @@ from neutron.agent.linux import interface from neutron.common import config as base_config from neutron.common import constants as l3_constants from neutron.common import exceptions as n_exc -from neutron.openstack.common.gettextutils import _LE +from neutron.i18n import _LE from neutron.openstack.common import processutils from neutron.openstack.common import uuidutils from neutron.plugins.common import constants as p_const diff --git a/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py b/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py index 06a84de1a02..ddd0bfd06c2 100644 --- a/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py +++ b/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py @@ -19,7 +19,7 @@ import eventlet from eventlet.green import urllib2 import mock -from neutron.openstack.common.gettextutils import _LI +from neutron.i18n import _LI from neutron.openstack.common import log as logging from neutron.plugins.vmware.api_client import eventlet_client as client from neutron.plugins.vmware.api_client import eventlet_request as request diff --git a/neutron/wsgi.py b/neutron/wsgi.py index ef189a89a3e..b1cd05348ee 100644 --- a/neutron/wsgi.py +++ b/neutron/wsgi.py @@ -28,6 +28,7 @@ import time import eventlet.wsgi eventlet.patcher.monkey_patch(all=False, socket=True, thread=True) from oslo.config import cfg +from oslo import i18n from oslo.serialization import jsonutils from oslo.utils import excutils import routes.middleware @@ -37,7 +38,6 @@ import webob.exc from neutron.common import exceptions as exception from neutron import context from neutron.db import api -from neutron.openstack.common import gettextutils from neutron.openstack.common import log as logging from neutron.openstack.common import service as common_service from neutron.openstack.common import systemd @@ -349,7 +349,7 @@ class Request(webob.Request): """ if not self.accept_language: return None - all_languages = gettextutils.get_available_languages('neutron') + all_languages = i18n.get_available_languages('neutron') return self.accept_language.best_match(all_languages) @property @@ -717,7 +717,7 @@ class Router(object): if not match: language = req.best_match_language() msg = _('The resource could not be found.') - msg = gettextutils.translate(msg, language) + msg = i18n.translate(msg, language) return webob.exc.HTTPNotFound(explanation=msg) app = match['controller'] return app diff --git a/openstack-common.conf b/openstack-common.conf index 56f22ee7d05..7bba50dfae8 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -5,7 +5,6 @@ module=context module=eventlet_backdoor module=fileutils module=fixture -module=gettextutils module=install_venv_common module=local module=lockutils diff --git a/requirements.txt b/requirements.txt index 241a73c2754..f0785a5d8ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,6 @@ PasteDeploy>=1.5.0 Routes>=1.12.3,!=2.0 anyjson>=0.3.3 argparse -Babel>=1.3 eventlet>=0.15.2 greenlet>=0.3.2 httplib2>=0.7.5 diff --git a/tox.ini b/tox.ini index 7e16f19ca00..1135abc87fc 100644 --- a/tox.ini +++ b/tox.ini @@ -88,5 +88,5 @@ commands = pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron} [hacking] -import_exceptions = neutron.openstack.common.gettextutils +import_exceptions = neutron.i18n local-check-factory = neutron.hacking.checks.factory