Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid using control chars in router name. #6

Open
wants to merge 1 commit into
base: stable/queens
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions nuage_neutron/plugins/common/service_plugins/l3.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

import copy
from logging import handlers
import re

import netaddr

from oslo_config import cfg
Expand Down Expand Up @@ -82,6 +84,12 @@ def get_plugin_type(self):
def get_plugin_description(self):
return "Plugin providing support for routers and floatingips."

@staticmethod
def _is_resource_name_ok(name):
if re.search(r'[\a,\b,\f,\n,\r,\t,\v]', name) is None:
return True
return False

def init_fip_rate_log(self):
self.def_fip_rate = cfg.CONF.FIPRATE.default_fip_rate
self.def_ingress_rate_kbps = (
Expand Down Expand Up @@ -637,6 +645,11 @@ def _add_nuage_router_attributes(self, session, router, nuage_router):
@db.retry_if_session_inactive()
@log_helpers.log_method_call
def create_router(self, context, router):
if 'name' in router['router']:
if not self._is_resource_name_ok(router['router']['name']):
msg = _('router name contains invalid characters.')
raise nuage_exc.NuageBadRequest(msg=msg)

routing_mechanisms.update_routing_values(router['router'])

req_router = copy.deepcopy(router['router'])
Expand Down Expand Up @@ -690,6 +703,11 @@ def create_router(self, context, router):
@log_helpers.log_method_call
def update_router(self, context, id, router):
updates = router['router']
if 'name' in updates:
if not self._is_resource_name_ok(updates['name']):
msg = _('router name contains invalid characters.')
raise nuage_exc.NuageBadRequest(msg=msg)

original_router = self.get_router(context, id)
self._validate_update_router(context, id, updates)
routing_mechanisms.update_routing_values(updates, original_router)
Expand Down