From 0c963f6140237d8d3f361c6aaa7d2a6b656504db Mon Sep 17 00:00:00 2001 From: Kevin Benton Date: Tue, 26 Aug 2014 01:52:00 -0700 Subject: [PATCH] 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 --- neutron/common/ipv6_utils.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/neutron/common/ipv6_utils.py b/neutron/common/ipv6_utils.py index 21b86acae19..96e1ef23440 100644 --- a/neutron/common/ipv6_utils.py +++ b/neutron/common/ipv6_utils.py @@ -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