Add enable_new_agents to neutron server
Neutron doesn't have a way to test a newly added network node by deploying test resource before any customer resource on the node is deployed. Nova and Cinder has the setting of “enable_new_services” in each conf to disable the initial service status to achieve this. This proposal adds enable_new_agents config. DocImpact Change-Id: Ie0d0b2dd4d95de95f3839d1c35f24b708e893801 Implements: blueprint enable-new-agents Related-Bug: 1472076
This commit is contained in:
parent
dea4f9fac1
commit
a6c8d60e5e
@ -178,6 +178,11 @@
|
||||
# Seconds to regard the agent as down; should be at least twice
|
||||
# report_interval, to be sure the agent is down for good
|
||||
# agent_down_time = 75
|
||||
|
||||
# Agent starts with admin_state_up=False when enable_new_agents=False.
|
||||
# In the case, user's resources will not be scheduled automatically to the
|
||||
# agent until admin changes admin_state_up to True.
|
||||
# enable_new_agents = True
|
||||
# =========== end of items for agent management extension =====
|
||||
|
||||
# =========== items for agent scheduler extension =============
|
||||
|
@ -56,6 +56,11 @@ AGENT_OPTS = [
|
||||
'dhcp_load_type can be configured to represent the '
|
||||
'choice for the resource being balanced. '
|
||||
'Example: dhcp_load_type=networks')),
|
||||
cfg.BoolOpt('enable_new_agents', default=True,
|
||||
help=_("Agent starts with admin_state_up=False when "
|
||||
"enable_new_agents=False. In the case, user's "
|
||||
"resources will not be scheduled automatically to the "
|
||||
"agent until admin changes admin_state_up to True.")),
|
||||
]
|
||||
cfg.CONF.register_opts(AGENT_OPTS)
|
||||
|
||||
@ -236,7 +241,7 @@ class AgentDbMixin(ext_agent.AgentPluginBase):
|
||||
res['created_at'] = current_time
|
||||
res['started_at'] = current_time
|
||||
res['heartbeat_timestamp'] = current_time
|
||||
res['admin_state_up'] = True
|
||||
res['admin_state_up'] = cfg.CONF.enable_new_agents
|
||||
agent_db = Agent(**res)
|
||||
greenthread.sleep(0)
|
||||
context.session.add(agent_db)
|
||||
|
@ -16,6 +16,7 @@
|
||||
import datetime
|
||||
import mock
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_db import exception as exc
|
||||
from oslo_utils import timeutils
|
||||
import testscenarios
|
||||
@ -154,6 +155,12 @@ class TestAgentsDbMixin(TestAgentsDbBase):
|
||||
self.assertEqual(add_mock.call_count, 2,
|
||||
"Agent entry creation hasn't been retried")
|
||||
|
||||
def test_create_or_update_agent_disable_new_agents(self):
|
||||
cfg.CONF.set_override('enable_new_agents', False)
|
||||
self.plugin.create_or_update_agent(self.context, self.agent_status)
|
||||
agent = self.plugin.get_agents(self.context)[0]
|
||||
self.assertFalse(agent['admin_state_up'])
|
||||
|
||||
|
||||
class TestAgentsDbGetAgents(TestAgentsDbBase):
|
||||
scenarios = [
|
||||
|
Loading…
Reference in New Issue
Block a user