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})
Exemple #2
0
    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))
Exemple #3
0
    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})