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
|
# Seconds to regard the agent as down; should be at least twice
|
||||||
# report_interval, to be sure the agent is down for good
|
# report_interval, to be sure the agent is down for good
|
||||||
# agent_down_time = 75
|
# 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 =====
|
# =========== end of items for agent management extension =====
|
||||||
|
|
||||||
# =========== items for agent scheduler extension =============
|
# =========== items for agent scheduler extension =============
|
||||||
|
@ -56,6 +56,11 @@ AGENT_OPTS = [
|
|||||||
'dhcp_load_type can be configured to represent the '
|
'dhcp_load_type can be configured to represent the '
|
||||||
'choice for the resource being balanced. '
|
'choice for the resource being balanced. '
|
||||||
'Example: dhcp_load_type=networks')),
|
'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)
|
cfg.CONF.register_opts(AGENT_OPTS)
|
||||||
|
|
||||||
@ -236,7 +241,7 @@ class AgentDbMixin(ext_agent.AgentPluginBase):
|
|||||||
res['created_at'] = current_time
|
res['created_at'] = current_time
|
||||||
res['started_at'] = current_time
|
res['started_at'] = current_time
|
||||||
res['heartbeat_timestamp'] = 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)
|
agent_db = Agent(**res)
|
||||||
greenthread.sleep(0)
|
greenthread.sleep(0)
|
||||||
context.session.add(agent_db)
|
context.session.add(agent_db)
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
|
from oslo_config import cfg
|
||||||
from oslo_db import exception as exc
|
from oslo_db import exception as exc
|
||||||
from oslo_utils import timeutils
|
from oslo_utils import timeutils
|
||||||
import testscenarios
|
import testscenarios
|
||||||
@ -154,6 +155,12 @@ class TestAgentsDbMixin(TestAgentsDbBase):
|
|||||||
self.assertEqual(add_mock.call_count, 2,
|
self.assertEqual(add_mock.call_count, 2,
|
||||||
"Agent entry creation hasn't been retried")
|
"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):
|
class TestAgentsDbGetAgents(TestAgentsDbBase):
|
||||||
scenarios = [
|
scenarios = [
|
||||||
|
Loading…
Reference in New Issue
Block a user