Merge "Obsolete mac_generation_retries and deprecate the option"
This commit is contained in:
commit
b59bb0fcfa
@ -63,7 +63,10 @@ core_opts = [
|
|||||||
"octet is not 00, it will also be used. The others "
|
"octet is not 00, it will also be used. The others "
|
||||||
"will be randomly generated.")),
|
"will be randomly generated.")),
|
||||||
cfg.IntOpt('mac_generation_retries', default=16,
|
cfg.IntOpt('mac_generation_retries', default=16,
|
||||||
help=_("How many times Neutron will retry MAC generation")),
|
deprecated_for_removal=True,
|
||||||
|
help=_("How many times Neutron will retry MAC generation. This "
|
||||||
|
"option is now obsolete and so is deprecated to be "
|
||||||
|
"removed in the Ocata release.")),
|
||||||
cfg.BoolOpt('allow_bulk', default=True,
|
cfg.BoolOpt('allow_bulk', default=True,
|
||||||
help=_("Allow the usage of the bulk API")),
|
help=_("Allow the usage of the bulk API")),
|
||||||
cfg.BoolOpt('allow_pagination', default=api.DEFAULT_ALLOW_PAGINATION,
|
cfg.BoolOpt('allow_pagination', default=api.DEFAULT_ALLOW_PAGINATION,
|
||||||
|
@ -28,6 +28,7 @@ from neutron.callbacks import events
|
|||||||
from neutron.callbacks import registry
|
from neutron.callbacks import registry
|
||||||
from neutron.callbacks import resources
|
from neutron.callbacks import resources
|
||||||
from neutron.common import utils
|
from neutron.common import utils
|
||||||
|
from neutron.db import api as db_api
|
||||||
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.extensions import dvr as ext_dvr
|
from neutron.extensions import dvr as ext_dvr
|
||||||
@ -115,8 +116,7 @@ class DVRDbMixin(ext_dvr.DVRMacAddressPluginBase):
|
|||||||
def _create_dvr_mac_address(self, context, host):
|
def _create_dvr_mac_address(self, context, host):
|
||||||
"""Create DVR mac address for a given host."""
|
"""Create DVR mac address for a given host."""
|
||||||
base_mac = cfg.CONF.dvr_base_mac.split(':')
|
base_mac = cfg.CONF.dvr_base_mac.split(':')
|
||||||
max_retries = cfg.CONF.mac_generation_retries
|
for attempt in reversed(range(db_api.MAX_RETRIES)):
|
||||||
for attempt in reversed(range(max_retries)):
|
|
||||||
try:
|
try:
|
||||||
with context.session.begin(subtransactions=True):
|
with context.session.begin(subtransactions=True):
|
||||||
mac_address = utils.get_random_mac(base_mac)
|
mac_address = utils.get_random_mac(base_mac)
|
||||||
@ -135,7 +135,8 @@ class DVRDbMixin(ext_dvr.DVRMacAddressPluginBase):
|
|||||||
LOG.debug("Generated DVR mac %(mac)s exists."
|
LOG.debug("Generated DVR mac %(mac)s exists."
|
||||||
" Remaining attempts %(attempts_left)s.",
|
" Remaining attempts %(attempts_left)s.",
|
||||||
{'mac': mac_address, 'attempts_left': attempt})
|
{'mac': mac_address, 'attempts_left': attempt})
|
||||||
LOG.error(_LE("MAC generation error after %s attempts"), max_retries)
|
LOG.error(_LE("MAC generation error after %s attempts"),
|
||||||
|
db_api.MAX_RETRIES)
|
||||||
raise ext_dvr.MacAddressGenerationFailure(host=host)
|
raise ext_dvr.MacAddressGenerationFailure(host=host)
|
||||||
|
|
||||||
def get_dvr_mac_address_list(self, context):
|
def get_dvr_mac_address_list(self, context):
|
||||||
|
@ -69,15 +69,12 @@ class DvrDbMixinTestCase(test_plugin.Ml2PluginV2TestCase):
|
|||||||
self.assertEqual(expected, entry)
|
self.assertEqual(expected, entry)
|
||||||
|
|
||||||
def test__create_dvr_mac_address_retries_exceeded_retry_logic(self):
|
def test__create_dvr_mac_address_retries_exceeded_retry_logic(self):
|
||||||
new_retries = 8
|
|
||||||
cfg.CONF.set_override('mac_generation_retries', new_retries)
|
|
||||||
self._create_dvr_mac_entry('foo_host_1', 'non_unique_mac')
|
self._create_dvr_mac_entry('foo_host_1', 'non_unique_mac')
|
||||||
with mock.patch.object(dvr_mac_db.utils, 'get_random_mac') as f:
|
with mock.patch.object(dvr_mac_db.utils, 'get_random_mac') as f:
|
||||||
f.return_value = 'non_unique_mac'
|
f.return_value = 'non_unique_mac'
|
||||||
self.assertRaises(dvr.MacAddressGenerationFailure,
|
self.assertRaises(dvr.MacAddressGenerationFailure,
|
||||||
self.mixin._create_dvr_mac_address,
|
self.mixin._create_dvr_mac_address,
|
||||||
self.ctx, "foo_host_2")
|
self.ctx, "foo_host_2")
|
||||||
self.assertEqual(new_retries, f.call_count)
|
|
||||||
|
|
||||||
def test_mac_not_cleared_on_agent_delete_event_with_remaining_agents(self):
|
def test_mac_not_cleared_on_agent_delete_event_with_remaining_agents(self):
|
||||||
plugin = manager.NeutronManager.get_plugin()
|
plugin = manager.NeutronManager.get_plugin()
|
||||||
|
Loading…
Reference in New Issue
Block a user