fixes bug 911255 show on deallocated ip fails
Change-Id: I92d6ebc44414bc15989a4a9dd90acf24250d38fb
This commit is contained in:
parent
f1091479c1
commit
14966a13f3
@ -644,6 +644,10 @@ class IpAddress(ModelBase):
|
|||||||
def interface(self):
|
def interface(self):
|
||||||
return Interface.get(self.interface_id)
|
return Interface.get(self.interface_id)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def virtual_interface_id(self):
|
||||||
|
return self.interface.virtual_interface_id if self.interface else None
|
||||||
|
|
||||||
@utils.cached_property
|
@utils.cached_property
|
||||||
def mac_address(self):
|
def mac_address(self):
|
||||||
return MacAddress.get_by(interface_id=self.interface_id)
|
return MacAddress.get_by(interface_id=self.interface_id)
|
||||||
|
@ -38,7 +38,7 @@ class IpConfigurationView(object):
|
|||||||
def _ip_address_data(self, ip):
|
def _ip_address_data(self, ip):
|
||||||
return {
|
return {
|
||||||
'id': ip.id,
|
'id': ip.id,
|
||||||
'interface_id': ip.interface.virtual_interface_id,
|
'interface_id': ip.virtual_interface_id,
|
||||||
'address': ip.address,
|
'address': ip.address,
|
||||||
'version': ip.version,
|
'version': ip.version,
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,9 @@ from melange.db import db_api
|
|||||||
class BaseTest(unittest.TestCase):
|
class BaseTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
#maxDiff=None ensures diff output of assert methods are not truncated
|
||||||
self.maxDiff = None
|
self.maxDiff = None
|
||||||
|
|
||||||
self.mock = mox.Mox()
|
self.mock = mox.Mox()
|
||||||
db_api.clean_db()
|
db_api.clean_db()
|
||||||
super(BaseTest, self).setUp()
|
super(BaseTest, self).setUp()
|
||||||
|
@ -1313,13 +1313,19 @@ class TestIpAddress(tests.BaseTest):
|
|||||||
self.assertEqual(ipv4.version, 4)
|
self.assertEqual(ipv4.version, 4)
|
||||||
self.assertEqual(ipv6.version, 6)
|
self.assertEqual(ipv6.version, 6)
|
||||||
|
|
||||||
def test_retrives_interface(self):
|
def test_retrieves_interface(self):
|
||||||
interface = factory_models.InterfaceFactory(virtual_interface_id="112")
|
interface = factory_models.InterfaceFactory(virtual_interface_id="112")
|
||||||
ip = factory_models.IpAddressFactory(interface_id=interface.id)
|
ip = factory_models.IpAddressFactory(interface_id=interface.id)
|
||||||
|
|
||||||
self.assertEqual(ip.interface, interface)
|
self.assertEqual(ip.interface, interface)
|
||||||
self.assertEqual(ip.interface.virtual_interface_id, "112")
|
self.assertEqual(ip.interface.virtual_interface_id, "112")
|
||||||
|
|
||||||
|
def test_virtual_interface_id(self):
|
||||||
|
interface = factory_models.InterfaceFactory(virtual_interface_id="112")
|
||||||
|
ip = factory_models.IpAddressFactory(interface_id=interface.id)
|
||||||
|
|
||||||
|
self.assertEqual(ip.virtual_interface_id, "112")
|
||||||
|
|
||||||
def test_mac_address(self):
|
def test_mac_address(self):
|
||||||
mac_range = factory_models.MacAddressRangeFactory()
|
mac_range = factory_models.MacAddressRangeFactory()
|
||||||
interface = factory_models.InterfaceFactory()
|
interface = factory_models.InterfaceFactory()
|
||||||
|
@ -47,7 +47,7 @@ class ControllerTestBase(tests.BaseTest):
|
|||||||
|
|
||||||
class DummyApp(wsgi.Router):
|
class DummyApp(wsgi.Router):
|
||||||
|
|
||||||
def __init__(self, controller ):
|
def __init__(self, controller):
|
||||||
mapper = routes.Mapper()
|
mapper = routes.Mapper()
|
||||||
mapper.resource("resource", "/resources",
|
mapper.resource("resource", "/resources",
|
||||||
controller=controller.create_resource())
|
controller=controller.create_resource())
|
||||||
|
@ -39,6 +39,18 @@ class TestIpConfigurationView(tests.BaseTest):
|
|||||||
self.assertEqual(expected_ip1_config, ip_configuration_view.data()[0])
|
self.assertEqual(expected_ip1_config, ip_configuration_view.data()[0])
|
||||||
self.assertEqual(expected_ip2_config, ip_configuration_view.data()[1])
|
self.assertEqual(expected_ip2_config, ip_configuration_view.data()[1])
|
||||||
|
|
||||||
|
def test_data_returns_deallocated_ip_info(self):
|
||||||
|
block = factory_models.IpBlockFactory()
|
||||||
|
interface = factory_models.InterfaceFactory(virtual_interface_id="123")
|
||||||
|
ip = factory_models.IpAddressFactory(ip_block_id=block.id,
|
||||||
|
interface_id=interface.id)
|
||||||
|
ip.deallocate()
|
||||||
|
deallocated_ip = models.IpAddress.find(ip.id)
|
||||||
|
expected_ip_config = _ip_data(deallocated_ip, block)
|
||||||
|
ip_configuration_view = views.IpConfigurationView(deallocated_ip)
|
||||||
|
|
||||||
|
self.assertEqual(expected_ip_config, ip_configuration_view.data()[0])
|
||||||
|
|
||||||
def test_data_returns_route_info(self):
|
def test_data_returns_route_info(self):
|
||||||
block = factory_models.IpBlockFactory()
|
block = factory_models.IpBlockFactory()
|
||||||
interface = factory_models.InterfaceFactory(virtual_interface_id="123")
|
interface = factory_models.InterfaceFactory(virtual_interface_id="123")
|
||||||
@ -57,7 +69,7 @@ class TestIpConfigurationView(tests.BaseTest):
|
|||||||
def _ip_data(ip, block):
|
def _ip_data(ip, block):
|
||||||
return {
|
return {
|
||||||
'id': ip.id,
|
'id': ip.id,
|
||||||
'interface_id': ip.interface.virtual_interface_id,
|
'interface_id': ip.virtual_interface_id,
|
||||||
'address': ip.address,
|
'address': ip.address,
|
||||||
'version': ip.version,
|
'version': ip.version,
|
||||||
'ip_block': {
|
'ip_block': {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user