Check for IPv6 file before reading

Check to see if the IPv6 disabled flag file exists
before trying to read it. This file doesn't exist
on systems with the IPv6 module blacklisted.

Closes-Bug: #1361542
Change-Id: I4064b4189cc9d8f0f0e0e7025cf6f83d5b6ec276
(cherry picked from commit 0c963f6140)
This commit is contained in:
Kevin Benton 2014-08-26 01:52:00 -07:00 committed by Jakub Libosvar
parent 6915af589b
commit 0e4f526028
1 changed files with 13 additions and 3 deletions

View File

@ -16,10 +16,15 @@
"""
IPv6-related utilities and helper functions.
"""
import os
import netaddr
from neutron.openstack.common.gettextutils import _LI
from neutron.openstack.common import log
LOG = log.getLogger(__name__)
_IS_IPV6_ENABLED = None
@ -47,7 +52,12 @@ def is_enabled():
if _IS_IPV6_ENABLED is None:
disabled_ipv6_path = "/proc/sys/net/ipv6/conf/default/disable_ipv6"
with open(disabled_ipv6_path, 'r') as f:
disabled = f.read().strip()
_IS_IPV6_ENABLED = disabled == "0"
if os.path.exists(disabled_ipv6_path):
with open(disabled_ipv6_path, 'r') as f:
disabled = f.read().strip()
_IS_IPV6_ENABLED = disabled == "0"
else:
_IS_IPV6_ENABLED = False
if not _IS_IPV6_ENABLED:
LOG.info(_LI("IPv6 is not enabled on this system."))
return _IS_IPV6_ENABLED