|
|
@@ -87,15 +87,14 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
|
|
|
% net.cidr_block)
|
|
|
|
|
|
cidr = '10.0.1.0/24'
|
|
|
- sn = net.create_subnet(
|
|
|
- cidr_block=cidr, name=subnet_name,
|
|
|
- zone=helpers.get_provider_test_data(self.provider,
|
|
|
- 'placement'))
|
|
|
+ sn = net.create_subnet(name=subnet_name, cidr_block=cidr,
|
|
|
+ zone=helpers.get_provider_test_data(
|
|
|
+ self.provider, 'placement'))
|
|
|
with helpers.cleanup_action(lambda: sn.delete()):
|
|
|
self.assertTrue(
|
|
|
- sn.id in [s.id for s in net.subnets()],
|
|
|
+ sn.id in [s.id for s in net.subnets],
|
|
|
"Subnet ID %s should be listed in network subnets %s."
|
|
|
- % (sn.id, net.subnets()))
|
|
|
+ % (sn.id, net.subnets))
|
|
|
|
|
|
self.assertIn(
|
|
|
net.id, sn.network_id,
|
|
|
@@ -110,12 +109,13 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
|
|
|
@helpers.skipIfNoService(['networking.networks.routers'])
|
|
|
def test_crud_router(self):
|
|
|
|
|
|
- def _cleanup(net, subnet, router):
|
|
|
+ def _cleanup(net, subnet, router, gateway):
|
|
|
with helpers.cleanup_action(lambda: net.delete()):
|
|
|
with helpers.cleanup_action(lambda: subnet.delete()):
|
|
|
with helpers.cleanup_action(lambda: router.delete()):
|
|
|
- router.remove_route(subnet.id)
|
|
|
- router.detach_network()
|
|
|
+ router.detach_subnet(net)
|
|
|
+ with helpers.cleanup_action(lambda: gateway.delete()):
|
|
|
+ pass
|
|
|
|
|
|
name = 'cb_crudrouter-{0}'.format(helpers.get_uuid())
|
|
|
# Declare these variables and late binding will allow
|
|
|
@@ -124,57 +124,31 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
|
|
|
sn = None
|
|
|
router = None
|
|
|
with helpers.cleanup_action(lambda: _cleanup(net, sn, router)):
|
|
|
- router = self.provider.networking.networks.create_router(name=name)
|
|
|
net = self.provider.networking.networks.create(name=name)
|
|
|
+ router = self.provider.networking.routers.create(network=net,
|
|
|
+ name=name)
|
|
|
cidr = '10.0.1.0/24'
|
|
|
- sn = net.create_subnet(cidr_block=cidr, name=name,
|
|
|
+ sn = net.create_subnet(name=name, cidr_block=cidr,
|
|
|
zone=helpers.get_provider_test_data(
|
|
|
self.provider, 'placement'))
|
|
|
|
|
|
# Check basic router properties
|
|
|
- self.assertIn(
|
|
|
- router, self.provider.networking.networks.routers(),
|
|
|
- "Router {0} should exist in the router list {1}.".format(
|
|
|
- router.id, self.provider.networking.networks.routers()))
|
|
|
- self.assertIn(
|
|
|
- router.id, repr(router),
|
|
|
- "repr(obj) should contain the object id so that the object"
|
|
|
- " can be reconstructed, but does not.")
|
|
|
- self.assertEqual(
|
|
|
- router.name, name,
|
|
|
- "Router {0} name should be {1}.".format(router.name, name))
|
|
|
+ sit.check_standard_behaviour(
|
|
|
+ self, self.provider.networking.routers, router)
|
|
|
self.assertEqual(
|
|
|
router.state, RouterState.DETACHED,
|
|
|
"Router {0} state {1} should be {2}.".format(
|
|
|
router.id, router.state, RouterState.DETACHED))
|
|
|
- self.assertFalse(
|
|
|
- router.network_id,
|
|
|
- "Router {0} should not be assoc. with a network {1}".format(
|
|
|
- router.id, router.network_id))
|
|
|
-
|
|
|
- # TODO: Cloud specific code, needs fixing
|
|
|
- # Check router connectivity
|
|
|
- # On OpenStack only one network is external and on AWS every
|
|
|
- # network is external, yet we need to use the one we've created?!
|
|
|
- if self.provider.PROVIDER_ID == 'openstack':
|
|
|
- for n in self.provider.networking.networks:
|
|
|
- if n.external:
|
|
|
- external_net = n
|
|
|
- break
|
|
|
- else:
|
|
|
- external_net = net
|
|
|
- router.attach_network(external_net.id)
|
|
|
- router.refresh()
|
|
|
- self.assertEqual(
|
|
|
- router.network_id, external_net.id,
|
|
|
- "Router should be attached to network {0}, not {1}".format(
|
|
|
- external_net.id, router.network_id))
|
|
|
- router.add_route(sn.id)
|
|
|
+
|
|
|
+# self.assertFalse(
|
|
|
+# router.network_id,
|
|
|
+# "Router {0} should not be assoc. with a network {1}".format(
|
|
|
+# router.id, router.network_id))
|
|
|
+
|
|
|
+ router.attach_subnet(sn)
|
|
|
+ gateway = (self.provider.networking.gateways
|
|
|
+ .get_or_create_inet_gateway(name))
|
|
|
+ router.attach_gateway(gateway)
|
|
|
# TODO: add a check for routes after that's been implemented
|
|
|
|
|
|
- routerl = self.provider.networking.networks.routers()
|
|
|
- found_router = [r for r in routerl if r.name == name]
|
|
|
- self.assertEqual(
|
|
|
- len(found_router), 0,
|
|
|
- "Router {0} should have been deleted but still exists."
|
|
|
- .format(name))
|
|
|
+ sit.check_delete(self, self.provider.networking.routers, router)
|