Move dhcp_release6_supported to runtime checks file

Since one of the main reasons for the sanity check system was to
avoid doing runtime checks, importing a sanity check to do a
runtime check encourages bad behavior. This moves the check to a
new runtime_checks.py file that includes a note encouraging people
to use sanity checks wherever possible.

Change-Id: I06bffe00bb796b4727dca7867a15302582ffcc10
This commit is contained in:
Terry Wilson 2017-02-15 11:16:03 -06:00
parent ca8abce1d5
commit 7e4b9f2446
3 changed files with 40 additions and 10 deletions

View File

@ -36,7 +36,7 @@ from neutron.agent.common import utils as agent_common_utils
from neutron.agent.linux import external_process
from neutron.agent.linux import ip_lib
from neutron.agent.linux import iptables_manager
from neutron.cmd.sanity import checks
from neutron.cmd import runtime_checks as checks
from neutron.common import constants as n_const
from neutron.common import utils as common_utils
from neutron.extensions import extra_dhcp_opt as edo_ext

View File

@ -0,0 +1,37 @@
# Copyright (c) 2014 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_log import log as logging
from neutron.agent.linux import utils as agent_utils
LOG = logging.getLogger(__name__)
# NOTE: Runtime checks are strongly discouraged in favor of sanity checks
# which would be run at system setup time. Please consider writing a
# sanity check instead.
def dhcp_release6_supported():
try:
cmd = ['dhcp_release6', '--help']
env = {'LC_ALL': 'C'}
agent_utils.execute(cmd, addl_env=env)
except (OSError, RuntimeError, IndexError, ValueError) as e:
LOG.debug("Exception while checking dhcp_release6. "
"Exception: %s", e)
return False
return True

View File

@ -32,6 +32,7 @@ from neutron.agent.linux import ip_lib
from neutron.agent.linux import ip_link_support
from neutron.agent.linux import keepalived
from neutron.agent.linux import utils as agent_utils
from neutron.cmd import runtime_checks
from neutron.common import constants
from neutron.common import utils as common_utils
from neutron.plugins.common import constants as const
@ -217,15 +218,7 @@ def dnsmasq_version_supported():
def dhcp_release6_supported():
try:
cmd = ['dhcp_release6', '--help']
env = {'LC_ALL': 'C'}
agent_utils.execute(cmd, addl_env=env)
except (OSError, RuntimeError, IndexError, ValueError) as e:
LOG.debug("Exception while checking dhcp_release6. "
"Exception: %s", e)
return False
return True
return runtime_checks.dhcp_release6_supported()
def bridge_firewalling_enabled():