fixed get_ipv6_addr issue

This commit is contained in:
Edward Hope-Morley 2014-09-30 15:39:08 +01:00
parent b48b0ab81c
commit 7540d6bac8
3 changed files with 16 additions and 19 deletions

View File

@ -16,6 +16,12 @@ import struct
from charmhelpers.fetch import apt_install
from charmhelpers.contrib.network import ip as utils
try:
import netifaces
except ImportError:
apt_install('python-netifaces')
import netifaces
try:
from netaddr import IPNetwork
except ImportError:
@ -83,25 +89,17 @@ def get_network_address(iface):
return None
def get_ipv6_addr(iface="eth0"):
def get_ipv6_network_address(iface):
try:
try:
import netifaces
except ImportError:
apt_install('python-netifaces')
import netifaces
ipv6_addr = utils.get_ipv6_addr(iface=iface)[0]
all_addrs = netifaces.ifaddresses(iface)
ipv6_address = utils.get_ipv6_addr(iface)[0]
ifa_addrs = netifaces.ifaddresses(iface)
for ifaddr in ifa_addrs[netifaces.AF_INET6]:
if ipv6_address == ifaddr['addr']:
network = "{}/{}".format(ifaddr['addr'],
ifaddr['netmask'])
ip = IPNetwork(network)
return str(ip.network)
for addr in all_addrs[netifaces.AF_INET6]:
if ipv6_addr == addr['addr']:
network = "{}/{}".format(addr['addr'], addr['netmask'])
return str(IPNetwork(network).network)
except ValueError:
raise Exception("Invalid interface '%s'" % iface)
raise Exception("No valid network found in interface '%s'" % iface)
raise Exception("No valid network found for interface '%s'" % iface)

View File

@ -68,7 +68,7 @@ def get_corosync_conf():
conf = {}
if config('prefer-ipv6'):
ip_version = 'ipv6'
bindnetaddr = hacluster.get_ipv6_addr
bindnetaddr = hacluster.get_ipv6_network_address
else:
ip_version = 'ipv4'
bindnetaddr = hacluster.get_network_address
@ -299,7 +299,7 @@ def configure_cluster():
# Put the services in HA, if not already done so
# if not pcmk.is_resource_present(res_name):
if not pcmk.crm_opt_exists(res_name):
if not res_name in resource_params:
if res_name not in resource_params:
cmd = 'crm -w -F configure primitive %s %s' % (res_name,
res_type)
else:

View File

@ -1,4 +1,3 @@
#import lib.utils as utils
import commands
import subprocess
import socket