Merge "Update VPN logging to use new i18n functions"

This commit is contained in:
Jenkins 2014-10-14 13:07:03 +00:00 committed by Gerrit Code Review
commit b04bfbf107
9 changed files with 88 additions and 81 deletions

View File

@ -28,6 +28,7 @@ from neutron.db.vpn import vpn_validator
from neutron.extensions import vpnaas from neutron.extensions import vpnaas
from neutron import manager from neutron import manager
from neutron.openstack.common import excutils from neutron.openstack.common import excutils
from neutron.openstack.common.gettextutils import _LW
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
from neutron.openstack.common import uuidutils from neutron.openstack.common import uuidutils
from neutron.plugins.common import constants from neutron.plugins.common import constants
@ -646,7 +647,7 @@ class VPNPluginRpcDbMixin():
vpnservice_db = self._get_vpnservice( vpnservice_db = self._get_vpnservice(
context, vpnservice['id']) context, vpnservice['id'])
except vpnaas.VPNServiceNotFound: except vpnaas.VPNServiceNotFound:
LOG.warn(_('vpnservice %s in db is already deleted'), LOG.warn(_LW('vpnservice %s in db is already deleted'),
vpnservice['id']) vpnservice['id'])
continue continue

View File

@ -19,6 +19,7 @@ import requests
from requests import exceptions as r_exc from requests import exceptions as r_exc
from neutron.openstack.common import jsonutils from neutron.openstack.common import jsonutils
from neutron.openstack.common.gettextutils import _LE, _LW
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
@ -84,7 +85,7 @@ class CsrRestClient(object):
and 'detail' fields). and 'detail' fields).
""" """
if method in ('POST', 'GET') and self.status == requests.codes.OK: if method in ('POST', 'GET') and self.status == requests.codes.OK:
LOG.debug(_('RESPONSE: %s'), response.json()) LOG.debug('RESPONSE: %s', response.json())
return response.json() return response.json()
if method == 'POST' and self.status == requests.codes.CREATED: if method == 'POST' and self.status == requests.codes.CREATED:
return response.headers.get('location', '') return response.headers.get('location', '')
@ -97,21 +98,21 @@ class CsrRestClient(object):
def _request(self, method, url, **kwargs): def _request(self, method, url, **kwargs):
"""Perform REST request and save response info.""" """Perform REST request and save response info."""
try: try:
LOG.debug(_("%(method)s: Request for %(resource)s payload: " LOG.debug("%(method)s: Request for %(resource)s payload: "
"%(payload)s"), "%(payload)s",
{'method': method.upper(), 'resource': url, {'method': method.upper(), 'resource': url,
'payload': kwargs.get('data')}) 'payload': kwargs.get('data')})
start_time = time.time() start_time = time.time()
response = self.session.request(method, url, verify=False, response = self.session.request(method, url, verify=False,
timeout=self.timeout, **kwargs) timeout=self.timeout, **kwargs)
LOG.debug(_("%(method)s Took %(time).2f seconds to process"), LOG.debug("%(method)s Took %(time).2f seconds to process",
{'method': method.upper(), {'method': method.upper(),
'time': time.time() - start_time}) 'time': time.time() - start_time})
except (r_exc.Timeout, r_exc.SSLError) as te: except (r_exc.Timeout, r_exc.SSLError) as te:
# Should never see SSLError, unless requests package is old (<2.0) # Should never see SSLError, unless requests package is old (<2.0)
timeout_val = 0.0 if self.timeout is None else self.timeout timeout_val = 0.0 if self.timeout is None else self.timeout
LOG.warning(_("%(method)s: Request timeout%(ssl)s " LOG.warning(_LW("%(method)s: Request timeout%(ssl)s "
"(%(timeout).3f sec) for CSR(%(host)s)"), "(%(timeout).3f sec) for CSR(%(host)s)"),
{'method': method, {'method': method,
'timeout': timeout_val, 'timeout': timeout_val,
'ssl': '(SSLError)' 'ssl': '(SSLError)'
@ -119,17 +120,18 @@ class CsrRestClient(object):
'host': self.host}) 'host': self.host})
self.status = requests.codes.REQUEST_TIMEOUT self.status = requests.codes.REQUEST_TIMEOUT
except r_exc.ConnectionError: except r_exc.ConnectionError:
LOG.exception(_("%(method)s: Unable to connect to CSR(%(host)s)"), LOG.exception(_LE("%(method)s: Unable to connect to "
"CSR(%(host)s)"),
{'method': method, 'host': self.host}) {'method': method, 'host': self.host})
self.status = requests.codes.NOT_FOUND self.status = requests.codes.NOT_FOUND
except Exception as e: except Exception as e:
LOG.error(_("%(method)s: Unexpected error for CSR (%(host)s): " LOG.error(_LE("%(method)s: Unexpected error for CSR (%(host)s): "
"%(error)s"), "%(error)s"),
{'method': method, 'host': self.host, 'error': e}) {'method': method, 'host': self.host, 'error': e})
self.status = requests.codes.INTERNAL_SERVER_ERROR self.status = requests.codes.INTERNAL_SERVER_ERROR
else: else:
self.status = response.status_code self.status = response.status_code
LOG.debug(_("%(method)s: Completed [%(status)s]"), LOG.debug("%(method)s: Completed [%(status)s]",
{'method': method, 'status': self.status}) {'method': method, 'status': self.status})
return self._response_info_for(response, method) return self._response_info_for(response, method)
@ -144,16 +146,16 @@ class CsrRestClient(object):
headers = {'Content-Length': '0', headers = {'Content-Length': '0',
'Accept': 'application/json'} 'Accept': 'application/json'}
headers.update(HEADER_CONTENT_TYPE_JSON) headers.update(HEADER_CONTENT_TYPE_JSON)
LOG.debug(_("%(auth)s with CSR %(host)s"), LOG.debug("%(auth)s with CSR %(host)s",
{'auth': 'Authenticating' if self.token is None {'auth': 'Authenticating' if self.token is None
else 'Reauthenticating', 'host': self.host}) else 'Reauthenticating', 'host': self.host})
self.token = None self.token = None
response = self._request("POST", url, headers=headers, auth=self.auth) response = self._request("POST", url, headers=headers, auth=self.auth)
if response: if response:
self.token = response['token-id'] self.token = response['token-id']
LOG.debug(_("Successfully authenticated with CSR %s"), self.host) LOG.debug("Successfully authenticated with CSR %s", self.host)
return True return True
LOG.error(_("Failed authentication with CSR %(host)s [%(status)s]"), LOG.error(_LE("Failed authentication with CSR %(host)s [%(status)s]"),
{'host': self.host, 'status': self.status}) {'host': self.host, 'status': self.status})
def _do_request(self, method, resource, payload=None, more_headers=None, def _do_request(self, method, resource, payload=None, more_headers=None,
@ -188,7 +190,7 @@ class CsrRestClient(object):
headers=headers) headers=headers)
if self.status != requests.codes.REQUEST_TIMEOUT: if self.status != requests.codes.REQUEST_TIMEOUT:
return response return response
LOG.error(_("%(method)s: Request timeout for CSR(%(host)s)"), LOG.error(_LE("%(method)s: Request timeout for CSR(%(host)s)"),
{'method': method, 'host': self.host}) {'method': method, 'host': self.host})
def get_request(self, resource, full_url=False): def get_request(self, resource, full_url=False):

