Stop the dhcp-agent process when dnsmasq version is not determined

When it is not possible to determinate the dnsmasq version
or dnsmasq is not installed, neutron shows only a warning message.
With this commit the dhcp-agent process will be stopped if the
dnsmasq service is not installed.
Modifies the dhcp version unit test with the expected SystemExit exception

Change-Id: Ia26eaae6f432305f412a4b6a4a6b2b7b15d99d45
Closes-Bug: 1212401
This commit is contained in:
Edgar Magana 2014-05-30 16:27:35 -07:00
parent bf2a68990e
commit f3165d2a48
2 changed files with 7 additions and 4 deletions

View File

@ -318,9 +318,10 @@ class Dnsmasq(DhcpLocalProcess):
'Please ensure that its version is %s '
'or above!'), cls.MINIMUM_VERSION)
except (OSError, RuntimeError, IndexError, ValueError):
LOG.warning(_('Unable to determine dnsmasq version. '
LOG.error(_('Unable to determine dnsmasq version. '
'Please ensure that its version is %s '
'or above!'), cls.MINIMUM_VERSION)
raise SystemExit(1)
return float(ver)
@classmethod

View File

@ -18,6 +18,7 @@ import os
import mock
from oslo.config import cfg
import testtools
from neutron.agent.common import config
from neutron.agent.linux import dhcp
@ -1284,6 +1285,7 @@ tag:tag0,option:router""".lstrip()
float(2.48))
def test_check_version_failed_cmd_execution(self):
with testtools.ExpectedException(SystemExit):
self._check_version('Error while executing command', 0)
def test_only_populates_dhcp_enabled_subnets(self):