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
# 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 =============
'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)
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)
import datetime
import mock
+from oslo_config import cfg
from oslo_db import exception as exc
from oslo_utils import timeutils
import testscenarios
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 = [