View File

@ -23,6 +23,7 @@ import six
from neutron.common import exceptions from neutron.common import exceptions
from neutron.common import rpc as n_rpc from neutron.common import rpc as n_rpc
from neutron import context as ctx from neutron import context as ctx
from neutron.openstack.common.gettextutils import _LE, _LI, _LW
from neutron.openstack.common import lockutils from neutron.openstack.common import lockutils
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
from neutron.openstack.common import loopingcall from neutron.openstack.common import loopingcall
@ -125,7 +126,7 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
def vpnservice_updated(self, context, **kwargs): def vpnservice_updated(self, context, **kwargs):
"""Handle VPNaaS service driver change notifications.""" """Handle VPNaaS service driver change notifications."""
LOG.debug(_("Handling VPN service update notification '%s'"), LOG.debug("Handling VPN service update notification '%s'",
kwargs.get('reason', '')) kwargs.get('reason', ''))
self.sync(context, []) self.sync(context, [])
@ -147,20 +148,20 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
ipsec_conn = vpn_service.conn_state[conn_id] ipsec_conn = vpn_service.conn_state[conn_id]
config_changed = ipsec_conn.check_for_changes(conn_data) config_changed = ipsec_conn.check_for_changes(conn_data)
if config_changed: if config_changed:
LOG.debug(_("Update: Existing connection %s changed"), conn_id) LOG.debug("Update: Existing connection %s changed", conn_id)
ipsec_conn.delete_ipsec_site_connection(context, conn_id) ipsec_conn.delete_ipsec_site_connection(context, conn_id)
ipsec_conn.create_ipsec_site_connection(context, conn_data) ipsec_conn.create_ipsec_site_connection(context, conn_data)
ipsec_conn.conn_info = conn_data ipsec_conn.conn_info = conn_data
if ipsec_conn.forced_down: if ipsec_conn.forced_down:
if vpn_service.is_admin_up and conn_is_admin_up: if vpn_service.is_admin_up and conn_is_admin_up:
LOG.debug(_("Update: Connection %s no longer admin down"), LOG.debug("Update: Connection %s no longer admin down",
conn_id) conn_id)
ipsec_conn.set_admin_state(is_up=True) ipsec_conn.set_admin_state(is_up=True)
ipsec_conn.forced_down = False ipsec_conn.forced_down = False
else: else:
if not vpn_service.is_admin_up or not conn_is_admin_up: if not vpn_service.is_admin_up or not conn_is_admin_up:
LOG.debug(_("Update: Connection %s forced to admin down"), LOG.debug("Update: Connection %s forced to admin down",
conn_id) conn_id)
ipsec_conn.set_admin_state(is_up=False) ipsec_conn.set_admin_state(is_up=False)
ipsec_conn.forced_down = True ipsec_conn.forced_down = True
@ -168,12 +169,12 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
ipsec_conn = vpn_service.create_connection(conn_data) ipsec_conn = vpn_service.create_connection(conn_data)
ipsec_conn.create_ipsec_site_connection(context, conn_data) ipsec_conn.create_ipsec_site_connection(context, conn_data)
if not vpn_service.is_admin_up or not conn_is_admin_up: if not vpn_service.is_admin_up or not conn_is_admin_up:
LOG.debug(_("Update: Created new connection %s in admin down " LOG.debug("Update: Created new connection %s in admin down "
"state"), conn_id) "state", conn_id)
ipsec_conn.set_admin_state(is_up=False) ipsec_conn.set_admin_state(is_up=False)
ipsec_conn.forced_down = True ipsec_conn.forced_down = True
else: else:
LOG.debug(_("Update: Created new connection %s"), conn_id) LOG.debug("Update: Created new connection %s", conn_id)
ipsec_conn.is_dirty = False ipsec_conn.is_dirty = False
ipsec_conn.last_status = conn_data['status'] ipsec_conn.last_status = conn_data['status']
@ -184,11 +185,11 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
"""Handle notification for a single VPN Service and its connections.""" """Handle notification for a single VPN Service and its connections."""
vpn_service_id = service_data['id'] vpn_service_id = service_data['id']
if vpn_service_id in self.service_state: if vpn_service_id in self.service_state:
LOG.debug(_("Update: Existing VPN service %s detected"), LOG.debug("Update: Existing VPN service %s detected",
vpn_service_id) vpn_service_id)
vpn_service = self.service_state[vpn_service_id] vpn_service = self.service_state[vpn_service_id]
else: else:
LOG.debug(_("Update: New VPN service %s detected"), vpn_service_id) LOG.debug("Update: New VPN service %s detected", vpn_service_id)
vpn_service = self.create_vpn_service(service_data) vpn_service = self.create_vpn_service(service_data)
if not vpn_service: if not vpn_service:
return return
@ -199,7 +200,7 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
vpn_service.is_admin_up = service_data[u'admin_state_up'] vpn_service.is_admin_up = service_data[u'admin_state_up']
for conn_data in service_data['ipsec_conns']: for conn_data in service_data['ipsec_conns']:
self.update_connection(context, vpn_service_id, conn_data) self.update_connection(context, vpn_service_id, conn_data)
LOG.debug(_("Update: Completed update processing")) LOG.debug("Update: Completed update processing")
return vpn_service return vpn_service
def update_all_services_and_connections(self, context): def update_all_services_and_connections(self, context):
@ -229,9 +230,9 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
for conn_id in service_state.conn_state: for conn_id in service_state.conn_state:
service_state.conn_state[conn_id].is_dirty = True service_state.conn_state[conn_id].is_dirty = True
connection_count += 1 connection_count += 1
LOG.debug(_("Mark: %(service)d VPN services and %(conn)d IPSec " LOG.debug("Mark: %(service)d VPN services and %(conn)d IPSec "
"connections marked dirty"), {'service': service_count, "connections marked dirty", {'service': service_count,
'conn': connection_count}) 'conn': connection_count})
def remove_unknown_connections(self, context): def remove_unknown_connections(self, context):
"""Remove connections that are not known by service driver.""" """Remove connections that are not known by service driver."""
@ -251,8 +252,8 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
del self.service_state[vpn_service_id] del self.service_state[vpn_service_id]
elif dirty: elif dirty:
self.connections_removed = True self.connections_removed = True
LOG.debug(_("Sweep: Removed %(service)d dirty VPN service%(splural)s " LOG.debug("Sweep: Removed %(service)d dirty VPN service%(splural)s "
"and %(conn)d dirty IPSec connection%(cplural)s"), "and %(conn)d dirty IPSec connection%(cplural)s",
{'service': service_count, 'conn': connection_count, {'service': service_count, 'conn': connection_count,
'splural': 's'[service_count == 1:], 'splural': 's'[service_count == 1:],
'cplural': 's'[connection_count == 1:]}) 'cplural': 's'[connection_count == 1:]})
@ -266,22 +267,22 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
report info will be created for the connection. The combined report report info will be created for the connection. The combined report
data is returned. data is returned.
""" """
LOG.debug(_("Report: Collecting status for IPSec connections on VPN " LOG.debug("Report: Collecting status for IPSec connections on VPN "
"service %s"), vpn_service.service_id) "service %s", vpn_service.service_id)
tunnels = vpn_service.get_ipsec_connections_status() tunnels = vpn_service.get_ipsec_connections_status()
report = {} report = {}
for connection in vpn_service.conn_state.values(): for connection in vpn_service.conn_state.values():
if connection.forced_down: if connection.forced_down:
LOG.debug(_("Connection %s forced down"), connection.conn_id) LOG.debug("Connection %s forced down", connection.conn_id)
current_status = constants.DOWN current_status = constants.DOWN
else: else:
current_status = connection.find_current_status_in(tunnels) current_status = connection.find_current_status_in(tunnels)
LOG.debug(_("Connection %(conn)s reported %(status)s"), LOG.debug("Connection %(conn)s reported %(status)s",
{'conn': connection.conn_id, {'conn': connection.conn_id,
'status': current_status}) 'status': current_status})
frag = connection.update_status_and_build_report(current_status) frag = connection.update_status_and_build_report(current_status)
if frag: if frag:
LOG.debug(_("Report: Adding info for IPSec connection %s"), LOG.debug("Report: Adding info for IPSec connection %s",
connection.conn_id) connection.conn_id)
report.update(frag) report.update(frag)
return report return report
@ -301,7 +302,7 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
pending_handled = plugin_utils.in_pending_status( pending_handled = plugin_utils.in_pending_status(
vpn_service.last_status) vpn_service.last_status)
vpn_service.update_last_status() vpn_service.update_last_status()
LOG.debug(_("Report: Adding info for VPN service %s"), LOG.debug("Report: Adding info for VPN service %s",
vpn_service.service_id) vpn_service.service_id)
return {u'id': vpn_service.service_id, return {u'id': vpn_service.service_id,
u'status': vpn_service.last_status, u'status': vpn_service.last_status,
@ -323,17 +324,17 @@ class CiscoCsrIPsecDriver(device_drivers.DeviceDriver):
def report_status_internal(self, context): def report_status_internal(self, context):
"""Generate report and send to plugin, if anything changed.""" """Generate report and send to plugin, if anything changed."""
service_report = [] service_report = []
LOG.debug(_("Report: Starting status report processing")) LOG.debug("Report: Starting status report processing")
for vpn_service_id, vpn_service in self.service_state.items(): for vpn_service_id, vpn_service in self.service_state.items():
LOG.debug(_("Report: Collecting status for VPN service %s"), LOG.debug("Report: Collecting status for VPN service %s",
vpn_service_id) vpn_service_id)
report = self.build_report_for_service(vpn_service) report = self.build_report_for_service(vpn_service)
if report: if report:
service_report.append(report) service_report.append(report)
if service_report: if service_report:
LOG.info(_("Sending status report update to plugin")) LOG.info(_LI("Sending status report update to plugin"))
self.agent_rpc.update_status(context, service_report) self.agent_rpc.update_status(context, service_report)
LOG.debug(_("Report: Completed status report processing")) LOG.debug("Report: Completed status report processing")
return service_report return service_report
@lockutils.synchronized('vpn-agent', 'neutron-') @lockutils.synchronized('vpn-agent', 'neutron-')
@ -617,8 +618,8 @@ class CiscoCsrIPSecConnection(object):
LOG.debug("%(resource)s %(which)s is configured", LOG.debug("%(resource)s %(which)s is configured",
{'resource': resource, 'which': which}) {'resource': resource, 'which': which})
return return
LOG.error(_("Unable to create %(resource)s %(which)s: " LOG.error(_LE("Unable to create %(resource)s %(which)s: "
"%(status)d"), "%(status)d"),
{'resource': resource, 'which': which, {'resource': resource, 'which': which,
'status': self.csr.status}) 'status': self.csr.status})
# ToDO(pcm): Set state to error # ToDO(pcm): Set state to error
@ -630,7 +631,7 @@ class CiscoCsrIPSecConnection(object):
try: try:
getattr(self.csr, create_action)(info) getattr(self.csr, create_action)(info)
except AttributeError: except AttributeError:
LOG.exception(_("Internal error - '%s' is not defined"), LOG.exception(_LE("Internal error - '%s' is not defined"),
create_action) create_action)
raise CsrResourceCreateFailure(resource=title, raise CsrResourceCreateFailure(resource=title,
which=resource_id) which=resource_id)
@ -643,22 +644,22 @@ class CiscoCsrIPSecConnection(object):
LOG.debug("%(resource)s configuration %(which)s was removed", LOG.debug("%(resource)s configuration %(which)s was removed",
{'resource': resource, 'which': which}) {'resource': resource, 'which': which})
else: else:
LOG.warning(_("Unable to delete %(resource)s %(which)s: " LOG.warning(_LW("Unable to delete %(resource)s %(which)s: "
"%(status)d"), {'resource': resource, "%(status)d"), {'resource': resource,
'which': which, 'which': which,
'status': status}) 'status': status})
def do_rollback(self): def do_rollback(self):
"""Undo create steps that were completed successfully.""" """Undo create steps that were completed successfully."""
for step in reversed(self.steps): for step in reversed(self.steps):
delete_action = 'delete_%s' % step.action delete_action = 'delete_%s' % step.action
LOG.debug(_("Performing rollback action %(action)s for " LOG.debug("Performing rollback action %(action)s for "
"resource %(resource)s"), {'action': delete_action, "resource %(resource)s", {'action': delete_action,
'resource': step.title}) 'resource': step.title})
try: try:
getattr(self.csr, delete_action)(step.resource_id) getattr(self.csr, delete_action)(step.resource_id)
except AttributeError: except AttributeError:
LOG.exception(_("Internal error - '%s' is not defined"), LOG.exception(_LE("Internal error - '%s' is not defined"),
delete_action) delete_action)
raise CsrResourceCreateFailure(resource=step.title, raise CsrResourceCreateFailure(resource=step.title,
which=step.resource_id) which=step.resource_id)
@ -678,7 +679,7 @@ class CiscoCsrIPSecConnection(object):
ike_policy_id = conn_info['cisco']['ike_policy_id'] ike_policy_id = conn_info['cisco']['ike_policy_id']
ipsec_policy_id = conn_info['cisco']['ipsec_policy_id'] ipsec_policy_id = conn_info['cisco']['ipsec_policy_id']
LOG.debug(_('Creating IPSec connection %s'), conn_id) LOG.debug('Creating IPSec connection %s', conn_id)
# Get all the attributes needed to create # Get all the attributes needed to create
try: try:
psk_info = self.create_psk_info(psk_id, conn_info) psk_info = self.create_psk_info(psk_id, conn_info)
@ -711,10 +712,10 @@ class CiscoCsrIPSecConnection(object):
route_id, 'Static Route') route_id, 'Static Route')
except CsrResourceCreateFailure: except CsrResourceCreateFailure:
self.do_rollback() self.do_rollback()
LOG.info(_("FAILED: Create of IPSec site-to-site connection %s"), LOG.info(_LI("FAILED: Create of IPSec site-to-site connection %s"),
conn_id) conn_id)
else: else:
LOG.info(_("SUCCESS: Created IPSec site-to-site connection %s"), LOG.info(_LI("SUCCESS: Created IPSec site-to-site connection %s"),
conn_id) conn_id)
def delete_ipsec_site_connection(self, context, conn_id): def delete_ipsec_site_connection(self, context, conn_id):
@ -723,13 +724,13 @@ class CiscoCsrIPSecConnection(object):
This will be best effort and will continue, if there are any This will be best effort and will continue, if there are any
failures. failures.
""" """
LOG.debug(_('Deleting IPSec connection %s'), conn_id) LOG.debug('Deleting IPSec connection %s', conn_id)
if not self.steps: if not self.steps:
LOG.warning(_('Unable to find connection %s'), conn_id) LOG.warning(_LW('Unable to find connection %s'), conn_id)
else: else:
self.do_rollback() self.do_rollback()
LOG.info(_("SUCCESS: Deleted IPSec site-to-site connection %s"), LOG.info(_LI("SUCCESS: Deleted IPSec site-to-site connection %s"),
conn_id) conn_id)
def set_admin_state(self, is_up): def set_admin_state(self, is_up):
@ -737,6 +738,7 @@ class CiscoCsrIPSecConnection(object):
self.csr.set_ipsec_connection_state(self.tunnel, admin_up=is_up) self.csr.set_ipsec_connection_state(self.tunnel, admin_up=is_up)
if self.csr.status != requests.codes.NO_CONTENT: if self.csr.status != requests.codes.NO_CONTENT:
state = "UP" if is_up else "DOWN" state = "UP" if is_up else "DOWN"
LOG.error(_("Unable to change %(tunnel)s admin state to " LOG.error(_LE("Unable to change %(tunnel)s admin state to "
"%(state)s"), {'tunnel': self.tunnel, 'state': state}) "%(state)s"), {'tunnel': self.tunnel,
'state': state})
raise CsrAdminStateChangeFailure(tunnel=self.tunnel, state=state) raise CsrAdminStateChangeFailure(tunnel=self.tunnel, state=state)

