Add v6 support in _get_ip_data
Change-Id: Ic7721f15e712547de10aab347566106b234e0e78
This commit is contained in:
parent
04b28100ea
commit
9aedcde393
|
@ -19,6 +19,8 @@ import abc
|
|||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
import re
|
||||
|
||||
from designate import exceptions
|
||||
from designate.central import rpcapi as central_rpcapi
|
||||
from designate.context import DesignateContext
|
||||
|
@ -100,12 +102,16 @@ class BaseAddressHandler(NotificationHandler):
|
|||
'ip_version': version,
|
||||
}
|
||||
|
||||
# TODO(endre): Add v6 support
|
||||
if version == 4:
|
||||
data['ip_address'] = ip.replace('.', '-')
|
||||
ip_data = ip.split(".")
|
||||
for i in [0, 1, 2, 3]:
|
||||
data["octet%s" % i] = ip_data[i]
|
||||
if version == 6:
|
||||
data['ip_address'] = ip.replace(':', '-')
|
||||
ip_data = re.split('::|:', ip)
|
||||
for i in range(len(ip_data)):
|
||||
data["octet%s" % i] = ip_data[i]
|
||||
return data
|
||||
|
||||
def _get_formatv4(self):
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# Copyright 2012 Managed I.T.
|
||||
#
|
||||
# Author: Kiall Mac Innes <kiall@managedit.ie>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from designate.tests import TestCase
|
||||
from designate.notification_handler import base
|
||||
|
||||
|
||||
class InheritFormBaseAddressHandler(base.BaseAddressHandler):
|
||||
"""Class to inherit from BaseAddressHandler to test its methods
|
||||
|
||||
Because BaseAddressHandler is an abstract class, in order to test methods
|
||||
we need to create something to inherit from it so we have something
|
||||
instantiatable.
|
||||
"""
|
||||
def get_event_types(self):
|
||||
pass
|
||||
|
||||
def get_exchange_topics(self):
|
||||
pass
|
||||
|
||||
def process_notification(self):
|
||||
pass
|
||||
|
||||
|
||||
class BaseAddressHandlerTest(TestCase):
|
||||
def test_get_ip_data_support_v6(self):
|
||||
addr_dict = {'address': '1762::B03:1:AF18', 'version': 6}
|
||||
baseaddresshandler = InheritFormBaseAddressHandler()
|
||||
observe = baseaddresshandler._get_ip_data(addr_dict)
|
||||
expect = {'octet1': 'B03', 'octet0': '1762', 'octet3': 'AF18',
|
||||
'octet2': '1', 'ip_version': 6,
|
||||
'ip_address': '1762--B03-1-AF18'}
|
||||
self.assertEqual(observe, expect)
|
Loading…
Reference in New Issue