try:
cmd = ['dnsmasq', '--version']
out = utils.execute(cmd)
- ver = re.findall("\d+.\d+", out)[0]
- is_valid_version = float(ver) >= cls.MINIMUM_VERSION
- if not is_valid_version:
+ m = re.search(r"version (\d+\.\d+)", out)
+ ver = float(m.group(1)) if m else 0
+ if ver < cls.MINIMUM_VERSION:
LOG.error(_LE('FAILED VERSION REQUIREMENT FOR DNSMASQ. '
'DHCP AGENT MAY NOT RUN CORRECTLY! '
'Please ensure that its version is %s '
'Please ensure that its version is %s '
'or above!'), cls.MINIMUM_VERSION)
raise SystemExit(1)
- return float(ver)
+ return ver
@classmethod
def existing_dhcp_networks(cls, conf, root_helper):
result = dhcp.Dnsmasq.check_version()
self.assertEqual(result, expected_value)
+ def test_check_find_version(self):
+ # Dnsmasq output currently gives the version number before the
+ # copyright year, but just in case ...
+ self._check_version('Copyright 2000-2014. Dnsmasq version 2.65 ...',
+ float(2.65))
+
def test_check_minimum_version(self):
self._check_version('Dnsmasq version 2.63 Copyright (c)...',
dhcp.Dnsmasq.MINIMUM_VERSION)