View File

@ -28,6 +28,7 @@ from neutron.agent.linux import ip_lib
from neutron.agent.linux import utils from neutron.agent.linux import utils
from neutron.common import rpc as n_rpc from neutron.common import rpc as n_rpc
from neutron import context from neutron import context
from neutron.openstack.common.gettextutils import _LE
from neutron.openstack.common import lockutils from neutron.openstack.common import lockutils
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
from neutron.openstack.common import loopingcall from neutron.openstack.common import loopingcall
@ -244,7 +245,7 @@ class BaseSwanProcess():
self.start() self.start()
except RuntimeError: except RuntimeError:
LOG.exception( LOG.exception(
_("Failed to enable vpn process on router %s"), _LE("Failed to enable vpn process on router %s"),
self.id) self.id)
def disable(self): def disable(self):
@ -255,7 +256,7 @@ class BaseSwanProcess():
self.remove_config() self.remove_config()
except RuntimeError: except RuntimeError:
LOG.exception( LOG.exception(
_("Failed to disable vpn process on router %s"), _LE("Failed to disable vpn process on router %s"),
self.id) self.id)
@abc.abstractmethod @abc.abstractmethod

View File

@ -15,6 +15,7 @@
# under the License. # under the License.
from neutron.db.vpn import vpn_db from neutron.db.vpn import vpn_db
from neutron.openstack.common.gettextutils import _LI
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
from neutron.plugins.common import constants from neutron.plugins.common import constants
from neutron.services import service_base from neutron.services import service_base
@ -41,7 +42,7 @@ class VPNDriverPlugin(VPNPlugin, vpn_db.VPNPluginRpcDbMixin):
# Load the service driver from neutron.conf. # Load the service driver from neutron.conf.
drivers, default_provider = service_base.load_drivers( drivers, default_provider = service_base.load_drivers(
constants.VPN, self) constants.VPN, self)
LOG.info(_("VPN plugin using service driver: %s"), default_provider) LOG.info(_LI("VPN plugin using service driver: %s"), default_provider)
self.ipsec_driver = drivers[default_provider] self.ipsec_driver = drivers[default_provider]
def _get_driver_for_vpnservice(self, vpnservice): def _get_driver_for_vpnservice(self, vpnservice):

