def _create_subnet(self, network, subnet_create_args, start_cidr=None, ip_version=4): """Create neutron subnet. :param network: neutron network dict :param subnet_create_args: POST /v2.0/subnets request options :returns: neutron subnet dict """ network_id = network["network"]["id"] if not subnet_create_args.get("cidr"): if ip_version == 4: start_cidr = start_cidr or "10.2.0.0/24" subnet_create_args["cidr"] = (network_wrapper.generate_cidr( start_cidr=start_cidr)) subnet_create_args.setdefault("ip_version", self.SUBNET_IP_VERSION_v4) elif ip_version == 6: start_cidr = (start_cidr or "1504:40db:0000:0000:0000:0000:0000:0001/64") subnet_create_args["cidr"] = (network_wrapper.generate_cidr( start_cidr=start_cidr)) subnet_create_args.setdefault("ip_version", self.SUBNET_IP_VERSION_v6) subnet_create_args["network_id"] = network_id subnet_create_args["name"] = self.generate_random_name() return self.clients("neutron").create_subnet( {"subnet": subnet_create_args})
def test_generate_cidr(self): with mock.patch("rally_openstack.wrappers.network.cidr_incr", iter(range(1, 4))): self.assertEqual("10.2.1.0/24", network.generate_cidr()) self.assertEqual("10.2.2.0/24", network.generate_cidr()) self.assertEqual("10.2.3.0/24", network.generate_cidr()) with mock.patch("rally_openstack.wrappers.network.cidr_incr", iter(range(1, 4))): start_cidr = "1.1.0.0/26" self.assertEqual("1.1.0.64/26", network.generate_cidr(start_cidr)) self.assertEqual("1.1.0.128/26", network.generate_cidr(start_cidr)) self.assertEqual("1.1.0.192/26", network.generate_cidr(start_cidr))
def _create_subnet(self, network, subnet_create_args, start_cidr=None): """Create neutron subnet. :param network: neutron network dict :param subnet_create_args: POST /v2.0/subnets request options :returns: neutron subnet dict """ network_id = network["network"]["id"] if not subnet_create_args.get("cidr"): start_cidr = start_cidr or "10.2.0.0/24" subnet_create_args["cidr"] = (network_wrapper.generate_cidr( start_cidr=start_cidr)) subnet_create_args["network_id"] = network_id subnet_create_args["name"] = self.generate_random_name() subnet_create_args["ip_version"] = netaddr.IPNetwork( subnet_create_args["cidr"]).version return self.clients("neutron").create_subnet( {"subnet": subnet_create_args})