View File

@ -94,8 +94,8 @@ class BaseIPsecVpnAgentApi(n_rpc.RpcProxy):
admin_state_up=True, admin_state_up=True,
active=True) active=True)
for l3_agent in l3_agents: for l3_agent in l3_agents:
LOG.debug(_('Notify agent at %(topic)s.%(host)s the message ' LOG.debug('Notify agent at %(topic)s.%(host)s the message '
'%(method)s %(args)s'), '%(method)s %(args)s',
{'topic': self.topic, {'topic': self.topic,
'host': l3_agent.host, 'host': l3_agent.host,
'method': method, 'method': method,

View File

@ -32,8 +32,7 @@ from oslo.config import cfg
from neutron.db import l3_db from neutron.db import l3_db
from neutron.db import models_v2 from neutron.db import models_v2
from neutron.openstack.common.gettextutils import _LE from neutron.openstack.common.gettextutils import _LE, _LI
from neutron.openstack.common.gettextutils import _LI
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
from neutron.services.vpn.device_drivers import ( from neutron.services.vpn.device_drivers import (
cisco_csr_rest_client as csr_client) cisco_csr_rest_client as csr_client)
@ -103,8 +102,8 @@ def get_available_csrs_from_config(config_files):
try: try:
netaddr.IPAddress(rest_mgmt_ip) netaddr.IPAddress(rest_mgmt_ip)
except netaddr.core.AddrFormatError: except netaddr.core.AddrFormatError:
LOG.error(_("Ignoring Cisco CSR for subnet %s - " LOG.error(_LE("Ignoring Cisco CSR for subnet %s - "
"REST management is not an IP address"), "REST management is not an IP address"),
for_router) for_router)
continue continue
try: try:

View File

@ -20,6 +20,7 @@ from neutron.common import exceptions
from neutron.db import model_base from neutron.db import model_base
from neutron.db import models_v2 from neutron.db import models_v2
from neutron.db.vpn import vpn_db from neutron.db.vpn import vpn_db
from neutron.openstack.common.gettextutils import _LI
from neutron.openstack.common import log as logging from neutron.openstack.common import log as logging
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -156,10 +157,10 @@ def determine_csr_policy_id(policy_type, conn_policy_field, map_policy_field,
then call lookup_policy() to find the current mapping for that ID. then call lookup_policy() to find the current mapping for that ID.
""" """
csr_id = get_next_available_id(session, map_policy_field, policy_type) csr_id = get_next_available_id(session, map_policy_field, policy_type)
LOG.debug(_("Reserved new CSR ID %(csr_id)d for %(policy)s " LOG.debug("Reserved new CSR ID %(csr_id)d for %(policy)s "
"ID %(policy_id)s"), {'csr_id': csr_id, "ID %(policy_id)s", {'csr_id': csr_id,
'policy': policy_type, 'policy': policy_type,
'policy_id': policy_id}) 'policy_id': policy_id})
return csr_id return csr_id
@ -183,9 +184,9 @@ def get_tunnel_mapping_for(conn_id, session):
try: try:
entry = session.query(IdentifierMap).filter_by( entry = session.query(IdentifierMap).filter_by(
ipsec_site_conn_id=conn_id).one() ipsec_site_conn_id=conn_id).one()
LOG.debug(_("Mappings for IPSec connection %(conn)s - " LOG.debug("Mappings for IPSec connection %(conn)s - "
"tunnel=%(tunnel)s ike_policy=%(csr_ike)d " "tunnel=%(tunnel)s ike_policy=%(csr_ike)d "
"ipsec_policy=%(csr_ipsec)d"), "ipsec_policy=%(csr_ipsec)d",
{'conn': conn_id, 'tunnel': entry.csr_tunnel_id, {'conn': conn_id, 'tunnel': entry.csr_tunnel_id,
'csr_ike': entry.csr_ike_policy_id, 'csr_ike': entry.csr_ike_policy_id,
'csr_ipsec': entry.csr_ipsec_policy_id}) 'csr_ipsec': entry.csr_ipsec_policy_id})
@ -222,9 +223,9 @@ def create_tunnel_mapping(context, conn_info):
msg = _("Attempt to create duplicate entry in Cisco CSR " msg = _("Attempt to create duplicate entry in Cisco CSR "
"mapping table for connection %s") % conn_id "mapping table for connection %s") % conn_id
raise CsrInternalError(reason=msg) raise CsrInternalError(reason=msg)
LOG.info(_("Mapped connection %(conn_id)s to Tunnel%(tunnel_id)d " LOG.info(_LI("Mapped connection %(conn_id)s to Tunnel%(tunnel_id)d "
"using IKE policy ID %(ike_id)d and IPSec policy " "using IKE policy ID %(ike_id)d and IPSec policy "
"ID %(ipsec_id)d"), "ID %(ipsec_id)d"),
{'conn_id': conn_id, 'tunnel_id': csr_tunnel_id, {'conn_id': conn_id, 'tunnel_id': csr_tunnel_id,
'ike_id': csr_ike_id, 'ipsec_id': csr_ipsec_id}) 'ike_id': csr_ike_id, 'ipsec_id': csr_ipsec_id})
@ -234,4 +235,4 @@ def delete_tunnel_mapping(context, conn_info):
with context.session.begin(): with context.session.begin():
sess_qry = context.session.query(IdentifierMap) sess_qry = context.session.query(IdentifierMap)
sess_qry.filter_by(ipsec_site_conn_id=conn_id).delete() sess_qry.filter_by(ipsec_site_conn_id=conn_id).delete()
LOG.info(_("Removed mapping for connection %s"), conn_id) LOG.info(_LI("Removed mapping for connection %s"), conn_id)

View File

@ -101,8 +101,8 @@ class CiscoCsrIPsecVpnAgentApi(service_drivers.BaseIPsecVpnAgentApi,
# NOTE: This is a config error for workaround. At this point we # NOTE: This is a config error for workaround. At this point we
# can't set state of resource to error. # can't set state of resource to error.
return return
LOG.debug(_('Notify agent at %(topic)s.%(host)s the message ' LOG.debug('Notify agent at %(topic)s.%(host)s the message '
'%(method)s %(args)s for router %(router)s'), '%(method)s %(args)s for router %(router)s',
{'topic': self.topic, {'topic': self.topic,
'host': host, 'host': host,
'method': method, 'method': method,